diff --git a/.cursor/rules/codebase-context.mdc b/.cursor/rules/codebase-context.mdc new file mode 100644 index 000000000..9b1ef995d --- /dev/null +++ b/.cursor/rules/codebase-context.mdc @@ -0,0 +1,191 @@ +--- +description: Comprehensive Homarr codebase architecture and conventions reference +alwaysApply: true +--- + +# Homarr Codebase Context + +Homarr is an open-source, self-hosted dashboard for managing homelab services. It integrates with 50+ self-hosted apps (media servers, download clients, DNS, NAS, etc.) and provides a drag-and-drop widget-based UI. + +## Tech Stack + +- **Monorepo**: pnpm workspaces + Turborepo +- **Framework**: Next.js (App Router, `output: "standalone"`) — T3 Stack +- **Language**: TypeScript throughout +- **ORM**: Drizzle (supports SQLite via better-sqlite3, MySQL, PostgreSQL) +- **API**: tRPC (HTTP + WebSocket subscriptions) with superjson + OpenAPI bridge via `trpc-to-openapi` +- **Auth**: NextAuth v5 (database sessions, Credentials/LDAP/OIDC providers) +- **UI**: Mantine v7 (not Tailwind) + Tabler icons +- **State**: Jotai (atoms), TanStack Query (server state via tRPC) +- **Realtime**: WebSocket server (`ws`) for tRPC subscriptions, backed by Redis pub/sub +- **Cron**: `node-cron` in a standalone Fastify service (`apps/tasks`) +- **i18n**: next-intl with `[locale]` dynamic segment (prefix mode: `"never"`, locale from cookie) +- **Testing**: Vitest + jsdom, Playwright for E2E +- **Package manager**: pnpm 10.33.2, Node >= 24.15.0 + +## Repository Structure + +``` +homarr/ +├── apps/ +│ ├── nextjs/ # Main Next.js application (port 3000) +│ ├── tasks/ # Cron job runner + Fastify tRPC API (port 3002) +│ └── websocket/ # Standalone tRPC WebSocket server (port 3001) +├── packages/ +│ ├── api/ # tRPC appRouter, procedures, OpenAPI +│ ├── auth/ # NextAuth config, providers, session, API keys +│ ├── db/ # Drizzle schema (3 DB drivers), migrations, queries +│ ├── core/ # Env validation, DB/Redis driver factories, logging +│ ├── definitions/ # Domain enums: WidgetKind, IntegrationKind, permissions +│ ├── widgets/ # All 39 dashboard widgets (definitions + components) +│ ├── integrations/ # Integration classes (HTTP clients to external apps) +│ ├── redis/ # Redis pub/sub channels, caching abstractions +│ ├── translation/ # next-intl setup, locale configs, lang JSON files +│ ├── ui/ # Shared Mantine components, theme, hooks +│ ├── validation/ # Shared zod schemas for API/forms +│ ├── common/ # Shared utilities, IDs, errors +│ ├── cron-jobs/ # Cron job implementations (25+ jobs) +│ ├── cron-jobs-core/ # Cron scheduling primitives +│ ├── cron-job-api/ # tRPC router for job management (start/stop/trigger) +│ ├── cron-job-status/ # Cron status via Redis +│ ├── boards/ # Board context, edit mode, cache updater +│ ├── modals/ # Modal primitives on Mantine +│ ├── modals-collection/ # Feature modals (apps, boards, docker, etc.) +│ ├── form/ # useZodForm (Mantine + zod resolver) +│ ├── forms-collection/# Reusable form UIs (new app, icon picker, upload) +│ ├── spotlight/ # Command palette / search with multiple modes +│ ├── request-handler/ # Server request handlers (feeds, integrations) +│ ├── notifications/ # Mantine notifications wrapper +│ ├── docker/ # Dockerode-based Docker access +│ ├── icons/ # Icon DB/repo integration +│ ├── image-proxy/ # Image proxy + caching +│ ├── ping/ # Reachability / ping utilities +│ ├── analytics/ # Server-side analytics (Umami) +│ ├── server-settings/ # Server setting keys/types +│ ├── settings/ # User-facing settings UI context +│ ├── old-import/ # Legacy Homarr import +│ ├── old-schema/ # Legacy Homarr zod schemas +│ └── cli/ # Node CLI for ops (brocli) +├── tooling/ +│ ├── eslint/ # Shared ESLint configs +│ ├── prettier/ # Shared Prettier config +│ ├── typescript/ # Base tsconfig +│ └── github/ # CI setup action +├── development/ # Dev docker-compose (Redis, MySQL, PostgreSQL) +├── e2e/ # E2E test specs +└── Dockerfile # Multi-stage production build +``` + +## Three Runtime Services + +| Service | Port | Role | +|---------|------|------| +| Next.js | 3000 | Main web app (SSR + API routes) | +| WebSocket | 3001 | tRPC subscriptions via `ws` | +| Tasks | 3002 | Cron job runner + management API via Fastify | + +In Docker, nginx listens on **7575** and proxies to all three. The tasks service authenticates via `CRON_JOB_API_KEY` header. + +## Package Dependency Layers + +1. **Foundation**: `core` (env, DB drivers, Redis client, logging) → no `@homarr` deps +2. **Domain**: `definitions` → `common` → `core` +3. **Data**: `db` → `core`, `definitions`, `common` +4. **Auth**: `auth` → `db`, `definitions`, `core`, `validation` +5. **Cross-cutting**: `translation`, `validation`, `redis`, `server-settings` +6. **Feature backends**: `integrations`, `request-handler`, `cron-jobs`, `docker`, `ping` +7. **API surface**: `api` → pulls in auth, db, redis, integrations, etc. +8. **UI stack**: `ui`, `modals`, `form`, `notifications`, `boards`, `spotlight` +9. **Composed features**: `widgets`, `modals-collection`, `forms-collection` + +## Key Patterns + +### tRPC + +- **Server caller** (RSC): `import { api } from "@homarr/api/server"` → cached caller with auth context +- **Client hooks**: `import { clientApi } from "@homarr/api/client"` → React Query hooks +- **Router structure**: `packages/api/src/root.ts` defines top-level namespaces (`user`, `board`, `widget`, `integration`, `docker`, `kubernetes`, etc.) +- **Procedures**: `publicProcedure`, `protectedProcedure`, `permissionRequiredProcedure`, `onboardingProcedure` +- **WebSocket subscriptions**: Client uses `wsLink` when `type === "subscription"`, connects to port 3001 + +### Multi-Database Support + +Drizzle schemas exist in three parallel implementations: +- `packages/db/schema/sqlite.ts` +- `packages/db/schema/mysql.ts` +- `packages/db/schema/postgresql.ts` + +Selected at runtime via `DB_DRIVER` env (`better-sqlite3` | `mysql2` | `node-postgres`). Migrations are per-engine in `packages/db/migrations/{sqlite,mysql,postgresql}/`. + +### Widget System + +Widgets are registered in `packages/widgets/src/index.tsx` as `widgetImports` (must satisfy `Record`). Each widget: +- Has a `definition` created via `createWidgetDefinition(kind, { icon, createOptions, supportedIntegrations? })` +- Uses `optionsBuilder.from(factory => ({ ... }))` for typed options +- Loads dynamically via `next/dynamic` +- Fetches data via tRPC client hooks (backed by cron job caches) + +### Integration System + +Integrations are defined in `packages/definitions/src/integration.ts` (`integrationDefs`) and instantiated via `createIntegrationAsync` in `packages/integrations/src/base/creator.ts`. Each extends abstract `Integration` class with `testConnectionAsync` and typed methods. + +### Cron Job System + +Jobs defined in `packages/cron-jobs/src/jobs/`. Each job: +- Uses `createCronJob` with a cron expression +- Publishes results to Redis channels +- Widget subscriptions consume those channels via tRPC subscriptions +- Job management (start/stop/trigger) via `cronJobApi` HTTP client to port 3002 + +### Modals + +Created with `createModal(component).withOptions({ defaultTitle })` from `@homarr/modals`. Opened via `useModalAction(SomeModal)`. Feature modals live in `packages/modals-collection/`. + +### Forms + +`useZodForm` from `@homarr/form` wraps Mantine `useForm` with zod validation. Shared form UIs in `packages/forms-collection/`. + +### Routing (App Router) + +- `apps/nextjs/src/app/[locale]/` — all UI routes under locale segment +- Route groups: `(home)`, `(content)`, `(board)` — don't affect URLs +- Key routes: `boards/[name]`, `manage/...` (admin), `auth/login`, `init` (onboarding), `widgets/[kind]` +- Locale driven by cookie (no URL prefix) + +### Auth Providers + +Configured via `AUTH_PROVIDERS` env. Supports: `credentials` (local), `ldap`, `oidc`. Database sessions with httpOnly cookies. API key auth for programmatic access. + +## Environment Variables + +Key env vars (from `.env.example`): +- `DB_DRIVER`: `better-sqlite3` | `mysql2` | `node-postgres` +- `DB_URL`: Database connection string +- `AUTH_SECRET`: NextAuth secret +- `SECRET_ENCRYPTION_KEY`: AES-256-CBC for integration secrets +- `AUTH_PROVIDERS`: Comma-separated (`credentials`, `ldap`, `oidc`) +- `CRON_JOB_API_KEY`: Shared key between Next.js and tasks service +- `REDIS_*`: Redis connection (host, port, password) +- `ENABLE_KUBERNETES`: Optional Kubernetes integration + +## Development Commands + +- `pnpm dev` — runs all three services in parallel via Turborepo +- `pnpm docker:dev` — starts Redis + MySQL + PostgreSQL containers +- `pnpm db:push` — push schema to SQLite (dev) +- `pnpm db:studio` — Drizzle Studio +- `pnpm test` — Vitest unit tests +- `pnpm test:e2e` — Playwright E2E +- `pnpm lint` / `pnpm format` — ESLint + Prettier +- `pnpm typecheck` — tsc --noEmit across all packages + +## Conventions + +- Workspace packages use `@homarr/` scope +- All versions managed via pnpm `catalog:` in workspace +- Path alias `~/*` → `./src/*` in Next.js app +- Mantine for all UI (no Tailwind) — primary color is red, `autoContrast: true` +- Icons from `@tabler/icons-react` +- Drag-and-drop via `@dnd-kit/*` +- `typescript.ignoreBuildErrors: true` in next.config (types checked separately via `typecheck`) +- `serverExternalPackages`: `dockerode`, `isomorphic-dompurify`, `jsdom` diff --git a/.dockerignore b/.dockerignore index 6f0d55aee..8ca08443a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -5,7 +5,11 @@ node_modules npm-debug.log README.md .next +.turbo .git dev .build -e2e \ No newline at end of file +e2e +.env +.env.* +!.env.example \ No newline at end of file diff --git a/.env.example b/.env.example index d643c1194..318b171e1 100644 --- a/.env.example +++ b/.env.example @@ -12,10 +12,6 @@ AUTH_SECRET="supersecret" # or starting the project without any (which will show a randomly generated one). SECRET_ENCRYPTION_KEY=0000000000000000000000000000000000000000000000000000000000000000 -# Cron job API key is generated every time the container starts as it is required for communication between nextjs-api and tasks-api -# export CRON_JOB_API_KEY=$(openssl rand -base64 32) -# CRON_JOB_API_KEY="your-generated-api-key" - LOG_LEVEL='info' # This is how you can use the sqlite driver: @@ -45,6 +41,20 @@ DB_URL='FULL_PATH_TO_YOUR_SQLITE_DB_FILE' TURBO_TELEMETRY_DISABLED=1 +# Turborepo remote cache (optional, for faster CI/local builds) +# Uncomment and fill in to enable remote caching locally. +# CI uses GitHub secrets for these values automatically. +# TURBO_API=https://your-cache-worker.workers.dev +# TURBO_TEAM=team_your_team +# TURBO_TOKEN=your-turbo-token +# TURBO_REMOTE_CACHE_SIGNATURE_KEY=your-signature-key + +# Comma-separated paths to Docker-compatible Unix sockets. +# Useful for connecting to multiple runtimes (Docker + Podman) simultaneously. +# When unset and no TCP hosts configured, defaults to /var/run/docker.sock. +# Example: DOCKER_SOCKET_PATHS=/var/run/docker.sock,/run/user/1000/podman/podman.sock +# DOCKER_SOCKET_PATHS= + # Enable kubernetes tool # ENABLE_KUBERNETES=true diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 326582ddc..a5137601a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -33,6 +33,27 @@ body: options: # The below comment is used to insert a new version with on-release.yml #NEXT_VERSION# + - 1.61.0 + - 1.60.1-beta.1 + - 1.60.0 + - 1.59.3 + - 1.59.2 + - 1.59.1 + - 1.59.0 + - 1.58.1 + - 1.58.0 + - 1.57.1 + - 1.57.0 + - 1.56.1 + - 1.56.0 + - 1.55.0 + - 1.54.0 + - 1.53.0 + - 1.52.0 + - 1.51.0 + - 1.50.1 + - 1.50.0 + - 1.49.1 - 1.49.0 - 1.48.0 - 1.47.0 diff --git a/.github/ISSUE_TEMPLATE/integration.yml b/.github/ISSUE_TEMPLATE/integration.yml index 3aeb492e7..549808df3 100644 --- a/.github/ISSUE_TEMPLATE/integration.yml +++ b/.github/ISSUE_TEMPLATE/integration.yml @@ -25,16 +25,16 @@ body: 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 + - "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 + - "Yes" + - "No" validations: required: true diff --git a/.github/ISSUE_TEMPLATE/widget.yml b/.github/ISSUE_TEMPLATE/widget.yml index 9ede8d0ba..aa1d0f6a1 100644 --- a/.github/ISSUE_TEMPLATE/widget.yml +++ b/.github/ISSUE_TEMPLATE/widget.yml @@ -24,7 +24,7 @@ body: attributes: label: Are you willing to contribute this yourself? options: - - Yes - - No + - "Yes" + - "No" validations: required: true diff --git a/.github/actions/prebuilt-debian/action.yaml b/.github/actions/prebuilt-debian/action.yaml index 9770a7eb1..af1b7fdad 100644 --- a/.github/actions/prebuilt-debian/action.yaml +++ b/.github/actions/prebuilt-debian/action.yaml @@ -15,11 +15,11 @@ runs: with: persist-credentials: false - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build docker image for ${{ inputs.architecture }} id: build - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: push: false load: true diff --git a/.github/renovate.json5 b/.github/renovate.json5 index e3c3e433f..269a4d2ff 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -11,6 +11,12 @@ matchPackageNames: ["tsx"], enabled: false, }, + // Reenable once bug with undici v8 is fixed (https://github.com/homarr-labs/homarr/issues/5467) + { + matchPackageNames: ["undici"], + matchNewValue: "8.*", + enabled: false, + }, { matchUpdateTypes: ["minor", "patch", "pin", "digest"], automerge: true, @@ -31,6 +37,12 @@ automerge: false, }, ], + // Updates lockfile for prebuilt-debian after if package.json is updated, otherwise only root lockfile is updated + postUpgradeTasks: { + commands: ["cd deployments/prebuilt-debian && pnpm install --ignore-workspace --lockfile-only"], + fileFilters: ["deployments/prebuilt-debian/pnpm-lock.yaml"], + executionMode: "update", + }, updateInternalDeps: true, rangeStrategy: "bump", automerge: false, diff --git a/.github/workflows/automatic-approval.yml b/.github/workflows/automatic-approval.yml index a8a7b6feb..6647bad82 100644 --- a/.github/workflows/automatic-approval.yml +++ b/.github/workflows/automatic-approval.yml @@ -9,16 +9,21 @@ jobs: approve-automatic-prs: runs-on: ubuntu-latest timeout-minutes: 2 - if: github.actor_id == 158783068 || github.actor_id == 190541745 || github.actor_id == 210161987 # Id of renovate bot and crowdin bot see https://api.github.com/users/homarr-renovate%5Bbot%5D and https://api.github.com/users/homarr-crowdin%5Bbot%5D and https://api.github.com/users/homarr-update-contributors%5Bbot%5D + # 158783068: homarr-renovate[bot] + # 190541745: homarr-crowdin[bot] + # 210161987: homarr-update-contributors[bot] + # 175486441: homarr-releases[bot] + # Extracted from https://api.github.com/users/ + if: github.actor_id == 158783068 || github.actor_id == 190541745 || github.actor_id == 210161987 || github.actor_id == 175486441 steps: - name: Checkout code uses: actions/checkout@v6 - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} - app-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} + client-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} permission-pull-requests: write # required to approve pull request - name: Install GitHub CLI diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index eeaec94f2..e972a1b0c 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -11,14 +11,17 @@ on: concurrency: group: "${{ github.workflow }}-${{ github.ref }}" - cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} -# You can leverage Vercel Remote Caching with Turbo to speed up your builds -# @link https://turborepo.org/docs/core-concepts/remote-caching#remote-caching-on-vercel-builds env: FORCE_COLOR: 3 + SKIP_ENV_VALIDATION: true + TURBO_API: ${{ secrets.TURBO_API }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ vars.TURBO_TEAM }} + TURBO_REMOTE_CACHE_SIGNATURE_KEY: ${{ secrets.TURBO_REMOTE_CACHE_SIGNATURE_KEY }} + TURBO_SCM_BASE: ${{ github.event.pull_request.base.sha || github.event.before || 'HEAD~1' }} + TURBO_SCM_HEAD: ${{ github.sha }} jobs: lint: @@ -26,6 +29,8 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v6 + with: + fetch-depth: 0 - name: Setup uses: ./tooling/github/setup @@ -35,31 +40,35 @@ jobs: run: cp .env.example .env - name: Lint - run: pnpm lint && pnpm lint:ws + run: pnpm turbo lint --affected && pnpm lint:ws format: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v6 + with: + fetch-depth: 0 - name: Setup uses: ./tooling/github/setup - name: Format - run: pnpm format + run: pnpm turbo format --affected --continue -- --cache --cache-location node_modules/.cache/.prettiercache typecheck: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v6 + with: + fetch-depth: 0 - name: Setup uses: ./tooling/github/setup - name: Typecheck - run: turbo typecheck + run: pnpm turbo typecheck --affected test: runs-on: ubuntu-latest @@ -82,20 +91,24 @@ jobs: e2e: runs-on: ubuntu-latest timeout-minutes: 15 - steps: - uses: actions/checkout@v6 - name: Setup uses: ./tooling/github/setup + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v4 - name: Build docker image id: build-docker-image - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: platforms: linux/amd64 context: . push: false + load: true tags: homarr-e2e network: host + cache-from: type=gha + cache-to: type=gha,mode=max env: SKIP_ENV_VALIDATION: true - name: Install playwright browsers @@ -109,10 +122,12 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v6 + with: + fetch-depth: 0 - name: Setup uses: ./tooling/github/setup - name: Copy env shell: bash run: cp .env.example .env - name: Build - run: pnpm build + run: pnpm turbo build --affected diff --git a/.github/workflows/crowdin-schedule-download.yml b/.github/workflows/crowdin-schedule-download.yml index fb0e1d7ba..a5dec8869 100644 --- a/.github/workflows/crowdin-schedule-download.yml +++ b/.github/workflows/crowdin-schedule-download.yml @@ -19,10 +19,10 @@ jobs: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.CROWDIN_APP_PRIVATE_KEY }} - app-id: ${{ secrets.CROWDIN_APP_ID }} + client-id: ${{ secrets.CROWDIN_APP_ID }} permission-contents: write # required to commit to crowdin branch permission-pull-requests: write # required to create pull request diff --git a/.github/workflows/deployment-beta-release.yml b/.github/workflows/deployment-beta-release.yml new file mode 100644 index 000000000..fd79d1502 --- /dev/null +++ b/.github/workflows/deployment-beta-release.yml @@ -0,0 +1,104 @@ +name: "[Deployment] Beta Release" + +on: + workflow_dispatch: + inputs: + send-notifications: + type: boolean + required: false + default: true + description: Send notifications + +permissions: + contents: write + pull-requests: write + +jobs: + create-and-merge-pr: + runs-on: ubuntu-latest + timeout-minutes: 2 + steps: + - name: Discord notification + if: ${{ github.event.inputs.send-notifications }} + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + uses: Ilshidur/action-discord@0.4.0 + with: + args: "Beta release has been triggered: [run ${{ github.run_number }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})" + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Get Next Version + id: semver + uses: ietf-tools/semver-action@v1 + with: + token: ${{ github.token }} + branch: next + - name: Create pull request + id: create-pull-request + run: 'gh pr create --title "chore(release): release ${{ steps.semver.outputs.next }}-beta" --body "Detected change to be ``${{ steps.semver.outputs.bump }}``
Bump version from ``${{ steps.semver.outputs.current }}`` to ``${{ steps.semver.outputs.next }}-beta``" --base beta --head next --label automerge' + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + - name: Discord notification + if: ${{ github.event.inputs.send-notifications }} + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + uses: Ilshidur/action-discord@0.4.0 + with: + args: "Created a release PR ${{ steps.create-pull-request.outputs.url }} for version ${{ steps.semver.outputs.next }}-beta (new behaviour: ${{ steps.semver.outputs.bump }})" + - name: Obtain token + id: obtainApprovalToken + uses: actions/create-github-app-token@v3 + with: + private-key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} + client-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} + permission-pull-requests: write + - name: Approve PR + env: + GITHUB_TOKEN: ${{ steps.obtainApprovalToken.outputs.token }} + run: | + gh pr review --approve --body "Automatically approved by GitHub Action" + - name: Obtain token + id: obtainMergeToken + uses: actions/create-github-app-token@v3 + with: + private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} + client-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + permission-contents: write # write to beta branch (due to merge) + permission-pull-requests: write # merge pull request + - id: automerge + if: ${{ steps.semver.outputs.bump != 'major' }} + name: automerge + uses: "pascalgn/automerge-action@v0.16.4" + env: + GITHUB_TOKEN: ${{ steps.obtainMergeToken.outputs.token }} + MERGE_METHOD: merge # we prefer merge commits for merging to beta + MERGE_COMMIT_MESSAGE: "chore(release): release ${{ steps.semver.outputs.next }}-beta" + MERGE_DELETE_BRANCH: false # never set to true! + PULL_REQUEST: "${{ steps.create-pull-request.outputs.pr_number }}" + MERGE_RETRIES: 20 # 20 retries * MERGE_RETRY_SLEEP until step fails + MERGE_RETRY_SLEEP: 10000 # 10 seconds * MERGE_RETRIES until step fails + MERGE_REQUIRED_APPROVALS: 0 # do not require approvals + + - name: Merged Discord notification + if: ${{ steps.automerge.outputs.mergeResult == 'merged' && github.event.inputs.send-notifications }} + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + uses: Ilshidur/action-discord@0.4.0 + with: + args: "Merged PR ${{ steps.create-pull-request.outputs.url }} for release ${{ steps.semver.outputs.next }}-beta" + - name: Major Bump Discord notification + if: ${{ steps.semver.outputs.bump == 'major' && github.event.inputs.send-notifications }} + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + uses: Ilshidur/action-discord@0.4.0 + with: + args: "The release PR must be manually merged because the next version is a major version: ${{ steps.create-pull-request.outputs.url }} for release ${{ steps.semver.outputs.next }}-beta" + - name: Discord Fail Notification + if: failure() && github.event.inputs.send-notifications + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + uses: Ilshidur/action-discord@0.4.0 + with: + args: "The beta release workflow [run ${{ github.run_number }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) has failed" diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 8335bb46c..c43094223 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -5,6 +5,7 @@ on: branches: - main - beta + - next - dev workflow_dispatch: inputs: @@ -34,7 +35,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 env: - SKIP_RELEASE: ${{ github.event_name == 'workflow_dispatch' || github.ref_name == 'dev' }} + SKIP_RELEASE: ${{ github.event_name == 'workflow_dispatch' || github.ref_name == 'dev' || github.ref_name == 'next' }} outputs: version: ${{ steps.read-semver.outputs.version || steps.version-fallback.outputs.version }} git_ref: ${{ steps.read-git-ref.outputs.ref || github.ref }} @@ -50,23 +51,23 @@ jobs: - name: Obtain token if: env.SKIP_RELEASE == 'false' id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} - app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} - permission-contents: write # required to commit package.json & changelog changes, merge them to dev and publish the release + client-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + permission-contents: write # required to commit package.json & changelog changes, merge them to dev / next and publish the release - uses: actions/checkout@v6 if: env.SKIP_RELEASE == 'false' with: persist-credentials: false - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 if: env.SKIP_RELEASE == 'false' - uses: actions/setup-node@v6 if: env.SKIP_RELEASE == 'false' with: - node-version: 24.12.0 - cache: "pnpm" + node-version: 24.15.0 + package-manager-cache: false - run: npm i -g pnpm if: env.SKIP_RELEASE == 'false' - name: Install dependencies @@ -95,20 +96,21 @@ jobs: id: read-git-ref run: | echo "ref=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" - - name: Update dev branch + - name: Update dev / next branch if: env.SKIP_RELEASE == 'false' continue-on-error: true # Prevent pipeline from failing when merge fails env: GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} + UPSTREAM_BRANCH: ${{ github.ref_name == 'main' && 'dev' || 'next' }} run: | git config user.name "Releases Homarr" git config user.email "175486441+homarr-releases[bot]@users.noreply.github.com" git remote set-url origin https://x-access-token:${{ steps.obtainToken.outputs.token }}@github.com/${{ github.repository }}.git - git fetch origin dev - git checkout dev - git pull origin dev + git fetch origin ${{ env.UPSTREAM_BRANCH }} + git checkout ${{ env.UPSTREAM_BRANCH }} + git pull origin ${{ env.UPSTREAM_BRANCH }} git rebase ${{ github.ref_name }} - git push origin dev + git push origin ${{ env.UPSTREAM_BRANCH }} build-amd64: name: Build docker image for amd64 needs: release @@ -123,23 +125,23 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: "${{ env.GHCR_REPO }}" - name: Log in to the Container registry - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build and push by digest id: build - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: . network: host @@ -162,23 +164,23 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: "${{ env.GHCR_REPO }}" - name: Log in to the Container registry - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build and push by digest id: build - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: . network: host @@ -191,7 +193,7 @@ jobs: name: Extract amd64 asset from docker image needs: [release, build-amd64] runs-on: ubuntu-latest - timeout-minutes: 2 + timeout-minutes: 5 steps: - name: Extract amd64 if: needs.release.outputs.skipped == 'false' @@ -207,7 +209,7 @@ jobs: name: Extract arm64 asset from docker image needs: [release, build-arm64] runs-on: ubuntu-24.04-arm - timeout-minutes: 2 + timeout-minutes: 5 steps: - name: Extract arm64 if: needs.release.outputs.skipped == 'false' @@ -228,8 +230,17 @@ jobs: DEPLOY_LATEST: ${{ github.ref_name == 'main' }} DEPLOY_BETA: ${{ github.ref_name == 'beta' }} steps: + - name: Obtain token + if: needs.release.outputs.skipped == 'false' + id: obtainToken + uses: actions/create-github-app-token@v3 + with: + private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} + client-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + permission-contents: write # required to publish the release + - name: Log in to the Container registry - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -258,13 +269,13 @@ jobs: - name: Publish release if: needs.release.outputs.skipped == 'false' env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} run: | gh release edit --repo ${{ github.repository }} ${{ needs.release.outputs.version }} --draft=false - name: Discord notification env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@master + uses: Ilshidur/action-discord@0.4.0 with: args: "Successfully deployed images for branch **${{ github.ref_name }}**. Tagged as **${{env.NEXT_VERSION}}**." diff --git a/.github/workflows/deployment-weekly-release.yml b/.github/workflows/deployment-weekly-release.yml index 869894a15..8cb117b8c 100644 --- a/.github/workflows/deployment-weekly-release.yml +++ b/.github/workflows/deployment-weekly-release.yml @@ -21,10 +21,10 @@ jobs: timeout-minutes: 2 steps: - name: Discord notification - if: ${{ github.events.inputs.send-notifications }} + if: ${{ github.event.inputs.send-notifications }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@master + uses: Ilshidur/action-discord@0.4.0 with: args: "Automatic release has been triggered: [run ${{ github.run_number }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})" - name: Checkout repository @@ -38,22 +38,23 @@ jobs: token: ${{ github.token }} branch: dev - name: Create pull request + id: create-pull-request run: 'gh pr create --title "chore(release): automatic release ${{ steps.semver.outputs.next }}" --body "**This is an automatic release**.
Manual action may be required for major bumps.
Detected change to be ``${{ steps.semver.outputs.bump }}``
Bump version from ``${{ steps.semver.outputs.current }}`` to ``${{ steps.semver.outputs.next }}``" --base main --head dev --label automerge' env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - name: Discord notification - if: ${{ github.events.inputs.send-notifications }} + if: ${{ github.event.inputs.send-notifications }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@master + uses: Ilshidur/action-discord@0.4.0 with: args: "Created a release PR ${{ steps.create-pull-request.outputs.url }} for version ${{ steps.semver.outputs.next }} (new behaviour: ${{ steps.semver.outputs.bump }})" - name: Obtain token id: obtainApprovalToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} - app-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} + client-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} permission-pull-requests: write - name: Approve PR env: @@ -62,10 +63,10 @@ jobs: gh pr review --approve --body "Automatically approved by GitHub Action" - name: Obtain token id: obtainMergeToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} - app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + client-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} permission-contents: write # write to main branch (due to merge) permission-pull-requests: write # merge pull request - id: automerge @@ -74,7 +75,7 @@ jobs: uses: "pascalgn/automerge-action@v0.16.4" env: GITHUB_TOKEN: ${{ steps.obtainMergeToken.outputs.token }} - MERGE_METHOD: merge # we prefer merge commits for merging to master + MERGE_METHOD: merge # we prefer merge commits for merging to main MERGE_COMMIT_MESSAGE: "chore(release): automatic release ${{ steps.semver.outputs.next }}" MERGE_DELETE_BRANCH: false # never set to true! PULL_REQUEST: "${{ steps.create-pull-request.outputs.pr_number }}" @@ -83,23 +84,23 @@ jobs: MERGE_REQUIRED_APPROVALS: 0 # do not require approvals - name: Merged Discord notification - if: ${{ steps.automerge.outputs.mergeResult == 'merged' && github.events.inputs.send-notifications }} + if: ${{ steps.automerge.outputs.mergeResult == 'merged' && github.event.inputs.send-notifications }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@master + uses: Ilshidur/action-discord@0.4.0 with: args: "Merged PR ${{ steps.create-pull-request.outputs.url }} for release ${{ steps.semver.outputs.next }}" - name: Major Bump Discord notification - if: ${{ steps.semver.outputs.bump == 'major' && github.events.inputs.send-notifications }} + if: ${{ steps.semver.outputs.bump == 'major' && github.event.inputs.send-notifications }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@master + uses: Ilshidur/action-discord@0.4.0 with: args: "The release PR must be manually merged because the next version is a major version: ${{ steps.create-pull-request.outputs.url }} for release ${{ steps.semver.outputs.next }}" - name: Discord Fail Notification - if: failure() && github.events.inputs.send-notifications + if: failure() && github.event.inputs.send-notifications env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@master + uses: Ilshidur/action-discord@0.4.0 with: args: "The automatic release workflow [run ${{ github.run_number }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) has failed" diff --git a/.github/workflows/on-pr-prebuilt-debian-validate.yml b/.github/workflows/on-pr-prebuilt-debian-validate.yml index e72acca1e..025f513e3 100644 --- a/.github/workflows/on-pr-prebuilt-debian-validate.yml +++ b/.github/workflows/on-pr-prebuilt-debian-validate.yml @@ -27,7 +27,7 @@ jobs: exit 1 fi prebuilt-debian-validate-arm64: - runs-on: ubuntu-24.04- + runs-on: ubuntu-24.04-arm timeout-minutes: 5 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/on-release.yml b/.github/workflows/on-release.yml index c1f3739ef..514f225b4 100644 --- a/.github/workflows/on-release.yml +++ b/.github/workflows/on-release.yml @@ -2,7 +2,7 @@ permissions: {} on: release: - types: [published] + types: [released] jobs: trigger-docs-release: @@ -12,10 +12,10 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.HOMARR_DOCS_RELEASE_APP_PRIVATE_KEY }} - app-id: ${{ vars.HOMARR_DOCS_RELEASE_APP_ID }} + client-id: ${{ vars.HOMARR_DOCS_RELEASE_APP_ID }} owner: homarr-labs repositories: | documentation @@ -37,6 +37,7 @@ jobs: } } EOF + update-bug-report-template: name: Update Bug Report Template runs-on: ubuntu-latest @@ -44,33 +45,30 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} - app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + client-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} permission-contents: write # required to commit to branch permission-pull-requests: write # required to create pr & enable automerge - name: Checkout code uses: actions/checkout@v6 with: token: ${{ steps.obtainToken.outputs.token }} + ref: dev - name: Setup uses: ./tooling/github/setup - run: pnpm run scripts:update-bug-report-template env: NEXT_VERSION: ${{ github.event.release.tag_name }} - - name: Commit changes - run: | - git config --global user.email "175486441+homarr-releases[bot]@users.noreply.github.com" - git config --global user.name "Releases Homarr" - git checkout -b update-bug-report-template - git add . - git commit -m "chore: update bug report template" - name: Create Pull Request id: create-pull-request uses: peter-evans/create-pull-request@v8 with: + add-paths: .github/ISSUE_TEMPLATE/bug_report.yml + commit-message: "chore: update bug report template" + author: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com> token: ${{ steps.obtainToken.outputs.token }} branch: update-bug-report-template base: dev diff --git a/.github/workflows/skip-renovate-stability-days.yml b/.github/workflows/skip-renovate-stability-days.yml index 5e4be4054..e85b2e33e 100644 --- a/.github/workflows/skip-renovate-stability-days.yml +++ b/.github/workflows/skip-renovate-stability-days.yml @@ -7,7 +7,7 @@ on: jobs: skip-stability-days: - if: ${{ !startsWith(github.head_ref, 'renovate/') }} + if: ${{ !startsWith(github.head_ref, 'renovate/') && github.event.pull_request.head.repo.full_name == github.repository }} name: Skip Stability Days runs-on: ubuntu-latest timeout-minutes: 1 diff --git a/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml index c3b7e53f0..925e490c7 100644 --- a/.github/workflows/update-contributors.yml +++ b/.github/workflows/update-contributors.yml @@ -21,10 +21,10 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.HOMARR_UPDATE_CONTRIBUTORS_PRIVATE_KEY }} - app-id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} + client-id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} permission-contents: write # required to commit to branch permission-pull-requests: write # required to create pr & enable automerge @@ -33,7 +33,7 @@ jobs: env: GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v6 with: diff --git a/.github/workflows/update-integration-list.yml b/.github/workflows/update-integration-list.yml index 35e012c16..05bb05d27 100644 --- a/.github/workflows/update-integration-list.yml +++ b/.github/workflows/update-integration-list.yml @@ -21,10 +21,10 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.HOMARR_UPDATE_CONTRIBUTORS_PRIVATE_KEY }} - app-id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} + client-id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} permission-contents: write # required to commit to branch permission-pull-requests: write # required to create pr & enable automerge - name: Checkout code diff --git a/.gitignore b/.gitignore index 0aa3ed4c7..0e991cc6c 100644 --- a/.gitignore +++ b/.gitignore @@ -67,4 +67,8 @@ e2e/shared/tmp apps/nextjs/public/images/background.png # next-intl -en.d.json.ts \ No newline at end of file +en.d.json.ts + +# personal agent config +AGENTS.md +.opencode diff --git a/.nvmrc b/.nvmrc index 248216ad5..5bf4400f2 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24.12.0 +24.15.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 100268d2e..83a872367 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4107 +1,4618 @@ +## [1.61.1-beta.1](https://github.com/homarr-labs/homarr/compare/v1.61.0...v1.61.1-beta.1) (2026-05-08) + +### Performance Improvements + +* (next branch) reduce idle memory on startup ([#5637](https://github.com/homarr-labs/homarr/issues/5637)) ([5ee84f8](https://github.com/homarr-labs/homarr/commit/5ee84f8cf464c308729281cb4db572950ba85a82)) +* **memory:** combine 3 node processes into one ([#5600](https://github.com/homarr-labs/homarr/issues/5600)) ([a1aa550](https://github.com/homarr-labs/homarr/commit/a1aa5505a365688b456090a882770e561479833e)) + +## [1.61.0](https://github.com/homarr-labs/homarr/compare/v1.60.0...v1.61.0) (2026-05-08) + +### Features + +- add auto/system appearance mode + fix dark mode system resources charts ([#5492](https://github.com/homarr-labs/homarr/issues/5492)) ([831b622](https://github.com/homarr-labs/homarr/commit/831b6221fdf21fe4913b0f165ef551afeada4f33)) +- add pwa support ([#5530](https://github.com/homarr-labs/homarr/issues/5530)) ([277a509](https://github.com/homarr-labs/homarr/commit/277a509f490d57bb6547c86c417c29c0e7af7e40)) +- add Umami Analytics integration and widget ([#5362](https://github.com/homarr-labs/homarr/issues/5362)) ([43cc68b](https://github.com/homarr-labs/homarr/commit/43cc68bdd49c4877012e39e23355f6506aea7f4e)) +- **docker:** Podman compatibility, multi-socket support, per-host error isolation ([#5425](https://github.com/homarr-labs/homarr/issues/5425)) ([56af6bc](https://github.com/homarr-labs/homarr/commit/56af6bcaf00e980e4c7a40d8e912901cd1395f5a)) +- **entity-state:** add data attributes for custom-css styling ([#5655](https://github.com/homarr-labs/homarr/issues/5655)) ([0937555](https://github.com/homarr-labs/homarr/commit/0937555d49c29455bc33307ae5e50bf5b812c7c7)) +- **installations:** support secrets file for all environment variables ([#5125](https://github.com/homarr-labs/homarr/issues/5125)) ([4d30a2e](https://github.com/homarr-labs/homarr/commit/4d30a2e8c48f818bb4947a651b0fec5f64cbf569)) +- **qbittorrent:** add api-key support ([#5677](https://github.com/homarr-labs/homarr/issues/5677)) ([756e8d1](https://github.com/homarr-labs/homarr/commit/756e8d172455f91e40cd8fb5faff6953cc9778c5)) +- **spotlight:** rework !bang search UX ([#4813](https://github.com/homarr-labs/homarr/issues/4813)) ([b5c316b](https://github.com/homarr-labs/homarr/commit/b5c316b825bdffa267fd173a3c39a12269142665)) + +### Bug Fixes + +- **apps:** creation on the fly broken ([#5605](https://github.com/homarr-labs/homarr/issues/5605)) ([3183914](https://github.com/homarr-labs/homarr/commit/3183914a1502555681b73975062ed6ca8a48cb75)) +- **calendar:** keep working integrations when one fails ([#5629](https://github.com/homarr-labs/homarr/issues/5629)) ([44bd16d](https://github.com/homarr-labs/homarr/commit/44bd16d6770d289054df6c7c93adff42d2243252)) +- **lang:** portuguese is linked to brazilian portuguese on crowdin ([#5622](https://github.com/homarr-labs/homarr/issues/5622)) ([62be81e](https://github.com/homarr-labs/homarr/commit/62be81ea607a609a816157686700c54540e1568b)) +- **qbittorrent:** support version 5.2 ([#5672](https://github.com/homarr-labs/homarr/issues/5672)) ([00a0552](https://github.com/homarr-labs/homarr/commit/00a055283e8848542b67d88a656a99fdd0bcb444)) +- **update-checker:** hide prereleases on non-prerelease versions ([#5645](https://github.com/homarr-labs/homarr/issues/5645)) ([b07a4a0](https://github.com/homarr-labs/homarr/commit/b07a4a0f3e3af384ec477bf5c505a705b003de47)) + +### Reverts + +- **deps:** downgrade pnpm to v10 ([#5673](https://github.com/homarr-labs/homarr/issues/5673)) ([44a2973](https://github.com/homarr-labs/homarr/commit/44a2973b1aba1e2c6bd818be022205f3cdb7c943)) + +## [1.60.1-beta.2](https://github.com/homarr-labs/homarr/compare/v1.60.1-beta.1...v1.60.1-beta.2) (2026-05-07) + +### Performance Improvements + +- (next branch) reduce idle memory on startup ([#5637](https://github.com/homarr-labs/homarr/issues/5637)) ([5ee84f8](https://github.com/homarr-labs/homarr/commit/5ee84f8cf464c308729281cb4db572950ba85a82)) + +## [1.60.1-beta.1](https://github.com/homarr-labs/homarr/compare/v1.60.0...v1.60.1-beta.1) (2026-05-01) + +### Performance Improvements + +- **memory:** combine 3 node processes into one ([#5600](https://github.com/homarr-labs/homarr/issues/5600)) ([a1aa550](https://github.com/homarr-labs/homarr/commit/a1aa5505a365688b456090a882770e561479833e)) + +## [1.60.0](https://github.com/homarr-labs/homarr/compare/v1.59.3...v1.60.0) (2026-05-01) + +### Features + +- **about:** add opencollective contributors ([#5481](https://github.com/homarr-labs/homarr/issues/5481)) ([3d202d4](https://github.com/homarr-labs/homarr/commit/3d202d409febf33d0218b589c979744c84f87407)) + +### Bug Fixes + +- migrate from node-cron to croner ([#5407](https://github.com/homarr-labs/homarr/issues/5407)) ([e8edc20](https://github.com/homarr-labs/homarr/commit/e8edc203b6c862141668b043ef4232c22b8fae24)) +- **openapi:** openapi document empty ([#5579](https://github.com/homarr-labs/homarr/issues/5579)) ([ce8e330](https://github.com/homarr-labs/homarr/commit/ce8e330c82bc0be9f299f3071a1e80daafc5f789)) + +### Performance Improvements + +- **icons:** updater takes 10 seconds to run with high cpu usage ([#5608](https://github.com/homarr-labs/homarr/issues/5608)) ([ed6680b](https://github.com/homarr-labs/homarr/commit/ed6680ba6a42864185818eb8d90b2303846c1761)) + +## [1.60.0](https://github.com/homarr-labs/homarr/compare/v1.59.3...v1.60.0) (2026-05-01) + +### Features + +- **about:** add opencollective contributors ([#5481](https://github.com/homarr-labs/homarr/issues/5481)) ([3d202d4](https://github.com/homarr-labs/homarr/commit/3d202d409febf33d0218b589c979744c84f87407)) + +### Bug Fixes + +- migrate from node-cron to croner ([#5407](https://github.com/homarr-labs/homarr/issues/5407)) ([e8edc20](https://github.com/homarr-labs/homarr/commit/e8edc203b6c862141668b043ef4232c22b8fae24)) +- **openapi:** openapi document empty ([#5579](https://github.com/homarr-labs/homarr/issues/5579)) ([ce8e330](https://github.com/homarr-labs/homarr/commit/ce8e330c82bc0be9f299f3071a1e80daafc5f789)) + +### Performance Improvements + +- **icons:** updater takes 10 seconds to run with high cpu usage ([#5608](https://github.com/homarr-labs/homarr/issues/5608)) ([ed6680b](https://github.com/homarr-labs/homarr/commit/ed6680ba6a42864185818eb8d90b2303846c1761)) + +## [1.59.3](https://github.com/homarr-labs/homarr/compare/v1.59.2...v1.59.3) (2026-04-24) + +### Bug Fixes + +- **deps:** update dependency better-sqlite3 to ^12.9.0 ([#5531](https://github.com/homarr-labs/homarr/issues/5531)) ([7852f1d](https://github.com/homarr-labs/homarr/commit/7852f1d987d40707ae13494f9c934a563581f97f)) + +## [1.59.3](https://github.com/homarr-labs/homarr/compare/v1.59.2...v1.59.3) (2026-04-24) + +### Bug Fixes + +- **deps:** update dependency better-sqlite3 to ^12.9.0 ([#5531](https://github.com/homarr-labs/homarr/issues/5531)) ([7852f1d](https://github.com/homarr-labs/homarr/commit/7852f1d987d40707ae13494f9c934a563581f97f)) + +## [1.59.2](https://github.com/homarr-labs/homarr/compare/v1.59.1...v1.59.2) (2026-04-17) + +### Bug Fixes + +- **about:** add missing dependencies ([#5480](https://github.com/homarr-labs/homarr/issues/5480)) ([c48588c](https://github.com/homarr-labs/homarr/commit/c48588c6a748920b05f8afcd79fad17dc65f2930)) +- **deps:** update dependency @drizzle-team/brocli to ^0.12.0 ([#5489](https://github.com/homarr-labs/homarr/issues/5489)) ([74611b7](https://github.com/homarr-labs/homarr/commit/74611b75a736df43a77ebc780d2e0eee5c40e3f3)) +- **deps:** update dependency @immich/sdk to ^2.7.0 ([#5490](https://github.com/homarr-labs/homarr/issues/5490)) ([9cdf2aa](https://github.com/homarr-labs/homarr/commit/9cdf2aa1f2b1477522879095b603b100c1dd3ac0)) +- **deps:** update dependency @immich/sdk to ^2.7.2 ([#5494](https://github.com/homarr-labs/homarr/issues/5494)) ([0927f45](https://github.com/homarr-labs/homarr/commit/0927f45b2573753152fd5e9e318ba62b88abca35)) +- **deps:** update dependency fast-xml-parser to ^5.5.11 ([#5500](https://github.com/homarr-labs/homarr/issues/5500)) ([652ed1a](https://github.com/homarr-labs/homarr/commit/652ed1a5ed0beeb2dbd44976890f24dc12b90cf6)) +- **deps:** update dependency isomorphic-dompurify to ^3.8.0 ([#5503](https://github.com/homarr-labs/homarr/issues/5503)) ([0731b7c](https://github.com/homarr-labs/homarr/commit/0731b7c5ef272bcf69c566cdec723f2696309e67)) +- **deps:** update dependency jotai to ^2.19.1 ([#5487](https://github.com/homarr-labs/homarr/issues/5487)) ([efd8a55](https://github.com/homarr-labs/homarr/commit/efd8a55b6ea113bc42bc90d9ccb0db6c1d2b68ef)) +- **deps:** update dependency next-intl to v4.9.1 [security] ([#5470](https://github.com/homarr-labs/homarr/issues/5470)) ([f2437c4](https://github.com/homarr-labs/homarr/commit/f2437c473106689e9fa93e7dcbea84b00800ea4a)) +- **deps:** update dependency swagger-ui-react to ^5.32.2 ([#5488](https://github.com/homarr-labs/homarr/issues/5488)) ([cf131c5](https://github.com/homarr-labs/homarr/commit/cf131c5c51f6c21f942ab89d02353f93dc05774c)) +- **deps:** update dependency typescript-eslint to ^8.58.1 ([#5496](https://github.com/homarr-labs/homarr/issues/5496)) ([f88984c](https://github.com/homarr-labs/homarr/commit/f88984cda844beb1099a08c9cdeb6691ad13b5a8)) +- **deps:** update react monorepo to v19.2.5 ([#5502](https://github.com/homarr-labs/homarr/issues/5502)) ([c8a61a9](https://github.com/homarr-labs/homarr/commit/c8a61a9df3087de28c76f573623725eec246dd32)) +- **deps:** update testcontainers-node monorepo to ^11.14.0 ([#5498](https://github.com/homarr-labs/homarr/issues/5498)) ([1057b47](https://github.com/homarr-labs/homarr/commit/1057b478c37d02e9de7bcd155f0b3fb764149abe)) +- **deps:** update tiptap monorepo to v3.22.3 ([#5499](https://github.com/homarr-labs/homarr/issues/5499)) ([95abd2c](https://github.com/homarr-labs/homarr/commit/95abd2c9d3a563c7eaebe12f3b8015e3299e27e8)) +- **deps:** update turbo monorepo to ^2.9.4 ([#5476](https://github.com/homarr-labs/homarr/issues/5476)) ([813f2fa](https://github.com/homarr-labs/homarr/commit/813f2fa5efb999d3364882578fdf456537dba3a6)) +- **deps:** update turbo monorepo to ^2.9.5 ([#5491](https://github.com/homarr-labs/homarr/issues/5491)) ([ed24ce6](https://github.com/homarr-labs/homarr/commit/ed24ce6381466fa530ce225363231303be4ed92e)) +- preserve all-day event dates in Nextcloud calendar integration ([#5523](https://github.com/homarr-labs/homarr/issues/5523)) ([2e78979](https://github.com/homarr-labs/homarr/commit/2e789795ed11c816550b6a3ce88fe92a360ede9c)) + +## [1.59.1](https://github.com/homarr-labs/homarr/compare/v1.59.0...v1.59.1) (2026-04-10) + +### Bug Fixes + +- **qbittorrent:** requests fail ([#5473](https://github.com/homarr-labs/homarr/issues/5473)) ([db6bb87](https://github.com/homarr-labs/homarr/commit/db6bb870e3be14c7895a2882755d3aee09e44fa6)) + +### Reverts + +- **deps:** downgrade undici from v8 to v7 ([#5473](https://github.com/homarr-labs/homarr/issues/5473)) ([dc44fac](https://github.com/homarr-labs/homarr/commit/dc44fac42aab5679427b2921402dfa11e634e1cf)) + +## [1.59.0](https://github.com/homarr-labs/homarr/compare/v1.58.1...v1.59.0) (2026-04-10) + +### Features + +- Anchor integration and Anchor Note widget ([#5040](https://github.com/homarr-labs/homarr/issues/5040)) ([7879b31](https://github.com/homarr-labs/homarr/commit/7879b3163074b6af9381b8eb70dced55faddc506)) +- **rss-feed:** add optional poster ([#5452](https://github.com/homarr-labs/homarr/issues/5452)) ([6ec058c](https://github.com/homarr-labs/homarr/commit/6ec058c835040dbf72cd2490d49f94be7da066dc)) +- **rss-feed:** add periodic live updates ([#5449](https://github.com/homarr-labs/homarr/issues/5449)) ([faffb81](https://github.com/homarr-labs/homarr/commit/faffb818f99900e3abb5fa78cfbb7980692362b5)) +- speedtest tracker integration ([#5363](https://github.com/homarr-labs/homarr/issues/5363)) ([22d599c](https://github.com/homarr-labs/homarr/commit/22d599c0cf64b39f3d616ceadc6c2ac32551f99d)) + +### Bug Fixes + +- **deps:** update dependency @tabler/icons-react to ^3.41.1 ([#5400](https://github.com/homarr-labs/homarr/issues/5400)) ([f0ef472](https://github.com/homarr-labs/homarr/commit/f0ef4729bfb7c3672968b77b9b757bc34877c60f)) +- **deps:** update dependency adm-zip to v0.5.17 ([#5422](https://github.com/homarr-labs/homarr/issues/5422)) ([dbe8d84](https://github.com/homarr-labs/homarr/commit/dbe8d84202b00687f16784cbedf61d7488efbbff)) +- **deps:** update dependency dotenv to ^17.4.0 ([#5427](https://github.com/homarr-labs/homarr/issues/5427)) ([50bf7cd](https://github.com/homarr-labs/homarr/commit/50bf7cdf194c13bcbf95ef8a6a1bc7eb4c9c3865)) +- **deps:** update dependency dotenv to ^17.4.1 ([#5462](https://github.com/homarr-labs/homarr/issues/5462)) ([845f115](https://github.com/homarr-labs/homarr/commit/845f11526ea7b3dd6f543fad48a158a4782c52bb)) +- **deps:** update dependency fast-xml-parser to ^5.5.10 ([#5439](https://github.com/homarr-labs/homarr/issues/5439)) ([a7b195d](https://github.com/homarr-labs/homarr/commit/a7b195d2cb25fffe81266e7f6fa9499d94cae733)) +- **deps:** update dependency next to v16.2.3 [security] ([#5461](https://github.com/homarr-labs/homarr/issues/5461)) ([7982def](https://github.com/homarr-labs/homarr/commit/7982def853fd69c269946dc2d6377186512baaf9)) +- **deps:** update dependency next-intl to v4.8.4 ([#5413](https://github.com/homarr-labs/homarr/issues/5413)) ([6047eb4](https://github.com/homarr-labs/homarr/commit/6047eb4477584172f7d8e6e14237c251ac487d81)) +- **deps:** update dependency next-intl to v4.9.0 ([#5426](https://github.com/homarr-labs/homarr/issues/5426)) ([612038a](https://github.com/homarr-labs/homarr/commit/612038ad070681c582cb54ac4298bc07700765c9)) +- **deps:** update dependency react-quill-new to ^3.8.3 ([#5463](https://github.com/homarr-labs/homarr/issues/5463)) ([13e13ba](https://github.com/homarr-labs/homarr/commit/13e13ba3526436b044ac83d08c346e8e406ca3d4)) +- **deps:** update dependency sass to ^1.99.0 ([#5437](https://github.com/homarr-labs/homarr/issues/5437)) ([3f73474](https://github.com/homarr-labs/homarr/commit/3f73474d3125279d94395272365aa67e0a0f69e8)) +- **deps:** update dependency typescript-eslint to ^8.58.0 ([#5409](https://github.com/homarr-labs/homarr/issues/5409)) ([1e869f6](https://github.com/homarr-labs/homarr/commit/1e869f6a96d7e34af068b5666e01093a4b20fe97)) +- **deps:** update dependency undici to v8 ([#5432](https://github.com/homarr-labs/homarr/issues/5432)) ([f2f5128](https://github.com/homarr-labs/homarr/commit/f2f5128cbd961b6576e195ac8b695f12996c377e)) +- **deps:** update dependency undici to v8.0.1 ([#5440](https://github.com/homarr-labs/homarr/issues/5440)) ([a0e0083](https://github.com/homarr-labs/homarr/commit/a0e0083b16ea6ce42a0e3594ad53321210c98141)) +- **deps:** update dependency undici to v8.0.2 ([#5446](https://github.com/homarr-labs/homarr/issues/5446)) ([75b36bb](https://github.com/homarr-labs/homarr/commit/75b36bb1609a0ea1a97158f4674ebf8f4c5f205e)) +- **deps:** update nextjs monorepo to v16.2.2 ([#5418](https://github.com/homarr-labs/homarr/issues/5418)) ([8597470](https://github.com/homarr-labs/homarr/commit/859747037b4a0caca9e208e0b4ebce638b6c5d4e)) +- **deps:** update tanstack-query monorepo to ^5.96.0 ([#5410](https://github.com/homarr-labs/homarr/issues/5410)) ([8b1e3ba](https://github.com/homarr-labs/homarr/commit/8b1e3babc02d8ab6a7db9fd85325a0b92813ce8c)) +- **deps:** update tanstack-query monorepo to ^5.96.1 ([#5421](https://github.com/homarr-labs/homarr/issues/5421)) ([72ad935](https://github.com/homarr-labs/homarr/commit/72ad935ddf831c008e53ae3a1c5e924cc82710d1)) +- **deps:** update tanstack-query monorepo to ^5.96.2 ([#5442](https://github.com/homarr-labs/homarr/issues/5442)) ([b619ba1](https://github.com/homarr-labs/homarr/commit/b619ba1d46768cc3ed1d3739e0f379e0059bc2d9)) +- **deps:** update tiptap monorepo to v3.22.0 ([#5414](https://github.com/homarr-labs/homarr/issues/5414)) ([402d948](https://github.com/homarr-labs/homarr/commit/402d948fe7d36406b7a75a4e4861330c6bcaa78b)) +- **deps:** update tiptap monorepo to v3.22.1 ([#5434](https://github.com/homarr-labs/homarr/issues/5434)) ([2baab54](https://github.com/homarr-labs/homarr/commit/2baab5402d79caba0e1b3c53f52fdf0cbeb6875d)) +- **deps:** update tiptap monorepo to v3.22.2 ([#5448](https://github.com/homarr-labs/homarr/issues/5448)) ([8cab4b0](https://github.com/homarr-labs/homarr/commit/8cab4b03333050376ae22a14eaaa1c0f045992d3)) +- **deps:** update turbo monorepo to ^2.9.1 ([#5408](https://github.com/homarr-labs/homarr/issues/5408)) ([7607140](https://github.com/homarr-labs/homarr/commit/7607140f94f5b19a6b9cbacc7deabd2afc004d24)) +- **deps:** update turbo monorepo to ^2.9.2 ([#5415](https://github.com/homarr-labs/homarr/issues/5415)) ([d8480c0](https://github.com/homarr-labs/homarr/commit/d8480c05a63525dc655a73675c2a9eec575a9539)) +- **deps:** update turbo monorepo to ^2.9.3 ([#5419](https://github.com/homarr-labs/homarr/issues/5419)) ([dfa8793](https://github.com/homarr-labs/homarr/commit/dfa87939f200719af9f34e0e409895cf6e5a9c13)) +- **logs:** missing fields from top level error with metadata in output ([#5456](https://github.com/homarr-labs/homarr/issues/5456)) ([41a03ef](https://github.com/homarr-labs/homarr/commit/41a03ef4e03675c5adf1171be152a767679bc466)) +- **security:** remove salt from database ([#5412](https://github.com/homarr-labs/homarr/issues/5412)) ([2454cac](https://github.com/homarr-labs/homarr/commit/2454cac7be14207f822bf3e38f9a7fd261645dc5)) + +## [1.58.1](https://github.com/homarr-labs/homarr/compare/v1.58.0...v1.58.1) (2026-04-04) + +### Bug Fixes + +- arabic text in english translations ([a86cdb9](https://github.com/homarr-labs/homarr/commit/a86cdb9fb91a10c8250f849e70c17777c18ada77)) + +## [1.58.0](https://github.com/homarr-labs/homarr/compare/v1.57.1...v1.58.0) (2026-04-03) + +### Features + +- **integrations:** add search.ch integration with timetable widget ([#5180](https://github.com/homarr-labs/homarr/issues/5180)) ([abb2dfc](https://github.com/homarr-labs/homarr/commit/abb2dfc92ab51b16e7172374cfee8b9c0c752454)) + +### Bug Fixes + +- **boards:** unable to click on links at settings page ([#5230](https://github.com/homarr-labs/homarr/issues/5230)) ([6a200c3](https://github.com/homarr-labs/homarr/commit/6a200c39afaa1a9a1057643612065a40ad1cdd82)) +- **deps:** update dependency @ctrl/deluge to ^7.5.3 ([#5365](https://github.com/homarr-labs/homarr/issues/5365)) ([9c134c5](https://github.com/homarr-labs/homarr/commit/9c134c5ceb742b21b021ef3b49de8cc0d526d460)) +- **deps:** update dependency @ctrl/deluge to v8 ([#5367](https://github.com/homarr-labs/homarr/issues/5367)) ([e88e3d1](https://github.com/homarr-labs/homarr/commit/e88e3d17c01dab8836bec11d2ac01195f06cdc2e)) +- **deps:** update dependency @immich/sdk to ^2.6.2 ([#5370](https://github.com/homarr-labs/homarr/issues/5370)) ([4a5bafa](https://github.com/homarr-labs/homarr/commit/4a5bafa79092b209e94a56f72362011f416bf115)) +- **deps:** update dependency @immich/sdk to ^2.6.3 ([#5380](https://github.com/homarr-labs/homarr/issues/5380)) ([2dd3c90](https://github.com/homarr-labs/homarr/commit/2dd3c906c4215b55e23f4b15ba4b423e23be8376)) +- **deps:** update dependency @tabler/icons-react to ^3.41.0 ([#5384](https://github.com/homarr-labs/homarr/issues/5384)) ([a9bcc9d](https://github.com/homarr-labs/homarr/commit/a9bcc9d04bdfcf28ea561cd590ca2a4bd775593c)) +- **deps:** update dependency better-sqlite3 to ^12.8.0 ([#5266](https://github.com/homarr-labs/homarr/issues/5266)) ([46db8b6](https://github.com/homarr-labs/homarr/commit/46db8b6ab32406fb4ff7a7a9938692954778a070)) +- **deps:** update dependency drizzle-orm to ^0.45.2 ([#5388](https://github.com/homarr-labs/homarr/issues/5388)) ([0a78e3f](https://github.com/homarr-labs/homarr/commit/0a78e3f12aa99509f42d7af647a478c5abaf5c96)) +- **deps:** update dependency fast-xml-parser to ^5.5.9 ([#5359](https://github.com/homarr-labs/homarr/issues/5359)) ([189806b](https://github.com/homarr-labs/homarr/commit/189806b5a2b8e67f925cc8def6bc8ddefdc5bfc4)) +- **deps:** update dependency fastify to ^5.8.4 ([#5351](https://github.com/homarr-labs/homarr/issues/5351)) ([728f7e4](https://github.com/homarr-labs/homarr/commit/728f7e489aa499bcd7e97c7ec8571e29e7e2cab3)) +- **deps:** update dependency isomorphic-dompurify to ^3.7.0 ([#5366](https://github.com/homarr-labs/homarr/issues/5366)) ([c2b54dd](https://github.com/homarr-labs/homarr/commit/c2b54ddfaab93daa4e65c0c38bf5c27e4402a492)) +- **deps:** update dependency isomorphic-dompurify to ^3.7.1 ([#5369](https://github.com/homarr-labs/homarr/issues/5369)) ([8d1ff40](https://github.com/homarr-labs/homarr/commit/8d1ff4065d669268f0e6a03f2b68c1ba728a756a)) +- **deps:** update dependency jotai to ^2.19.0 ([#5368](https://github.com/homarr-labs/homarr/issues/5368)) ([14d8717](https://github.com/homarr-labs/homarr/commit/14d87178b5a93bdc6fb74793feed95d014814d0b)) +- **deps:** update dependency node-ical to ^0.23.1 - abandoned ([#4856](https://github.com/homarr-labs/homarr/issues/4856)) ([b07c545](https://github.com/homarr-labs/homarr/commit/b07c545f17f4dafa62167047baa9eed4b7ee4395)) +- **deps:** update dependency typescript-eslint to ^8.57.2 ([#5360](https://github.com/homarr-labs/homarr/issues/5360)) ([cefbf0e](https://github.com/homarr-labs/homarr/commit/cefbf0e2715e9adbc72cdb0b83d84c309e3257d6)) +- **deps:** update dependency undici to v7.24.6 ([#5374](https://github.com/homarr-labs/homarr/issues/5374)) ([4f2cc9a](https://github.com/homarr-labs/homarr/commit/4f2cc9af2a42e19624def3bdea60fcb00334c483)) +- **deps:** update dependency zod to ^4.3.5 - abandoned ([#4803](https://github.com/homarr-labs/homarr/issues/4803)) ([2b4c83d](https://github.com/homarr-labs/homarr/commit/2b4c83dccac168ffa6f9b6e184ed004659373cf7)) +- **deps:** update dependency zod to ^4.3.6 ([#5376](https://github.com/homarr-labs/homarr/issues/5376)) ([a9582f0](https://github.com/homarr-labs/homarr/commit/a9582f04edb0e161d1fab6e64b13d0ce463ef341)) +- **deps:** update tanstack-query monorepo to ^5.95.0 ([#5325](https://github.com/homarr-labs/homarr/issues/5325)) ([b11bf36](https://github.com/homarr-labs/homarr/commit/b11bf367d0567e4c8b9068804442ebd200dab01c)) +- **deps:** update tanstack-query monorepo to ^5.95.1 ([#5355](https://github.com/homarr-labs/homarr/issues/5355)) ([332b6b4](https://github.com/homarr-labs/homarr/commit/332b6b4f42e7c90570cd4c25a6e6a331a76c660f)) +- **deps:** update tanstack-query monorepo to ^5.95.2 ([#5357](https://github.com/homarr-labs/homarr/issues/5357)) ([6820991](https://github.com/homarr-labs/homarr/commit/682099189b689ea17e16af41fd280a72ed68016f)) +- **deps:** update tiptap monorepo to v3.20.5 ([#5371](https://github.com/homarr-labs/homarr/issues/5371)) ([6820f8a](https://github.com/homarr-labs/homarr/commit/6820f8afea622587c1ee18b13d13a041ca0572ee)) +- **deps:** update tiptap monorepo to v3.21.0 ([#5386](https://github.com/homarr-labs/homarr/issues/5386)) ([b30dbaf](https://github.com/homarr-labs/homarr/commit/b30dbafbbbad468ff37ff11237a64ec29df62345)) +- **deps:** update trpc monorepo to ^11.15.0 ([#5354](https://github.com/homarr-labs/homarr/issues/5354)) ([2fb2981](https://github.com/homarr-labs/homarr/commit/2fb2981d2fb79ca2ca6a9bc5c08d91c8fa5710e7)) +- **deps:** update trpc monorepo to ^11.15.1 ([#5381](https://github.com/homarr-labs/homarr/issues/5381)) ([451e68a](https://github.com/homarr-labs/homarr/commit/451e68ab57551e23dd7ae772b7483cc56d57ebbb)) +- **deps:** update trpc monorepo to ^11.16.0 ([#5392](https://github.com/homarr-labs/homarr/issues/5392)) ([72a93e6](https://github.com/homarr-labs/homarr/commit/72a93e681f3701459176692857220730c279f80b)) +- **deps:** update turbo monorepo to ^2.8.21 ([#5391](https://github.com/homarr-labs/homarr/issues/5391)) ([fa40b6b](https://github.com/homarr-labs/homarr/commit/fa40b6b647b884a7f10c268a22330e0e68b50d4d)) +- honor trusted certificates in Immich integration requests ([#5275](https://github.com/homarr-labs/homarr/issues/5275)) ([7679553](https://github.com/homarr-labs/homarr/commit/7679553f16ff2945a3eb6cb668ca3a701d13d5ce)), closes [#5242](https://github.com/homarr-labs/homarr/issues/5242) +- node-ical prevents many trpc queries from loading ([#5395](https://github.com/homarr-labs/homarr/issues/5395)) ([c977b84](https://github.com/homarr-labs/homarr/commit/c977b84e2d84d5724219f5ff5f99bc550438e168)) + +## [1.57.1](https://github.com/homarr-labs/homarr/compare/v1.57.0...v1.57.1) (2026-03-27) + +### Bug Fixes + +- dashdot gpu ([#5347](https://github.com/homarr-labs/homarr/issues/5347)) ([192a43a](https://github.com/homarr-labs/homarr/commit/192a43a031eb9431da2c11395eda69a6c7236b9b)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.13.11 ([#5345](https://github.com/homarr-labs/homarr/issues/5345)) ([49d9394](https://github.com/homarr-labs/homarr/commit/49d9394cd78b2a1146c8dc00dd982215a2f9a580)) +- **deps:** update dependency dockerode to ^4.0.10 ([#5327](https://github.com/homarr-labs/homarr/issues/5327)) ([42a3791](https://github.com/homarr-labs/homarr/commit/42a3791e6b5664a0f28d3ee4d29d5257ef3765f6)) +- **deps:** update dependency fast-xml-parser to ^5.5.8 ([#5324](https://github.com/homarr-labs/homarr/issues/5324)) ([7982938](https://github.com/homarr-labs/homarr/commit/798293813cf82e38d7059069823f927b7cdfb3b8)) + +## [1.57.0](https://github.com/homarr-labs/homarr/compare/v1.56.1...v1.57.0) (2026-03-27) + +### Features + +- add "allowModals" option for iframe widget ([#5339](https://github.com/homarr-labs/homarr/issues/5339)) ([2fefd9d](https://github.com/homarr-labs/homarr/commit/2fefd9da01c827160fa5fd9b63a38615ea9969e2)) +- add GPU monitoring support via Glances integration ([#5255](https://github.com/homarr-labs/homarr/issues/5255)) ([003dac4](https://github.com/homarr-labs/homarr/commit/003dac4744f2e23535f1cbb7494187201af4b164)), closes [#5102](https://github.com/homarr-labs/homarr/issues/5102) +- add nextcloud notification provider ([#5343](https://github.com/homarr-labs/homarr/issues/5343)) ([f88bf95](https://github.com/homarr-labs/homarr/commit/f88bf9582e1cf45a6b7fd898e12d227869a3849f)) + +### Bug Fixes + +- **deps:** update dependency @immich/sdk to ^2.6.0 ([#5318](https://github.com/homarr-labs/homarr/issues/5318)) ([20a9b3d](https://github.com/homarr-labs/homarr/commit/20a9b3d556a15e6fdf7d1dbd78b677b5ce219c75)) +- **deps:** update dependency @immich/sdk to ^2.6.1 ([#5319](https://github.com/homarr-labs/homarr/issues/5319)) ([feaf022](https://github.com/homarr-labs/homarr/commit/feaf022965cf4a27112c7e3bcb9ef3ad0dd5c281)) +- **deps:** update dependency @next/eslint-plugin-next to v16.1.7 ([#5289](https://github.com/homarr-labs/homarr/issues/5289)) ([237d11d](https://github.com/homarr-labs/homarr/commit/237d11d2c021e28d58b0d627d2802d509d4c1b2b)) +- **deps:** update dependency @tanstack/react-query to ^5.91.0 ([#5305](https://github.com/homarr-labs/homarr/issues/5305)) ([13b99d0](https://github.com/homarr-labs/homarr/commit/13b99d021b46fe0541ce9b42ba66756fafd26c30)) +- **deps:** update dependency @tanstack/react-query to ^5.91.2 ([#5314](https://github.com/homarr-labs/homarr/issues/5314)) ([6fa6ba3](https://github.com/homarr-labs/homarr/commit/6fa6ba385e6691fefbb9f045a0ff976bcd85de16)) +- **deps:** update dependency drizzle-kit to ^0.31.10 ([#5291](https://github.com/homarr-labs/homarr/issues/5291)) ([09227a3](https://github.com/homarr-labs/homarr/commit/09227a3884d291032f1012b59ce06babc3c87103)) +- **deps:** update dependency fast-xml-parser to ^5.5.6 ([#5297](https://github.com/homarr-labs/homarr/issues/5297)) ([991044e](https://github.com/homarr-labs/homarr/commit/991044ebd78288bea7b441d3c14b159b5e66915b)) +- **deps:** update dependency fast-xml-parser to ^5.5.7 ([#5315](https://github.com/homarr-labs/homarr/issues/5315)) ([2336f9e](https://github.com/homarr-labs/homarr/commit/2336f9ee5e35f7b610743dee55b91caf8434c1e4)) +- **deps:** update dependency ioredis to v5.10.1 ([#5316](https://github.com/homarr-labs/homarr/issues/5316)) ([47b2d36](https://github.com/homarr-labs/homarr/commit/47b2d36f7a0933b6a6bbb61a449888be9304e1c5)) +- **deps:** update dependency isomorphic-dompurify to ^3.4.0 ([#5292](https://github.com/homarr-labs/homarr/issues/5292)) ([6276449](https://github.com/homarr-labs/homarr/commit/62764499e7bbc9995ecf3de7351c9224d6aee4b6)) +- **deps:** update dependency isomorphic-dompurify to ^3.5.0 ([#5299](https://github.com/homarr-labs/homarr/issues/5299)) ([b6b11c3](https://github.com/homarr-labs/homarr/commit/b6b11c39d2b4a33c5732ae239d7c1aaba6003cc6)) +- **deps:** update dependency isomorphic-dompurify to ^3.5.1 ([#5300](https://github.com/homarr-labs/homarr/issues/5300)) ([94dfddf](https://github.com/homarr-labs/homarr/commit/94dfddf8bde2966b46bcd2d30e5e4f886ebe4605)) +- **deps:** update dependency isomorphic-dompurify to ^3.6.0 ([#5334](https://github.com/homarr-labs/homarr/issues/5334)) ([8d64cb8](https://github.com/homarr-labs/homarr/commit/8d64cb8a5e276677b033774152c921aedc1e6c8a)) +- **deps:** update dependency mysql2 to v3.20.0 ([#5283](https://github.com/homarr-labs/homarr/issues/5283)) ([4fb48c2](https://github.com/homarr-labs/homarr/commit/4fb48c23a2ccb1c047bab0d354933561e81cc3ed)) +- **deps:** update dependency swagger-ui-react to ^5.32.1 ([#5296](https://github.com/homarr-labs/homarr/issues/5296)) ([63c55ce](https://github.com/homarr-labs/homarr/commit/63c55cec5711c41544c65ab83f24d09e63b10354)) +- **deps:** update dependency trpc-to-openapi to ^3.2.0 ([#5320](https://github.com/homarr-labs/homarr/issues/5320)) ([22f5d3b](https://github.com/homarr-labs/homarr/commit/22f5d3b95959cf0a835c9750b41106eaafc4432e)) +- **deps:** update dependency typescript-eslint to ^8.57.1 ([#5286](https://github.com/homarr-labs/homarr/issues/5286)) ([d4e4c96](https://github.com/homarr-labs/homarr/commit/d4e4c9669d648632a055b5ec0515821b50821142)) +- **deps:** update dependency undici to v7.24.5 ([#5338](https://github.com/homarr-labs/homarr/issues/5338)) ([22bbef9](https://github.com/homarr-labs/homarr/commit/22bbef9d8e03215abddf6c6e26a5df45f252626d)) +- **deps:** update dependency ws to ^8.20.0 ([#5337](https://github.com/homarr-labs/homarr/issues/5337)) ([d53c922](https://github.com/homarr-labs/homarr/commit/d53c922688606bd7d9494089e1ec43b930ad9923)) +- **deps:** update mantine monorepo to ^8.3.18 ([#5298](https://github.com/homarr-labs/homarr/issues/5298)) ([6f8e629](https://github.com/homarr-labs/homarr/commit/6f8e62963a4eb47cb3095dff46ee0e759e1cbd3c)) +- **deps:** update nextjs monorepo to v16.2.0 ([#5309](https://github.com/homarr-labs/homarr/issues/5309)) ([8831613](https://github.com/homarr-labs/homarr/commit/883161357dab4d94ff794f9444040d88074c464c)) +- **deps:** update nextjs monorepo to v16.2.1 ([#5330](https://github.com/homarr-labs/homarr/issues/5330)) ([e23a397](https://github.com/homarr-labs/homarr/commit/e23a397a80e4409f5da50c737aeb26b295ce79fc)) +- **deps:** update testcontainers-node monorepo to ^11.13.0 ([#5293](https://github.com/homarr-labs/homarr/issues/5293)) ([c009dd7](https://github.com/homarr-labs/homarr/commit/c009dd7de649bf24ab9bcf5ea25c65ebd18540bb)) +- **deps:** update tiptap monorepo to v3.20.4 ([#5287](https://github.com/homarr-labs/homarr/issues/5287)) ([369b4d4](https://github.com/homarr-labs/homarr/commit/369b4d486327d0eaa04b70dd692c426f9a39afd7)) +- **deps:** update trpc monorepo to ^11.14.1 ([#5328](https://github.com/homarr-labs/homarr/issues/5328)) ([d7f0596](https://github.com/homarr-labs/homarr/commit/d7f0596db8e44e2e79bb26095abd142b50675cc3)) +- **deps:** update turbo monorepo to ^2.8.18 ([#5308](https://github.com/homarr-labs/homarr/issues/5308)) ([24694b9](https://github.com/homarr-labs/homarr/commit/24694b92411aae818b97a3a5c9add97d707a2f38)) +- **deps:** update turbo monorepo to ^2.8.19 ([#5310](https://github.com/homarr-labs/homarr/issues/5310)) ([7537184](https://github.com/homarr-labs/homarr/commit/7537184a8168a4837d0a83a925a70c938555f199)) +- **deps:** update turbo monorepo to ^2.8.20 ([#5317](https://github.com/homarr-labs/homarr/issues/5317)) ([5b4e6fc](https://github.com/homarr-labs/homarr/commit/5b4e6fcc11c877815c4730607de84ab70d630fb8)) +- handle null ports in Docker container table ([#5313](https://github.com/homarr-labs/homarr/issues/5313)) ([1639da5](https://github.com/homarr-labs/homarr/commit/1639da57794d2555426e56030b4b34e2cc201aa9)), closes [#5311](https://github.com/homarr-labs/homarr/issues/5311) +- warnings in code ([4f2b821](https://github.com/homarr-labs/homarr/commit/4f2b8217f819b91ec4b05e32aebd6bc5473db155)) + +## [1.56.1](https://github.com/homarr-labs/homarr/compare/v1.56.0...v1.56.1) (2026-03-20) + +### Bug Fixes + +- **deps:** update dependency dayjs to ^1.11.20 ([#5253](https://github.com/homarr-labs/homarr/issues/5253)) ([615062c](https://github.com/homarr-labs/homarr/commit/615062c6b141fa1e4bc91d2fab505fa1652608d2)) +- **deps:** update dependency fast-xml-parser to ^5.5.1 ([#5246](https://github.com/homarr-labs/homarr/issues/5246)) ([91a9b6b](https://github.com/homarr-labs/homarr/commit/91a9b6bec9438e9a812960b829cea343e8478c63)) +- **deps:** update dependency fast-xml-parser to ^5.5.3 ([#5251](https://github.com/homarr-labs/homarr/issues/5251)) ([d1d8659](https://github.com/homarr-labs/homarr/commit/d1d8659f951cdd22bf4a22b407a4f3027f036ec2)) +- **deps:** update dependency fast-xml-parser to ^5.5.5 ([#5270](https://github.com/homarr-labs/homarr/issues/5270)) ([2423ecd](https://github.com/homarr-labs/homarr/commit/2423ecdce57353dd50d678444da800c02a246223)) +- **deps:** update dependency isomorphic-dompurify to ^3.1.0 ([#5239](https://github.com/homarr-labs/homarr/issues/5239)) ([63f91b6](https://github.com/homarr-labs/homarr/commit/63f91b6352e9ba58a0823434d86915371f1c1d30)) +- **deps:** update dependency isomorphic-dompurify to ^3.3.0 ([#5252](https://github.com/homarr-labs/homarr/issues/5252)) ([e8f6876](https://github.com/homarr-labs/homarr/commit/e8f6876d2477fb0e1936006b81f7324b90b6eb33)) +- **deps:** update dependency jotai to ^2.18.1 ([#5238](https://github.com/homarr-labs/homarr/issues/5238)) ([729b49f](https://github.com/homarr-labs/homarr/commit/729b49ffa9b1f91ebd7bcd2300febba4d9d0fbb9)) +- **deps:** update dependency mysql2 to v3.19.1 ([#5240](https://github.com/homarr-labs/homarr/issues/5240)) ([1040eca](https://github.com/homarr-labs/homarr/commit/1040ecac04fd0b10e101495d5230a3fa4898097a)) +- **deps:** update dependency next to v16.1.7 [security] ([#5263](https://github.com/homarr-labs/homarr/issues/5263)) ([3bbde3c](https://github.com/homarr-labs/homarr/commit/3bbde3cbb8eb3aa528485f17d40817cb982a8687)) +- **deps:** update dependency sass to ^1.98.0 ([#5247](https://github.com/homarr-labs/homarr/issues/5247)) ([f995cba](https://github.com/homarr-labs/homarr/commit/f995cba157c9954b6f266bd5b2bb8d60a08f51f1)) +- **deps:** update dependency typescript-eslint to ^8.57.0 ([#5241](https://github.com/homarr-labs/homarr/issues/5241)) ([7841b58](https://github.com/homarr-labs/homarr/commit/7841b58f0fdd4a4494b6f3d61881a1efb4c9eba3)) +- **deps:** update mantine monorepo to ^8.3.17 ([#5271](https://github.com/homarr-labs/homarr/issues/5271)) ([6fa9087](https://github.com/homarr-labs/homarr/commit/6fa9087a119334dee63e4ca4ed51276b25c4564a)) +- **deps:** update tiptap monorepo to v3.20.2 ([#5279](https://github.com/homarr-labs/homarr/issues/5279)) ([55cf3c7](https://github.com/homarr-labs/homarr/commit/55cf3c72a3d9cd9f702e802716d549d7d2644105)) +- **deps:** update trpc monorepo to ^11.13.2 ([#5273](https://github.com/homarr-labs/homarr/issues/5273)) ([7d93b10](https://github.com/homarr-labs/homarr/commit/7d93b1003245ab89fdba7175b0b4f745041cd1fe)) +- **deps:** update trpc monorepo to ^11.13.3 ([#5276](https://github.com/homarr-labs/homarr/issues/5276)) ([0e0b857](https://github.com/homarr-labs/homarr/commit/0e0b857905a7b5196dbf529520f86467aa94d8ce)) +- **deps:** update trpc monorepo to ^11.13.4 ([#5278](https://github.com/homarr-labs/homarr/issues/5278)) ([9648d9e](https://github.com/homarr-labs/homarr/commit/9648d9e99f02be8ba16a5238bd47866f7303724d)) +- **deps:** update turbo monorepo to ^2.8.15 ([#5243](https://github.com/homarr-labs/homarr/issues/5243)) ([1bd924e](https://github.com/homarr-labs/homarr/commit/1bd924ea9917949ac64ab754d97964b12c083b82)) +- **deps:** update turbo monorepo to ^2.8.16 ([#5250](https://github.com/homarr-labs/homarr/issues/5250)) ([ac80008](https://github.com/homarr-labs/homarr/commit/ac80008ce0796cb6927642c83ff2e667f6e9d24c)) +- **deps:** update turbo monorepo to ^2.8.17 ([#5265](https://github.com/homarr-labs/homarr/issues/5265)) ([d2f438f](https://github.com/homarr-labs/homarr/commit/d2f438f294df3093b249213ac0a018b770705e3b)) + +## [1.56.0](https://github.com/homarr-labs/homarr/compare/v1.55.0...v1.56.0) (2026-03-13) + +### Features + +- add immich integration and widget ([#5165](https://github.com/homarr-labs/homarr/issues/5165)) ([cdd90b8](https://github.com/homarr-labs/homarr/commit/cdd90b8aa091e4d05a40af35ea87486b83bf4182)) +- **boards:** show supported integrations in widget selection ([#5187](https://github.com/homarr-labs/homarr/issues/5187)) ([dabe96b](https://github.com/homarr-labs/homarr/commit/dabe96bd5ea52110812934b1ec9c8dc9ecd77603)) +- expand cli ([#5159](https://github.com/homarr-labs/homarr/issues/5159)) ([aa36ce3](https://github.com/homarr-labs/homarr/commit/aa36ce3c4784c91024c4e8001c236e28f02396e7)) +- Tracearr integration ([#5060](https://github.com/homarr-labs/homarr/issues/5060)) ([f686001](https://github.com/homarr-labs/homarr/commit/f68600150ab1985d56f1bed45d8ac158a74ec443)) + +### Bug Fixes + +- **boards:** duplication of boards fails with postgresql / mysql ([#5228](https://github.com/homarr-labs/homarr/issues/5228)) ([ba9c3f3](https://github.com/homarr-labs/homarr/commit/ba9c3f3e27659a5c06604d06192ccb8316658937)) +- **deps:** update dependency @tabler/icons-react to ^3.38.0 ([#5182](https://github.com/homarr-labs/homarr/issues/5182)) ([6aaaf31](https://github.com/homarr-labs/homarr/commit/6aaaf31d8b5495090081f8795844db00a7b0a2ed)) +- **deps:** update dependency @tabler/icons-react to ^3.39.0 ([#5209](https://github.com/homarr-labs/homarr/issues/5209)) ([22fd8e9](https://github.com/homarr-labs/homarr/commit/22fd8e9b95bcddd9a9a1fa599f1a42f4d502f205)) +- **deps:** update dependency @tabler/icons-react to ^3.40.0 ([#5220](https://github.com/homarr-labs/homarr/issues/5220)) ([12ad241](https://github.com/homarr-labs/homarr/commit/12ad241406d581c98826ed270d71faf50779c601)) +- **deps:** update dependency fast-xml-parser to ^5.4.2 ([#5190](https://github.com/homarr-labs/homarr/issues/5190)) ([5159d9f](https://github.com/homarr-labs/homarr/commit/5159d9f0e7263166f26ec770c55dd4e2944dfd72)) +- **deps:** update dependency fastify to ^5.8.1 ([#5202](https://github.com/homarr-labs/homarr/issues/5202)) ([b02e8cc](https://github.com/homarr-labs/homarr/commit/b02e8cc875df20ff4d007c527bb5682db960fae6)) +- **deps:** update dependency fastify to ^5.8.2 ([#5221](https://github.com/homarr-labs/homarr/issues/5221)) ([5c4f394](https://github.com/homarr-labs/homarr/commit/5c4f39450148fd91e2cecf70c20c8ec78ecebfd6)) +- **deps:** update dependency mysql2 to v3.19.0 ([#5206](https://github.com/homarr-labs/homarr/issues/5206)) ([324bfd9](https://github.com/homarr-labs/homarr/commit/324bfd90d1a2c6ca80610c549b84d93f4a695cab)) +- **deps:** update dependency pg to ^8.20.0 ([#5198](https://github.com/homarr-labs/homarr/issues/5198)) ([1c6e23a](https://github.com/homarr-labs/homarr/commit/1c6e23a4b6509e83667396a392b23655f8b614dd)) +- **deps:** update mantine monorepo to ^8.3.16 ([#5201](https://github.com/homarr-labs/homarr/issues/5201)) ([c7fa5cd](https://github.com/homarr-labs/homarr/commit/c7fa5cdbb3ffdf90dbc9c9dbef0551e2b0edfb4c)) +- **deps:** update tiptap monorepo to v3.20.1 ([#5215](https://github.com/homarr-labs/homarr/issues/5215)) ([d941ed5](https://github.com/homarr-labs/homarr/commit/d941ed58fa482f2e41d27b6b5088146a608b236e)) +- **deps:** update trpc monorepo to ^11.12.0 ([#5213](https://github.com/homarr-labs/homarr/issues/5213)) ([00dd32b](https://github.com/homarr-labs/homarr/commit/00dd32bbe124f02ad7ae5ecb4e298a6d3fb4f0b8)) +- **deps:** update turbo monorepo to ^2.8.14 ([#5113](https://github.com/homarr-labs/homarr/issues/5113)) ([8ee05e0](https://github.com/homarr-labs/homarr/commit/8ee05e0d491bfec9f768a3a915ad1c8abf433b5b)) +- **glances:** unable to parse uptime of 1 day ([#5226](https://github.com/homarr-labs/homarr/issues/5226)) ([3091ed6](https://github.com/homarr-labs/homarr/commit/3091ed6358d83249a94827f55a812323c1e80497)) +- **image-proxy:** hash full URL and headers deterministically ([#5184](https://github.com/homarr-labs/homarr/issues/5184)) ([9a878af](https://github.com/homarr-labs/homarr/commit/9a878af414e12691420edb945ed6f9f6255c7eae)) +- language changes when searching for some icons ([#5224](https://github.com/homarr-labs/homarr/issues/5224)) ([21225c9](https://github.com/homarr-labs/homarr/commit/21225c979edb9a2c9cc00c4649363c0aab8058f1)) +- **releases:** allow any icon url for repositories ([#5229](https://github.com/homarr-labs/homarr/issues/5229)) ([d3c2ad1](https://github.com/homarr-labs/homarr/commit/d3c2ad134f7a9972118abcfff5482ca6d6105406)) +- **security:** harden hashing in image-proxy ([#5188](https://github.com/homarr-labs/homarr/issues/5188)) ([5723da2](https://github.com/homarr-labs/homarr/commit/5723da21aae8b69642a39e4b5a05ad84fa8dd8ef)) +- **stock-price:** align sparkline color with displayed price change ([#5181](https://github.com/homarr-labs/homarr/issues/5181)) ([bbf0adf](https://github.com/homarr-labs/homarr/commit/bbf0adf31a1f08f3ca09b709efd1daa15cb8498c)) +- **system-disks:** format absolute denominator with human-readable size ([#5183](https://github.com/homarr-labs/homarr/issues/5183)) ([85c4601](https://github.com/homarr-labs/homarr/commit/85c460190ceedad83c40af81d5efa270bc464b94)) +- **true-nas:** ignore offline/exported pools ([#5225](https://github.com/homarr-labs/homarr/issues/5225)) ([451602d](https://github.com/homarr-labs/homarr/commit/451602d1e61256696f6bcb0cd76f09748345a940)) + +## [1.55.0](https://github.com/homarr-labs/homarr/compare/v1.54.0...v1.55.0) (2026-03-06) + +### Features + +- add seerr integration ([#5139](https://github.com/homarr-labs/homarr/issues/5139)) ([0e29a2f](https://github.com/homarr-labs/homarr/commit/0e29a2fce172cbfda083b899c01b92bd8b6210b7)) + +### Bug Fixes + +- **deps:** update dependency fast-xml-parser to ^5.4.1 ([#5150](https://github.com/homarr-labs/homarr/issues/5150)) ([eb2f85f](https://github.com/homarr-labs/homarr/commit/eb2f85f6f8c9d7d90c1aeec079225678dfef4dd0)) +- **deps:** update dependency ioredis to v5.10.0 ([#5169](https://github.com/homarr-labs/homarr/issues/5169)) ([1c06e56](https://github.com/homarr-labs/homarr/commit/1c06e562c33bd9f1387cb05a3dece7beedfe43c2)) +- **deps:** update dependency ldapts to v8.1.7 ([#5168](https://github.com/homarr-labs/homarr/issues/5168)) ([ec45aac](https://github.com/homarr-labs/homarr/commit/ec45aacc63766c51a99ead6130bade442124e70d)) +- **deps:** update dependency mysql2 to v3.17.5 ([#5140](https://github.com/homarr-labs/homarr/issues/5140)) ([66ad67e](https://github.com/homarr-labs/homarr/commit/66ad67eced587fd49a470395298477dc09cdd225)) +- **deps:** update dependency mysql2 to v3.18.0 ([#5141](https://github.com/homarr-labs/homarr/issues/5141)) ([52792af](https://github.com/homarr-labs/homarr/commit/52792af186a6eb3519aafdee5a7c0dd03a86a461)) +- **deps:** update dependency mysql2 to v3.18.1 ([#5152](https://github.com/homarr-labs/homarr/issues/5152)) ([8bf2a43](https://github.com/homarr-labs/homarr/commit/8bf2a43e065671c7c119ef1da5aa09d284db0ede)) +- **deps:** update dependency mysql2 to v3.18.2 ([#5164](https://github.com/homarr-labs/homarr/issues/5164)) ([4717a57](https://github.com/homarr-labs/homarr/commit/4717a5724d4a6286c0f2bb92cf1e1fe17903a13a)) +- **deps:** update dependency pg to ^8.19.0 ([#5153](https://github.com/homarr-labs/homarr/issues/5153)) ([0b0fb1c](https://github.com/homarr-labs/homarr/commit/0b0fb1c5798357d7bc847dfe577b26529be8aa5c)) +- **deps:** update dependency swagger-ui-react to ^5.32.0 ([#5167](https://github.com/homarr-labs/homarr/issues/5167)) ([ff11599](https://github.com/homarr-labs/homarr/commit/ff1159943c967b6fea44894765c2210c3cdd44cc)) +- **deps:** update dependency typescript-eslint to ^8.56.1 ([#5142](https://github.com/homarr-labs/homarr/issues/5142)) ([ac3b4e7](https://github.com/homarr-labs/homarr/commit/ac3b4e7de0460cab7723dcc1a5a8e14072a37d25)) +- **deps:** update trpc monorepo to ^11.11.0 ([#5174](https://github.com/homarr-labs/homarr/issues/5174)) ([bc2a532](https://github.com/homarr-labs/homarr/commit/bc2a532a03d8cb76270f52b766f1a7f46d704096)) + +## [1.54.0](https://github.com/homarr-labs/homarr/compare/v1.53.2...v1.54.0) (2026-02-27) + +### Features + +- add glances integration ([#5102](https://github.com/homarr-labs/homarr/issues/5102)) ([91846bc](https://github.com/homarr-labs/homarr/commit/91846bc000b419b03925acc4b447efcc696ff009)) +- add slskd integration ([#5088](https://github.com/homarr-labs/homarr/issues/5088)) ([d999f37](https://github.com/homarr-labs/homarr/commit/d999f3797562a4c1d07a08b10ef4821c12390d2f)) + +### Bug Fixes + +- **deps:** update dependency @ctrl/deluge to ^7.5.1 ([#5098](https://github.com/homarr-labs/homarr/issues/5098)) ([53d4625](https://github.com/homarr-labs/homarr/commit/53d46257ce2c257f2e083d0645178823afd45227)) +- **deps:** update dependency @ctrl/deluge to ^7.5.2 ([#5105](https://github.com/homarr-labs/homarr/issues/5105)) ([dacbcce](https://github.com/homarr-labs/homarr/commit/dacbcce179c21f8858f61633c4a72b248ec437b7)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.11.1 ([#5097](https://github.com/homarr-labs/homarr/issues/5097)) ([193d4d2](https://github.com/homarr-labs/homarr/commit/193d4d2e2aabaffb019108c3150de3f92d84efe8)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.11.2 ([#5106](https://github.com/homarr-labs/homarr/issues/5106)) ([ee62667](https://github.com/homarr-labs/homarr/commit/ee6266707f779e7a080b40b4ed3e0a8679bb2910)) +- **deps:** update dependency @tabler/icons-react to ^3.37.0 ([#5119](https://github.com/homarr-labs/homarr/issues/5119)) ([ba86019](https://github.com/homarr-labs/homarr/commit/ba860193d78f84fa9326a006caba4b3cc7c195c2)) +- **deps:** update dependency @tabler/icons-react to ^3.37.1 ([#5121](https://github.com/homarr-labs/homarr/issues/5121)) ([c3a4051](https://github.com/homarr-labs/homarr/commit/c3a40510075f56d7f156c877e1041b7bf36677b5)) +- **deps:** update dependency fast-xml-parser to ^5.3.7 ([#5122](https://github.com/homarr-labs/homarr/issues/5122)) ([6861839](https://github.com/homarr-labs/homarr/commit/6861839b65fffb0c8030ae7a6fd24105fdad6b95)) +- **deps:** update dependency glob to ^13.0.4 ([#5107](https://github.com/homarr-labs/homarr/issues/5107)) ([ea0a411](https://github.com/homarr-labs/homarr/commit/ea0a411c813c8dfcb17493e6a41d2ab96077adb6)) +- **deps:** update dependency glob to ^13.0.5 ([#5109](https://github.com/homarr-labs/homarr/issues/5109)) ([02ec089](https://github.com/homarr-labs/homarr/commit/02ec0898ef32f8b6ac540a9c005130f3e7312e65)) +- **deps:** update dependency glob to ^13.0.6 ([#5117](https://github.com/homarr-labs/homarr/issues/5117)) ([908bced](https://github.com/homarr-labs/homarr/commit/908bced0dfb158a9da155c97dbf982c2d544fc20)) +- **deps:** update dependency isomorphic-dompurify to v3 ([#5130](https://github.com/homarr-labs/homarr/issues/5130)) ([cfaf82c](https://github.com/homarr-labs/homarr/commit/cfaf82cd04e4659db50e6074fce4cc739ee2aaf8)) +- **deps:** update dependency jotai to ^2.18.0 ([#5115](https://github.com/homarr-labs/homarr/issues/5115)) ([4aad087](https://github.com/homarr-labs/homarr/commit/4aad0873baec97167460bad1c69c770aecb38bd0)) +- **deps:** update dependency mysql2 to v3.17.2 ([#5104](https://github.com/homarr-labs/homarr/issues/5104)) ([15c7fc5](https://github.com/homarr-labs/homarr/commit/15c7fc5ae809b671c8d774d39b7a7fdf893db611)) +- **deps:** update dependency mysql2 to v3.17.3 ([#5116](https://github.com/homarr-labs/homarr/issues/5116)) ([42e5326](https://github.com/homarr-labs/homarr/commit/42e53261ef956a0f5ad60ac45c623d3acd3d9530)) +- **deps:** update dependency mysql2 to v3.17.4 ([#5123](https://github.com/homarr-labs/homarr/issues/5123)) ([7ca38c3](https://github.com/homarr-labs/homarr/commit/7ca38c3a781d54f91d01844e077528345a9b190b)) +- **deps:** update dependency next-intl to v4.8.3 ([#5100](https://github.com/homarr-labs/homarr/issues/5100)) ([d67c2db](https://github.com/homarr-labs/homarr/commit/d67c2db886b92e7d0973bf17ff5059b8328acdf6)) +- **deps:** update dependency swagger-ui-react to ^5.31.1 ([#5101](https://github.com/homarr-labs/homarr/issues/5101)) ([210d46b](https://github.com/homarr-labs/homarr/commit/210d46b43ffeb956af3f983a82772609e42f08df)) +- **deps:** update dependency swagger-ui-react to ^5.31.2 ([#5124](https://github.com/homarr-labs/homarr/issues/5124)) ([51585c6](https://github.com/homarr-labs/homarr/commit/51585c6413ab3841f0bee1e736d726081912ab08)) +- **deps:** update dependency typescript-eslint to ^8.56.0 ([#5103](https://github.com/homarr-labs/homarr/issues/5103)) ([8bac6e1](https://github.com/homarr-labs/homarr/commit/8bac6e1c5a239108bc48fd877b3fc1ec8b445109)) +- **deps:** update mantine monorepo to ^8.3.15 ([#5099](https://github.com/homarr-labs/homarr/issues/5099)) ([b8f9b4c](https://github.com/homarr-labs/homarr/commit/b8f9b4cf1d870956806a68ad78a95af60c99975f)) +- **deps:** update testcontainers-node monorepo to ^11.12.0 ([#5110](https://github.com/homarr-labs/homarr/issues/5110)) ([e3c8174](https://github.com/homarr-labs/homarr/commit/e3c8174bdcb95de8e731c79c2b4bebce98d6dbce)) +- **deps:** update tiptap monorepo to v3.20.0 ([#5112](https://github.com/homarr-labs/homarr/issues/5112)) ([3d2bc82](https://github.com/homarr-labs/homarr/commit/3d2bc82a33a88a8f2d60fd61112f1f712e956670)) + +## [1.53.2](https://github.com/homarr-labs/homarr/compare/v1.53.1...v1.53.2) (2026-02-20) + +### Bug Fixes + +- **analytics:** restrict publishing to every week ([#5028](https://github.com/homarr-labs/homarr/issues/5028)) ([8c4be2f](https://github.com/homarr-labs/homarr/commit/8c4be2fbe80e42472b8b17542a4282ec26d1fefe)) +- **deps:** update dependency @tanstack/react-query to ^5.90.21 ([#5067](https://github.com/homarr-labs/homarr/issues/5067)) ([1b8dde9](https://github.com/homarr-labs/homarr/commit/1b8dde98d2518d3d82895a26a58db7f42abf2a6e)) +- **deps:** update dependency dotenv to ^17.3.0 ([#5079](https://github.com/homarr-labs/homarr/issues/5079)) ([1e822fb](https://github.com/homarr-labs/homarr/commit/1e822fbe0c8224e6ba5b99e6516ea4437c9f36bb)) +- **deps:** update dependency dotenv to ^17.3.1 ([#5081](https://github.com/homarr-labs/homarr/issues/5081)) ([46ba48f](https://github.com/homarr-labs/homarr/commit/46ba48fb20b69b2876fc42ee862a64717e6428f7)) +- **deps:** update dependency drizzle-kit to ^0.31.9 ([#5059](https://github.com/homarr-labs/homarr/issues/5059)) ([db14d98](https://github.com/homarr-labs/homarr/commit/db14d98d1966dada5d74507e64e90f34fb4eee60)) +- **deps:** update dependency fast-xml-parser to ^5.3.6 ([#5089](https://github.com/homarr-labs/homarr/issues/5089)) ([ac5bc70](https://github.com/homarr-labs/homarr/commit/ac5bc70a5de9a4307c4165203ff26ee1a112ca81)) +- **deps:** update dependency glob to ^13.0.2 ([#5065](https://github.com/homarr-labs/homarr/issues/5065)) ([50601d5](https://github.com/homarr-labs/homarr/commit/50601d53792baae5a259adb4e4d3fefcc35d25df)) +- **deps:** update dependency glob to ^13.0.3 ([#5078](https://github.com/homarr-labs/homarr/issues/5078)) ([ba0ed77](https://github.com/homarr-labs/homarr/commit/ba0ed77bb036dd0e35db08ce9df98f133f835d53)) +- **deps:** update dependency ioredis to v5.9.3 ([#5076](https://github.com/homarr-labs/homarr/issues/5076)) ([4e1baa5](https://github.com/homarr-labs/homarr/commit/4e1baa570324be06eb442f2db08a8b152d9b416b)) +- **deps:** update dependency mysql2 to v3.17.0 ([#5066](https://github.com/homarr-labs/homarr/issues/5066)) ([fcb020c](https://github.com/homarr-labs/homarr/commit/fcb020c191b98a729508b7660fb484f29208c51c)) +- **deps:** update dependency mysql2 to v3.17.1 ([#5082](https://github.com/homarr-labs/homarr/issues/5082)) ([475f14d](https://github.com/homarr-labs/homarr/commit/475f14dc312c1b8cffbabe607c17be8b2d1d294c)) +- **deps:** update dependency react-error-boundary to ^6.1.1 ([#5086](https://github.com/homarr-labs/homarr/issues/5086)) ([bb9da30](https://github.com/homarr-labs/homarr/commit/bb9da3007e4f29fd7993bd9960e80e316a17bbf0)) +- **deps:** update dependency tsdav to ^2.1.8 ([#5090](https://github.com/homarr-labs/homarr/issues/5090)) ([840d110](https://github.com/homarr-labs/homarr/commit/840d1107ec3392b4581c931ef1efe2d9816ededd)) +- **deps:** update dependency typescript-eslint to ^8.55.0 ([#5061](https://github.com/homarr-labs/homarr/issues/5061)) ([56ecce2](https://github.com/homarr-labs/homarr/commit/56ecce254195c480eef9cefefd7bad98c49b9175)) +- **deps:** update trpc monorepo to ^11.10.0 ([#5062](https://github.com/homarr-labs/homarr/issues/5062)) ([bc7ec63](https://github.com/homarr-labs/homarr/commit/bc7ec63f8547e8f868ef5d56a1a8c5c893fda1e3)) +- **deps:** update turbo monorepo to ^2.8.5 ([#5064](https://github.com/homarr-labs/homarr/issues/5064)) ([c36e947](https://github.com/homarr-labs/homarr/commit/c36e947935246761cac26049ac24c56c8cc0990a)) +- **deps:** update turbo monorepo to ^2.8.7 ([#5071](https://github.com/homarr-labs/homarr/issues/5071)) ([c6c48ea](https://github.com/homarr-labs/homarr/commit/c6c48ea6e5f76303fd93022fd566a99af1ad829f)) +- **deps:** update turbo monorepo to ^2.8.8 ([#5084](https://github.com/homarr-labs/homarr/issues/5084)) ([dcae437](https://github.com/homarr-labs/homarr/commit/dcae437fc5cadc2e112037fa26f8351111c69869)) +- **deps:** update turbo monorepo to ^2.8.9 ([#5092](https://github.com/homarr-labs/homarr/issues/5092)) ([24560cb](https://github.com/homarr-labs/homarr/commit/24560cb93f17767b5ab8047c07f81a165e0fb769)) + +## [1.53.1](https://github.com/homarr-labs/homarr/compare/v1.53.0...v1.53.1) (2026-02-13) + +### Bug Fixes + +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.7.1 ([#5021](https://github.com/homarr-labs/homarr/issues/5021)) ([5946e6c](https://github.com/homarr-labs/homarr/commit/5946e6c7193eded77b98c76aedff71a7bb912574)) +- **deps:** update dependency @octokit/auth-app to ^8.2.0 ([#5009](https://github.com/homarr-labs/homarr/issues/5009)) ([4a86361](https://github.com/homarr-labs/homarr/commit/4a86361134da404462b1a9f8ff98fe3504fade0d)) +- **deps:** update dependency dotenv to ^17.2.4 ([#5029](https://github.com/homarr-labs/homarr/issues/5029)) ([e8c7f45](https://github.com/homarr-labs/homarr/commit/e8c7f454768044540ee37d75fc73654b74315390)) +- **deps:** update dependency fast-xml-parser to ^5.3.5 ([#5050](https://github.com/homarr-labs/homarr/issues/5050)) ([30f561f](https://github.com/homarr-labs/homarr/commit/30f561f85ad2abb90ccb9fa3292155d51f1f379b)) +- **deps:** update dependency fastify to ^5.7.4 ([#5027](https://github.com/homarr-labs/homarr/issues/5027)) ([18e16d6](https://github.com/homarr-labs/homarr/commit/18e16d687f8137e5b5c55cf2385436b714a2d27b)) +- **deps:** update dependency glob to ^13.0.1 ([#5013](https://github.com/homarr-labs/homarr/issues/5013)) ([3b21c3e](https://github.com/homarr-labs/homarr/commit/3b21c3ef765add0f7cdc8f66ae8f1b7aac3cf51e)) +- **deps:** update dependency isomorphic-dompurify to ^2.36.0 ([#5041](https://github.com/homarr-labs/homarr/issues/5041)) ([e561fc5](https://github.com/homarr-labs/homarr/commit/e561fc550fab2207212ae108a5177a248795cf66)) +- **deps:** update dependency jotai to ^2.17.1 ([#5019](https://github.com/homarr-labs/homarr/issues/5019)) ([da96566](https://github.com/homarr-labs/homarr/commit/da965668d021ebebd8c8a7e2a4560577a6b0828b)) +- **deps:** update dependency ldapts to v8.1.5 ([#5004](https://github.com/homarr-labs/homarr/issues/5004)) ([c3932b1](https://github.com/homarr-labs/homarr/commit/c3932b18f03b86e8ee049c14ace63119fd2ab0d6)) +- **deps:** update dependency ldapts to v8.1.6 ([#5018](https://github.com/homarr-labs/homarr/issues/5018)) ([c92d487](https://github.com/homarr-labs/homarr/commit/c92d487ceaa9159579ef4352d763429887953bb5)) +- **deps:** update dependency mysql2 to v3.16.3 ([#5014](https://github.com/homarr-labs/homarr/issues/5014)) ([04b3598](https://github.com/homarr-labs/homarr/commit/04b35980f5997e744a455a847f28b1a676f9861e)) +- **deps:** update dependency next-intl to v4.8.2 ([#5005](https://github.com/homarr-labs/homarr/issues/5005)) ([b67fecd](https://github.com/homarr-labs/homarr/commit/b67fecd3963bc3112ab8ecd91385bbe13c982290)) +- **deps:** update dependency tsdav to ^2.1.7 ([#5033](https://github.com/homarr-labs/homarr/issues/5033)) ([d694b1a](https://github.com/homarr-labs/homarr/commit/d694b1a5410833a791d57fb3dd4650003510140e)) +- **deps:** update dependency video.js to ^8.23.7 ([#5034](https://github.com/homarr-labs/homarr/issues/5034)) ([6efabd4](https://github.com/homarr-labs/homarr/commit/6efabd436849b9fdea0d060fe7beaa9c67424c29)) +- **deps:** update tiptap monorepo to v3.19.0 ([#5012](https://github.com/homarr-labs/homarr/issues/5012)) ([ad41a91](https://github.com/homarr-labs/homarr/commit/ad41a918ef72f322015a02e9601c43728e680b34)) +- **deps:** update turbo monorepo to ^2.8.2 ([#5010](https://github.com/homarr-labs/homarr/issues/5010)) ([b479fea](https://github.com/homarr-labs/homarr/commit/b479fea6eb0b025b55668201160a5e57267de2e7)) +- **deps:** update turbo monorepo to ^2.8.3 ([#5016](https://github.com/homarr-labs/homarr/issues/5016)) ([f1d2f07](https://github.com/homarr-labs/homarr/commit/f1d2f07f3888e7567b56ae61a9d137255a2b8529)) +- **sections:** dynamic sections vanish when adding category ([#5046](https://github.com/homarr-labs/homarr/issues/5046)) ([60fcb71](https://github.com/homarr-labs/homarr/commit/60fcb71bd2616af3e99b20cbbcd1b0417a0fff76)) +- **seerr:** use reasonable limits for amount of returned entries ([#5001](https://github.com/homarr-labs/homarr/issues/5001)) ([be1a26a](https://github.com/homarr-labs/homarr/commit/be1a26a98d2ed9d25969ded5ae64705c001f71dd)) + +## [1.53.0](https://github.com/homarr-labs/homarr/compare/v1.52.0...v1.53.0) (2026-02-06) + +### Features + +- **analytics:** consolidate server analytics into single comprehensive Umami event ([#4938](https://github.com/homarr-labs/homarr/issues/4938)) ([10848db](https://github.com/homarr-labs/homarr/commit/10848db595b2254b1485ea168d1c327b907d9ff8)) + +### Bug Fixes + +- **deps:** update dependency @next/eslint-plugin-next to v16.1.5 ([#4959](https://github.com/homarr-labs/homarr/issues/4959)) ([ec40309](https://github.com/homarr-labs/homarr/commit/ec40309cde2280cf689856d4f78fb1500b583130)) +- **deps:** update dependency @paralleldrive/cuid2 to ^3.3.0 ([#4952](https://github.com/homarr-labs/homarr/issues/4952)) ([a9db68b](https://github.com/homarr-labs/homarr/commit/a9db68bd3eaea6a4564cd6842054ea60cc45e3a3)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.91.3 ([#4985](https://github.com/homarr-labs/homarr/issues/4985)) ([1115ad1](https://github.com/homarr-labs/homarr/commit/1115ad1364bca84dee33aa42499c986bdad2c528)) +- **deps:** update dependency fast-xml-parser to ^5.3.4 ([#4982](https://github.com/homarr-labs/homarr/issues/4982)) ([460d53c](https://github.com/homarr-labs/homarr/commit/460d53cafa1abeebf4dea7b1bb1e920267c2f9fe)) +- **deps:** update dependency fastify to ^5.7.2 ([#4955](https://github.com/homarr-labs/homarr/issues/4955)) ([0eab26c](https://github.com/homarr-labs/homarr/commit/0eab26cdace47c0b19519372a3daa6998e0c8207)) +- **deps:** update dependency jotai to ^2.17.0 ([#4972](https://github.com/homarr-labs/homarr/issues/4972)) ([e67483f](https://github.com/homarr-labs/homarr/commit/e67483fea56f0b06fa54e68b8dd62fd0b5dedadd)) +- **deps:** update dependency ldapts to v8.1.4 ([#4993](https://github.com/homarr-labs/homarr/issues/4993)) ([c2d9f18](https://github.com/homarr-labs/homarr/commit/c2d9f18e4ef28f063e4abf1175cd90ba746410b7)) +- **deps:** update dependency mysql2 to v3.16.2 ([#4961](https://github.com/homarr-labs/homarr/issues/4961)) ([5c6eafb](https://github.com/homarr-labs/homarr/commit/5c6eafb272436b78d4668d562d50001bca48e6d3)) +- **deps:** update dependency next-intl to v4.8.0 ([#4977](https://github.com/homarr-labs/homarr/issues/4977)) ([c3a7ab5](https://github.com/homarr-labs/homarr/commit/c3a7ab52ee3acbcf47255d5813317c3cf67ea49f)) +- **deps:** update dependency next-intl to v4.8.1 ([#4986](https://github.com/homarr-labs/homarr/issues/4986)) ([62b6939](https://github.com/homarr-labs/homarr/commit/62b6939b92f29618cc6d13a189b65df1922779ba)) +- **deps:** update dependency pg to ^8.18.0 ([#4989](https://github.com/homarr-labs/homarr/issues/4989)) ([c3071a3](https://github.com/homarr-labs/homarr/commit/c3071a3c95f3a30438050aa37c65950cccabf681)) +- **deps:** update dependency typescript-eslint to ^8.54.0 ([#4958](https://github.com/homarr-labs/homarr/issues/4958)) ([e88d126](https://github.com/homarr-labs/homarr/commit/e88d126355b96ac5060b552047c191f8b284461c)) +- **deps:** update dependency video.js to ^8.23.6 ([#4992](https://github.com/homarr-labs/homarr/issues/4992)) ([4209f7c](https://github.com/homarr-labs/homarr/commit/4209f7c70e75870f56b93a97f3b6053962ee3ff7)) +- **deps:** update mantine monorepo to ^8.3.14 ([#4998](https://github.com/homarr-labs/homarr/issues/4998)) ([0fafa50](https://github.com/homarr-labs/homarr/commit/0fafa505ac1c7f4ddb33ee5e8dedca9a883164ba)) +- **deps:** update nextjs monorepo to v16.1.6 ([#4969](https://github.com/homarr-labs/homarr/issues/4969)) ([7c3fe3d](https://github.com/homarr-labs/homarr/commit/7c3fe3d6d47879c67950b3dc4d7e39adbc06c146)) +- **deps:** update react monorepo to v19.2.4 ([#4960](https://github.com/homarr-labs/homarr/issues/4960)) ([d3e0b47](https://github.com/homarr-labs/homarr/commit/d3e0b47875998fc766e1c5f0481244fc659b0c49)) +- **deps:** update tiptap monorepo to v3.18.0 ([#4975](https://github.com/homarr-labs/homarr/issues/4975)) ([24e24dc](https://github.com/homarr-labs/homarr/commit/24e24dc634a9e5a25ab934541225996e62ac31be)) +- **deps:** update trpc monorepo to ^11.9.0 ([#4970](https://github.com/homarr-labs/homarr/issues/4970)) ([aeb6e0f](https://github.com/homarr-labs/homarr/commit/aeb6e0f40659bf1c514380a6c96858afdaf7e6db)) +- **deps:** update turbo monorepo to ^2.8.0 ([#4978](https://github.com/homarr-labs/homarr/issues/4978)) ([054ca57](https://github.com/homarr-labs/homarr/commit/054ca57188656ddac7aaa16f792269eaa2ef319b)) +- **deps:** update turbo monorepo to ^2.8.1 ([#4991](https://github.com/homarr-labs/homarr/issues/4991)) ([43b6246](https://github.com/homarr-labs/homarr/commit/43b6246876debccbe7239c8ee67753e17527e469)) + +## [1.52.0](https://github.com/homarr-labs/homarr/compare/v1.51.0...v1.52.0) (2026-01-30) + +### Features + +- **installations:** support docker secrets file for encryption key ([#4946](https://github.com/homarr-labs/homarr/issues/4946)) ([9ba8213](https://github.com/homarr-labs/homarr/commit/9ba82133da2ae472952358f84d8ee1758c0f108a)) + +### Bug Fixes + +- **deps:** update dependency @tanstack/react-query to ^5.90.20 ([#4939](https://github.com/homarr-labs/homarr/issues/4939)) ([840940b](https://github.com/homarr-labs/homarr/commit/840940bab663e728b8516ac48f913fef2b5c61b7)) +- **deps:** update dependency next to v16.1.5 [security] ([#4937](https://github.com/homarr-labs/homarr/issues/4937)) ([aeb1df1](https://github.com/homarr-labs/homarr/commit/aeb1df122926c7bed71bea9b21f1c42c45cc9b3e)) +- **deps:** update dependency pg to ^8.17.2 ([#4916](https://github.com/homarr-labs/homarr/issues/4916)) ([a50a29a](https://github.com/homarr-labs/homarr/commit/a50a29a778689efcca0afc2b640fdb497e6e7d98)) +- **deps:** update dependency prettier to ^3.8.1 ([#4925](https://github.com/homarr-labs/homarr/issues/4925)) ([a727b8e](https://github.com/homarr-labs/homarr/commit/a727b8e323b9fb7cba536909a51fabde0a992a69)) +- **deps:** update dependency sass to ^1.97.3 ([#4927](https://github.com/homarr-labs/homarr/issues/4927)) ([b1658a5](https://github.com/homarr-labs/homarr/commit/b1658a5d01b5c12f391af9d326ec98b3da000f9e)) +- **deps:** update dependency typescript-eslint to ^8.53.1 ([#4904](https://github.com/homarr-labs/homarr/issues/4904)) ([c58da00](https://github.com/homarr-labs/homarr/commit/c58da0095738352515d6d8c5e81b3c34c8726ffe)) +- **deps:** update mantine monorepo to ^8.3.13 ([#4911](https://github.com/homarr-labs/homarr/issues/4911)) ([f2eec74](https://github.com/homarr-labs/homarr/commit/f2eec748494480e773b45a309aa89ae3862e2b05)) +- **deps:** update nextjs monorepo to v16.1.4 ([#4909](https://github.com/homarr-labs/homarr/issues/4909)) ([99a2574](https://github.com/homarr-labs/homarr/commit/99a2574d80ad5a7dfe3b9c92d43bd4b9423bf22d)) +- **deps:** update tiptap monorepo to v3.16.0 ([#4912](https://github.com/homarr-labs/homarr/issues/4912)) ([2354510](https://github.com/homarr-labs/homarr/commit/23545101b61e456fd886eedb4b3d86b8cc606639)) +- **deps:** update tiptap monorepo to v3.17.0 ([#4940](https://github.com/homarr-labs/homarr/issues/4940)) ([d030261](https://github.com/homarr-labs/homarr/commit/d03026187cb6451d727167b02ac138f9c7ccc754)) +- **deps:** update tiptap monorepo to v3.17.1 ([#4945](https://github.com/homarr-labs/homarr/issues/4945)) ([b354085](https://github.com/homarr-labs/homarr/commit/b354085c7adfb6e5f3cad51b5b825426e072e874)) +- **deps:** update turbo monorepo to ^2.7.6 ([#4947](https://github.com/homarr-labs/homarr/issues/4947)) ([e078237](https://github.com/homarr-labs/homarr/commit/e078237e31d11029987c6c4370fd8f65023b87bc)) + +## [1.51.0](https://github.com/homarr-labs/homarr/compare/v1.50.1...v1.51.0) (2026-01-23) + +### Features + +- **integrations:** add Coolify integration and widget ([#4789](https://github.com/homarr-labs/homarr/issues/4789)) ([81dac58](https://github.com/homarr-labs/homarr/commit/81dac580050a86e34135beef09b876089777f1c7)) +- **widgets:** add disks widget ([#4445](https://github.com/homarr-labs/homarr/issues/4445)) ([62caa71](https://github.com/homarr-labs/homarr/commit/62caa71a48c38f59f109666e83f26019586a5ca0)) + +### Bug Fixes + +- **deps:** update dependency @tanstack/react-query to ^5.90.17 ([#4873](https://github.com/homarr-labs/homarr/issues/4873)) ([624bd55](https://github.com/homarr-labs/homarr/commit/624bd55b117b2b9f9109aecdeabf1515c567656e)) +- **deps:** update dependency @tanstack/react-query to ^5.90.19 ([#4888](https://github.com/homarr-labs/homarr/issues/4888)) ([fa84bd5](https://github.com/homarr-labs/homarr/commit/fa84bd569fdf6c9aecfcb9b4d8fb20d14215160b)) +- **deps:** update dependency better-sqlite3 to ^12.6.0 ([#4853](https://github.com/homarr-labs/homarr/issues/4853)) ([9d4fb9e](https://github.com/homarr-labs/homarr/commit/9d4fb9eb462a0297618c70f619618f94d8857e1f)) +- **deps:** update dependency better-sqlite3 to ^12.6.2 ([#4891](https://github.com/homarr-labs/homarr/issues/4891)) ([63a0793](https://github.com/homarr-labs/homarr/commit/63a0793c6ea02456a49a07635b927adf3a314ee0)) +- **deps:** update dependency fastify to ^5.7.0 ([#4882](https://github.com/homarr-labs/homarr/issues/4882)) ([b9bc9dd](https://github.com/homarr-labs/homarr/commit/b9bc9dd38d22f03a0faa59a68056192c3f1519d4)) +- **deps:** update dependency fastify to ^5.7.1 ([#4887](https://github.com/homarr-labs/homarr/issues/4887)) ([02e722a](https://github.com/homarr-labs/homarr/commit/02e722aa4531e816bb563628ebbb7e8b0cf93ce3)) +- **deps:** update dependency ioredis to v5.9.2 ([#4881](https://github.com/homarr-labs/homarr/issues/4881)) ([e3ba1ee](https://github.com/homarr-labs/homarr/commit/e3ba1ee931b0e53fb94bf0e50fae81eecfade237)) +- **deps:** update dependency jotai to ^2.16.2 ([#4869](https://github.com/homarr-labs/homarr/issues/4869)) ([2e58acc](https://github.com/homarr-labs/homarr/commit/2e58acc3bd5da474bfe0636a58b43759947ef2d2)) +- **deps:** update dependency mysql2 to v3.16.1 ([#4886](https://github.com/homarr-labs/homarr/issues/4886)) ([40ee667](https://github.com/homarr-labs/homarr/commit/40ee667832124075b0730a54a4b8019365ab8794)) +- **deps:** update dependency pg to ^8.17.0 ([#4874](https://github.com/homarr-labs/homarr/issues/4874)) ([b923891](https://github.com/homarr-labs/homarr/commit/b923891fac4cd61c5a1a8505d5bcfb737255196f)) +- **deps:** update dependency pg to ^8.17.1 ([#4877](https://github.com/homarr-labs/homarr/issues/4877)) ([fcd4171](https://github.com/homarr-labs/homarr/commit/fcd417198f4a1afc250455bf25594a32f61b1070)) +- **deps:** update dependency prettier to ^3.8.0 ([#4876](https://github.com/homarr-labs/homarr/issues/4876)) ([3ade915](https://github.com/homarr-labs/homarr/commit/3ade915d35540578a7f193baf99cbdbf89103b97)) +- **deps:** update dependency react-error-boundary to ^6.1.0 ([#4884](https://github.com/homarr-labs/homarr/issues/4884)) ([41b02b6](https://github.com/homarr-labs/homarr/commit/41b02b63d9a1f9b73cc54371bbc1b6161a4d76d0)) +- **deps:** update dependency typescript-eslint to ^8.53.0 ([#4863](https://github.com/homarr-labs/homarr/issues/4863)) ([e9020e6](https://github.com/homarr-labs/homarr/commit/e9020e68ecf9e33df983108e7ab239776874413c)) +- **deps:** update nextjs monorepo to v16.1.2 ([#4875](https://github.com/homarr-labs/homarr/issues/4875)) ([c6be8c5](https://github.com/homarr-labs/homarr/commit/c6be8c5475722e5a6dbc886e5e7f24ef8a04c470)) +- **deps:** update nextjs monorepo to v16.1.3 ([#4889](https://github.com/homarr-labs/homarr/issues/4889)) ([5a8e864](https://github.com/homarr-labs/homarr/commit/5a8e864630b61595b53a9e849973460ffdce5fd2)) +- **deps:** update turbo monorepo to ^2.7.4 ([#4861](https://github.com/homarr-labs/homarr/issues/4861)) ([0c38e2f](https://github.com/homarr-labs/homarr/commit/0c38e2f290fc6dcb9608b338ee38409afb3beabe)) +- **deps:** update turbo monorepo to ^2.7.5 ([#4892](https://github.com/homarr-labs/homarr/issues/4892)) ([c847f60](https://github.com/homarr-labs/homarr/commit/c847f6004dc4c166969ee1248ec64b7d27ba8362)) + +### Performance Improvements + +- **memory:** lazy routers ([#4868](https://github.com/homarr-labs/homarr/issues/4868)) ([1623fba](https://github.com/homarr-labs/homarr/commit/1623fbaaeb41b16e13dcd401a00f70711a283bf9)) + +## [1.50.1](https://github.com/homarr-labs/homarr/compare/v1.50.0...v1.50.1) (2026-01-16) + +### Bug Fixes + +- **deps:** update dependency ioredis to v5.9.0 ([#4827](https://github.com/homarr-labs/homarr/issues/4827)) ([155d4f2](https://github.com/homarr-labs/homarr/commit/155d4f2270b3b35c4ad696499b0aaa0b10100989)) +- **deps:** update dependency ioredis to v5.9.1 ([#4844](https://github.com/homarr-labs/homarr/issues/4844)) ([5d00642](https://github.com/homarr-labs/homarr/commit/5d006422688cf3fe7440ae3ab66ad3b2cc9286a8)) +- **deps:** update dependency ldapts to v8.1.3 ([#4841](https://github.com/homarr-labs/homarr/issues/4841)) ([7fa9907](https://github.com/homarr-labs/homarr/commit/7fa990712bddc88bbb3bbe01e758bfef7cb4dea3)) +- **deps:** update dependency react-error-boundary to ^6.0.2 ([#4821](https://github.com/homarr-labs/homarr/issues/4821)) ([e9ba102](https://github.com/homarr-labs/homarr/commit/e9ba102cf668c0ef54628d3dbc6e6cbda2d059b5)) +- **deps:** update dependency react-error-boundary to ^6.0.3 ([#4847](https://github.com/homarr-labs/homarr/issues/4847)) ([c24006d](https://github.com/homarr-labs/homarr/commit/c24006dca691f26a7187c0ba112d9ed2ec424bb0)) +- **deps:** update dependency sass to ^1.97.2 ([#4835](https://github.com/homarr-labs/homarr/issues/4835)) ([07ba531](https://github.com/homarr-labs/homarr/commit/07ba53165c90d675aa54c5ad3fca930fef5cd35e)) +- **deps:** update dependency typescript-eslint to ^8.52.0 ([#4830](https://github.com/homarr-labs/homarr/issues/4830)) ([fa8af6a](https://github.com/homarr-labs/homarr/commit/fa8af6a453b846af2305db3c318c8c1c303a3a88)) +- **deps:** update dependency undici to v7.17.0 ([#4826](https://github.com/homarr-labs/homarr/issues/4826)) ([21a91b1](https://github.com/homarr-labs/homarr/commit/21a91b1489ff1a1f0a1428a3f50f00db8932da72)) +- **deps:** update dependency undici to v7.18.0 ([#4829](https://github.com/homarr-labs/homarr/issues/4829)) ([b76ab29](https://github.com/homarr-labs/homarr/commit/b76ab2961d84081c9ef04d76193f21a1068e72d9)) +- **deps:** update dependency undici to v7.18.2 ([#4837](https://github.com/homarr-labs/homarr/issues/4837)) ([16733c2](https://github.com/homarr-labs/homarr/commit/16733c2a0efabcbc5b693a8b6f82833f6fc344b7)) +- **deps:** update dependency ws to ^8.19.0 ([#4833](https://github.com/homarr-labs/homarr/issues/4833)) ([629359e](https://github.com/homarr-labs/homarr/commit/629359e3e44ddad880842cfd576edb514f80d61a)) +- **deps:** update mantine monorepo to ^8.3.11 ([#4822](https://github.com/homarr-labs/homarr/issues/4822)) ([0364e10](https://github.com/homarr-labs/homarr/commit/0364e102cd6c0f560bc49e0b9ccd71df0b75eed6)) +- **deps:** update mantine monorepo to ^8.3.12 ([#4848](https://github.com/homarr-labs/homarr/issues/4848)) ([275a346](https://github.com/homarr-labs/homarr/commit/275a346afaaebfa894ef2193f70966986a138dbb)) +- **deps:** update tiptap monorepo to v3.15.0 ([#4832](https://github.com/homarr-labs/homarr/issues/4832)) ([ab3ee4f](https://github.com/homarr-labs/homarr/commit/ab3ee4f78a739bdb3b49a81652420df6ec143b62)) +- **deps:** update tiptap monorepo to v3.15.1 ([#4838](https://github.com/homarr-labs/homarr/issues/4838)) ([d479b63](https://github.com/homarr-labs/homarr/commit/d479b63a803f2295ccdf20fcd31c418a4aab148c)) +- **deps:** update tiptap monorepo to v3.15.2 ([#4842](https://github.com/homarr-labs/homarr/issues/4842)) ([55c2666](https://github.com/homarr-labs/homarr/commit/55c2666f9d27ca34b6d028070f0d7b84e4c40e97)) +- **deps:** update tiptap monorepo to v3.15.3 ([#4843](https://github.com/homarr-labs/homarr/issues/4843)) ([b26cf0e](https://github.com/homarr-labs/homarr/commit/b26cf0e65fd8150e241465628df2cb8b5a72088e)) +- **deps:** update turbo monorepo to ^2.7.3 ([#4831](https://github.com/homarr-labs/homarr/issues/4831)) ([50410fe](https://github.com/homarr-labs/homarr/commit/50410fedb3f33ed131f923257e61ae2dca4e0288)) + ## [1.50.0](https://github.com/homarr-labs/homarr/compare/v1.49.1...v1.50.0) (2026-01-09) ### Features -* **auth:** extend API key authentication to tRPC endpoints ([#4732](https://github.com/homarr-labs/homarr/issues/4732)) ([0dc61a8](https://github.com/homarr-labs/homarr/commit/0dc61a88b8d12c61fd436adf0693c9fa5087a8c0)) -* **users:** add libravatar / gravatar support ([#4277](https://github.com/homarr-labs/homarr/issues/4277)) ([a2a3412](https://github.com/homarr-labs/homarr/commit/a2a34124ae11b0b9242b9c2579f7376768d35d52)) +- **auth:** extend API key authentication to tRPC endpoints ([#4732](https://github.com/homarr-labs/homarr/issues/4732)) ([0dc61a8](https://github.com/homarr-labs/homarr/commit/0dc61a88b8d12c61fd436adf0693c9fa5087a8c0)) +- **users:** add libravatar / gravatar support ([#4277](https://github.com/homarr-labs/homarr/issues/4277)) ([a2a3412](https://github.com/homarr-labs/homarr/commit/a2a34124ae11b0b9242b9c2579f7376768d35d52)) ### Bug Fixes -* **deps:** update dependency @tabler/icons-react to ^3.36.0 ([#4707](https://github.com/homarr-labs/homarr/issues/4707)) ([35e0198](https://github.com/homarr-labs/homarr/commit/35e0198b5df2a315ea2efb584752c5af062f960d)) -* **deps:** update dependency @tabler/icons-react to ^3.36.1 ([#4812](https://github.com/homarr-labs/homarr/issues/4812)) ([dabb2bb](https://github.com/homarr-labs/homarr/commit/dabb2bb7821f6a68d41c4a931bb70c41fdd21a72)) -* **deps:** update dependency @tanstack/react-query to ^5.90.15 ([#4794](https://github.com/homarr-labs/homarr/issues/4794)) ([ea848bd](https://github.com/homarr-labs/homarr/commit/ea848bdd0bc1268675d00213bb86dc1d1b298162)) -* **deps:** update dependency @tanstack/react-query to ^5.90.16 ([#4799](https://github.com/homarr-labs/homarr/issues/4799)) ([413e846](https://github.com/homarr-labs/homarr/commit/413e846133f13a800f509273b8b87cf677f0024d)) -* **deps:** update dependency ldapts to v8.1.0 ([#4804](https://github.com/homarr-labs/homarr/issues/4804)) ([c8ecf5f](https://github.com/homarr-labs/homarr/commit/c8ecf5f0a13b1c74f24cebced76a60728eb2d543)) -* **deps:** update dependency ldapts to v8.1.2 ([#4805](https://github.com/homarr-labs/homarr/issues/4805)) ([9e63e34](https://github.com/homarr-labs/homarr/commit/9e63e3443af7946199999104024f00991cc1cba2)) -* **deps:** update dependency next-intl to v4.7.0 ([#4806](https://github.com/homarr-labs/homarr/issues/4806)) ([35042a7](https://github.com/homarr-labs/homarr/commit/35042a783ce5c381425bb96766adbefcac75bfdd)) -* **deps:** update dependency typescript-eslint to ^8.51.0 ([#4795](https://github.com/homarr-labs/homarr/issues/4795)) ([f0a2551](https://github.com/homarr-labs/homarr/commit/f0a2551fdf5b5e02ece789d473411ad3edcfb093)) +- **deps:** update dependency @tabler/icons-react to ^3.36.0 ([#4707](https://github.com/homarr-labs/homarr/issues/4707)) ([35e0198](https://github.com/homarr-labs/homarr/commit/35e0198b5df2a315ea2efb584752c5af062f960d)) +- **deps:** update dependency @tabler/icons-react to ^3.36.1 ([#4812](https://github.com/homarr-labs/homarr/issues/4812)) ([dabb2bb](https://github.com/homarr-labs/homarr/commit/dabb2bb7821f6a68d41c4a931bb70c41fdd21a72)) +- **deps:** update dependency @tanstack/react-query to ^5.90.15 ([#4794](https://github.com/homarr-labs/homarr/issues/4794)) ([ea848bd](https://github.com/homarr-labs/homarr/commit/ea848bdd0bc1268675d00213bb86dc1d1b298162)) +- **deps:** update dependency @tanstack/react-query to ^5.90.16 ([#4799](https://github.com/homarr-labs/homarr/issues/4799)) ([413e846](https://github.com/homarr-labs/homarr/commit/413e846133f13a800f509273b8b87cf677f0024d)) +- **deps:** update dependency ldapts to v8.1.0 ([#4804](https://github.com/homarr-labs/homarr/issues/4804)) ([c8ecf5f](https://github.com/homarr-labs/homarr/commit/c8ecf5f0a13b1c74f24cebced76a60728eb2d543)) +- **deps:** update dependency ldapts to v8.1.2 ([#4805](https://github.com/homarr-labs/homarr/issues/4805)) ([9e63e34](https://github.com/homarr-labs/homarr/commit/9e63e3443af7946199999104024f00991cc1cba2)) +- **deps:** update dependency next-intl to v4.7.0 ([#4806](https://github.com/homarr-labs/homarr/issues/4806)) ([35042a7](https://github.com/homarr-labs/homarr/commit/35042a783ce5c381425bb96766adbefcac75bfdd)) +- **deps:** update dependency typescript-eslint to ^8.51.0 ([#4795](https://github.com/homarr-labs/homarr/issues/4795)) ([f0a2551](https://github.com/homarr-labs/homarr/commit/f0a2551fdf5b5e02ece789d473411ad3edcfb093)) ## [1.49.1](https://github.com/homarr-labs/homarr/compare/v1.49.0...v1.49.1) (2026-01-03) ### Bug Fixes -* **db:** connection issue do to missing host and name of db when connecting with host ([#4786](https://github.com/homarr-labs/homarr/issues/4786)) ([7d33225](https://github.com/homarr-labs/homarr/commit/7d3322576c3ed1b9917873bf707d77d2a4eef1a8)) -* **deps:** update dependency ldapts to v8.0.36 ([#4790](https://github.com/homarr-labs/homarr/issues/4790)) ([1842e5f](https://github.com/homarr-labs/homarr/commit/1842e5fff5c072c8da45a01be860e63d12d5062a)) -* **deps:** update dependency react-error-boundary to ^6.0.1 ([#4791](https://github.com/homarr-labs/homarr/issues/4791)) ([1b70973](https://github.com/homarr-labs/homarr/commit/1b70973084c9e9ebed34e8d7d9690a9e5530f60f)) -* **unraid:** temperature of disks can be null ([#4788](https://github.com/homarr-labs/homarr/issues/4788)) ([60f9d4e](https://github.com/homarr-labs/homarr/commit/60f9d4e6e69df2190171e5d8e263b2030447ab2e)) +- **db:** connection issue do to missing host and name of db when connecting with host ([#4786](https://github.com/homarr-labs/homarr/issues/4786)) ([7d33225](https://github.com/homarr-labs/homarr/commit/7d3322576c3ed1b9917873bf707d77d2a4eef1a8)) +- **deps:** update dependency ldapts to v8.0.36 ([#4790](https://github.com/homarr-labs/homarr/issues/4790)) ([1842e5f](https://github.com/homarr-labs/homarr/commit/1842e5fff5c072c8da45a01be860e63d12d5062a)) +- **deps:** update dependency react-error-boundary to ^6.0.1 ([#4791](https://github.com/homarr-labs/homarr/issues/4791)) ([1b70973](https://github.com/homarr-labs/homarr/commit/1b70973084c9e9ebed34e8d7d9690a9e5530f60f)) +- **unraid:** temperature of disks can be null ([#4788](https://github.com/homarr-labs/homarr/issues/4788)) ([60f9d4e](https://github.com/homarr-labs/homarr/commit/60f9d4e6e69df2190171e5d8e263b2030447ab2e)) ## [1.49.0](https://github.com/homarr-labs/homarr/compare/v1.48.0...v1.49.0) (2026-01-02) ### Features -* unraid integration ([#4439](https://github.com/homarr-labs/homarr/issues/4439)) ([9b0dd6d](https://github.com/homarr-labs/homarr/commit/9b0dd6d6cebda4a541c8859506d89e9e9f782fa4)) +- unraid integration ([#4439](https://github.com/homarr-labs/homarr/issues/4439)) ([9b0dd6d](https://github.com/homarr-labs/homarr/commit/9b0dd6d6cebda4a541c8859506d89e9e9f782fa4)) ### Bug Fixes -* add orphaned status for containers with invalid stats ([#4441](https://github.com/homarr-labs/homarr/issues/4441)) ([f04f537](https://github.com/homarr-labs/homarr/commit/f04f53759b6890d5d2dd683a9bf124d8ff12780b)) -* **deps:** update dependency @xterm/addon-fit to v0.11.0 ([#4756](https://github.com/homarr-labs/homarr/issues/4756)) ([1c727e5](https://github.com/homarr-labs/homarr/commit/1c727e59af4041e5e41da854633ccd3c030c1d18)) -* **deps:** update dependency @xterm/xterm to v6 ([#4757](https://github.com/homarr-labs/homarr/issues/4757)) ([fad478c](https://github.com/homarr-labs/homarr/commit/fad478c549cdbc616f921d9b444bff48b59e77a5)) -* **deps:** update dependency isomorphic-dompurify to ^2.35.0 ([#4779](https://github.com/homarr-labs/homarr/issues/4779)) ([236fa35](https://github.com/homarr-labs/homarr/commit/236fa35f7e0943be33bba153e7030ce4e3bb204e)) -* **deps:** update dependency jotai to ^2.16.1 ([#4772](https://github.com/homarr-labs/homarr/issues/4772)) ([d002700](https://github.com/homarr-labs/homarr/commit/d00270046a041a10c1c540cfa79c1eee477f3303)) -* **deps:** update dependency ldapts to v8.0.31 ([#4755](https://github.com/homarr-labs/homarr/issues/4755)) ([8b09693](https://github.com/homarr-labs/homarr/commit/8b096939e4e1da8e98791a8e05f108a136fe2810)) -* **deps:** update dependency ldapts to v8.0.32 ([#4762](https://github.com/homarr-labs/homarr/issues/4762)) ([49afb82](https://github.com/homarr-labs/homarr/commit/49afb8244615f67af0586aaacf77a509231ac6dc)) -* **deps:** update dependency ldapts to v8.0.34 ([#4765](https://github.com/homarr-labs/homarr/issues/4765)) ([809bf55](https://github.com/homarr-labs/homarr/commit/809bf559fe1b96df9a903dc790d138cad7368adb)) -* **deps:** update dependency ldapts to v8.0.35 ([#4768](https://github.com/homarr-labs/homarr/issues/4768)) ([e574dd7](https://github.com/homarr-labs/homarr/commit/e574dd70f1421e9254a289a0f02fd0b4d43e26ad)) -* **deps:** update dependency typescript-eslint to ^8.50.1 ([#4758](https://github.com/homarr-labs/homarr/issues/4758)) ([adaa803](https://github.com/homarr-labs/homarr/commit/adaa8039dd545109246ccd9fa15570739f755f62)) -* **deps:** update nextjs monorepo to v16.1.1 ([#4759](https://github.com/homarr-labs/homarr/issues/4759)) ([7712ab4](https://github.com/homarr-labs/homarr/commit/7712ab410b5094e5d84df75461e07efdfccc285b)) -* **deps:** update tanstack-query monorepo ([#4782](https://github.com/homarr-labs/homarr/issues/4782)) ([1e5d38f](https://github.com/homarr-labs/homarr/commit/1e5d38fd3ca4c68fa4c61b02757a3cff39839fdb)) -* **deps:** update testcontainers-node monorepo to ^11.11.0 ([#4781](https://github.com/homarr-labs/homarr/issues/4781)) ([e40a116](https://github.com/homarr-labs/homarr/commit/e40a11608cb21a75e6910028abf97e14b5275f56)) -* **deps:** update turbo monorepo to ^2.7.2 ([#4764](https://github.com/homarr-labs/homarr/issues/4764)) ([9191430](https://github.com/homarr-labs/homarr/commit/919143022969350f6ee7be2f53be2fe09a89bba3)) +- add orphaned status for containers with invalid stats ([#4441](https://github.com/homarr-labs/homarr/issues/4441)) ([f04f537](https://github.com/homarr-labs/homarr/commit/f04f53759b6890d5d2dd683a9bf124d8ff12780b)) +- **deps:** update dependency @xterm/addon-fit to v0.11.0 ([#4756](https://github.com/homarr-labs/homarr/issues/4756)) ([1c727e5](https://github.com/homarr-labs/homarr/commit/1c727e59af4041e5e41da854633ccd3c030c1d18)) +- **deps:** update dependency @xterm/xterm to v6 ([#4757](https://github.com/homarr-labs/homarr/issues/4757)) ([fad478c](https://github.com/homarr-labs/homarr/commit/fad478c549cdbc616f921d9b444bff48b59e77a5)) +- **deps:** update dependency isomorphic-dompurify to ^2.35.0 ([#4779](https://github.com/homarr-labs/homarr/issues/4779)) ([236fa35](https://github.com/homarr-labs/homarr/commit/236fa35f7e0943be33bba153e7030ce4e3bb204e)) +- **deps:** update dependency jotai to ^2.16.1 ([#4772](https://github.com/homarr-labs/homarr/issues/4772)) ([d002700](https://github.com/homarr-labs/homarr/commit/d00270046a041a10c1c540cfa79c1eee477f3303)) +- **deps:** update dependency ldapts to v8.0.31 ([#4755](https://github.com/homarr-labs/homarr/issues/4755)) ([8b09693](https://github.com/homarr-labs/homarr/commit/8b096939e4e1da8e98791a8e05f108a136fe2810)) +- **deps:** update dependency ldapts to v8.0.32 ([#4762](https://github.com/homarr-labs/homarr/issues/4762)) ([49afb82](https://github.com/homarr-labs/homarr/commit/49afb8244615f67af0586aaacf77a509231ac6dc)) +- **deps:** update dependency ldapts to v8.0.34 ([#4765](https://github.com/homarr-labs/homarr/issues/4765)) ([809bf55](https://github.com/homarr-labs/homarr/commit/809bf559fe1b96df9a903dc790d138cad7368adb)) +- **deps:** update dependency ldapts to v8.0.35 ([#4768](https://github.com/homarr-labs/homarr/issues/4768)) ([e574dd7](https://github.com/homarr-labs/homarr/commit/e574dd70f1421e9254a289a0f02fd0b4d43e26ad)) +- **deps:** update dependency typescript-eslint to ^8.50.1 ([#4758](https://github.com/homarr-labs/homarr/issues/4758)) ([adaa803](https://github.com/homarr-labs/homarr/commit/adaa8039dd545109246ccd9fa15570739f755f62)) +- **deps:** update nextjs monorepo to v16.1.1 ([#4759](https://github.com/homarr-labs/homarr/issues/4759)) ([7712ab4](https://github.com/homarr-labs/homarr/commit/7712ab410b5094e5d84df75461e07efdfccc285b)) +- **deps:** update tanstack-query monorepo ([#4782](https://github.com/homarr-labs/homarr/issues/4782)) ([1e5d38f](https://github.com/homarr-labs/homarr/commit/1e5d38fd3ca4c68fa4c61b02757a3cff39839fdb)) +- **deps:** update testcontainers-node monorepo to ^11.11.0 ([#4781](https://github.com/homarr-labs/homarr/issues/4781)) ([e40a116](https://github.com/homarr-labs/homarr/commit/e40a11608cb21a75e6910028abf97e14b5275f56)) +- **deps:** update turbo monorepo to ^2.7.2 ([#4764](https://github.com/homarr-labs/homarr/issues/4764)) ([9191430](https://github.com/homarr-labs/homarr/commit/919143022969350f6ee7be2f53be2fe09a89bba3)) ## [1.48.0](https://github.com/homarr-labs/homarr/compare/v1.47.0...v1.48.0) (2025-12-26) ### Features -* enable dns caching by default ([#4706](https://github.com/homarr-labs/homarr/issues/4706)) ([fbb5298](https://github.com/homarr-labs/homarr/commit/fbb5298cb05b12eb2f19c121a1bc103caeb3e576)) -* **http:** add proxy support ([#4721](https://github.com/homarr-labs/homarr/issues/4721)) ([5a57115](https://github.com/homarr-labs/homarr/commit/5a57115ca073aea1c75a000fda6a23648c5488e4)) +- enable dns caching by default ([#4706](https://github.com/homarr-labs/homarr/issues/4706)) ([fbb5298](https://github.com/homarr-labs/homarr/commit/fbb5298cb05b12eb2f19c121a1bc103caeb3e576)) +- **http:** add proxy support ([#4721](https://github.com/homarr-labs/homarr/issues/4721)) ([5a57115](https://github.com/homarr-labs/homarr/commit/5a57115ca073aea1c75a000fda6a23648c5488e4)) ### Bug Fixes -* **deps:** update dependency @t3-oss/env-nextjs to ^0.13.10 ([#4710](https://github.com/homarr-labs/homarr/issues/4710)) ([689523a](https://github.com/homarr-labs/homarr/commit/689523a194ab48bdc072b1cdf65f07ade6cbc584)) -* **deps:** update dependency ldapts to v8.0.24 ([#4711](https://github.com/homarr-labs/homarr/issues/4711)) ([648f7e2](https://github.com/homarr-labs/homarr/commit/648f7e2c7743af81f4bced36b7e1e80c21e851e5)) -* **deps:** update dependency ldapts to v8.0.25 ([#4724](https://github.com/homarr-labs/homarr/issues/4724)) ([ef12b2b](https://github.com/homarr-labs/homarr/commit/ef12b2b5c2e1131138937fb6da61ce4c167fe0eb)) -* **deps:** update dependency ldapts to v8.0.27 ([#4737](https://github.com/homarr-labs/homarr/issues/4737)) ([8891ac4](https://github.com/homarr-labs/homarr/commit/8891ac42399e47fda6efc657b8ff2fe58aebca9e)) -* **deps:** update dependency ldapts to v8.0.28 ([#4743](https://github.com/homarr-labs/homarr/issues/4743)) ([75c5453](https://github.com/homarr-labs/homarr/commit/75c545344aae39550917331458c01a894b6a942f)) -* **deps:** update dependency ldapts to v8.0.29 ([#4747](https://github.com/homarr-labs/homarr/issues/4747)) ([5dd7400](https://github.com/homarr-labs/homarr/commit/5dd74006843ae72f63e631b14f0fd50c911d610b)) -* **deps:** update dependency ldapts to v8.0.30 ([#4749](https://github.com/homarr-labs/homarr/issues/4749)) ([96c2c0d](https://github.com/homarr-labs/homarr/commit/96c2c0d604737c64722fa21bf79965c806bf4da3)) -* **deps:** update dependency mysql2 to v3.16.0 ([#4731](https://github.com/homarr-labs/homarr/issues/4731)) ([f34bdce](https://github.com/homarr-labs/homarr/commit/f34bdce6446d4e62b54b96f63e91cfdddd51e901)) -* **deps:** update dependency next-intl to v4.6.1 ([#4730](https://github.com/homarr-labs/homarr/issues/4730)) ([f4d782a](https://github.com/homarr-labs/homarr/commit/f4d782abefb78e085ca3fc66034c0ca54fb21120)) -* **deps:** update dependency sass to ^1.97.0 ([#4726](https://github.com/homarr-labs/homarr/issues/4726)) ([88baad8](https://github.com/homarr-labs/homarr/commit/88baad8143f4ca830e50644d6bd1d1980ef1da82)) -* **deps:** update dependency sass to ^1.97.1 ([#4746](https://github.com/homarr-labs/homarr/issues/4746)) ([6b774f4](https://github.com/homarr-labs/homarr/commit/6b774f47d0a8bf731e7e1837a9d47e0dc53a1ff0)) -* **deps:** update dependency typescript-eslint to ^8.50.0 ([#4720](https://github.com/homarr-labs/homarr/issues/4720)) ([2dc8fea](https://github.com/homarr-labs/homarr/commit/2dc8feae7ea6174a1d826d8f0151ddc2c04c6aa6)) -* **deps:** update dependency zod to ^4.2.0 ([#4712](https://github.com/homarr-labs/homarr/issues/4712)) ([6e39524](https://github.com/homarr-labs/homarr/commit/6e39524f9d28d201c13738212d238726e1685832)) -* **deps:** update dependency zod to ^4.2.1 ([#4722](https://github.com/homarr-labs/homarr/issues/4722)) ([68dc684](https://github.com/homarr-labs/homarr/commit/68dc6844fdee53aca55b44dd7d19bf9d3a35c057)) -* **deps:** update nextjs monorepo to v16.1.0 ([#4739](https://github.com/homarr-labs/homarr/issues/4739)) ([99f2842](https://github.com/homarr-labs/homarr/commit/99f2842a5a102056c76ddc68cb5083791f324c3c)) -* **deps:** update tiptap monorepo to v3.14.0 ([#4744](https://github.com/homarr-labs/homarr/issues/4744)) ([adbe707](https://github.com/homarr-labs/homarr/commit/adbe707c73f462771c3d21cbbcc21e8245eea6f3)) -* **deps:** update trpc monorepo to ^11.8.1 ([#4750](https://github.com/homarr-labs/homarr/issues/4750)) ([93bf9ab](https://github.com/homarr-labs/homarr/commit/93bf9ab84b5387eefb8cc0b03057a4ccf0b13aa9)) -* **deps:** update turbo monorepo to ^2.7.0 ([#4745](https://github.com/homarr-labs/homarr/issues/4745)) ([5d659a3](https://github.com/homarr-labs/homarr/commit/5d659a3ebbf79266158cb57236de90e7883e7a4e)) -* **deps:** update turbo monorepo to ^2.7.1 ([#4751](https://github.com/homarr-labs/homarr/issues/4751)) ([d8db016](https://github.com/homarr-labs/homarr/commit/d8db0169a142c2ec302806fe946cb17431ccae6b)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.13.10 ([#4710](https://github.com/homarr-labs/homarr/issues/4710)) ([689523a](https://github.com/homarr-labs/homarr/commit/689523a194ab48bdc072b1cdf65f07ade6cbc584)) +- **deps:** update dependency ldapts to v8.0.24 ([#4711](https://github.com/homarr-labs/homarr/issues/4711)) ([648f7e2](https://github.com/homarr-labs/homarr/commit/648f7e2c7743af81f4bced36b7e1e80c21e851e5)) +- **deps:** update dependency ldapts to v8.0.25 ([#4724](https://github.com/homarr-labs/homarr/issues/4724)) ([ef12b2b](https://github.com/homarr-labs/homarr/commit/ef12b2b5c2e1131138937fb6da61ce4c167fe0eb)) +- **deps:** update dependency ldapts to v8.0.27 ([#4737](https://github.com/homarr-labs/homarr/issues/4737)) ([8891ac4](https://github.com/homarr-labs/homarr/commit/8891ac42399e47fda6efc657b8ff2fe58aebca9e)) +- **deps:** update dependency ldapts to v8.0.28 ([#4743](https://github.com/homarr-labs/homarr/issues/4743)) ([75c5453](https://github.com/homarr-labs/homarr/commit/75c545344aae39550917331458c01a894b6a942f)) +- **deps:** update dependency ldapts to v8.0.29 ([#4747](https://github.com/homarr-labs/homarr/issues/4747)) ([5dd7400](https://github.com/homarr-labs/homarr/commit/5dd74006843ae72f63e631b14f0fd50c911d610b)) +- **deps:** update dependency ldapts to v8.0.30 ([#4749](https://github.com/homarr-labs/homarr/issues/4749)) ([96c2c0d](https://github.com/homarr-labs/homarr/commit/96c2c0d604737c64722fa21bf79965c806bf4da3)) +- **deps:** update dependency mysql2 to v3.16.0 ([#4731](https://github.com/homarr-labs/homarr/issues/4731)) ([f34bdce](https://github.com/homarr-labs/homarr/commit/f34bdce6446d4e62b54b96f63e91cfdddd51e901)) +- **deps:** update dependency next-intl to v4.6.1 ([#4730](https://github.com/homarr-labs/homarr/issues/4730)) ([f4d782a](https://github.com/homarr-labs/homarr/commit/f4d782abefb78e085ca3fc66034c0ca54fb21120)) +- **deps:** update dependency sass to ^1.97.0 ([#4726](https://github.com/homarr-labs/homarr/issues/4726)) ([88baad8](https://github.com/homarr-labs/homarr/commit/88baad8143f4ca830e50644d6bd1d1980ef1da82)) +- **deps:** update dependency sass to ^1.97.1 ([#4746](https://github.com/homarr-labs/homarr/issues/4746)) ([6b774f4](https://github.com/homarr-labs/homarr/commit/6b774f47d0a8bf731e7e1837a9d47e0dc53a1ff0)) +- **deps:** update dependency typescript-eslint to ^8.50.0 ([#4720](https://github.com/homarr-labs/homarr/issues/4720)) ([2dc8fea](https://github.com/homarr-labs/homarr/commit/2dc8feae7ea6174a1d826d8f0151ddc2c04c6aa6)) +- **deps:** update dependency zod to ^4.2.0 ([#4712](https://github.com/homarr-labs/homarr/issues/4712)) ([6e39524](https://github.com/homarr-labs/homarr/commit/6e39524f9d28d201c13738212d238726e1685832)) +- **deps:** update dependency zod to ^4.2.1 ([#4722](https://github.com/homarr-labs/homarr/issues/4722)) ([68dc684](https://github.com/homarr-labs/homarr/commit/68dc6844fdee53aca55b44dd7d19bf9d3a35c057)) +- **deps:** update nextjs monorepo to v16.1.0 ([#4739](https://github.com/homarr-labs/homarr/issues/4739)) ([99f2842](https://github.com/homarr-labs/homarr/commit/99f2842a5a102056c76ddc68cb5083791f324c3c)) +- **deps:** update tiptap monorepo to v3.14.0 ([#4744](https://github.com/homarr-labs/homarr/issues/4744)) ([adbe707](https://github.com/homarr-labs/homarr/commit/adbe707c73f462771c3d21cbbcc21e8245eea6f3)) +- **deps:** update trpc monorepo to ^11.8.1 ([#4750](https://github.com/homarr-labs/homarr/issues/4750)) ([93bf9ab](https://github.com/homarr-labs/homarr/commit/93bf9ab84b5387eefb8cc0b03057a4ccf0b13aa9)) +- **deps:** update turbo monorepo to ^2.7.0 ([#4745](https://github.com/homarr-labs/homarr/issues/4745)) ([5d659a3](https://github.com/homarr-labs/homarr/commit/5d659a3ebbf79266158cb57236de90e7883e7a4e)) +- **deps:** update turbo monorepo to ^2.7.1 ([#4751](https://github.com/homarr-labs/homarr/issues/4751)) ([d8db016](https://github.com/homarr-labs/homarr/commit/d8db0169a142c2ec302806fe946cb17431ccae6b)) ## [1.47.0](https://github.com/homarr-labs/homarr/compare/v1.46.0...v1.47.0) (2025-12-19) ### Features -* [#4452](https://github.com/homarr-labs/homarr/issues/4452) improve calendar design ([#4461](https://github.com/homarr-labs/homarr/issues/4461)) ([08e9f7d](https://github.com/homarr-labs/homarr/commit/08e9f7d8d85475788534b46e6cceb40a7231c09d)) +- [#4452](https://github.com/homarr-labs/homarr/issues/4452) improve calendar design ([#4461](https://github.com/homarr-labs/homarr/issues/4461)) ([08e9f7d](https://github.com/homarr-labs/homarr/commit/08e9f7d8d85475788534b46e6cceb40a7231c09d)) ### Bug Fixes -* **boards:** selection menu not shown to users without change access ([#4689](https://github.com/homarr-labs/homarr/issues/4689)) ([a0a11e3](https://github.com/homarr-labs/homarr/commit/a0a11e35707513fee45551e09c26ff633f636c32)) -* **deps:** update dependency dns-caching to ^0.2.9 ([#4648](https://github.com/homarr-labs/homarr/issues/4648)) ([6deab2e](https://github.com/homarr-labs/homarr/commit/6deab2ecec2dc4f5192b53213cb755a9853eb7c0)) -* **deps:** update dependency drizzle-orm to ^0.45.1 ([#4663](https://github.com/homarr-labs/homarr/issues/4663)) ([f635009](https://github.com/homarr-labs/homarr/commit/f63500961f11589a972a41dde9e4117b1f25141c)) -* **deps:** update dependency fast-xml-parser to ^5.3.3 ([#4683](https://github.com/homarr-labs/homarr/issues/4683)) ([611b65e](https://github.com/homarr-labs/homarr/commit/611b65e8bd420aaad580bf35071b651093623c95)) -* **deps:** update dependency isomorphic-dompurify to ^2.34.0 ([#4650](https://github.com/homarr-labs/homarr/issues/4650)) ([5d5c18b](https://github.com/homarr-labs/homarr/commit/5d5c18b3649d5fa1b2b933d443ccd5abcbb84e3a)) -* **deps:** update dependency jotai to ^2.16.0 ([#4655](https://github.com/homarr-labs/homarr/issues/4655)) ([4aef85b](https://github.com/homarr-labs/homarr/commit/4aef85ba60f4978da5a0b13c08e1799949fe4497)) -* **deps:** update dependency ldapts to v8.0.16 ([#4640](https://github.com/homarr-labs/homarr/issues/4640)) ([ada5597](https://github.com/homarr-labs/homarr/commit/ada5597cf3ab0bafb04e9176b431d257b36d1dc8)) -* **deps:** update dependency ldapts to v8.0.17 ([#4642](https://github.com/homarr-labs/homarr/issues/4642)) ([c09da85](https://github.com/homarr-labs/homarr/commit/c09da85f3a8450a70991ff0656228a9aa1364f89)) -* **deps:** update dependency ldapts to v8.0.18 ([#4653](https://github.com/homarr-labs/homarr/issues/4653)) ([4bd142e](https://github.com/homarr-labs/homarr/commit/4bd142e09c666cc84c67c93e2202e571565b766c)) -* **deps:** update dependency ldapts to v8.0.19 ([#4669](https://github.com/homarr-labs/homarr/issues/4669)) ([8ed771d](https://github.com/homarr-labs/homarr/commit/8ed771d30073809b08a6ace2c29b3de2675e37d1)) -* **deps:** update dependency ldapts to v8.0.20 ([#4684](https://github.com/homarr-labs/homarr/issues/4684)) ([703c8cc](https://github.com/homarr-labs/homarr/commit/703c8ccc060bb1775a72f405da1e169926b1ce5d)) -* **deps:** update dependency ldapts to v8.0.21 ([#4695](https://github.com/homarr-labs/homarr/issues/4695)) ([7f6eaa0](https://github.com/homarr-labs/homarr/commit/7f6eaa0b1f397a37b6acd15e0ccfea75ee2e0161)) -* **deps:** update dependency ldapts to v8.0.22 ([#4700](https://github.com/homarr-labs/homarr/issues/4700)) ([391d725](https://github.com/homarr-labs/homarr/commit/391d725191563ba5048593c14baf077a924cea44)) -* **deps:** update dependency ldapts to v8.0.23 ([#4701](https://github.com/homarr-labs/homarr/issues/4701)) ([db337b2](https://github.com/homarr-labs/homarr/commit/db337b2525762c96acd815bd4fdacfaabff5f0cf)) -* **deps:** update dependency next-intl to v4.6.0 ([#4691](https://github.com/homarr-labs/homarr/issues/4691)) ([1ff6fac](https://github.com/homarr-labs/homarr/commit/1ff6fac71bb9187d0eb703a7b6543daf8861efe8)) -* **deps:** update dependency sass to ^1.94.3 ([#4646](https://github.com/homarr-labs/homarr/issues/4646)) ([7e91d12](https://github.com/homarr-labs/homarr/commit/7e91d12439826eee76f118448c583294c3c46b42)) -* **deps:** update dependency sass to ^1.95.0 ([#4647](https://github.com/homarr-labs/homarr/issues/4647)) ([eb760da](https://github.com/homarr-labs/homarr/commit/eb760da8b30583575fb638995fc2f2acbd5b2961)) -* **deps:** update dependency sass to ^1.95.1 ([#4661](https://github.com/homarr-labs/homarr/issues/4661)) ([e327c66](https://github.com/homarr-labs/homarr/commit/e327c660b239840c4929f536eff3096342cc3433)) -* **deps:** update dependency sass to ^1.96.0 ([#4668](https://github.com/homarr-labs/homarr/issues/4668)) ([bdfc150](https://github.com/homarr-labs/homarr/commit/bdfc1501152450a1546962331037a6fc1c782e4e)) -* **deps:** update dependency swagger-ui-react to ^5.31.0 ([#4672](https://github.com/homarr-labs/homarr/issues/4672)) ([4d593f5](https://github.com/homarr-labs/homarr/commit/4d593f5b9d1f47ae2368f42131e8ef8d32f73fc9)) -* **deps:** update dependency typescript-eslint to ^8.49.0 ([#4645](https://github.com/homarr-labs/homarr/issues/4645)) ([220cb66](https://github.com/homarr-labs/homarr/commit/220cb669a13fead953ff42040b39e06d1dcc1fe2)) -* **deps:** update mantine monorepo to ^8.3.10 ([#4651](https://github.com/homarr-labs/homarr/issues/4651)) ([d0652f7](https://github.com/homarr-labs/homarr/commit/d0652f7cf5ac0e63a61adcfe43e53c4ed130e8fc)) -* **deps:** update react monorepo to v19.2.2 ([#4676](https://github.com/homarr-labs/homarr/issues/4676)) ([82e79f2](https://github.com/homarr-labs/homarr/commit/82e79f26274a289e1ce4f9331b6ba16f00f5a86c)) -* **deps:** update react monorepo to v19.2.3 ([#4680](https://github.com/homarr-labs/homarr/issues/4680)) ([4c71856](https://github.com/homarr-labs/homarr/commit/4c7185646d9d061d1aebf9194f9ef2f810fc3384)) -* **deps:** update testcontainers-node monorepo to ^11.10.0 ([#4659](https://github.com/homarr-labs/homarr/issues/4659)) ([c880ce9](https://github.com/homarr-labs/homarr/commit/c880ce9bd99a7056f20d450275fcbc37f9372f63)) -* **deps:** update trpc monorepo to ^11.8.0 ([#4697](https://github.com/homarr-labs/homarr/issues/4697)) ([1f44845](https://github.com/homarr-labs/homarr/commit/1f44845df489bb33bcfe943c6a05c0f157037ed6)) -* **downloads:** improve progress to only show 100 percent if fully completed ([#4621](https://github.com/homarr-labs/homarr/issues/4621)) ([1062745](https://github.com/homarr-labs/homarr/commit/10627453d5b5a17991bbe9b8d4bc23981b366c39)) -* **iframe-widget:** permission selection not applying to any origin ([#4616](https://github.com/homarr-labs/homarr/issues/4616)) ([479f083](https://github.com/homarr-labs/homarr/commit/479f083ab8ec405d1b8296b32a20262f6192a1f9)) -* **invites:** creation with custom expiration not working ([#4677](https://github.com/homarr-labs/homarr/issues/4677)) ([423da9e](https://github.com/homarr-labs/homarr/commit/423da9eeb88510a123bdd2447dc97b54c5f1dec4)) -* reference to prebuilt-debian action does not work ([47d7458](https://github.com/homarr-labs/homarr/commit/47d7458143d8801947cae1985745fa827b247dd1)) -* **stock-price:** use previous-close for change calculation ([#4674](https://github.com/homarr-labs/homarr/issues/4674)) ([17fc7a0](https://github.com/homarr-labs/homarr/commit/17fc7a043b4adbed9f14408e23c95ec5fba0c8b8)) -* **tdarr:** array parse error ([#4678](https://github.com/homarr-labs/homarr/issues/4678)) ([d86af07](https://github.com/homarr-labs/homarr/commit/d86af072bf136d76b02f3efa2c15520a4f63974e)) +- **boards:** selection menu not shown to users without change access ([#4689](https://github.com/homarr-labs/homarr/issues/4689)) ([a0a11e3](https://github.com/homarr-labs/homarr/commit/a0a11e35707513fee45551e09c26ff633f636c32)) +- **deps:** update dependency dns-caching to ^0.2.9 ([#4648](https://github.com/homarr-labs/homarr/issues/4648)) ([6deab2e](https://github.com/homarr-labs/homarr/commit/6deab2ecec2dc4f5192b53213cb755a9853eb7c0)) +- **deps:** update dependency drizzle-orm to ^0.45.1 ([#4663](https://github.com/homarr-labs/homarr/issues/4663)) ([f635009](https://github.com/homarr-labs/homarr/commit/f63500961f11589a972a41dde9e4117b1f25141c)) +- **deps:** update dependency fast-xml-parser to ^5.3.3 ([#4683](https://github.com/homarr-labs/homarr/issues/4683)) ([611b65e](https://github.com/homarr-labs/homarr/commit/611b65e8bd420aaad580bf35071b651093623c95)) +- **deps:** update dependency isomorphic-dompurify to ^2.34.0 ([#4650](https://github.com/homarr-labs/homarr/issues/4650)) ([5d5c18b](https://github.com/homarr-labs/homarr/commit/5d5c18b3649d5fa1b2b933d443ccd5abcbb84e3a)) +- **deps:** update dependency jotai to ^2.16.0 ([#4655](https://github.com/homarr-labs/homarr/issues/4655)) ([4aef85b](https://github.com/homarr-labs/homarr/commit/4aef85ba60f4978da5a0b13c08e1799949fe4497)) +- **deps:** update dependency ldapts to v8.0.16 ([#4640](https://github.com/homarr-labs/homarr/issues/4640)) ([ada5597](https://github.com/homarr-labs/homarr/commit/ada5597cf3ab0bafb04e9176b431d257b36d1dc8)) +- **deps:** update dependency ldapts to v8.0.17 ([#4642](https://github.com/homarr-labs/homarr/issues/4642)) ([c09da85](https://github.com/homarr-labs/homarr/commit/c09da85f3a8450a70991ff0656228a9aa1364f89)) +- **deps:** update dependency ldapts to v8.0.18 ([#4653](https://github.com/homarr-labs/homarr/issues/4653)) ([4bd142e](https://github.com/homarr-labs/homarr/commit/4bd142e09c666cc84c67c93e2202e571565b766c)) +- **deps:** update dependency ldapts to v8.0.19 ([#4669](https://github.com/homarr-labs/homarr/issues/4669)) ([8ed771d](https://github.com/homarr-labs/homarr/commit/8ed771d30073809b08a6ace2c29b3de2675e37d1)) +- **deps:** update dependency ldapts to v8.0.20 ([#4684](https://github.com/homarr-labs/homarr/issues/4684)) ([703c8cc](https://github.com/homarr-labs/homarr/commit/703c8ccc060bb1775a72f405da1e169926b1ce5d)) +- **deps:** update dependency ldapts to v8.0.21 ([#4695](https://github.com/homarr-labs/homarr/issues/4695)) ([7f6eaa0](https://github.com/homarr-labs/homarr/commit/7f6eaa0b1f397a37b6acd15e0ccfea75ee2e0161)) +- **deps:** update dependency ldapts to v8.0.22 ([#4700](https://github.com/homarr-labs/homarr/issues/4700)) ([391d725](https://github.com/homarr-labs/homarr/commit/391d725191563ba5048593c14baf077a924cea44)) +- **deps:** update dependency ldapts to v8.0.23 ([#4701](https://github.com/homarr-labs/homarr/issues/4701)) ([db337b2](https://github.com/homarr-labs/homarr/commit/db337b2525762c96acd815bd4fdacfaabff5f0cf)) +- **deps:** update dependency next-intl to v4.6.0 ([#4691](https://github.com/homarr-labs/homarr/issues/4691)) ([1ff6fac](https://github.com/homarr-labs/homarr/commit/1ff6fac71bb9187d0eb703a7b6543daf8861efe8)) +- **deps:** update dependency sass to ^1.94.3 ([#4646](https://github.com/homarr-labs/homarr/issues/4646)) ([7e91d12](https://github.com/homarr-labs/homarr/commit/7e91d12439826eee76f118448c583294c3c46b42)) +- **deps:** update dependency sass to ^1.95.0 ([#4647](https://github.com/homarr-labs/homarr/issues/4647)) ([eb760da](https://github.com/homarr-labs/homarr/commit/eb760da8b30583575fb638995fc2f2acbd5b2961)) +- **deps:** update dependency sass to ^1.95.1 ([#4661](https://github.com/homarr-labs/homarr/issues/4661)) ([e327c66](https://github.com/homarr-labs/homarr/commit/e327c660b239840c4929f536eff3096342cc3433)) +- **deps:** update dependency sass to ^1.96.0 ([#4668](https://github.com/homarr-labs/homarr/issues/4668)) ([bdfc150](https://github.com/homarr-labs/homarr/commit/bdfc1501152450a1546962331037a6fc1c782e4e)) +- **deps:** update dependency swagger-ui-react to ^5.31.0 ([#4672](https://github.com/homarr-labs/homarr/issues/4672)) ([4d593f5](https://github.com/homarr-labs/homarr/commit/4d593f5b9d1f47ae2368f42131e8ef8d32f73fc9)) +- **deps:** update dependency typescript-eslint to ^8.49.0 ([#4645](https://github.com/homarr-labs/homarr/issues/4645)) ([220cb66](https://github.com/homarr-labs/homarr/commit/220cb669a13fead953ff42040b39e06d1dcc1fe2)) +- **deps:** update mantine monorepo to ^8.3.10 ([#4651](https://github.com/homarr-labs/homarr/issues/4651)) ([d0652f7](https://github.com/homarr-labs/homarr/commit/d0652f7cf5ac0e63a61adcfe43e53c4ed130e8fc)) +- **deps:** update react monorepo to v19.2.2 ([#4676](https://github.com/homarr-labs/homarr/issues/4676)) ([82e79f2](https://github.com/homarr-labs/homarr/commit/82e79f26274a289e1ce4f9331b6ba16f00f5a86c)) +- **deps:** update react monorepo to v19.2.3 ([#4680](https://github.com/homarr-labs/homarr/issues/4680)) ([4c71856](https://github.com/homarr-labs/homarr/commit/4c7185646d9d061d1aebf9194f9ef2f810fc3384)) +- **deps:** update testcontainers-node monorepo to ^11.10.0 ([#4659](https://github.com/homarr-labs/homarr/issues/4659)) ([c880ce9](https://github.com/homarr-labs/homarr/commit/c880ce9bd99a7056f20d450275fcbc37f9372f63)) +- **deps:** update trpc monorepo to ^11.8.0 ([#4697](https://github.com/homarr-labs/homarr/issues/4697)) ([1f44845](https://github.com/homarr-labs/homarr/commit/1f44845df489bb33bcfe943c6a05c0f157037ed6)) +- **downloads:** improve progress to only show 100 percent if fully completed ([#4621](https://github.com/homarr-labs/homarr/issues/4621)) ([1062745](https://github.com/homarr-labs/homarr/commit/10627453d5b5a17991bbe9b8d4bc23981b366c39)) +- **iframe-widget:** permission selection not applying to any origin ([#4616](https://github.com/homarr-labs/homarr/issues/4616)) ([479f083](https://github.com/homarr-labs/homarr/commit/479f083ab8ec405d1b8296b32a20262f6192a1f9)) +- **invites:** creation with custom expiration not working ([#4677](https://github.com/homarr-labs/homarr/issues/4677)) ([423da9e](https://github.com/homarr-labs/homarr/commit/423da9eeb88510a123bdd2447dc97b54c5f1dec4)) +- reference to prebuilt-debian action does not work ([47d7458](https://github.com/homarr-labs/homarr/commit/47d7458143d8801947cae1985745fa827b247dd1)) +- **stock-price:** use previous-close for change calculation ([#4674](https://github.com/homarr-labs/homarr/issues/4674)) ([17fc7a0](https://github.com/homarr-labs/homarr/commit/17fc7a043b4adbed9f14408e23c95ec5fba0c8b8)) +- **tdarr:** array parse error ([#4678](https://github.com/homarr-labs/homarr/issues/4678)) ([d86af07](https://github.com/homarr-labs/homarr/commit/d86af072bf136d76b02f3efa2c15520a4f63974e)) ## [1.46.0](https://github.com/homarr-labs/homarr/compare/v1.45.3...v1.46.0) (2025-12-12) ### Features -* **docker:** add widget options to sort containers ([#4636](https://github.com/homarr-labs/homarr/issues/4636)) ([dd24925](https://github.com/homarr-labs/homarr/commit/dd24925d906dc13d73c52a47fdd07bec89798789)) +- **docker:** add widget options to sort containers ([#4636](https://github.com/homarr-labs/homarr/issues/4636)) ([dd24925](https://github.com/homarr-labs/homarr/commit/dd24925d906dc13d73c52a47fdd07bec89798789)) ### Bug Fixes -* add autocomplete and id attributes for password manager compatibility ([#4602](https://github.com/homarr-labs/homarr/issues/4602)) ([681aee0](https://github.com/homarr-labs/homarr/commit/681aee05f07a6e09371ed089d2b9ef361494c416)) -* **deps:** update dependency @tanstack/react-query to ^5.90.12 ([#4615](https://github.com/homarr-labs/homarr/issues/4615)) ([efc0384](https://github.com/homarr-labs/homarr/commit/efc0384b372fadafb65f61f715f08edd2a8f8573)) -* **deps:** update dependency better-sqlite3 to ^12.5.0 ([#4569](https://github.com/homarr-labs/homarr/issues/4569)) ([a20248d](https://github.com/homarr-labs/homarr/commit/a20248d0b689ab1ca475f606edfca458897ce442)) -* **deps:** update dependency drizzle-kit to ^0.31.8 ([#4618](https://github.com/homarr-labs/homarr/issues/4618)) ([5cbab28](https://github.com/homarr-labs/homarr/commit/5cbab28099d41b8ade6cc8a42e69c4191310296c)) -* **deps:** update dependency drizzle-orm to ^0.45.0 ([#4619](https://github.com/homarr-labs/homarr/issues/4619)) ([cab5d19](https://github.com/homarr-labs/homarr/commit/cab5d19141a38fbb977f4ef6e9c2ddbfdfea6aff)) -* **deps:** update dependency ldapts to v8.0.12 ([#4613](https://github.com/homarr-labs/homarr/issues/4613)) ([4689ec9](https://github.com/homarr-labs/homarr/commit/4689ec9933e5286c0d19c66989023b5b3376ffb1)) -* **deps:** update dependency ldapts to v8.0.13 ([#4626](https://github.com/homarr-labs/homarr/issues/4626)) ([8a14a6c](https://github.com/homarr-labs/homarr/commit/8a14a6cb456a6f16975372f64451e3b54ebfd88d)) -* **deps:** update dependency ldapts to v8.0.14 ([#4627](https://github.com/homarr-labs/homarr/issues/4627)) ([e37325f](https://github.com/homarr-labs/homarr/commit/e37325f5e0314b13d031fba1bff591b881baf8d1)) -* **deps:** update dependency winston to v3.19.0 ([#4632](https://github.com/homarr-labs/homarr/issues/4632)) ([3b1c564](https://github.com/homarr-labs/homarr/commit/3b1c564a5abbf1d1fca6ecab46e173c8f6938130)) -* **deps:** update next monorepo to v16.0.10 [security] ([#4634](https://github.com/homarr-labs/homarr/issues/4634)) ([2b2c0e7](https://github.com/homarr-labs/homarr/commit/2b2c0e7e3a813525bd977276df6e5594bc283055)) -* **deps:** update react monorepo to v19.2.1 ([#4608](https://github.com/homarr-labs/homarr/issues/4608)) ([f6d16fe](https://github.com/homarr-labs/homarr/commit/f6d16fe44bf239fb85a4ee3e9ae6491131315dce)) -* **deps:** update tiptap monorepo to v3 (major) ([#3612](https://github.com/homarr-labs/homarr/issues/3612)) ([d111eee](https://github.com/homarr-labs/homarr/commit/d111eee0e0a41e55de87049f3cb0a9154ae82ea1)) -* **deps:** update turbo monorepo to ^2.6.2 ([#4612](https://github.com/homarr-labs/homarr/issues/4612)) ([7de45e6](https://github.com/homarr-labs/homarr/commit/7de45e6fe50ccf4333959f924889463a22316984)) -* **deps:** update turbo monorepo to ^2.6.3 ([#4622](https://github.com/homarr-labs/homarr/issues/4622)) ([85689ca](https://github.com/homarr-labs/homarr/commit/85689caf6c25b80cb4ce04a0baf2980a1a4deece)) -* format issues ([1dd9694](https://github.com/homarr-labs/homarr/commit/1dd9694719ec4dcefe3c8d221015ba9aecede78c)) -* improve run script ([#4609](https://github.com/homarr-labs/homarr/issues/4609)) ([d084dfb](https://github.com/homarr-labs/homarr/commit/d084dfb4705fca68bb9f9465ec9564050d0b04b2)) -* **plex:** test connection not fully checking connection ([#4617](https://github.com/homarr-labs/homarr/issues/4617)) ([6a90839](https://github.com/homarr-labs/homarr/commit/6a908397cd8a6189123b91ea9d68f683af2bed05)) -* **transmission:** total download incorrect for cross seeded torrents ([#3211](https://github.com/homarr-labs/homarr/issues/3211)) ([0b4ca93](https://github.com/homarr-labs/homarr/commit/0b4ca93aa13e9838b481daed5703640d30a52ffc)) +- add autocomplete and id attributes for password manager compatibility ([#4602](https://github.com/homarr-labs/homarr/issues/4602)) ([681aee0](https://github.com/homarr-labs/homarr/commit/681aee05f07a6e09371ed089d2b9ef361494c416)) +- **deps:** update dependency @tanstack/react-query to ^5.90.12 ([#4615](https://github.com/homarr-labs/homarr/issues/4615)) ([efc0384](https://github.com/homarr-labs/homarr/commit/efc0384b372fadafb65f61f715f08edd2a8f8573)) +- **deps:** update dependency better-sqlite3 to ^12.5.0 ([#4569](https://github.com/homarr-labs/homarr/issues/4569)) ([a20248d](https://github.com/homarr-labs/homarr/commit/a20248d0b689ab1ca475f606edfca458897ce442)) +- **deps:** update dependency drizzle-kit to ^0.31.8 ([#4618](https://github.com/homarr-labs/homarr/issues/4618)) ([5cbab28](https://github.com/homarr-labs/homarr/commit/5cbab28099d41b8ade6cc8a42e69c4191310296c)) +- **deps:** update dependency drizzle-orm to ^0.45.0 ([#4619](https://github.com/homarr-labs/homarr/issues/4619)) ([cab5d19](https://github.com/homarr-labs/homarr/commit/cab5d19141a38fbb977f4ef6e9c2ddbfdfea6aff)) +- **deps:** update dependency ldapts to v8.0.12 ([#4613](https://github.com/homarr-labs/homarr/issues/4613)) ([4689ec9](https://github.com/homarr-labs/homarr/commit/4689ec9933e5286c0d19c66989023b5b3376ffb1)) +- **deps:** update dependency ldapts to v8.0.13 ([#4626](https://github.com/homarr-labs/homarr/issues/4626)) ([8a14a6c](https://github.com/homarr-labs/homarr/commit/8a14a6cb456a6f16975372f64451e3b54ebfd88d)) +- **deps:** update dependency ldapts to v8.0.14 ([#4627](https://github.com/homarr-labs/homarr/issues/4627)) ([e37325f](https://github.com/homarr-labs/homarr/commit/e37325f5e0314b13d031fba1bff591b881baf8d1)) +- **deps:** update dependency winston to v3.19.0 ([#4632](https://github.com/homarr-labs/homarr/issues/4632)) ([3b1c564](https://github.com/homarr-labs/homarr/commit/3b1c564a5abbf1d1fca6ecab46e173c8f6938130)) +- **deps:** update next monorepo to v16.0.10 [security] ([#4634](https://github.com/homarr-labs/homarr/issues/4634)) ([2b2c0e7](https://github.com/homarr-labs/homarr/commit/2b2c0e7e3a813525bd977276df6e5594bc283055)) +- **deps:** update react monorepo to v19.2.1 ([#4608](https://github.com/homarr-labs/homarr/issues/4608)) ([f6d16fe](https://github.com/homarr-labs/homarr/commit/f6d16fe44bf239fb85a4ee3e9ae6491131315dce)) +- **deps:** update tiptap monorepo to v3 (major) ([#3612](https://github.com/homarr-labs/homarr/issues/3612)) ([d111eee](https://github.com/homarr-labs/homarr/commit/d111eee0e0a41e55de87049f3cb0a9154ae82ea1)) +- **deps:** update turbo monorepo to ^2.6.2 ([#4612](https://github.com/homarr-labs/homarr/issues/4612)) ([7de45e6](https://github.com/homarr-labs/homarr/commit/7de45e6fe50ccf4333959f924889463a22316984)) +- **deps:** update turbo monorepo to ^2.6.3 ([#4622](https://github.com/homarr-labs/homarr/issues/4622)) ([85689ca](https://github.com/homarr-labs/homarr/commit/85689caf6c25b80cb4ce04a0baf2980a1a4deece)) +- format issues ([1dd9694](https://github.com/homarr-labs/homarr/commit/1dd9694719ec4dcefe3c8d221015ba9aecede78c)) +- improve run script ([#4609](https://github.com/homarr-labs/homarr/issues/4609)) ([d084dfb](https://github.com/homarr-labs/homarr/commit/d084dfb4705fca68bb9f9465ec9564050d0b04b2)) +- **plex:** test connection not fully checking connection ([#4617](https://github.com/homarr-labs/homarr/issues/4617)) ([6a90839](https://github.com/homarr-labs/homarr/commit/6a908397cd8a6189123b91ea9d68f683af2bed05)) +- **transmission:** total download incorrect for cross seeded torrents ([#3211](https://github.com/homarr-labs/homarr/issues/3211)) ([0b4ca93](https://github.com/homarr-labs/homarr/commit/0b4ca93aa13e9838b481daed5703640d30a52ffc)) ## [1.45.3](https://github.com/homarr-labs/homarr/compare/v1.45.2...v1.45.3) (2025-12-08) ### Bug Fixes -* **deps:** update dependency glob to v13 ([#4584](https://github.com/homarr-labs/homarr/issues/4584)) ([020cbd7](https://github.com/homarr-labs/homarr/commit/020cbd72d387c9f50f4eddcbc2685829cf7787de)) -* **deps:** update dependency jotai to ^2.15.2 ([#4597](https://github.com/homarr-labs/homarr/issues/4597)) ([ed638d4](https://github.com/homarr-labs/homarr/commit/ed638d47679594eab3cc19a12473722644ebf694)) -* **deps:** update dependency next-intl to v4.5.7 ([#4598](https://github.com/homarr-labs/homarr/issues/4598)) ([6b28aa8](https://github.com/homarr-labs/homarr/commit/6b28aa86d0bad29e4806592079a7f5d2e22b5ade)) -* **deps:** update dependency next-intl to v4.5.8 ([#4606](https://github.com/homarr-labs/homarr/issues/4606)) ([4f92e52](https://github.com/homarr-labs/homarr/commit/4f92e5265a40c636f303406e728e88cc056da23c)) -* **deps:** update dependency prettier to ^3.7.4 ([#4582](https://github.com/homarr-labs/homarr/issues/4582)) ([5480982](https://github.com/homarr-labs/homarr/commit/54809823e9edeacc245b560747b622aba683b3bf)) -* **deps:** update dependency typescript-eslint to ^8.48.1 ([#4438](https://github.com/homarr-labs/homarr/issues/4438)) ([d88c602](https://github.com/homarr-labs/homarr/commit/d88c6027fe3accf7a6872ada8aa2724d30bf691c)) +- **deps:** update dependency glob to v13 ([#4584](https://github.com/homarr-labs/homarr/issues/4584)) ([020cbd7](https://github.com/homarr-labs/homarr/commit/020cbd72d387c9f50f4eddcbc2685829cf7787de)) +- **deps:** update dependency jotai to ^2.15.2 ([#4597](https://github.com/homarr-labs/homarr/issues/4597)) ([ed638d4](https://github.com/homarr-labs/homarr/commit/ed638d47679594eab3cc19a12473722644ebf694)) +- **deps:** update dependency next-intl to v4.5.7 ([#4598](https://github.com/homarr-labs/homarr/issues/4598)) ([6b28aa8](https://github.com/homarr-labs/homarr/commit/6b28aa86d0bad29e4806592079a7f5d2e22b5ade)) +- **deps:** update dependency next-intl to v4.5.8 ([#4606](https://github.com/homarr-labs/homarr/issues/4606)) ([4f92e52](https://github.com/homarr-labs/homarr/commit/4f92e5265a40c636f303406e728e88cc056da23c)) +- **deps:** update dependency prettier to ^3.7.4 ([#4582](https://github.com/homarr-labs/homarr/issues/4582)) ([5480982](https://github.com/homarr-labs/homarr/commit/54809823e9edeacc245b560747b622aba683b3bf)) +- **deps:** update dependency typescript-eslint to ^8.48.1 ([#4438](https://github.com/homarr-labs/homarr/issues/4438)) ([d88c602](https://github.com/homarr-labs/homarr/commit/d88c6027fe3accf7a6872ada8aa2724d30bf691c)) ## [1.45.2](https://github.com/homarr-labs/homarr/compare/v1.45.1...v1.45.2) (2025-12-05) ### Bug Fixes -* add ipv6 support for internal nginx proxy ([2c48b18](https://github.com/homarr-labs/homarr/commit/2c48b18968a74cb7150c246ebb2505d07764f109)) -* disable react-compiler due to issue with mantine-react-table data updates ([#4593](https://github.com/homarr-labs/homarr/issues/4593)) ([10572ca](https://github.com/homarr-labs/homarr/commit/10572ca962081961fb63b3ad9f164c610edf35e4)) +- add ipv6 support for internal nginx proxy ([2c48b18](https://github.com/homarr-labs/homarr/commit/2c48b18968a74cb7150c246ebb2505d07764f109)) +- disable react-compiler due to issue with mantine-react-table data updates ([#4593](https://github.com/homarr-labs/homarr/issues/4593)) ([10572ca](https://github.com/homarr-labs/homarr/commit/10572ca962081961fb63b3ad9f164c610edf35e4)) ## [1.45.1](https://github.com/homarr-labs/homarr/compare/v1.45.0...v1.45.1) (2025-12-03) ### Bug Fixes -* **deps:** update dependency chroma-js to ^3.1.4 ([#4570](https://github.com/homarr-labs/homarr/issues/4570)) ([d6fc46d](https://github.com/homarr-labs/homarr/commit/d6fc46df3b5e2dd79ff6f9a3dd3a3e2050a0eeef)) -* **deps:** update dependency chroma-js to ^3.2.0 ([#4585](https://github.com/homarr-labs/homarr/issues/4585)) ([b2c46d3](https://github.com/homarr-labs/homarr/commit/b2c46d33d6cc769e89e208fd29d3a1d143cf74c7)) -* **deps:** update dependency isomorphic-dompurify to ^2.33.0 ([#4581](https://github.com/homarr-labs/homarr/issues/4581)) ([ca01a31](https://github.com/homarr-labs/homarr/commit/ca01a31fe5cbce53eb0e6bd1a943320c092161ef)) -* **deps:** update dependency next-intl to v4.5.6 ([#4571](https://github.com/homarr-labs/homarr/issues/4571)) ([3062dda](https://github.com/homarr-labs/homarr/commit/3062ddafbe0bc1dbac9259af4036f0fa32d85237)) -* **deps:** update dependency sass to ^1.94.2 ([#4572](https://github.com/homarr-labs/homarr/issues/4572)) ([7a8c50f](https://github.com/homarr-labs/homarr/commit/7a8c50fa4c5224dd74af3c17f56e2e5b8d6a4f43)) -* **deps:** update dependency superjson to v2.2.6 ([#4573](https://github.com/homarr-labs/homarr/issues/4573)) ([deb5e9d](https://github.com/homarr-labs/homarr/commit/deb5e9d96092069e296ba473eaad58367b516f85)) -* **deps:** update dependency swagger-ui-react to ^5.30.3 ([#4574](https://github.com/homarr-labs/homarr/issues/4574)) ([d2c1dc3](https://github.com/homarr-labs/homarr/commit/d2c1dc3cc1dd72fc9fc8ae9613467fa0b0b8d75a)) -* **deps:** update dependency zod to ^4.1.13 ([#4575](https://github.com/homarr-labs/homarr/issues/4575)) ([879a77f](https://github.com/homarr-labs/homarr/commit/879a77ff2a81b0d0a17d1487eaf6d8539a955301)) -* **deps:** update mantine monorepo to ^8.3.9 ([#4576](https://github.com/homarr-labs/homarr/issues/4576)) ([d5d59dd](https://github.com/homarr-labs/homarr/commit/d5d59dd2561f0be2f4f4c689f33c6a9a7840a21c)) -* **deps:** update nextjs monorepo to v16.0.5 ([#4577](https://github.com/homarr-labs/homarr/issues/4577)) ([16f12d9](https://github.com/homarr-labs/homarr/commit/16f12d98e6cdae50fe2989db0911cb1350fcb93b)) -* **deps:** update tanstack-query monorepo ([#4578](https://github.com/homarr-labs/homarr/issues/4578)) ([59bcbc8](https://github.com/homarr-labs/homarr/commit/59bcbc8b4de4a0a8cee8adf6336c7c10477c766a)) -* **deps:** update testcontainers-node monorepo to ^11.9.0 ([#4583](https://github.com/homarr-labs/homarr/issues/4583)) ([10bdd74](https://github.com/homarr-labs/homarr/commit/10bdd74b2b287cb08ec0926147ac0e7fcfd492bb)) -* **deps:** update trpc monorepo to ^11.7.2 ([#4579](https://github.com/homarr-labs/homarr/issues/4579)) ([3453482](https://github.com/homarr-labs/homarr/commit/3453482ed43644025c39dee8e20549e1beb86be0)) -* **security:** rce vulnerability in nextjs ([b40deba](https://github.com/homarr-labs/homarr/commit/b40deba9ff1a3d629b6027565378d9f3ad2f1980)) +- **deps:** update dependency chroma-js to ^3.1.4 ([#4570](https://github.com/homarr-labs/homarr/issues/4570)) ([d6fc46d](https://github.com/homarr-labs/homarr/commit/d6fc46df3b5e2dd79ff6f9a3dd3a3e2050a0eeef)) +- **deps:** update dependency chroma-js to ^3.2.0 ([#4585](https://github.com/homarr-labs/homarr/issues/4585)) ([b2c46d3](https://github.com/homarr-labs/homarr/commit/b2c46d33d6cc769e89e208fd29d3a1d143cf74c7)) +- **deps:** update dependency isomorphic-dompurify to ^2.33.0 ([#4581](https://github.com/homarr-labs/homarr/issues/4581)) ([ca01a31](https://github.com/homarr-labs/homarr/commit/ca01a31fe5cbce53eb0e6bd1a943320c092161ef)) +- **deps:** update dependency next-intl to v4.5.6 ([#4571](https://github.com/homarr-labs/homarr/issues/4571)) ([3062dda](https://github.com/homarr-labs/homarr/commit/3062ddafbe0bc1dbac9259af4036f0fa32d85237)) +- **deps:** update dependency sass to ^1.94.2 ([#4572](https://github.com/homarr-labs/homarr/issues/4572)) ([7a8c50f](https://github.com/homarr-labs/homarr/commit/7a8c50fa4c5224dd74af3c17f56e2e5b8d6a4f43)) +- **deps:** update dependency superjson to v2.2.6 ([#4573](https://github.com/homarr-labs/homarr/issues/4573)) ([deb5e9d](https://github.com/homarr-labs/homarr/commit/deb5e9d96092069e296ba473eaad58367b516f85)) +- **deps:** update dependency swagger-ui-react to ^5.30.3 ([#4574](https://github.com/homarr-labs/homarr/issues/4574)) ([d2c1dc3](https://github.com/homarr-labs/homarr/commit/d2c1dc3cc1dd72fc9fc8ae9613467fa0b0b8d75a)) +- **deps:** update dependency zod to ^4.1.13 ([#4575](https://github.com/homarr-labs/homarr/issues/4575)) ([879a77f](https://github.com/homarr-labs/homarr/commit/879a77ff2a81b0d0a17d1487eaf6d8539a955301)) +- **deps:** update mantine monorepo to ^8.3.9 ([#4576](https://github.com/homarr-labs/homarr/issues/4576)) ([d5d59dd](https://github.com/homarr-labs/homarr/commit/d5d59dd2561f0be2f4f4c689f33c6a9a7840a21c)) +- **deps:** update nextjs monorepo to v16.0.5 ([#4577](https://github.com/homarr-labs/homarr/issues/4577)) ([16f12d9](https://github.com/homarr-labs/homarr/commit/16f12d98e6cdae50fe2989db0911cb1350fcb93b)) +- **deps:** update tanstack-query monorepo ([#4578](https://github.com/homarr-labs/homarr/issues/4578)) ([59bcbc8](https://github.com/homarr-labs/homarr/commit/59bcbc8b4de4a0a8cee8adf6336c7c10477c766a)) +- **deps:** update testcontainers-node monorepo to ^11.9.0 ([#4583](https://github.com/homarr-labs/homarr/issues/4583)) ([10bdd74](https://github.com/homarr-labs/homarr/commit/10bdd74b2b287cb08ec0926147ac0e7fcfd492bb)) +- **deps:** update trpc monorepo to ^11.7.2 ([#4579](https://github.com/homarr-labs/homarr/issues/4579)) ([3453482](https://github.com/homarr-labs/homarr/commit/3453482ed43644025c39dee8e20549e1beb86be0)) +- **security:** rce vulnerability in nextjs ([b40deba](https://github.com/homarr-labs/homarr/commit/b40deba9ff1a3d629b6027565378d9f3ad2f1980)) ## [1.45.0](https://github.com/homarr-labs/homarr/compare/v1.44.0...v1.45.0) (2025-11-28) ### Features -* **docker:** hide containers with label homarr.hide ([#4506](https://github.com/homarr-labs/homarr/issues/4506)) ([60ab98a](https://github.com/homarr-labs/homarr/commit/60ab98ae36abe712c825f7828394d3e3e98c888a)) +- **docker:** hide containers with label homarr.hide ([#4506](https://github.com/homarr-labs/homarr/issues/4506)) ([60ab98a](https://github.com/homarr-labs/homarr/commit/60ab98ae36abe712c825f7828394d3e3e98c888a)) ### Bug Fixes -* Add fallback when no icon in Minecraft Server widget ([#4544](https://github.com/homarr-labs/homarr/issues/4544)) ([#4545](https://github.com/homarr-labs/homarr/issues/4545)) ([99949fe](https://github.com/homarr-labs/homarr/commit/99949fe095ac5a3616c8e9c1964d7eb253c9f826)) -* **deps:** update dependency @tanstack/react-query to ^5.90.10 ([#4523](https://github.com/homarr-labs/homarr/issues/4523)) ([e87170a](https://github.com/homarr-labs/homarr/commit/e87170ae6e56cdbeef52e943353060329c39bdc9)) -* **deps:** update dependency glob to ^11.1.0 ([#4529](https://github.com/homarr-labs/homarr/issues/4529)) ([24c9854](https://github.com/homarr-labs/homarr/commit/24c985424ecc795eb96b56881a9b00c0c37386c1)) -* **deps:** update dependency glob to v12 ([#4530](https://github.com/homarr-labs/homarr/issues/4530)) ([18a6bfd](https://github.com/homarr-labs/homarr/commit/18a6bfd69d86de8c58dbfe6dc8b8fab78b2b5ee6)) -* **deps:** update dependency next-intl to v4.5.4 ([#4540](https://github.com/homarr-labs/homarr/issues/4540)) ([77a86ea](https://github.com/homarr-labs/homarr/commit/77a86ead41c0d098987561249203667ac4d88177)) -* **deps:** update dependency next-intl to v4.5.5 ([#4542](https://github.com/homarr-labs/homarr/issues/4542)) ([2bc6964](https://github.com/homarr-labs/homarr/commit/2bc6964f7efb5203f626d2f07b847dffd53191f0)) -* **deps:** update dependency sass to ^1.94.1 ([#4531](https://github.com/homarr-labs/homarr/issues/4531)) ([292e36f](https://github.com/homarr-labs/homarr/commit/292e36fec5acff9b1d143f19e18ea170c87fa0d0)) -* **deps:** update dependency zod-validation-error to v5 ([#4437](https://github.com/homarr-labs/homarr/issues/4437)) ([9a3feb4](https://github.com/homarr-labs/homarr/commit/9a3feb404c0c284b4f33fce12d87a469741a6ebd)) -* **security:** restrict modification of entrypoint script ([#4555](https://github.com/homarr-labs/homarr/issues/4555)) ([524e1a4](https://github.com/homarr-labs/homarr/commit/524e1a485be56dbebf8f71d4546bc65672737f30)) +- Add fallback when no icon in Minecraft Server widget ([#4544](https://github.com/homarr-labs/homarr/issues/4544)) ([#4545](https://github.com/homarr-labs/homarr/issues/4545)) ([99949fe](https://github.com/homarr-labs/homarr/commit/99949fe095ac5a3616c8e9c1964d7eb253c9f826)) +- **deps:** update dependency @tanstack/react-query to ^5.90.10 ([#4523](https://github.com/homarr-labs/homarr/issues/4523)) ([e87170a](https://github.com/homarr-labs/homarr/commit/e87170ae6e56cdbeef52e943353060329c39bdc9)) +- **deps:** update dependency glob to ^11.1.0 ([#4529](https://github.com/homarr-labs/homarr/issues/4529)) ([24c9854](https://github.com/homarr-labs/homarr/commit/24c985424ecc795eb96b56881a9b00c0c37386c1)) +- **deps:** update dependency glob to v12 ([#4530](https://github.com/homarr-labs/homarr/issues/4530)) ([18a6bfd](https://github.com/homarr-labs/homarr/commit/18a6bfd69d86de8c58dbfe6dc8b8fab78b2b5ee6)) +- **deps:** update dependency next-intl to v4.5.4 ([#4540](https://github.com/homarr-labs/homarr/issues/4540)) ([77a86ea](https://github.com/homarr-labs/homarr/commit/77a86ead41c0d098987561249203667ac4d88177)) +- **deps:** update dependency next-intl to v4.5.5 ([#4542](https://github.com/homarr-labs/homarr/issues/4542)) ([2bc6964](https://github.com/homarr-labs/homarr/commit/2bc6964f7efb5203f626d2f07b847dffd53191f0)) +- **deps:** update dependency sass to ^1.94.1 ([#4531](https://github.com/homarr-labs/homarr/issues/4531)) ([292e36f](https://github.com/homarr-labs/homarr/commit/292e36fec5acff9b1d143f19e18ea170c87fa0d0)) +- **deps:** update dependency zod-validation-error to v5 ([#4437](https://github.com/homarr-labs/homarr/issues/4437)) ([9a3feb4](https://github.com/homarr-labs/homarr/commit/9a3feb404c0c284b4f33fce12d87a469741a6ebd)) +- **security:** restrict modification of entrypoint script ([#4555](https://github.com/homarr-labs/homarr/issues/4555)) ([524e1a4](https://github.com/homarr-labs/homarr/commit/524e1a485be56dbebf8f71d4546bc65672737f30)) ## [1.44.0](https://github.com/homarr-labs/homarr/compare/v1.43.3...v1.44.0) (2025-11-21) ### Features -* **pi-hole:** support no-auth ([#4480](https://github.com/homarr-labs/homarr/issues/4480)) ([c89e35e](https://github.com/homarr-labs/homarr/commit/c89e35e13c794bbdf98748c00644b86f7f5dbe68)) +- **pi-hole:** support no-auth ([#4480](https://github.com/homarr-labs/homarr/issues/4480)) ([c89e35e](https://github.com/homarr-labs/homarr/commit/c89e35e13c794bbdf98748c00644b86f7f5dbe68)) ### Bug Fixes -* **deps:** update dependency @tanstack/react-query to ^5.90.8 ([#4494](https://github.com/homarr-labs/homarr/issues/4494)) ([a5b6203](https://github.com/homarr-labs/homarr/commit/a5b6203be6ac3c2308614f10ef6a17590917e2c9)) -* **deps:** update dependency @tanstack/react-query to ^5.90.9 ([#4508](https://github.com/homarr-labs/homarr/issues/4508)) ([b3db5d5](https://github.com/homarr-labs/homarr/commit/b3db5d5f7bc2d146f0b2c230a52e7bd4efad3bcb)) -* **deps:** update dependency @tanstack/react-query-next-experimental to ^5.91.0 ([#4505](https://github.com/homarr-labs/homarr/issues/4505)) ([8ea6cff](https://github.com/homarr-labs/homarr/commit/8ea6cffb537ca54a413c583ab8b8fd24a52185be)) -* **deps:** update dependency drizzle-kit to ^0.31.7 ([#4507](https://github.com/homarr-labs/homarr/issues/4507)) ([b4f9fb8](https://github.com/homarr-labs/homarr/commit/b4f9fb8b46a8f74e2d7896dfe98e80618cfbcde4)) -* **deps:** update dependency fast-xml-parser to ^5.3.2 ([#4510](https://github.com/homarr-labs/homarr/issues/4510)) ([5e57a49](https://github.com/homarr-labs/homarr/commit/5e57a4906bcedc53d220e983827293f4a699c425)) -* **deps:** update dependency next-intl to v4.5.1 ([#4484](https://github.com/homarr-labs/homarr/issues/4484)) ([06942ec](https://github.com/homarr-labs/homarr/commit/06942ecbcd245f5540f2960f437ca2955a5ed0c3)) -* **deps:** update dependency next-intl to v4.5.3 ([#4503](https://github.com/homarr-labs/homarr/issues/4503)) ([0642773](https://github.com/homarr-labs/homarr/commit/064277373cacd3309d8da3779d5451d195da7f81)) -* **deps:** update dependency sass to ^1.94.0 ([#4482](https://github.com/homarr-labs/homarr/issues/4482)) ([19ecede](https://github.com/homarr-labs/homarr/commit/19ecedea4370924d47545ca8d9d46a0b7c016cc9)) -* **deps:** update mantine monorepo to ^8.3.8 ([#4516](https://github.com/homarr-labs/homarr/issues/4516)) ([ded4e72](https://github.com/homarr-labs/homarr/commit/ded4e72e5407b0076495a06111f3b04445f27276)) -* **deps:** update nextjs monorepo to v16.0.3 ([#4504](https://github.com/homarr-labs/homarr/issues/4504)) ([7d0c1a1](https://github.com/homarr-labs/homarr/commit/7d0c1a14fdf1731ff44e3d00793cf4cd1c3e9b1f)) -* **deps:** update testcontainers-node monorepo to ^11.8.1 ([#4486](https://github.com/homarr-labs/homarr/issues/4486)) ([64657d8](https://github.com/homarr-labs/homarr/commit/64657d831cbe28a59708b280b07889b9f0232743)) -* **deps:** update turbo monorepo to ^2.6.1 ([#4483](https://github.com/homarr-labs/homarr/issues/4483)) ([cd124d6](https://github.com/homarr-labs/homarr/commit/cd124d6e8392eef5df0092481ec3cc26599f2902)) -* **iframe:** allow clicking links within ([#4521](https://github.com/homarr-labs/homarr/issues/4521)) ([5a418d7](https://github.com/homarr-labs/homarr/commit/5a418d73bdb07cf3d3270983b6881f2de8d58ad7)) -* **media-requests:** incorrect availability mapping ([#4520](https://github.com/homarr-labs/homarr/issues/4520)) ([d9cc35b](https://github.com/homarr-labs/homarr/commit/d9cc35b9859a14f44c4e4b13c6518287f8d18e54)) +- **deps:** update dependency @tanstack/react-query to ^5.90.8 ([#4494](https://github.com/homarr-labs/homarr/issues/4494)) ([a5b6203](https://github.com/homarr-labs/homarr/commit/a5b6203be6ac3c2308614f10ef6a17590917e2c9)) +- **deps:** update dependency @tanstack/react-query to ^5.90.9 ([#4508](https://github.com/homarr-labs/homarr/issues/4508)) ([b3db5d5](https://github.com/homarr-labs/homarr/commit/b3db5d5f7bc2d146f0b2c230a52e7bd4efad3bcb)) +- **deps:** update dependency @tanstack/react-query-next-experimental to ^5.91.0 ([#4505](https://github.com/homarr-labs/homarr/issues/4505)) ([8ea6cff](https://github.com/homarr-labs/homarr/commit/8ea6cffb537ca54a413c583ab8b8fd24a52185be)) +- **deps:** update dependency drizzle-kit to ^0.31.7 ([#4507](https://github.com/homarr-labs/homarr/issues/4507)) ([b4f9fb8](https://github.com/homarr-labs/homarr/commit/b4f9fb8b46a8f74e2d7896dfe98e80618cfbcde4)) +- **deps:** update dependency fast-xml-parser to ^5.3.2 ([#4510](https://github.com/homarr-labs/homarr/issues/4510)) ([5e57a49](https://github.com/homarr-labs/homarr/commit/5e57a4906bcedc53d220e983827293f4a699c425)) +- **deps:** update dependency next-intl to v4.5.1 ([#4484](https://github.com/homarr-labs/homarr/issues/4484)) ([06942ec](https://github.com/homarr-labs/homarr/commit/06942ecbcd245f5540f2960f437ca2955a5ed0c3)) +- **deps:** update dependency next-intl to v4.5.3 ([#4503](https://github.com/homarr-labs/homarr/issues/4503)) ([0642773](https://github.com/homarr-labs/homarr/commit/064277373cacd3309d8da3779d5451d195da7f81)) +- **deps:** update dependency sass to ^1.94.0 ([#4482](https://github.com/homarr-labs/homarr/issues/4482)) ([19ecede](https://github.com/homarr-labs/homarr/commit/19ecedea4370924d47545ca8d9d46a0b7c016cc9)) +- **deps:** update mantine monorepo to ^8.3.8 ([#4516](https://github.com/homarr-labs/homarr/issues/4516)) ([ded4e72](https://github.com/homarr-labs/homarr/commit/ded4e72e5407b0076495a06111f3b04445f27276)) +- **deps:** update nextjs monorepo to v16.0.3 ([#4504](https://github.com/homarr-labs/homarr/issues/4504)) ([7d0c1a1](https://github.com/homarr-labs/homarr/commit/7d0c1a14fdf1731ff44e3d00793cf4cd1c3e9b1f)) +- **deps:** update testcontainers-node monorepo to ^11.8.1 ([#4486](https://github.com/homarr-labs/homarr/issues/4486)) ([64657d8](https://github.com/homarr-labs/homarr/commit/64657d831cbe28a59708b280b07889b9f0232743)) +- **deps:** update turbo monorepo to ^2.6.1 ([#4483](https://github.com/homarr-labs/homarr/issues/4483)) ([cd124d6](https://github.com/homarr-labs/homarr/commit/cd124d6e8392eef5df0092481ec3cc26599f2902)) +- **iframe:** allow clicking links within ([#4521](https://github.com/homarr-labs/homarr/issues/4521)) ([5a418d7](https://github.com/homarr-labs/homarr/commit/5a418d73bdb07cf3d3270983b6881f2de8d58ad7)) +- **media-requests:** incorrect availability mapping ([#4520](https://github.com/homarr-labs/homarr/issues/4520)) ([d9cc35b](https://github.com/homarr-labs/homarr/commit/d9cc35b9859a14f44c4e4b13c6518287f8d18e54)) ## [1.43.3](https://github.com/homarr-labs/homarr/compare/v1.43.2...v1.43.3) (2025-11-14) ### Bug Fixes -* **deps:** update dependency @ctrl/qbittorrent to ^9.11.0 ([#4456](https://github.com/homarr-labs/homarr/issues/4456)) ([ddfed18](https://github.com/homarr-labs/homarr/commit/ddfed18acf44596dba15ea0ef56233c4936f9775)) -* **deps:** update dependency @tanstack/react-query to ^5.90.7 ([#4451](https://github.com/homarr-labs/homarr/issues/4451)) ([7bc2f87](https://github.com/homarr-labs/homarr/commit/7bc2f87f31f1babe691fa4a086a3897977f2d871)) -* **deps:** update dependency fast-xml-parser to ^5.3.1 ([#4435](https://github.com/homarr-labs/homarr/issues/4435)) ([65f2e82](https://github.com/homarr-labs/homarr/commit/65f2e825fdb9e5e79b814c9b49f663d1afac784d)) -* **deps:** update dependency fastify to ^5.6.2 ([#4471](https://github.com/homarr-labs/homarr/issues/4471)) ([e7071bf](https://github.com/homarr-labs/homarr/commit/e7071bf2bf6a45ff760cd3e7bd06382d2ed66cdc)) -* **deps:** update dependency next-intl to v4.5.0 ([#4462](https://github.com/homarr-labs/homarr/issues/4462)) ([51ce5da](https://github.com/homarr-labs/homarr/commit/51ce5da45bdccf061e593097ed751cf09d663437)) -* **deps:** update dependency swagger-ui-react to ^5.30.2 ([#4442](https://github.com/homarr-labs/homarr/issues/4442)) ([d3edfcf](https://github.com/homarr-labs/homarr/commit/d3edfcf3dca3d34afd5ef8ec21599cd08fde5092)) -* **deps:** update mantine monorepo to ^8.3.7 ([#4472](https://github.com/homarr-labs/homarr/issues/4472)) ([8a87dba](https://github.com/homarr-labs/homarr/commit/8a87dbad59786fa9789dd3efb8d9424bb950e977)) -* **deps:** update testcontainers-node monorepo to ^11.8.0 ([#4450](https://github.com/homarr-labs/homarr/issues/4450)) ([f648af0](https://github.com/homarr-labs/homarr/commit/f648af0e2b2b5d5f8180402c2734ea0c04559daa)) -* **stock-price:** ignore missing data points in price history ([#4429](https://github.com/homarr-labs/homarr/issues/4429)) ([c30c98b](https://github.com/homarr-labs/homarr/commit/c30c98b153fbec21551e45aedf83e0ae29d6e773)) -* **users:** next button in create form always disabled ([#4443](https://github.com/homarr-labs/homarr/issues/4443)) ([1c1f8a4](https://github.com/homarr-labs/homarr/commit/1c1f8a48d259c65ebeeec6856e1fe339defb4aaf)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.11.0 ([#4456](https://github.com/homarr-labs/homarr/issues/4456)) ([ddfed18](https://github.com/homarr-labs/homarr/commit/ddfed18acf44596dba15ea0ef56233c4936f9775)) +- **deps:** update dependency @tanstack/react-query to ^5.90.7 ([#4451](https://github.com/homarr-labs/homarr/issues/4451)) ([7bc2f87](https://github.com/homarr-labs/homarr/commit/7bc2f87f31f1babe691fa4a086a3897977f2d871)) +- **deps:** update dependency fast-xml-parser to ^5.3.1 ([#4435](https://github.com/homarr-labs/homarr/issues/4435)) ([65f2e82](https://github.com/homarr-labs/homarr/commit/65f2e825fdb9e5e79b814c9b49f663d1afac784d)) +- **deps:** update dependency fastify to ^5.6.2 ([#4471](https://github.com/homarr-labs/homarr/issues/4471)) ([e7071bf](https://github.com/homarr-labs/homarr/commit/e7071bf2bf6a45ff760cd3e7bd06382d2ed66cdc)) +- **deps:** update dependency next-intl to v4.5.0 ([#4462](https://github.com/homarr-labs/homarr/issues/4462)) ([51ce5da](https://github.com/homarr-labs/homarr/commit/51ce5da45bdccf061e593097ed751cf09d663437)) +- **deps:** update dependency swagger-ui-react to ^5.30.2 ([#4442](https://github.com/homarr-labs/homarr/issues/4442)) ([d3edfcf](https://github.com/homarr-labs/homarr/commit/d3edfcf3dca3d34afd5ef8ec21599cd08fde5092)) +- **deps:** update mantine monorepo to ^8.3.7 ([#4472](https://github.com/homarr-labs/homarr/issues/4472)) ([8a87dba](https://github.com/homarr-labs/homarr/commit/8a87dbad59786fa9789dd3efb8d9424bb950e977)) +- **deps:** update testcontainers-node monorepo to ^11.8.0 ([#4450](https://github.com/homarr-labs/homarr/issues/4450)) ([f648af0](https://github.com/homarr-labs/homarr/commit/f648af0e2b2b5d5f8180402c2734ea0c04559daa)) +- **stock-price:** ignore missing data points in price history ([#4429](https://github.com/homarr-labs/homarr/issues/4429)) ([c30c98b](https://github.com/homarr-labs/homarr/commit/c30c98b153fbec21551e45aedf83e0ae29d6e773)) +- **users:** next button in create form always disabled ([#4443](https://github.com/homarr-labs/homarr/issues/4443)) ([1c1f8a4](https://github.com/homarr-labs/homarr/commit/1c1f8a48d259c65ebeeec6856e1fe339defb4aaf)) ## [1.43.2](https://github.com/homarr-labs/homarr/compare/v1.43.1...v1.43.2) (2025-11-07) ### Bug Fixes -* **deps:** update dependency @ctrl/deluge to ^7.5.0 ([#4407](https://github.com/homarr-labs/homarr/issues/4407)) ([57d1a91](https://github.com/homarr-labs/homarr/commit/57d1a9186653dd4c327b360a3bdaa78fd8e1187b)) -* **deps:** update dependency @gitbeaker/rest to ^43.7.0 ([#4386](https://github.com/homarr-labs/homarr/issues/4386)) ([dcf960f](https://github.com/homarr-labs/homarr/commit/dcf960fa97011c24475f303d587152b42eabec45)) -* **deps:** update dependency @gitbeaker/rest to ^43.8.0 ([#4425](https://github.com/homarr-labs/homarr/issues/4425)) ([4516f27](https://github.com/homarr-labs/homarr/commit/4516f27fa69445e5aec16760e1f6ed8080bc8fff)) -* **deps:** update dependency @jellyfin/sdk to ^0.13.0 ([#4399](https://github.com/homarr-labs/homarr/issues/4399)) ([4c4e901](https://github.com/homarr-labs/homarr/commit/4c4e901e7d38faf83a4725b7cee5526b0b223dc3)) -* **deps:** update dependency @octokit/auth-app to ^8.1.2 ([#4412](https://github.com/homarr-labs/homarr/issues/4412)) ([018a33b](https://github.com/homarr-labs/homarr/commit/018a33b07812fa59f1469ce8b4baa7b1d55c6103)) -* **deps:** update dependency @tanstack/react-query to ^5.90.6 ([#4427](https://github.com/homarr-labs/homarr/issues/4427)) ([5f9054b](https://github.com/homarr-labs/homarr/commit/5f9054b162daf974baafdbee9f844b3a860cbdd0)) -* **deps:** update dependency dayjs to ^1.11.19 ([#4414](https://github.com/homarr-labs/homarr/issues/4414)) ([97cbade](https://github.com/homarr-labs/homarr/commit/97cbade7135cb06e0780dd1b448c78c8802794ea)) -* **deps:** update dependency drizzle-kit to ^0.31.6 ([#4397](https://github.com/homarr-labs/homarr/issues/4397)) ([59434ee](https://github.com/homarr-labs/homarr/commit/59434ee33ae16e06f96e2f07cf85337c313c73f6)) -* **deps:** update dependency jotai to ^2.15.1 ([#4426](https://github.com/homarr-labs/homarr/issues/4426)) ([07af9d8](https://github.com/homarr-labs/homarr/commit/07af9d8673ea9573bc436626cd84d11980d023bc)) -* **deps:** update dependency octokit to ^5.0.5 ([#4413](https://github.com/homarr-labs/homarr/issues/4413)) ([186e3e4](https://github.com/homarr-labs/homarr/commit/186e3e445dfe6b4fb1aeda3830ae1f260b605882)) -* **deps:** update dependency sass to ^1.93.3 ([#4421](https://github.com/homarr-labs/homarr/issues/4421)) ([f216427](https://github.com/homarr-labs/homarr/commit/f2164272a5ca9b51bdf9110664ed5a40b87b60f6)) -* **deps:** update dependency superjson to v2.2.5 ([#4398](https://github.com/homarr-labs/homarr/issues/4398)) ([19e25a0](https://github.com/homarr-labs/homarr/commit/19e25a095fb0252e8f2a459e0a97d44a37d2188a)) -* **deps:** update dependency swagger-ui-react to ^5.30.0 ([#4391](https://github.com/homarr-labs/homarr/issues/4391)) ([b51e285](https://github.com/homarr-labs/homarr/commit/b51e285c92ef707076f321f0ce1a15d5cbd5de7d)) -* **deps:** update dependency swagger-ui-react to ^5.30.1 ([#4418](https://github.com/homarr-labs/homarr/issues/4418)) ([d9b14db](https://github.com/homarr-labs/homarr/commit/d9b14db6a1af515796951a1db670431d10f81eaf)) -* **deps:** update dependency tsdav to ^2.1.6 ([#4417](https://github.com/homarr-labs/homarr/issues/4417)) ([160c20a](https://github.com/homarr-labs/homarr/commit/160c20a9a6f850f75537e246f42e93f9a2ed79a0)) -* **deps:** update mantine monorepo to ^8.3.6 ([#4403](https://github.com/homarr-labs/homarr/issues/4403)) ([9e2bbb8](https://github.com/homarr-labs/homarr/commit/9e2bbb8a3f2db95c5598e5dca993bf6cd4ebc127)) -* **deps:** update nextjs monorepo to v16 (major) ([#4363](https://github.com/homarr-labs/homarr/issues/4363)) ([6ce23a6](https://github.com/homarr-labs/homarr/commit/6ce23a6e971b064292970fc4df90cc69cdb59a95)) -* **deps:** update tiptap monorepo to v2.27.0 ([#4404](https://github.com/homarr-labs/homarr/issues/4404)) ([f4caddf](https://github.com/homarr-labs/homarr/commit/f4caddfd564553014854347eb6dd14cc800eb027)) -* **deps:** update tiptap monorepo to v2.27.1 ([#4405](https://github.com/homarr-labs/homarr/issues/4405)) ([d34f9e5](https://github.com/homarr-labs/homarr/commit/d34f9e5b3ef999559a4c5f1165488fe4f8828a83)) -* **deps:** update trpc monorepo to ^11.7.1 ([#4396](https://github.com/homarr-labs/homarr/issues/4396)) ([5aca5d1](https://github.com/homarr-labs/homarr/commit/5aca5d1b0a76ab4cf0ed27dac62183c766ad398a)) -* **deps:** update turbo monorepo to ^2.6.0 ([#4422](https://github.com/homarr-labs/homarr/issues/4422)) ([742ef66](https://github.com/homarr-labs/homarr/commit/742ef66e3cf56fd351c8dee2d3dd05cd639e51fa)) +- **deps:** update dependency @ctrl/deluge to ^7.5.0 ([#4407](https://github.com/homarr-labs/homarr/issues/4407)) ([57d1a91](https://github.com/homarr-labs/homarr/commit/57d1a9186653dd4c327b360a3bdaa78fd8e1187b)) +- **deps:** update dependency @gitbeaker/rest to ^43.7.0 ([#4386](https://github.com/homarr-labs/homarr/issues/4386)) ([dcf960f](https://github.com/homarr-labs/homarr/commit/dcf960fa97011c24475f303d587152b42eabec45)) +- **deps:** update dependency @gitbeaker/rest to ^43.8.0 ([#4425](https://github.com/homarr-labs/homarr/issues/4425)) ([4516f27](https://github.com/homarr-labs/homarr/commit/4516f27fa69445e5aec16760e1f6ed8080bc8fff)) +- **deps:** update dependency @jellyfin/sdk to ^0.13.0 ([#4399](https://github.com/homarr-labs/homarr/issues/4399)) ([4c4e901](https://github.com/homarr-labs/homarr/commit/4c4e901e7d38faf83a4725b7cee5526b0b223dc3)) +- **deps:** update dependency @octokit/auth-app to ^8.1.2 ([#4412](https://github.com/homarr-labs/homarr/issues/4412)) ([018a33b](https://github.com/homarr-labs/homarr/commit/018a33b07812fa59f1469ce8b4baa7b1d55c6103)) +- **deps:** update dependency @tanstack/react-query to ^5.90.6 ([#4427](https://github.com/homarr-labs/homarr/issues/4427)) ([5f9054b](https://github.com/homarr-labs/homarr/commit/5f9054b162daf974baafdbee9f844b3a860cbdd0)) +- **deps:** update dependency dayjs to ^1.11.19 ([#4414](https://github.com/homarr-labs/homarr/issues/4414)) ([97cbade](https://github.com/homarr-labs/homarr/commit/97cbade7135cb06e0780dd1b448c78c8802794ea)) +- **deps:** update dependency drizzle-kit to ^0.31.6 ([#4397](https://github.com/homarr-labs/homarr/issues/4397)) ([59434ee](https://github.com/homarr-labs/homarr/commit/59434ee33ae16e06f96e2f07cf85337c313c73f6)) +- **deps:** update dependency jotai to ^2.15.1 ([#4426](https://github.com/homarr-labs/homarr/issues/4426)) ([07af9d8](https://github.com/homarr-labs/homarr/commit/07af9d8673ea9573bc436626cd84d11980d023bc)) +- **deps:** update dependency octokit to ^5.0.5 ([#4413](https://github.com/homarr-labs/homarr/issues/4413)) ([186e3e4](https://github.com/homarr-labs/homarr/commit/186e3e445dfe6b4fb1aeda3830ae1f260b605882)) +- **deps:** update dependency sass to ^1.93.3 ([#4421](https://github.com/homarr-labs/homarr/issues/4421)) ([f216427](https://github.com/homarr-labs/homarr/commit/f2164272a5ca9b51bdf9110664ed5a40b87b60f6)) +- **deps:** update dependency superjson to v2.2.5 ([#4398](https://github.com/homarr-labs/homarr/issues/4398)) ([19e25a0](https://github.com/homarr-labs/homarr/commit/19e25a095fb0252e8f2a459e0a97d44a37d2188a)) +- **deps:** update dependency swagger-ui-react to ^5.30.0 ([#4391](https://github.com/homarr-labs/homarr/issues/4391)) ([b51e285](https://github.com/homarr-labs/homarr/commit/b51e285c92ef707076f321f0ce1a15d5cbd5de7d)) +- **deps:** update dependency swagger-ui-react to ^5.30.1 ([#4418](https://github.com/homarr-labs/homarr/issues/4418)) ([d9b14db](https://github.com/homarr-labs/homarr/commit/d9b14db6a1af515796951a1db670431d10f81eaf)) +- **deps:** update dependency tsdav to ^2.1.6 ([#4417](https://github.com/homarr-labs/homarr/issues/4417)) ([160c20a](https://github.com/homarr-labs/homarr/commit/160c20a9a6f850f75537e246f42e93f9a2ed79a0)) +- **deps:** update mantine monorepo to ^8.3.6 ([#4403](https://github.com/homarr-labs/homarr/issues/4403)) ([9e2bbb8](https://github.com/homarr-labs/homarr/commit/9e2bbb8a3f2db95c5598e5dca993bf6cd4ebc127)) +- **deps:** update nextjs monorepo to v16 (major) ([#4363](https://github.com/homarr-labs/homarr/issues/4363)) ([6ce23a6](https://github.com/homarr-labs/homarr/commit/6ce23a6e971b064292970fc4df90cc69cdb59a95)) +- **deps:** update tiptap monorepo to v2.27.0 ([#4404](https://github.com/homarr-labs/homarr/issues/4404)) ([f4caddf](https://github.com/homarr-labs/homarr/commit/f4caddfd564553014854347eb6dd14cc800eb027)) +- **deps:** update tiptap monorepo to v2.27.1 ([#4405](https://github.com/homarr-labs/homarr/issues/4405)) ([d34f9e5](https://github.com/homarr-labs/homarr/commit/d34f9e5b3ef999559a4c5f1165488fe4f8828a83)) +- **deps:** update trpc monorepo to ^11.7.1 ([#4396](https://github.com/homarr-labs/homarr/issues/4396)) ([5aca5d1](https://github.com/homarr-labs/homarr/commit/5aca5d1b0a76ab4cf0ed27dac62183c766ad398a)) +- **deps:** update turbo monorepo to ^2.6.0 ([#4422](https://github.com/homarr-labs/homarr/issues/4422)) ([742ef66](https://github.com/homarr-labs/homarr/commit/742ef66e3cf56fd351c8dee2d3dd05cd639e51fa)) ## [1.43.1](https://github.com/homarr-labs/homarr/compare/v1.43.0...v1.43.1) (2025-10-31) ### Bug Fixes -* **deps:** update dependency @auth/core to ^0.41.1 ([#4387](https://github.com/homarr-labs/homarr/issues/4387)) ([747bb92](https://github.com/homarr-labs/homarr/commit/747bb922ccf0508bd00c37faeab29e28876577b1)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.11.1 ([#4388](https://github.com/homarr-labs/homarr/issues/4388)) ([2fe3656](https://github.com/homarr-labs/homarr/commit/2fe36564c26c33ae2625eb22ef4503c6dd8ebcf9)) -* **deps:** update dependency @jellyfin/sdk to ^0.12.0 ([#4359](https://github.com/homarr-labs/homarr/issues/4359)) ([554d19a](https://github.com/homarr-labs/homarr/commit/554d19a458e856141f90e795ecebabf205e945e9)) -* **deps:** update dependency @paralleldrive/cuid2 to v3 ([#4343](https://github.com/homarr-labs/homarr/issues/4343)) ([074d27e](https://github.com/homarr-labs/homarr/commit/074d27e37e3430e7e98cf28e2876afe009811027)) -* **deps:** update dependency drizzle-orm to ^0.44.7 ([#4372](https://github.com/homarr-labs/homarr/issues/4372)) ([8242bfc](https://github.com/homarr-labs/homarr/commit/8242bfc95cd0e67397b1bfc46d65aec3f568c304)) -* **deps:** update dependency ioredis to v5.8.2 ([#4357](https://github.com/homarr-labs/homarr/issues/4357)) ([3c4c26e](https://github.com/homarr-labs/homarr/commit/3c4c26ee214a37193aea31b69ce75322862fc534)) -* **deps:** update dependency mysql2 to v3.15.3 ([#4360](https://github.com/homarr-labs/homarr/issues/4360)) ([6e6c912](https://github.com/homarr-labs/homarr/commit/6e6c9122257934402848d6fdc51e6ccdfc2dcca0)) -* **deps:** update dependency next-auth to v5.0.0-beta.30 [security] ([#4379](https://github.com/homarr-labs/homarr/issues/4379)) ([c544d6e](https://github.com/homarr-labs/homarr/commit/c544d6ec2e426bc4c82db547d7c4a5dc4d6e2a27)) -* **deps:** update dependency next-intl to v4.4.0 ([#4365](https://github.com/homarr-labs/homarr/issues/4365)) ([ce63388](https://github.com/homarr-labs/homarr/commit/ce6338840c20fc46048687ed5566ff12fa4b2502)) -* **deps:** update dependency node-ical to ^0.22.1 ([#4346](https://github.com/homarr-labs/homarr/issues/4346)) ([ef18c58](https://github.com/homarr-labs/homarr/commit/ef18c58f5b09bafd697365a0182ab7bc8719db2b)) -* **deps:** update dependency superjson to v2.2.3 ([#4364](https://github.com/homarr-labs/homarr/issues/4364)) ([18cc04e](https://github.com/homarr-labs/homarr/commit/18cc04e7f2740226f7bc7c75c0b0cdaec7cda6f8)) -* **deps:** update dependency typescript-eslint to ^8.46.2 ([#4352](https://github.com/homarr-labs/homarr/issues/4352)) ([f96cbe0](https://github.com/homarr-labs/homarr/commit/f96cbe06525515112fad466cb8a5f33d74517aba)) -* **deps:** update testcontainers-node monorepo to ^11.7.2 ([#4366](https://github.com/homarr-labs/homarr/issues/4366)) ([7329135](https://github.com/homarr-labs/homarr/commit/7329135fd85906602a16a9bdc16a1ef1cc4607c5)) -* **deps:** update tiptap monorepo to v2.26.4 ([#4371](https://github.com/homarr-labs/homarr/issues/4371)) ([136ed8e](https://github.com/homarr-labs/homarr/commit/136ed8e8b401b801ba16f2079bdfb5aeebe9f57f)) -* **deps:** update trpc monorepo to ^11.7.0 ([#4385](https://github.com/homarr-labs/homarr/issues/4385)) ([24def99](https://github.com/homarr-labs/homarr/commit/24def9982709cd6de1765a7235169fe1ceb3cbea)) -* **media-releases:** support more media type mappings for jellyfin and emby ([#4382](https://github.com/homarr-labs/homarr/issues/4382)) ([6f3b7ec](https://github.com/homarr-labs/homarr/commit/6f3b7ec4915754e183300a915baebc11f264df62)) -* **releases-widget:** Search multiple docker hub pages for releases ([#4158](https://github.com/homarr-labs/homarr/issues/4158)) ([e0526c5](https://github.com/homarr-labs/homarr/commit/e0526c5ea7ee83adcd22d78fbf63334cb59bcf79)) +- **deps:** update dependency @auth/core to ^0.41.1 ([#4387](https://github.com/homarr-labs/homarr/issues/4387)) ([747bb92](https://github.com/homarr-labs/homarr/commit/747bb922ccf0508bd00c37faeab29e28876577b1)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.11.1 ([#4388](https://github.com/homarr-labs/homarr/issues/4388)) ([2fe3656](https://github.com/homarr-labs/homarr/commit/2fe36564c26c33ae2625eb22ef4503c6dd8ebcf9)) +- **deps:** update dependency @jellyfin/sdk to ^0.12.0 ([#4359](https://github.com/homarr-labs/homarr/issues/4359)) ([554d19a](https://github.com/homarr-labs/homarr/commit/554d19a458e856141f90e795ecebabf205e945e9)) +- **deps:** update dependency @paralleldrive/cuid2 to v3 ([#4343](https://github.com/homarr-labs/homarr/issues/4343)) ([074d27e](https://github.com/homarr-labs/homarr/commit/074d27e37e3430e7e98cf28e2876afe009811027)) +- **deps:** update dependency drizzle-orm to ^0.44.7 ([#4372](https://github.com/homarr-labs/homarr/issues/4372)) ([8242bfc](https://github.com/homarr-labs/homarr/commit/8242bfc95cd0e67397b1bfc46d65aec3f568c304)) +- **deps:** update dependency ioredis to v5.8.2 ([#4357](https://github.com/homarr-labs/homarr/issues/4357)) ([3c4c26e](https://github.com/homarr-labs/homarr/commit/3c4c26ee214a37193aea31b69ce75322862fc534)) +- **deps:** update dependency mysql2 to v3.15.3 ([#4360](https://github.com/homarr-labs/homarr/issues/4360)) ([6e6c912](https://github.com/homarr-labs/homarr/commit/6e6c9122257934402848d6fdc51e6ccdfc2dcca0)) +- **deps:** update dependency next-auth to v5.0.0-beta.30 [security] ([#4379](https://github.com/homarr-labs/homarr/issues/4379)) ([c544d6e](https://github.com/homarr-labs/homarr/commit/c544d6ec2e426bc4c82db547d7c4a5dc4d6e2a27)) +- **deps:** update dependency next-intl to v4.4.0 ([#4365](https://github.com/homarr-labs/homarr/issues/4365)) ([ce63388](https://github.com/homarr-labs/homarr/commit/ce6338840c20fc46048687ed5566ff12fa4b2502)) +- **deps:** update dependency node-ical to ^0.22.1 ([#4346](https://github.com/homarr-labs/homarr/issues/4346)) ([ef18c58](https://github.com/homarr-labs/homarr/commit/ef18c58f5b09bafd697365a0182ab7bc8719db2b)) +- **deps:** update dependency superjson to v2.2.3 ([#4364](https://github.com/homarr-labs/homarr/issues/4364)) ([18cc04e](https://github.com/homarr-labs/homarr/commit/18cc04e7f2740226f7bc7c75c0b0cdaec7cda6f8)) +- **deps:** update dependency typescript-eslint to ^8.46.2 ([#4352](https://github.com/homarr-labs/homarr/issues/4352)) ([f96cbe0](https://github.com/homarr-labs/homarr/commit/f96cbe06525515112fad466cb8a5f33d74517aba)) +- **deps:** update testcontainers-node monorepo to ^11.7.2 ([#4366](https://github.com/homarr-labs/homarr/issues/4366)) ([7329135](https://github.com/homarr-labs/homarr/commit/7329135fd85906602a16a9bdc16a1ef1cc4607c5)) +- **deps:** update tiptap monorepo to v2.26.4 ([#4371](https://github.com/homarr-labs/homarr/issues/4371)) ([136ed8e](https://github.com/homarr-labs/homarr/commit/136ed8e8b401b801ba16f2079bdfb5aeebe9f57f)) +- **deps:** update trpc monorepo to ^11.7.0 ([#4385](https://github.com/homarr-labs/homarr/issues/4385)) ([24def99](https://github.com/homarr-labs/homarr/commit/24def9982709cd6de1765a7235169fe1ceb3cbea)) +- **media-releases:** support more media type mappings for jellyfin and emby ([#4382](https://github.com/homarr-labs/homarr/issues/4382)) ([6f3b7ec](https://github.com/homarr-labs/homarr/commit/6f3b7ec4915754e183300a915baebc11f264df62)) +- **releases-widget:** Search multiple docker hub pages for releases ([#4158](https://github.com/homarr-labs/homarr/issues/4158)) ([e0526c5](https://github.com/homarr-labs/homarr/commit/e0526c5ea7ee83adcd22d78fbf63334cb59bcf79)) ## [1.43.0](https://github.com/homarr-labs/homarr/compare/v1.42.1...v1.43.0) (2025-10-24) ### Features -* **integrations:** add app linking ([#4338](https://github.com/homarr-labs/homarr/issues/4338)) ([172db0e](https://github.com/homarr-labs/homarr/commit/172db0e3f905839b01e934a121c5bc5e45f3314a)) +- **integrations:** add app linking ([#4338](https://github.com/homarr-labs/homarr/issues/4338)) ([172db0e](https://github.com/homarr-labs/homarr/commit/172db0e3f905839b01e934a121c5bc5e45f3314a)) ### Bug Fixes -* **deps:** update dependency @tanstack/react-query to ^5.90.5 ([#4316](https://github.com/homarr-labs/homarr/issues/4316)) ([4cab12b](https://github.com/homarr-labs/homarr/commit/4cab12b80a4a37a20393ed8a3727997e157405d3)) -* **deps:** update dependency node-ical to ^0.22.0 ([#4344](https://github.com/homarr-labs/homarr/issues/4344)) ([7281b4a](https://github.com/homarr-labs/homarr/commit/7281b4ae32f6b86d3a1c6666db84419387b496a5)) -* **deps:** update dependency octokit to ^5.0.4 ([#4340](https://github.com/homarr-labs/homarr/issues/4340)) ([bd98370](https://github.com/homarr-labs/homarr/commit/bd983701b7d4eea15c81e7d6482f1390b98a35fb)) -* **deps:** update dependency swagger-ui-react to ^5.29.5 ([#4335](https://github.com/homarr-labs/homarr/issues/4335)) ([fb4b8f7](https://github.com/homarr-labs/homarr/commit/fb4b8f7ca3cc3c11392dc1665be2ad907d15772e)) -* **deps:** update mantine monorepo to ^8.3.5 ([#4291](https://github.com/homarr-labs/homarr/issues/4291)) ([63c5c9c](https://github.com/homarr-labs/homarr/commit/63c5c9ca9846d6c11cc44372366a68d3d46ee57c)) -* **deps:** update nextjs monorepo to v15.5.6 ([#4314](https://github.com/homarr-labs/homarr/issues/4314)) ([0df6e8f](https://github.com/homarr-labs/homarr/commit/0df6e8fb20e59457e7c12d123ba7f948619062e1)) +- **deps:** update dependency @tanstack/react-query to ^5.90.5 ([#4316](https://github.com/homarr-labs/homarr/issues/4316)) ([4cab12b](https://github.com/homarr-labs/homarr/commit/4cab12b80a4a37a20393ed8a3727997e157405d3)) +- **deps:** update dependency node-ical to ^0.22.0 ([#4344](https://github.com/homarr-labs/homarr/issues/4344)) ([7281b4a](https://github.com/homarr-labs/homarr/commit/7281b4ae32f6b86d3a1c6666db84419387b496a5)) +- **deps:** update dependency octokit to ^5.0.4 ([#4340](https://github.com/homarr-labs/homarr/issues/4340)) ([bd98370](https://github.com/homarr-labs/homarr/commit/bd983701b7d4eea15c81e7d6482f1390b98a35fb)) +- **deps:** update dependency swagger-ui-react to ^5.29.5 ([#4335](https://github.com/homarr-labs/homarr/issues/4335)) ([fb4b8f7](https://github.com/homarr-labs/homarr/commit/fb4b8f7ca3cc3c11392dc1665be2ad907d15772e)) +- **deps:** update mantine monorepo to ^8.3.5 ([#4291](https://github.com/homarr-labs/homarr/issues/4291)) ([63c5c9c](https://github.com/homarr-labs/homarr/commit/63c5c9ca9846d6c11cc44372366a68d3d46ee57c)) +- **deps:** update nextjs monorepo to v15.5.6 ([#4314](https://github.com/homarr-labs/homarr/issues/4314)) ([0df6e8f](https://github.com/homarr-labs/homarr/commit/0df6e8fb20e59457e7c12d123ba7f948619062e1)) ## [1.42.1](https://github.com/homarr-labs/homarr/compare/v1.42.0...v1.42.1) (2025-10-18) ### Bug Fixes -* **deps:** update dependency @ctrl/qbittorrent to ^9.10.0 ([#4310](https://github.com/homarr-labs/homarr/issues/4310)) ([3f87bbd](https://github.com/homarr-labs/homarr/commit/3f87bbd42bbe122870ca388e8b52069265cc577f)) -* **deps:** update dependency typescript-eslint to ^8.46.1 ([#4313](https://github.com/homarr-labs/homarr/issues/4313)) ([f78eaa5](https://github.com/homarr-labs/homarr/commit/f78eaa533e9f75cfbdc223d5581e19f73fdb7303)) -* **deps:** update nextjs monorepo to v15.5.5 ([#4312](https://github.com/homarr-labs/homarr/issues/4312)) ([857b46b](https://github.com/homarr-labs/homarr/commit/857b46bc333b5f3d5b3336986bdbe399e28bdc99)) -* **docker:** stats not working ([#4311](https://github.com/homarr-labs/homarr/issues/4311)) ([9aa2d5c](https://github.com/homarr-labs/homarr/commit/9aa2d5ccd8cfa8facea962c5e21efeee7f695c97)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.10.0 ([#4310](https://github.com/homarr-labs/homarr/issues/4310)) ([3f87bbd](https://github.com/homarr-labs/homarr/commit/3f87bbd42bbe122870ca388e8b52069265cc577f)) +- **deps:** update dependency typescript-eslint to ^8.46.1 ([#4313](https://github.com/homarr-labs/homarr/issues/4313)) ([f78eaa5](https://github.com/homarr-labs/homarr/commit/f78eaa533e9f75cfbdc223d5581e19f73fdb7303)) +- **deps:** update nextjs monorepo to v15.5.5 ([#4312](https://github.com/homarr-labs/homarr/issues/4312)) ([857b46b](https://github.com/homarr-labs/homarr/commit/857b46bc333b5f3d5b3336986bdbe399e28bdc99)) +- **docker:** stats not working ([#4311](https://github.com/homarr-labs/homarr/issues/4311)) ([9aa2d5c](https://github.com/homarr-labs/homarr/commit/9aa2d5ccd8cfa8facea962c5e21efeee7f695c97)) ## [1.42.0](https://github.com/homarr-labs/homarr/compare/v1.41.0...v1.42.0) (2025-10-17) ### Features -* **nextcloud:** reuse color from event for indicator ([#4270](https://github.com/homarr-labs/homarr/issues/4270)) ([afca800](https://github.com/homarr-labs/homarr/commit/afca8007f1919e0bb8cb17eefb9c41e3f28291cc)) -* **users:** allow profile picture change for external providers ([#4275](https://github.com/homarr-labs/homarr/issues/4275)) ([5c86930](https://github.com/homarr-labs/homarr/commit/5c86930220e97888eeae1c5440572ba7ef2434be)) +- **nextcloud:** reuse color from event for indicator ([#4270](https://github.com/homarr-labs/homarr/issues/4270)) ([afca800](https://github.com/homarr-labs/homarr/commit/afca8007f1919e0bb8cb17eefb9c41e3f28291cc)) +- **users:** allow profile picture change for external providers ([#4275](https://github.com/homarr-labs/homarr/issues/4275)) ([5c86930](https://github.com/homarr-labs/homarr/commit/5c86930220e97888eeae1c5440572ba7ef2434be)) ### Bug Fixes -* **calendar:** recurring events not working ([#4265](https://github.com/homarr-labs/homarr/issues/4265)) ([1b7e67d](https://github.com/homarr-labs/homarr/commit/1b7e67dd9760c159e525cd88face00e28a260d13)) -* **deps:** update dependency @auth/core to ^0.41.0 ([#4282](https://github.com/homarr-labs/homarr/issues/4282)) ([60370a7](https://github.com/homarr-labs/homarr/commit/60370a7e33dc1957aa433cbd6a11ab69661606cc)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.11.0 ([#4283](https://github.com/homarr-labs/homarr/issues/4283)) ([cd5d9c6](https://github.com/homarr-labs/homarr/commit/cd5d9c66ca42687faa9aeeff3d4d74d21a472a92)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.9.1 ([#4229](https://github.com/homarr-labs/homarr/issues/4229)) ([c2b2b09](https://github.com/homarr-labs/homarr/commit/c2b2b098a1ae7df027265dfcd184c01be1831ffc)) -* **deps:** update dependency ioredis to v5.8.1 ([#4259](https://github.com/homarr-labs/homarr/issues/4259)) ([4ffbea3](https://github.com/homarr-labs/homarr/commit/4ffbea3b521b45c3dd52595d4f6824d25a6b4a05)) -* **deps:** update dependency mysql2 to v3.15.2 ([#4280](https://github.com/homarr-labs/homarr/issues/4280)) ([65ccfdf](https://github.com/homarr-labs/homarr/commit/65ccfdfb13e83e78e65585aaf15a07b9d9755697)) -* **deps:** update dependency next-intl to v4.3.10 ([#4271](https://github.com/homarr-labs/homarr/issues/4271)) ([5d402f8](https://github.com/homarr-labs/homarr/commit/5d402f88d29892ddebfc7e9efc902be4c3bbeba1)) -* **deps:** update dependency next-intl to v4.3.11 ([#4273](https://github.com/homarr-labs/homarr/issues/4273)) ([f792b2a](https://github.com/homarr-labs/homarr/commit/f792b2a553f7a5851db36fc6a7ec495e2662dbc0)) -* **deps:** update dependency next-intl to v4.3.12 ([#4274](https://github.com/homarr-labs/homarr/issues/4274)) ([3a7c8d5](https://github.com/homarr-labs/homarr/commit/3a7c8d5e19c28a1e3b084e80eb52a3193a419d7f)) -* **deps:** update dependency swagger-ui-react to ^5.29.4 ([#4293](https://github.com/homarr-labs/homarr/issues/4293)) ([fde68f8](https://github.com/homarr-labs/homarr/commit/fde68f8bcc75aefb9cdb15c0b3b5d12c18a54d35)) -* **deps:** update dependency trpc-to-openapi to ^3.1.0 ([#4268](https://github.com/homarr-labs/homarr/issues/4268)) ([d80f070](https://github.com/homarr-labs/homarr/commit/d80f070ba3dca6bd8af10ee771f7cbd3d24dafa3)) -* **deps:** update dependency typescript-eslint to ^8.46.0 ([#4264](https://github.com/homarr-labs/homarr/issues/4264)) ([0aede0d](https://github.com/homarr-labs/homarr/commit/0aede0dec38016f5df08ce42f4f2e9237aaecaa6)) -* **deps:** update dependency zod to ^4.1.12 ([#4263](https://github.com/homarr-labs/homarr/issues/4263)) ([e887716](https://github.com/homarr-labs/homarr/commit/e8877169f88179fc9a23947c3f34478f851cb66a)) -* **deps:** update mantine monorepo to ^8.3.4 ([#4290](https://github.com/homarr-labs/homarr/issues/4290)) ([94533c6](https://github.com/homarr-labs/homarr/commit/94533c667cd234fdfe8f064b3d4892ad902e74c7)) -* **deps:** update tiptap monorepo to v2.26.3 ([#4292](https://github.com/homarr-labs/homarr/issues/4292)) ([38e368f](https://github.com/homarr-labs/homarr/commit/38e368fdbcf9aba54fbc960031742cb162a72b72)) -* **docker-widget:** memory usage wrong ([#4266](https://github.com/homarr-labs/homarr/issues/4266)) ([cccec5e](https://github.com/homarr-labs/homarr/commit/cccec5e19538aa8df154281f14fa939414bc8190)) -* **management:** improve homepage ([#4260](https://github.com/homarr-labs/homarr/issues/4260)) ([7e5f4e5](https://github.com/homarr-labs/homarr/commit/7e5f4e59a9edcb05dfa8a09919408e93e8d0313f)) -* **plex:** tv show links not working ([#4272](https://github.com/homarr-labs/homarr/issues/4272)) ([a80c5d4](https://github.com/homarr-labs/homarr/commit/a80c5d40e0e944d40dfdfe8e902ee10872e26bc0)) -* **users:** profile picture upload limit wrong ([#4276](https://github.com/homarr-labs/homarr/issues/4276)) ([35a8ac8](https://github.com/homarr-labs/homarr/commit/35a8ac820f084271bc7591834096226639aec0d4)) +- **calendar:** recurring events not working ([#4265](https://github.com/homarr-labs/homarr/issues/4265)) ([1b7e67d](https://github.com/homarr-labs/homarr/commit/1b7e67dd9760c159e525cd88face00e28a260d13)) +- **deps:** update dependency @auth/core to ^0.41.0 ([#4282](https://github.com/homarr-labs/homarr/issues/4282)) ([60370a7](https://github.com/homarr-labs/homarr/commit/60370a7e33dc1957aa433cbd6a11ab69661606cc)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.11.0 ([#4283](https://github.com/homarr-labs/homarr/issues/4283)) ([cd5d9c6](https://github.com/homarr-labs/homarr/commit/cd5d9c66ca42687faa9aeeff3d4d74d21a472a92)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.9.1 ([#4229](https://github.com/homarr-labs/homarr/issues/4229)) ([c2b2b09](https://github.com/homarr-labs/homarr/commit/c2b2b098a1ae7df027265dfcd184c01be1831ffc)) +- **deps:** update dependency ioredis to v5.8.1 ([#4259](https://github.com/homarr-labs/homarr/issues/4259)) ([4ffbea3](https://github.com/homarr-labs/homarr/commit/4ffbea3b521b45c3dd52595d4f6824d25a6b4a05)) +- **deps:** update dependency mysql2 to v3.15.2 ([#4280](https://github.com/homarr-labs/homarr/issues/4280)) ([65ccfdf](https://github.com/homarr-labs/homarr/commit/65ccfdfb13e83e78e65585aaf15a07b9d9755697)) +- **deps:** update dependency next-intl to v4.3.10 ([#4271](https://github.com/homarr-labs/homarr/issues/4271)) ([5d402f8](https://github.com/homarr-labs/homarr/commit/5d402f88d29892ddebfc7e9efc902be4c3bbeba1)) +- **deps:** update dependency next-intl to v4.3.11 ([#4273](https://github.com/homarr-labs/homarr/issues/4273)) ([f792b2a](https://github.com/homarr-labs/homarr/commit/f792b2a553f7a5851db36fc6a7ec495e2662dbc0)) +- **deps:** update dependency next-intl to v4.3.12 ([#4274](https://github.com/homarr-labs/homarr/issues/4274)) ([3a7c8d5](https://github.com/homarr-labs/homarr/commit/3a7c8d5e19c28a1e3b084e80eb52a3193a419d7f)) +- **deps:** update dependency swagger-ui-react to ^5.29.4 ([#4293](https://github.com/homarr-labs/homarr/issues/4293)) ([fde68f8](https://github.com/homarr-labs/homarr/commit/fde68f8bcc75aefb9cdb15c0b3b5d12c18a54d35)) +- **deps:** update dependency trpc-to-openapi to ^3.1.0 ([#4268](https://github.com/homarr-labs/homarr/issues/4268)) ([d80f070](https://github.com/homarr-labs/homarr/commit/d80f070ba3dca6bd8af10ee771f7cbd3d24dafa3)) +- **deps:** update dependency typescript-eslint to ^8.46.0 ([#4264](https://github.com/homarr-labs/homarr/issues/4264)) ([0aede0d](https://github.com/homarr-labs/homarr/commit/0aede0dec38016f5df08ce42f4f2e9237aaecaa6)) +- **deps:** update dependency zod to ^4.1.12 ([#4263](https://github.com/homarr-labs/homarr/issues/4263)) ([e887716](https://github.com/homarr-labs/homarr/commit/e8877169f88179fc9a23947c3f34478f851cb66a)) +- **deps:** update mantine monorepo to ^8.3.4 ([#4290](https://github.com/homarr-labs/homarr/issues/4290)) ([94533c6](https://github.com/homarr-labs/homarr/commit/94533c667cd234fdfe8f064b3d4892ad902e74c7)) +- **deps:** update tiptap monorepo to v2.26.3 ([#4292](https://github.com/homarr-labs/homarr/issues/4292)) ([38e368f](https://github.com/homarr-labs/homarr/commit/38e368fdbcf9aba54fbc960031742cb162a72b72)) +- **docker-widget:** memory usage wrong ([#4266](https://github.com/homarr-labs/homarr/issues/4266)) ([cccec5e](https://github.com/homarr-labs/homarr/commit/cccec5e19538aa8df154281f14fa939414bc8190)) +- **management:** improve homepage ([#4260](https://github.com/homarr-labs/homarr/issues/4260)) ([7e5f4e5](https://github.com/homarr-labs/homarr/commit/7e5f4e59a9edcb05dfa8a09919408e93e8d0313f)) +- **plex:** tv show links not working ([#4272](https://github.com/homarr-labs/homarr/issues/4272)) ([a80c5d4](https://github.com/homarr-labs/homarr/commit/a80c5d40e0e944d40dfdfe8e902ee10872e26bc0)) +- **users:** profile picture upload limit wrong ([#4276](https://github.com/homarr-labs/homarr/issues/4276)) ([35a8ac8](https://github.com/homarr-labs/homarr/commit/35a8ac820f084271bc7591834096226639aec0d4)) ## [1.41.0](https://github.com/homarr-labs/homarr/compare/v1.40.0...v1.41.0) (2025-10-10) ### Features -* **dynamic-sections:** add custom css classes option ([#4256](https://github.com/homarr-labs/homarr/issues/4256)) ([4c2e352](https://github.com/homarr-labs/homarr/commit/4c2e352acac62434c840e407887f8fddfc8c426a)) -* **integrations:** allow changing secret kinds of existing integration ([#4254](https://github.com/homarr-labs/homarr/issues/4254)) ([3b708c5](https://github.com/homarr-labs/homarr/commit/3b708c5ebdcfb3425cb0b777f72ff2aaea23386b)) -* **weather-widget:** add imperial windspeed option ([#4253](https://github.com/homarr-labs/homarr/issues/4253)) ([50a23d7](https://github.com/homarr-labs/homarr/commit/50a23d76e3dc14f23a27125297b8901a6724d18a)) +- **dynamic-sections:** add custom css classes option ([#4256](https://github.com/homarr-labs/homarr/issues/4256)) ([4c2e352](https://github.com/homarr-labs/homarr/commit/4c2e352acac62434c840e407887f8fddfc8c426a)) +- **integrations:** allow changing secret kinds of existing integration ([#4254](https://github.com/homarr-labs/homarr/issues/4254)) ([3b708c5](https://github.com/homarr-labs/homarr/commit/3b708c5ebdcfb3425cb0b777f72ff2aaea23386b)) +- **weather-widget:** add imperial windspeed option ([#4253](https://github.com/homarr-labs/homarr/issues/4253)) ([50a23d7](https://github.com/homarr-labs/homarr/commit/50a23d76e3dc14f23a27125297b8901a6724d18a)) ### Bug Fixes -* **deps:** update dependency @ctrl/deluge to ^7.4.0 ([#4227](https://github.com/homarr-labs/homarr/issues/4227)) ([cf2977f](https://github.com/homarr-labs/homarr/commit/cf2977f82189d9fa8b896012dd7730a641cc252b)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.9.0 ([#4228](https://github.com/homarr-labs/homarr/issues/4228)) ([ee05137](https://github.com/homarr-labs/homarr/commit/ee051373512fbfb5fb70d78ea45755b2cf370f6a)) -* **deps:** update dependency @kubernetes/client-node to ^1.4.0 ([#4247](https://github.com/homarr-labs/homarr/issues/4247)) ([ec09fb7](https://github.com/homarr-labs/homarr/commit/ec09fb70a950cbef131352f60fdf45553c7fe99f)) -* **deps:** update dependency @octokit/auth-app to ^8.1.1 ([#4217](https://github.com/homarr-labs/homarr/issues/4217)) ([5955ae6](https://github.com/homarr-labs/homarr/commit/5955ae6f8b3c90a7c9b17760650095676303192e)) -* **deps:** update dependency dockerode to ^4.0.9 ([#4214](https://github.com/homarr-labs/homarr/issues/4214)) ([340f8f9](https://github.com/homarr-labs/homarr/commit/340f8f98e452c068c5d26973195ea676d2b3ee6e)) -* **deps:** update dependency dotenv to ^17.2.3 ([#4218](https://github.com/homarr-labs/homarr/issues/4218)) ([af448f0](https://github.com/homarr-labs/homarr/commit/af448f008571562492748986bd7cb2651623130e)) -* **deps:** update dependency drizzle-orm to ^0.44.6 ([#4237](https://github.com/homarr-labs/homarr/issues/4237)) ([3934252](https://github.com/homarr-labs/homarr/commit/3934252053792874c41a6bd545b20acd7ccef4e8)) -* **deps:** update dependency eslint-plugin-react-hooks to v6 ([#4231](https://github.com/homarr-labs/homarr/issues/4231)) ([76bc24b](https://github.com/homarr-labs/homarr/commit/76bc24b06aeec71b53b9f3351b98c076621d69d9)) -* **deps:** update dependency fast-xml-parser to ^5.3.0 ([#4245](https://github.com/homarr-labs/homarr/issues/4245)) ([c35c15c](https://github.com/homarr-labs/homarr/commit/c35c15c635f37d09071b9ccafcd532e1e2e9ccd4)) -* **deps:** update dependency swagger-ui-react to ^5.29.1 ([#4210](https://github.com/homarr-labs/homarr/issues/4210)) ([eb7a3a3](https://github.com/homarr-labs/homarr/commit/eb7a3a31f0ddf135664f5609c39b9d8ee72ef432)) -* **deps:** update dependency swagger-ui-react to ^5.29.2 ([#4212](https://github.com/homarr-labs/homarr/issues/4212)) ([055770c](https://github.com/homarr-labs/homarr/commit/055770c5e8e43dfc035b2a25d650383df865c118)) -* **deps:** update dependency swagger-ui-react to ^5.29.3 ([#4238](https://github.com/homarr-labs/homarr/issues/4238)) ([e726754](https://github.com/homarr-labs/homarr/commit/e7267548fe132d6b32e3ba8379ebe31fa8f16635)) -* **deps:** update dependency typescript-eslint to ^8.45.0 ([#4215](https://github.com/homarr-labs/homarr/issues/4215)) ([e827f66](https://github.com/homarr-labs/homarr/commit/e827f6653f1caabaf4da7d477aa59849e9d023b9)) -* **deps:** update dependency winston to v3.18.0 ([#4219](https://github.com/homarr-labs/homarr/issues/4219)) ([e1162c7](https://github.com/homarr-labs/homarr/commit/e1162c7907b3285f1e8bb9980340ca758786715d)) -* **deps:** update dependency winston to v3.18.1 ([#4220](https://github.com/homarr-labs/homarr/issues/4220)) ([84ace42](https://github.com/homarr-labs/homarr/commit/84ace42aa5eb5f3f8e3351e64b1e1ba6fe747544)) -* **deps:** update dependency winston to v3.18.3 ([#4222](https://github.com/homarr-labs/homarr/issues/4222)) ([d9de969](https://github.com/homarr-labs/homarr/commit/d9de9694c0d7bbb630d40e64c01dee082856ce0f)) -* **deps:** update mantine monorepo to ^8.3.3 ([#4242](https://github.com/homarr-labs/homarr/issues/4242)) ([982a0c9](https://github.com/homarr-labs/homarr/commit/982a0c96a5d40a532d4fa06640f0d35e8125e1f2)) -* **deps:** update react monorepo to v19.2.0 ([#4230](https://github.com/homarr-labs/homarr/issues/4230)) ([35172fa](https://github.com/homarr-labs/homarr/commit/35172fa91007487c6da3f6e0709dadeab20621c6)) -* **deps:** update testcontainers-node monorepo to ^11.7.0 ([#4211](https://github.com/homarr-labs/homarr/issues/4211)) ([a21fbd2](https://github.com/homarr-labs/homarr/commit/a21fbd26dad82427e62a5a6b18f72dc32c00e608)) -* **deps:** update testcontainers-node monorepo to ^11.7.1 ([#4213](https://github.com/homarr-labs/homarr/issues/4213)) ([7e500f7](https://github.com/homarr-labs/homarr/commit/7e500f772d769b30354a73d73e2fee6382fb8811)) +- **deps:** update dependency @ctrl/deluge to ^7.4.0 ([#4227](https://github.com/homarr-labs/homarr/issues/4227)) ([cf2977f](https://github.com/homarr-labs/homarr/commit/cf2977f82189d9fa8b896012dd7730a641cc252b)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.9.0 ([#4228](https://github.com/homarr-labs/homarr/issues/4228)) ([ee05137](https://github.com/homarr-labs/homarr/commit/ee051373512fbfb5fb70d78ea45755b2cf370f6a)) +- **deps:** update dependency @kubernetes/client-node to ^1.4.0 ([#4247](https://github.com/homarr-labs/homarr/issues/4247)) ([ec09fb7](https://github.com/homarr-labs/homarr/commit/ec09fb70a950cbef131352f60fdf45553c7fe99f)) +- **deps:** update dependency @octokit/auth-app to ^8.1.1 ([#4217](https://github.com/homarr-labs/homarr/issues/4217)) ([5955ae6](https://github.com/homarr-labs/homarr/commit/5955ae6f8b3c90a7c9b17760650095676303192e)) +- **deps:** update dependency dockerode to ^4.0.9 ([#4214](https://github.com/homarr-labs/homarr/issues/4214)) ([340f8f9](https://github.com/homarr-labs/homarr/commit/340f8f98e452c068c5d26973195ea676d2b3ee6e)) +- **deps:** update dependency dotenv to ^17.2.3 ([#4218](https://github.com/homarr-labs/homarr/issues/4218)) ([af448f0](https://github.com/homarr-labs/homarr/commit/af448f008571562492748986bd7cb2651623130e)) +- **deps:** update dependency drizzle-orm to ^0.44.6 ([#4237](https://github.com/homarr-labs/homarr/issues/4237)) ([3934252](https://github.com/homarr-labs/homarr/commit/3934252053792874c41a6bd545b20acd7ccef4e8)) +- **deps:** update dependency eslint-plugin-react-hooks to v6 ([#4231](https://github.com/homarr-labs/homarr/issues/4231)) ([76bc24b](https://github.com/homarr-labs/homarr/commit/76bc24b06aeec71b53b9f3351b98c076621d69d9)) +- **deps:** update dependency fast-xml-parser to ^5.3.0 ([#4245](https://github.com/homarr-labs/homarr/issues/4245)) ([c35c15c](https://github.com/homarr-labs/homarr/commit/c35c15c635f37d09071b9ccafcd532e1e2e9ccd4)) +- **deps:** update dependency swagger-ui-react to ^5.29.1 ([#4210](https://github.com/homarr-labs/homarr/issues/4210)) ([eb7a3a3](https://github.com/homarr-labs/homarr/commit/eb7a3a31f0ddf135664f5609c39b9d8ee72ef432)) +- **deps:** update dependency swagger-ui-react to ^5.29.2 ([#4212](https://github.com/homarr-labs/homarr/issues/4212)) ([055770c](https://github.com/homarr-labs/homarr/commit/055770c5e8e43dfc035b2a25d650383df865c118)) +- **deps:** update dependency swagger-ui-react to ^5.29.3 ([#4238](https://github.com/homarr-labs/homarr/issues/4238)) ([e726754](https://github.com/homarr-labs/homarr/commit/e7267548fe132d6b32e3ba8379ebe31fa8f16635)) +- **deps:** update dependency typescript-eslint to ^8.45.0 ([#4215](https://github.com/homarr-labs/homarr/issues/4215)) ([e827f66](https://github.com/homarr-labs/homarr/commit/e827f6653f1caabaf4da7d477aa59849e9d023b9)) +- **deps:** update dependency winston to v3.18.0 ([#4219](https://github.com/homarr-labs/homarr/issues/4219)) ([e1162c7](https://github.com/homarr-labs/homarr/commit/e1162c7907b3285f1e8bb9980340ca758786715d)) +- **deps:** update dependency winston to v3.18.1 ([#4220](https://github.com/homarr-labs/homarr/issues/4220)) ([84ace42](https://github.com/homarr-labs/homarr/commit/84ace42aa5eb5f3f8e3351e64b1e1ba6fe747544)) +- **deps:** update dependency winston to v3.18.3 ([#4222](https://github.com/homarr-labs/homarr/issues/4222)) ([d9de969](https://github.com/homarr-labs/homarr/commit/d9de9694c0d7bbb630d40e64c01dee082856ce0f)) +- **deps:** update mantine monorepo to ^8.3.3 ([#4242](https://github.com/homarr-labs/homarr/issues/4242)) ([982a0c9](https://github.com/homarr-labs/homarr/commit/982a0c96a5d40a532d4fa06640f0d35e8125e1f2)) +- **deps:** update react monorepo to v19.2.0 ([#4230](https://github.com/homarr-labs/homarr/issues/4230)) ([35172fa](https://github.com/homarr-labs/homarr/commit/35172fa91007487c6da3f6e0709dadeab20621c6)) +- **deps:** update testcontainers-node monorepo to ^11.7.0 ([#4211](https://github.com/homarr-labs/homarr/issues/4211)) ([a21fbd2](https://github.com/homarr-labs/homarr/commit/a21fbd26dad82427e62a5a6b18f72dc32c00e608)) +- **deps:** update testcontainers-node monorepo to ^11.7.1 ([#4213](https://github.com/homarr-labs/homarr/issues/4213)) ([7e500f7](https://github.com/homarr-labs/homarr/commit/7e500f772d769b30354a73d73e2fee6382fb8811)) ## [1.40.0](https://github.com/homarr-labs/homarr/compare/v1.39.0...v1.40.0) (2025-10-03) ### Features -* **about:** add hotkeys list ([#4165](https://github.com/homarr-labs/homarr/issues/4165)) ([f82f343](https://github.com/homarr-labs/homarr/commit/f82f3436313fa2e2ccf04ff0e7886bf4efffd78e)) -* **media-server:** add stats for nerds ([#4170](https://github.com/homarr-labs/homarr/issues/4170)) ([6e93c3b](https://github.com/homarr-labs/homarr/commit/6e93c3b60813671f027062d55b2f16d2c8445475)) -* **media-transcoding:** add periodic live updates ([#4166](https://github.com/homarr-labs/homarr/issues/4166)) ([b76003d](https://github.com/homarr-labs/homarr/commit/b76003de9bfe9c06d829e8da0faf77c688c31e2d)) -* **medias:** support upload of multiple items ([#4169](https://github.com/homarr-labs/homarr/issues/4169)) ([dcb845b](https://github.com/homarr-labs/homarr/commit/dcb845b609354b0423f5b7a9d08862b88fd90fd9)) -* **translations:** add crowdin live support ([#4177](https://github.com/homarr-labs/homarr/issues/4177)) ([514034d](https://github.com/homarr-labs/homarr/commit/514034d184d1654518295e847da3183cc7da2c91)) +- **about:** add hotkeys list ([#4165](https://github.com/homarr-labs/homarr/issues/4165)) ([f82f343](https://github.com/homarr-labs/homarr/commit/f82f3436313fa2e2ccf04ff0e7886bf4efffd78e)) +- **media-server:** add stats for nerds ([#4170](https://github.com/homarr-labs/homarr/issues/4170)) ([6e93c3b](https://github.com/homarr-labs/homarr/commit/6e93c3b60813671f027062d55b2f16d2c8445475)) +- **media-transcoding:** add periodic live updates ([#4166](https://github.com/homarr-labs/homarr/issues/4166)) ([b76003d](https://github.com/homarr-labs/homarr/commit/b76003de9bfe9c06d829e8da0faf77c688c31e2d)) +- **medias:** support upload of multiple items ([#4169](https://github.com/homarr-labs/homarr/issues/4169)) ([dcb845b](https://github.com/homarr-labs/homarr/commit/dcb845b609354b0423f5b7a9d08862b88fd90fd9)) +- **translations:** add crowdin live support ([#4177](https://github.com/homarr-labs/homarr/issues/4177)) ([514034d](https://github.com/homarr-labs/homarr/commit/514034d184d1654518295e847da3183cc7da2c91)) ### Bug Fixes -* **deps:** update dependency better-sqlite3 to ^12.3.0 ([#4160](https://github.com/homarr-labs/homarr/issues/4160)) ([0b797c1](https://github.com/homarr-labs/homarr/commit/0b797c1fd0d338c85553e800ca11699d3e3a4c7d)) -* **deps:** update dependency better-sqlite3 to ^12.4.1 ([#4162](https://github.com/homarr-labs/homarr/issues/4162)) ([4da3aa4](https://github.com/homarr-labs/homarr/commit/4da3aa43f35cc51a117b51e4bc3827837696cc21)) -* **deps:** update dependency drizzle-kit to ^0.31.5 ([#4195](https://github.com/homarr-labs/homarr/issues/4195)) ([2ec0ffe](https://github.com/homarr-labs/homarr/commit/2ec0ffec5e50d2b931d9b65cf81fd141ebfd531f)) -* **deps:** update dependency fastify to ^5.6.1 ([#4167](https://github.com/homarr-labs/homarr/issues/4167)) ([319aafe](https://github.com/homarr-labs/homarr/commit/319aafe35dd60ce44aa6aa65008caf1ede17af5e)) -* **deps:** update dependency ioredis to v5.8.0 ([#4174](https://github.com/homarr-labs/homarr/issues/4174)) ([bb47f16](https://github.com/homarr-labs/homarr/commit/bb47f163d3ef0b1082d5af72a0906787e52ee154)) -* **deps:** update dependency jotai to ^2.15.0 ([#4192](https://github.com/homarr-labs/homarr/issues/4192)) ([82c31ef](https://github.com/homarr-labs/homarr/commit/82c31efc02e8f7b3793c2ef115656f85ef97c9ba)) -* **deps:** update dependency mysql2 to v3.15.1 ([#4185](https://github.com/homarr-labs/homarr/issues/4185)) ([026d9b8](https://github.com/homarr-labs/homarr/commit/026d9b841853657e4284c6c703b340a5dc0a9eab)) -* **deps:** update dependency sass to ^1.93.1 ([#4149](https://github.com/homarr-labs/homarr/issues/4149)) ([2049b90](https://github.com/homarr-labs/homarr/commit/2049b90c5bc4043c73f681c9c805629d2ddb570e)) -* **deps:** update dependency sass to ^1.93.2 ([#4171](https://github.com/homarr-labs/homarr/issues/4171)) ([6d3005f](https://github.com/homarr-labs/homarr/commit/6d3005fb70cdfe882cf36ee77ef75492ec902c1c)) -* **deps:** update dependency typescript-eslint to ^8.44.1 ([#4168](https://github.com/homarr-labs/homarr/issues/4168)) ([16dff3f](https://github.com/homarr-labs/homarr/commit/16dff3f982dc758e9f698a4ec4472180032366a2)) -* **deps:** update mantine monorepo to ^8.3.2 ([#4179](https://github.com/homarr-labs/homarr/issues/4179)) ([6932f31](https://github.com/homarr-labs/homarr/commit/6932f3198a3534a92a9b56efd0f9e59f9fb68a14)) -* **deps:** update nextjs monorepo to v15.5.4 ([#4178](https://github.com/homarr-labs/homarr/issues/4178)) ([333ef48](https://github.com/homarr-labs/homarr/commit/333ef4835100e7017d909f2ce3323ac82b47f4e2)) -* **deps:** update tanstack-query monorepo to ^5.90.1 ([#4161](https://github.com/homarr-labs/homarr/issues/4161)) ([e5dddc8](https://github.com/homarr-labs/homarr/commit/e5dddc84446dcbc7831d74a2285dce946e1d5524)) -* **deps:** update tanstack-query monorepo to ^5.90.2 ([#4163](https://github.com/homarr-labs/homarr/issues/4163)) ([5f4734e](https://github.com/homarr-labs/homarr/commit/5f4734ef6ba83cedf16031e2ac6c02dd3586c9a1)) -* **deps:** update tiptap monorepo to v2.26.2 ([#4173](https://github.com/homarr-labs/homarr/issues/4173)) ([1346370](https://github.com/homarr-labs/homarr/commit/1346370ce39e23fa6d431b0d3f5d064eb9eb210f)) -* **deps:** update trpc monorepo to ^11.6.0 ([#4188](https://github.com/homarr-labs/homarr/issues/4188)) ([b7b79d8](https://github.com/homarr-labs/homarr/commit/b7b79d8722f50af293c971fbc3547eb7487ecaf1)) -* **deps:** update turbo monorepo to ^2.5.7 ([#4176](https://github.com/homarr-labs/homarr/issues/4176)) ([82ce369](https://github.com/homarr-labs/homarr/commit/82ce369c0413fbb20db814ee77dfb6e13184655b)) -* **deps:** update turbo monorepo to ^2.5.8 ([#4180](https://github.com/homarr-labs/homarr/issues/4180)) ([89a1cc8](https://github.com/homarr-labs/homarr/commit/89a1cc84bc9411c68100b6d947b6ae033237403e)) +- **deps:** update dependency better-sqlite3 to ^12.3.0 ([#4160](https://github.com/homarr-labs/homarr/issues/4160)) ([0b797c1](https://github.com/homarr-labs/homarr/commit/0b797c1fd0d338c85553e800ca11699d3e3a4c7d)) +- **deps:** update dependency better-sqlite3 to ^12.4.1 ([#4162](https://github.com/homarr-labs/homarr/issues/4162)) ([4da3aa4](https://github.com/homarr-labs/homarr/commit/4da3aa43f35cc51a117b51e4bc3827837696cc21)) +- **deps:** update dependency drizzle-kit to ^0.31.5 ([#4195](https://github.com/homarr-labs/homarr/issues/4195)) ([2ec0ffe](https://github.com/homarr-labs/homarr/commit/2ec0ffec5e50d2b931d9b65cf81fd141ebfd531f)) +- **deps:** update dependency fastify to ^5.6.1 ([#4167](https://github.com/homarr-labs/homarr/issues/4167)) ([319aafe](https://github.com/homarr-labs/homarr/commit/319aafe35dd60ce44aa6aa65008caf1ede17af5e)) +- **deps:** update dependency ioredis to v5.8.0 ([#4174](https://github.com/homarr-labs/homarr/issues/4174)) ([bb47f16](https://github.com/homarr-labs/homarr/commit/bb47f163d3ef0b1082d5af72a0906787e52ee154)) +- **deps:** update dependency jotai to ^2.15.0 ([#4192](https://github.com/homarr-labs/homarr/issues/4192)) ([82c31ef](https://github.com/homarr-labs/homarr/commit/82c31efc02e8f7b3793c2ef115656f85ef97c9ba)) +- **deps:** update dependency mysql2 to v3.15.1 ([#4185](https://github.com/homarr-labs/homarr/issues/4185)) ([026d9b8](https://github.com/homarr-labs/homarr/commit/026d9b841853657e4284c6c703b340a5dc0a9eab)) +- **deps:** update dependency sass to ^1.93.1 ([#4149](https://github.com/homarr-labs/homarr/issues/4149)) ([2049b90](https://github.com/homarr-labs/homarr/commit/2049b90c5bc4043c73f681c9c805629d2ddb570e)) +- **deps:** update dependency sass to ^1.93.2 ([#4171](https://github.com/homarr-labs/homarr/issues/4171)) ([6d3005f](https://github.com/homarr-labs/homarr/commit/6d3005fb70cdfe882cf36ee77ef75492ec902c1c)) +- **deps:** update dependency typescript-eslint to ^8.44.1 ([#4168](https://github.com/homarr-labs/homarr/issues/4168)) ([16dff3f](https://github.com/homarr-labs/homarr/commit/16dff3f982dc758e9f698a4ec4472180032366a2)) +- **deps:** update mantine monorepo to ^8.3.2 ([#4179](https://github.com/homarr-labs/homarr/issues/4179)) ([6932f31](https://github.com/homarr-labs/homarr/commit/6932f3198a3534a92a9b56efd0f9e59f9fb68a14)) +- **deps:** update nextjs monorepo to v15.5.4 ([#4178](https://github.com/homarr-labs/homarr/issues/4178)) ([333ef48](https://github.com/homarr-labs/homarr/commit/333ef4835100e7017d909f2ce3323ac82b47f4e2)) +- **deps:** update tanstack-query monorepo to ^5.90.1 ([#4161](https://github.com/homarr-labs/homarr/issues/4161)) ([e5dddc8](https://github.com/homarr-labs/homarr/commit/e5dddc84446dcbc7831d74a2285dce946e1d5524)) +- **deps:** update tanstack-query monorepo to ^5.90.2 ([#4163](https://github.com/homarr-labs/homarr/issues/4163)) ([5f4734e](https://github.com/homarr-labs/homarr/commit/5f4734ef6ba83cedf16031e2ac6c02dd3586c9a1)) +- **deps:** update tiptap monorepo to v2.26.2 ([#4173](https://github.com/homarr-labs/homarr/issues/4173)) ([1346370](https://github.com/homarr-labs/homarr/commit/1346370ce39e23fa6d431b0d3f5d064eb9eb210f)) +- **deps:** update trpc monorepo to ^11.6.0 ([#4188](https://github.com/homarr-labs/homarr/issues/4188)) ([b7b79d8](https://github.com/homarr-labs/homarr/commit/b7b79d8722f50af293c971fbc3547eb7487ecaf1)) +- **deps:** update turbo monorepo to ^2.5.7 ([#4176](https://github.com/homarr-labs/homarr/issues/4176)) ([82ce369](https://github.com/homarr-labs/homarr/commit/82ce369c0413fbb20db814ee77dfb6e13184655b)) +- **deps:** update turbo monorepo to ^2.5.8 ([#4180](https://github.com/homarr-labs/homarr/issues/4180)) ([89a1cc8](https://github.com/homarr-labs/homarr/commit/89a1cc84bc9411c68100b6d947b6ae033237403e)) ## [1.39.0](https://github.com/homarr-labs/homarr/compare/v1.38.0...v1.39.0) (2025-09-26) ### Features -* **calendar:** add homeassistant support ([#4152](https://github.com/homarr-labs/homarr/issues/4152)) ([0a908de](https://github.com/homarr-labs/homarr/commit/0a908de1e7768d4524170297e5d20bb1e786d824)) -* **calendar:** add periodic live updates ([#4154](https://github.com/homarr-labs/homarr/issues/4154)) ([2443d73](https://github.com/homarr-labs/homarr/commit/2443d7300b958edabceb95ab8663b9bebb30e4d0)) -* **weather:** add periodic live updates ([#4155](https://github.com/homarr-labs/homarr/issues/4155)) ([5b32f1e](https://github.com/homarr-labs/homarr/commit/5b32f1eb79d132291992e102f1f2fc72805742a9)) +- **calendar:** add homeassistant support ([#4152](https://github.com/homarr-labs/homarr/issues/4152)) ([0a908de](https://github.com/homarr-labs/homarr/commit/0a908de1e7768d4524170297e5d20bb1e786d824)) +- **calendar:** add periodic live updates ([#4154](https://github.com/homarr-labs/homarr/issues/4154)) ([2443d73](https://github.com/homarr-labs/homarr/commit/2443d7300b958edabceb95ab8663b9bebb30e4d0)) +- **weather:** add periodic live updates ([#4155](https://github.com/homarr-labs/homarr/issues/4155)) ([5b32f1e](https://github.com/homarr-labs/homarr/commit/5b32f1eb79d132291992e102f1f2fc72805742a9)) ### Bug Fixes -* **calendar:** missing badge for sonarr series ([#4150](https://github.com/homarr-labs/homarr/issues/4150)) ([b7d1d4c](https://github.com/homarr-labs/homarr/commit/b7d1d4ceef110761ede7e2c7e54e86945d6b4fb0)) -* **calendar:** support multi-day events ([#4151](https://github.com/homarr-labs/homarr/issues/4151)) ([c8a6cda](https://github.com/homarr-labs/homarr/commit/c8a6cdae8194bad1bfcadfcb06853ab56437b6d4)) -* **deps:** update dependency @ctrl/deluge to ^7.3.0 ([#4121](https://github.com/homarr-labs/homarr/issues/4121)) ([eb85804](https://github.com/homarr-labs/homarr/commit/eb85804cff5c5b61697ee270411e75735fc0c32f)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.8.0 ([#4118](https://github.com/homarr-labs/homarr/issues/4118)) ([c0ed041](https://github.com/homarr-labs/homarr/commit/c0ed041bdfb3bbb246cdc048f7f4d27818e21348)) -* **deps:** update dependency @ctrl/transmission to ^7.4.0 ([#4120](https://github.com/homarr-labs/homarr/issues/4120)) ([2eb8210](https://github.com/homarr-labs/homarr/commit/2eb82108a8d1447652eed840fab0757ff0168c77)) -* **deps:** update dependency @tabler/icons-react to ^3.35.0 ([#4115](https://github.com/homarr-labs/homarr/issues/4115)) ([61ae703](https://github.com/homarr-labs/homarr/commit/61ae7030145bee4a4d20afdd176f3e8486668c5f)) -* **deps:** update dependency dns-caching to ^0.2.6 ([#4131](https://github.com/homarr-labs/homarr/issues/4131)) ([2c3856a](https://github.com/homarr-labs/homarr/commit/2c3856a2a91c7566f951ec5238b6c4c5c0a26f40)) -* **deps:** update dependency dns-caching to ^0.2.7 ([#4137](https://github.com/homarr-labs/homarr/issues/4137)) ([484f0bd](https://github.com/homarr-labs/homarr/commit/484f0bdca45f949999f974d4d119e656d6f7206e)) -* **deps:** update dependency mysql2 to v3.15.0 ([#4125](https://github.com/homarr-labs/homarr/issues/4125)) ([cf892f5](https://github.com/homarr-labs/homarr/commit/cf892f517f9b5e06420541650599ec977942387f)) -* **deps:** update dependency next-intl to v4.3.9 ([#4096](https://github.com/homarr-labs/homarr/issues/4096)) ([034dcac](https://github.com/homarr-labs/homarr/commit/034dcacb0818ed9daa1e29474ca0f6e39a5c8198)) -* **deps:** update dependency node-ical to ^0.21.0 ([#4111](https://github.com/homarr-labs/homarr/issues/4111)) ([bcc71e6](https://github.com/homarr-labs/homarr/commit/bcc71e6eaa0dedd3a5609ef5384219afe01ea13a)) -* **deps:** update dependency sass to ^1.93.0 ([#4147](https://github.com/homarr-labs/homarr/issues/4147)) ([aced8c7](https://github.com/homarr-labs/homarr/commit/aced8c77bb33cc3df2d9db3f5c3513632d8e51c2)) -* **deps:** update dependency typescript-eslint to ^8.44.0 ([#4114](https://github.com/homarr-labs/homarr/issues/4114)) ([7ea746b](https://github.com/homarr-labs/homarr/commit/7ea746bed12ff66b84ffd993268e47db18c40a88)) -* **deps:** update dependency zod to ^4.1.11 ([#4128](https://github.com/homarr-labs/homarr/issues/4128)) ([f0a0b9b](https://github.com/homarr-labs/homarr/commit/f0a0b9bca197cd970b5ad279e50f05806fe51809)) -* **deps:** update dependency zod to ^4.1.9 ([#4094](https://github.com/homarr-labs/homarr/issues/4094)) ([303067b](https://github.com/homarr-labs/homarr/commit/303067b0c8fdc92647fbaa574f29a633c63c40d3)) -* **deps:** update dependency zod-validation-error to ^4.0.2 ([#4142](https://github.com/homarr-labs/homarr/issues/4142)) ([0c577a6](https://github.com/homarr-labs/homarr/commit/0c577a6f11990b94dc524c6e41ab624e4fdf5c9b)) -* **deps:** update tanstack-query monorepo to ^5.89.0 ([#4122](https://github.com/homarr-labs/homarr/issues/4122)) ([11f29d8](https://github.com/homarr-labs/homarr/commit/11f29d8def97286cc5f4b2aa45a345a79ab3630b)) -* **deps:** update testcontainers-node monorepo to ^11.6.0 ([#4130](https://github.com/homarr-labs/homarr/issues/4130)) ([83df2ec](https://github.com/homarr-labs/homarr/commit/83df2ec58b3d6bb78660a3ec79690b51a1cd395c)) -* Recalculate time ago on re-render ([#4107](https://github.com/homarr-labs/homarr/issues/4107)) ([0b15561](https://github.com/homarr-labs/homarr/commit/0b15561f20abe94908ee62f99a33ff3f030c49e2)) +- **calendar:** missing badge for sonarr series ([#4150](https://github.com/homarr-labs/homarr/issues/4150)) ([b7d1d4c](https://github.com/homarr-labs/homarr/commit/b7d1d4ceef110761ede7e2c7e54e86945d6b4fb0)) +- **calendar:** support multi-day events ([#4151](https://github.com/homarr-labs/homarr/issues/4151)) ([c8a6cda](https://github.com/homarr-labs/homarr/commit/c8a6cdae8194bad1bfcadfcb06853ab56437b6d4)) +- **deps:** update dependency @ctrl/deluge to ^7.3.0 ([#4121](https://github.com/homarr-labs/homarr/issues/4121)) ([eb85804](https://github.com/homarr-labs/homarr/commit/eb85804cff5c5b61697ee270411e75735fc0c32f)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.8.0 ([#4118](https://github.com/homarr-labs/homarr/issues/4118)) ([c0ed041](https://github.com/homarr-labs/homarr/commit/c0ed041bdfb3bbb246cdc048f7f4d27818e21348)) +- **deps:** update dependency @ctrl/transmission to ^7.4.0 ([#4120](https://github.com/homarr-labs/homarr/issues/4120)) ([2eb8210](https://github.com/homarr-labs/homarr/commit/2eb82108a8d1447652eed840fab0757ff0168c77)) +- **deps:** update dependency @tabler/icons-react to ^3.35.0 ([#4115](https://github.com/homarr-labs/homarr/issues/4115)) ([61ae703](https://github.com/homarr-labs/homarr/commit/61ae7030145bee4a4d20afdd176f3e8486668c5f)) +- **deps:** update dependency dns-caching to ^0.2.6 ([#4131](https://github.com/homarr-labs/homarr/issues/4131)) ([2c3856a](https://github.com/homarr-labs/homarr/commit/2c3856a2a91c7566f951ec5238b6c4c5c0a26f40)) +- **deps:** update dependency dns-caching to ^0.2.7 ([#4137](https://github.com/homarr-labs/homarr/issues/4137)) ([484f0bd](https://github.com/homarr-labs/homarr/commit/484f0bdca45f949999f974d4d119e656d6f7206e)) +- **deps:** update dependency mysql2 to v3.15.0 ([#4125](https://github.com/homarr-labs/homarr/issues/4125)) ([cf892f5](https://github.com/homarr-labs/homarr/commit/cf892f517f9b5e06420541650599ec977942387f)) +- **deps:** update dependency next-intl to v4.3.9 ([#4096](https://github.com/homarr-labs/homarr/issues/4096)) ([034dcac](https://github.com/homarr-labs/homarr/commit/034dcacb0818ed9daa1e29474ca0f6e39a5c8198)) +- **deps:** update dependency node-ical to ^0.21.0 ([#4111](https://github.com/homarr-labs/homarr/issues/4111)) ([bcc71e6](https://github.com/homarr-labs/homarr/commit/bcc71e6eaa0dedd3a5609ef5384219afe01ea13a)) +- **deps:** update dependency sass to ^1.93.0 ([#4147](https://github.com/homarr-labs/homarr/issues/4147)) ([aced8c7](https://github.com/homarr-labs/homarr/commit/aced8c77bb33cc3df2d9db3f5c3513632d8e51c2)) +- **deps:** update dependency typescript-eslint to ^8.44.0 ([#4114](https://github.com/homarr-labs/homarr/issues/4114)) ([7ea746b](https://github.com/homarr-labs/homarr/commit/7ea746bed12ff66b84ffd993268e47db18c40a88)) +- **deps:** update dependency zod to ^4.1.11 ([#4128](https://github.com/homarr-labs/homarr/issues/4128)) ([f0a0b9b](https://github.com/homarr-labs/homarr/commit/f0a0b9bca197cd970b5ad279e50f05806fe51809)) +- **deps:** update dependency zod to ^4.1.9 ([#4094](https://github.com/homarr-labs/homarr/issues/4094)) ([303067b](https://github.com/homarr-labs/homarr/commit/303067b0c8fdc92647fbaa574f29a633c63c40d3)) +- **deps:** update dependency zod-validation-error to ^4.0.2 ([#4142](https://github.com/homarr-labs/homarr/issues/4142)) ([0c577a6](https://github.com/homarr-labs/homarr/commit/0c577a6f11990b94dc524c6e41ab624e4fdf5c9b)) +- **deps:** update tanstack-query monorepo to ^5.89.0 ([#4122](https://github.com/homarr-labs/homarr/issues/4122)) ([11f29d8](https://github.com/homarr-labs/homarr/commit/11f29d8def97286cc5f4b2aa45a345a79ab3630b)) +- **deps:** update testcontainers-node monorepo to ^11.6.0 ([#4130](https://github.com/homarr-labs/homarr/issues/4130)) ([83df2ec](https://github.com/homarr-labs/homarr/commit/83df2ec58b3d6bb78660a3ec79690b51a1cd395c)) +- Recalculate time ago on re-render ([#4107](https://github.com/homarr-labs/homarr/issues/4107)) ([0b15561](https://github.com/homarr-labs/homarr/commit/0b15561f20abe94908ee62f99a33ff3f030c49e2)) ## [1.38.0](https://github.com/homarr-labs/homarr/compare/v1.37.0...v1.38.0) (2025-09-19) ### Features -* **integrations:** add ICal ([#3980](https://github.com/homarr-labs/homarr/issues/3980)) ([fedbff3](https://github.com/homarr-labs/homarr/commit/fedbff3fd162835bd97c3de3a4d3ba676fe13899)) -* **notebook-widget:** add confirmation on dismiss ([#4064](https://github.com/homarr-labs/homarr/issues/4064)) ([cb7a6ab](https://github.com/homarr-labs/homarr/commit/cb7a6abca7b6908d41bf50c71f7fce491af548e6)) -* **redis:** add database index environment variable ([#4092](https://github.com/homarr-labs/homarr/issues/4092)) ([9f2b868](https://github.com/homarr-labs/homarr/commit/9f2b868fcedf440892b3f0f3ee38388daa291f2e)) -* **system-resources-widget:** add has-shadow option ([#4093](https://github.com/homarr-labs/homarr/issues/4093)) ([3c2e6a8](https://github.com/homarr-labs/homarr/commit/3c2e6a852fb8464e98fdb16a58e35b87d5925a1e)) -* **system-resources-widget:** add label display mode option ([#4086](https://github.com/homarr-labs/homarr/issues/4086)) ([312e084](https://github.com/homarr-labs/homarr/commit/312e084e2c731ce1bff9c9dc3e1d8f7a88df5429)) -* **system-resources-widget:** add visible charts option ([#4069](https://github.com/homarr-labs/homarr/issues/4069)) ([b30cc21](https://github.com/homarr-labs/homarr/commit/b30cc21dbe51aef598740b9320675023e4281820)) -* **tasks:** add one second interval ([#4074](https://github.com/homarr-labs/homarr/issues/4074)) ([fe676da](https://github.com/homarr-labs/homarr/commit/fe676daad25e674f95e4fa8b949a77b34d376987)) +- **integrations:** add ICal ([#3980](https://github.com/homarr-labs/homarr/issues/3980)) ([fedbff3](https://github.com/homarr-labs/homarr/commit/fedbff3fd162835bd97c3de3a4d3ba676fe13899)) +- **notebook-widget:** add confirmation on dismiss ([#4064](https://github.com/homarr-labs/homarr/issues/4064)) ([cb7a6ab](https://github.com/homarr-labs/homarr/commit/cb7a6abca7b6908d41bf50c71f7fce491af548e6)) +- **redis:** add database index environment variable ([#4092](https://github.com/homarr-labs/homarr/issues/4092)) ([9f2b868](https://github.com/homarr-labs/homarr/commit/9f2b868fcedf440892b3f0f3ee38388daa291f2e)) +- **system-resources-widget:** add has-shadow option ([#4093](https://github.com/homarr-labs/homarr/issues/4093)) ([3c2e6a8](https://github.com/homarr-labs/homarr/commit/3c2e6a852fb8464e98fdb16a58e35b87d5925a1e)) +- **system-resources-widget:** add label display mode option ([#4086](https://github.com/homarr-labs/homarr/issues/4086)) ([312e084](https://github.com/homarr-labs/homarr/commit/312e084e2c731ce1bff9c9dc3e1d8f7a88df5429)) +- **system-resources-widget:** add visible charts option ([#4069](https://github.com/homarr-labs/homarr/issues/4069)) ([b30cc21](https://github.com/homarr-labs/homarr/commit/b30cc21dbe51aef598740b9320675023e4281820)) +- **tasks:** add one second interval ([#4074](https://github.com/homarr-labs/homarr/issues/4074)) ([fe676da](https://github.com/homarr-labs/homarr/commit/fe676daad25e674f95e4fa8b949a77b34d376987)) ### Bug Fixes -* **deps:** update dependency dockerode to ^4.0.8 ([#4076](https://github.com/homarr-labs/homarr/issues/4076)) ([43d5a27](https://github.com/homarr-labs/homarr/commit/43d5a27552b9fb89009645e7e711cb62a482e3c7)) -* **deps:** update dependency jotai to ^2.14.0 ([#4066](https://github.com/homarr-labs/homarr/issues/4066)) ([6880d61](https://github.com/homarr-labs/homarr/commit/6880d61d6b6392b10911d35ffada8102d5b0d6f7)) -* **deps:** update dependency mysql2 to v3.14.5 ([#4067](https://github.com/homarr-labs/homarr/issues/4067)) ([cd4c236](https://github.com/homarr-labs/homarr/commit/cd4c236e5e6bf5f38f86e8e70a04cdd29bc484a3)) -* **deps:** update dependency next-intl to v4.3.8 ([#4095](https://github.com/homarr-labs/homarr/issues/4095)) ([2d3af7a](https://github.com/homarr-labs/homarr/commit/2d3af7afca26dac05c602c17d65d31e71d79fb03)) -* **deps:** update dependency swagger-ui-react to ^5.29.0 ([#4081](https://github.com/homarr-labs/homarr/issues/4081)) ([0e563fc](https://github.com/homarr-labs/homarr/commit/0e563fc47f4c894f0df502afdb9818c7361bbae3)) -* **deps:** update dependency typescript-eslint to ^8.43.0 ([#4075](https://github.com/homarr-labs/homarr/issues/4075)) ([809fbd5](https://github.com/homarr-labs/homarr/commit/809fbd51766ae88b814d69043d452f8959bdb98b)) -* **deps:** update dependency undici to v7.16.0 ([#4083](https://github.com/homarr-labs/homarr/issues/4083)) ([4287d17](https://github.com/homarr-labs/homarr/commit/4287d1743b2e90c7957b9c74dcd975ab3d494112)) -* **deps:** update dependency zod to ^4.1.7 ([#4089](https://github.com/homarr-labs/homarr/issues/4089)) ([687cfd4](https://github.com/homarr-labs/homarr/commit/687cfd4cc7da3c99f727432df18ecf1ebc9f2967)) -* **deps:** update dependency zod to ^4.1.8 ([#4090](https://github.com/homarr-labs/homarr/issues/4090)) ([6e31e25](https://github.com/homarr-labs/homarr/commit/6e31e2567162b1ee88ea0a2fbb965064ff81ba23)) -* **deps:** update mantine monorepo to ^8.3.0 ([#4068](https://github.com/homarr-labs/homarr/issues/4068)) ([8c24da8](https://github.com/homarr-labs/homarr/commit/8c24da87320f1d1a54aee5e87254c4bfcc993fb5)) -* **deps:** update mantine monorepo to ^8.3.1 ([#4070](https://github.com/homarr-labs/homarr/issues/4070)) ([1412b6c](https://github.com/homarr-labs/homarr/commit/1412b6c0d3a46d32c764758fc3cc5b29415dd532)) -* **deps:** update nextjs monorepo to v15.5.3 ([#4087](https://github.com/homarr-labs/homarr/issues/4087)) ([94fb9b2](https://github.com/homarr-labs/homarr/commit/94fb9b25028529a7320c18cf82d0cbdc238d4c52)) -* **deps:** update tanstack-query monorepo to ^5.87.4 ([#4071](https://github.com/homarr-labs/homarr/issues/4071)) ([12b2b82](https://github.com/homarr-labs/homarr/commit/12b2b82b4ee34c038e127594fd42216957b41b55)) -* **system-resources-widget:** chart resizing not working well ([#4069](https://github.com/homarr-labs/homarr/issues/4069)) ([6b3672a](https://github.com/homarr-labs/homarr/commit/6b3672a04d66acd80ea71da2c5fff4e31c24c1aa)) +- **deps:** update dependency dockerode to ^4.0.8 ([#4076](https://github.com/homarr-labs/homarr/issues/4076)) ([43d5a27](https://github.com/homarr-labs/homarr/commit/43d5a27552b9fb89009645e7e711cb62a482e3c7)) +- **deps:** update dependency jotai to ^2.14.0 ([#4066](https://github.com/homarr-labs/homarr/issues/4066)) ([6880d61](https://github.com/homarr-labs/homarr/commit/6880d61d6b6392b10911d35ffada8102d5b0d6f7)) +- **deps:** update dependency mysql2 to v3.14.5 ([#4067](https://github.com/homarr-labs/homarr/issues/4067)) ([cd4c236](https://github.com/homarr-labs/homarr/commit/cd4c236e5e6bf5f38f86e8e70a04cdd29bc484a3)) +- **deps:** update dependency next-intl to v4.3.8 ([#4095](https://github.com/homarr-labs/homarr/issues/4095)) ([2d3af7a](https://github.com/homarr-labs/homarr/commit/2d3af7afca26dac05c602c17d65d31e71d79fb03)) +- **deps:** update dependency swagger-ui-react to ^5.29.0 ([#4081](https://github.com/homarr-labs/homarr/issues/4081)) ([0e563fc](https://github.com/homarr-labs/homarr/commit/0e563fc47f4c894f0df502afdb9818c7361bbae3)) +- **deps:** update dependency typescript-eslint to ^8.43.0 ([#4075](https://github.com/homarr-labs/homarr/issues/4075)) ([809fbd5](https://github.com/homarr-labs/homarr/commit/809fbd51766ae88b814d69043d452f8959bdb98b)) +- **deps:** update dependency undici to v7.16.0 ([#4083](https://github.com/homarr-labs/homarr/issues/4083)) ([4287d17](https://github.com/homarr-labs/homarr/commit/4287d1743b2e90c7957b9c74dcd975ab3d494112)) +- **deps:** update dependency zod to ^4.1.7 ([#4089](https://github.com/homarr-labs/homarr/issues/4089)) ([687cfd4](https://github.com/homarr-labs/homarr/commit/687cfd4cc7da3c99f727432df18ecf1ebc9f2967)) +- **deps:** update dependency zod to ^4.1.8 ([#4090](https://github.com/homarr-labs/homarr/issues/4090)) ([6e31e25](https://github.com/homarr-labs/homarr/commit/6e31e2567162b1ee88ea0a2fbb965064ff81ba23)) +- **deps:** update mantine monorepo to ^8.3.0 ([#4068](https://github.com/homarr-labs/homarr/issues/4068)) ([8c24da8](https://github.com/homarr-labs/homarr/commit/8c24da87320f1d1a54aee5e87254c4bfcc993fb5)) +- **deps:** update mantine monorepo to ^8.3.1 ([#4070](https://github.com/homarr-labs/homarr/issues/4070)) ([1412b6c](https://github.com/homarr-labs/homarr/commit/1412b6c0d3a46d32c764758fc3cc5b29415dd532)) +- **deps:** update nextjs monorepo to v15.5.3 ([#4087](https://github.com/homarr-labs/homarr/issues/4087)) ([94fb9b2](https://github.com/homarr-labs/homarr/commit/94fb9b25028529a7320c18cf82d0cbdc238d4c52)) +- **deps:** update tanstack-query monorepo to ^5.87.4 ([#4071](https://github.com/homarr-labs/homarr/issues/4071)) ([12b2b82](https://github.com/homarr-labs/homarr/commit/12b2b82b4ee34c038e127594fd42216957b41b55)) +- **system-resources-widget:** chart resizing not working well ([#4069](https://github.com/homarr-labs/homarr/issues/4069)) ([6b3672a](https://github.com/homarr-labs/homarr/commit/6b3672a04d66acd80ea71da2c5fff4e31c24c1aa)) ## [1.37.0](https://github.com/homarr-labs/homarr/compare/v1.36.1...v1.37.0) (2025-09-12) ### Features -* **integration:** add github app authentication ([#3968](https://github.com/homarr-labs/homarr/issues/3968)) ([bfcbffb](https://github.com/homarr-labs/homarr/commit/bfcbffbdc6499ac5f10bfbf2f5db141eef955049)) -* **integrations:** add truenas ([#3745](https://github.com/homarr-labs/homarr/issues/3745)) ([dc08bac](https://github.com/homarr-labs/homarr/commit/dc08bacebfe22ee528565259605787720a522b6b)) +- **integration:** add github app authentication ([#3968](https://github.com/homarr-labs/homarr/issues/3968)) ([bfcbffb](https://github.com/homarr-labs/homarr/commit/bfcbffbdc6499ac5f10bfbf2f5db141eef955049)) +- **integrations:** add truenas ([#3745](https://github.com/homarr-labs/homarr/issues/3745)) ([dc08bac](https://github.com/homarr-labs/homarr/commit/dc08bacebfe22ee528565259605787720a522b6b)) ### Bug Fixes -* **adguard-integration:** parse error with protection_disabled_duration field ([#4018](https://github.com/homarr-labs/homarr/issues/4018)) ([eb5af11](https://github.com/homarr-labs/homarr/commit/eb5af116436ddd11b7ff094e882355f951ca622a)) -* **api:** page is crashing ([#4039](https://github.com/homarr-labs/homarr/issues/4039)) ([a843f60](https://github.com/homarr-labs/homarr/commit/a843f6043b0ed90c5a205b697497490631e0dd19)) -* **boards:** issues with old-import board name containing spaces ([#4052](https://github.com/homarr-labs/homarr/issues/4052)) ([f7471b6](https://github.com/homarr-labs/homarr/commit/f7471b6c63f80618d0b91b16fb5545e0a3760cbe)) -* **deps:** update dependency @ctrl/deluge to ^7.2.0 ([#4009](https://github.com/homarr-labs/homarr/issues/4009)) ([e70074b](https://github.com/homarr-labs/homarr/commit/e70074b2191df1dac1e9aa94dbb0cec7073193c9)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.7.0 ([#4010](https://github.com/homarr-labs/homarr/issues/4010)) ([32b2a09](https://github.com/homarr-labs/homarr/commit/32b2a09ab4e9826b0640d47e1d443682b5fbcff5)) -* **deps:** update dependency @ctrl/transmission to ^7.3.0 ([#4011](https://github.com/homarr-labs/homarr/issues/4011)) ([bc94e34](https://github.com/homarr-labs/homarr/commit/bc94e34ada04458901389f3d7ba18e76849fe6d4)) -* **deps:** update dependency @extractus/feed-extractor to v7.1.7 ([#4034](https://github.com/homarr-labs/homarr/issues/4034)) ([fbb86c4](https://github.com/homarr-labs/homarr/commit/fbb86c452d3b8d8cde5357e369fbc14349b71c81)) -* **deps:** update dependency @gitbeaker/rest to ^43.5.0 ([#4023](https://github.com/homarr-labs/homarr/issues/4023)) ([4fc38bc](https://github.com/homarr-labs/homarr/commit/4fc38bcd5bbed0b3ede2e742c0677bdfbab47295)) -* **deps:** update dependency dotenv to ^17.2.2 ([#4024](https://github.com/homarr-labs/homarr/issues/4024)) ([1323bb2](https://github.com/homarr-labs/homarr/commit/1323bb276fc8120dd62385b4c79cc630b2078949)) -* **deps:** update dependency fastify to ^5.6.0 ([#4042](https://github.com/homarr-labs/homarr/issues/4042)) ([a149d8c](https://github.com/homarr-labs/homarr/commit/a149d8c3c112740c9c563463ab72e89c77b9a4ec)) -* **deps:** update dependency mysql2 to v3.14.4 ([#4013](https://github.com/homarr-labs/homarr/issues/4013)) ([8bf278f](https://github.com/homarr-labs/homarr/commit/8bf278f603ff37e68d7bed41c4c5f6e6351fe94e)) -* **deps:** update dependency next-intl to v4.3.6 ([#4035](https://github.com/homarr-labs/homarr/issues/4035)) ([a1b5f5c](https://github.com/homarr-labs/homarr/commit/a1b5f5ceea96b18bda8aa7cee7002b10dc4b428c)) -* **deps:** update dependency next-intl to v4.3.7 ([#4038](https://github.com/homarr-labs/homarr/issues/4038)) ([cd90eaa](https://github.com/homarr-labs/homarr/commit/cd90eaae9da566393114a02765f57f1e6f55fe1c)) -* **deps:** update dependency sass to ^1.92.0 ([#4025](https://github.com/homarr-labs/homarr/issues/4025)) ([2eef4a8](https://github.com/homarr-labs/homarr/commit/2eef4a8304f0ab5b99313e6e8904582303dd1883)) -* **deps:** update dependency sass to ^1.92.1 ([#4031](https://github.com/homarr-labs/homarr/issues/4031)) ([8231efa](https://github.com/homarr-labs/homarr/commit/8231efa28195389f4b83a06d137ea6b4b2f49eee)) -* **deps:** update dependency swagger-ui-react to ^5.28.1 ([#4029](https://github.com/homarr-labs/homarr/issues/4029)) ([ecf1bd9](https://github.com/homarr-labs/homarr/commit/ecf1bd98b74c8e8fca03bcd210fb118382ce2d36)) -* **deps:** update dependency typescript-eslint to ^8.42.0 ([#4022](https://github.com/homarr-labs/homarr/issues/4022)) ([99179e4](https://github.com/homarr-labs/homarr/commit/99179e4e7d957f5616a24c63982af957613db427)) -* **deps:** update trpc monorepo to ^11.5.1 ([#4045](https://github.com/homarr-labs/homarr/issues/4045)) ([a7976e9](https://github.com/homarr-labs/homarr/commit/a7976e9d700793d8f48529bc5c1f11f8bca724ce)) -* **iframe:** disable scrolling not working ([#4017](https://github.com/homarr-labs/homarr/issues/4017)) ([7ac2a81](https://github.com/homarr-labs/homarr/commit/7ac2a81f945c44745917fe4eb8318fdfff3deb14)) -* **plex-integration:** unknown badge shown for added tv-shows ([#4032](https://github.com/homarr-labs/homarr/issues/4032)) ([4d57c7c](https://github.com/homarr-labs/homarr/commit/4d57c7ca13bdf78b5ac9d0710cd486ad1f41d4d4)) -* **update-checker:** cached through updates ([#4046](https://github.com/homarr-labs/homarr/issues/4046)) ([26eb2c0](https://github.com/homarr-labs/homarr/commit/26eb2c08c94bd9d440a3c9e914fc9af4ffd48301)) -* **video-widget:** hls videos not working ([#4015](https://github.com/homarr-labs/homarr/issues/4015)) ([de33439](https://github.com/homarr-labs/homarr/commit/de33439b22d3f5f2ff5856054cfa31a4f78ee088)) +- **adguard-integration:** parse error with protection_disabled_duration field ([#4018](https://github.com/homarr-labs/homarr/issues/4018)) ([eb5af11](https://github.com/homarr-labs/homarr/commit/eb5af116436ddd11b7ff094e882355f951ca622a)) +- **api:** page is crashing ([#4039](https://github.com/homarr-labs/homarr/issues/4039)) ([a843f60](https://github.com/homarr-labs/homarr/commit/a843f6043b0ed90c5a205b697497490631e0dd19)) +- **boards:** issues with old-import board name containing spaces ([#4052](https://github.com/homarr-labs/homarr/issues/4052)) ([f7471b6](https://github.com/homarr-labs/homarr/commit/f7471b6c63f80618d0b91b16fb5545e0a3760cbe)) +- **deps:** update dependency @ctrl/deluge to ^7.2.0 ([#4009](https://github.com/homarr-labs/homarr/issues/4009)) ([e70074b](https://github.com/homarr-labs/homarr/commit/e70074b2191df1dac1e9aa94dbb0cec7073193c9)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.7.0 ([#4010](https://github.com/homarr-labs/homarr/issues/4010)) ([32b2a09](https://github.com/homarr-labs/homarr/commit/32b2a09ab4e9826b0640d47e1d443682b5fbcff5)) +- **deps:** update dependency @ctrl/transmission to ^7.3.0 ([#4011](https://github.com/homarr-labs/homarr/issues/4011)) ([bc94e34](https://github.com/homarr-labs/homarr/commit/bc94e34ada04458901389f3d7ba18e76849fe6d4)) +- **deps:** update dependency @extractus/feed-extractor to v7.1.7 ([#4034](https://github.com/homarr-labs/homarr/issues/4034)) ([fbb86c4](https://github.com/homarr-labs/homarr/commit/fbb86c452d3b8d8cde5357e369fbc14349b71c81)) +- **deps:** update dependency @gitbeaker/rest to ^43.5.0 ([#4023](https://github.com/homarr-labs/homarr/issues/4023)) ([4fc38bc](https://github.com/homarr-labs/homarr/commit/4fc38bcd5bbed0b3ede2e742c0677bdfbab47295)) +- **deps:** update dependency dotenv to ^17.2.2 ([#4024](https://github.com/homarr-labs/homarr/issues/4024)) ([1323bb2](https://github.com/homarr-labs/homarr/commit/1323bb276fc8120dd62385b4c79cc630b2078949)) +- **deps:** update dependency fastify to ^5.6.0 ([#4042](https://github.com/homarr-labs/homarr/issues/4042)) ([a149d8c](https://github.com/homarr-labs/homarr/commit/a149d8c3c112740c9c563463ab72e89c77b9a4ec)) +- **deps:** update dependency mysql2 to v3.14.4 ([#4013](https://github.com/homarr-labs/homarr/issues/4013)) ([8bf278f](https://github.com/homarr-labs/homarr/commit/8bf278f603ff37e68d7bed41c4c5f6e6351fe94e)) +- **deps:** update dependency next-intl to v4.3.6 ([#4035](https://github.com/homarr-labs/homarr/issues/4035)) ([a1b5f5c](https://github.com/homarr-labs/homarr/commit/a1b5f5ceea96b18bda8aa7cee7002b10dc4b428c)) +- **deps:** update dependency next-intl to v4.3.7 ([#4038](https://github.com/homarr-labs/homarr/issues/4038)) ([cd90eaa](https://github.com/homarr-labs/homarr/commit/cd90eaae9da566393114a02765f57f1e6f55fe1c)) +- **deps:** update dependency sass to ^1.92.0 ([#4025](https://github.com/homarr-labs/homarr/issues/4025)) ([2eef4a8](https://github.com/homarr-labs/homarr/commit/2eef4a8304f0ab5b99313e6e8904582303dd1883)) +- **deps:** update dependency sass to ^1.92.1 ([#4031](https://github.com/homarr-labs/homarr/issues/4031)) ([8231efa](https://github.com/homarr-labs/homarr/commit/8231efa28195389f4b83a06d137ea6b4b2f49eee)) +- **deps:** update dependency swagger-ui-react to ^5.28.1 ([#4029](https://github.com/homarr-labs/homarr/issues/4029)) ([ecf1bd9](https://github.com/homarr-labs/homarr/commit/ecf1bd98b74c8e8fca03bcd210fb118382ce2d36)) +- **deps:** update dependency typescript-eslint to ^8.42.0 ([#4022](https://github.com/homarr-labs/homarr/issues/4022)) ([99179e4](https://github.com/homarr-labs/homarr/commit/99179e4e7d957f5616a24c63982af957613db427)) +- **deps:** update trpc monorepo to ^11.5.1 ([#4045](https://github.com/homarr-labs/homarr/issues/4045)) ([a7976e9](https://github.com/homarr-labs/homarr/commit/a7976e9d700793d8f48529bc5c1f11f8bca724ce)) +- **iframe:** disable scrolling not working ([#4017](https://github.com/homarr-labs/homarr/issues/4017)) ([7ac2a81](https://github.com/homarr-labs/homarr/commit/7ac2a81f945c44745917fe4eb8318fdfff3deb14)) +- **plex-integration:** unknown badge shown for added tv-shows ([#4032](https://github.com/homarr-labs/homarr/issues/4032)) ([4d57c7c](https://github.com/homarr-labs/homarr/commit/4d57c7ca13bdf78b5ac9d0710cd486ad1f41d4d4)) +- **update-checker:** cached through updates ([#4046](https://github.com/homarr-labs/homarr/issues/4046)) ([26eb2c0](https://github.com/homarr-labs/homarr/commit/26eb2c08c94bd9d440a3c9e914fc9af4ffd48301)) +- **video-widget:** hls videos not working ([#4015](https://github.com/homarr-labs/homarr/issues/4015)) ([de33439](https://github.com/homarr-labs/homarr/commit/de33439b22d3f5f2ff5856054cfa31a4f78ee088)) ### Reverts -* **deps:** update actions/setup-node action to v5 ([#4058](https://github.com/homarr-labs/homarr/issues/4058)) ([7862612](https://github.com/homarr-labs/homarr/commit/78626121ddfa5462eaad7a6933733ec03a83c04a)) +- **deps:** update actions/setup-node action to v5 ([#4058](https://github.com/homarr-labs/homarr/issues/4058)) ([7862612](https://github.com/homarr-labs/homarr/commit/78626121ddfa5462eaad7a6933733ec03a83c04a)) ## [1.36.1](https://github.com/homarr-labs/homarr/compare/v1.36.0...v1.36.1) (2025-09-05) ### Bug Fixes -* **dns:** disable caching by default ([#4007](https://github.com/homarr-labs/homarr/issues/4007)) ([10668ee](https://github.com/homarr-labs/homarr/commit/10668ee359940c1e24b543a7a20fe400474e12bf)) +- **dns:** disable caching by default ([#4007](https://github.com/homarr-labs/homarr/issues/4007)) ([10668ee](https://github.com/homarr-labs/homarr/commit/10668ee359940c1e24b543a7a20fe400474e12bf)) ## [1.36.0](https://github.com/homarr-labs/homarr/compare/v1.35.1...v1.36.0) (2025-09-05) ### Features -* **kubernetes:** add Talos providers ([#3979](https://github.com/homarr-labs/homarr/issues/3979)) ([3e59c20](https://github.com/homarr-labs/homarr/commit/3e59c20dba543634a6a79359f83c13fa81e7ccf3)) -* **rss-widget:** add hide description option ([#4000](https://github.com/homarr-labs/homarr/issues/4000)) ([b2eb2c3](https://github.com/homarr-labs/homarr/commit/b2eb2c32f6995563feb3c8b4a100be3bfe1d3d80)) -* **widget:** show name in edit modal ([#3970](https://github.com/homarr-labs/homarr/issues/3970)) ([d317cac](https://github.com/homarr-labs/homarr/commit/d317cacbe83394dd3f6de3e74b53f683654e91d1)) +- **kubernetes:** add Talos providers ([#3979](https://github.com/homarr-labs/homarr/issues/3979)) ([3e59c20](https://github.com/homarr-labs/homarr/commit/3e59c20dba543634a6a79359f83c13fa81e7ccf3)) +- **rss-widget:** add hide description option ([#4000](https://github.com/homarr-labs/homarr/issues/4000)) ([b2eb2c3](https://github.com/homarr-labs/homarr/commit/b2eb2c32f6995563feb3c8b4a100be3bfe1d3d80)) +- **widget:** show name in edit modal ([#3970](https://github.com/homarr-labs/homarr/issues/3970)) ([d317cac](https://github.com/homarr-labs/homarr/commit/d317cacbe83394dd3f6de3e74b53f683654e91d1)) ### Bug Fixes -* add dns caching ([#3736](https://github.com/homarr-labs/homarr/issues/3736)) ([fb6b5e8](https://github.com/homarr-labs/homarr/commit/fb6b5e88ff3a5e85d06885aed1f2a99788e04f2c)) -* **deps:** tsx breaks imports like dns-caching ([#3998](https://github.com/homarr-labs/homarr/issues/3998)) ([0476543](https://github.com/homarr-labs/homarr/commit/047654351ab50a730551e61ce98065c9bb7ca3fa)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.3 ([#3976](https://github.com/homarr-labs/homarr/issues/3976)) ([2b1a3de](https://github.com/homarr-labs/homarr/commit/2b1a3de8dffdd9f089b82e4bcfb304f156f60670)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.7.0 ([#3977](https://github.com/homarr-labs/homarr/issues/3977)) ([a3dde2e](https://github.com/homarr-labs/homarr/commit/a3dde2e7ee40fcfddced43f4b5c124010f0410db)) -* **deps:** update dependency @testcontainers/postgresql to ^11.5.1 ([#3948](https://github.com/homarr-labs/homarr/issues/3948)) ([9f3e68f](https://github.com/homarr-labs/homarr/commit/9f3e68fdfee5936727c97d0d99e174cd368de260)) -* **deps:** update dependency dayjs to ^1.11.15 ([#3975](https://github.com/homarr-labs/homarr/issues/3975)) ([032f7ff](https://github.com/homarr-labs/homarr/commit/032f7ffd29eddd200d5434ba1c65b8cd5800c8ff)) -* **deps:** update dependency dayjs to ^1.11.18 ([#3982](https://github.com/homarr-labs/homarr/issues/3982)) ([5e92e66](https://github.com/homarr-labs/homarr/commit/5e92e66803ddf9256fce8a92aec06dabe2491edc)) -* **deps:** update dependency drizzle-orm to ^0.44.5 ([#3962](https://github.com/homarr-labs/homarr/issues/3962)) ([ea4960e](https://github.com/homarr-labs/homarr/commit/ea4960e11332af0062df964258d9e24def0984e7)) -* **deps:** update dependency next-intl to v4.3.5 ([#3937](https://github.com/homarr-labs/homarr/issues/3937)) ([81a7f3e](https://github.com/homarr-labs/homarr/commit/81a7f3e93dfd52eea2c87cae8f2d66dd312f7055)) -* **deps:** update dependency sass to ^1.91.0 ([#3965](https://github.com/homarr-labs/homarr/issues/3965)) ([0e5f43c](https://github.com/homarr-labs/homarr/commit/0e5f43c1c38a7e0186d86c29a73477f943eeb416)) -* **deps:** update dependency swagger-ui-react to ^5.28.0 ([#3985](https://github.com/homarr-labs/homarr/issues/3985)) ([d2e9b5e](https://github.com/homarr-labs/homarr/commit/d2e9b5e983e2f277da30e98ad313e1afd35d70d3)) -* **deps:** update dependency tsx to v4.20.5 ([#3938](https://github.com/homarr-labs/homarr/issues/3938)) ([93186c3](https://github.com/homarr-labs/homarr/commit/93186c3be1fdcf6c215efcd8d7236fc44fc74d77)) -* **deps:** update dependency typescript-eslint to ^8.41.0 ([#3963](https://github.com/homarr-labs/homarr/issues/3963)) ([be0e783](https://github.com/homarr-labs/homarr/commit/be0e78371eb98740f313b1abd20413cbafa68a20)) -* **deps:** update dependency undici to v7.15.0 ([#3949](https://github.com/homarr-labs/homarr/issues/3949)) ([f166d15](https://github.com/homarr-labs/homarr/commit/f166d153fee521ef31a5328f082b4f52fbfd7239)) -* **deps:** update dependency zod to ^4.1.1 ([#3950](https://github.com/homarr-labs/homarr/issues/3950)) ([94eb677](https://github.com/homarr-labs/homarr/commit/94eb6772b9216b6377f6306b2a88c2bfe58bfb59)) -* **deps:** update dependency zod to ^4.1.5 ([#3961](https://github.com/homarr-labs/homarr/issues/3961)) ([9165422](https://github.com/homarr-labs/homarr/commit/916542210d9bfbb40abf27123f4989ec15dcd45b)) -* **deps:** update dependency zod-form-data to ^3.0.1 ([#3986](https://github.com/homarr-labs/homarr/issues/3986)) ([75683c2](https://github.com/homarr-labs/homarr/commit/75683c206d06da3b54c5ab0605b2a4b37674bbd6)) -* **deps:** update mantine monorepo to ^8.2.7 ([#3939](https://github.com/homarr-labs/homarr/issues/3939)) ([5d90809](https://github.com/homarr-labs/homarr/commit/5d908093ce3c8b395547681ae0a428afd08a255d)) -* **deps:** update mantine monorepo to ^8.2.8 ([#4004](https://github.com/homarr-labs/homarr/issues/4004)) ([eef6b86](https://github.com/homarr-labs/homarr/commit/eef6b86ad647fe955bdb125f504b4a98a79baf03)) -* **deps:** update nextjs monorepo to v15.5.1 ([#3971](https://github.com/homarr-labs/homarr/issues/3971)) ([a1def95](https://github.com/homarr-labs/homarr/commit/a1def958525816ec41198407d6d84ef9384be58f)) -* **deps:** update nextjs monorepo to v15.5.2 ([#3972](https://github.com/homarr-labs/homarr/issues/3972)) ([b0fe8a9](https://github.com/homarr-labs/homarr/commit/b0fe8a9f653e09cb3f861f39f06bb8d4e8dae006)) -* **deps:** update tanstack-query monorepo to ^5.85.6 ([#3996](https://github.com/homarr-labs/homarr/issues/3996)) ([4e4483c](https://github.com/homarr-labs/homarr/commit/4e4483c42d9edd3187981e57694721ff5337be8e)) -* **deps:** update tanstack-query monorepo to ^5.87.1 ([#3997](https://github.com/homarr-labs/homarr/issues/3997)) ([d7146d8](https://github.com/homarr-labs/homarr/commit/d7146d82d14885cffb24e14e7e5a610fdeec1b03)) -* **deps:** update trpc monorepo to ^11.5.0 ([#3951](https://github.com/homarr-labs/homarr/issues/3951)) ([88eed15](https://github.com/homarr-labs/homarr/commit/88eed15fafbc68c1c669c28ff576aca503acd585)) -* **header:** avatar menu flashes when opening on mobile ([#3999](https://github.com/homarr-labs/homarr/issues/3999)) ([9cb8261](https://github.com/homarr-labs/homarr/commit/9cb8261ddc5701ff5d5786ea1fba823e1e9317b2)) -* **widgets:** improve integration selection ([#3969](https://github.com/homarr-labs/homarr/issues/3969)) ([65b9ddd](https://github.com/homarr-labs/homarr/commit/65b9ddd771a573330b4c40966f10bd1fc36a6e1d)) +- add dns caching ([#3736](https://github.com/homarr-labs/homarr/issues/3736)) ([fb6b5e8](https://github.com/homarr-labs/homarr/commit/fb6b5e88ff3a5e85d06885aed1f2a99788e04f2c)) +- **deps:** tsx breaks imports like dns-caching ([#3998](https://github.com/homarr-labs/homarr/issues/3998)) ([0476543](https://github.com/homarr-labs/homarr/commit/047654351ab50a730551e61ce98065c9bb7ca3fa)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.3 ([#3976](https://github.com/homarr-labs/homarr/issues/3976)) ([2b1a3de](https://github.com/homarr-labs/homarr/commit/2b1a3de8dffdd9f089b82e4bcfb304f156f60670)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.7.0 ([#3977](https://github.com/homarr-labs/homarr/issues/3977)) ([a3dde2e](https://github.com/homarr-labs/homarr/commit/a3dde2e7ee40fcfddced43f4b5c124010f0410db)) +- **deps:** update dependency @testcontainers/postgresql to ^11.5.1 ([#3948](https://github.com/homarr-labs/homarr/issues/3948)) ([9f3e68f](https://github.com/homarr-labs/homarr/commit/9f3e68fdfee5936727c97d0d99e174cd368de260)) +- **deps:** update dependency dayjs to ^1.11.15 ([#3975](https://github.com/homarr-labs/homarr/issues/3975)) ([032f7ff](https://github.com/homarr-labs/homarr/commit/032f7ffd29eddd200d5434ba1c65b8cd5800c8ff)) +- **deps:** update dependency dayjs to ^1.11.18 ([#3982](https://github.com/homarr-labs/homarr/issues/3982)) ([5e92e66](https://github.com/homarr-labs/homarr/commit/5e92e66803ddf9256fce8a92aec06dabe2491edc)) +- **deps:** update dependency drizzle-orm to ^0.44.5 ([#3962](https://github.com/homarr-labs/homarr/issues/3962)) ([ea4960e](https://github.com/homarr-labs/homarr/commit/ea4960e11332af0062df964258d9e24def0984e7)) +- **deps:** update dependency next-intl to v4.3.5 ([#3937](https://github.com/homarr-labs/homarr/issues/3937)) ([81a7f3e](https://github.com/homarr-labs/homarr/commit/81a7f3e93dfd52eea2c87cae8f2d66dd312f7055)) +- **deps:** update dependency sass to ^1.91.0 ([#3965](https://github.com/homarr-labs/homarr/issues/3965)) ([0e5f43c](https://github.com/homarr-labs/homarr/commit/0e5f43c1c38a7e0186d86c29a73477f943eeb416)) +- **deps:** update dependency swagger-ui-react to ^5.28.0 ([#3985](https://github.com/homarr-labs/homarr/issues/3985)) ([d2e9b5e](https://github.com/homarr-labs/homarr/commit/d2e9b5e983e2f277da30e98ad313e1afd35d70d3)) +- **deps:** update dependency tsx to v4.20.5 ([#3938](https://github.com/homarr-labs/homarr/issues/3938)) ([93186c3](https://github.com/homarr-labs/homarr/commit/93186c3be1fdcf6c215efcd8d7236fc44fc74d77)) +- **deps:** update dependency typescript-eslint to ^8.41.0 ([#3963](https://github.com/homarr-labs/homarr/issues/3963)) ([be0e783](https://github.com/homarr-labs/homarr/commit/be0e78371eb98740f313b1abd20413cbafa68a20)) +- **deps:** update dependency undici to v7.15.0 ([#3949](https://github.com/homarr-labs/homarr/issues/3949)) ([f166d15](https://github.com/homarr-labs/homarr/commit/f166d153fee521ef31a5328f082b4f52fbfd7239)) +- **deps:** update dependency zod to ^4.1.1 ([#3950](https://github.com/homarr-labs/homarr/issues/3950)) ([94eb677](https://github.com/homarr-labs/homarr/commit/94eb6772b9216b6377f6306b2a88c2bfe58bfb59)) +- **deps:** update dependency zod to ^4.1.5 ([#3961](https://github.com/homarr-labs/homarr/issues/3961)) ([9165422](https://github.com/homarr-labs/homarr/commit/916542210d9bfbb40abf27123f4989ec15dcd45b)) +- **deps:** update dependency zod-form-data to ^3.0.1 ([#3986](https://github.com/homarr-labs/homarr/issues/3986)) ([75683c2](https://github.com/homarr-labs/homarr/commit/75683c206d06da3b54c5ab0605b2a4b37674bbd6)) +- **deps:** update mantine monorepo to ^8.2.7 ([#3939](https://github.com/homarr-labs/homarr/issues/3939)) ([5d90809](https://github.com/homarr-labs/homarr/commit/5d908093ce3c8b395547681ae0a428afd08a255d)) +- **deps:** update mantine monorepo to ^8.2.8 ([#4004](https://github.com/homarr-labs/homarr/issues/4004)) ([eef6b86](https://github.com/homarr-labs/homarr/commit/eef6b86ad647fe955bdb125f504b4a98a79baf03)) +- **deps:** update nextjs monorepo to v15.5.1 ([#3971](https://github.com/homarr-labs/homarr/issues/3971)) ([a1def95](https://github.com/homarr-labs/homarr/commit/a1def958525816ec41198407d6d84ef9384be58f)) +- **deps:** update nextjs monorepo to v15.5.2 ([#3972](https://github.com/homarr-labs/homarr/issues/3972)) ([b0fe8a9](https://github.com/homarr-labs/homarr/commit/b0fe8a9f653e09cb3f861f39f06bb8d4e8dae006)) +- **deps:** update tanstack-query monorepo to ^5.85.6 ([#3996](https://github.com/homarr-labs/homarr/issues/3996)) ([4e4483c](https://github.com/homarr-labs/homarr/commit/4e4483c42d9edd3187981e57694721ff5337be8e)) +- **deps:** update tanstack-query monorepo to ^5.87.1 ([#3997](https://github.com/homarr-labs/homarr/issues/3997)) ([d7146d8](https://github.com/homarr-labs/homarr/commit/d7146d82d14885cffb24e14e7e5a610fdeec1b03)) +- **deps:** update trpc monorepo to ^11.5.0 ([#3951](https://github.com/homarr-labs/homarr/issues/3951)) ([88eed15](https://github.com/homarr-labs/homarr/commit/88eed15fafbc68c1c669c28ff576aca503acd585)) +- **header:** avatar menu flashes when opening on mobile ([#3999](https://github.com/homarr-labs/homarr/issues/3999)) ([9cb8261](https://github.com/homarr-labs/homarr/commit/9cb8261ddc5701ff5d5786ea1fba823e1e9317b2)) +- **widgets:** improve integration selection ([#3969](https://github.com/homarr-labs/homarr/issues/3969)) ([65b9ddd](https://github.com/homarr-labs/homarr/commit/65b9ddd771a573330b4c40966f10bd1fc36a6e1d)) ## [1.35.1](https://github.com/homarr-labs/homarr/compare/v1.35.0...v1.35.1) (2025-09-03) ### Bug Fixes -* **db:** increase integration kind limit from 16 to 64 characters ([8ff29b8](https://github.com/homarr-labs/homarr/commit/8ff29b82e5133ba0b8eaf2cf88de9bca31128a68)) +- **db:** increase integration kind limit from 16 to 64 characters ([8ff29b8](https://github.com/homarr-labs/homarr/commit/8ff29b82e5133ba0b8eaf2cf88de9bca31128a68)) ## [1.35.0](https://github.com/homarr-labs/homarr/compare/v1.34.0...v1.35.0) (2025-08-29) ### Features -* **app-widget:** show description in widget ([#3876](https://github.com/homarr-labs/homarr/issues/3876)) ([c346167](https://github.com/homarr-labs/homarr/commit/c3461677e82f52bd43bd3c4ecc867b4a6ae2bee8)) -* **db:** support postgresql database ([#3643](https://github.com/homarr-labs/homarr/issues/3643)) ([5168cba](https://github.com/homarr-labs/homarr/commit/5168cba8e4ccfb8a1c348c80706b2e7a987bb152)) -* **env:** improve support for instances without internet connection ([#3915](https://github.com/homarr-labs/homarr/issues/3915)) ([10feaa3](https://github.com/homarr-labs/homarr/commit/10feaa37ce1a3ecd28246db9b2f1b0414d0a75e6)) +- **app-widget:** show description in widget ([#3876](https://github.com/homarr-labs/homarr/issues/3876)) ([c346167](https://github.com/homarr-labs/homarr/commit/c3461677e82f52bd43bd3c4ecc867b4a6ae2bee8)) +- **db:** support postgresql database ([#3643](https://github.com/homarr-labs/homarr/issues/3643)) ([5168cba](https://github.com/homarr-labs/homarr/commit/5168cba8e4ccfb8a1c348c80706b2e7a987bb152)) +- **env:** improve support for instances without internet connection ([#3915](https://github.com/homarr-labs/homarr/issues/3915)) ([10feaa3](https://github.com/homarr-labs/homarr/commit/10feaa37ce1a3ecd28246db9b2f1b0414d0a75e6)) ### Bug Fixes -* **api:** document generation not working with nextjs ([#3920](https://github.com/homarr-labs/homarr/issues/3920)) ([97bc092](https://github.com/homarr-labs/homarr/commit/97bc092aea72dce19f5d1626054ecae69cf01aac)) -* **security:** deepsource issues ([#3919](https://github.com/homarr-labs/homarr/issues/3919)) ([84f1e78](https://github.com/homarr-labs/homarr/commit/84f1e787013468cab7f2f0e2bcdd1f012d4e0747)) -* system resources widget opacity support for transparent backgrounds ([#3835](https://github.com/homarr-labs/homarr/issues/3835)) ([a4aa2ae](https://github.com/homarr-labs/homarr/commit/a4aa2aea904081ff49e9cfc173c35770a019c587)) +- **api:** document generation not working with nextjs ([#3920](https://github.com/homarr-labs/homarr/issues/3920)) ([97bc092](https://github.com/homarr-labs/homarr/commit/97bc092aea72dce19f5d1626054ecae69cf01aac)) +- **security:** deepsource issues ([#3919](https://github.com/homarr-labs/homarr/issues/3919)) ([84f1e78](https://github.com/homarr-labs/homarr/commit/84f1e787013468cab7f2f0e2bcdd1f012d4e0747)) +- system resources widget opacity support for transparent backgrounds ([#3835](https://github.com/homarr-labs/homarr/issues/3835)) ([a4aa2ae](https://github.com/homarr-labs/homarr/commit/a4aa2aea904081ff49e9cfc173c35770a019c587)) ## [1.34.0](https://github.com/homarr-labs/homarr/compare/v1.33.0...v1.34.0) (2025-08-22) ### Features -* **app-widget:** add layout option ([#3875](https://github.com/homarr-labs/homarr/issues/3875)) ([acd09c8](https://github.com/homarr-labs/homarr/commit/acd09c8c02c13daac6e5b2432bb72640f075cec6)) -* **app-widget:** multiline description ([#3873](https://github.com/homarr-labs/homarr/issues/3873)) ([950636e](https://github.com/homarr-labs/homarr/commit/950636e81d4a934183f27694829dd3af05e5373f)) +- **app-widget:** add layout option ([#3875](https://github.com/homarr-labs/homarr/issues/3875)) ([acd09c8](https://github.com/homarr-labs/homarr/commit/acd09c8c02c13daac6e5b2432bb72640f075cec6)) +- **app-widget:** multiline description ([#3873](https://github.com/homarr-labs/homarr/issues/3873)) ([950636e](https://github.com/homarr-labs/homarr/commit/950636e81d4a934183f27694829dd3af05e5373f)) ### Bug Fixes -* **deps:** update dependency drizzle-zod to ^0.8.3 ([#3866](https://github.com/homarr-labs/homarr/issues/3866)) ([dc43a01](https://github.com/homarr-labs/homarr/commit/dc43a015c43d13ae01a0f32be654c756f41eb352)) -* **deps:** update dependency mantine-form-zod-resolver to ^1.3.0 ([#3868](https://github.com/homarr-labs/homarr/issues/3868)) ([72cdba7](https://github.com/homarr-labs/homarr/commit/72cdba79cbbaa03f35c90dd71a3703bacbe57558)) -* **deps:** update dependency trpc-to-openapi to ^3.0.1 ([#3761](https://github.com/homarr-labs/homarr/issues/3761)) ([2457f9e](https://github.com/homarr-labs/homarr/commit/2457f9e4a754221e8674a95d721ffc77573a4633)) -* **deps:** update dependency typescript-eslint to ^8.40.0 ([#3884](https://github.com/homarr-labs/homarr/issues/3884)) ([1a8e40e](https://github.com/homarr-labs/homarr/commit/1a8e40e1f9dbd4dbcf4ec0c54aef3297bc4cea7f)) -* **deps:** update dependency undici to v7.14.0 ([#3879](https://github.com/homarr-labs/homarr/issues/3879)) ([d7b2298](https://github.com/homarr-labs/homarr/commit/d7b2298d1488ef8d38558864cf359fc23bc5bb26)) -* **deps:** update dependency zod to ^4.0.17 ([#3867](https://github.com/homarr-labs/homarr/issues/3867)) ([82fcdae](https://github.com/homarr-labs/homarr/commit/82fcdae7e5cbc326f0051beb56c3a3805623e2a0)) -* **deps:** update dependency zod-validation-error to v4 ([#3670](https://github.com/homarr-labs/homarr/issues/3670)) ([09fdb16](https://github.com/homarr-labs/homarr/commit/09fdb167a76db2caf3f9aa253b516ee28baba3dd)) -* **deps:** update mantine monorepo to ^8.2.5 ([#3874](https://github.com/homarr-labs/homarr/issues/3874)) ([7e700b2](https://github.com/homarr-labs/homarr/commit/7e700b2732e2f0abff13d79191addb04097ca9bc)) -* **deps:** update nextjs monorepo to v15.4.7 ([#3886](https://github.com/homarr-labs/homarr/issues/3886)) ([683e817](https://github.com/homarr-labs/homarr/commit/683e817493eb1b391751fe36b59d9b95a760324c)) -* **deps:** update nextjs monorepo to v15.5.0 ([#3896](https://github.com/homarr-labs/homarr/issues/3896)) ([1451c3c](https://github.com/homarr-labs/homarr/commit/1451c3c41e08945eb31d025d187ff466c5104a05)) -* **deps:** update tanstack-query monorepo to ^5.85.4 ([#3889](https://github.com/homarr-labs/homarr/issues/3889)) ([7685438](https://github.com/homarr-labs/homarr/commit/76854387903b48b3af7be466972cf7b9c165acc5)) -* **deps:** update tanstack-query monorepo to ^5.85.5 ([#3890](https://github.com/homarr-labs/homarr/issues/3890)) ([fad7207](https://github.com/homarr-labs/homarr/commit/fad7207efe553111334b21739717b9813dea0b56)) -* **nextcloud:** integration ignores trusted certificates ([#3893](https://github.com/homarr-labs/homarr/issues/3893)) ([498acdc](https://github.com/homarr-labs/homarr/commit/498acdcdc190de457dc95e5b13f43e1b2c31f624)) +- **deps:** update dependency drizzle-zod to ^0.8.3 ([#3866](https://github.com/homarr-labs/homarr/issues/3866)) ([dc43a01](https://github.com/homarr-labs/homarr/commit/dc43a015c43d13ae01a0f32be654c756f41eb352)) +- **deps:** update dependency mantine-form-zod-resolver to ^1.3.0 ([#3868](https://github.com/homarr-labs/homarr/issues/3868)) ([72cdba7](https://github.com/homarr-labs/homarr/commit/72cdba79cbbaa03f35c90dd71a3703bacbe57558)) +- **deps:** update dependency trpc-to-openapi to ^3.0.1 ([#3761](https://github.com/homarr-labs/homarr/issues/3761)) ([2457f9e](https://github.com/homarr-labs/homarr/commit/2457f9e4a754221e8674a95d721ffc77573a4633)) +- **deps:** update dependency typescript-eslint to ^8.40.0 ([#3884](https://github.com/homarr-labs/homarr/issues/3884)) ([1a8e40e](https://github.com/homarr-labs/homarr/commit/1a8e40e1f9dbd4dbcf4ec0c54aef3297bc4cea7f)) +- **deps:** update dependency undici to v7.14.0 ([#3879](https://github.com/homarr-labs/homarr/issues/3879)) ([d7b2298](https://github.com/homarr-labs/homarr/commit/d7b2298d1488ef8d38558864cf359fc23bc5bb26)) +- **deps:** update dependency zod to ^4.0.17 ([#3867](https://github.com/homarr-labs/homarr/issues/3867)) ([82fcdae](https://github.com/homarr-labs/homarr/commit/82fcdae7e5cbc326f0051beb56c3a3805623e2a0)) +- **deps:** update dependency zod-validation-error to v4 ([#3670](https://github.com/homarr-labs/homarr/issues/3670)) ([09fdb16](https://github.com/homarr-labs/homarr/commit/09fdb167a76db2caf3f9aa253b516ee28baba3dd)) +- **deps:** update mantine monorepo to ^8.2.5 ([#3874](https://github.com/homarr-labs/homarr/issues/3874)) ([7e700b2](https://github.com/homarr-labs/homarr/commit/7e700b2732e2f0abff13d79191addb04097ca9bc)) +- **deps:** update nextjs monorepo to v15.4.7 ([#3886](https://github.com/homarr-labs/homarr/issues/3886)) ([683e817](https://github.com/homarr-labs/homarr/commit/683e817493eb1b391751fe36b59d9b95a760324c)) +- **deps:** update nextjs monorepo to v15.5.0 ([#3896](https://github.com/homarr-labs/homarr/issues/3896)) ([1451c3c](https://github.com/homarr-labs/homarr/commit/1451c3c41e08945eb31d025d187ff466c5104a05)) +- **deps:** update tanstack-query monorepo to ^5.85.4 ([#3889](https://github.com/homarr-labs/homarr/issues/3889)) ([7685438](https://github.com/homarr-labs/homarr/commit/76854387903b48b3af7be466972cf7b9c165acc5)) +- **deps:** update tanstack-query monorepo to ^5.85.5 ([#3890](https://github.com/homarr-labs/homarr/issues/3890)) ([fad7207](https://github.com/homarr-labs/homarr/commit/fad7207efe553111334b21739717b9813dea0b56)) +- **nextcloud:** integration ignores trusted certificates ([#3893](https://github.com/homarr-labs/homarr/issues/3893)) ([498acdc](https://github.com/homarr-labs/homarr/commit/498acdcdc190de457dc95e5b13f43e1b2c31f624)) ## [1.33.0](https://github.com/homarr-labs/homarr/compare/v1.32.0...v1.33.0) (2025-08-15) ### Features -* **tasks:** replace card layout with table interface for better UX ([#3804](https://github.com/homarr-labs/homarr/issues/3804)) ([9d14fcb](https://github.com/homarr-labs/homarr/commit/9d14fcba3646485d73d20455552e56602a346736)) +- **tasks:** replace card layout with table interface for better UX ([#3804](https://github.com/homarr-labs/homarr/issues/3804)) ([9d14fcb](https://github.com/homarr-labs/homarr/commit/9d14fcba3646485d73d20455552e56602a346736)) ### Bug Fixes -* **dashdot:** disabled widgets cause parse errors ([#3861](https://github.com/homarr-labs/homarr/issues/3861)) ([b7455d1](https://github.com/homarr-labs/homarr/commit/b7455d18edb3f4a76e9aec35f715cc722b13f0c3)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.2 ([#3854](https://github.com/homarr-labs/homarr/issues/3854)) ([8a4198d](https://github.com/homarr-labs/homarr/commit/8a4198db7e7fcb1e8556cf92c51888779ac6b614)) -* **deps:** update dependency fastify to ^5.5.0 ([#3836](https://github.com/homarr-labs/homarr/issues/3836)) ([ff1e02e](https://github.com/homarr-labs/homarr/commit/ff1e02ec78b31a9cd155828b2f143fbae8e15b88)) -* **deps:** update dependency jotai to ^2.13.1 ([#3834](https://github.com/homarr-labs/homarr/issues/3834)) ([5fe5d6f](https://github.com/homarr-labs/homarr/commit/5fe5d6f64d5c5b4096db8d4b2c7aefeab1fcef31)) -* **deps:** update dependency tsx to v4.20.4 ([#3845](https://github.com/homarr-labs/homarr/issues/3845)) ([7a4961e](https://github.com/homarr-labs/homarr/commit/7a4961e9ad3e58ab09160f5cb7f0d8968f16d73a)) -* **deps:** update dependency typescript-eslint to ^8.39.1 ([#3840](https://github.com/homarr-labs/homarr/issues/3840)) ([433be5e](https://github.com/homarr-labs/homarr/commit/433be5e82cbfb557bc1f69f119505c58f2612d25)) -* **deps:** update tanstack-query monorepo to ^5.85.0 ([#3846](https://github.com/homarr-labs/homarr/issues/3846)) ([7d123b8](https://github.com/homarr-labs/homarr/commit/7d123b83e05a43d86d3822155cd9ed9d5cd4b55d)) -* **deps:** update tanstack-query monorepo to ^5.85.1 ([#3858](https://github.com/homarr-labs/homarr/issues/3858)) ([70ce3e1](https://github.com/homarr-labs/homarr/commit/70ce3e168b0220486f90ef434ade61047de2ccb6)) -* **deps:** update tanstack-query monorepo to ^5.85.2 ([#3859](https://github.com/homarr-labs/homarr/issues/3859)) ([e9cb878](https://github.com/homarr-labs/homarr/commit/e9cb878169b151c6090e2b736f6597be934bf4b5)) -* **deps:** update tanstack-query monorepo to ^5.85.3 ([#3860](https://github.com/homarr-labs/homarr/issues/3860)) ([c72c154](https://github.com/homarr-labs/homarr/commit/c72c154305bc40fbaae728f3bffeeee065ab819d)) -* **deps:** update turbo monorepo to ^2.5.6 ([#3865](https://github.com/homarr-labs/homarr/issues/3865)) ([98d344c](https://github.com/homarr-labs/homarr/commit/98d344c4b7f88fd0b7c6ce508b30cefd47f98ce5)) -* **deps:** upgrade zod to v4 and fix breaking changes ([#3461](https://github.com/homarr-labs/homarr/issues/3461)) ([5c99622](https://github.com/homarr-labs/homarr/commit/5c99622fa86b7b0721384f089862a8405a27a61e)) -* **mysql:** increase max media size restricted from 16kb to 4gb ([#3839](https://github.com/homarr-labs/homarr/issues/3839)) ([7ffcd1a](https://github.com/homarr-labs/homarr/commit/7ffcd1a08ede840cf67da2c74a4ba0965645a673)) +- **dashdot:** disabled widgets cause parse errors ([#3861](https://github.com/homarr-labs/homarr/issues/3861)) ([b7455d1](https://github.com/homarr-labs/homarr/commit/b7455d18edb3f4a76e9aec35f715cc722b13f0c3)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.2 ([#3854](https://github.com/homarr-labs/homarr/issues/3854)) ([8a4198d](https://github.com/homarr-labs/homarr/commit/8a4198db7e7fcb1e8556cf92c51888779ac6b614)) +- **deps:** update dependency fastify to ^5.5.0 ([#3836](https://github.com/homarr-labs/homarr/issues/3836)) ([ff1e02e](https://github.com/homarr-labs/homarr/commit/ff1e02ec78b31a9cd155828b2f143fbae8e15b88)) +- **deps:** update dependency jotai to ^2.13.1 ([#3834](https://github.com/homarr-labs/homarr/issues/3834)) ([5fe5d6f](https://github.com/homarr-labs/homarr/commit/5fe5d6f64d5c5b4096db8d4b2c7aefeab1fcef31)) +- **deps:** update dependency tsx to v4.20.4 ([#3845](https://github.com/homarr-labs/homarr/issues/3845)) ([7a4961e](https://github.com/homarr-labs/homarr/commit/7a4961e9ad3e58ab09160f5cb7f0d8968f16d73a)) +- **deps:** update dependency typescript-eslint to ^8.39.1 ([#3840](https://github.com/homarr-labs/homarr/issues/3840)) ([433be5e](https://github.com/homarr-labs/homarr/commit/433be5e82cbfb557bc1f69f119505c58f2612d25)) +- **deps:** update tanstack-query monorepo to ^5.85.0 ([#3846](https://github.com/homarr-labs/homarr/issues/3846)) ([7d123b8](https://github.com/homarr-labs/homarr/commit/7d123b83e05a43d86d3822155cd9ed9d5cd4b55d)) +- **deps:** update tanstack-query monorepo to ^5.85.1 ([#3858](https://github.com/homarr-labs/homarr/issues/3858)) ([70ce3e1](https://github.com/homarr-labs/homarr/commit/70ce3e168b0220486f90ef434ade61047de2ccb6)) +- **deps:** update tanstack-query monorepo to ^5.85.2 ([#3859](https://github.com/homarr-labs/homarr/issues/3859)) ([e9cb878](https://github.com/homarr-labs/homarr/commit/e9cb878169b151c6090e2b736f6597be934bf4b5)) +- **deps:** update tanstack-query monorepo to ^5.85.3 ([#3860](https://github.com/homarr-labs/homarr/issues/3860)) ([c72c154](https://github.com/homarr-labs/homarr/commit/c72c154305bc40fbaae728f3bffeeee065ab819d)) +- **deps:** update turbo monorepo to ^2.5.6 ([#3865](https://github.com/homarr-labs/homarr/issues/3865)) ([98d344c](https://github.com/homarr-labs/homarr/commit/98d344c4b7f88fd0b7c6ce508b30cefd47f98ce5)) +- **deps:** upgrade zod to v4 and fix breaking changes ([#3461](https://github.com/homarr-labs/homarr/issues/3461)) ([5c99622](https://github.com/homarr-labs/homarr/commit/5c99622fa86b7b0721384f089862a8405a27a61e)) +- **mysql:** increase max media size restricted from 16kb to 4gb ([#3839](https://github.com/homarr-labs/homarr/issues/3839)) ([7ffcd1a](https://github.com/homarr-labs/homarr/commit/7ffcd1a08ede840cf67da2c74a4ba0965645a673)) ## [1.32.0](https://github.com/homarr-labs/homarr/compare/v1.31.0...v1.32.0) (2025-08-08) ### Features -* **api:** add info endpoint ([#3737](https://github.com/homarr-labs/homarr/issues/3737)) ([baa652f](https://github.com/homarr-labs/homarr/commit/baa652f31493aad1490cf8e5d50bb04dc0006da1)) -* system resources widget ([#3538](https://github.com/homarr-labs/homarr/issues/3538)) ([3ee408b](https://github.com/homarr-labs/homarr/commit/3ee408bf53c45f0b2abf04449b3653ed3e9cf225)) +- **api:** add info endpoint ([#3737](https://github.com/homarr-labs/homarr/issues/3737)) ([baa652f](https://github.com/homarr-labs/homarr/commit/baa652f31493aad1490cf8e5d50bb04dc0006da1)) +- system resources widget ([#3538](https://github.com/homarr-labs/homarr/issues/3538)) ([3ee408b](https://github.com/homarr-labs/homarr/commit/3ee408bf53c45f0b2abf04449b3653ed3e9cf225)) ### Bug Fixes -* **deps:** update dependency @gitbeaker/rest to ^43.4.0 ([#3806](https://github.com/homarr-labs/homarr/issues/3806)) ([c73ce1f](https://github.com/homarr-labs/homarr/commit/c73ce1f704aa1fcbc6beac4cfa80b080b6800373)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.0 ([#3797](https://github.com/homarr-labs/homarr/issues/3797)) ([a4914d0](https://github.com/homarr-labs/homarr/commit/a4914d09fd6c9fa6a602f9f76b71c096369a34cd)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.1 ([#3809](https://github.com/homarr-labs/homarr/issues/3809)) ([ef40e75](https://github.com/homarr-labs/homarr/commit/ef40e7581896df4371c1f13487f3830bb57f6886)) -* **deps:** update dependency jotai to ^2.13.0 ([#3763](https://github.com/homarr-labs/homarr/issues/3763)) ([c8d59d8](https://github.com/homarr-labs/homarr/commit/c8d59d88e5872783e767156eb063f329901fff6f)) -* **deps:** update dependency sass to ^1.90.0 ([#3794](https://github.com/homarr-labs/homarr/issues/3794)) ([bb681f7](https://github.com/homarr-labs/homarr/commit/bb681f7b5ebb4a0858dac40eacfcc809c04b3d5e)) -* **deps:** update dependency trpc-to-openapi to ^2.4.0 ([#3734](https://github.com/homarr-labs/homarr/issues/3734)) ([e45bef3](https://github.com/homarr-labs/homarr/commit/e45bef317a6ffae05d7a1685b1e6164e2ed09921)) -* **deps:** update dependency typescript-eslint to ^8.39.0 ([#3781](https://github.com/homarr-labs/homarr/issues/3781)) ([1b5ccb5](https://github.com/homarr-labs/homarr/commit/1b5ccb529358836682a1cccd4a3da14f612884b9)) -* **deps:** update dependency video.js to ^8.23.4 ([#3808](https://github.com/homarr-labs/homarr/issues/3808)) ([60accd6](https://github.com/homarr-labs/homarr/commit/60accd66f635ddb2f8c7a73faa865ee47aa40721)) -* **deps:** update mantine monorepo to ^8.2.3 ([#3789](https://github.com/homarr-labs/homarr/issues/3789)) ([e6be8e1](https://github.com/homarr-labs/homarr/commit/e6be8e1db3d843e3d0e5b6d54c64999fd45f103d)) -* **deps:** update mantine monorepo to ^8.2.4 ([#3803](https://github.com/homarr-labs/homarr/issues/3803)) ([ffa6290](https://github.com/homarr-labs/homarr/commit/ffa629064cdf202849d6f9c0ce645c6077c63e49)) -* **deps:** update nextjs monorepo to v15.4.6 ([#3799](https://github.com/homarr-labs/homarr/issues/3799)) ([d327039](https://github.com/homarr-labs/homarr/commit/d32703910e0228a70a55a84ab712d6bd58fe7149)) -* **deps:** update tanstack-query monorepo to ^5.84.2 ([#3810](https://github.com/homarr-labs/homarr/issues/3810)) ([d23196b](https://github.com/homarr-labs/homarr/commit/d23196b43034349d92cb9277633dd06b15ee0b7d)) -* **deps:** update testcontainers-node monorepo to ^11.5.0 ([#3738](https://github.com/homarr-labs/homarr/issues/3738)) ([4bc053c](https://github.com/homarr-labs/homarr/commit/4bc053cc17d5a38db4255f9913e389fe86831676)) -* **deps:** update testcontainers-node monorepo to ^11.5.1 ([#3796](https://github.com/homarr-labs/homarr/issues/3796)) ([ed950e9](https://github.com/homarr-labs/homarr/commit/ed950e9302450f33150d9800bc66e712bf8f6724)) -* **deps:** update trpc monorepo to ^11.4.4 ([#3777](https://github.com/homarr-labs/homarr/issues/3777)) ([cc6d421](https://github.com/homarr-labs/homarr/commit/cc6d421e7db52b994e9e62fa1f828c72b5a20d72)) -* **groups:** saving permissions with none activated causes error ([#3739](https://github.com/homarr-labs/homarr/issues/3739)) ([59c092f](https://github.com/homarr-labs/homarr/commit/59c092f8000f9a4e9fd70bde4176697dabb2e1c9)) -* not hardcode hero banner scroll ([#3741](https://github.com/homarr-labs/homarr/issues/3741)) ([001f7a2](https://github.com/homarr-labs/homarr/commit/001f7a2a165fade9deaafb4cb319aa27926685e5)) -* **opnsense:** switch secrets to api-key key and secret for easier understanding ([#3744](https://github.com/homarr-labs/homarr/issues/3744)) ([7f47468](https://github.com/homarr-labs/homarr/commit/7f474683a5e5b9ada978c055e57cd2b4114e17e0)) -* some integrations handle parse errors wrong ([#3746](https://github.com/homarr-labs/homarr/issues/3746)) ([72e976e](https://github.com/homarr-labs/homarr/commit/72e976ee5ea28e549b7674c71b9a284e905e455b)) +- **deps:** update dependency @gitbeaker/rest to ^43.4.0 ([#3806](https://github.com/homarr-labs/homarr/issues/3806)) ([c73ce1f](https://github.com/homarr-labs/homarr/commit/c73ce1f704aa1fcbc6beac4cfa80b080b6800373)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.0 ([#3797](https://github.com/homarr-labs/homarr/issues/3797)) ([a4914d0](https://github.com/homarr-labs/homarr/commit/a4914d09fd6c9fa6a602f9f76b71c096369a34cd)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.1 ([#3809](https://github.com/homarr-labs/homarr/issues/3809)) ([ef40e75](https://github.com/homarr-labs/homarr/commit/ef40e7581896df4371c1f13487f3830bb57f6886)) +- **deps:** update dependency jotai to ^2.13.0 ([#3763](https://github.com/homarr-labs/homarr/issues/3763)) ([c8d59d8](https://github.com/homarr-labs/homarr/commit/c8d59d88e5872783e767156eb063f329901fff6f)) +- **deps:** update dependency sass to ^1.90.0 ([#3794](https://github.com/homarr-labs/homarr/issues/3794)) ([bb681f7](https://github.com/homarr-labs/homarr/commit/bb681f7b5ebb4a0858dac40eacfcc809c04b3d5e)) +- **deps:** update dependency trpc-to-openapi to ^2.4.0 ([#3734](https://github.com/homarr-labs/homarr/issues/3734)) ([e45bef3](https://github.com/homarr-labs/homarr/commit/e45bef317a6ffae05d7a1685b1e6164e2ed09921)) +- **deps:** update dependency typescript-eslint to ^8.39.0 ([#3781](https://github.com/homarr-labs/homarr/issues/3781)) ([1b5ccb5](https://github.com/homarr-labs/homarr/commit/1b5ccb529358836682a1cccd4a3da14f612884b9)) +- **deps:** update dependency video.js to ^8.23.4 ([#3808](https://github.com/homarr-labs/homarr/issues/3808)) ([60accd6](https://github.com/homarr-labs/homarr/commit/60accd66f635ddb2f8c7a73faa865ee47aa40721)) +- **deps:** update mantine monorepo to ^8.2.3 ([#3789](https://github.com/homarr-labs/homarr/issues/3789)) ([e6be8e1](https://github.com/homarr-labs/homarr/commit/e6be8e1db3d843e3d0e5b6d54c64999fd45f103d)) +- **deps:** update mantine monorepo to ^8.2.4 ([#3803](https://github.com/homarr-labs/homarr/issues/3803)) ([ffa6290](https://github.com/homarr-labs/homarr/commit/ffa629064cdf202849d6f9c0ce645c6077c63e49)) +- **deps:** update nextjs monorepo to v15.4.6 ([#3799](https://github.com/homarr-labs/homarr/issues/3799)) ([d327039](https://github.com/homarr-labs/homarr/commit/d32703910e0228a70a55a84ab712d6bd58fe7149)) +- **deps:** update tanstack-query monorepo to ^5.84.2 ([#3810](https://github.com/homarr-labs/homarr/issues/3810)) ([d23196b](https://github.com/homarr-labs/homarr/commit/d23196b43034349d92cb9277633dd06b15ee0b7d)) +- **deps:** update testcontainers-node monorepo to ^11.5.0 ([#3738](https://github.com/homarr-labs/homarr/issues/3738)) ([4bc053c](https://github.com/homarr-labs/homarr/commit/4bc053cc17d5a38db4255f9913e389fe86831676)) +- **deps:** update testcontainers-node monorepo to ^11.5.1 ([#3796](https://github.com/homarr-labs/homarr/issues/3796)) ([ed950e9](https://github.com/homarr-labs/homarr/commit/ed950e9302450f33150d9800bc66e712bf8f6724)) +- **deps:** update trpc monorepo to ^11.4.4 ([#3777](https://github.com/homarr-labs/homarr/issues/3777)) ([cc6d421](https://github.com/homarr-labs/homarr/commit/cc6d421e7db52b994e9e62fa1f828c72b5a20d72)) +- **groups:** saving permissions with none activated causes error ([#3739](https://github.com/homarr-labs/homarr/issues/3739)) ([59c092f](https://github.com/homarr-labs/homarr/commit/59c092f8000f9a4e9fd70bde4176697dabb2e1c9)) +- not hardcode hero banner scroll ([#3741](https://github.com/homarr-labs/homarr/issues/3741)) ([001f7a2](https://github.com/homarr-labs/homarr/commit/001f7a2a165fade9deaafb4cb319aa27926685e5)) +- **opnsense:** switch secrets to api-key key and secret for easier understanding ([#3744](https://github.com/homarr-labs/homarr/issues/3744)) ([7f47468](https://github.com/homarr-labs/homarr/commit/7f474683a5e5b9ada978c055e57cd2b4114e17e0)) +- some integrations handle parse errors wrong ([#3746](https://github.com/homarr-labs/homarr/issues/3746)) ([72e976e](https://github.com/homarr-labs/homarr/commit/72e976ee5ea28e549b7674c71b9a284e905e455b)) ## [1.31.0](https://github.com/homarr-labs/homarr/compare/v1.30.1...v1.31.0) (2025-08-01) ### Features -* OPNsense integration and widget ([#3424](https://github.com/homarr-labs/homarr/issues/3424)) ([1dc1854](https://github.com/homarr-labs/homarr/commit/1dc1854cbfa39f4f22755cb84e1d6882e7e73721)) -* **releases-widget:** add `Mark as read` action to mark releases as seen ([#3676](https://github.com/homarr-labs/homarr/issues/3676)) ([f63e646](https://github.com/homarr-labs/homarr/commit/f63e64627c79004b1e1bbb5a525fdde58f803da7)) -* **releases-widget:** add `Select/Deselect All` to `import from docker` screen ([#3674](https://github.com/homarr-labs/homarr/issues/3674)) ([949c7a4](https://github.com/homarr-labs/homarr/commit/949c7a40d934b2d58a24bf9842f44703e73474ee)) -* **releases-widget:** add new providers, Github Packages, linuxserver.io and Quay ([#3607](https://github.com/homarr-labs/homarr/issues/3607)) ([c92bbd2](https://github.com/homarr-labs/homarr/commit/c92bbd2da062221c3b5464838ad715c31a9d07b0)) -* **releases-widget:** Allow to display only the icon ([#3695](https://github.com/homarr-labs/homarr/issues/3695)) ([03adf53](https://github.com/homarr-labs/homarr/commit/03adf538b03270404956dc16b191069f913e54d1)) +- OPNsense integration and widget ([#3424](https://github.com/homarr-labs/homarr/issues/3424)) ([1dc1854](https://github.com/homarr-labs/homarr/commit/1dc1854cbfa39f4f22755cb84e1d6882e7e73721)) +- **releases-widget:** add `Mark as read` action to mark releases as seen ([#3676](https://github.com/homarr-labs/homarr/issues/3676)) ([f63e646](https://github.com/homarr-labs/homarr/commit/f63e64627c79004b1e1bbb5a525fdde58f803da7)) +- **releases-widget:** add `Select/Deselect All` to `import from docker` screen ([#3674](https://github.com/homarr-labs/homarr/issues/3674)) ([949c7a4](https://github.com/homarr-labs/homarr/commit/949c7a40d934b2d58a24bf9842f44703e73474ee)) +- **releases-widget:** add new providers, Github Packages, linuxserver.io and Quay ([#3607](https://github.com/homarr-labs/homarr/issues/3607)) ([c92bbd2](https://github.com/homarr-labs/homarr/commit/c92bbd2da062221c3b5464838ad715c31a9d07b0)) +- **releases-widget:** Allow to display only the icon ([#3695](https://github.com/homarr-labs/homarr/issues/3695)) ([03adf53](https://github.com/homarr-labs/homarr/commit/03adf538b03270404956dc16b191069f913e54d1)) ### Bug Fixes -* characters are not considered Symbols when entering a new password ([#3689](https://github.com/homarr-labs/homarr/issues/3689)) ([6a819e3](https://github.com/homarr-labs/homarr/commit/6a819e38edca9f95b926a0162abdb6b873ddec08)) -* **deps:** update dependency drizzle-orm to ^0.44.4 ([#3708](https://github.com/homarr-labs/homarr/issues/3708)) ([6126fac](https://github.com/homarr-labs/homarr/commit/6126fac915197c19ea6d448da8c4fc1b06b1383b)) -* **deps:** update dependency ioredis to v5.7.0 ([#3718](https://github.com/homarr-labs/homarr/issues/3718)) ([4f9ecae](https://github.com/homarr-labs/homarr/commit/4f9ecae10406be4f6176947b517706843bd1c06d)) -* **deps:** update dependency ldapts to v8.0.9 ([#3703](https://github.com/homarr-labs/homarr/issues/3703)) ([1aecf4f](https://github.com/homarr-labs/homarr/commit/1aecf4f90d4776bfa93b6f601fca16a7da8ffaba)) -* **deps:** update dependency mysql2 to v3.14.3 ([#3711](https://github.com/homarr-labs/homarr/issues/3711)) ([952d4f7](https://github.com/homarr-labs/homarr/commit/952d4f71c9197cd88fa44ce5dbcf7d89f4c482d3)) -* **deps:** update dependency swagger-ui-react to ^5.27.1 ([#3725](https://github.com/homarr-labs/homarr/issues/3725)) ([ab5e08a](https://github.com/homarr-labs/homarr/commit/ab5e08a4b09845e3aa4818214bc0f9ce830a2942)) -* **deps:** update dependency undici to v7.13.0 ([#3717](https://github.com/homarr-labs/homarr/issues/3717)) ([b0bbd0d](https://github.com/homarr-labs/homarr/commit/b0bbd0d87ad6df7a9be83296060d8b0be6c091e0)) -* **deps:** update mantine monorepo to ^8.2.2 ([#3715](https://github.com/homarr-labs/homarr/issues/3715)) ([1835641](https://github.com/homarr-labs/homarr/commit/183564176c9421faea70dff199d0b6f81325bf70)) -* **deps:** update nextjs monorepo to v15.4.5 ([#3712](https://github.com/homarr-labs/homarr/issues/3712)) ([d0a112c](https://github.com/homarr-labs/homarr/commit/d0a112c7919cbcff9aaf2cc6b2dec8fd562246db)) -* **deps:** update react monorepo to v19.1.1 ([#3706](https://github.com/homarr-labs/homarr/issues/3706)) ([0dc1f7c](https://github.com/homarr-labs/homarr/commit/0dc1f7cf14c0ca49d5eb8d37060773c3dab4834a)) -* **deps:** update tanstack-query monorepo to ^5.83.1 ([#3719](https://github.com/homarr-labs/homarr/issues/3719)) ([f4e3713](https://github.com/homarr-labs/homarr/commit/f4e37134d806dac719012cb4dee19fb7e5daf7f2)) -* **deps:** update tanstack-query monorepo to ^5.84.0 ([#3723](https://github.com/homarr-labs/homarr/issues/3723)) ([e7b2169](https://github.com/homarr-labs/homarr/commit/e7b21697efb0f90c3539152beaea94416cbb6fef)) -* **deps:** update tanstack-query monorepo to ^5.84.1 ([#3729](https://github.com/homarr-labs/homarr/issues/3729)) ([511551a](https://github.com/homarr-labs/homarr/commit/511551aee7d5be9dadb70c596c5addbb646651cb)) +- characters are not considered Symbols when entering a new password ([#3689](https://github.com/homarr-labs/homarr/issues/3689)) ([6a819e3](https://github.com/homarr-labs/homarr/commit/6a819e38edca9f95b926a0162abdb6b873ddec08)) +- **deps:** update dependency drizzle-orm to ^0.44.4 ([#3708](https://github.com/homarr-labs/homarr/issues/3708)) ([6126fac](https://github.com/homarr-labs/homarr/commit/6126fac915197c19ea6d448da8c4fc1b06b1383b)) +- **deps:** update dependency ioredis to v5.7.0 ([#3718](https://github.com/homarr-labs/homarr/issues/3718)) ([4f9ecae](https://github.com/homarr-labs/homarr/commit/4f9ecae10406be4f6176947b517706843bd1c06d)) +- **deps:** update dependency ldapts to v8.0.9 ([#3703](https://github.com/homarr-labs/homarr/issues/3703)) ([1aecf4f](https://github.com/homarr-labs/homarr/commit/1aecf4f90d4776bfa93b6f601fca16a7da8ffaba)) +- **deps:** update dependency mysql2 to v3.14.3 ([#3711](https://github.com/homarr-labs/homarr/issues/3711)) ([952d4f7](https://github.com/homarr-labs/homarr/commit/952d4f71c9197cd88fa44ce5dbcf7d89f4c482d3)) +- **deps:** update dependency swagger-ui-react to ^5.27.1 ([#3725](https://github.com/homarr-labs/homarr/issues/3725)) ([ab5e08a](https://github.com/homarr-labs/homarr/commit/ab5e08a4b09845e3aa4818214bc0f9ce830a2942)) +- **deps:** update dependency undici to v7.13.0 ([#3717](https://github.com/homarr-labs/homarr/issues/3717)) ([b0bbd0d](https://github.com/homarr-labs/homarr/commit/b0bbd0d87ad6df7a9be83296060d8b0be6c091e0)) +- **deps:** update mantine monorepo to ^8.2.2 ([#3715](https://github.com/homarr-labs/homarr/issues/3715)) ([1835641](https://github.com/homarr-labs/homarr/commit/183564176c9421faea70dff199d0b6f81325bf70)) +- **deps:** update nextjs monorepo to v15.4.5 ([#3712](https://github.com/homarr-labs/homarr/issues/3712)) ([d0a112c](https://github.com/homarr-labs/homarr/commit/d0a112c7919cbcff9aaf2cc6b2dec8fd562246db)) +- **deps:** update react monorepo to v19.1.1 ([#3706](https://github.com/homarr-labs/homarr/issues/3706)) ([0dc1f7c](https://github.com/homarr-labs/homarr/commit/0dc1f7cf14c0ca49d5eb8d37060773c3dab4834a)) +- **deps:** update tanstack-query monorepo to ^5.83.1 ([#3719](https://github.com/homarr-labs/homarr/issues/3719)) ([f4e3713](https://github.com/homarr-labs/homarr/commit/f4e37134d806dac719012cb4dee19fb7e5daf7f2)) +- **deps:** update tanstack-query monorepo to ^5.84.0 ([#3723](https://github.com/homarr-labs/homarr/issues/3723)) ([e7b2169](https://github.com/homarr-labs/homarr/commit/e7b21697efb0f90c3539152beaea94416cbb6fef)) +- **deps:** update tanstack-query monorepo to ^5.84.1 ([#3729](https://github.com/homarr-labs/homarr/issues/3729)) ([511551a](https://github.com/homarr-labs/homarr/commit/511551aee7d5be9dadb70c596c5addbb646651cb)) ### Reverts -* "feat(ping): ignore certificate error and show request durati… ([#3680](https://github.com/homarr-labs/homarr/issues/3680)) ([8eb44c9](https://github.com/homarr-labs/homarr/commit/8eb44c9f23584078b22605dac569387713dcd173)) +- "feat(ping): ignore certificate error and show request durati… ([#3680](https://github.com/homarr-labs/homarr/issues/3680)) ([8eb44c9](https://github.com/homarr-labs/homarr/commit/8eb44c9f23584078b22605dac569387713dcd173)) ## [1.30.1](https://github.com/homarr-labs/homarr/compare/v1.30.0...v1.30.1) (2025-07-25) ### Bug Fixes -* [#3667](https://github.com/homarr-labs/homarr/issues/3667) plex media releases ([#3682](https://github.com/homarr-labs/homarr/issues/3682)) ([588c134](https://github.com/homarr-labs/homarr/commit/588c134d913f6811f7ed39d1954b586acc294932)) -* [#3678](https://github.com/homarr-labs/homarr/issues/3678) season number badge calendar ([#3681](https://github.com/homarr-labs/homarr/issues/3681)) ([470448e](https://github.com/homarr-labs/homarr/commit/470448e5fc1243dc78539dd8da87a974f504252a)) -* **deps:** update dependency @ctrl/deluge to ^7.1.1 ([#3677](https://github.com/homarr-labs/homarr/issues/3677)) ([04c15de](https://github.com/homarr-labs/homarr/commit/04c15de0c87be963f333ccb6aa1932c445793672)) -* **deps:** update dependency dotenv to ^17.2.1 ([#3684](https://github.com/homarr-labs/homarr/issues/3684)) ([d3fba3e](https://github.com/homarr-labs/homarr/commit/d3fba3eff4fd1fff3e86090436ecfd2fbcd93c28)) -* **deps:** update dependency ldapts to v8.0.8 ([#3665](https://github.com/homarr-labs/homarr/issues/3665)) ([5a28535](https://github.com/homarr-labs/homarr/commit/5a28535f59f6ea1928a941d5c11050752dd3ecc9)) -* **deps:** update dependency typescript-eslint to ^8.38.0 ([#3668](https://github.com/homarr-labs/homarr/issues/3668)) ([50a7d24](https://github.com/homarr-labs/homarr/commit/50a7d24b1b3a7cbfa6195525b10b994709b0beb3)) -* **deps:** update mantine monorepo to ^8.2.1 ([#3666](https://github.com/homarr-labs/homarr/issues/3666)) ([9cdffc7](https://github.com/homarr-labs/homarr/commit/9cdffc7ead2668ed259c1a38c774a3efea5a1f0e)) -* **deps:** update nextjs monorepo to v15.4.3 ([#3672](https://github.com/homarr-labs/homarr/issues/3672)) ([0094ec2](https://github.com/homarr-labs/homarr/commit/0094ec25677ca97f77920018c18f18a4b84812f8)) -* **deps:** update nextjs monorepo to v15.4.4 ([#3683](https://github.com/homarr-labs/homarr/issues/3683)) ([abb011f](https://github.com/homarr-labs/homarr/commit/abb011ff9a7b930dad2c382c4e454fba29633364)) -* **deps:** update testcontainers-node monorepo to ^11.3.2 ([#3671](https://github.com/homarr-labs/homarr/issues/3671)) ([d218170](https://github.com/homarr-labs/homarr/commit/d218170ec28a70b80c521efd1482164087d46e05)) -* **deps:** update testcontainers-node monorepo to ^11.4.0 ([#3679](https://github.com/homarr-labs/homarr/issues/3679)) ([e858bad](https://github.com/homarr-labs/homarr/commit/e858bad2eda8847269c1beee4cfbf957fa318fe4)) +- [#3667](https://github.com/homarr-labs/homarr/issues/3667) plex media releases ([#3682](https://github.com/homarr-labs/homarr/issues/3682)) ([588c134](https://github.com/homarr-labs/homarr/commit/588c134d913f6811f7ed39d1954b586acc294932)) +- [#3678](https://github.com/homarr-labs/homarr/issues/3678) season number badge calendar ([#3681](https://github.com/homarr-labs/homarr/issues/3681)) ([470448e](https://github.com/homarr-labs/homarr/commit/470448e5fc1243dc78539dd8da87a974f504252a)) +- **deps:** update dependency @ctrl/deluge to ^7.1.1 ([#3677](https://github.com/homarr-labs/homarr/issues/3677)) ([04c15de](https://github.com/homarr-labs/homarr/commit/04c15de0c87be963f333ccb6aa1932c445793672)) +- **deps:** update dependency dotenv to ^17.2.1 ([#3684](https://github.com/homarr-labs/homarr/issues/3684)) ([d3fba3e](https://github.com/homarr-labs/homarr/commit/d3fba3eff4fd1fff3e86090436ecfd2fbcd93c28)) +- **deps:** update dependency ldapts to v8.0.8 ([#3665](https://github.com/homarr-labs/homarr/issues/3665)) ([5a28535](https://github.com/homarr-labs/homarr/commit/5a28535f59f6ea1928a941d5c11050752dd3ecc9)) +- **deps:** update dependency typescript-eslint to ^8.38.0 ([#3668](https://github.com/homarr-labs/homarr/issues/3668)) ([50a7d24](https://github.com/homarr-labs/homarr/commit/50a7d24b1b3a7cbfa6195525b10b994709b0beb3)) +- **deps:** update mantine monorepo to ^8.2.1 ([#3666](https://github.com/homarr-labs/homarr/issues/3666)) ([9cdffc7](https://github.com/homarr-labs/homarr/commit/9cdffc7ead2668ed259c1a38c774a3efea5a1f0e)) +- **deps:** update nextjs monorepo to v15.4.3 ([#3672](https://github.com/homarr-labs/homarr/issues/3672)) ([0094ec2](https://github.com/homarr-labs/homarr/commit/0094ec25677ca97f77920018c18f18a4b84812f8)) +- **deps:** update nextjs monorepo to v15.4.4 ([#3683](https://github.com/homarr-labs/homarr/issues/3683)) ([abb011f](https://github.com/homarr-labs/homarr/commit/abb011ff9a7b930dad2c382c4e454fba29633364)) +- **deps:** update testcontainers-node monorepo to ^11.3.2 ([#3671](https://github.com/homarr-labs/homarr/issues/3671)) ([d218170](https://github.com/homarr-labs/homarr/commit/d218170ec28a70b80c521efd1482164087d46e05)) +- **deps:** update testcontainers-node monorepo to ^11.4.0 ([#3679](https://github.com/homarr-labs/homarr/issues/3679)) ([e858bad](https://github.com/homarr-labs/homarr/commit/e858bad2eda8847269c1beee4cfbf957fa318fe4)) ## [1.30.0](https://github.com/homarr-labs/homarr/compare/v1.29.0...v1.30.0) (2025-07-21) ### Features -* **infra:** add external redis ([#3639](https://github.com/homarr-labs/homarr/issues/3639)) ([8e96032](https://github.com/homarr-labs/homarr/commit/8e960324bcc43a64100fd9c6c1fd6822c7759160)) -* **widgets:** add media release widget ([#3219](https://github.com/homarr-labs/homarr/issues/3219)) ([66ebb50](https://github.com/homarr-labs/homarr/commit/66ebb5061fd219f9c804ef3a6bbe3372d296f740)) +- **infra:** add external redis ([#3639](https://github.com/homarr-labs/homarr/issues/3639)) ([8e96032](https://github.com/homarr-labs/homarr/commit/8e960324bcc43a64100fd9c6c1fd6822c7759160)) +- **widgets:** add media release widget ([#3219](https://github.com/homarr-labs/homarr/issues/3219)) ([66ebb50](https://github.com/homarr-labs/homarr/commit/66ebb5061fd219f9c804ef3a6bbe3372d296f740)) ### Bug Fixes -* **deps:** update dependency @gitbeaker/rest to v43 ([#3623](https://github.com/homarr-labs/homarr/issues/3623)) ([732bce7](https://github.com/homarr-labs/homarr/commit/732bce72aee6c99d0ee94d04e173d378c2552a16)) -* **deps:** update dependency @tabler/icons-react to ^3.34.1 ([#3661](https://github.com/homarr-labs/homarr/issues/3661)) ([bf88f0d](https://github.com/homarr-labs/homarr/commit/bf88f0d0918b4073a5770ab3589e00e5f89cacf1)) -* **deps:** update nextjs monorepo to v15.4.2 ([#3654](https://github.com/homarr-labs/homarr/issues/3654)) ([42301b4](https://github.com/homarr-labs/homarr/commit/42301b4a1ed9e9f638b449a460862db9cd7ed50b)) -* **deps:** update testcontainers-node monorepo to ^11.3.0 ([#3652](https://github.com/homarr-labs/homarr/issues/3652)) ([2394159](https://github.com/homarr-labs/homarr/commit/2394159f8b546e8b6e2d3cdc7c6bd0f75483209c)) -* **deps:** update testcontainers-node monorepo to ^11.3.1 ([#3659](https://github.com/homarr-labs/homarr/issues/3659)) ([98f8279](https://github.com/homarr-labs/homarr/commit/98f8279b61013c312d492522e317bcf93f10e2a6)) -* improved import from docker parsing ([#3642](https://github.com/homarr-labs/homarr/issues/3642)) ([36b0f57](https://github.com/homarr-labs/homarr/commit/36b0f576e5a00726d76695fd3300710be6f925f8)) -* **security:** upgrade eslint-config-prettier to latest version without malicious code ([ecda928](https://github.com/homarr-labs/homarr/commit/ecda928bef407c67f01ce798c5f7a086cbd0dd9c)) +- **deps:** update dependency @gitbeaker/rest to v43 ([#3623](https://github.com/homarr-labs/homarr/issues/3623)) ([732bce7](https://github.com/homarr-labs/homarr/commit/732bce72aee6c99d0ee94d04e173d378c2552a16)) +- **deps:** update dependency @tabler/icons-react to ^3.34.1 ([#3661](https://github.com/homarr-labs/homarr/issues/3661)) ([bf88f0d](https://github.com/homarr-labs/homarr/commit/bf88f0d0918b4073a5770ab3589e00e5f89cacf1)) +- **deps:** update nextjs monorepo to v15.4.2 ([#3654](https://github.com/homarr-labs/homarr/issues/3654)) ([42301b4](https://github.com/homarr-labs/homarr/commit/42301b4a1ed9e9f638b449a460862db9cd7ed50b)) +- **deps:** update testcontainers-node monorepo to ^11.3.0 ([#3652](https://github.com/homarr-labs/homarr/issues/3652)) ([2394159](https://github.com/homarr-labs/homarr/commit/2394159f8b546e8b6e2d3cdc7c6bd0f75483209c)) +- **deps:** update testcontainers-node monorepo to ^11.3.1 ([#3659](https://github.com/homarr-labs/homarr/issues/3659)) ([98f8279](https://github.com/homarr-labs/homarr/commit/98f8279b61013c312d492522e317bcf93f10e2a6)) +- improved import from docker parsing ([#3642](https://github.com/homarr-labs/homarr/issues/3642)) ([36b0f57](https://github.com/homarr-labs/homarr/commit/36b0f576e5a00726d76695fd3300710be6f925f8)) +- **security:** upgrade eslint-config-prettier to latest version without malicious code ([ecda928](https://github.com/homarr-labs/homarr/commit/ecda928bef407c67f01ce798c5f7a086cbd0dd9c)) ## [1.29.0](https://github.com/homarr-labs/homarr/compare/v1.28.1...v1.29.0) (2025-07-18) ### Features -* **logs:** add log level selection to tools ui ([#3565](https://github.com/homarr-labs/homarr/issues/3565)) ([c4e5c30](https://github.com/homarr-labs/homarr/commit/c4e5c3002bd1c746cee496b5ba6d19159104b7f8)) -* **releases-widget:** show project description when release description is missing ([#3635](https://github.com/homarr-labs/homarr/issues/3635)) ([47806c1](https://github.com/homarr-labs/homarr/commit/47806c180ebc960eb1731c02ec6af42156831bd0)) +- **logs:** add log level selection to tools ui ([#3565](https://github.com/homarr-labs/homarr/issues/3565)) ([c4e5c30](https://github.com/homarr-labs/homarr/commit/c4e5c3002bd1c746cee496b5ba6d19159104b7f8)) +- **releases-widget:** show project description when release description is missing ([#3635](https://github.com/homarr-labs/homarr/issues/3635)) ([47806c1](https://github.com/homarr-labs/homarr/commit/47806c180ebc960eb1731c02ec6af42156831bd0)) ### Bug Fixes -* **deps:** update dependency drizzle-orm to ^0.44.3 ([#3629](https://github.com/homarr-labs/homarr/issues/3629)) ([e7012b6](https://github.com/homarr-labs/homarr/commit/e7012b6da496a0f4b7aad527d1d05cd03d0bfcda)) -* **deps:** update dependency eslint-config-prettier to ^10.1.7 ([#3651](https://github.com/homarr-labs/homarr/issues/3651)) ([1cc6ecb](https://github.com/homarr-labs/homarr/commit/1cc6ecbce29348cf891dd8cfc29d4238ff5f7f78)) -* **deps:** update dependency ldapts to v8.0.6 ([#3628](https://github.com/homarr-labs/homarr/issues/3628)) ([71dee5c](https://github.com/homarr-labs/homarr/commit/71dee5ca4bca04acc9c295c373d1209641ef3d99)) -* **deps:** update dependency swagger-ui-react to ^5.27.0 ([#3638](https://github.com/homarr-labs/homarr/issues/3638)) ([ee983e8](https://github.com/homarr-labs/homarr/commit/ee983e8241d2f32c1dcbbea4930b18442f32a5bf)) -* **deps:** update dependency typescript-eslint to ^8.37.0 ([#3631](https://github.com/homarr-labs/homarr/issues/3631)) ([d6ea8e8](https://github.com/homarr-labs/homarr/commit/d6ea8e8993d130a03592473744e74be7b4c54a79)) -* **deps:** update dependency undici to v7.12.0 ([#3650](https://github.com/homarr-labs/homarr/issues/3650)) ([cf0d2d3](https://github.com/homarr-labs/homarr/commit/cf0d2d3cdaf495d7786c45ba4c79d49f356c0e37)) -* **deps:** update nextjs monorepo to v15.4.1 ([#3632](https://github.com/homarr-labs/homarr/issues/3632)) ([39b025f](https://github.com/homarr-labs/homarr/commit/39b025f7633391c74aedeb4c4dca10d42fb3b4d8)) -* **deps:** update turbo monorepo to ^2.5.5 ([#3641](https://github.com/homarr-labs/homarr/issues/3641)) ([d4acb01](https://github.com/homarr-labs/homarr/commit/d4acb01efd6a9341fb5550a08def42d82c1f0b92)) +- **deps:** update dependency drizzle-orm to ^0.44.3 ([#3629](https://github.com/homarr-labs/homarr/issues/3629)) ([e7012b6](https://github.com/homarr-labs/homarr/commit/e7012b6da496a0f4b7aad527d1d05cd03d0bfcda)) +- **deps:** update dependency eslint-config-prettier to ^10.1.7 ([#3651](https://github.com/homarr-labs/homarr/issues/3651)) ([1cc6ecb](https://github.com/homarr-labs/homarr/commit/1cc6ecbce29348cf891dd8cfc29d4238ff5f7f78)) +- **deps:** update dependency ldapts to v8.0.6 ([#3628](https://github.com/homarr-labs/homarr/issues/3628)) ([71dee5c](https://github.com/homarr-labs/homarr/commit/71dee5ca4bca04acc9c295c373d1209641ef3d99)) +- **deps:** update dependency swagger-ui-react to ^5.27.0 ([#3638](https://github.com/homarr-labs/homarr/issues/3638)) ([ee983e8](https://github.com/homarr-labs/homarr/commit/ee983e8241d2f32c1dcbbea4930b18442f32a5bf)) +- **deps:** update dependency typescript-eslint to ^8.37.0 ([#3631](https://github.com/homarr-labs/homarr/issues/3631)) ([d6ea8e8](https://github.com/homarr-labs/homarr/commit/d6ea8e8993d130a03592473744e74be7b4c54a79)) +- **deps:** update dependency undici to v7.12.0 ([#3650](https://github.com/homarr-labs/homarr/issues/3650)) ([cf0d2d3](https://github.com/homarr-labs/homarr/commit/cf0d2d3cdaf495d7786c45ba4c79d49f356c0e37)) +- **deps:** update nextjs monorepo to v15.4.1 ([#3632](https://github.com/homarr-labs/homarr/issues/3632)) ([39b025f](https://github.com/homarr-labs/homarr/commit/39b025f7633391c74aedeb4c4dca10d42fb3b4d8)) +- **deps:** update turbo monorepo to ^2.5.5 ([#3641](https://github.com/homarr-labs/homarr/issues/3641)) ([d4acb01](https://github.com/homarr-labs/homarr/commit/d4acb01efd6a9341fb5550a08def42d82c1f0b92)) ## [1.28.1](https://github.com/homarr-labs/homarr/compare/v1.28.0...v1.28.1) (2025-07-12) ### Bug Fixes -* **deps:** update tiptap monorepo to v2.26.1 ([#3603](https://github.com/homarr-labs/homarr/issues/3603)) ([473a9f4](https://github.com/homarr-labs/homarr/commit/473a9f47f352a532128c1bf2c02490e8e4c6ca7c)) -* **releases-widget:** fixed bug with changing a missing provider ([#3605](https://github.com/homarr-labs/homarr/issues/3605)) ([5ecc4db](https://github.com/homarr-labs/homarr/commit/5ecc4db5dabcfd4f953f3b436527d34ea9191eef)) +- **deps:** update tiptap monorepo to v2.26.1 ([#3603](https://github.com/homarr-labs/homarr/issues/3603)) ([473a9f4](https://github.com/homarr-labs/homarr/commit/473a9f47f352a532128c1bf2c02490e8e4c6ca7c)) +- **releases-widget:** fixed bug with changing a missing provider ([#3605](https://github.com/homarr-labs/homarr/issues/3605)) ([5ecc4db](https://github.com/homarr-labs/homarr/commit/5ecc4db5dabcfd4f953f3b436527d34ea9191eef)) ## [1.28.0](https://github.com/homarr-labs/homarr/compare/v1.27.0...v1.28.0) (2025-07-11) ### Features -* **icon-color:** add icon color clear button ([#3593](https://github.com/homarr-labs/homarr/issues/3593)) ([5a8653d](https://github.com/homarr-labs/homarr/commit/5a8653d8500388d9392b150d62a56474c05843d7)) -* **notebook:** add placeholder, redo and undo button ([#3564](https://github.com/homarr-labs/homarr/issues/3564)) ([3411354](https://github.com/homarr-labs/homarr/commit/3411354677fedec6ff5b5b85eb25eacc94308425)) -* **ping:** ignore certificate error and show request duration ([#3546](https://github.com/homarr-labs/homarr/issues/3546)) ([1eb4731](https://github.com/homarr-labs/homarr/commit/1eb47311fa81184bd67830d0669d9f87d9922e70)) -* **releases-widget:** define providers as integrations ([#3253](https://github.com/homarr-labs/homarr/issues/3253)) ([5d8126d](https://github.com/homarr-labs/homarr/commit/5d8126d71eea61af9c023895cb911d24544f8066)) +- **icon-color:** add icon color clear button ([#3593](https://github.com/homarr-labs/homarr/issues/3593)) ([5a8653d](https://github.com/homarr-labs/homarr/commit/5a8653d8500388d9392b150d62a56474c05843d7)) +- **notebook:** add placeholder, redo and undo button ([#3564](https://github.com/homarr-labs/homarr/issues/3564)) ([3411354](https://github.com/homarr-labs/homarr/commit/3411354677fedec6ff5b5b85eb25eacc94308425)) +- **ping:** ignore certificate error and show request duration ([#3546](https://github.com/homarr-labs/homarr/issues/3546)) ([1eb4731](https://github.com/homarr-labs/homarr/commit/1eb47311fa81184bd67830d0669d9f87d9922e70)) +- **releases-widget:** define providers as integrations ([#3253](https://github.com/homarr-labs/homarr/issues/3253)) ([5d8126d](https://github.com/homarr-labs/homarr/commit/5d8126d71eea61af9c023895cb911d24544f8066)) ### Bug Fixes -* **bookmarks:** wrong widget icon ([#3572](https://github.com/homarr-labs/homarr/issues/3572)) ([fb57d46](https://github.com/homarr-labs/homarr/commit/fb57d46b573cc9798469540f4823cbf73afd21a5)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.5.0 ([#3585](https://github.com/homarr-labs/homarr/issues/3585)) ([ee286c9](https://github.com/homarr-labs/homarr/commit/ee286c95563c99297b5419c005550936ca96757b)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.5.1 ([#3586](https://github.com/homarr-labs/homarr/issues/3586)) ([7e92f1b](https://github.com/homarr-labs/homarr/commit/7e92f1bafadf1188ee3ddc9d2dc9904f103aab4e)) -* **deps:** update dependency dotenv to ^17.1.0 ([#3567](https://github.com/homarr-labs/homarr/issues/3567)) ([a369beb](https://github.com/homarr-labs/homarr/commit/a369beb248e2cac1f1dcf32421efb48f241700a6)) -* **deps:** update dependency dotenv to ^17.2.0 ([#3578](https://github.com/homarr-labs/homarr/issues/3578)) ([1724f9d](https://github.com/homarr-labs/homarr/commit/1724f9d26c5761e3195d336eb451dd47855266a4)) -* **deps:** update dependency ldapts to v8.0.5 ([#3559](https://github.com/homarr-labs/homarr/issues/3559)) ([8b9832b](https://github.com/homarr-labs/homarr/commit/8b9832b2b81dcc1a4f9081755defe44fc0f38a1d)) -* **deps:** update dependency mysql2 to v3.14.2 ([#3592](https://github.com/homarr-labs/homarr/issues/3592)) ([d68b80e](https://github.com/homarr-labs/homarr/commit/d68b80e6be38366860de84778a45e5a43aae06eb)) -* **deps:** update dependency node-cron to ^4.2.1 ([#3590](https://github.com/homarr-labs/homarr/issues/3590)) ([e21b236](https://github.com/homarr-labs/homarr/commit/e21b236d37f076654768e88bc7ef139a3e51abbc)) -* **deps:** update dependency swagger-ui-react to ^5.26.1 ([#3554](https://github.com/homarr-labs/homarr/issues/3554)) ([12f4e90](https://github.com/homarr-labs/homarr/commit/12f4e90e440a8ea1708a2a9ef64a851ef977bd6c)) -* **deps:** update dependency swagger-ui-react to ^5.26.2 ([#3558](https://github.com/homarr-labs/homarr/issues/3558)) ([57be43f](https://github.com/homarr-labs/homarr/commit/57be43f51b7ef306b962299789194de68ec9e8ea)) -* **deps:** update dependency typescript-eslint to ^8.36.0 ([#3563](https://github.com/homarr-labs/homarr/issues/3563)) ([7c0a742](https://github.com/homarr-labs/homarr/commit/7c0a7428d85d11f3d2226d809ba04671ca713b72)) -* **deps:** update dependency zod to ^3.25.75 ([#3555](https://github.com/homarr-labs/homarr/issues/3555)) ([e9a35ba](https://github.com/homarr-labs/homarr/commit/e9a35ba811bd1807d63c5f0c760d470b20f4410f)) -* **deps:** update dependency zod to ^3.25.76 ([#3569](https://github.com/homarr-labs/homarr/issues/3569)) ([c793bf1](https://github.com/homarr-labs/homarr/commit/c793bf1982c3a484176860cebad80c721acd597d)) -* **deps:** update dependency zod-validation-error to ^3.5.3 ([#3600](https://github.com/homarr-labs/homarr/issues/3600)) ([9020440](https://github.com/homarr-labs/homarr/commit/9020440193595a5b437464957d9a3745fb200c93)) -* **deps:** update mantine monorepo to ^8.1.3 ([#3560](https://github.com/homarr-labs/homarr/issues/3560)) ([1fe3450](https://github.com/homarr-labs/homarr/commit/1fe34505550f401be97c9d84c383ea70bf39b937)) -* **deps:** update tanstack-query monorepo to ^5.82.0 ([#3577](https://github.com/homarr-labs/homarr/issues/3577)) ([90f6a2d](https://github.com/homarr-labs/homarr/commit/90f6a2dd014a73cd0131781b6db56a1056e563b6)) -* **deps:** update tanstack-query monorepo to ^5.83.0 ([#3599](https://github.com/homarr-labs/homarr/issues/3599)) ([bd8ac62](https://github.com/homarr-labs/homarr/commit/bd8ac62c7af034525803410751bfd5ab72094f45)) -* **deps:** update testcontainers-node monorepo to ^11.1.0 ([#3550](https://github.com/homarr-labs/homarr/issues/3550)) ([b0bdf28](https://github.com/homarr-labs/homarr/commit/b0bdf28016bae2ccfab24cab6df5b4846d1a8f48)) -* **deps:** update testcontainers-node monorepo to ^11.2.0 ([#3556](https://github.com/homarr-labs/homarr/issues/3556)) ([824f443](https://github.com/homarr-labs/homarr/commit/824f443949e75ec3f3edacb9093faefbdec47ef4)) -* **deps:** update testcontainers-node monorepo to ^11.2.1 ([#3562](https://github.com/homarr-labs/homarr/issues/3562)) ([5d394c8](https://github.com/homarr-labs/homarr/commit/5d394c849f5f47b47c595f73763e89d0a5d6247a)) -* **deps:** update tiptap monorepo to v2.25.0 ([#3552](https://github.com/homarr-labs/homarr/issues/3552)) ([430dc58](https://github.com/homarr-labs/homarr/commit/430dc580682cf0885fcd0ef2b7b81a0dfdf93425)) -* **deps:** update tiptap monorepo to v2.25.1 ([#3591](https://github.com/homarr-labs/homarr/issues/3591)) ([661afa7](https://github.com/homarr-labs/homarr/commit/661afa72be96c629cad4ab7f6007214b54d8ef6a)) -* **deps:** update tiptap monorepo to v2.26.0 ([#3596](https://github.com/homarr-labs/homarr/issues/3596)) ([df5b6fc](https://github.com/homarr-labs/homarr/commit/df5b6fcb6a6215f5c1cf92e034e27f6e32405b3e)) -* unable to change certificate path for running from source ([#3582](https://github.com/homarr-labs/homarr/issues/3582)) ([f1143e5](https://github.com/homarr-labs/homarr/commit/f1143e54a06e00a348e37b5633fad4cb6390cff7)) +- **bookmarks:** wrong widget icon ([#3572](https://github.com/homarr-labs/homarr/issues/3572)) ([fb57d46](https://github.com/homarr-labs/homarr/commit/fb57d46b573cc9798469540f4823cbf73afd21a5)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.5.0 ([#3585](https://github.com/homarr-labs/homarr/issues/3585)) ([ee286c9](https://github.com/homarr-labs/homarr/commit/ee286c95563c99297b5419c005550936ca96757b)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.5.1 ([#3586](https://github.com/homarr-labs/homarr/issues/3586)) ([7e92f1b](https://github.com/homarr-labs/homarr/commit/7e92f1bafadf1188ee3ddc9d2dc9904f103aab4e)) +- **deps:** update dependency dotenv to ^17.1.0 ([#3567](https://github.com/homarr-labs/homarr/issues/3567)) ([a369beb](https://github.com/homarr-labs/homarr/commit/a369beb248e2cac1f1dcf32421efb48f241700a6)) +- **deps:** update dependency dotenv to ^17.2.0 ([#3578](https://github.com/homarr-labs/homarr/issues/3578)) ([1724f9d](https://github.com/homarr-labs/homarr/commit/1724f9d26c5761e3195d336eb451dd47855266a4)) +- **deps:** update dependency ldapts to v8.0.5 ([#3559](https://github.com/homarr-labs/homarr/issues/3559)) ([8b9832b](https://github.com/homarr-labs/homarr/commit/8b9832b2b81dcc1a4f9081755defe44fc0f38a1d)) +- **deps:** update dependency mysql2 to v3.14.2 ([#3592](https://github.com/homarr-labs/homarr/issues/3592)) ([d68b80e](https://github.com/homarr-labs/homarr/commit/d68b80e6be38366860de84778a45e5a43aae06eb)) +- **deps:** update dependency node-cron to ^4.2.1 ([#3590](https://github.com/homarr-labs/homarr/issues/3590)) ([e21b236](https://github.com/homarr-labs/homarr/commit/e21b236d37f076654768e88bc7ef139a3e51abbc)) +- **deps:** update dependency swagger-ui-react to ^5.26.1 ([#3554](https://github.com/homarr-labs/homarr/issues/3554)) ([12f4e90](https://github.com/homarr-labs/homarr/commit/12f4e90e440a8ea1708a2a9ef64a851ef977bd6c)) +- **deps:** update dependency swagger-ui-react to ^5.26.2 ([#3558](https://github.com/homarr-labs/homarr/issues/3558)) ([57be43f](https://github.com/homarr-labs/homarr/commit/57be43f51b7ef306b962299789194de68ec9e8ea)) +- **deps:** update dependency typescript-eslint to ^8.36.0 ([#3563](https://github.com/homarr-labs/homarr/issues/3563)) ([7c0a742](https://github.com/homarr-labs/homarr/commit/7c0a7428d85d11f3d2226d809ba04671ca713b72)) +- **deps:** update dependency zod to ^3.25.75 ([#3555](https://github.com/homarr-labs/homarr/issues/3555)) ([e9a35ba](https://github.com/homarr-labs/homarr/commit/e9a35ba811bd1807d63c5f0c760d470b20f4410f)) +- **deps:** update dependency zod to ^3.25.76 ([#3569](https://github.com/homarr-labs/homarr/issues/3569)) ([c793bf1](https://github.com/homarr-labs/homarr/commit/c793bf1982c3a484176860cebad80c721acd597d)) +- **deps:** update dependency zod-validation-error to ^3.5.3 ([#3600](https://github.com/homarr-labs/homarr/issues/3600)) ([9020440](https://github.com/homarr-labs/homarr/commit/9020440193595a5b437464957d9a3745fb200c93)) +- **deps:** update mantine monorepo to ^8.1.3 ([#3560](https://github.com/homarr-labs/homarr/issues/3560)) ([1fe3450](https://github.com/homarr-labs/homarr/commit/1fe34505550f401be97c9d84c383ea70bf39b937)) +- **deps:** update tanstack-query monorepo to ^5.82.0 ([#3577](https://github.com/homarr-labs/homarr/issues/3577)) ([90f6a2d](https://github.com/homarr-labs/homarr/commit/90f6a2dd014a73cd0131781b6db56a1056e563b6)) +- **deps:** update tanstack-query monorepo to ^5.83.0 ([#3599](https://github.com/homarr-labs/homarr/issues/3599)) ([bd8ac62](https://github.com/homarr-labs/homarr/commit/bd8ac62c7af034525803410751bfd5ab72094f45)) +- **deps:** update testcontainers-node monorepo to ^11.1.0 ([#3550](https://github.com/homarr-labs/homarr/issues/3550)) ([b0bdf28](https://github.com/homarr-labs/homarr/commit/b0bdf28016bae2ccfab24cab6df5b4846d1a8f48)) +- **deps:** update testcontainers-node monorepo to ^11.2.0 ([#3556](https://github.com/homarr-labs/homarr/issues/3556)) ([824f443](https://github.com/homarr-labs/homarr/commit/824f443949e75ec3f3edacb9093faefbdec47ef4)) +- **deps:** update testcontainers-node monorepo to ^11.2.1 ([#3562](https://github.com/homarr-labs/homarr/issues/3562)) ([5d394c8](https://github.com/homarr-labs/homarr/commit/5d394c849f5f47b47c595f73763e89d0a5d6247a)) +- **deps:** update tiptap monorepo to v2.25.0 ([#3552](https://github.com/homarr-labs/homarr/issues/3552)) ([430dc58](https://github.com/homarr-labs/homarr/commit/430dc580682cf0885fcd0ef2b7b81a0dfdf93425)) +- **deps:** update tiptap monorepo to v2.25.1 ([#3591](https://github.com/homarr-labs/homarr/issues/3591)) ([661afa7](https://github.com/homarr-labs/homarr/commit/661afa72be96c629cad4ab7f6007214b54d8ef6a)) +- **deps:** update tiptap monorepo to v2.26.0 ([#3596](https://github.com/homarr-labs/homarr/issues/3596)) ([df5b6fc](https://github.com/homarr-labs/homarr/commit/df5b6fcb6a6215f5c1cf92e034e27f6e32405b3e)) +- unable to change certificate path for running from source ([#3582](https://github.com/homarr-labs/homarr/issues/3582)) ([f1143e5](https://github.com/homarr-labs/homarr/commit/f1143e54a06e00a348e37b5633fad4cb6390cff7)) ## [1.27.0](https://github.com/homarr-labs/homarr/compare/v1.26.0...v1.27.0) (2025-07-04) ### Features -* **integrations:** add mock integration ([#3505](https://github.com/homarr-labs/homarr/issues/3505)) ([58d5b14](https://github.com/homarr-labs/homarr/commit/58d5b14c516583e79f9079899dfe6544acdc58f7)) -* **tasks:** allow management of job intervals and disabling them ([#3408](https://github.com/homarr-labs/homarr/issues/3408)) ([9398dd9](https://github.com/homarr-labs/homarr/commit/9398dd983cce00959af2a4885e92da6acfe2f57e)) +- **integrations:** add mock integration ([#3505](https://github.com/homarr-labs/homarr/issues/3505)) ([58d5b14](https://github.com/homarr-labs/homarr/commit/58d5b14c516583e79f9079899dfe6544acdc58f7)) +- **tasks:** allow management of job intervals and disabling them ([#3408](https://github.com/homarr-labs/homarr/issues/3408)) ([9398dd9](https://github.com/homarr-labs/homarr/commit/9398dd983cce00959af2a4885e92da6acfe2f57e)) ### Bug Fixes -* broken lockfile ([308d235](https://github.com/homarr-labs/homarr/commit/308d235fa9db658fb7c3f5a183f01c4f48f0546f)) -* **deps:** update dependency better-sqlite3 to ^12.2.0 ([#3503](https://github.com/homarr-labs/homarr/issues/3503)) ([c22a963](https://github.com/homarr-labs/homarr/commit/c22a963342c5613089b0a1a4034379cc80425602)) -* **deps:** update dependency dotenv to ^16.6.1 ([#3494](https://github.com/homarr-labs/homarr/issues/3494)) ([b880de8](https://github.com/homarr-labs/homarr/commit/b880de8a794a879a0c2b38cc46cb5412eedbb44e)) -* **deps:** update dependency dotenv to v17 ([#3499](https://github.com/homarr-labs/homarr/issues/3499)) ([fe87d97](https://github.com/homarr-labs/homarr/commit/fe87d978c4335a700e2859c648bf997a7c323a31)) -* **deps:** update dependency ldapts to v8.0.4 ([#3509](https://github.com/homarr-labs/homarr/issues/3509)) ([8d53801](https://github.com/homarr-labs/homarr/commit/8d53801f67b5458b5eb60b4ebcd6a923a60b7e5f)) -* **deps:** update dependency next-intl to v4.3.2 ([#3520](https://github.com/homarr-labs/homarr/issues/3520)) ([6fda939](https://github.com/homarr-labs/homarr/commit/6fda939a2d94120998eb1365134652eb00602937)) -* **deps:** update dependency next-intl to v4.3.3 ([#3521](https://github.com/homarr-labs/homarr/issues/3521)) ([ab9165f](https://github.com/homarr-labs/homarr/commit/ab9165f2cd885069c7389d62db187c3be240fd72)) -* **deps:** update dependency next-intl to v4.3.4 ([#3528](https://github.com/homarr-labs/homarr/issues/3528)) ([6005784](https://github.com/homarr-labs/homarr/commit/60057842842d393b8d9c5404d6c2ae85bc82b27c)) -* **deps:** update dependency node-cron to ^4.2.0 ([#3518](https://github.com/homarr-labs/homarr/issues/3518)) ([0f94ac4](https://github.com/homarr-labs/homarr/commit/0f94ac456eeacbc03183d635ea4c57b224cf8537)) -* **deps:** update dependency postcss-preset-mantine to ^1.18.0 ([#3510](https://github.com/homarr-labs/homarr/issues/3510)) ([01d0ffb](https://github.com/homarr-labs/homarr/commit/01d0ffb0d143a77c94c977873ad04f661c280eb7)) -* **deps:** update dependency swagger-ui-react to ^5.25.4 ([#3523](https://github.com/homarr-labs/homarr/issues/3523)) ([6c94d1a](https://github.com/homarr-labs/homarr/commit/6c94d1a10c495850958b6399a302eab582e9d40b)) -* **deps:** update dependency swagger-ui-react to ^5.26.0 ([#3527](https://github.com/homarr-labs/homarr/issues/3527)) ([9da66f5](https://github.com/homarr-labs/homarr/commit/9da66f5b1db88c196dbb6866f920f1a176305667)) -* **deps:** update dependency trpc-to-openapi to ^2.3.2 ([#3502](https://github.com/homarr-labs/homarr/issues/3502)) ([2ebc9f9](https://github.com/homarr-labs/homarr/commit/2ebc9f969b5a0c753622421cb5f0a81873ad4ae9)) -* **deps:** update dependency typescript-eslint to ^8.35.1 ([#3513](https://github.com/homarr-labs/homarr/issues/3513)) ([17fe293](https://github.com/homarr-labs/homarr/commit/17fe293a7c9e6dbc83bc8f585a54a8fdd8640973)) -* **deps:** update dependency ws to ^8.18.3 ([#3501](https://github.com/homarr-labs/homarr/issues/3501)) ([ed077d6](https://github.com/homarr-labs/homarr/commit/ed077d63db9a197510e8e139d40813a3854f39e9)) -* **deps:** update dependency zod to ^3.25.68 ([#3529](https://github.com/homarr-labs/homarr/issues/3529)) ([b375ec9](https://github.com/homarr-labs/homarr/commit/b375ec977e757bed14b6fb6a04a5b30fe481eaf9)) -* **deps:** update dependency zod to ^3.25.69 ([#3531](https://github.com/homarr-labs/homarr/issues/3531)) ([915eec1](https://github.com/homarr-labs/homarr/commit/915eec1b5e6d7383d36f2e67d86472c6a2932a9b)) -* **deps:** update dependency zod to ^3.25.71 ([#3534](https://github.com/homarr-labs/homarr/issues/3534)) ([95c8aad](https://github.com/homarr-labs/homarr/commit/95c8aadb0c98f116ff3e256c770636267da82fdc)) -* **deps:** update dependency zod to ^3.25.72 ([#3535](https://github.com/homarr-labs/homarr/issues/3535)) ([0858a42](https://github.com/homarr-labs/homarr/commit/0858a42b8137f003fb7500f0dbccbb9413a6c470)) -* **deps:** update dependency zod to ^3.25.73 ([#3543](https://github.com/homarr-labs/homarr/issues/3543)) ([7061a03](https://github.com/homarr-labs/homarr/commit/7061a03b2ef90c51754a4e39b22742c34e5ebc80)) -* **deps:** update dependency zod to ^3.25.74 ([#3547](https://github.com/homarr-labs/homarr/issues/3547)) ([b057059](https://github.com/homarr-labs/homarr/commit/b057059ff1fb8fcd29893000d30ddcba09f2b775)) -* **deps:** update nextjs monorepo to v15.3.5 ([#3541](https://github.com/homarr-labs/homarr/issues/3541)) ([d5181d0](https://github.com/homarr-labs/homarr/commit/d5181d0c0e1f25a119a9e91a9544a8f76e0b0901)) -* **deps:** update tanstack-query monorepo to ^5.81.5 ([#3495](https://github.com/homarr-labs/homarr/issues/3495)) ([5346b96](https://github.com/homarr-labs/homarr/commit/5346b9698444a503e432ee4b0679e408e2c44d96)) -* **deps:** update tiptap monorepo to v2.23.1 ([#3516](https://github.com/homarr-labs/homarr/issues/3516)) ([0a0e7f9](https://github.com/homarr-labs/homarr/commit/0a0e7f9602429003d45b99fade5f1ad121aa67f3)) -* **deps:** update tiptap monorepo to v2.24.0 ([#3532](https://github.com/homarr-labs/homarr/issues/3532)) ([0e1f693](https://github.com/homarr-labs/homarr/commit/0e1f6934f9755503ce289b71549b6737171e1c57)) -* **deps:** update tiptap monorepo to v2.24.1 ([#3536](https://github.com/homarr-labs/homarr/issues/3536)) ([63e2ace](https://github.com/homarr-labs/homarr/commit/63e2acefbdf09d4aa7e5a9522cfb4b0c89fb66e9)) -* **deps:** update tiptap monorepo to v2.24.2 ([#3544](https://github.com/homarr-labs/homarr/issues/3544)) ([66f663a](https://github.com/homarr-labs/homarr/commit/66f663aad4b35d0cbfb1ffd60545fd0272b70990)) +- broken lockfile ([308d235](https://github.com/homarr-labs/homarr/commit/308d235fa9db658fb7c3f5a183f01c4f48f0546f)) +- **deps:** update dependency better-sqlite3 to ^12.2.0 ([#3503](https://github.com/homarr-labs/homarr/issues/3503)) ([c22a963](https://github.com/homarr-labs/homarr/commit/c22a963342c5613089b0a1a4034379cc80425602)) +- **deps:** update dependency dotenv to ^16.6.1 ([#3494](https://github.com/homarr-labs/homarr/issues/3494)) ([b880de8](https://github.com/homarr-labs/homarr/commit/b880de8a794a879a0c2b38cc46cb5412eedbb44e)) +- **deps:** update dependency dotenv to v17 ([#3499](https://github.com/homarr-labs/homarr/issues/3499)) ([fe87d97](https://github.com/homarr-labs/homarr/commit/fe87d978c4335a700e2859c648bf997a7c323a31)) +- **deps:** update dependency ldapts to v8.0.4 ([#3509](https://github.com/homarr-labs/homarr/issues/3509)) ([8d53801](https://github.com/homarr-labs/homarr/commit/8d53801f67b5458b5eb60b4ebcd6a923a60b7e5f)) +- **deps:** update dependency next-intl to v4.3.2 ([#3520](https://github.com/homarr-labs/homarr/issues/3520)) ([6fda939](https://github.com/homarr-labs/homarr/commit/6fda939a2d94120998eb1365134652eb00602937)) +- **deps:** update dependency next-intl to v4.3.3 ([#3521](https://github.com/homarr-labs/homarr/issues/3521)) ([ab9165f](https://github.com/homarr-labs/homarr/commit/ab9165f2cd885069c7389d62db187c3be240fd72)) +- **deps:** update dependency next-intl to v4.3.4 ([#3528](https://github.com/homarr-labs/homarr/issues/3528)) ([6005784](https://github.com/homarr-labs/homarr/commit/60057842842d393b8d9c5404d6c2ae85bc82b27c)) +- **deps:** update dependency node-cron to ^4.2.0 ([#3518](https://github.com/homarr-labs/homarr/issues/3518)) ([0f94ac4](https://github.com/homarr-labs/homarr/commit/0f94ac456eeacbc03183d635ea4c57b224cf8537)) +- **deps:** update dependency postcss-preset-mantine to ^1.18.0 ([#3510](https://github.com/homarr-labs/homarr/issues/3510)) ([01d0ffb](https://github.com/homarr-labs/homarr/commit/01d0ffb0d143a77c94c977873ad04f661c280eb7)) +- **deps:** update dependency swagger-ui-react to ^5.25.4 ([#3523](https://github.com/homarr-labs/homarr/issues/3523)) ([6c94d1a](https://github.com/homarr-labs/homarr/commit/6c94d1a10c495850958b6399a302eab582e9d40b)) +- **deps:** update dependency swagger-ui-react to ^5.26.0 ([#3527](https://github.com/homarr-labs/homarr/issues/3527)) ([9da66f5](https://github.com/homarr-labs/homarr/commit/9da66f5b1db88c196dbb6866f920f1a176305667)) +- **deps:** update dependency trpc-to-openapi to ^2.3.2 ([#3502](https://github.com/homarr-labs/homarr/issues/3502)) ([2ebc9f9](https://github.com/homarr-labs/homarr/commit/2ebc9f969b5a0c753622421cb5f0a81873ad4ae9)) +- **deps:** update dependency typescript-eslint to ^8.35.1 ([#3513](https://github.com/homarr-labs/homarr/issues/3513)) ([17fe293](https://github.com/homarr-labs/homarr/commit/17fe293a7c9e6dbc83bc8f585a54a8fdd8640973)) +- **deps:** update dependency ws to ^8.18.3 ([#3501](https://github.com/homarr-labs/homarr/issues/3501)) ([ed077d6](https://github.com/homarr-labs/homarr/commit/ed077d63db9a197510e8e139d40813a3854f39e9)) +- **deps:** update dependency zod to ^3.25.68 ([#3529](https://github.com/homarr-labs/homarr/issues/3529)) ([b375ec9](https://github.com/homarr-labs/homarr/commit/b375ec977e757bed14b6fb6a04a5b30fe481eaf9)) +- **deps:** update dependency zod to ^3.25.69 ([#3531](https://github.com/homarr-labs/homarr/issues/3531)) ([915eec1](https://github.com/homarr-labs/homarr/commit/915eec1b5e6d7383d36f2e67d86472c6a2932a9b)) +- **deps:** update dependency zod to ^3.25.71 ([#3534](https://github.com/homarr-labs/homarr/issues/3534)) ([95c8aad](https://github.com/homarr-labs/homarr/commit/95c8aadb0c98f116ff3e256c770636267da82fdc)) +- **deps:** update dependency zod to ^3.25.72 ([#3535](https://github.com/homarr-labs/homarr/issues/3535)) ([0858a42](https://github.com/homarr-labs/homarr/commit/0858a42b8137f003fb7500f0dbccbb9413a6c470)) +- **deps:** update dependency zod to ^3.25.73 ([#3543](https://github.com/homarr-labs/homarr/issues/3543)) ([7061a03](https://github.com/homarr-labs/homarr/commit/7061a03b2ef90c51754a4e39b22742c34e5ebc80)) +- **deps:** update dependency zod to ^3.25.74 ([#3547](https://github.com/homarr-labs/homarr/issues/3547)) ([b057059](https://github.com/homarr-labs/homarr/commit/b057059ff1fb8fcd29893000d30ddcba09f2b775)) +- **deps:** update nextjs monorepo to v15.3.5 ([#3541](https://github.com/homarr-labs/homarr/issues/3541)) ([d5181d0](https://github.com/homarr-labs/homarr/commit/d5181d0c0e1f25a119a9e91a9544a8f76e0b0901)) +- **deps:** update tanstack-query monorepo to ^5.81.5 ([#3495](https://github.com/homarr-labs/homarr/issues/3495)) ([5346b96](https://github.com/homarr-labs/homarr/commit/5346b9698444a503e432ee4b0679e408e2c44d96)) +- **deps:** update tiptap monorepo to v2.23.1 ([#3516](https://github.com/homarr-labs/homarr/issues/3516)) ([0a0e7f9](https://github.com/homarr-labs/homarr/commit/0a0e7f9602429003d45b99fade5f1ad121aa67f3)) +- **deps:** update tiptap monorepo to v2.24.0 ([#3532](https://github.com/homarr-labs/homarr/issues/3532)) ([0e1f693](https://github.com/homarr-labs/homarr/commit/0e1f6934f9755503ce289b71549b6737171e1c57)) +- **deps:** update tiptap monorepo to v2.24.1 ([#3536](https://github.com/homarr-labs/homarr/issues/3536)) ([63e2ace](https://github.com/homarr-labs/homarr/commit/63e2acefbdf09d4aa7e5a9522cfb4b0c89fb66e9)) +- **deps:** update tiptap monorepo to v2.24.2 ([#3544](https://github.com/homarr-labs/homarr/issues/3544)) ([66f663a](https://github.com/homarr-labs/homarr/commit/66f663aad4b35d0cbfb1ffd60545fd0272b70990)) ## [1.26.0](https://github.com/homarr-labs/homarr/compare/v1.25.0...v1.26.0) (2025-06-27) ### Features -* add ntfy integration ([#2900](https://github.com/homarr-labs/homarr/issues/2900)) ([e110a84](https://github.com/homarr-labs/homarr/commit/e110a84fdd5fa2468786e1505043d8a7dc5cfa1b)) +- add ntfy integration ([#2900](https://github.com/homarr-labs/homarr/issues/2900)) ([e110a84](https://github.com/homarr-labs/homarr/commit/e110a84fdd5fa2468786e1505043d8a7dc5cfa1b)) ### Bug Fixes -* **deps:** update dependency @auth/core to ^0.40.0 ([#3448](https://github.com/homarr-labs/homarr/issues/3448)) ([2c7f5de](https://github.com/homarr-labs/homarr/commit/2c7f5de19271f7c65a9979b37d9602bb84c68564)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.10.0 ([#3449](https://github.com/homarr-labs/homarr/issues/3449)) ([7b8dc16](https://github.com/homarr-labs/homarr/commit/7b8dc1670d0c8473524f71e1ee872e6ea7d2e0ce)) -* **deps:** update dependency @tiptap/extension-highlight to v2.22.1 ([#3433](https://github.com/homarr-labs/homarr/issues/3433)) ([f6039a5](https://github.com/homarr-labs/homarr/commit/f6039a5976da70388cb32eecfbf57ac02e6fc050)) -* **deps:** update dependency better-sqlite3 to ^12.1.0 ([#3462](https://github.com/homarr-labs/homarr/issues/3462)) ([fa421b3](https://github.com/homarr-labs/homarr/commit/fa421b3778c00b30b68ceadfb370803eba1a72f2)) -* **deps:** update dependency better-sqlite3 to ^12.1.1 ([#3470](https://github.com/homarr-labs/homarr/issues/3470)) ([eadec21](https://github.com/homarr-labs/homarr/commit/eadec212369b8ee81eec00b3ecbd40d1c90972d7)) -* **deps:** update dependency better-sqlite3 to v12 ([#3441](https://github.com/homarr-labs/homarr/issues/3441)) ([95be039](https://github.com/homarr-labs/homarr/commit/95be0391a651b59a2611ca5ffa7825c6b337a996)) -* **deps:** update dependency dotenv to ^16.6.0 ([#3484](https://github.com/homarr-labs/homarr/issues/3484)) ([7477d02](https://github.com/homarr-labs/homarr/commit/7477d02cadd88608f33edf0836f7d7e164800dde)) -* **deps:** update dependency drizzle-kit to ^0.31.2 ([#3455](https://github.com/homarr-labs/homarr/issues/3455)) ([8ffbbd6](https://github.com/homarr-labs/homarr/commit/8ffbbd6bf9bb1c329943ae5033029eed115b43dd)) -* **deps:** update dependency drizzle-kit to ^0.31.3 ([#3482](https://github.com/homarr-labs/homarr/issues/3482)) ([7d0ac46](https://github.com/homarr-labs/homarr/commit/7d0ac46753b1cf6bee1f53297b0011e4e86fdffd)) -* **deps:** update dependency drizzle-kit to ^0.31.4 ([#3490](https://github.com/homarr-labs/homarr/issues/3490)) ([670de0f](https://github.com/homarr-labs/homarr/commit/670de0f5fbb9faf950fdb38e4f4cfb57f21257c4)) -* **deps:** update dependency eslint-plugin-import to ^2.32.0 ([#3430](https://github.com/homarr-labs/homarr/issues/3430)) ([a7052bb](https://github.com/homarr-labs/homarr/commit/a7052bb16f52ccb47d2c8ac205fdf01cf8e8c01e)) -* **deps:** update dependency ldapts to v8.0.2 ([#3481](https://github.com/homarr-labs/homarr/issues/3481)) ([114de40](https://github.com/homarr-labs/homarr/commit/114de40634b501ecea7be8d9ae1d2a19686845c1)) -* **deps:** update dependency maria2 to ^0.4.1 ([#3456](https://github.com/homarr-labs/homarr/issues/3456)) ([4e892ef](https://github.com/homarr-labs/homarr/commit/4e892efab7f456b93e993c2c3cb6068f06ea1e4f)) -* **deps:** update dependency next-auth to v5.0.0-beta.29 ([#3447](https://github.com/homarr-labs/homarr/issues/3447)) ([da2d22b](https://github.com/homarr-labs/homarr/commit/da2d22b1b9b87fe7aa1cbac76909af2d2ef57d3f)) -* **deps:** update dependency next-intl to v4.2.0 ([#3457](https://github.com/homarr-labs/homarr/issues/3457)) ([86d4585](https://github.com/homarr-labs/homarr/commit/86d4585035c5604a219fd0be404104f62a0be0b2)) -* **deps:** update dependency next-intl to v4.3.0 ([#3458](https://github.com/homarr-labs/homarr/issues/3458)) ([ded3993](https://github.com/homarr-labs/homarr/commit/ded39930ca1d8c4868f9541c7fad18a234ceeb3f)) -* **deps:** update dependency next-intl to v4.3.1 ([#3465](https://github.com/homarr-labs/homarr/issues/3465)) ([5d96744](https://github.com/homarr-labs/homarr/commit/5d9674412e6e99af1fb1fce7143ce4b6717ff29b)) -* **deps:** update dependency prettier to ^3.6.0 ([#3452](https://github.com/homarr-labs/homarr/issues/3452)) ([07ce1c1](https://github.com/homarr-labs/homarr/commit/07ce1c1a2d197f981818a9b1e567102f0772271d)) -* **deps:** update dependency prettier to ^3.6.1 ([#3469](https://github.com/homarr-labs/homarr/issues/3469)) ([34faa9e](https://github.com/homarr-labs/homarr/commit/34faa9e58ce061c4c99d207cfc6c56cbb7045c03)) -* **deps:** update dependency prettier to ^3.6.2 ([#3489](https://github.com/homarr-labs/homarr/issues/3489)) ([60786bf](https://github.com/homarr-labs/homarr/commit/60786bf9ac81ce13b6304f5284fb6049e2d7d7dc)) -* **deps:** update dependency recharts to ^2.15.4 ([#3429](https://github.com/homarr-labs/homarr/issues/3429)) ([caedac4](https://github.com/homarr-labs/homarr/commit/caedac490ed3aaf8f6a815d799ba9fafe9de18a2)) -* **deps:** update dependency swagger-ui-react to ^5.25.3 ([#3479](https://github.com/homarr-labs/homarr/issues/3479)) ([1cd9fa8](https://github.com/homarr-labs/homarr/commit/1cd9fa8e82eef1f69be06855d076a364883914df)) -* **deps:** update dependency typescript-eslint to ^8.35.0 ([#3460](https://github.com/homarr-labs/homarr/issues/3460)) ([1813d44](https://github.com/homarr-labs/homarr/commit/1813d4435e08f6a800ee76561e66e6371b30ec80)) -* **deps:** update dependency undici to v7.11.0 ([#3486](https://github.com/homarr-labs/homarr/issues/3486)) ([01fdd79](https://github.com/homarr-labs/homarr/commit/01fdd7955906c661a620b8fac148693dc4632ebd)) -* **deps:** update mantine monorepo to ^8.1.2 ([#3471](https://github.com/homarr-labs/homarr/issues/3471)) ([5e6dfb3](https://github.com/homarr-labs/homarr/commit/5e6dfb3a5c2d456fa20fbcd07f98c01d0ab7c4b7)) -* **deps:** update tanstack-query monorepo to ^5.80.12 ([#3436](https://github.com/homarr-labs/homarr/issues/3436)) ([86608f5](https://github.com/homarr-labs/homarr/commit/86608f5a9ffe9ea2c57a9191175994a24eea5dc7)) -* **deps:** update tanstack-query monorepo to ^5.81.0 ([#3437](https://github.com/homarr-labs/homarr/issues/3437)) ([e6f05f9](https://github.com/homarr-labs/homarr/commit/e6f05f9d94912ef5f38ad4ab222e20d433c627eb)) -* **deps:** update tanstack-query monorepo to ^5.81.1 ([#3440](https://github.com/homarr-labs/homarr/issues/3440)) ([b8b71da](https://github.com/homarr-labs/homarr/commit/b8b71da291541b714e053ea1bda4e49053261936)) -* **deps:** update tanstack-query monorepo to ^5.81.2 ([#3442](https://github.com/homarr-labs/homarr/issues/3442)) ([3f0e9c3](https://github.com/homarr-labs/homarr/commit/3f0e9c37385ae23370618f1a11870642a9b3d030)) -* **deps:** update tanstack-query monorepo to ^5.81.4 ([#3493](https://github.com/homarr-labs/homarr/issues/3493)) ([a737331](https://github.com/homarr-labs/homarr/commit/a737331d207abfd4ab8a8869c70257b5f5d50d5a)) -* **deps:** update tiptap monorepo to v2.22.1 ([#3432](https://github.com/homarr-labs/homarr/issues/3432)) ([8ccbe7f](https://github.com/homarr-labs/homarr/commit/8ccbe7ff52eff742031c528bcc1e15916ba1fe81)) -* **deps:** update tiptap monorepo to v2.22.2 ([#3438](https://github.com/homarr-labs/homarr/issues/3438)) ([f677bd6](https://github.com/homarr-labs/homarr/commit/f677bd6b12630130d8cf95a4f2462e4bab1226db)) -* **deps:** update tiptap monorepo to v2.22.3 ([#3443](https://github.com/homarr-labs/homarr/issues/3443)) ([add73a1](https://github.com/homarr-labs/homarr/commit/add73a1a3c19e0efd2d417463e4f4d72a9fd1c02)) -* **deps:** update tiptap monorepo to v2.23.0 ([#3487](https://github.com/homarr-labs/homarr/issues/3487)) ([b027f3a](https://github.com/homarr-labs/homarr/commit/b027f3a18084743b452dd35ff8e0fa30f59acd85)) -* **deps:** update trpc monorepo to ^11.4.3 ([#3491](https://github.com/homarr-labs/homarr/issues/3491)) ([d326f3b](https://github.com/homarr-labs/homarr/commit/d326f3b4b3f5fc342404a12b25380d9dd6cd924a)) -* **jellyseerr:** add missing deleted media status ([#3439](https://github.com/homarr-labs/homarr/issues/3439)) ([6b474c3](https://github.com/homarr-labs/homarr/commit/6b474c3df470450598b6b9472bf9f52740b8ed21)) +- **deps:** update dependency @auth/core to ^0.40.0 ([#3448](https://github.com/homarr-labs/homarr/issues/3448)) ([2c7f5de](https://github.com/homarr-labs/homarr/commit/2c7f5de19271f7c65a9979b37d9602bb84c68564)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.10.0 ([#3449](https://github.com/homarr-labs/homarr/issues/3449)) ([7b8dc16](https://github.com/homarr-labs/homarr/commit/7b8dc1670d0c8473524f71e1ee872e6ea7d2e0ce)) +- **deps:** update dependency @tiptap/extension-highlight to v2.22.1 ([#3433](https://github.com/homarr-labs/homarr/issues/3433)) ([f6039a5](https://github.com/homarr-labs/homarr/commit/f6039a5976da70388cb32eecfbf57ac02e6fc050)) +- **deps:** update dependency better-sqlite3 to ^12.1.0 ([#3462](https://github.com/homarr-labs/homarr/issues/3462)) ([fa421b3](https://github.com/homarr-labs/homarr/commit/fa421b3778c00b30b68ceadfb370803eba1a72f2)) +- **deps:** update dependency better-sqlite3 to ^12.1.1 ([#3470](https://github.com/homarr-labs/homarr/issues/3470)) ([eadec21](https://github.com/homarr-labs/homarr/commit/eadec212369b8ee81eec00b3ecbd40d1c90972d7)) +- **deps:** update dependency better-sqlite3 to v12 ([#3441](https://github.com/homarr-labs/homarr/issues/3441)) ([95be039](https://github.com/homarr-labs/homarr/commit/95be0391a651b59a2611ca5ffa7825c6b337a996)) +- **deps:** update dependency dotenv to ^16.6.0 ([#3484](https://github.com/homarr-labs/homarr/issues/3484)) ([7477d02](https://github.com/homarr-labs/homarr/commit/7477d02cadd88608f33edf0836f7d7e164800dde)) +- **deps:** update dependency drizzle-kit to ^0.31.2 ([#3455](https://github.com/homarr-labs/homarr/issues/3455)) ([8ffbbd6](https://github.com/homarr-labs/homarr/commit/8ffbbd6bf9bb1c329943ae5033029eed115b43dd)) +- **deps:** update dependency drizzle-kit to ^0.31.3 ([#3482](https://github.com/homarr-labs/homarr/issues/3482)) ([7d0ac46](https://github.com/homarr-labs/homarr/commit/7d0ac46753b1cf6bee1f53297b0011e4e86fdffd)) +- **deps:** update dependency drizzle-kit to ^0.31.4 ([#3490](https://github.com/homarr-labs/homarr/issues/3490)) ([670de0f](https://github.com/homarr-labs/homarr/commit/670de0f5fbb9faf950fdb38e4f4cfb57f21257c4)) +- **deps:** update dependency eslint-plugin-import to ^2.32.0 ([#3430](https://github.com/homarr-labs/homarr/issues/3430)) ([a7052bb](https://github.com/homarr-labs/homarr/commit/a7052bb16f52ccb47d2c8ac205fdf01cf8e8c01e)) +- **deps:** update dependency ldapts to v8.0.2 ([#3481](https://github.com/homarr-labs/homarr/issues/3481)) ([114de40](https://github.com/homarr-labs/homarr/commit/114de40634b501ecea7be8d9ae1d2a19686845c1)) +- **deps:** update dependency maria2 to ^0.4.1 ([#3456](https://github.com/homarr-labs/homarr/issues/3456)) ([4e892ef](https://github.com/homarr-labs/homarr/commit/4e892efab7f456b93e993c2c3cb6068f06ea1e4f)) +- **deps:** update dependency next-auth to v5.0.0-beta.29 ([#3447](https://github.com/homarr-labs/homarr/issues/3447)) ([da2d22b](https://github.com/homarr-labs/homarr/commit/da2d22b1b9b87fe7aa1cbac76909af2d2ef57d3f)) +- **deps:** update dependency next-intl to v4.2.0 ([#3457](https://github.com/homarr-labs/homarr/issues/3457)) ([86d4585](https://github.com/homarr-labs/homarr/commit/86d4585035c5604a219fd0be404104f62a0be0b2)) +- **deps:** update dependency next-intl to v4.3.0 ([#3458](https://github.com/homarr-labs/homarr/issues/3458)) ([ded3993](https://github.com/homarr-labs/homarr/commit/ded39930ca1d8c4868f9541c7fad18a234ceeb3f)) +- **deps:** update dependency next-intl to v4.3.1 ([#3465](https://github.com/homarr-labs/homarr/issues/3465)) ([5d96744](https://github.com/homarr-labs/homarr/commit/5d9674412e6e99af1fb1fce7143ce4b6717ff29b)) +- **deps:** update dependency prettier to ^3.6.0 ([#3452](https://github.com/homarr-labs/homarr/issues/3452)) ([07ce1c1](https://github.com/homarr-labs/homarr/commit/07ce1c1a2d197f981818a9b1e567102f0772271d)) +- **deps:** update dependency prettier to ^3.6.1 ([#3469](https://github.com/homarr-labs/homarr/issues/3469)) ([34faa9e](https://github.com/homarr-labs/homarr/commit/34faa9e58ce061c4c99d207cfc6c56cbb7045c03)) +- **deps:** update dependency prettier to ^3.6.2 ([#3489](https://github.com/homarr-labs/homarr/issues/3489)) ([60786bf](https://github.com/homarr-labs/homarr/commit/60786bf9ac81ce13b6304f5284fb6049e2d7d7dc)) +- **deps:** update dependency recharts to ^2.15.4 ([#3429](https://github.com/homarr-labs/homarr/issues/3429)) ([caedac4](https://github.com/homarr-labs/homarr/commit/caedac490ed3aaf8f6a815d799ba9fafe9de18a2)) +- **deps:** update dependency swagger-ui-react to ^5.25.3 ([#3479](https://github.com/homarr-labs/homarr/issues/3479)) ([1cd9fa8](https://github.com/homarr-labs/homarr/commit/1cd9fa8e82eef1f69be06855d076a364883914df)) +- **deps:** update dependency typescript-eslint to ^8.35.0 ([#3460](https://github.com/homarr-labs/homarr/issues/3460)) ([1813d44](https://github.com/homarr-labs/homarr/commit/1813d4435e08f6a800ee76561e66e6371b30ec80)) +- **deps:** update dependency undici to v7.11.0 ([#3486](https://github.com/homarr-labs/homarr/issues/3486)) ([01fdd79](https://github.com/homarr-labs/homarr/commit/01fdd7955906c661a620b8fac148693dc4632ebd)) +- **deps:** update mantine monorepo to ^8.1.2 ([#3471](https://github.com/homarr-labs/homarr/issues/3471)) ([5e6dfb3](https://github.com/homarr-labs/homarr/commit/5e6dfb3a5c2d456fa20fbcd07f98c01d0ab7c4b7)) +- **deps:** update tanstack-query monorepo to ^5.80.12 ([#3436](https://github.com/homarr-labs/homarr/issues/3436)) ([86608f5](https://github.com/homarr-labs/homarr/commit/86608f5a9ffe9ea2c57a9191175994a24eea5dc7)) +- **deps:** update tanstack-query monorepo to ^5.81.0 ([#3437](https://github.com/homarr-labs/homarr/issues/3437)) ([e6f05f9](https://github.com/homarr-labs/homarr/commit/e6f05f9d94912ef5f38ad4ab222e20d433c627eb)) +- **deps:** update tanstack-query monorepo to ^5.81.1 ([#3440](https://github.com/homarr-labs/homarr/issues/3440)) ([b8b71da](https://github.com/homarr-labs/homarr/commit/b8b71da291541b714e053ea1bda4e49053261936)) +- **deps:** update tanstack-query monorepo to ^5.81.2 ([#3442](https://github.com/homarr-labs/homarr/issues/3442)) ([3f0e9c3](https://github.com/homarr-labs/homarr/commit/3f0e9c37385ae23370618f1a11870642a9b3d030)) +- **deps:** update tanstack-query monorepo to ^5.81.4 ([#3493](https://github.com/homarr-labs/homarr/issues/3493)) ([a737331](https://github.com/homarr-labs/homarr/commit/a737331d207abfd4ab8a8869c70257b5f5d50d5a)) +- **deps:** update tiptap monorepo to v2.22.1 ([#3432](https://github.com/homarr-labs/homarr/issues/3432)) ([8ccbe7f](https://github.com/homarr-labs/homarr/commit/8ccbe7ff52eff742031c528bcc1e15916ba1fe81)) +- **deps:** update tiptap monorepo to v2.22.2 ([#3438](https://github.com/homarr-labs/homarr/issues/3438)) ([f677bd6](https://github.com/homarr-labs/homarr/commit/f677bd6b12630130d8cf95a4f2462e4bab1226db)) +- **deps:** update tiptap monorepo to v2.22.3 ([#3443](https://github.com/homarr-labs/homarr/issues/3443)) ([add73a1](https://github.com/homarr-labs/homarr/commit/add73a1a3c19e0efd2d417463e4f4d72a9fd1c02)) +- **deps:** update tiptap monorepo to v2.23.0 ([#3487](https://github.com/homarr-labs/homarr/issues/3487)) ([b027f3a](https://github.com/homarr-labs/homarr/commit/b027f3a18084743b452dd35ff8e0fa30f59acd85)) +- **deps:** update trpc monorepo to ^11.4.3 ([#3491](https://github.com/homarr-labs/homarr/issues/3491)) ([d326f3b](https://github.com/homarr-labs/homarr/commit/d326f3b4b3f5fc342404a12b25380d9dd6cd924a)) +- **jellyseerr:** add missing deleted media status ([#3439](https://github.com/homarr-labs/homarr/issues/3439)) ([6b474c3](https://github.com/homarr-labs/homarr/commit/6b474c3df470450598b6b9472bf9f52740b8ed21)) ## [1.25.0](https://github.com/homarr-labs/homarr/compare/v1.24.0...v1.25.0) (2025-06-20) ### Features -* **integrations:** add support for self-signed-cert-in-chain request error ([#3399](https://github.com/homarr-labs/homarr/issues/3399)) ([e6cb35b](https://github.com/homarr-labs/homarr/commit/e6cb35b7c2dc45349a9cf0819aa21228aea03e26)) +- **integrations:** add support for self-signed-cert-in-chain request error ([#3399](https://github.com/homarr-labs/homarr/issues/3399)) ([e6cb35b](https://github.com/homarr-labs/homarr/commit/e6cb35b7c2dc45349a9cf0819aa21228aea03e26)) ### Bug Fixes -* **deps:** update dependency node-cron to ^4.1.1 ([#3427](https://github.com/homarr-labs/homarr/issues/3427)) ([f6a99ff](https://github.com/homarr-labs/homarr/commit/f6a99ffedd690c01e18f445ade6343f1ca476b27)) -* **deps:** update dependency swagger-ui-react to ^5.24.2 ([#3405](https://github.com/homarr-labs/homarr/issues/3405)) ([bdca920](https://github.com/homarr-labs/homarr/commit/bdca92036a3dde7f655735c305e55c5c15b63440)) -* **deps:** update dependency swagger-ui-react to ^5.25.2 ([#3420](https://github.com/homarr-labs/homarr/issues/3420)) ([02cd7a5](https://github.com/homarr-labs/homarr/commit/02cd7a50dad9e954cfd569b0f1efcc4fe4fd5da4)) -* **deps:** update dependency tsdav to ^2.1.5 ([#3414](https://github.com/homarr-labs/homarr/issues/3414)) ([6bcfe78](https://github.com/homarr-labs/homarr/commit/6bcfe789561c518e7ce6c78a9be95412a50f04dd)) -* **deps:** update dependency typescript-eslint to ^8.34.1 ([#3409](https://github.com/homarr-labs/homarr/issues/3409)) ([637bfb8](https://github.com/homarr-labs/homarr/commit/637bfb8b47b7dc6c70163bd481c47bca9bd93d55)) -* **deps:** update dependency zod to ^3.25.65 ([#3410](https://github.com/homarr-labs/homarr/issues/3410)) ([a8c9c07](https://github.com/homarr-labs/homarr/commit/a8c9c075f08bca4b86307e98156cae7167ef6ab1)) -* **deps:** update dependency zod to ^3.25.67 ([#3413](https://github.com/homarr-labs/homarr/issues/3413)) ([56ca8b7](https://github.com/homarr-labs/homarr/commit/56ca8b7b0b1c0187457c085af1c7f4504d72ed9a)) -* **deps:** update dependency zod-validation-error to ^3.5.1 ([#3406](https://github.com/homarr-labs/homarr/issues/3406)) ([adbef25](https://github.com/homarr-labs/homarr/commit/adbef252c61c29fbbc8c7b0e325a0e9d69bb3191)) -* **deps:** update dependency zod-validation-error to ^3.5.2 ([#3417](https://github.com/homarr-labs/homarr/issues/3417)) ([430f671](https://github.com/homarr-labs/homarr/commit/430f6714345b5b90859fd3302f76fd3d14956148)) -* **deps:** update mantine monorepo to ^8.1.1 ([#3404](https://github.com/homarr-labs/homarr/issues/3404)) ([f97a261](https://github.com/homarr-labs/homarr/commit/f97a2619734dcf3b326c69587fa2f4e170cb9c88)) -* **deps:** update nextjs monorepo to v15.3.4 ([#3421](https://github.com/homarr-labs/homarr/issues/3421)) ([3759a98](https://github.com/homarr-labs/homarr/commit/3759a9831c6fe54b0b0eb0e101c8eb912b752b41)) -* **deps:** update tanstack-query monorepo to ^5.80.10 ([#3422](https://github.com/homarr-labs/homarr/issues/3422)) ([7c58e8a](https://github.com/homarr-labs/homarr/commit/7c58e8ac9bdb2868637648b43b7965189421b295)) -* **deps:** update tiptap monorepo to v2.14.1 ([#3423](https://github.com/homarr-labs/homarr/issues/3423)) ([9e4b463](https://github.com/homarr-labs/homarr/commit/9e4b4635bc582e4d92821844d58fdb3d057f7fec)) -* **deps:** update tiptap monorepo to v2.22.0 ([#3425](https://github.com/homarr-labs/homarr/issues/3425)) ([ec4dde6](https://github.com/homarr-labs/homarr/commit/ec4dde64fdd4302b091a0255ec1bcdc6b2caca89)) -* **deps:** update trpc monorepo to ^11.4.2 ([#3419](https://github.com/homarr-labs/homarr/issues/3419)) ([8e428e2](https://github.com/homarr-labs/homarr/commit/8e428e20a764c54c15fc44b57f85fa684cfbc00e)) -* **downloads:** not updating automatically ([#3412](https://github.com/homarr-labs/homarr/issues/3412)) ([b5ef7e5](https://github.com/homarr-labs/homarr/commit/b5ef7e5194a828abfddcac5eb492910de5f1f7d8)) -* **widget-integration-select:** fixed error about `

` being descendant of `

` ([#3418](https://github.com/homarr-labs/homarr/issues/3418)) ([73fff02](https://github.com/homarr-labs/homarr/commit/73fff02ad0a3a710aa39cda7dccf9206569c2879)) +- **deps:** update dependency node-cron to ^4.1.1 ([#3427](https://github.com/homarr-labs/homarr/issues/3427)) ([f6a99ff](https://github.com/homarr-labs/homarr/commit/f6a99ffedd690c01e18f445ade6343f1ca476b27)) +- **deps:** update dependency swagger-ui-react to ^5.24.2 ([#3405](https://github.com/homarr-labs/homarr/issues/3405)) ([bdca920](https://github.com/homarr-labs/homarr/commit/bdca92036a3dde7f655735c305e55c5c15b63440)) +- **deps:** update dependency swagger-ui-react to ^5.25.2 ([#3420](https://github.com/homarr-labs/homarr/issues/3420)) ([02cd7a5](https://github.com/homarr-labs/homarr/commit/02cd7a50dad9e954cfd569b0f1efcc4fe4fd5da4)) +- **deps:** update dependency tsdav to ^2.1.5 ([#3414](https://github.com/homarr-labs/homarr/issues/3414)) ([6bcfe78](https://github.com/homarr-labs/homarr/commit/6bcfe789561c518e7ce6c78a9be95412a50f04dd)) +- **deps:** update dependency typescript-eslint to ^8.34.1 ([#3409](https://github.com/homarr-labs/homarr/issues/3409)) ([637bfb8](https://github.com/homarr-labs/homarr/commit/637bfb8b47b7dc6c70163bd481c47bca9bd93d55)) +- **deps:** update dependency zod to ^3.25.65 ([#3410](https://github.com/homarr-labs/homarr/issues/3410)) ([a8c9c07](https://github.com/homarr-labs/homarr/commit/a8c9c075f08bca4b86307e98156cae7167ef6ab1)) +- **deps:** update dependency zod to ^3.25.67 ([#3413](https://github.com/homarr-labs/homarr/issues/3413)) ([56ca8b7](https://github.com/homarr-labs/homarr/commit/56ca8b7b0b1c0187457c085af1c7f4504d72ed9a)) +- **deps:** update dependency zod-validation-error to ^3.5.1 ([#3406](https://github.com/homarr-labs/homarr/issues/3406)) ([adbef25](https://github.com/homarr-labs/homarr/commit/adbef252c61c29fbbc8c7b0e325a0e9d69bb3191)) +- **deps:** update dependency zod-validation-error to ^3.5.2 ([#3417](https://github.com/homarr-labs/homarr/issues/3417)) ([430f671](https://github.com/homarr-labs/homarr/commit/430f6714345b5b90859fd3302f76fd3d14956148)) +- **deps:** update mantine monorepo to ^8.1.1 ([#3404](https://github.com/homarr-labs/homarr/issues/3404)) ([f97a261](https://github.com/homarr-labs/homarr/commit/f97a2619734dcf3b326c69587fa2f4e170cb9c88)) +- **deps:** update nextjs monorepo to v15.3.4 ([#3421](https://github.com/homarr-labs/homarr/issues/3421)) ([3759a98](https://github.com/homarr-labs/homarr/commit/3759a9831c6fe54b0b0eb0e101c8eb912b752b41)) +- **deps:** update tanstack-query monorepo to ^5.80.10 ([#3422](https://github.com/homarr-labs/homarr/issues/3422)) ([7c58e8a](https://github.com/homarr-labs/homarr/commit/7c58e8ac9bdb2868637648b43b7965189421b295)) +- **deps:** update tiptap monorepo to v2.14.1 ([#3423](https://github.com/homarr-labs/homarr/issues/3423)) ([9e4b463](https://github.com/homarr-labs/homarr/commit/9e4b4635bc582e4d92821844d58fdb3d057f7fec)) +- **deps:** update tiptap monorepo to v2.22.0 ([#3425](https://github.com/homarr-labs/homarr/issues/3425)) ([ec4dde6](https://github.com/homarr-labs/homarr/commit/ec4dde64fdd4302b091a0255ec1bcdc6b2caca89)) +- **deps:** update trpc monorepo to ^11.4.2 ([#3419](https://github.com/homarr-labs/homarr/issues/3419)) ([8e428e2](https://github.com/homarr-labs/homarr/commit/8e428e20a764c54c15fc44b57f85fa684cfbc00e)) +- **downloads:** not updating automatically ([#3412](https://github.com/homarr-labs/homarr/issues/3412)) ([b5ef7e5](https://github.com/homarr-labs/homarr/commit/b5ef7e5194a828abfddcac5eb492910de5f1f7d8)) +- **widget-integration-select:** fixed error about `

` being descendant of `

` ([#3418](https://github.com/homarr-labs/homarr/issues/3418)) ([73fff02](https://github.com/homarr-labs/homarr/commit/73fff02ad0a3a710aa39cda7dccf9206569c2879)) ## [1.24.0](https://github.com/homarr-labs/homarr/compare/v1.23.0...v1.24.0) (2025-06-13) ### Features -* reduce cron job intervals ([#3235](https://github.com/homarr-labs/homarr/issues/3235)) ([f67702e](https://github.com/homarr-labs/homarr/commit/f67702e1d32954b4f6db28c02b1a25e56122d779)) +- reduce cron job intervals ([#3235](https://github.com/homarr-labs/homarr/issues/3235)) ([f67702e](https://github.com/homarr-labs/homarr/commit/f67702e1d32954b4f6db28c02b1a25e56122d779)) ### Bug Fixes -* csp prevents external videos ([#3372](https://github.com/homarr-labs/homarr/issues/3372)) ([c59cded](https://github.com/homarr-labs/homarr/commit/c59cdeda47a504069c09634dafe36a9bc80c922f)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.13.7 ([#3357](https://github.com/homarr-labs/homarr/issues/3357)) ([22f0cd8](https://github.com/homarr-labs/homarr/commit/22f0cd885e6b3f0cd15daa60840554a545eb2532)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.13.8 ([#3364](https://github.com/homarr-labs/homarr/issues/3364)) ([ab3ee3b](https://github.com/homarr-labs/homarr/commit/ab3ee3bac186913cbc76c1381c90b3c90a447185)) -* **deps:** update dependency fast-xml-parser to ^5.2.5 ([#3353](https://github.com/homarr-labs/homarr/issues/3353)) ([9e86de6](https://github.com/homarr-labs/homarr/commit/9e86de6e1781ef2c088f83af1ba341baecb496da)) -* **deps:** update dependency glob to ^11.0.3 ([#3391](https://github.com/homarr-labs/homarr/issues/3391)) ([f16efac](https://github.com/homarr-labs/homarr/commit/f16efac05a17b77303f4c41b8910d491d237add2)) -* **deps:** update dependency sass to ^1.89.2 ([#3362](https://github.com/homarr-labs/homarr/issues/3362)) ([b1a559d](https://github.com/homarr-labs/homarr/commit/b1a559d80161f59114ba3098005c3334662987eb)) -* **deps:** update dependency swagger-ui-react to ^5.24.1 ([#3368](https://github.com/homarr-labs/homarr/issues/3368)) ([fa52b55](https://github.com/homarr-labs/homarr/commit/fa52b5582880075cd76826641547ccbf42b56f7a)) -* **deps:** update dependency tsx to v4.20.0 ([#3375](https://github.com/homarr-labs/homarr/issues/3375)) ([3d07306](https://github.com/homarr-labs/homarr/commit/3d07306e7d3bf90db7f7c02d68550a137c5554bc)) -* **deps:** update dependency tsx to v4.20.1 ([#3380](https://github.com/homarr-labs/homarr/issues/3380)) ([e7652ea](https://github.com/homarr-labs/homarr/commit/e7652ea4eb1ddaf8373c02abfcdb5440bf55c236)) -* **deps:** update dependency tsx to v4.20.2 ([#3387](https://github.com/homarr-labs/homarr/issues/3387)) ([79519ec](https://github.com/homarr-labs/homarr/commit/79519ec0ebf4ff101fa1cd395f974e023d1af3c3)) -* **deps:** update dependency tsx to v4.20.3 ([#3393](https://github.com/homarr-labs/homarr/issues/3393)) ([c9097a9](https://github.com/homarr-labs/homarr/commit/c9097a95e2072ed619e93301f8d4644aaadce2dd)) -* **deps:** update dependency typescript-eslint to ^8.34.0 ([#3359](https://github.com/homarr-labs/homarr/issues/3359)) ([f6da091](https://github.com/homarr-labs/homarr/commit/f6da0915773dd60b40475f258d90e5f3dbdb6729)) -* **deps:** update dependency zod to ^3.25.56 ([#3340](https://github.com/homarr-labs/homarr/issues/3340)) ([aafd883](https://github.com/homarr-labs/homarr/commit/aafd883c3250ddf3438877d82b4b63a6a15eadda)) -* **deps:** update dependency zod to ^3.25.57 ([#3367](https://github.com/homarr-labs/homarr/issues/3367)) ([e7a9797](https://github.com/homarr-labs/homarr/commit/e7a9797484e9e2cd595d31e6db4cdf63e25e3b82)) -* **deps:** update dependency zod to ^3.25.58 ([#3373](https://github.com/homarr-labs/homarr/issues/3373)) ([f37fc0e](https://github.com/homarr-labs/homarr/commit/f37fc0edfee45386b3469bac11c91e4f17c83673)) -* **deps:** update dependency zod to ^3.25.60 ([#3378](https://github.com/homarr-labs/homarr/issues/3378)) ([7388c90](https://github.com/homarr-labs/homarr/commit/7388c907a57c7999a48118d96a3f34d2c3656f79)) -* **deps:** update dependency zod to ^3.25.61 ([#3379](https://github.com/homarr-labs/homarr/issues/3379)) ([863f935](https://github.com/homarr-labs/homarr/commit/863f935ef4c27f87a632a5e0b376fe088f4e8a04)) -* **deps:** update dependency zod to ^3.25.62 ([#3382](https://github.com/homarr-labs/homarr/issues/3382)) ([0b200dc](https://github.com/homarr-labs/homarr/commit/0b200dc9e2239060ddf2670f8508f68e624e821e)) -* **deps:** update dependency zod to ^3.25.63 ([#3386](https://github.com/homarr-labs/homarr/issues/3386)) ([153c2ef](https://github.com/homarr-labs/homarr/commit/153c2ef8a0098cbe2d998c98a25a0c5880f0da5d)) -* **deps:** update dependency zod to ^3.25.64 ([#3392](https://github.com/homarr-labs/homarr/issues/3392)) ([5dc0ee8](https://github.com/homarr-labs/homarr/commit/5dc0ee8842dbd4bde468c5762cf5dc0d73958242)) -* **deps:** update dependency zod-validation-error to ^3.5.0 ([#3388](https://github.com/homarr-labs/homarr/issues/3388)) ([747d034](https://github.com/homarr-labs/homarr/commit/747d034114bd2a3b381aa7318c59015b21811353)) -* **deps:** update mantine monorepo to ^8.1.0 ([#3360](https://github.com/homarr-labs/homarr/issues/3360)) ([d862ae0](https://github.com/homarr-labs/homarr/commit/d862ae03e319d173468cd7797bd74be022cbc966)) -* **deps:** update tanstack-query monorepo to ^5.80.7 ([#3385](https://github.com/homarr-labs/homarr/issues/3385)) ([c5cc8f1](https://github.com/homarr-labs/homarr/commit/c5cc8f1d375d5a582b169da706a5b433a0181c20)) -* **deps:** update testcontainers-node monorepo to ^11.0.1 ([#3343](https://github.com/homarr-labs/homarr/issues/3343)) ([6ec66b1](https://github.com/homarr-labs/homarr/commit/6ec66b1fe2d5779b2267532d75d6933b3460ffd5)) -* **deps:** update testcontainers-node monorepo to ^11.0.2 ([#3352](https://github.com/homarr-labs/homarr/issues/3352)) ([98c4cd1](https://github.com/homarr-labs/homarr/commit/98c4cd1e39286164c09f7d8e961488e26fa2c562)) -* **deps:** update testcontainers-node monorepo to ^11.0.3 ([#3369](https://github.com/homarr-labs/homarr/issues/3369)) ([ad444e8](https://github.com/homarr-labs/homarr/commit/ad444e8fa7a186710deafd98f2aa48717de1ec80)) -* **deps:** update trpc monorepo to ^11.4.0 ([#3389](https://github.com/homarr-labs/homarr/issues/3389)) ([3bf4f9e](https://github.com/homarr-labs/homarr/commit/3bf4f9e0588440d74dfaf7016acc66c1ed40843a)) -* **deps:** update trpc monorepo to ^11.4.1 ([#3395](https://github.com/homarr-labs/homarr/issues/3395)) ([6d9992d](https://github.com/homarr-labs/homarr/commit/6d9992d7114f97c24e02c40dcaf11fad90608a1c)) -* module not found sshcrypto.node during development ([#3349](https://github.com/homarr-labs/homarr/issues/3349)) ([1b3770a](https://github.com/homarr-labs/homarr/commit/1b3770aafbe4e903e6235dc681edac556a36e4e0)) -* **pi-hole:** cached session not invalidated when changing password ([#3351](https://github.com/homarr-labs/homarr/issues/3351)) ([a9e68e1](https://github.com/homarr-labs/homarr/commit/a9e68e13d53c8e06d150ecba085680cd248d4f64)) +- csp prevents external videos ([#3372](https://github.com/homarr-labs/homarr/issues/3372)) ([c59cded](https://github.com/homarr-labs/homarr/commit/c59cdeda47a504069c09634dafe36a9bc80c922f)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.13.7 ([#3357](https://github.com/homarr-labs/homarr/issues/3357)) ([22f0cd8](https://github.com/homarr-labs/homarr/commit/22f0cd885e6b3f0cd15daa60840554a545eb2532)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.13.8 ([#3364](https://github.com/homarr-labs/homarr/issues/3364)) ([ab3ee3b](https://github.com/homarr-labs/homarr/commit/ab3ee3bac186913cbc76c1381c90b3c90a447185)) +- **deps:** update dependency fast-xml-parser to ^5.2.5 ([#3353](https://github.com/homarr-labs/homarr/issues/3353)) ([9e86de6](https://github.com/homarr-labs/homarr/commit/9e86de6e1781ef2c088f83af1ba341baecb496da)) +- **deps:** update dependency glob to ^11.0.3 ([#3391](https://github.com/homarr-labs/homarr/issues/3391)) ([f16efac](https://github.com/homarr-labs/homarr/commit/f16efac05a17b77303f4c41b8910d491d237add2)) +- **deps:** update dependency sass to ^1.89.2 ([#3362](https://github.com/homarr-labs/homarr/issues/3362)) ([b1a559d](https://github.com/homarr-labs/homarr/commit/b1a559d80161f59114ba3098005c3334662987eb)) +- **deps:** update dependency swagger-ui-react to ^5.24.1 ([#3368](https://github.com/homarr-labs/homarr/issues/3368)) ([fa52b55](https://github.com/homarr-labs/homarr/commit/fa52b5582880075cd76826641547ccbf42b56f7a)) +- **deps:** update dependency tsx to v4.20.0 ([#3375](https://github.com/homarr-labs/homarr/issues/3375)) ([3d07306](https://github.com/homarr-labs/homarr/commit/3d07306e7d3bf90db7f7c02d68550a137c5554bc)) +- **deps:** update dependency tsx to v4.20.1 ([#3380](https://github.com/homarr-labs/homarr/issues/3380)) ([e7652ea](https://github.com/homarr-labs/homarr/commit/e7652ea4eb1ddaf8373c02abfcdb5440bf55c236)) +- **deps:** update dependency tsx to v4.20.2 ([#3387](https://github.com/homarr-labs/homarr/issues/3387)) ([79519ec](https://github.com/homarr-labs/homarr/commit/79519ec0ebf4ff101fa1cd395f974e023d1af3c3)) +- **deps:** update dependency tsx to v4.20.3 ([#3393](https://github.com/homarr-labs/homarr/issues/3393)) ([c9097a9](https://github.com/homarr-labs/homarr/commit/c9097a95e2072ed619e93301f8d4644aaadce2dd)) +- **deps:** update dependency typescript-eslint to ^8.34.0 ([#3359](https://github.com/homarr-labs/homarr/issues/3359)) ([f6da091](https://github.com/homarr-labs/homarr/commit/f6da0915773dd60b40475f258d90e5f3dbdb6729)) +- **deps:** update dependency zod to ^3.25.56 ([#3340](https://github.com/homarr-labs/homarr/issues/3340)) ([aafd883](https://github.com/homarr-labs/homarr/commit/aafd883c3250ddf3438877d82b4b63a6a15eadda)) +- **deps:** update dependency zod to ^3.25.57 ([#3367](https://github.com/homarr-labs/homarr/issues/3367)) ([e7a9797](https://github.com/homarr-labs/homarr/commit/e7a9797484e9e2cd595d31e6db4cdf63e25e3b82)) +- **deps:** update dependency zod to ^3.25.58 ([#3373](https://github.com/homarr-labs/homarr/issues/3373)) ([f37fc0e](https://github.com/homarr-labs/homarr/commit/f37fc0edfee45386b3469bac11c91e4f17c83673)) +- **deps:** update dependency zod to ^3.25.60 ([#3378](https://github.com/homarr-labs/homarr/issues/3378)) ([7388c90](https://github.com/homarr-labs/homarr/commit/7388c907a57c7999a48118d96a3f34d2c3656f79)) +- **deps:** update dependency zod to ^3.25.61 ([#3379](https://github.com/homarr-labs/homarr/issues/3379)) ([863f935](https://github.com/homarr-labs/homarr/commit/863f935ef4c27f87a632a5e0b376fe088f4e8a04)) +- **deps:** update dependency zod to ^3.25.62 ([#3382](https://github.com/homarr-labs/homarr/issues/3382)) ([0b200dc](https://github.com/homarr-labs/homarr/commit/0b200dc9e2239060ddf2670f8508f68e624e821e)) +- **deps:** update dependency zod to ^3.25.63 ([#3386](https://github.com/homarr-labs/homarr/issues/3386)) ([153c2ef](https://github.com/homarr-labs/homarr/commit/153c2ef8a0098cbe2d998c98a25a0c5880f0da5d)) +- **deps:** update dependency zod to ^3.25.64 ([#3392](https://github.com/homarr-labs/homarr/issues/3392)) ([5dc0ee8](https://github.com/homarr-labs/homarr/commit/5dc0ee8842dbd4bde468c5762cf5dc0d73958242)) +- **deps:** update dependency zod-validation-error to ^3.5.0 ([#3388](https://github.com/homarr-labs/homarr/issues/3388)) ([747d034](https://github.com/homarr-labs/homarr/commit/747d034114bd2a3b381aa7318c59015b21811353)) +- **deps:** update mantine monorepo to ^8.1.0 ([#3360](https://github.com/homarr-labs/homarr/issues/3360)) ([d862ae0](https://github.com/homarr-labs/homarr/commit/d862ae03e319d173468cd7797bd74be022cbc966)) +- **deps:** update tanstack-query monorepo to ^5.80.7 ([#3385](https://github.com/homarr-labs/homarr/issues/3385)) ([c5cc8f1](https://github.com/homarr-labs/homarr/commit/c5cc8f1d375d5a582b169da706a5b433a0181c20)) +- **deps:** update testcontainers-node monorepo to ^11.0.1 ([#3343](https://github.com/homarr-labs/homarr/issues/3343)) ([6ec66b1](https://github.com/homarr-labs/homarr/commit/6ec66b1fe2d5779b2267532d75d6933b3460ffd5)) +- **deps:** update testcontainers-node monorepo to ^11.0.2 ([#3352](https://github.com/homarr-labs/homarr/issues/3352)) ([98c4cd1](https://github.com/homarr-labs/homarr/commit/98c4cd1e39286164c09f7d8e961488e26fa2c562)) +- **deps:** update testcontainers-node monorepo to ^11.0.3 ([#3369](https://github.com/homarr-labs/homarr/issues/3369)) ([ad444e8](https://github.com/homarr-labs/homarr/commit/ad444e8fa7a186710deafd98f2aa48717de1ec80)) +- **deps:** update trpc monorepo to ^11.4.0 ([#3389](https://github.com/homarr-labs/homarr/issues/3389)) ([3bf4f9e](https://github.com/homarr-labs/homarr/commit/3bf4f9e0588440d74dfaf7016acc66c1ed40843a)) +- **deps:** update trpc monorepo to ^11.4.1 ([#3395](https://github.com/homarr-labs/homarr/issues/3395)) ([6d9992d](https://github.com/homarr-labs/homarr/commit/6d9992d7114f97c24e02c40dcaf11fad90608a1c)) +- module not found sshcrypto.node during development ([#3349](https://github.com/homarr-labs/homarr/issues/3349)) ([1b3770a](https://github.com/homarr-labs/homarr/commit/1b3770aafbe4e903e6235dc681edac556a36e4e0)) +- **pi-hole:** cached session not invalidated when changing password ([#3351](https://github.com/homarr-labs/homarr/issues/3351)) ([a9e68e1](https://github.com/homarr-labs/homarr/commit/a9e68e13d53c8e06d150ecba085680cd248d4f64)) ## [1.23.0](https://github.com/homarr-labs/homarr/compare/v1.22.0...v1.23.0) (2025-06-06) ### Features -* **releases-widget:** add `import from docker` functionality ([#3130](https://github.com/homarr-labs/homarr/issues/3130)) ([7071d76](https://github.com/homarr-labs/homarr/commit/7071d76c526f1b59a955abcc595894975d574218)) +- **releases-widget:** add `import from docker` functionality ([#3130](https://github.com/homarr-labs/homarr/issues/3130)) ([7071d76](https://github.com/homarr-labs/homarr/commit/7071d76c526f1b59a955abcc595894975d574218)) ### Bug Fixes -* Allow nullable on cpuModelName and default to "Unknown CPU" if null in OMV Integration ([#3310](https://github.com/homarr-labs/homarr/issues/3310)) ([3e7bf62](https://github.com/homarr-labs/homarr/commit/3e7bf62500f4ce0a8662104e2a656ea98cf2558f)) -* csp prevents external stylesheets ([#3337](https://github.com/homarr-labs/homarr/issues/3337)) ([c7a21b1](https://github.com/homarr-labs/homarr/commit/c7a21b1a5f4e7c9d994d81b75a3fd4fa7c013daf)) -* **deps:** update dependency @tabler/icons-react to ^3.34.0 ([#3303](https://github.com/homarr-labs/homarr/issues/3303)) ([5b354ac](https://github.com/homarr-labs/homarr/commit/5b354aca2047e8316b331e327cf6031690dcfef9)) -* **deps:** update dependency dockerode to ^4.0.7 ([#3331](https://github.com/homarr-labs/homarr/issues/3331)) ([07f81ce](https://github.com/homarr-labs/homarr/commit/07f81cee92627e3b6ee4b2bbf084657f9a83ac34)) -* **deps:** update dependency drizzle-orm to ^0.44.1 ([#3280](https://github.com/homarr-labs/homarr/issues/3280)) ([9895c1b](https://github.com/homarr-labs/homarr/commit/9895c1b3ff028a7ea7273ab2625620c9132f5213)) -* **deps:** update dependency drizzle-orm to ^0.44.2 ([#3315](https://github.com/homarr-labs/homarr/issues/3315)) ([9ac9042](https://github.com/homarr-labs/homarr/commit/9ac90425647bf1f10d3f299f043c5d40067347bc)) -* **deps:** update dependency fast-xml-parser to ^5.2.4 ([#3336](https://github.com/homarr-labs/homarr/issues/3336)) ([3ad72e6](https://github.com/homarr-labs/homarr/commit/3ad72e63b1adecd18c53897a6023f09d6f5d011c)) -* **deps:** update dependency node-cron to ^4.1.0 ([#3286](https://github.com/homarr-labs/homarr/issues/3286)) ([1f40868](https://github.com/homarr-labs/homarr/commit/1f408685e69397fa9e3a69bd4331a8240da3713b)) -* **deps:** update dependency sass to ^1.89.1 ([#3285](https://github.com/homarr-labs/homarr/issues/3285)) ([b608ffe](https://github.com/homarr-labs/homarr/commit/b608ffe4900a5dd97ceb2669464c477404d090e7)) -* **deps:** update dependency swagger-ui-react to ^5.24.0 ([#3325](https://github.com/homarr-labs/homarr/issues/3325)) ([cf7336b](https://github.com/homarr-labs/homarr/commit/cf7336ba87c617578ab52e2ece94fd84df3fc623)) -* **deps:** update dependency typescript-eslint to ^8.33.1 ([#3302](https://github.com/homarr-labs/homarr/issues/3302)) ([124e8de](https://github.com/homarr-labs/homarr/commit/124e8de6c584b0efca91d92079f8b3c400bccab2)) -* **deps:** update dependency video.js to ^8.23.3 ([#3320](https://github.com/homarr-labs/homarr/issues/3320)) ([81509fd](https://github.com/homarr-labs/homarr/commit/81509fd96dfe0561964eb58d3d21c02400db2e8c)) -* **deps:** update dependency zod to ^3.25.43 ([#3290](https://github.com/homarr-labs/homarr/issues/3290)) ([161fc86](https://github.com/homarr-labs/homarr/commit/161fc867703c4cf634eaaeec1b73f5e3cbfa7fec)) -* **deps:** update dependency zod to ^3.25.45 ([#3291](https://github.com/homarr-labs/homarr/issues/3291)) ([3337cfa](https://github.com/homarr-labs/homarr/commit/3337cfa3c7e34debcccdbb95ee0bc39f2af98a91)) -* **deps:** update dependency zod to ^3.25.46 ([#3292](https://github.com/homarr-labs/homarr/issues/3292)) ([1b1671e](https://github.com/homarr-labs/homarr/commit/1b1671e0e6d808469ba7f8185c4590cf2f2f6f44)) -* **deps:** update dependency zod to ^3.25.47 ([#3296](https://github.com/homarr-labs/homarr/issues/3296)) ([94f176d](https://github.com/homarr-labs/homarr/commit/94f176d544272e0378e65255aba58b05d56019b2)) -* **deps:** update dependency zod to ^3.25.48 ([#3297](https://github.com/homarr-labs/homarr/issues/3297)) ([ccd8a85](https://github.com/homarr-labs/homarr/commit/ccd8a85e0fcd2cf40dbfb6058787d24a02680b93)) -* **deps:** update dependency zod to ^3.25.49 ([#3304](https://github.com/homarr-labs/homarr/issues/3304)) ([0362487](https://github.com/homarr-labs/homarr/commit/0362487156457ae825cac501e7d53db58c31ab0b)) -* **deps:** update dependency zod to ^3.25.50 ([#3312](https://github.com/homarr-labs/homarr/issues/3312)) ([a0a0449](https://github.com/homarr-labs/homarr/commit/a0a0449c704ff57725ab5e0b459eb209fc929446)) -* **deps:** update dependency zod to ^3.25.51 ([#3316](https://github.com/homarr-labs/homarr/issues/3316)) ([a542ee0](https://github.com/homarr-labs/homarr/commit/a542ee079871c7609ed97c76aa2017305adbfdc9)) -* **deps:** update dependency zod to ^3.25.55 ([#3332](https://github.com/homarr-labs/homarr/issues/3332)) ([ed3f848](https://github.com/homarr-labs/homarr/commit/ed3f848e8afb57cc1b9249551f0260eb52bbd4a6)) -* **deps:** update tanstack-query monorepo to ^5.79.1 ([#3300](https://github.com/homarr-labs/homarr/issues/3300)) ([a3deed3](https://github.com/homarr-labs/homarr/commit/a3deed3b090aed0df0f45a9bd04c006640691e05)) -* **deps:** update tanstack-query monorepo to ^5.79.2 ([#3301](https://github.com/homarr-labs/homarr/issues/3301)) ([a0585e3](https://github.com/homarr-labs/homarr/commit/a0585e3dd7d9cfbccf8ff5535ae2c753a8b92764)) -* **deps:** update tanstack-query monorepo to ^5.80.0 ([#3307](https://github.com/homarr-labs/homarr/issues/3307)) ([df2a9a5](https://github.com/homarr-labs/homarr/commit/df2a9a5329e06847904af56a0d058c0da59f6380)) -* **deps:** update tanstack-query monorepo to ^5.80.2 ([#3308](https://github.com/homarr-labs/homarr/issues/3308)) ([cae0cad](https://github.com/homarr-labs/homarr/commit/cae0cad92f68f716887e077194d4e30402466d57)) -* **deps:** update tanstack-query monorepo to ^5.80.3 ([#3317](https://github.com/homarr-labs/homarr/issues/3317)) ([c051a42](https://github.com/homarr-labs/homarr/commit/c051a42791de4eae4baf20360efe5b0c8925c22b)) -* **deps:** update tanstack-query monorepo to ^5.80.5 ([#3321](https://github.com/homarr-labs/homarr/issues/3321)) ([cb77a7d](https://github.com/homarr-labs/homarr/commit/cb77a7dc6d60560250765d129aac9bd236693e2b)) -* **deps:** update tanstack-query monorepo to ^5.80.6 ([#3326](https://github.com/homarr-labs/homarr/issues/3326)) ([61553cf](https://github.com/homarr-labs/homarr/commit/61553cfc8e48a1179a148007fb970b1f4e6d509c)) -* **deps:** update testcontainers-node monorepo to v11 (major) ([#3250](https://github.com/homarr-labs/homarr/issues/3250)) ([0d1e3a6](https://github.com/homarr-labs/homarr/commit/0d1e3a625a04abd5f667640ab40e01d28e017488)) -* **deps:** update tiptap monorepo to v2.13.0 ([#3323](https://github.com/homarr-labs/homarr/issues/3323)) ([dac8234](https://github.com/homarr-labs/homarr/commit/dac82347e86dd7faacb24adbfc61ace9c917b8cd)) -* **deps:** update tiptap monorepo to v2.14.0 ([#3334](https://github.com/homarr-labs/homarr/issues/3334)) ([6274a66](https://github.com/homarr-labs/homarr/commit/6274a66048163513e3faaf7011d7d6aa6ad9f161)) -* **deps:** update trpc monorepo to ^11.2.0 ([#3293](https://github.com/homarr-labs/homarr/issues/3293)) ([f0ba693](https://github.com/homarr-labs/homarr/commit/f0ba693077a0c7f7897c81f02ad66b77fce52f1c)) -* **deps:** update trpc monorepo to ^11.3.0 ([#3322](https://github.com/homarr-labs/homarr/issues/3322)) ([74aa561](https://github.com/homarr-labs/homarr/commit/74aa561f470f0f76421f356998caa91dc8bb65a1)) -* **deps:** update trpc monorepo to ^11.3.1 ([#3329](https://github.com/homarr-labs/homarr/issues/3329)) ([8484daa](https://github.com/homarr-labs/homarr/commit/8484daaf7516ad72dd9e7de3117b5e0d50415dbb)) -* **nextcloud:** correct calendar event date mapping and support showU… ([#3330](https://github.com/homarr-labs/homarr/issues/3330)) ([ffd2f80](https://github.com/homarr-labs/homarr/commit/ffd2f802bb777f13eac1ee45e1b5f0ca2b596672)) +- Allow nullable on cpuModelName and default to "Unknown CPU" if null in OMV Integration ([#3310](https://github.com/homarr-labs/homarr/issues/3310)) ([3e7bf62](https://github.com/homarr-labs/homarr/commit/3e7bf62500f4ce0a8662104e2a656ea98cf2558f)) +- csp prevents external stylesheets ([#3337](https://github.com/homarr-labs/homarr/issues/3337)) ([c7a21b1](https://github.com/homarr-labs/homarr/commit/c7a21b1a5f4e7c9d994d81b75a3fd4fa7c013daf)) +- **deps:** update dependency @tabler/icons-react to ^3.34.0 ([#3303](https://github.com/homarr-labs/homarr/issues/3303)) ([5b354ac](https://github.com/homarr-labs/homarr/commit/5b354aca2047e8316b331e327cf6031690dcfef9)) +- **deps:** update dependency dockerode to ^4.0.7 ([#3331](https://github.com/homarr-labs/homarr/issues/3331)) ([07f81ce](https://github.com/homarr-labs/homarr/commit/07f81cee92627e3b6ee4b2bbf084657f9a83ac34)) +- **deps:** update dependency drizzle-orm to ^0.44.1 ([#3280](https://github.com/homarr-labs/homarr/issues/3280)) ([9895c1b](https://github.com/homarr-labs/homarr/commit/9895c1b3ff028a7ea7273ab2625620c9132f5213)) +- **deps:** update dependency drizzle-orm to ^0.44.2 ([#3315](https://github.com/homarr-labs/homarr/issues/3315)) ([9ac9042](https://github.com/homarr-labs/homarr/commit/9ac90425647bf1f10d3f299f043c5d40067347bc)) +- **deps:** update dependency fast-xml-parser to ^5.2.4 ([#3336](https://github.com/homarr-labs/homarr/issues/3336)) ([3ad72e6](https://github.com/homarr-labs/homarr/commit/3ad72e63b1adecd18c53897a6023f09d6f5d011c)) +- **deps:** update dependency node-cron to ^4.1.0 ([#3286](https://github.com/homarr-labs/homarr/issues/3286)) ([1f40868](https://github.com/homarr-labs/homarr/commit/1f408685e69397fa9e3a69bd4331a8240da3713b)) +- **deps:** update dependency sass to ^1.89.1 ([#3285](https://github.com/homarr-labs/homarr/issues/3285)) ([b608ffe](https://github.com/homarr-labs/homarr/commit/b608ffe4900a5dd97ceb2669464c477404d090e7)) +- **deps:** update dependency swagger-ui-react to ^5.24.0 ([#3325](https://github.com/homarr-labs/homarr/issues/3325)) ([cf7336b](https://github.com/homarr-labs/homarr/commit/cf7336ba87c617578ab52e2ece94fd84df3fc623)) +- **deps:** update dependency typescript-eslint to ^8.33.1 ([#3302](https://github.com/homarr-labs/homarr/issues/3302)) ([124e8de](https://github.com/homarr-labs/homarr/commit/124e8de6c584b0efca91d92079f8b3c400bccab2)) +- **deps:** update dependency video.js to ^8.23.3 ([#3320](https://github.com/homarr-labs/homarr/issues/3320)) ([81509fd](https://github.com/homarr-labs/homarr/commit/81509fd96dfe0561964eb58d3d21c02400db2e8c)) +- **deps:** update dependency zod to ^3.25.43 ([#3290](https://github.com/homarr-labs/homarr/issues/3290)) ([161fc86](https://github.com/homarr-labs/homarr/commit/161fc867703c4cf634eaaeec1b73f5e3cbfa7fec)) +- **deps:** update dependency zod to ^3.25.45 ([#3291](https://github.com/homarr-labs/homarr/issues/3291)) ([3337cfa](https://github.com/homarr-labs/homarr/commit/3337cfa3c7e34debcccdbb95ee0bc39f2af98a91)) +- **deps:** update dependency zod to ^3.25.46 ([#3292](https://github.com/homarr-labs/homarr/issues/3292)) ([1b1671e](https://github.com/homarr-labs/homarr/commit/1b1671e0e6d808469ba7f8185c4590cf2f2f6f44)) +- **deps:** update dependency zod to ^3.25.47 ([#3296](https://github.com/homarr-labs/homarr/issues/3296)) ([94f176d](https://github.com/homarr-labs/homarr/commit/94f176d544272e0378e65255aba58b05d56019b2)) +- **deps:** update dependency zod to ^3.25.48 ([#3297](https://github.com/homarr-labs/homarr/issues/3297)) ([ccd8a85](https://github.com/homarr-labs/homarr/commit/ccd8a85e0fcd2cf40dbfb6058787d24a02680b93)) +- **deps:** update dependency zod to ^3.25.49 ([#3304](https://github.com/homarr-labs/homarr/issues/3304)) ([0362487](https://github.com/homarr-labs/homarr/commit/0362487156457ae825cac501e7d53db58c31ab0b)) +- **deps:** update dependency zod to ^3.25.50 ([#3312](https://github.com/homarr-labs/homarr/issues/3312)) ([a0a0449](https://github.com/homarr-labs/homarr/commit/a0a0449c704ff57725ab5e0b459eb209fc929446)) +- **deps:** update dependency zod to ^3.25.51 ([#3316](https://github.com/homarr-labs/homarr/issues/3316)) ([a542ee0](https://github.com/homarr-labs/homarr/commit/a542ee079871c7609ed97c76aa2017305adbfdc9)) +- **deps:** update dependency zod to ^3.25.55 ([#3332](https://github.com/homarr-labs/homarr/issues/3332)) ([ed3f848](https://github.com/homarr-labs/homarr/commit/ed3f848e8afb57cc1b9249551f0260eb52bbd4a6)) +- **deps:** update tanstack-query monorepo to ^5.79.1 ([#3300](https://github.com/homarr-labs/homarr/issues/3300)) ([a3deed3](https://github.com/homarr-labs/homarr/commit/a3deed3b090aed0df0f45a9bd04c006640691e05)) +- **deps:** update tanstack-query monorepo to ^5.79.2 ([#3301](https://github.com/homarr-labs/homarr/issues/3301)) ([a0585e3](https://github.com/homarr-labs/homarr/commit/a0585e3dd7d9cfbccf8ff5535ae2c753a8b92764)) +- **deps:** update tanstack-query monorepo to ^5.80.0 ([#3307](https://github.com/homarr-labs/homarr/issues/3307)) ([df2a9a5](https://github.com/homarr-labs/homarr/commit/df2a9a5329e06847904af56a0d058c0da59f6380)) +- **deps:** update tanstack-query monorepo to ^5.80.2 ([#3308](https://github.com/homarr-labs/homarr/issues/3308)) ([cae0cad](https://github.com/homarr-labs/homarr/commit/cae0cad92f68f716887e077194d4e30402466d57)) +- **deps:** update tanstack-query monorepo to ^5.80.3 ([#3317](https://github.com/homarr-labs/homarr/issues/3317)) ([c051a42](https://github.com/homarr-labs/homarr/commit/c051a42791de4eae4baf20360efe5b0c8925c22b)) +- **deps:** update tanstack-query monorepo to ^5.80.5 ([#3321](https://github.com/homarr-labs/homarr/issues/3321)) ([cb77a7d](https://github.com/homarr-labs/homarr/commit/cb77a7dc6d60560250765d129aac9bd236693e2b)) +- **deps:** update tanstack-query monorepo to ^5.80.6 ([#3326](https://github.com/homarr-labs/homarr/issues/3326)) ([61553cf](https://github.com/homarr-labs/homarr/commit/61553cfc8e48a1179a148007fb970b1f4e6d509c)) +- **deps:** update testcontainers-node monorepo to v11 (major) ([#3250](https://github.com/homarr-labs/homarr/issues/3250)) ([0d1e3a6](https://github.com/homarr-labs/homarr/commit/0d1e3a625a04abd5f667640ab40e01d28e017488)) +- **deps:** update tiptap monorepo to v2.13.0 ([#3323](https://github.com/homarr-labs/homarr/issues/3323)) ([dac8234](https://github.com/homarr-labs/homarr/commit/dac82347e86dd7faacb24adbfc61ace9c917b8cd)) +- **deps:** update tiptap monorepo to v2.14.0 ([#3334](https://github.com/homarr-labs/homarr/issues/3334)) ([6274a66](https://github.com/homarr-labs/homarr/commit/6274a66048163513e3faaf7011d7d6aa6ad9f161)) +- **deps:** update trpc monorepo to ^11.2.0 ([#3293](https://github.com/homarr-labs/homarr/issues/3293)) ([f0ba693](https://github.com/homarr-labs/homarr/commit/f0ba693077a0c7f7897c81f02ad66b77fce52f1c)) +- **deps:** update trpc monorepo to ^11.3.0 ([#3322](https://github.com/homarr-labs/homarr/issues/3322)) ([74aa561](https://github.com/homarr-labs/homarr/commit/74aa561f470f0f76421f356998caa91dc8bb65a1)) +- **deps:** update trpc monorepo to ^11.3.1 ([#3329](https://github.com/homarr-labs/homarr/issues/3329)) ([8484daa](https://github.com/homarr-labs/homarr/commit/8484daaf7516ad72dd9e7de3117b5e0d50415dbb)) +- **nextcloud:** correct calendar event date mapping and support showU… ([#3330](https://github.com/homarr-labs/homarr/issues/3330)) ([ffd2f80](https://github.com/homarr-labs/homarr/commit/ffd2f802bb777f13eac1ee45e1b5f0ca2b596672)) ## [1.22.0](https://github.com/homarr-labs/homarr/compare/v1.21.0...v1.22.0) (2025-05-30) ### Features -* allow custom protocols for app href ([#2575](https://github.com/homarr-labs/homarr/issues/2575)) ([09af0a7](https://github.com/homarr-labs/homarr/commit/09af0a76f64c2fec512ba30726827208d5c3ad95)) -* **cluster-health:** add visibility options ([#3210](https://github.com/homarr-labs/homarr/issues/3210)) ([939df8f](https://github.com/homarr-labs/homarr/commit/939df8f6d11bb36f71854425e4fdc4ca0724da31)) -* **downloads:** add option to limit amount of items ([#3205](https://github.com/homarr-labs/homarr/issues/3205)) ([2dc871e](https://github.com/homarr-labs/homarr/commit/2dc871e531b58aee25db26ab7c5e94626517db36)) +- allow custom protocols for app href ([#2575](https://github.com/homarr-labs/homarr/issues/2575)) ([09af0a7](https://github.com/homarr-labs/homarr/commit/09af0a76f64c2fec512ba30726827208d5c3ad95)) +- **cluster-health:** add visibility options ([#3210](https://github.com/homarr-labs/homarr/issues/3210)) ([939df8f](https://github.com/homarr-labs/homarr/commit/939df8f6d11bb36f71854425e4fdc4ca0724da31)) +- **downloads:** add option to limit amount of items ([#3205](https://github.com/homarr-labs/homarr/issues/3205)) ([2dc871e](https://github.com/homarr-labs/homarr/commit/2dc871e531b58aee25db26ab7c5e94626517db36)) ### Bug Fixes -* **boards:** app select modal images rendering issue ([#3218](https://github.com/homarr-labs/homarr/issues/3218)) ([85e98d2](https://github.com/homarr-labs/homarr/commit/85e98d2b603abe18b37fa74bf50836422b72c9e1)) -* **calendar:** load events for all visible days of calendar month ([#3216](https://github.com/homarr-labs/homarr/issues/3216)) ([437ecd1](https://github.com/homarr-labs/homarr/commit/437ecd10239c70e5a8c4d34119076ab155a2159e)) -* **calendar:** remove scrollbar for 2x2 ([#3227](https://github.com/homarr-labs/homarr/issues/3227)) ([1d27da2](https://github.com/homarr-labs/homarr/commit/1d27da22303b2133bb1a7c59102b7c292bc34833)) -* **cluster-health:** storage items multiply ([#3206](https://github.com/homarr-labs/homarr/issues/3206)) ([1114934](https://github.com/homarr-labs/homarr/commit/11149348fcbe9002bba33763e0b03aed50d20f71)) -* csp prevents fonts to load ([#3225](https://github.com/homarr-labs/homarr/issues/3225)) ([05e159f](https://github.com/homarr-labs/homarr/commit/05e159f5662f04dd298eb13816fe1768d7ef9312)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.4.2 ([#3258](https://github.com/homarr-labs/homarr/issues/3258)) ([4a184d2](https://github.com/homarr-labs/homarr/commit/4a184d23f25a8a06b36cd8c6d9b2a65118399d9f)) -* **deps:** update dependency @kubernetes/client-node to ^1.3.0 ([#3261](https://github.com/homarr-labs/homarr/issues/3261)) ([635c9a2](https://github.com/homarr-labs/homarr/commit/635c9a2687cf2b9a09a3093eb638ef772eddfb03)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.13.6 ([#3244](https://github.com/homarr-labs/homarr/issues/3244)) ([8966e2a](https://github.com/homarr-labs/homarr/commit/8966e2ad8a2025dfc91934ccf825bd76c08dc333)) -* **deps:** update dependency drizzle-orm to ^0.44.0 ([#3256](https://github.com/homarr-labs/homarr/issues/3256)) ([09b49a2](https://github.com/homarr-labs/homarr/commit/09b49a242dd5d3d34bab758f190ab948b6fc7566)) -* **deps:** update dependency flag-icons to ^7.4.0 ([#3265](https://github.com/homarr-labs/homarr/issues/3265)) ([a0eda74](https://github.com/homarr-labs/homarr/commit/a0eda74fa472446c5b93c1b65829e65670620ab6)) -* **deps:** update dependency flag-icons to ^7.5.0 ([#3268](https://github.com/homarr-labs/homarr/issues/3268)) ([2320d3c](https://github.com/homarr-labs/homarr/commit/2320d3c5674413e18e9bb42fd004ada016c5e605)) -* **deps:** update dependency jotai to ^2.12.5 ([#3243](https://github.com/homarr-labs/homarr/issues/3243)) ([9c32385](https://github.com/homarr-labs/homarr/commit/9c323850bc49df5f6fc3437678faab0c7eab2e53)) -* **deps:** update dependency ldapts to v8.0.1 ([#3264](https://github.com/homarr-labs/homarr/issues/3264)) ([bac4f64](https://github.com/homarr-labs/homarr/commit/bac4f642574caf5f170d20353c036396698e5963)) -* **deps:** update dependency node-cron to v4 ([#3075](https://github.com/homarr-labs/homarr/issues/3075)) ([109f9e7](https://github.com/homarr-labs/homarr/commit/109f9e79793b36b46ab1987a56f7c206e21d32e4)) -* **deps:** update dependency octokit to ^5.0.3 ([#3249](https://github.com/homarr-labs/homarr/issues/3249)) ([3253b2f](https://github.com/homarr-labs/homarr/commit/3253b2f138a9e911b50c952e37fb4afb1f71446d)) -* **deps:** update dependency trpc-to-openapi to ^2.3.1 ([#3046](https://github.com/homarr-labs/homarr/issues/3046)) ([640bf7b](https://github.com/homarr-labs/homarr/commit/640bf7b939b201d9905f5119af0dc0da6120b98c)) -* **deps:** update dependency typescript-eslint to ^8.33.0 ([#3247](https://github.com/homarr-labs/homarr/issues/3247)) ([8b553b8](https://github.com/homarr-labs/homarr/commit/8b553b80e61ab608d01d890d26a8ea5bae3f38b8)) -* **deps:** update dependency zod to ^3.25.24 ([#3195](https://github.com/homarr-labs/homarr/issues/3195)) ([0b224e8](https://github.com/homarr-labs/homarr/commit/0b224e8835d4fc5a292a624c8af8d874216b703a)) -* **deps:** update dependency zod to ^3.25.28 ([#3201](https://github.com/homarr-labs/homarr/issues/3201)) ([e0a9e4f](https://github.com/homarr-labs/homarr/commit/e0a9e4f97c9dddb95fbc0b2a65acfd802dac9c19)) -* **deps:** update dependency zod to ^3.25.29 ([#3237](https://github.com/homarr-labs/homarr/issues/3237)) ([81ca6ef](https://github.com/homarr-labs/homarr/commit/81ca6ef7b2767fb0bc285ffa53998e2c586225ec)) -* **deps:** update dependency zod to ^3.25.30 ([#3239](https://github.com/homarr-labs/homarr/issues/3239)) ([3062948](https://github.com/homarr-labs/homarr/commit/30629489396668125dec7d93fcb0e733099c35fe)) -* **deps:** update dependency zod to ^3.25.31 ([#3254](https://github.com/homarr-labs/homarr/issues/3254)) ([e2e4656](https://github.com/homarr-labs/homarr/commit/e2e46560010a94603852ea90a0fc63fabd473198)) -* **deps:** update dependency zod to ^3.25.32 ([#3255](https://github.com/homarr-labs/homarr/issues/3255)) ([9c3a46c](https://github.com/homarr-labs/homarr/commit/9c3a46c071e169459ec7b8c9ba1647b4b354cbea)) -* **deps:** update dependency zod to ^3.25.34 ([#3259](https://github.com/homarr-labs/homarr/issues/3259)) ([c1324ea](https://github.com/homarr-labs/homarr/commit/c1324eab76795dabc0a41315191f9ab6a73ba501)) -* **deps:** update dependency zod to ^3.25.36 ([#3262](https://github.com/homarr-labs/homarr/issues/3262)) ([48ce2af](https://github.com/homarr-labs/homarr/commit/48ce2af4c182985a7721b65535bcf1b41f1cdcba)) -* **deps:** update dependency zod to ^3.25.39 ([#3270](https://github.com/homarr-labs/homarr/issues/3270)) ([862d07d](https://github.com/homarr-labs/homarr/commit/862d07db68e7624342cb81241ef9924e6407fda8)) -* **deps:** update dependency zod to ^3.25.41 ([#3272](https://github.com/homarr-labs/homarr/issues/3272)) ([5bf20aa](https://github.com/homarr-labs/homarr/commit/5bf20aa3538503de1d4f4d04f9de3e3b92442d75)) -* **deps:** update dependency zod to ^3.25.42 ([#3274](https://github.com/homarr-labs/homarr/issues/3274)) ([608280e](https://github.com/homarr-labs/homarr/commit/608280e670432098ce466cfb8fa2b315bf35ead2)) -* **deps:** update mantine monorepo to ^8.0.2 ([#3245](https://github.com/homarr-labs/homarr/issues/3245)) ([816544a](https://github.com/homarr-labs/homarr/commit/816544a996656ccf7cbacf76aff83d013ba21ad1)) -* **deps:** update nextjs monorepo to v15.3.3 ([#3269](https://github.com/homarr-labs/homarr/issues/3269)) ([d72a804](https://github.com/homarr-labs/homarr/commit/d72a804ad9feb24a2b067712128a6566930990a6)) -* **deps:** update tanstack-query monorepo to ^5.77.0 ([#3204](https://github.com/homarr-labs/homarr/issues/3204)) ([ec42f26](https://github.com/homarr-labs/homarr/commit/ec42f265a04f0f96105d6b1318becd5cc94aa8fb)) -* **deps:** update tanstack-query monorepo to ^5.77.1 ([#3229](https://github.com/homarr-labs/homarr/issues/3229)) ([5ea7a20](https://github.com/homarr-labs/homarr/commit/5ea7a206772924faf1f842c80033954c853b3a02)) -* **deps:** update tanstack-query monorepo to ^5.77.2 ([#3232](https://github.com/homarr-labs/homarr/issues/3232)) ([7118690](https://github.com/homarr-labs/homarr/commit/71186908b96f717c6f8c528b0f983e1792a7a885)) -* **deps:** update tanstack-query monorepo to ^5.79.0 ([#3263](https://github.com/homarr-labs/homarr/issues/3263)) ([1f9983f](https://github.com/homarr-labs/homarr/commit/1f9983f16db8677b8c244b63306ea4afd2195d94)) -* **deps:** update trpc monorepo to ^11.1.3 ([#3240](https://github.com/homarr-labs/homarr/issues/3240)) ([78f98ed](https://github.com/homarr-labs/homarr/commit/78f98edc4145e27e2daa269121173905c642c139)) -* **deps:** update trpc monorepo to ^11.1.4 ([#3260](https://github.com/homarr-labs/homarr/issues/3260)) ([bfd7b70](https://github.com/homarr-labs/homarr/commit/bfd7b706182340eaa1db70a3c6cdcc935aee8df4)) -* **deps:** update turbo monorepo to ^2.5.4 ([#3279](https://github.com/homarr-labs/homarr/issues/3279)) ([c8202ab](https://github.com/homarr-labs/homarr/commit/c8202ab3c676bf796c6e7aff2ebfef224a0124c8)) -* **downloads:** upspeed font size wrong ([#3214](https://github.com/homarr-labs/homarr/issues/3214)) ([c67916f](https://github.com/homarr-labs/homarr/commit/c67916f72eded64133fd458184a599f32d8fc63c)) -* **media-request-stats:** users squeezed together ([#3213](https://github.com/homarr-labs/homarr/issues/3213)) ([25bd387](https://github.com/homarr-labs/homarr/commit/25bd3879db9260bbd24a1338cc5f26652ed78d72)) -* navigating back results in navigation back to first page opened ([#3224](https://github.com/homarr-labs/homarr/issues/3224)) ([cbbf0c8](https://github.com/homarr-labs/homarr/commit/cbbf0c8dcf685e31e70bb62f04b1065dab90e18d)) -* reduce logging ([#3200](https://github.com/homarr-labs/homarr/issues/3200)) ([be8b332](https://github.com/homarr-labs/homarr/commit/be8b332f942beb3af181ee6f39558882ed640a0e)) -* **search:** removing server search engine causes loading error ([#3252](https://github.com/homarr-labs/homarr/issues/3252)) ([10f720d](https://github.com/homarr-labs/homarr/commit/10f720d74c6cc70cbf217e8daf8cc7878ac6d712)) -* **visual:** check for creator board permission is wrong ([#3212](https://github.com/homarr-labs/homarr/issues/3212)) ([f7e5e82](https://github.com/homarr-labs/homarr/commit/f7e5e823d5dee36ea11f243a0da7d84a1f363419)) +- **boards:** app select modal images rendering issue ([#3218](https://github.com/homarr-labs/homarr/issues/3218)) ([85e98d2](https://github.com/homarr-labs/homarr/commit/85e98d2b603abe18b37fa74bf50836422b72c9e1)) +- **calendar:** load events for all visible days of calendar month ([#3216](https://github.com/homarr-labs/homarr/issues/3216)) ([437ecd1](https://github.com/homarr-labs/homarr/commit/437ecd10239c70e5a8c4d34119076ab155a2159e)) +- **calendar:** remove scrollbar for 2x2 ([#3227](https://github.com/homarr-labs/homarr/issues/3227)) ([1d27da2](https://github.com/homarr-labs/homarr/commit/1d27da22303b2133bb1a7c59102b7c292bc34833)) +- **cluster-health:** storage items multiply ([#3206](https://github.com/homarr-labs/homarr/issues/3206)) ([1114934](https://github.com/homarr-labs/homarr/commit/11149348fcbe9002bba33763e0b03aed50d20f71)) +- csp prevents fonts to load ([#3225](https://github.com/homarr-labs/homarr/issues/3225)) ([05e159f](https://github.com/homarr-labs/homarr/commit/05e159f5662f04dd298eb13816fe1768d7ef9312)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.4.2 ([#3258](https://github.com/homarr-labs/homarr/issues/3258)) ([4a184d2](https://github.com/homarr-labs/homarr/commit/4a184d23f25a8a06b36cd8c6d9b2a65118399d9f)) +- **deps:** update dependency @kubernetes/client-node to ^1.3.0 ([#3261](https://github.com/homarr-labs/homarr/issues/3261)) ([635c9a2](https://github.com/homarr-labs/homarr/commit/635c9a2687cf2b9a09a3093eb638ef772eddfb03)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.13.6 ([#3244](https://github.com/homarr-labs/homarr/issues/3244)) ([8966e2a](https://github.com/homarr-labs/homarr/commit/8966e2ad8a2025dfc91934ccf825bd76c08dc333)) +- **deps:** update dependency drizzle-orm to ^0.44.0 ([#3256](https://github.com/homarr-labs/homarr/issues/3256)) ([09b49a2](https://github.com/homarr-labs/homarr/commit/09b49a242dd5d3d34bab758f190ab948b6fc7566)) +- **deps:** update dependency flag-icons to ^7.4.0 ([#3265](https://github.com/homarr-labs/homarr/issues/3265)) ([a0eda74](https://github.com/homarr-labs/homarr/commit/a0eda74fa472446c5b93c1b65829e65670620ab6)) +- **deps:** update dependency flag-icons to ^7.5.0 ([#3268](https://github.com/homarr-labs/homarr/issues/3268)) ([2320d3c](https://github.com/homarr-labs/homarr/commit/2320d3c5674413e18e9bb42fd004ada016c5e605)) +- **deps:** update dependency jotai to ^2.12.5 ([#3243](https://github.com/homarr-labs/homarr/issues/3243)) ([9c32385](https://github.com/homarr-labs/homarr/commit/9c323850bc49df5f6fc3437678faab0c7eab2e53)) +- **deps:** update dependency ldapts to v8.0.1 ([#3264](https://github.com/homarr-labs/homarr/issues/3264)) ([bac4f64](https://github.com/homarr-labs/homarr/commit/bac4f642574caf5f170d20353c036396698e5963)) +- **deps:** update dependency node-cron to v4 ([#3075](https://github.com/homarr-labs/homarr/issues/3075)) ([109f9e7](https://github.com/homarr-labs/homarr/commit/109f9e79793b36b46ab1987a56f7c206e21d32e4)) +- **deps:** update dependency octokit to ^5.0.3 ([#3249](https://github.com/homarr-labs/homarr/issues/3249)) ([3253b2f](https://github.com/homarr-labs/homarr/commit/3253b2f138a9e911b50c952e37fb4afb1f71446d)) +- **deps:** update dependency trpc-to-openapi to ^2.3.1 ([#3046](https://github.com/homarr-labs/homarr/issues/3046)) ([640bf7b](https://github.com/homarr-labs/homarr/commit/640bf7b939b201d9905f5119af0dc0da6120b98c)) +- **deps:** update dependency typescript-eslint to ^8.33.0 ([#3247](https://github.com/homarr-labs/homarr/issues/3247)) ([8b553b8](https://github.com/homarr-labs/homarr/commit/8b553b80e61ab608d01d890d26a8ea5bae3f38b8)) +- **deps:** update dependency zod to ^3.25.24 ([#3195](https://github.com/homarr-labs/homarr/issues/3195)) ([0b224e8](https://github.com/homarr-labs/homarr/commit/0b224e8835d4fc5a292a624c8af8d874216b703a)) +- **deps:** update dependency zod to ^3.25.28 ([#3201](https://github.com/homarr-labs/homarr/issues/3201)) ([e0a9e4f](https://github.com/homarr-labs/homarr/commit/e0a9e4f97c9dddb95fbc0b2a65acfd802dac9c19)) +- **deps:** update dependency zod to ^3.25.29 ([#3237](https://github.com/homarr-labs/homarr/issues/3237)) ([81ca6ef](https://github.com/homarr-labs/homarr/commit/81ca6ef7b2767fb0bc285ffa53998e2c586225ec)) +- **deps:** update dependency zod to ^3.25.30 ([#3239](https://github.com/homarr-labs/homarr/issues/3239)) ([3062948](https://github.com/homarr-labs/homarr/commit/30629489396668125dec7d93fcb0e733099c35fe)) +- **deps:** update dependency zod to ^3.25.31 ([#3254](https://github.com/homarr-labs/homarr/issues/3254)) ([e2e4656](https://github.com/homarr-labs/homarr/commit/e2e46560010a94603852ea90a0fc63fabd473198)) +- **deps:** update dependency zod to ^3.25.32 ([#3255](https://github.com/homarr-labs/homarr/issues/3255)) ([9c3a46c](https://github.com/homarr-labs/homarr/commit/9c3a46c071e169459ec7b8c9ba1647b4b354cbea)) +- **deps:** update dependency zod to ^3.25.34 ([#3259](https://github.com/homarr-labs/homarr/issues/3259)) ([c1324ea](https://github.com/homarr-labs/homarr/commit/c1324eab76795dabc0a41315191f9ab6a73ba501)) +- **deps:** update dependency zod to ^3.25.36 ([#3262](https://github.com/homarr-labs/homarr/issues/3262)) ([48ce2af](https://github.com/homarr-labs/homarr/commit/48ce2af4c182985a7721b65535bcf1b41f1cdcba)) +- **deps:** update dependency zod to ^3.25.39 ([#3270](https://github.com/homarr-labs/homarr/issues/3270)) ([862d07d](https://github.com/homarr-labs/homarr/commit/862d07db68e7624342cb81241ef9924e6407fda8)) +- **deps:** update dependency zod to ^3.25.41 ([#3272](https://github.com/homarr-labs/homarr/issues/3272)) ([5bf20aa](https://github.com/homarr-labs/homarr/commit/5bf20aa3538503de1d4f4d04f9de3e3b92442d75)) +- **deps:** update dependency zod to ^3.25.42 ([#3274](https://github.com/homarr-labs/homarr/issues/3274)) ([608280e](https://github.com/homarr-labs/homarr/commit/608280e670432098ce466cfb8fa2b315bf35ead2)) +- **deps:** update mantine monorepo to ^8.0.2 ([#3245](https://github.com/homarr-labs/homarr/issues/3245)) ([816544a](https://github.com/homarr-labs/homarr/commit/816544a996656ccf7cbacf76aff83d013ba21ad1)) +- **deps:** update nextjs monorepo to v15.3.3 ([#3269](https://github.com/homarr-labs/homarr/issues/3269)) ([d72a804](https://github.com/homarr-labs/homarr/commit/d72a804ad9feb24a2b067712128a6566930990a6)) +- **deps:** update tanstack-query monorepo to ^5.77.0 ([#3204](https://github.com/homarr-labs/homarr/issues/3204)) ([ec42f26](https://github.com/homarr-labs/homarr/commit/ec42f265a04f0f96105d6b1318becd5cc94aa8fb)) +- **deps:** update tanstack-query monorepo to ^5.77.1 ([#3229](https://github.com/homarr-labs/homarr/issues/3229)) ([5ea7a20](https://github.com/homarr-labs/homarr/commit/5ea7a206772924faf1f842c80033954c853b3a02)) +- **deps:** update tanstack-query monorepo to ^5.77.2 ([#3232](https://github.com/homarr-labs/homarr/issues/3232)) ([7118690](https://github.com/homarr-labs/homarr/commit/71186908b96f717c6f8c528b0f983e1792a7a885)) +- **deps:** update tanstack-query monorepo to ^5.79.0 ([#3263](https://github.com/homarr-labs/homarr/issues/3263)) ([1f9983f](https://github.com/homarr-labs/homarr/commit/1f9983f16db8677b8c244b63306ea4afd2195d94)) +- **deps:** update trpc monorepo to ^11.1.3 ([#3240](https://github.com/homarr-labs/homarr/issues/3240)) ([78f98ed](https://github.com/homarr-labs/homarr/commit/78f98edc4145e27e2daa269121173905c642c139)) +- **deps:** update trpc monorepo to ^11.1.4 ([#3260](https://github.com/homarr-labs/homarr/issues/3260)) ([bfd7b70](https://github.com/homarr-labs/homarr/commit/bfd7b706182340eaa1db70a3c6cdcc935aee8df4)) +- **deps:** update turbo monorepo to ^2.5.4 ([#3279](https://github.com/homarr-labs/homarr/issues/3279)) ([c8202ab](https://github.com/homarr-labs/homarr/commit/c8202ab3c676bf796c6e7aff2ebfef224a0124c8)) +- **downloads:** upspeed font size wrong ([#3214](https://github.com/homarr-labs/homarr/issues/3214)) ([c67916f](https://github.com/homarr-labs/homarr/commit/c67916f72eded64133fd458184a599f32d8fc63c)) +- **media-request-stats:** users squeezed together ([#3213](https://github.com/homarr-labs/homarr/issues/3213)) ([25bd387](https://github.com/homarr-labs/homarr/commit/25bd3879db9260bbd24a1338cc5f26652ed78d72)) +- navigating back results in navigation back to first page opened ([#3224](https://github.com/homarr-labs/homarr/issues/3224)) ([cbbf0c8](https://github.com/homarr-labs/homarr/commit/cbbf0c8dcf685e31e70bb62f04b1065dab90e18d)) +- reduce logging ([#3200](https://github.com/homarr-labs/homarr/issues/3200)) ([be8b332](https://github.com/homarr-labs/homarr/commit/be8b332f942beb3af181ee6f39558882ed640a0e)) +- **search:** removing server search engine causes loading error ([#3252](https://github.com/homarr-labs/homarr/issues/3252)) ([10f720d](https://github.com/homarr-labs/homarr/commit/10f720d74c6cc70cbf217e8daf8cc7878ac6d712)) +- **visual:** check for creator board permission is wrong ([#3212](https://github.com/homarr-labs/homarr/issues/3212)) ([f7e5e82](https://github.com/homarr-labs/homarr/commit/f7e5e823d5dee36ea11f243a0da7d84a1f363419)) ### Performance Improvements -* cache middleware onboarding and language checks ([#3197](https://github.com/homarr-labs/homarr/issues/3197)) ([2afa9b6](https://github.com/homarr-labs/homarr/commit/2afa9b67274edd79b52598dc0d22437048a67e2c)) +- cache middleware onboarding and language checks ([#3197](https://github.com/homarr-labs/homarr/issues/3197)) ([2afa9b6](https://github.com/homarr-labs/homarr/commit/2afa9b67274edd79b52598dc0d22437048a67e2c)) ## [1.21.0](https://github.com/homarr-labs/homarr/compare/v1.20.0...v1.21.0) (2025-05-23) ### Features -* docker widget ([#2288](https://github.com/homarr-labs/homarr/issues/2288)) ([e1eda53](https://github.com/homarr-labs/homarr/commit/e1eda534da6d97655546f3140f9e36eca8817db3)) +- docker widget ([#2288](https://github.com/homarr-labs/homarr/issues/2288)) ([e1eda53](https://github.com/homarr-labs/homarr/commit/e1eda534da6d97655546f3140f9e36eca8817db3)) ### Bug Fixes -* **deps:** update dependency @tabler/icons-react to ^3.33.0 ([#3132](https://github.com/homarr-labs/homarr/issues/3132)) ([ee8870b](https://github.com/homarr-labs/homarr/commit/ee8870b66bbcb8eeeef359ece9391a496198be0d)) -* **deps:** update dependency octokit to ^4.1.4 ([#3165](https://github.com/homarr-labs/homarr/issues/3165)) ([50445b5](https://github.com/homarr-labs/homarr/commit/50445b560edc3af2631f8d8d9aa81f3387d848f7)) -* **deps:** update dependency octokit to v5 ([#3156](https://github.com/homarr-labs/homarr/issues/3156)) ([8c59abd](https://github.com/homarr-labs/homarr/commit/8c59abdde3d8034f22a2b926b3291b55a0d492ea)) -* **deps:** update dependency swagger-ui-react to ^5.22.0 ([#3178](https://github.com/homarr-labs/homarr/issues/3178)) ([1e7b2e6](https://github.com/homarr-labs/homarr/commit/1e7b2e617b1437f0f98bc791e763bc49b6589b9e)) -* **deps:** update dependency undici to v7.10.0 ([#3158](https://github.com/homarr-labs/homarr/issues/3158)) ([eb5d5f8](https://github.com/homarr-labs/homarr/commit/eb5d5f8260cc9795806ecdb56fbb3f8d19858ed7)) -* **deps:** update dependency zod to ^3.25.12 ([#3172](https://github.com/homarr-labs/homarr/issues/3172)) ([caaee50](https://github.com/homarr-labs/homarr/commit/caaee503c128ff2a0b2a7de7a7c353484e4741a5)) -* **deps:** update dependency zod to ^3.25.13 ([#3173](https://github.com/homarr-labs/homarr/issues/3173)) ([dae6ded](https://github.com/homarr-labs/homarr/commit/dae6dedde544bf28fcdf87c71a9d585078527b82)) -* **deps:** update dependency zod to ^3.25.14 ([#3174](https://github.com/homarr-labs/homarr/issues/3174)) ([23404a2](https://github.com/homarr-labs/homarr/commit/23404a27f1a9dfec4e9126750f8d97e7c5eda572)) -* **deps:** update dependency zod to ^3.25.16 ([#3175](https://github.com/homarr-labs/homarr/issues/3175)) ([5080f51](https://github.com/homarr-labs/homarr/commit/5080f51a8dbe1b82571f356f7ae29ed7be69e18e)) -* **deps:** update dependency zod to ^3.25.17 ([#3177](https://github.com/homarr-labs/homarr/issues/3177)) ([371803a](https://github.com/homarr-labs/homarr/commit/371803ac509efd246367c812a6c0143e7aeda03f)) -* **deps:** update dependency zod to ^3.25.20 ([#3183](https://github.com/homarr-labs/homarr/issues/3183)) ([49498c8](https://github.com/homarr-labs/homarr/commit/49498c870e494b417e6c63d8547a4c0ffd93768b)) -* **deps:** update dependency zod to ^3.25.21 ([#3187](https://github.com/homarr-labs/homarr/issues/3187)) ([37d637d](https://github.com/homarr-labs/homarr/commit/37d637dcae6cbf62efda25a8dc01eedba66f2c74)) -* **deps:** update dependency zod to ^3.25.23 ([#3188](https://github.com/homarr-labs/homarr/issues/3188)) ([9840644](https://github.com/homarr-labs/homarr/commit/9840644ca50d3157223e7da0cf895f2e750afc58)) -* **deps:** update dependency zod to ^3.25.3 ([#3148](https://github.com/homarr-labs/homarr/issues/3148)) ([6e2aa87](https://github.com/homarr-labs/homarr/commit/6e2aa87102b72319236483b9a1d3e5ddd6fe2c82)) -* **deps:** update dependency zod to ^3.25.4 ([#3150](https://github.com/homarr-labs/homarr/issues/3150)) ([49b7080](https://github.com/homarr-labs/homarr/commit/49b7080415aaeee576507d48e8cda18acc9943a8)) -* **deps:** update dependency zod to ^3.25.5 ([#3152](https://github.com/homarr-labs/homarr/issues/3152)) ([79755c9](https://github.com/homarr-labs/homarr/commit/79755c95d3cf58680e434f0113c130db9f649d96)) -* **deps:** update dependency zod to ^3.25.6 ([#3153](https://github.com/homarr-labs/homarr/issues/3153)) ([92ebc05](https://github.com/homarr-labs/homarr/commit/92ebc05fbfded6d20d242ad477cb0dc30243e8cc)) -* **deps:** update dependency zod to ^3.25.7 ([#3154](https://github.com/homarr-labs/homarr/issues/3154)) ([22954b8](https://github.com/homarr-labs/homarr/commit/22954b8d2637cdea9a6502cab2d3d40359fa098f)) -* **deps:** update dependency zod to ^3.25.8 ([#3170](https://github.com/homarr-labs/homarr/issues/3170)) ([72bcbe8](https://github.com/homarr-labs/homarr/commit/72bcbe8effe47fdfb6a94de8defc0d3c12e7c754)) -* **deps:** update dependency zod-validation-error to ^3.4.1 ([#3127](https://github.com/homarr-labs/homarr/issues/3127)) ([886e95d](https://github.com/homarr-labs/homarr/commit/886e95d51714ce20e03d32b4c2cfb673e7e4c218)) -* **deps:** update tanstack-query monorepo to ^5.76.2 ([#3186](https://github.com/homarr-labs/homarr/issues/3186)) ([1584114](https://github.com/homarr-labs/homarr/commit/1584114e72246a018b9f49a859e49f7fb985009d)) -* **deps:** update testcontainers-node monorepo to ^10.27.0 ([#3159](https://github.com/homarr-labs/homarr/issues/3159)) ([18c465e](https://github.com/homarr-labs/homarr/commit/18c465e81e92cf58b7e32bcb70f1ab404a03a135)) -* **deps:** update testcontainers-node monorepo to ^10.28.0 ([#3191](https://github.com/homarr-labs/homarr/issues/3191)) ([43b8241](https://github.com/homarr-labs/homarr/commit/43b82419e9396f0b80bafa0a707d575c3732dc5b)) -* **downloads:** reordering columns in widget does not work ([#3194](https://github.com/homarr-labs/homarr/issues/3194)) ([09f4e67](https://github.com/homarr-labs/homarr/commit/09f4e6785b2ce38da3b52003e9c9300cdd0feb85)) -* esbuild not part of dependencies ([#3139](https://github.com/homarr-labs/homarr/issues/3139)) ([ef540e9](https://github.com/homarr-labs/homarr/commit/ef540e980f90f730020ef081dd105e33b0671232)) -* **items:** resize handle overlaps header ([#3193](https://github.com/homarr-labs/homarr/issues/3193)) ([09f3989](https://github.com/homarr-labs/homarr/commit/09f398948348fb402600506571a967ba405fbafb)) -* **releases-widget:** add hardcoded css classNames([#3181](https://github.com/homarr-labs/homarr/issues/3181)) ([4cb004f](https://github.com/homarr-labs/homarr/commit/4cb004fce0750da339f603b944de55135faa4bfa)) +- **deps:** update dependency @tabler/icons-react to ^3.33.0 ([#3132](https://github.com/homarr-labs/homarr/issues/3132)) ([ee8870b](https://github.com/homarr-labs/homarr/commit/ee8870b66bbcb8eeeef359ece9391a496198be0d)) +- **deps:** update dependency octokit to ^4.1.4 ([#3165](https://github.com/homarr-labs/homarr/issues/3165)) ([50445b5](https://github.com/homarr-labs/homarr/commit/50445b560edc3af2631f8d8d9aa81f3387d848f7)) +- **deps:** update dependency octokit to v5 ([#3156](https://github.com/homarr-labs/homarr/issues/3156)) ([8c59abd](https://github.com/homarr-labs/homarr/commit/8c59abdde3d8034f22a2b926b3291b55a0d492ea)) +- **deps:** update dependency swagger-ui-react to ^5.22.0 ([#3178](https://github.com/homarr-labs/homarr/issues/3178)) ([1e7b2e6](https://github.com/homarr-labs/homarr/commit/1e7b2e617b1437f0f98bc791e763bc49b6589b9e)) +- **deps:** update dependency undici to v7.10.0 ([#3158](https://github.com/homarr-labs/homarr/issues/3158)) ([eb5d5f8](https://github.com/homarr-labs/homarr/commit/eb5d5f8260cc9795806ecdb56fbb3f8d19858ed7)) +- **deps:** update dependency zod to ^3.25.12 ([#3172](https://github.com/homarr-labs/homarr/issues/3172)) ([caaee50](https://github.com/homarr-labs/homarr/commit/caaee503c128ff2a0b2a7de7a7c353484e4741a5)) +- **deps:** update dependency zod to ^3.25.13 ([#3173](https://github.com/homarr-labs/homarr/issues/3173)) ([dae6ded](https://github.com/homarr-labs/homarr/commit/dae6dedde544bf28fcdf87c71a9d585078527b82)) +- **deps:** update dependency zod to ^3.25.14 ([#3174](https://github.com/homarr-labs/homarr/issues/3174)) ([23404a2](https://github.com/homarr-labs/homarr/commit/23404a27f1a9dfec4e9126750f8d97e7c5eda572)) +- **deps:** update dependency zod to ^3.25.16 ([#3175](https://github.com/homarr-labs/homarr/issues/3175)) ([5080f51](https://github.com/homarr-labs/homarr/commit/5080f51a8dbe1b82571f356f7ae29ed7be69e18e)) +- **deps:** update dependency zod to ^3.25.17 ([#3177](https://github.com/homarr-labs/homarr/issues/3177)) ([371803a](https://github.com/homarr-labs/homarr/commit/371803ac509efd246367c812a6c0143e7aeda03f)) +- **deps:** update dependency zod to ^3.25.20 ([#3183](https://github.com/homarr-labs/homarr/issues/3183)) ([49498c8](https://github.com/homarr-labs/homarr/commit/49498c870e494b417e6c63d8547a4c0ffd93768b)) +- **deps:** update dependency zod to ^3.25.21 ([#3187](https://github.com/homarr-labs/homarr/issues/3187)) ([37d637d](https://github.com/homarr-labs/homarr/commit/37d637dcae6cbf62efda25a8dc01eedba66f2c74)) +- **deps:** update dependency zod to ^3.25.23 ([#3188](https://github.com/homarr-labs/homarr/issues/3188)) ([9840644](https://github.com/homarr-labs/homarr/commit/9840644ca50d3157223e7da0cf895f2e750afc58)) +- **deps:** update dependency zod to ^3.25.3 ([#3148](https://github.com/homarr-labs/homarr/issues/3148)) ([6e2aa87](https://github.com/homarr-labs/homarr/commit/6e2aa87102b72319236483b9a1d3e5ddd6fe2c82)) +- **deps:** update dependency zod to ^3.25.4 ([#3150](https://github.com/homarr-labs/homarr/issues/3150)) ([49b7080](https://github.com/homarr-labs/homarr/commit/49b7080415aaeee576507d48e8cda18acc9943a8)) +- **deps:** update dependency zod to ^3.25.5 ([#3152](https://github.com/homarr-labs/homarr/issues/3152)) ([79755c9](https://github.com/homarr-labs/homarr/commit/79755c95d3cf58680e434f0113c130db9f649d96)) +- **deps:** update dependency zod to ^3.25.6 ([#3153](https://github.com/homarr-labs/homarr/issues/3153)) ([92ebc05](https://github.com/homarr-labs/homarr/commit/92ebc05fbfded6d20d242ad477cb0dc30243e8cc)) +- **deps:** update dependency zod to ^3.25.7 ([#3154](https://github.com/homarr-labs/homarr/issues/3154)) ([22954b8](https://github.com/homarr-labs/homarr/commit/22954b8d2637cdea9a6502cab2d3d40359fa098f)) +- **deps:** update dependency zod to ^3.25.8 ([#3170](https://github.com/homarr-labs/homarr/issues/3170)) ([72bcbe8](https://github.com/homarr-labs/homarr/commit/72bcbe8effe47fdfb6a94de8defc0d3c12e7c754)) +- **deps:** update dependency zod-validation-error to ^3.4.1 ([#3127](https://github.com/homarr-labs/homarr/issues/3127)) ([886e95d](https://github.com/homarr-labs/homarr/commit/886e95d51714ce20e03d32b4c2cfb673e7e4c218)) +- **deps:** update tanstack-query monorepo to ^5.76.2 ([#3186](https://github.com/homarr-labs/homarr/issues/3186)) ([1584114](https://github.com/homarr-labs/homarr/commit/1584114e72246a018b9f49a859e49f7fb985009d)) +- **deps:** update testcontainers-node monorepo to ^10.27.0 ([#3159](https://github.com/homarr-labs/homarr/issues/3159)) ([18c465e](https://github.com/homarr-labs/homarr/commit/18c465e81e92cf58b7e32bcb70f1ab404a03a135)) +- **deps:** update testcontainers-node monorepo to ^10.28.0 ([#3191](https://github.com/homarr-labs/homarr/issues/3191)) ([43b8241](https://github.com/homarr-labs/homarr/commit/43b82419e9396f0b80bafa0a707d575c3732dc5b)) +- **downloads:** reordering columns in widget does not work ([#3194](https://github.com/homarr-labs/homarr/issues/3194)) ([09f4e67](https://github.com/homarr-labs/homarr/commit/09f4e6785b2ce38da3b52003e9c9300cdd0feb85)) +- esbuild not part of dependencies ([#3139](https://github.com/homarr-labs/homarr/issues/3139)) ([ef540e9](https://github.com/homarr-labs/homarr/commit/ef540e980f90f730020ef081dd105e33b0671232)) +- **items:** resize handle overlaps header ([#3193](https://github.com/homarr-labs/homarr/issues/3193)) ([09f3989](https://github.com/homarr-labs/homarr/commit/09f398948348fb402600506571a967ba405fbafb)) +- **releases-widget:** add hardcoded css classNames([#3181](https://github.com/homarr-labs/homarr/issues/3181)) ([4cb004f](https://github.com/homarr-labs/homarr/commit/4cb004fce0750da339f603b944de55135faa4bfa)) ## [1.20.0](https://github.com/homarr-labs/homarr/compare/v1.19.1...v1.20.0) (2025-05-16) ### Features -* add css class to logo for custom css ([#3121](https://github.com/homarr-labs/homarr/issues/3121)) ([9b8320c](https://github.com/homarr-labs/homarr/commit/9b8320c10d51cc449b3fb5c1532408bff5655788)) -* **auth:** add account linking for oidc providers ([#3106](https://github.com/homarr-labs/homarr/issues/3106)) ([3daf1c8](https://github.com/homarr-labs/homarr/commit/3daf1c8341ab40a580777246e742ff5019a483d2)) -* **integration:** improve integration test connection ([#3005](https://github.com/homarr-labs/homarr/issues/3005)) ([ef9a5e9](https://github.com/homarr-labs/homarr/commit/ef9a5e9895d7079008046df66f6a6d538af106c9)) -* **releases-widget:** added auto icon search when editing a repository ([#3087](https://github.com/homarr-labs/homarr/issues/3087)) ([9413430](https://github.com/homarr-labs/homarr/commit/94134303d7dc6f2d52e4955dcd9d1afbd8d203fb)) -* **releases-widget:** limit number of displayed releases and custom name for repositories ([#2974](https://github.com/homarr-labs/homarr/issues/2974)) ([8c1b365](https://github.com/homarr-labs/homarr/commit/8c1b365733c2bccd0838cbf07aa59115bcc0c0cd)) +- add css class to logo for custom css ([#3121](https://github.com/homarr-labs/homarr/issues/3121)) ([9b8320c](https://github.com/homarr-labs/homarr/commit/9b8320c10d51cc449b3fb5c1532408bff5655788)) +- **auth:** add account linking for oidc providers ([#3106](https://github.com/homarr-labs/homarr/issues/3106)) ([3daf1c8](https://github.com/homarr-labs/homarr/commit/3daf1c8341ab40a580777246e742ff5019a483d2)) +- **integration:** improve integration test connection ([#3005](https://github.com/homarr-labs/homarr/issues/3005)) ([ef9a5e9](https://github.com/homarr-labs/homarr/commit/ef9a5e9895d7079008046df66f6a6d538af106c9)) +- **releases-widget:** added auto icon search when editing a repository ([#3087](https://github.com/homarr-labs/homarr/issues/3087)) ([9413430](https://github.com/homarr-labs/homarr/commit/94134303d7dc6f2d52e4955dcd9d1afbd8d203fb)) +- **releases-widget:** limit number of displayed releases and custom name for repositories ([#2974](https://github.com/homarr-labs/homarr/issues/2974)) ([8c1b365](https://github.com/homarr-labs/homarr/commit/8c1b365733c2bccd0838cbf07aa59115bcc0c0cd)) ### Bug Fixes -* **calendar:** some timezones result in offset of one day ([#3120](https://github.com/homarr-labs/homarr/issues/3120)) ([b86159b](https://github.com/homarr-labs/homarr/commit/b86159ba7c1cdaea973466bd7430fc45fd0d8317)) -* **deps:** missing dependencies in definitions package for docs link codegen ([#3119](https://github.com/homarr-labs/homarr/issues/3119)) ([42e7fe3](https://github.com/homarr-labs/homarr/commit/42e7fe3273b0f0e8f67e38ac3fd758528cc47913)) -* **deps:** update dependency @auth/core to ^0.39.1 ([#3072](https://github.com/homarr-labs/homarr/issues/3072)) ([0d23119](https://github.com/homarr-labs/homarr/commit/0d2311975c9062f538e7cf7166cc354bc6b21468)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.9.1 ([#3073](https://github.com/homarr-labs/homarr/issues/3073)) ([3f9f94e](https://github.com/homarr-labs/homarr/commit/3f9f94ea45e001d0f2c966ee21d1e148103a854e)) -* **deps:** update dependency @extractus/feed-extractor to v7.1.6 ([#3105](https://github.com/homarr-labs/homarr/issues/3105)) ([d96bc89](https://github.com/homarr-labs/homarr/commit/d96bc898fdc014940207c1d7bead371ac4df33a9)) -* **deps:** update dependency bcrypt to v6 ([#3083](https://github.com/homarr-labs/homarr/issues/3083)) ([5686910](https://github.com/homarr-labs/homarr/commit/5686910a4735801c40caed08a4c8b931fd04418f)) -* **deps:** update dependency next-auth to v5.0.0-beta.28 ([#3074](https://github.com/homarr-labs/homarr/issues/3074)) ([98773e7](https://github.com/homarr-labs/homarr/commit/98773e7dba3f7f816a50c134cedf81cddb55e5f1)) -* **deps:** update dependency sass to ^1.88.0 ([#3078](https://github.com/homarr-labs/homarr/issues/3078)) ([b0f7310](https://github.com/homarr-labs/homarr/commit/b0f7310cb79e014e58a72dcf812d3d4cc876d034)) -* **deps:** update dependency sass to ^1.89.0 ([#3118](https://github.com/homarr-labs/homarr/issues/3118)) ([5b16468](https://github.com/homarr-labs/homarr/commit/5b16468cab53429d4f8cf36771ab6efafea86743)) -* **deps:** update dependency typescript-eslint to ^8.32.1 ([#3093](https://github.com/homarr-labs/homarr/issues/3093)) ([42b377d](https://github.com/homarr-labs/homarr/commit/42b377d0672973cb3d7b32c0d1e2c0663d68c2a8)) -* **deps:** update dependency undici to v7.9.0 ([#3077](https://github.com/homarr-labs/homarr/issues/3077)) ([01d53ee](https://github.com/homarr-labs/homarr/commit/01d53eee60f7269158565cfa46f7aebdfa8d41cf)) -* **deps:** update mantine monorepo to ^8.0.1 ([#3107](https://github.com/homarr-labs/homarr/issues/3107)) ([25efe3d](https://github.com/homarr-labs/homarr/commit/25efe3d33504f8e4f1eb3f29edfdeccf4b15a8e4)) -* **deps:** update tanstack-query monorepo to ^5.76.0 ([#3090](https://github.com/homarr-labs/homarr/issues/3090)) ([388bc73](https://github.com/homarr-labs/homarr/commit/388bc7392c318e05f85134cf969e10d9627c55f9)) -* **deps:** update tanstack-query monorepo to ^5.76.1 ([#3101](https://github.com/homarr-labs/homarr/issues/3101)) ([c1e5d77](https://github.com/homarr-labs/homarr/commit/c1e5d77176126c6248f052d2baa3cf09837fba62)) -* **deps:** update testcontainers-node monorepo to ^10.26.0 ([#3114](https://github.com/homarr-labs/homarr/issues/3114)) ([cb81efa](https://github.com/homarr-labs/homarr/commit/cb81efa42c99f4bd8024b21e0818294db8d22fec)) -* **releases-widget:** delete the empty repository when canceling `Add Reposotory` ([#3082](https://github.com/homarr-labs/homarr/issues/3082)) ([72862ef](https://github.com/homarr-labs/homarr/commit/72862efae274cfc25fe656aef27f6acb2e1b0ca6)) -* **releases-widget:** reduced padding for `ul` in release description ([#3085](https://github.com/homarr-labs/homarr/issues/3085)) ([593d97e](https://github.com/homarr-labs/homarr/commit/593d97e27aa85ab023935d12c8cbf534d38c288f)) -* **releases-widget:** removed version regex in options overview ([#3081](https://github.com/homarr-labs/homarr/issues/3081)) ([59cae02](https://github.com/homarr-labs/homarr/commit/59cae02623b09e60b8c300c18349ea282c872822)) -* **releases-widget:** validation preventing removal of a previously added icon ([#3086](https://github.com/homarr-labs/homarr/issues/3086)) ([18fe8ec](https://github.com/homarr-labs/homarr/commit/18fe8ecd39f6551135beb0333cbad5b9ff4d6664)) -* updated contributors contain unnecessary data ([#3124](https://github.com/homarr-labs/homarr/issues/3124)) ([6e03e5a](https://github.com/homarr-labs/homarr/commit/6e03e5a40c9aa0ee5e0e3de4277ffbe44ad45b66)) +- **calendar:** some timezones result in offset of one day ([#3120](https://github.com/homarr-labs/homarr/issues/3120)) ([b86159b](https://github.com/homarr-labs/homarr/commit/b86159ba7c1cdaea973466bd7430fc45fd0d8317)) +- **deps:** missing dependencies in definitions package for docs link codegen ([#3119](https://github.com/homarr-labs/homarr/issues/3119)) ([42e7fe3](https://github.com/homarr-labs/homarr/commit/42e7fe3273b0f0e8f67e38ac3fd758528cc47913)) +- **deps:** update dependency @auth/core to ^0.39.1 ([#3072](https://github.com/homarr-labs/homarr/issues/3072)) ([0d23119](https://github.com/homarr-labs/homarr/commit/0d2311975c9062f538e7cf7166cc354bc6b21468)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.9.1 ([#3073](https://github.com/homarr-labs/homarr/issues/3073)) ([3f9f94e](https://github.com/homarr-labs/homarr/commit/3f9f94ea45e001d0f2c966ee21d1e148103a854e)) +- **deps:** update dependency @extractus/feed-extractor to v7.1.6 ([#3105](https://github.com/homarr-labs/homarr/issues/3105)) ([d96bc89](https://github.com/homarr-labs/homarr/commit/d96bc898fdc014940207c1d7bead371ac4df33a9)) +- **deps:** update dependency bcrypt to v6 ([#3083](https://github.com/homarr-labs/homarr/issues/3083)) ([5686910](https://github.com/homarr-labs/homarr/commit/5686910a4735801c40caed08a4c8b931fd04418f)) +- **deps:** update dependency next-auth to v5.0.0-beta.28 ([#3074](https://github.com/homarr-labs/homarr/issues/3074)) ([98773e7](https://github.com/homarr-labs/homarr/commit/98773e7dba3f7f816a50c134cedf81cddb55e5f1)) +- **deps:** update dependency sass to ^1.88.0 ([#3078](https://github.com/homarr-labs/homarr/issues/3078)) ([b0f7310](https://github.com/homarr-labs/homarr/commit/b0f7310cb79e014e58a72dcf812d3d4cc876d034)) +- **deps:** update dependency sass to ^1.89.0 ([#3118](https://github.com/homarr-labs/homarr/issues/3118)) ([5b16468](https://github.com/homarr-labs/homarr/commit/5b16468cab53429d4f8cf36771ab6efafea86743)) +- **deps:** update dependency typescript-eslint to ^8.32.1 ([#3093](https://github.com/homarr-labs/homarr/issues/3093)) ([42b377d](https://github.com/homarr-labs/homarr/commit/42b377d0672973cb3d7b32c0d1e2c0663d68c2a8)) +- **deps:** update dependency undici to v7.9.0 ([#3077](https://github.com/homarr-labs/homarr/issues/3077)) ([01d53ee](https://github.com/homarr-labs/homarr/commit/01d53eee60f7269158565cfa46f7aebdfa8d41cf)) +- **deps:** update mantine monorepo to ^8.0.1 ([#3107](https://github.com/homarr-labs/homarr/issues/3107)) ([25efe3d](https://github.com/homarr-labs/homarr/commit/25efe3d33504f8e4f1eb3f29edfdeccf4b15a8e4)) +- **deps:** update tanstack-query monorepo to ^5.76.0 ([#3090](https://github.com/homarr-labs/homarr/issues/3090)) ([388bc73](https://github.com/homarr-labs/homarr/commit/388bc7392c318e05f85134cf969e10d9627c55f9)) +- **deps:** update tanstack-query monorepo to ^5.76.1 ([#3101](https://github.com/homarr-labs/homarr/issues/3101)) ([c1e5d77](https://github.com/homarr-labs/homarr/commit/c1e5d77176126c6248f052d2baa3cf09837fba62)) +- **deps:** update testcontainers-node monorepo to ^10.26.0 ([#3114](https://github.com/homarr-labs/homarr/issues/3114)) ([cb81efa](https://github.com/homarr-labs/homarr/commit/cb81efa42c99f4bd8024b21e0818294db8d22fec)) +- **releases-widget:** delete the empty repository when canceling `Add Reposotory` ([#3082](https://github.com/homarr-labs/homarr/issues/3082)) ([72862ef](https://github.com/homarr-labs/homarr/commit/72862efae274cfc25fe656aef27f6acb2e1b0ca6)) +- **releases-widget:** reduced padding for `ul` in release description ([#3085](https://github.com/homarr-labs/homarr/issues/3085)) ([593d97e](https://github.com/homarr-labs/homarr/commit/593d97e27aa85ab023935d12c8cbf534d38c288f)) +- **releases-widget:** removed version regex in options overview ([#3081](https://github.com/homarr-labs/homarr/issues/3081)) ([59cae02](https://github.com/homarr-labs/homarr/commit/59cae02623b09e60b8c300c18349ea282c872822)) +- **releases-widget:** validation preventing removal of a previously added icon ([#3086](https://github.com/homarr-labs/homarr/issues/3086)) ([18fe8ec](https://github.com/homarr-labs/homarr/commit/18fe8ecd39f6551135beb0333cbad5b9ff4d6664)) +- updated contributors contain unnecessary data ([#3124](https://github.com/homarr-labs/homarr/issues/3124)) ([6e03e5a](https://github.com/homarr-labs/homarr/commit/6e03e5a40c9aa0ee5e0e3de4277ffbe44ad45b66)) ## [1.19.1](https://github.com/homarr-labs/homarr/compare/v1.19.0...v1.19.1) (2025-05-09) ### Bug Fixes -* **deps:** update dependency @extractus/feed-extractor to v7.1.5 ([#3020](https://github.com/homarr-labs/homarr/issues/3020)) ([758b1a0](https://github.com/homarr-labs/homarr/commit/758b1a049019d903f152f783eab3b6fc4be4de14)) -* **deps:** update dependency @kubernetes/client-node to ^1.2.0 ([#3042](https://github.com/homarr-labs/homarr/issues/3042)) ([273d4ed](https://github.com/homarr-labs/homarr/commit/273d4edb233f5d5faa7105c23208d95268119786)) -* **deps:** update dependency better-sqlite3 to ^11.10.0 ([#3053](https://github.com/homarr-labs/homarr/issues/3053)) ([0d5f430](https://github.com/homarr-labs/homarr/commit/0d5f430bd45e6d29d604d4f93ff57cfc7a64e309)) -* **deps:** update dependency drizzle-kit to ^0.31.1 ([#3013](https://github.com/homarr-labs/homarr/issues/3013)) ([76ce6ff](https://github.com/homarr-labs/homarr/commit/76ce6ff1fab34223e7ff5abf46193f1ae9b011d1)) -* **deps:** update dependency eslint-config-prettier to ^10.1.3 ([#3047](https://github.com/homarr-labs/homarr/issues/3047)) ([e94c05f](https://github.com/homarr-labs/homarr/commit/e94c05f3d1eea1841b978359d3c41d8a46a08a39)) -* **deps:** update dependency eslint-config-prettier to ^10.1.5 ([#3061](https://github.com/homarr-labs/homarr/issues/3061)) ([395e03c](https://github.com/homarr-labs/homarr/commit/395e03c8101af873f35388ae1b833dc68d552792)) -* **deps:** update dependency jotai to ^2.12.4 ([#3038](https://github.com/homarr-labs/homarr/issues/3038)) ([7ec1793](https://github.com/homarr-labs/homarr/commit/7ec179304040d6782e516358aeaae2eaa143dc1a)) -* **deps:** update dependency ldapts to v8 ([#3028](https://github.com/homarr-labs/homarr/issues/3028)) ([7c0baf5](https://github.com/homarr-labs/homarr/commit/7c0baf5fba19735c2b3fac0728359a9aa8c617e6)) -* **deps:** update dependency react-error-boundary to v6 ([#3016](https://github.com/homarr-labs/homarr/issues/3016)) ([680f7b0](https://github.com/homarr-labs/homarr/commit/680f7b0c7277ffcbb6a033fd7a2f14146e8a2fca)) -* **deps:** update dependency typescript-eslint to ^8.32.0 ([#3027](https://github.com/homarr-labs/homarr/issues/3027)) ([bee1ddd](https://github.com/homarr-labs/homarr/commit/bee1dddc9ff1b213ef9fd9cc1696bf22cc816b19)) -* **deps:** update dependency ws to ^8.18.2 ([#3012](https://github.com/homarr-labs/homarr/issues/3012)) ([9bb26eb](https://github.com/homarr-labs/homarr/commit/9bb26ebcc3a3f400317c85bd1fb13621d52049c2)) -* **deps:** update dependency zod to ^3.24.4 ([#3021](https://github.com/homarr-labs/homarr/issues/3021)) ([e5e686d](https://github.com/homarr-labs/homarr/commit/e5e686d59086320a565c3367a389d1117fd74d88)) -* **deps:** update mantine monorepo to v8 (major) ([#3022](https://github.com/homarr-labs/homarr/issues/3022)) ([44853ea](https://github.com/homarr-labs/homarr/commit/44853ea64bed3a093a26cb07904d8beedf220e4e)) -* **deps:** update nextjs monorepo to v15.3.2 ([#3045](https://github.com/homarr-labs/homarr/issues/3045)) ([b6eb8ca](https://github.com/homarr-labs/homarr/commit/b6eb8ca0f6d0e6b2fac40423a6c0157dff292622)) -* **deps:** update tanstack-query monorepo to ^5.75.2 ([#3018](https://github.com/homarr-labs/homarr/issues/3018)) ([d512fc0](https://github.com/homarr-labs/homarr/commit/d512fc042a0cb06238f3c86f92b12ad152208a9c)) -* **deps:** update tanstack-query monorepo to ^5.75.4 ([#3029](https://github.com/homarr-labs/homarr/issues/3029)) ([861728a](https://github.com/homarr-labs/homarr/commit/861728a7c3156bbe618b9fb186d9f168ba9b339b)) -* **deps:** update tanstack-query monorepo to ^5.75.5 ([#3048](https://github.com/homarr-labs/homarr/issues/3048)) ([8cb9ddb](https://github.com/homarr-labs/homarr/commit/8cb9ddbce3f00e6e3df07c796c39fda7dd18b7b1)) -* **deps:** update tanstack-query monorepo to ^5.75.6 ([#3062](https://github.com/homarr-labs/homarr/issues/3062)) ([d6180eb](https://github.com/homarr-labs/homarr/commit/d6180ebc7387249265ad9c296c52aab6d393d88a)) -* **deps:** update tanstack-query monorepo to ^5.75.7 ([#3063](https://github.com/homarr-labs/homarr/issues/3063)) ([b71c5c6](https://github.com/homarr-labs/homarr/commit/b71c5c6fc73cab4ebc1bfe9d70722f166ebcdb47)) -* **deps:** update tiptap monorepo to v2.12.0 ([#3025](https://github.com/homarr-labs/homarr/issues/3025)) ([8a0557f](https://github.com/homarr-labs/homarr/commit/8a0557f927f6423e37a372c4c4ffea224598ff45)) -* **deps:** update turbo monorepo to ^2.5.3 ([#3043](https://github.com/homarr-labs/homarr/issues/3043)) ([9b6110b](https://github.com/homarr-labs/homarr/commit/9b6110b9c9ec08bde335cc95d7548e2dddfab45b)) -* **logs:** log error cause when object, sign in oidc debug messages ([#3054](https://github.com/homarr-labs/homarr/issues/3054)) ([2bdb1c7](https://github.com/homarr-labs/homarr/commit/2bdb1c75f680e7715bbe68c6f50e24ea861302ca)) -* **releases-widget:** error display, decouple database repository object from responses and batch widget queries ([#2891](https://github.com/homarr-labs/homarr/issues/2891)) ([347c6d1](https://github.com/homarr-labs/homarr/commit/347c6d15191a64899ff844cfe689973f44b9c556)) -* **releases-widget:** improved provider parsing of missing properties ([#2964](https://github.com/homarr-labs/homarr/issues/2964)) ([b62d47d](https://github.com/homarr-labs/homarr/commit/b62d47d303ca1271b932b6347a489df6f16fc680)) +- **deps:** update dependency @extractus/feed-extractor to v7.1.5 ([#3020](https://github.com/homarr-labs/homarr/issues/3020)) ([758b1a0](https://github.com/homarr-labs/homarr/commit/758b1a049019d903f152f783eab3b6fc4be4de14)) +- **deps:** update dependency @kubernetes/client-node to ^1.2.0 ([#3042](https://github.com/homarr-labs/homarr/issues/3042)) ([273d4ed](https://github.com/homarr-labs/homarr/commit/273d4edb233f5d5faa7105c23208d95268119786)) +- **deps:** update dependency better-sqlite3 to ^11.10.0 ([#3053](https://github.com/homarr-labs/homarr/issues/3053)) ([0d5f430](https://github.com/homarr-labs/homarr/commit/0d5f430bd45e6d29d604d4f93ff57cfc7a64e309)) +- **deps:** update dependency drizzle-kit to ^0.31.1 ([#3013](https://github.com/homarr-labs/homarr/issues/3013)) ([76ce6ff](https://github.com/homarr-labs/homarr/commit/76ce6ff1fab34223e7ff5abf46193f1ae9b011d1)) +- **deps:** update dependency eslint-config-prettier to ^10.1.3 ([#3047](https://github.com/homarr-labs/homarr/issues/3047)) ([e94c05f](https://github.com/homarr-labs/homarr/commit/e94c05f3d1eea1841b978359d3c41d8a46a08a39)) +- **deps:** update dependency eslint-config-prettier to ^10.1.5 ([#3061](https://github.com/homarr-labs/homarr/issues/3061)) ([395e03c](https://github.com/homarr-labs/homarr/commit/395e03c8101af873f35388ae1b833dc68d552792)) +- **deps:** update dependency jotai to ^2.12.4 ([#3038](https://github.com/homarr-labs/homarr/issues/3038)) ([7ec1793](https://github.com/homarr-labs/homarr/commit/7ec179304040d6782e516358aeaae2eaa143dc1a)) +- **deps:** update dependency ldapts to v8 ([#3028](https://github.com/homarr-labs/homarr/issues/3028)) ([7c0baf5](https://github.com/homarr-labs/homarr/commit/7c0baf5fba19735c2b3fac0728359a9aa8c617e6)) +- **deps:** update dependency react-error-boundary to v6 ([#3016](https://github.com/homarr-labs/homarr/issues/3016)) ([680f7b0](https://github.com/homarr-labs/homarr/commit/680f7b0c7277ffcbb6a033fd7a2f14146e8a2fca)) +- **deps:** update dependency typescript-eslint to ^8.32.0 ([#3027](https://github.com/homarr-labs/homarr/issues/3027)) ([bee1ddd](https://github.com/homarr-labs/homarr/commit/bee1dddc9ff1b213ef9fd9cc1696bf22cc816b19)) +- **deps:** update dependency ws to ^8.18.2 ([#3012](https://github.com/homarr-labs/homarr/issues/3012)) ([9bb26eb](https://github.com/homarr-labs/homarr/commit/9bb26ebcc3a3f400317c85bd1fb13621d52049c2)) +- **deps:** update dependency zod to ^3.24.4 ([#3021](https://github.com/homarr-labs/homarr/issues/3021)) ([e5e686d](https://github.com/homarr-labs/homarr/commit/e5e686d59086320a565c3367a389d1117fd74d88)) +- **deps:** update mantine monorepo to v8 (major) ([#3022](https://github.com/homarr-labs/homarr/issues/3022)) ([44853ea](https://github.com/homarr-labs/homarr/commit/44853ea64bed3a093a26cb07904d8beedf220e4e)) +- **deps:** update nextjs monorepo to v15.3.2 ([#3045](https://github.com/homarr-labs/homarr/issues/3045)) ([b6eb8ca](https://github.com/homarr-labs/homarr/commit/b6eb8ca0f6d0e6b2fac40423a6c0157dff292622)) +- **deps:** update tanstack-query monorepo to ^5.75.2 ([#3018](https://github.com/homarr-labs/homarr/issues/3018)) ([d512fc0](https://github.com/homarr-labs/homarr/commit/d512fc042a0cb06238f3c86f92b12ad152208a9c)) +- **deps:** update tanstack-query monorepo to ^5.75.4 ([#3029](https://github.com/homarr-labs/homarr/issues/3029)) ([861728a](https://github.com/homarr-labs/homarr/commit/861728a7c3156bbe618b9fb186d9f168ba9b339b)) +- **deps:** update tanstack-query monorepo to ^5.75.5 ([#3048](https://github.com/homarr-labs/homarr/issues/3048)) ([8cb9ddb](https://github.com/homarr-labs/homarr/commit/8cb9ddbce3f00e6e3df07c796c39fda7dd18b7b1)) +- **deps:** update tanstack-query monorepo to ^5.75.6 ([#3062](https://github.com/homarr-labs/homarr/issues/3062)) ([d6180eb](https://github.com/homarr-labs/homarr/commit/d6180ebc7387249265ad9c296c52aab6d393d88a)) +- **deps:** update tanstack-query monorepo to ^5.75.7 ([#3063](https://github.com/homarr-labs/homarr/issues/3063)) ([b71c5c6](https://github.com/homarr-labs/homarr/commit/b71c5c6fc73cab4ebc1bfe9d70722f166ebcdb47)) +- **deps:** update tiptap monorepo to v2.12.0 ([#3025](https://github.com/homarr-labs/homarr/issues/3025)) ([8a0557f](https://github.com/homarr-labs/homarr/commit/8a0557f927f6423e37a372c4c4ffea224598ff45)) +- **deps:** update turbo monorepo to ^2.5.3 ([#3043](https://github.com/homarr-labs/homarr/issues/3043)) ([9b6110b](https://github.com/homarr-labs/homarr/commit/9b6110b9c9ec08bde335cc95d7548e2dddfab45b)) +- **logs:** log error cause when object, sign in oidc debug messages ([#3054](https://github.com/homarr-labs/homarr/issues/3054)) ([2bdb1c7](https://github.com/homarr-labs/homarr/commit/2bdb1c75f680e7715bbe68c6f50e24ea861302ca)) +- **releases-widget:** error display, decouple database repository object from responses and batch widget queries ([#2891](https://github.com/homarr-labs/homarr/issues/2891)) ([347c6d1](https://github.com/homarr-labs/homarr/commit/347c6d15191a64899ff844cfe689973f44b9c556)) +- **releases-widget:** improved provider parsing of missing properties ([#2964](https://github.com/homarr-labs/homarr/issues/2964)) ([b62d47d](https://github.com/homarr-labs/homarr/commit/b62d47d303ca1271b932b6347a489df6f16fc680)) ## [1.19.0](https://github.com/homarr-labs/homarr/compare/v1.18.1...v1.19.0) (2025-05-02) ### Features -* **widget:** add prefetch for apps and bookmarks ([#2895](https://github.com/homarr-labs/homarr/issues/2895)) ([82c5361](https://github.com/homarr-labs/homarr/commit/82c53611122dd07e5639a902afa0a6a4fd8ed4e5)) +- **widget:** add prefetch for apps and bookmarks ([#2895](https://github.com/homarr-labs/homarr/issues/2895)) ([82c5361](https://github.com/homarr-labs/homarr/commit/82c53611122dd07e5639a902afa0a6a4fd8ed4e5)) ### Bug Fixes -* **cookie:** parsing of header not working with percentage char ([#2989](https://github.com/homarr-labs/homarr/issues/2989)) ([547a8c3](https://github.com/homarr-labs/homarr/commit/547a8c34c58c88e6f0074df327f49aadf9ab07f4)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.13.4 ([#2993](https://github.com/homarr-labs/homarr/issues/2993)) ([1a07fa9](https://github.com/homarr-labs/homarr/commit/1a07fa9af59e93f9ce5d70b72855bb070f5b5787)) -* **deps:** update dependency tsx to v4.19.4 ([#2981](https://github.com/homarr-labs/homarr/issues/2981)) ([a2dbac5](https://github.com/homarr-labs/homarr/commit/a2dbac5ad73aa50af7f4b40076bb5fcfa61adf80)) -* **deps:** update dependency typescript-eslint to ^8.31.1 ([#2979](https://github.com/homarr-labs/homarr/issues/2979)) ([284ea23](https://github.com/homarr-labs/homarr/commit/284ea239f71f49c74e3ea60fa5de2fd968f1675b)) -* **deps:** update mantine monorepo to ^7.17.7 ([#3004](https://github.com/homarr-labs/homarr/issues/3004)) ([a70b0b7](https://github.com/homarr-labs/homarr/commit/a70b0b70479df8fff8a2d256995844bad1fb55a0)) -* **deps:** update tanstack-query monorepo to ^5.74.11 ([#2984](https://github.com/homarr-labs/homarr/issues/2984)) ([3299ced](https://github.com/homarr-labs/homarr/commit/3299cedc04cd87c7f014f69a900e7c6e6c33d954)) -* **deps:** update tanstack-query monorepo to ^5.74.7 ([#2924](https://github.com/homarr-labs/homarr/issues/2924)) ([f4ce76a](https://github.com/homarr-labs/homarr/commit/f4ce76ac13136c2f559d3aff019dcc2add7c98dd)) -* **deps:** update tanstack-query monorepo to ^5.74.9 ([#2983](https://github.com/homarr-labs/homarr/issues/2983)) ([1012cad](https://github.com/homarr-labs/homarr/commit/1012cad0e32f43f46bbb4e89ade3f0eb7fa54313)) -* **deps:** update tanstack-query monorepo to ^5.75.0 ([#2998](https://github.com/homarr-labs/homarr/issues/2998)) ([0d1b40c](https://github.com/homarr-labs/homarr/commit/0d1b40c381fc068c770480f81c6c7dcefce0ec86)) -* **deps:** update tanstack-query monorepo to ^5.75.1 ([#3006](https://github.com/homarr-labs/homarr/issues/3006)) ([2b1c433](https://github.com/homarr-labs/homarr/commit/2b1c433cefe667d930ce5178cc1218ffb7fa43c0)) -* **deps:** update testcontainers-node monorepo to ^10.25.0 ([#2997](https://github.com/homarr-labs/homarr/issues/2997)) ([a934529](https://github.com/homarr-labs/homarr/commit/a934529146a0f53a047d2e3e834145c62c8ee891)) -* **deps:** update tiptap monorepo to v2.11.9 ([#2987](https://github.com/homarr-labs/homarr/issues/2987)) ([70686a0](https://github.com/homarr-labs/homarr/commit/70686a00662a7f690efbb45920e5c45ad4a866ef)) -* **deps:** update trpc monorepo to ^11.1.2 ([#2982](https://github.com/homarr-labs/homarr/issues/2982)) ([b10f33b](https://github.com/homarr-labs/homarr/commit/b10f33bf0b976217b2076ce84d8d1d9219b36e4c)) -* **media-request:** add missing completed status ([#2990](https://github.com/homarr-labs/homarr/issues/2990)) ([9006d3d](https://github.com/homarr-labs/homarr/commit/9006d3d2fc21be5ba2eae616e467113356c91ebe)) -* **releases-widget:** improve ui for smaller widgets ([#2962](https://github.com/homarr-labs/homarr/issues/2962)) ([f39a21c](https://github.com/homarr-labs/homarr/commit/f39a21c2962530298274ee705f3d85da023ea3e0)) -* **unifi:** port is ignored ([#2995](https://github.com/homarr-labs/homarr/issues/2995)) ([0c9c5b8](https://github.com/homarr-labs/homarr/commit/0c9c5b8955c883191e5b6b137660c1a3cbd16ce4)) +- **cookie:** parsing of header not working with percentage char ([#2989](https://github.com/homarr-labs/homarr/issues/2989)) ([547a8c3](https://github.com/homarr-labs/homarr/commit/547a8c34c58c88e6f0074df327f49aadf9ab07f4)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.13.4 ([#2993](https://github.com/homarr-labs/homarr/issues/2993)) ([1a07fa9](https://github.com/homarr-labs/homarr/commit/1a07fa9af59e93f9ce5d70b72855bb070f5b5787)) +- **deps:** update dependency tsx to v4.19.4 ([#2981](https://github.com/homarr-labs/homarr/issues/2981)) ([a2dbac5](https://github.com/homarr-labs/homarr/commit/a2dbac5ad73aa50af7f4b40076bb5fcfa61adf80)) +- **deps:** update dependency typescript-eslint to ^8.31.1 ([#2979](https://github.com/homarr-labs/homarr/issues/2979)) ([284ea23](https://github.com/homarr-labs/homarr/commit/284ea239f71f49c74e3ea60fa5de2fd968f1675b)) +- **deps:** update mantine monorepo to ^7.17.7 ([#3004](https://github.com/homarr-labs/homarr/issues/3004)) ([a70b0b7](https://github.com/homarr-labs/homarr/commit/a70b0b70479df8fff8a2d256995844bad1fb55a0)) +- **deps:** update tanstack-query monorepo to ^5.74.11 ([#2984](https://github.com/homarr-labs/homarr/issues/2984)) ([3299ced](https://github.com/homarr-labs/homarr/commit/3299cedc04cd87c7f014f69a900e7c6e6c33d954)) +- **deps:** update tanstack-query monorepo to ^5.74.7 ([#2924](https://github.com/homarr-labs/homarr/issues/2924)) ([f4ce76a](https://github.com/homarr-labs/homarr/commit/f4ce76ac13136c2f559d3aff019dcc2add7c98dd)) +- **deps:** update tanstack-query monorepo to ^5.74.9 ([#2983](https://github.com/homarr-labs/homarr/issues/2983)) ([1012cad](https://github.com/homarr-labs/homarr/commit/1012cad0e32f43f46bbb4e89ade3f0eb7fa54313)) +- **deps:** update tanstack-query monorepo to ^5.75.0 ([#2998](https://github.com/homarr-labs/homarr/issues/2998)) ([0d1b40c](https://github.com/homarr-labs/homarr/commit/0d1b40c381fc068c770480f81c6c7dcefce0ec86)) +- **deps:** update tanstack-query monorepo to ^5.75.1 ([#3006](https://github.com/homarr-labs/homarr/issues/3006)) ([2b1c433](https://github.com/homarr-labs/homarr/commit/2b1c433cefe667d930ce5178cc1218ffb7fa43c0)) +- **deps:** update testcontainers-node monorepo to ^10.25.0 ([#2997](https://github.com/homarr-labs/homarr/issues/2997)) ([a934529](https://github.com/homarr-labs/homarr/commit/a934529146a0f53a047d2e3e834145c62c8ee891)) +- **deps:** update tiptap monorepo to v2.11.9 ([#2987](https://github.com/homarr-labs/homarr/issues/2987)) ([70686a0](https://github.com/homarr-labs/homarr/commit/70686a00662a7f690efbb45920e5c45ad4a866ef)) +- **deps:** update trpc monorepo to ^11.1.2 ([#2982](https://github.com/homarr-labs/homarr/issues/2982)) ([b10f33b](https://github.com/homarr-labs/homarr/commit/b10f33bf0b976217b2076ce84d8d1d9219b36e4c)) +- **media-request:** add missing completed status ([#2990](https://github.com/homarr-labs/homarr/issues/2990)) ([9006d3d](https://github.com/homarr-labs/homarr/commit/9006d3d2fc21be5ba2eae616e467113356c91ebe)) +- **releases-widget:** improve ui for smaller widgets ([#2962](https://github.com/homarr-labs/homarr/issues/2962)) ([f39a21c](https://github.com/homarr-labs/homarr/commit/f39a21c2962530298274ee705f3d85da023ea3e0)) +- **unifi:** port is ignored ([#2995](https://github.com/homarr-labs/homarr/issues/2995)) ([0c9c5b8](https://github.com/homarr-labs/homarr/commit/0c9c5b8955c883191e5b6b137660c1a3cbd16ce4)) ## [1.18.1](https://github.com/homarr-labs/homarr/compare/v1.18.0...v1.18.1) (2025-04-27) ### Bug Fixes -* cannot find module http-cookie-agent/http ([#2972](https://github.com/homarr-labs/homarr/issues/2972)) ([bb92f5b](https://github.com/homarr-labs/homarr/commit/bb92f5bb79e8f236dd149e87d14c1a35955140c7)) -* **deps:** update dependency mysql2 to v3.14.1 ([#2969](https://github.com/homarr-labs/homarr/issues/2969)) ([5f80beb](https://github.com/homarr-labs/homarr/commit/5f80bebef2bd1598ad02dd1e169a1a6c27a4c143)) +- cannot find module http-cookie-agent/http ([#2972](https://github.com/homarr-labs/homarr/issues/2972)) ([bb92f5b](https://github.com/homarr-labs/homarr/commit/bb92f5bb79e8f236dd149e87d14c1a35955140c7)) +- **deps:** update dependency mysql2 to v3.14.1 ([#2969](https://github.com/homarr-labs/homarr/issues/2969)) ([5f80beb](https://github.com/homarr-labs/homarr/commit/5f80bebef2bd1598ad02dd1e169a1a6c27a4c143)) ## [1.18.0](https://github.com/homarr-labs/homarr/compare/v1.17.0...v1.18.0) (2025-04-25) ### Features -* add releases widget ([#2497](https://github.com/homarr-labs/homarr/issues/2497)) ([3dcee8c](https://github.com/homarr-labs/homarr/commit/3dcee8cb869dd11d54631636253ad17e2af97dd7)) -* **media-server:** add option to only show playing sessions ([#2899](https://github.com/homarr-labs/homarr/issues/2899)) ([f98750d](https://github.com/homarr-labs/homarr/commit/f98750d0b3e96b234d6f57b82bf7aa8729a091f2)) -* migrate to unifi package ([#2894](https://github.com/homarr-labs/homarr/issues/2894)) ([8550c69](https://github.com/homarr-labs/homarr/commit/8550c69d51497676b654e204a85cdc84e8a38e30)) -* **widgets:** add title to advanced options ([#2909](https://github.com/homarr-labs/homarr/issues/2909)) ([c64d903](https://github.com/homarr-labs/homarr/commit/c64d903f2b6375970325fb5031afd468dbf0ae11)) +- add releases widget ([#2497](https://github.com/homarr-labs/homarr/issues/2497)) ([3dcee8c](https://github.com/homarr-labs/homarr/commit/3dcee8cb869dd11d54631636253ad17e2af97dd7)) +- **media-server:** add option to only show playing sessions ([#2899](https://github.com/homarr-labs/homarr/issues/2899)) ([f98750d](https://github.com/homarr-labs/homarr/commit/f98750d0b3e96b234d6f57b82bf7aa8729a091f2)) +- migrate to unifi package ([#2894](https://github.com/homarr-labs/homarr/issues/2894)) ([8550c69](https://github.com/homarr-labs/homarr/commit/8550c69d51497676b654e204a85cdc84e8a38e30)) +- **widgets:** add title to advanced options ([#2909](https://github.com/homarr-labs/homarr/issues/2909)) ([c64d903](https://github.com/homarr-labs/homarr/commit/c64d903f2b6375970325fb5031afd468dbf0ae11)) ### Bug Fixes -* **certificates:** improve validation and prevent crash ([#2910](https://github.com/homarr-labs/homarr/issues/2910)) ([c514247](https://github.com/homarr-labs/homarr/commit/c51424717ddce5a2f4110658a1fbfab375185f66)) -* **deps:** update dependency @auth/core to ^0.39.0 ([#2904](https://github.com/homarr-labs/homarr/issues/2904)) ([b0d7f9a](https://github.com/homarr-labs/homarr/commit/b0d7f9a48c05d380ff84ed7f48c9a9fd8dc33602)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.9.0 ([#2905](https://github.com/homarr-labs/homarr/issues/2905)) ([fdf700d](https://github.com/homarr-labs/homarr/commit/fdf700dba51d0bc4e72cdd63a63acb99c2196329)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.6.0 ([#2914](https://github.com/homarr-labs/homarr/issues/2914)) ([3d50808](https://github.com/homarr-labs/homarr/commit/3d508088d5a7d7fda53f49c196c2c6dd84d598d1)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.13.0 ([#2935](https://github.com/homarr-labs/homarr/issues/2935)) ([eb95ee2](https://github.com/homarr-labs/homarr/commit/eb95ee285b727a8bda7ac9df3f75c25ced475358)) -* **deps:** update dependency dockerode to ^4.0.6 ([#2901](https://github.com/homarr-labs/homarr/issues/2901)) ([593e3ee](https://github.com/homarr-labs/homarr/commit/593e3ee5a6f9cb8d50a51262c85c3c067fce0691)) -* **deps:** update dependency drizzle-orm to ^0.43.0 ([#2939](https://github.com/homarr-labs/homarr/issues/2939)) ([295cc4a](https://github.com/homarr-labs/homarr/commit/295cc4a3c41ba9ad20e93df9d6ea5627d56d310d)) -* **deps:** update dependency drizzle-orm to ^0.43.1 ([#2947](https://github.com/homarr-labs/homarr/issues/2947)) ([1d28bf4](https://github.com/homarr-labs/homarr/commit/1d28bf4c93c43c1956c5b386ca8a02ca6ae59eb5)) -* **deps:** update dependency glob to ^11.0.2 ([#2931](https://github.com/homarr-labs/homarr/issues/2931)) ([573d5f8](https://github.com/homarr-labs/homarr/commit/573d5f89d6576020c3a4393372a56f8f75628e58)) -* **deps:** update dependency next-auth to v5.0.0-beta.26 ([#2906](https://github.com/homarr-labs/homarr/issues/2906)) ([6e6edc8](https://github.com/homarr-labs/homarr/commit/6e6edc8a0d809614588967b51751257929a6ccd3)) -* **deps:** update dependency next-auth to v5.0.0-beta.27 ([#2940](https://github.com/homarr-labs/homarr/issues/2940)) ([2533083](https://github.com/homarr-labs/homarr/commit/253308357a55ab2fac7ac4144215beefdc517b8d)) -* **deps:** update dependency next-intl to v4.0.3 ([#2922](https://github.com/homarr-labs/homarr/issues/2922)) ([3172e6e](https://github.com/homarr-labs/homarr/commit/3172e6e0c4e55f62a7ee32ca84fcaa940e774565)) -* **deps:** update dependency next-intl to v4.1.0 ([#2938](https://github.com/homarr-labs/homarr/issues/2938)) ([767fe94](https://github.com/homarr-labs/homarr/commit/767fe946d78268eddce6e213665176b8c6397e92)) -* **deps:** update dependency sass to ^1.87.0 ([#2921](https://github.com/homarr-labs/homarr/issues/2921)) ([fed28bd](https://github.com/homarr-labs/homarr/commit/fed28bd77546be83b9965bd1116996b621f6b639)) -* **deps:** update dependency trpc-to-openapi to ^2.2.0 ([#2903](https://github.com/homarr-labs/homarr/issues/2903)) ([2bf67c3](https://github.com/homarr-labs/homarr/commit/2bf67c3de8609eb504e322d830f507973a55d6fc)) -* **deps:** update dependency tsdav to ^2.1.4 ([#2944](https://github.com/homarr-labs/homarr/issues/2944)) ([d78b2e1](https://github.com/homarr-labs/homarr/commit/d78b2e1e85a6c72ce1366e50ee4a1e83176b7913)) -* **deps:** update dependency typescript-eslint to ^8.31.0 ([#2919](https://github.com/homarr-labs/homarr/issues/2919)) ([7aa3790](https://github.com/homarr-labs/homarr/commit/7aa379076da24c90238dd5fe2714dbceb3b84c2a)) -* **deps:** update mantine monorepo to ^7.17.5 ([#2937](https://github.com/homarr-labs/homarr/issues/2937)) ([aba963c](https://github.com/homarr-labs/homarr/commit/aba963c7cf0d554d51e5fc233e546e4917ecdf67)) -* **deps:** update trpc monorepo to ^11.1.1 ([#2927](https://github.com/homarr-labs/homarr/issues/2927)) ([bd3535d](https://github.com/homarr-labs/homarr/commit/bd3535dcf84569b87cf647bc5e0b957667b7e199)) -* **deps:** update turbo monorepo to ^2.5.1 ([#2934](https://github.com/homarr-labs/homarr/issues/2934)) ([7766c3c](https://github.com/homarr-labs/homarr/commit/7766c3cbbc1187f6c38157fe15182c8b7d329acf)) -* **deps:** update turbo monorepo to ^2.5.2 ([#2949](https://github.com/homarr-labs/homarr/issues/2949)) ([d97e740](https://github.com/homarr-labs/homarr/commit/d97e74047dc107abb05ca65d8a91a41c6071fbd4)) +- **certificates:** improve validation and prevent crash ([#2910](https://github.com/homarr-labs/homarr/issues/2910)) ([c514247](https://github.com/homarr-labs/homarr/commit/c51424717ddce5a2f4110658a1fbfab375185f66)) +- **deps:** update dependency @auth/core to ^0.39.0 ([#2904](https://github.com/homarr-labs/homarr/issues/2904)) ([b0d7f9a](https://github.com/homarr-labs/homarr/commit/b0d7f9a48c05d380ff84ed7f48c9a9fd8dc33602)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.9.0 ([#2905](https://github.com/homarr-labs/homarr/issues/2905)) ([fdf700d](https://github.com/homarr-labs/homarr/commit/fdf700dba51d0bc4e72cdd63a63acb99c2196329)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.6.0 ([#2914](https://github.com/homarr-labs/homarr/issues/2914)) ([3d50808](https://github.com/homarr-labs/homarr/commit/3d508088d5a7d7fda53f49c196c2c6dd84d598d1)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.13.0 ([#2935](https://github.com/homarr-labs/homarr/issues/2935)) ([eb95ee2](https://github.com/homarr-labs/homarr/commit/eb95ee285b727a8bda7ac9df3f75c25ced475358)) +- **deps:** update dependency dockerode to ^4.0.6 ([#2901](https://github.com/homarr-labs/homarr/issues/2901)) ([593e3ee](https://github.com/homarr-labs/homarr/commit/593e3ee5a6f9cb8d50a51262c85c3c067fce0691)) +- **deps:** update dependency drizzle-orm to ^0.43.0 ([#2939](https://github.com/homarr-labs/homarr/issues/2939)) ([295cc4a](https://github.com/homarr-labs/homarr/commit/295cc4a3c41ba9ad20e93df9d6ea5627d56d310d)) +- **deps:** update dependency drizzle-orm to ^0.43.1 ([#2947](https://github.com/homarr-labs/homarr/issues/2947)) ([1d28bf4](https://github.com/homarr-labs/homarr/commit/1d28bf4c93c43c1956c5b386ca8a02ca6ae59eb5)) +- **deps:** update dependency glob to ^11.0.2 ([#2931](https://github.com/homarr-labs/homarr/issues/2931)) ([573d5f8](https://github.com/homarr-labs/homarr/commit/573d5f89d6576020c3a4393372a56f8f75628e58)) +- **deps:** update dependency next-auth to v5.0.0-beta.26 ([#2906](https://github.com/homarr-labs/homarr/issues/2906)) ([6e6edc8](https://github.com/homarr-labs/homarr/commit/6e6edc8a0d809614588967b51751257929a6ccd3)) +- **deps:** update dependency next-auth to v5.0.0-beta.27 ([#2940](https://github.com/homarr-labs/homarr/issues/2940)) ([2533083](https://github.com/homarr-labs/homarr/commit/253308357a55ab2fac7ac4144215beefdc517b8d)) +- **deps:** update dependency next-intl to v4.0.3 ([#2922](https://github.com/homarr-labs/homarr/issues/2922)) ([3172e6e](https://github.com/homarr-labs/homarr/commit/3172e6e0c4e55f62a7ee32ca84fcaa940e774565)) +- **deps:** update dependency next-intl to v4.1.0 ([#2938](https://github.com/homarr-labs/homarr/issues/2938)) ([767fe94](https://github.com/homarr-labs/homarr/commit/767fe946d78268eddce6e213665176b8c6397e92)) +- **deps:** update dependency sass to ^1.87.0 ([#2921](https://github.com/homarr-labs/homarr/issues/2921)) ([fed28bd](https://github.com/homarr-labs/homarr/commit/fed28bd77546be83b9965bd1116996b621f6b639)) +- **deps:** update dependency trpc-to-openapi to ^2.2.0 ([#2903](https://github.com/homarr-labs/homarr/issues/2903)) ([2bf67c3](https://github.com/homarr-labs/homarr/commit/2bf67c3de8609eb504e322d830f507973a55d6fc)) +- **deps:** update dependency tsdav to ^2.1.4 ([#2944](https://github.com/homarr-labs/homarr/issues/2944)) ([d78b2e1](https://github.com/homarr-labs/homarr/commit/d78b2e1e85a6c72ce1366e50ee4a1e83176b7913)) +- **deps:** update dependency typescript-eslint to ^8.31.0 ([#2919](https://github.com/homarr-labs/homarr/issues/2919)) ([7aa3790](https://github.com/homarr-labs/homarr/commit/7aa379076da24c90238dd5fe2714dbceb3b84c2a)) +- **deps:** update mantine monorepo to ^7.17.5 ([#2937](https://github.com/homarr-labs/homarr/issues/2937)) ([aba963c](https://github.com/homarr-labs/homarr/commit/aba963c7cf0d554d51e5fc233e546e4917ecdf67)) +- **deps:** update trpc monorepo to ^11.1.1 ([#2927](https://github.com/homarr-labs/homarr/issues/2927)) ([bd3535d](https://github.com/homarr-labs/homarr/commit/bd3535dcf84569b87cf647bc5e0b957667b7e199)) +- **deps:** update turbo monorepo to ^2.5.1 ([#2934](https://github.com/homarr-labs/homarr/issues/2934)) ([7766c3c](https://github.com/homarr-labs/homarr/commit/7766c3cbbc1187f6c38157fe15182c8b7d329acf)) +- **deps:** update turbo monorepo to ^2.5.2 ([#2949](https://github.com/homarr-labs/homarr/issues/2949)) ([d97e740](https://github.com/homarr-labs/homarr/commit/d97e74047dc107abb05ca65d8a91a41c6071fbd4)) ## [1.17.0](https://github.com/homarr-labs/homarr/compare/v1.16.0...v1.17.0) (2025-04-18) ### Features -* add api-key support for tdarr ([#2890](https://github.com/homarr-labs/homarr/issues/2890)) ([3d68f4d](https://github.com/homarr-labs/homarr/commit/3d68f4d1283b6cb27f9532d1adf52cef78a0fb03)) -* Prefer primary color ([#2665](https://github.com/homarr-labs/homarr/issues/2665)) ([00053bd](https://github.com/homarr-labs/homarr/commit/00053bda7bbcaaf359074c3b35573ee0afc1409d)) +- add api-key support for tdarr ([#2890](https://github.com/homarr-labs/homarr/issues/2890)) ([3d68f4d](https://github.com/homarr-labs/homarr/commit/3d68f4d1283b6cb27f9532d1adf52cef78a0fb03)) +- Prefer primary color ([#2665](https://github.com/homarr-labs/homarr/issues/2665)) ([00053bd](https://github.com/homarr-labs/homarr/commit/00053bda7bbcaaf359074c3b35573ee0afc1409d)) ### Bug Fixes -* calculate available space correctly and filter unmounted drives ([#2885](https://github.com/homarr-labs/homarr/issues/2885)) ([cfca0ba](https://github.com/homarr-labs/homarr/commit/cfca0ba58323ec09f8f64da2fee251ef14ba914a)) -* **deps:** update dependency drizzle-kit to ^0.31.0 ([#2881](https://github.com/homarr-labs/homarr/issues/2881)) ([97390c6](https://github.com/homarr-labs/homarr/commit/97390c60300f3d16dabf0710fa435c6b3ae86a6f)) -* **deps:** update dependency drizzle-orm to ^0.42.0 ([#2882](https://github.com/homarr-labs/homarr/issues/2882)) ([47d7abc](https://github.com/homarr-labs/homarr/commit/47d7abc0d739b91328834e0eaea033637632f22c)) -* **deps:** update dependency jotai to ^2.12.3 ([#2868](https://github.com/homarr-labs/homarr/issues/2868)) ([c57b63b](https://github.com/homarr-labs/homarr/commit/c57b63b506733459ea0c09776917042fa878829b)) -* **deps:** update dependency recharts to ^2.15.3 ([#2893](https://github.com/homarr-labs/homarr/issues/2893)) ([5fcb7a3](https://github.com/homarr-labs/homarr/commit/5fcb7a3b9c279c1b402e120a4a6f08265e8d5912)) -* **deps:** update dependency swagger-ui-react to ^5.21.0 ([#2866](https://github.com/homarr-labs/homarr/issues/2866)) ([ff1263b](https://github.com/homarr-labs/homarr/commit/ff1263b217e96cbb2bc6b8e98ff117c44ca9f00d)) -* **deps:** update dependency typescript-eslint to ^8.30.0 ([#2873](https://github.com/homarr-labs/homarr/issues/2873)) ([089734b](https://github.com/homarr-labs/homarr/commit/089734b293a21d6eeaa7c5df5ee9930853ed2fcf)) -* **deps:** update dependency typescript-eslint to ^8.30.1 ([#2876](https://github.com/homarr-labs/homarr/issues/2876)) ([fdca513](https://github.com/homarr-labs/homarr/commit/fdca513929e9e594af2d59ad17c915cbc7ac2e08)) -* **deps:** update dependency zod to ^3.24.3 ([#2886](https://github.com/homarr-labs/homarr/issues/2886)) ([1bfe397](https://github.com/homarr-labs/homarr/commit/1bfe397d68a88037e35701aab8a7b4c9027ec1e3)) -* **deps:** update nextjs monorepo to v15.3.1 ([#2889](https://github.com/homarr-labs/homarr/issues/2889)) ([d37cdbd](https://github.com/homarr-labs/homarr/commit/d37cdbd080c2b3a4df536ab7dad4fc4a4b3c915f)) -* **deps:** update tanstack-query monorepo to ^5.73.3 ([#2860](https://github.com/homarr-labs/homarr/issues/2860)) ([4e6ab03](https://github.com/homarr-labs/homarr/commit/4e6ab037c9245103b05afe977e9c288082a2b539)) -* **deps:** update tanstack-query monorepo to ^5.74.0 ([#2864](https://github.com/homarr-labs/homarr/issues/2864)) ([ac78e87](https://github.com/homarr-labs/homarr/commit/ac78e8704287f45d6a8ca26cba9b87146e1c6161)) -* **deps:** update tanstack-query monorepo to ^5.74.2 ([#2869](https://github.com/homarr-labs/homarr/issues/2869)) ([bf4a1cf](https://github.com/homarr-labs/homarr/commit/bf4a1cf1e8c99ada97adf6ee118ddaafc00115e9)) -* **deps:** update tanstack-query monorepo to ^5.74.3 ([#2871](https://github.com/homarr-labs/homarr/issues/2871)) ([02fb1b9](https://github.com/homarr-labs/homarr/commit/02fb1b9dae501e475353e8e2510e4f8938c4e124)) -* **deps:** update tanstack-query monorepo to ^5.74.4 ([#2888](https://github.com/homarr-labs/homarr/issues/2888)) ([17174b6](https://github.com/homarr-labs/homarr/commit/17174b6b96ae16b480e2bc5eb9f8ab7b914bc843)) -* Tdarr widget empty statistics tab ([#2883](https://github.com/homarr-labs/homarr/issues/2883)) ([2d12c1e](https://github.com/homarr-labs/homarr/commit/2d12c1e641398e20a70f8bfb24a48de02498496a)) -* **widget:** format stock values and changes for better readability ([#2836](https://github.com/homarr-labs/homarr/issues/2836)) ([a29556e](https://github.com/homarr-labs/homarr/commit/a29556ee8ec50aa384a9a46f6f5a5fa5dfa4cdac)) +- calculate available space correctly and filter unmounted drives ([#2885](https://github.com/homarr-labs/homarr/issues/2885)) ([cfca0ba](https://github.com/homarr-labs/homarr/commit/cfca0ba58323ec09f8f64da2fee251ef14ba914a)) +- **deps:** update dependency drizzle-kit to ^0.31.0 ([#2881](https://github.com/homarr-labs/homarr/issues/2881)) ([97390c6](https://github.com/homarr-labs/homarr/commit/97390c60300f3d16dabf0710fa435c6b3ae86a6f)) +- **deps:** update dependency drizzle-orm to ^0.42.0 ([#2882](https://github.com/homarr-labs/homarr/issues/2882)) ([47d7abc](https://github.com/homarr-labs/homarr/commit/47d7abc0d739b91328834e0eaea033637632f22c)) +- **deps:** update dependency jotai to ^2.12.3 ([#2868](https://github.com/homarr-labs/homarr/issues/2868)) ([c57b63b](https://github.com/homarr-labs/homarr/commit/c57b63b506733459ea0c09776917042fa878829b)) +- **deps:** update dependency recharts to ^2.15.3 ([#2893](https://github.com/homarr-labs/homarr/issues/2893)) ([5fcb7a3](https://github.com/homarr-labs/homarr/commit/5fcb7a3b9c279c1b402e120a4a6f08265e8d5912)) +- **deps:** update dependency swagger-ui-react to ^5.21.0 ([#2866](https://github.com/homarr-labs/homarr/issues/2866)) ([ff1263b](https://github.com/homarr-labs/homarr/commit/ff1263b217e96cbb2bc6b8e98ff117c44ca9f00d)) +- **deps:** update dependency typescript-eslint to ^8.30.0 ([#2873](https://github.com/homarr-labs/homarr/issues/2873)) ([089734b](https://github.com/homarr-labs/homarr/commit/089734b293a21d6eeaa7c5df5ee9930853ed2fcf)) +- **deps:** update dependency typescript-eslint to ^8.30.1 ([#2876](https://github.com/homarr-labs/homarr/issues/2876)) ([fdca513](https://github.com/homarr-labs/homarr/commit/fdca513929e9e594af2d59ad17c915cbc7ac2e08)) +- **deps:** update dependency zod to ^3.24.3 ([#2886](https://github.com/homarr-labs/homarr/issues/2886)) ([1bfe397](https://github.com/homarr-labs/homarr/commit/1bfe397d68a88037e35701aab8a7b4c9027ec1e3)) +- **deps:** update nextjs monorepo to v15.3.1 ([#2889](https://github.com/homarr-labs/homarr/issues/2889)) ([d37cdbd](https://github.com/homarr-labs/homarr/commit/d37cdbd080c2b3a4df536ab7dad4fc4a4b3c915f)) +- **deps:** update tanstack-query monorepo to ^5.73.3 ([#2860](https://github.com/homarr-labs/homarr/issues/2860)) ([4e6ab03](https://github.com/homarr-labs/homarr/commit/4e6ab037c9245103b05afe977e9c288082a2b539)) +- **deps:** update tanstack-query monorepo to ^5.74.0 ([#2864](https://github.com/homarr-labs/homarr/issues/2864)) ([ac78e87](https://github.com/homarr-labs/homarr/commit/ac78e8704287f45d6a8ca26cba9b87146e1c6161)) +- **deps:** update tanstack-query monorepo to ^5.74.2 ([#2869](https://github.com/homarr-labs/homarr/issues/2869)) ([bf4a1cf](https://github.com/homarr-labs/homarr/commit/bf4a1cf1e8c99ada97adf6ee118ddaafc00115e9)) +- **deps:** update tanstack-query monorepo to ^5.74.3 ([#2871](https://github.com/homarr-labs/homarr/issues/2871)) ([02fb1b9](https://github.com/homarr-labs/homarr/commit/02fb1b9dae501e475353e8e2510e4f8938c4e124)) +- **deps:** update tanstack-query monorepo to ^5.74.4 ([#2888](https://github.com/homarr-labs/homarr/issues/2888)) ([17174b6](https://github.com/homarr-labs/homarr/commit/17174b6b96ae16b480e2bc5eb9f8ab7b914bc843)) +- Tdarr widget empty statistics tab ([#2883](https://github.com/homarr-labs/homarr/issues/2883)) ([2d12c1e](https://github.com/homarr-labs/homarr/commit/2d12c1e641398e20a70f8bfb24a48de02498496a)) +- **widget:** format stock values and changes for better readability ([#2836](https://github.com/homarr-labs/homarr/issues/2836)) ([a29556e](https://github.com/homarr-labs/homarr/commit/a29556ee8ec50aa384a9a46f6f5a5fa5dfa4cdac)) ## [1.16.0](https://github.com/homarr-labs/homarr/compare/v1.15.0...v1.16.0) (2025-04-11) ### Features -* **boards:** add quick app add menu item ([#2681](https://github.com/homarr-labs/homarr/issues/2681)) ([7a3c836](https://github.com/homarr-labs/homarr/commit/7a3c836a70a9b9656c6fe74fe6a4bf8e7166a030)) -* support aria2 integration ([#2226](https://github.com/homarr-labs/homarr/issues/2226)) ([94263c4](https://github.com/homarr-labs/homarr/commit/94263c445b8a0d0cdbea70ebe45ef932b426204d)) +- **boards:** add quick app add menu item ([#2681](https://github.com/homarr-labs/homarr/issues/2681)) ([7a3c836](https://github.com/homarr-labs/homarr/commit/7a3c836a70a9b9656c6fe74fe6a4bf8e7166a030)) +- support aria2 integration ([#2226](https://github.com/homarr-labs/homarr/issues/2226)) ([94263c4](https://github.com/homarr-labs/homarr/commit/94263c445b8a0d0cdbea70ebe45ef932b426204d)) ### Bug Fixes -* **boards:** add missing upload button for background in settings ([#2853](https://github.com/homarr-labs/homarr/issues/2853)) ([4baec7e](https://github.com/homarr-labs/homarr/commit/4baec7e3ff33ac0973daf0ac1f0171e349787bdb)) -* **deps:** update dependency dotenv to ^16.5.0 ([#2848](https://github.com/homarr-labs/homarr/issues/2848)) ([c84dd2f](https://github.com/homarr-labs/homarr/commit/c84dd2fd797ca674e4f553ddc71926e9b533daa4)) -* **deps:** update dependency eslint-config-prettier to ^10.1.2 ([#2842](https://github.com/homarr-labs/homarr/issues/2842)) ([924a7d0](https://github.com/homarr-labs/homarr/commit/924a7d076ef8bdd67afcce2e9f850bf334b43c3a)) -* **deps:** update dependency ioredis to v5.6.1 ([#2851](https://github.com/homarr-labs/homarr/issues/2851)) ([0ed6a79](https://github.com/homarr-labs/homarr/commit/0ed6a79a5bba25fa7a90bec00d3815b3fffae427)) -* **deps:** update dependency octokit to ^4.1.3 ([#2847](https://github.com/homarr-labs/homarr/issues/2847)) ([4b0b892](https://github.com/homarr-labs/homarr/commit/4b0b89225000137f02f3b89376c46d4d01387128)) -* **deps:** update dependency swagger-ui-react to ^5.20.8 ([#2844](https://github.com/homarr-labs/homarr/issues/2844)) ([45d285a](https://github.com/homarr-labs/homarr/commit/45d285a76ba46d4d4c594f1f2e822d784a281b72)) -* **deps:** update dependency undici to v7.8.0 ([#2841](https://github.com/homarr-labs/homarr/issues/2841)) ([f13be4a](https://github.com/homarr-labs/homarr/commit/f13be4a70870aca99a7f49f5068dadcd7fe01c22)) -* **deps:** update nextjs monorepo to v15.3.0 ([#2838](https://github.com/homarr-labs/homarr/issues/2838)) ([a1fa429](https://github.com/homarr-labs/homarr/commit/a1fa4297ead54a9f8c842b2d23001f725359e000)) -* **deps:** update tanstack-query monorepo to ^5.72.2 ([#2834](https://github.com/homarr-labs/homarr/issues/2834)) ([f5e3138](https://github.com/homarr-labs/homarr/commit/f5e3138c8118295d8230c3655af1c3f11ee5d4ff)) -* **deps:** update testcontainers-node monorepo to ^10.24.2 ([#2846](https://github.com/homarr-labs/homarr/issues/2846)) ([057ff2c](https://github.com/homarr-labs/homarr/commit/057ff2cfc1cf062a3c48deb28699df8e1ba89f75)) -* **deps:** update trpc monorepo to ^11.1.0 ([#2850](https://github.com/homarr-labs/homarr/issues/2850)) ([0fe4ea9](https://github.com/homarr-labs/homarr/commit/0fe4ea9dd9cbfb2def1bede9db8eaf649f79f1b0)) +- **boards:** add missing upload button for background in settings ([#2853](https://github.com/homarr-labs/homarr/issues/2853)) ([4baec7e](https://github.com/homarr-labs/homarr/commit/4baec7e3ff33ac0973daf0ac1f0171e349787bdb)) +- **deps:** update dependency dotenv to ^16.5.0 ([#2848](https://github.com/homarr-labs/homarr/issues/2848)) ([c84dd2f](https://github.com/homarr-labs/homarr/commit/c84dd2fd797ca674e4f553ddc71926e9b533daa4)) +- **deps:** update dependency eslint-config-prettier to ^10.1.2 ([#2842](https://github.com/homarr-labs/homarr/issues/2842)) ([924a7d0](https://github.com/homarr-labs/homarr/commit/924a7d076ef8bdd67afcce2e9f850bf334b43c3a)) +- **deps:** update dependency ioredis to v5.6.1 ([#2851](https://github.com/homarr-labs/homarr/issues/2851)) ([0ed6a79](https://github.com/homarr-labs/homarr/commit/0ed6a79a5bba25fa7a90bec00d3815b3fffae427)) +- **deps:** update dependency octokit to ^4.1.3 ([#2847](https://github.com/homarr-labs/homarr/issues/2847)) ([4b0b892](https://github.com/homarr-labs/homarr/commit/4b0b89225000137f02f3b89376c46d4d01387128)) +- **deps:** update dependency swagger-ui-react to ^5.20.8 ([#2844](https://github.com/homarr-labs/homarr/issues/2844)) ([45d285a](https://github.com/homarr-labs/homarr/commit/45d285a76ba46d4d4c594f1f2e822d784a281b72)) +- **deps:** update dependency undici to v7.8.0 ([#2841](https://github.com/homarr-labs/homarr/issues/2841)) ([f13be4a](https://github.com/homarr-labs/homarr/commit/f13be4a70870aca99a7f49f5068dadcd7fe01c22)) +- **deps:** update nextjs monorepo to v15.3.0 ([#2838](https://github.com/homarr-labs/homarr/issues/2838)) ([a1fa429](https://github.com/homarr-labs/homarr/commit/a1fa4297ead54a9f8c842b2d23001f725359e000)) +- **deps:** update tanstack-query monorepo to ^5.72.2 ([#2834](https://github.com/homarr-labs/homarr/issues/2834)) ([f5e3138](https://github.com/homarr-labs/homarr/commit/f5e3138c8118295d8230c3655af1c3f11ee5d4ff)) +- **deps:** update testcontainers-node monorepo to ^10.24.2 ([#2846](https://github.com/homarr-labs/homarr/issues/2846)) ([057ff2c](https://github.com/homarr-labs/homarr/commit/057ff2cfc1cf062a3c48deb28699df8e1ba89f75)) +- **deps:** update trpc monorepo to ^11.1.0 ([#2850](https://github.com/homarr-labs/homarr/issues/2850)) ([0fe4ea9](https://github.com/homarr-labs/homarr/commit/0fe4ea9dd9cbfb2def1bede9db8eaf649f79f1b0)) ## [1.15.0](https://github.com/homarr-labs/homarr/compare/v1.14.0...v1.15.0) (2025-04-09) ### Features -* **boards:** add upload buttons for background, favicon and logo ([#2770](https://github.com/homarr-labs/homarr/issues/2770)) ([e07b9e6](https://github.com/homarr-labs/homarr/commit/e07b9e6a88ff0aad0aa5dae2f32f648ad5f0c0a8)) -* unifi controller integration ([#2236](https://github.com/homarr-labs/homarr/issues/2236)) ([c1cd563](https://github.com/homarr-labs/homarr/commit/c1cd56304872b5f7b2b49624c6f5018f750d126b)) +- **boards:** add upload buttons for background, favicon and logo ([#2770](https://github.com/homarr-labs/homarr/issues/2770)) ([e07b9e6](https://github.com/homarr-labs/homarr/commit/e07b9e6a88ff0aad0aa5dae2f32f648ad5f0c0a8)) +- unifi controller integration ([#2236](https://github.com/homarr-labs/homarr/issues/2236)) ([c1cd563](https://github.com/homarr-labs/homarr/commit/c1cd56304872b5f7b2b49624c6f5018f750d126b)) ### Bug Fixes -* **deps:** update dependency @kubernetes/client-node to ^1.1.2 ([#2825](https://github.com/homarr-labs/homarr/issues/2825)) ([b064304](https://github.com/homarr-labs/homarr/commit/b064304201ed2ce52162edd5bc9ab5131da7ac97)) -* **deps:** update dependency ldapts to v7.4.0 ([#2815](https://github.com/homarr-labs/homarr/issues/2815)) ([275224e](https://github.com/homarr-labs/homarr/commit/275224ee68bb49f329a6765095b46ec249027aca)) -* **deps:** update dependency swagger-ui-react to ^5.20.7 ([#2816](https://github.com/homarr-labs/homarr/issues/2816)) ([85f8d23](https://github.com/homarr-labs/homarr/commit/85f8d23da3f3ec17945d79ef8a5212c5ceeefe75)) -* **deps:** update dependency typescript-eslint to ^8.29.1 ([#2821](https://github.com/homarr-labs/homarr/issues/2821)) ([17d9272](https://github.com/homarr-labs/homarr/commit/17d92727f24cf0e2491dc93fd7c72759a24bbd54)) -* **deps:** update mantine monorepo to ^7.17.4 ([#2824](https://github.com/homarr-labs/homarr/issues/2824)) ([bd5dcb9](https://github.com/homarr-labs/homarr/commit/bd5dcb991c8bd476cefbae1b8b2f407dd8db1acb)) -* **deps:** update nextjs monorepo to v15.2.5 ([#2828](https://github.com/homarr-labs/homarr/issues/2828)) ([0fc7ca7](https://github.com/homarr-labs/homarr/commit/0fc7ca7738aee2d86940f43e3593368d4102cc73)) -* **deps:** update tanstack-query monorepo to ^5.72.0 ([#2817](https://github.com/homarr-labs/homarr/issues/2817)) ([df212cf](https://github.com/homarr-labs/homarr/commit/df212cf5114a970ad4aed84811cfc7a2e4be67b3)) -* **deps:** update tanstack-query monorepo to ^5.72.1 ([#2823](https://github.com/homarr-labs/homarr/issues/2823)) ([c01d9a4](https://github.com/homarr-labs/homarr/commit/c01d9a4dc5aba540a2b333a94507d027e5fb8d99)) -* **deps:** update testcontainers-node monorepo to ^10.24.1 ([#2831](https://github.com/homarr-labs/homarr/issues/2831)) ([092c95b](https://github.com/homarr-labs/homarr/commit/092c95bbe0be73ad3dedb13c7f84ba7c36ca14db)) -* **deps:** update trpc monorepo to ^11.0.3 ([#2822](https://github.com/homarr-labs/homarr/issues/2822)) ([a821bd7](https://github.com/homarr-labs/homarr/commit/a821bd71f47e03a276a96af705bec90a00229e0f)) -* **deps:** update trpc monorepo to ^11.0.4 ([#2827](https://github.com/homarr-labs/homarr/issues/2827)) ([75100d1](https://github.com/homarr-labs/homarr/commit/75100d1a4926b838682206189eac046d844dba13)) -* **medias:** upload size limited by nginx to 1mb ([#2813](https://github.com/homarr-labs/homarr/issues/2813)) ([bf046a7](https://github.com/homarr-labs/homarr/commit/bf046a715cd6897792b2f1582d076c055063bf57)) -* **performance:** remove turbopack flag to no longer go out of memory after ([#2803](https://github.com/homarr-labs/homarr/issues/2803)) ([c6102ed](https://github.com/homarr-labs/homarr/commit/c6102edff467082803769c488ce642500edcdd25)) -* **security:** missing authorization check for changes to notebook widget ([#2832](https://github.com/homarr-labs/homarr/issues/2832)) ([3948f7f](https://github.com/homarr-labs/homarr/commit/3948f7f9a47cd4562c9b4fd8252f116b8a95c982)) +- **deps:** update dependency @kubernetes/client-node to ^1.1.2 ([#2825](https://github.com/homarr-labs/homarr/issues/2825)) ([b064304](https://github.com/homarr-labs/homarr/commit/b064304201ed2ce52162edd5bc9ab5131da7ac97)) +- **deps:** update dependency ldapts to v7.4.0 ([#2815](https://github.com/homarr-labs/homarr/issues/2815)) ([275224e](https://github.com/homarr-labs/homarr/commit/275224ee68bb49f329a6765095b46ec249027aca)) +- **deps:** update dependency swagger-ui-react to ^5.20.7 ([#2816](https://github.com/homarr-labs/homarr/issues/2816)) ([85f8d23](https://github.com/homarr-labs/homarr/commit/85f8d23da3f3ec17945d79ef8a5212c5ceeefe75)) +- **deps:** update dependency typescript-eslint to ^8.29.1 ([#2821](https://github.com/homarr-labs/homarr/issues/2821)) ([17d9272](https://github.com/homarr-labs/homarr/commit/17d92727f24cf0e2491dc93fd7c72759a24bbd54)) +- **deps:** update mantine monorepo to ^7.17.4 ([#2824](https://github.com/homarr-labs/homarr/issues/2824)) ([bd5dcb9](https://github.com/homarr-labs/homarr/commit/bd5dcb991c8bd476cefbae1b8b2f407dd8db1acb)) +- **deps:** update nextjs monorepo to v15.2.5 ([#2828](https://github.com/homarr-labs/homarr/issues/2828)) ([0fc7ca7](https://github.com/homarr-labs/homarr/commit/0fc7ca7738aee2d86940f43e3593368d4102cc73)) +- **deps:** update tanstack-query monorepo to ^5.72.0 ([#2817](https://github.com/homarr-labs/homarr/issues/2817)) ([df212cf](https://github.com/homarr-labs/homarr/commit/df212cf5114a970ad4aed84811cfc7a2e4be67b3)) +- **deps:** update tanstack-query monorepo to ^5.72.1 ([#2823](https://github.com/homarr-labs/homarr/issues/2823)) ([c01d9a4](https://github.com/homarr-labs/homarr/commit/c01d9a4dc5aba540a2b333a94507d027e5fb8d99)) +- **deps:** update testcontainers-node monorepo to ^10.24.1 ([#2831](https://github.com/homarr-labs/homarr/issues/2831)) ([092c95b](https://github.com/homarr-labs/homarr/commit/092c95bbe0be73ad3dedb13c7f84ba7c36ca14db)) +- **deps:** update trpc monorepo to ^11.0.3 ([#2822](https://github.com/homarr-labs/homarr/issues/2822)) ([a821bd7](https://github.com/homarr-labs/homarr/commit/a821bd71f47e03a276a96af705bec90a00229e0f)) +- **deps:** update trpc monorepo to ^11.0.4 ([#2827](https://github.com/homarr-labs/homarr/issues/2827)) ([75100d1](https://github.com/homarr-labs/homarr/commit/75100d1a4926b838682206189eac046d844dba13)) +- **medias:** upload size limited by nginx to 1mb ([#2813](https://github.com/homarr-labs/homarr/issues/2813)) ([bf046a7](https://github.com/homarr-labs/homarr/commit/bf046a715cd6897792b2f1582d076c055063bf57)) +- **performance:** remove turbopack flag to no longer go out of memory after ([#2803](https://github.com/homarr-labs/homarr/issues/2803)) ([c6102ed](https://github.com/homarr-labs/homarr/commit/c6102edff467082803769c488ce642500edcdd25)) +- **security:** missing authorization check for changes to notebook widget ([#2832](https://github.com/homarr-labs/homarr/issues/2832)) ([3948f7f](https://github.com/homarr-labs/homarr/commit/3948f7f9a47cd4562c9b4fd8252f116b8a95c982)) ## [1.14.0](https://github.com/homarr-labs/homarr/compare/v1.13.1...v1.14.0) (2025-04-04) ### Features -* **cli:** add cli command to recreate credentials admin ([#2779](https://github.com/homarr-labs/homarr/issues/2779)) ([6742532](https://github.com/homarr-labs/homarr/commit/674253262bd4853ebde85d229d666a38733a7026)) +- **cli:** add cli command to recreate credentials admin ([#2779](https://github.com/homarr-labs/homarr/issues/2779)) ([6742532](https://github.com/homarr-labs/homarr/commit/674253262bd4853ebde85d229d666a38733a7026)) ### Bug Fixes -* **deps:** update dependency @ctrl/qbittorrent to ^9.5.2 ([#2795](https://github.com/homarr-labs/homarr/issues/2795)) ([ea8bf43](https://github.com/homarr-labs/homarr/commit/ea8bf43d7b56f526fbf2d4a3955c2c179e4e74d8)) -* **deps:** update dependency @kubernetes/client-node to ^1.1.1 ([#2793](https://github.com/homarr-labs/homarr/issues/2793)) ([76b8b35](https://github.com/homarr-labs/homarr/commit/76b8b35cc1f586797210bdcd3d848d64b5f36d63)) -* **deps:** update dependency dockerode to ^4.0.5 ([#2757](https://github.com/homarr-labs/homarr/issues/2757)) ([db13fd0](https://github.com/homarr-labs/homarr/commit/db13fd03c018cb2f79f0b094b93b69d69fde97ff)) -* **deps:** update dependency eslint-plugin-react to ^7.37.5 ([#2794](https://github.com/homarr-labs/homarr/issues/2794)) ([f9aeb8f](https://github.com/homarr-labs/homarr/commit/f9aeb8ffe3ff4cd65cd76c560a687912262a735f)) -* **deps:** update dependency recharts to ^2.15.2 ([#2785](https://github.com/homarr-labs/homarr/issues/2785)) ([f33b1cb](https://github.com/homarr-labs/homarr/commit/f33b1cb5d0c317df5348e87e0f5f43fdc6044615)) -* **deps:** update dependency sass to ^1.86.1 ([#2762](https://github.com/homarr-labs/homarr/issues/2762)) ([3e35051](https://github.com/homarr-labs/homarr/commit/3e3505176a7df01bae5173d7f62380fa17859e8f)) -* **deps:** update dependency sass to ^1.86.2 ([#2784](https://github.com/homarr-labs/homarr/issues/2784)) ([3131082](https://github.com/homarr-labs/homarr/commit/3131082c778191be5568a93bbf5f10219f3c2be9)) -* **deps:** update dependency sass to ^1.86.3 ([#2796](https://github.com/homarr-labs/homarr/issues/2796)) ([98ecc68](https://github.com/homarr-labs/homarr/commit/98ecc683e563475644530682f08d335ac3671a5e)) -* **deps:** update dependency swagger-ui-react to ^5.20.3 ([#2777](https://github.com/homarr-labs/homarr/issues/2777)) ([81d1231](https://github.com/homarr-labs/homarr/commit/81d1231d8fc026dd9f1ba58e28937aba9d94d88e)) -* **deps:** update dependency swagger-ui-react to ^5.20.4 ([#2786](https://github.com/homarr-labs/homarr/issues/2786)) ([85672d9](https://github.com/homarr-labs/homarr/commit/85672d9cf15bf48c9cc2fb4e746f65814f46361b)) -* **deps:** update dependency swagger-ui-react to ^5.20.5 ([#2787](https://github.com/homarr-labs/homarr/issues/2787)) ([3363eeb](https://github.com/homarr-labs/homarr/commit/3363eebdddf10a028d1cdebcb4d581105ba1d63c)) -* **deps:** update dependency swagger-ui-react to ^5.20.6 ([#2798](https://github.com/homarr-labs/homarr/issues/2798)) ([968a82b](https://github.com/homarr-labs/homarr/commit/968a82baf5d6adc64c680508493b77b892fdd5fc)) -* **deps:** update dependency trpc-to-openapi to ^2.1.4 ([#2748](https://github.com/homarr-labs/homarr/issues/2748)) ([c69e331](https://github.com/homarr-labs/homarr/commit/c69e331ded3cfde837dcf28c8b1ba4a9b7a3c8aa)) -* **deps:** update dependency trpc-to-openapi to ^2.1.5 ([#2799](https://github.com/homarr-labs/homarr/issues/2799)) ([b03941e](https://github.com/homarr-labs/homarr/commit/b03941ed80057154f0b4b04c764652ada1fdf18c)) -* **deps:** update dependency typescript-eslint to ^8.29.0 ([#2761](https://github.com/homarr-labs/homarr/issues/2761)) ([3687c4b](https://github.com/homarr-labs/homarr/commit/3687c4b3d655d9cebb85fb3c3ad80f494e9a8f0a)) -* **deps:** update dependency undici to v7.7.0 ([#2776](https://github.com/homarr-labs/homarr/issues/2776)) ([ff5c313](https://github.com/homarr-labs/homarr/commit/ff5c31342fe9eb668533d7d9f0d65ad3f01eba0a)) -* **deps:** update tanstack-query monorepo to ^5.71.0 ([#2752](https://github.com/homarr-labs/homarr/issues/2752)) ([77044e8](https://github.com/homarr-labs/homarr/commit/77044e8e0b8e7267b8547eb1d0f86026948b292a)) -* **deps:** update tanstack-query monorepo to ^5.71.1 ([#2756](https://github.com/homarr-labs/homarr/issues/2756)) ([0b8a009](https://github.com/homarr-labs/homarr/commit/0b8a0098bd02a71107af9702e39000227028ec20)) -* **deps:** update tanstack-query monorepo to ^5.71.10 ([#2790](https://github.com/homarr-labs/homarr/issues/2790)) ([964368a](https://github.com/homarr-labs/homarr/commit/964368a06c8385df63a252e2d0759a2524348ac6)) -* **deps:** update tanstack-query monorepo to ^5.71.3 ([#2767](https://github.com/homarr-labs/homarr/issues/2767)) ([858fe6e](https://github.com/homarr-labs/homarr/commit/858fe6e19a682bb0fa0cfa0d11c2423447fdad2f)) -* **deps:** update tanstack-query monorepo to ^5.71.5 ([#2780](https://github.com/homarr-labs/homarr/issues/2780)) ([466d0e0](https://github.com/homarr-labs/homarr/commit/466d0e00530903ab4101cd2e94c00ab8a7c1c8ce)) -* **deps:** update testcontainers-node monorepo to ^10.24.0 ([#2789](https://github.com/homarr-labs/homarr/issues/2789)) ([1b05041](https://github.com/homarr-labs/homarr/commit/1b0504198b41032319ead2604721abaaf08709d8)) -* **deps:** update tiptap monorepo to v2.11.7 ([#2749](https://github.com/homarr-labs/homarr/issues/2749)) ([0ec8f23](https://github.com/homarr-labs/homarr/commit/0ec8f23b7c655889d8f6fb9fcfd66a9736eb5a10)) -* **deps:** update tiptap monorepo to v2.11.7 ([#2750](https://github.com/homarr-labs/homarr/issues/2750)) ([59b1630](https://github.com/homarr-labs/homarr/commit/59b16305326ac811ad91e89c0786b9e6b1b7e1df)) -* **deps:** update trpc monorepo to ^11.0.2 ([#2792](https://github.com/homarr-labs/homarr/issues/2792)) ([8886380](https://github.com/homarr-labs/homarr/commit/8886380f0a9ea7d35cd54182a378b2f47b71c283)) -* **deps:** update turbo monorepo to ^2.5.0 ([#2791](https://github.com/homarr-labs/homarr/issues/2791)) ([0b41967](https://github.com/homarr-labs/homarr/commit/0b41967ec366d925dbb172d38c3677d88f51f0a9)) -* **nextcloud:** issue with self signed certificates ([#2760](https://github.com/homarr-labs/homarr/issues/2760)) ([7f77130](https://github.com/homarr-labs/homarr/commit/7f77130978eb7f25e571b7315250c91656a85d78)) -* update check blocks page loading ([#2782](https://github.com/homarr-labs/homarr/issues/2782)) ([29ff879](https://github.com/homarr-labs/homarr/commit/29ff879dfd1036d44b7c4735a0b269a83173b4d1)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.5.2 ([#2795](https://github.com/homarr-labs/homarr/issues/2795)) ([ea8bf43](https://github.com/homarr-labs/homarr/commit/ea8bf43d7b56f526fbf2d4a3955c2c179e4e74d8)) +- **deps:** update dependency @kubernetes/client-node to ^1.1.1 ([#2793](https://github.com/homarr-labs/homarr/issues/2793)) ([76b8b35](https://github.com/homarr-labs/homarr/commit/76b8b35cc1f586797210bdcd3d848d64b5f36d63)) +- **deps:** update dependency dockerode to ^4.0.5 ([#2757](https://github.com/homarr-labs/homarr/issues/2757)) ([db13fd0](https://github.com/homarr-labs/homarr/commit/db13fd03c018cb2f79f0b094b93b69d69fde97ff)) +- **deps:** update dependency eslint-plugin-react to ^7.37.5 ([#2794](https://github.com/homarr-labs/homarr/issues/2794)) ([f9aeb8f](https://github.com/homarr-labs/homarr/commit/f9aeb8ffe3ff4cd65cd76c560a687912262a735f)) +- **deps:** update dependency recharts to ^2.15.2 ([#2785](https://github.com/homarr-labs/homarr/issues/2785)) ([f33b1cb](https://github.com/homarr-labs/homarr/commit/f33b1cb5d0c317df5348e87e0f5f43fdc6044615)) +- **deps:** update dependency sass to ^1.86.1 ([#2762](https://github.com/homarr-labs/homarr/issues/2762)) ([3e35051](https://github.com/homarr-labs/homarr/commit/3e3505176a7df01bae5173d7f62380fa17859e8f)) +- **deps:** update dependency sass to ^1.86.2 ([#2784](https://github.com/homarr-labs/homarr/issues/2784)) ([3131082](https://github.com/homarr-labs/homarr/commit/3131082c778191be5568a93bbf5f10219f3c2be9)) +- **deps:** update dependency sass to ^1.86.3 ([#2796](https://github.com/homarr-labs/homarr/issues/2796)) ([98ecc68](https://github.com/homarr-labs/homarr/commit/98ecc683e563475644530682f08d335ac3671a5e)) +- **deps:** update dependency swagger-ui-react to ^5.20.3 ([#2777](https://github.com/homarr-labs/homarr/issues/2777)) ([81d1231](https://github.com/homarr-labs/homarr/commit/81d1231d8fc026dd9f1ba58e28937aba9d94d88e)) +- **deps:** update dependency swagger-ui-react to ^5.20.4 ([#2786](https://github.com/homarr-labs/homarr/issues/2786)) ([85672d9](https://github.com/homarr-labs/homarr/commit/85672d9cf15bf48c9cc2fb4e746f65814f46361b)) +- **deps:** update dependency swagger-ui-react to ^5.20.5 ([#2787](https://github.com/homarr-labs/homarr/issues/2787)) ([3363eeb](https://github.com/homarr-labs/homarr/commit/3363eebdddf10a028d1cdebcb4d581105ba1d63c)) +- **deps:** update dependency swagger-ui-react to ^5.20.6 ([#2798](https://github.com/homarr-labs/homarr/issues/2798)) ([968a82b](https://github.com/homarr-labs/homarr/commit/968a82baf5d6adc64c680508493b77b892fdd5fc)) +- **deps:** update dependency trpc-to-openapi to ^2.1.4 ([#2748](https://github.com/homarr-labs/homarr/issues/2748)) ([c69e331](https://github.com/homarr-labs/homarr/commit/c69e331ded3cfde837dcf28c8b1ba4a9b7a3c8aa)) +- **deps:** update dependency trpc-to-openapi to ^2.1.5 ([#2799](https://github.com/homarr-labs/homarr/issues/2799)) ([b03941e](https://github.com/homarr-labs/homarr/commit/b03941ed80057154f0b4b04c764652ada1fdf18c)) +- **deps:** update dependency typescript-eslint to ^8.29.0 ([#2761](https://github.com/homarr-labs/homarr/issues/2761)) ([3687c4b](https://github.com/homarr-labs/homarr/commit/3687c4b3d655d9cebb85fb3c3ad80f494e9a8f0a)) +- **deps:** update dependency undici to v7.7.0 ([#2776](https://github.com/homarr-labs/homarr/issues/2776)) ([ff5c313](https://github.com/homarr-labs/homarr/commit/ff5c31342fe9eb668533d7d9f0d65ad3f01eba0a)) +- **deps:** update tanstack-query monorepo to ^5.71.0 ([#2752](https://github.com/homarr-labs/homarr/issues/2752)) ([77044e8](https://github.com/homarr-labs/homarr/commit/77044e8e0b8e7267b8547eb1d0f86026948b292a)) +- **deps:** update tanstack-query monorepo to ^5.71.1 ([#2756](https://github.com/homarr-labs/homarr/issues/2756)) ([0b8a009](https://github.com/homarr-labs/homarr/commit/0b8a0098bd02a71107af9702e39000227028ec20)) +- **deps:** update tanstack-query monorepo to ^5.71.10 ([#2790](https://github.com/homarr-labs/homarr/issues/2790)) ([964368a](https://github.com/homarr-labs/homarr/commit/964368a06c8385df63a252e2d0759a2524348ac6)) +- **deps:** update tanstack-query monorepo to ^5.71.3 ([#2767](https://github.com/homarr-labs/homarr/issues/2767)) ([858fe6e](https://github.com/homarr-labs/homarr/commit/858fe6e19a682bb0fa0cfa0d11c2423447fdad2f)) +- **deps:** update tanstack-query monorepo to ^5.71.5 ([#2780](https://github.com/homarr-labs/homarr/issues/2780)) ([466d0e0](https://github.com/homarr-labs/homarr/commit/466d0e00530903ab4101cd2e94c00ab8a7c1c8ce)) +- **deps:** update testcontainers-node monorepo to ^10.24.0 ([#2789](https://github.com/homarr-labs/homarr/issues/2789)) ([1b05041](https://github.com/homarr-labs/homarr/commit/1b0504198b41032319ead2604721abaaf08709d8)) +- **deps:** update tiptap monorepo to v2.11.7 ([#2749](https://github.com/homarr-labs/homarr/issues/2749)) ([0ec8f23](https://github.com/homarr-labs/homarr/commit/0ec8f23b7c655889d8f6fb9fcfd66a9736eb5a10)) +- **deps:** update tiptap monorepo to v2.11.7 ([#2750](https://github.com/homarr-labs/homarr/issues/2750)) ([59b1630](https://github.com/homarr-labs/homarr/commit/59b16305326ac811ad91e89c0786b9e6b1b7e1df)) +- **deps:** update trpc monorepo to ^11.0.2 ([#2792](https://github.com/homarr-labs/homarr/issues/2792)) ([8886380](https://github.com/homarr-labs/homarr/commit/8886380f0a9ea7d35cd54182a378b2f47b71c283)) +- **deps:** update turbo monorepo to ^2.5.0 ([#2791](https://github.com/homarr-labs/homarr/issues/2791)) ([0b41967](https://github.com/homarr-labs/homarr/commit/0b41967ec366d925dbb172d38c3677d88f51f0a9)) +- **nextcloud:** issue with self signed certificates ([#2760](https://github.com/homarr-labs/homarr/issues/2760)) ([7f77130](https://github.com/homarr-labs/homarr/commit/7f77130978eb7f25e571b7315250c91656a85d78)) +- update check blocks page loading ([#2782](https://github.com/homarr-labs/homarr/issues/2782)) ([29ff879](https://github.com/homarr-labs/homarr/commit/29ff879dfd1036d44b7c4735a0b269a83173b4d1)) ### Reverts -* add restriction callback to restrict visibility and modification of widget kinds ([#2746](https://github.com/homarr-labs/homarr/issues/2746)) ([9851531](https://github.com/homarr-labs/homarr/commit/98515312a2439d1ed9fc5b412843ca625120b2ac)) +- add restriction callback to restrict visibility and modification of widget kinds ([#2746](https://github.com/homarr-labs/homarr/issues/2746)) ([9851531](https://github.com/homarr-labs/homarr/commit/98515312a2439d1ed9fc5b412843ca625120b2ac)) ## [1.13.1](https://github.com/homarr-labs/homarr/compare/v1.13.0...v1.13.1) (2025-03-28) ### Bug Fixes -* **deps:** update react monorepo to v19.1.0 ([#2734](https://github.com/homarr-labs/homarr/issues/2734)) ([94ff401](https://github.com/homarr-labs/homarr/commit/94ff401d7dface924f48affccbc59e3a98ed8dc1)) +- **deps:** update react monorepo to v19.1.0 ([#2734](https://github.com/homarr-labs/homarr/issues/2734)) ([94ff401](https://github.com/homarr-labs/homarr/commit/94ff401d7dface924f48affccbc59e3a98ed8dc1)) ### Reverts -* ssg integration create ([#2736](https://github.com/homarr-labs/homarr/issues/2736)) ([fef50a5](https://github.com/homarr-labs/homarr/commit/fef50a53b1fb592668dfa9aade6b110e42aec9a8)) +- ssg integration create ([#2736](https://github.com/homarr-labs/homarr/issues/2736)) ([fef50a5](https://github.com/homarr-labs/homarr/commit/fef50a53b1fb592668dfa9aade6b110e42aec9a8)) ## [1.13.0](https://github.com/homarr-labs/homarr/compare/v1.12.0...v1.13.0) (2025-03-28) ### Features -* add default search engines seeding / set homarr docs as global server search engine ([#2663](https://github.com/homarr-labs/homarr/issues/2663)) ([3e1c000](https://github.com/homarr-labs/homarr/commit/3e1c000d515c0edc6f49241fc381187e1829ca7e)) -* add german swiss locale ([#2726](https://github.com/homarr-labs/homarr/issues/2726)) ([eba738e](https://github.com/homarr-labs/homarr/commit/eba738e5d6594d46b5b7d1eab875fc8060e0fe7b)) -* add jetbrains run profile ([#2704](https://github.com/homarr-labs/homarr/issues/2704)) ([07f0abf](https://github.com/homarr-labs/homarr/commit/07f0abf28cb31f81860e623c70970e16d17e2836)) -* add title to dynamic section ([#2614](https://github.com/homarr-labs/homarr/issues/2614)) ([1dd7b1a](https://github.com/homarr-labs/homarr/commit/1dd7b1a6b97f75bca0d1a5c0dbb4254aa4bbd418)) -* app dropdown add infinity scroll ([#2696](https://github.com/homarr-labs/homarr/issues/2696)) ([8bf893b](https://github.com/homarr-labs/homarr/commit/8bf893b39292f34f5c697c09ba2c9e53c8a6ea90)) -* **auth:** add env variable to force user-info usage instead of idtoken ([#2711](https://github.com/homarr-labs/homarr/issues/2711)) ([94d3dad](https://github.com/homarr-labs/homarr/commit/94d3dad909c39cec096ff61c0a2f45e8853b6111)) -* auto sign-in when creating the initial user ([#2664](https://github.com/homarr-labs/homarr/issues/2664)) ([46c95e0](https://github.com/homarr-labs/homarr/commit/46c95e0da3ad27eb072efc45250abb0baf3e2483)) -* implement auto-select icon ([#2679](https://github.com/homarr-labs/homarr/issues/2679)) ([1a3a559](https://github.com/homarr-labs/homarr/commit/1a3a55934d8b3e4703e0ce44d9d26ad7ff100aca)) -* **lang:** add english uk language ([#2715](https://github.com/homarr-labs/homarr/issues/2715)) ([93c64ba](https://github.com/homarr-labs/homarr/commit/93c64baec294c39cd490a85f8b06b57d53fc82b3)) -* **logs:** improve logs by logging errors with causes and metadata ([#2703](https://github.com/homarr-labs/homarr/issues/2703)) ([579dd57](https://github.com/homarr-labs/homarr/commit/579dd5763d139e1644c2e192620728afa54c96d2)) -* set home board when creating first board ([#2683](https://github.com/homarr-labs/homarr/issues/2683)) ([8f7f211](https://github.com/homarr-labs/homarr/commit/8f7f2110ec29db12ea2d83cd779ec86851209188)) -* SSG integration creation page ([#2684](https://github.com/homarr-labs/homarr/issues/2684)) ([ce0705e](https://github.com/homarr-labs/homarr/commit/ce0705e9d4a502273a0d84e4e14d61a061fd21f9)) -* **widget:** add restriction callback to restrict visibility and modification of widget kinds ([#2658](https://github.com/homarr-labs/homarr/issues/2658)) ([84f73d3](https://github.com/homarr-labs/homarr/commit/84f73d33a061a1d243803078b245a8016a615af9)) +- add default search engines seeding / set homarr docs as global server search engine ([#2663](https://github.com/homarr-labs/homarr/issues/2663)) ([3e1c000](https://github.com/homarr-labs/homarr/commit/3e1c000d515c0edc6f49241fc381187e1829ca7e)) +- add german swiss locale ([#2726](https://github.com/homarr-labs/homarr/issues/2726)) ([eba738e](https://github.com/homarr-labs/homarr/commit/eba738e5d6594d46b5b7d1eab875fc8060e0fe7b)) +- add jetbrains run profile ([#2704](https://github.com/homarr-labs/homarr/issues/2704)) ([07f0abf](https://github.com/homarr-labs/homarr/commit/07f0abf28cb31f81860e623c70970e16d17e2836)) +- add title to dynamic section ([#2614](https://github.com/homarr-labs/homarr/issues/2614)) ([1dd7b1a](https://github.com/homarr-labs/homarr/commit/1dd7b1a6b97f75bca0d1a5c0dbb4254aa4bbd418)) +- app dropdown add infinity scroll ([#2696](https://github.com/homarr-labs/homarr/issues/2696)) ([8bf893b](https://github.com/homarr-labs/homarr/commit/8bf893b39292f34f5c697c09ba2c9e53c8a6ea90)) +- **auth:** add env variable to force user-info usage instead of idtoken ([#2711](https://github.com/homarr-labs/homarr/issues/2711)) ([94d3dad](https://github.com/homarr-labs/homarr/commit/94d3dad909c39cec096ff61c0a2f45e8853b6111)) +- auto sign-in when creating the initial user ([#2664](https://github.com/homarr-labs/homarr/issues/2664)) ([46c95e0](https://github.com/homarr-labs/homarr/commit/46c95e0da3ad27eb072efc45250abb0baf3e2483)) +- implement auto-select icon ([#2679](https://github.com/homarr-labs/homarr/issues/2679)) ([1a3a559](https://github.com/homarr-labs/homarr/commit/1a3a55934d8b3e4703e0ce44d9d26ad7ff100aca)) +- **lang:** add english uk language ([#2715](https://github.com/homarr-labs/homarr/issues/2715)) ([93c64ba](https://github.com/homarr-labs/homarr/commit/93c64baec294c39cd490a85f8b06b57d53fc82b3)) +- **logs:** improve logs by logging errors with causes and metadata ([#2703](https://github.com/homarr-labs/homarr/issues/2703)) ([579dd57](https://github.com/homarr-labs/homarr/commit/579dd5763d139e1644c2e192620728afa54c96d2)) +- set home board when creating first board ([#2683](https://github.com/homarr-labs/homarr/issues/2683)) ([8f7f211](https://github.com/homarr-labs/homarr/commit/8f7f2110ec29db12ea2d83cd779ec86851209188)) +- SSG integration creation page ([#2684](https://github.com/homarr-labs/homarr/issues/2684)) ([ce0705e](https://github.com/homarr-labs/homarr/commit/ce0705e9d4a502273a0d84e4e14d61a061fd21f9)) +- **widget:** add restriction callback to restrict visibility and modification of widget kinds ([#2658](https://github.com/homarr-labs/homarr/issues/2658)) ([84f73d3](https://github.com/homarr-labs/homarr/commit/84f73d33a061a1d243803078b245a8016a615af9)) ### Bug Fixes -* allow deletion of external users ([#2725](https://github.com/homarr-labs/homarr/issues/2725)) ([40e0098](https://github.com/homarr-labs/homarr/commit/40e00987cb6f4ee58fdce1da9489eedd92b8843d)) -* **auth:** fusion auth returns www-authenticate token response ([#2719](https://github.com/homarr-labs/homarr/issues/2719)) ([b5b0b06](https://github.com/homarr-labs/homarr/commit/b5b0b069d2029110d5618a29af5ae003030584d9)) -* bookmarks layout ([#2675](https://github.com/homarr-labs/homarr/issues/2675)) ([8a071f9](https://github.com/homarr-labs/homarr/commit/8a071f9ab6bc4c85073dc52cc2e60da69f30950a)) -* calendar indicators ([#2712](https://github.com/homarr-labs/homarr/issues/2712)) ([70ea093](https://github.com/homarr-labs/homarr/commit/70ea093eb6530d25d3e60e6d496651e3fc457826)) -* **deps:** update dependency drizzle-kit to ^0.30.6 ([#2706](https://github.com/homarr-labs/homarr/issues/2706)) ([f03e381](https://github.com/homarr-labs/homarr/commit/f03e381aea414c5fb770c7ba092b31f9c53eee11)) -* **deps:** update dependency drizzle-zod to ^0.7.1 ([#2717](https://github.com/homarr-labs/homarr/issues/2717)) ([569ec6f](https://github.com/homarr-labs/homarr/commit/569ec6fe5ccec980351162024170fabe06dcc3da)) -* **deps:** update dependency ldapts to v7.3.3 ([#2691](https://github.com/homarr-labs/homarr/issues/2691)) ([00f5a87](https://github.com/homarr-labs/homarr/commit/00f5a877a6f09037eff4c9934fc273c4d2af0f6c)) -* **deps:** update dependency swagger-ui-react to ^5.20.2 ([#2708](https://github.com/homarr-labs/homarr/issues/2708)) ([68407ea](https://github.com/homarr-labs/homarr/commit/68407eaa195894db37018cefeeca4ae2da085847)) -* **deps:** update dependency typescript-eslint to ^8.28.0 ([#2693](https://github.com/homarr-labs/homarr/issues/2693)) ([f624611](https://github.com/homarr-labs/homarr/commit/f6246115405cdc85948059170742b0bae58ab337)) -* **deps:** update dependency undici to v7.6.0 ([#2710](https://github.com/homarr-labs/homarr/issues/2710)) ([43b8cfa](https://github.com/homarr-labs/homarr/commit/43b8cfa4dd250013fdf15d509a072ba0984f9ab1)) -* **deps:** update mantine monorepo to ^7.17.3 ([#2707](https://github.com/homarr-labs/homarr/issues/2707)) ([6854e47](https://github.com/homarr-labs/homarr/commit/6854e4729d3ba4a82a318813fec0a20eccdbed18)) -* **deps:** update nextjs monorepo to v15.2.4 ([#2720](https://github.com/homarr-labs/homarr/issues/2720)) ([ac77bdd](https://github.com/homarr-labs/homarr/commit/ac77bdd84cba47a43d1952725a9c7feccd972766)) -* **deps:** update tanstack-query monorepo to ^5.69.2 ([#2714](https://github.com/homarr-labs/homarr/issues/2714)) ([78b5520](https://github.com/homarr-labs/homarr/commit/78b55202e7f4739933768d27211556f927b04fed)) -* **deps:** update tanstack-query monorepo to ^5.69.3 ([#2716](https://github.com/homarr-labs/homarr/issues/2716)) ([e7e80db](https://github.com/homarr-labs/homarr/commit/e7e80dbc7d62830ce1ce150b6e22a67220da8be8)) -* **deps:** update tanstack-query monorepo to ^5.70.0 ([#2722](https://github.com/homarr-labs/homarr/issues/2722)) ([34eb9b3](https://github.com/homarr-labs/homarr/commit/34eb9b366fdc58c9fc03d18ac7dd68bff1ea83e6)) -* **deps:** update testcontainers-node monorepo to ^10.22.0 ([#2692](https://github.com/homarr-labs/homarr/issues/2692)) ([b7a6d95](https://github.com/homarr-labs/homarr/commit/b7a6d950db557ea9deadc0be014b5f218611ac83)) -* **deps:** update testcontainers-node monorepo to ^10.23.0 ([#2699](https://github.com/homarr-labs/homarr/issues/2699)) ([c3264b2](https://github.com/homarr-labs/homarr/commit/c3264b2fe10ad374e92eb16921d43427d7ca866b)) -* **deps:** update tiptap monorepo to v2.11.6 ([#2718](https://github.com/homarr-labs/homarr/issues/2718)) ([0ed4c74](https://github.com/homarr-labs/homarr/commit/0ed4c741c59c3e498aa247adc292bdbbde1c59d3)) -* **deps:** update trpc monorepo to ^11.0.1 ([#2724](https://github.com/homarr-labs/homarr/issues/2724)) ([2178185](https://github.com/homarr-labs/homarr/commit/217818573e8bd7d49a821afdf269cd8b3f3d442d)) -* **import:** autofix missing shapes for sidebars and some sections as well ([#2723](https://github.com/homarr-labs/homarr/issues/2723)) ([62c7955](https://github.com/homarr-labs/homarr/commit/62c7955e48ca62b4bf1baf26ac6a12847795ac18)) -* Media request via search engine ([#2677](https://github.com/homarr-labs/homarr/issues/2677)) ([5a8405a](https://github.com/homarr-labs/homarr/commit/5a8405a9a81257b023c0265309f7f530b2e23c7a)) +- allow deletion of external users ([#2725](https://github.com/homarr-labs/homarr/issues/2725)) ([40e0098](https://github.com/homarr-labs/homarr/commit/40e00987cb6f4ee58fdce1da9489eedd92b8843d)) +- **auth:** fusion auth returns www-authenticate token response ([#2719](https://github.com/homarr-labs/homarr/issues/2719)) ([b5b0b06](https://github.com/homarr-labs/homarr/commit/b5b0b069d2029110d5618a29af5ae003030584d9)) +- bookmarks layout ([#2675](https://github.com/homarr-labs/homarr/issues/2675)) ([8a071f9](https://github.com/homarr-labs/homarr/commit/8a071f9ab6bc4c85073dc52cc2e60da69f30950a)) +- calendar indicators ([#2712](https://github.com/homarr-labs/homarr/issues/2712)) ([70ea093](https://github.com/homarr-labs/homarr/commit/70ea093eb6530d25d3e60e6d496651e3fc457826)) +- **deps:** update dependency drizzle-kit to ^0.30.6 ([#2706](https://github.com/homarr-labs/homarr/issues/2706)) ([f03e381](https://github.com/homarr-labs/homarr/commit/f03e381aea414c5fb770c7ba092b31f9c53eee11)) +- **deps:** update dependency drizzle-zod to ^0.7.1 ([#2717](https://github.com/homarr-labs/homarr/issues/2717)) ([569ec6f](https://github.com/homarr-labs/homarr/commit/569ec6fe5ccec980351162024170fabe06dcc3da)) +- **deps:** update dependency ldapts to v7.3.3 ([#2691](https://github.com/homarr-labs/homarr/issues/2691)) ([00f5a87](https://github.com/homarr-labs/homarr/commit/00f5a877a6f09037eff4c9934fc273c4d2af0f6c)) +- **deps:** update dependency swagger-ui-react to ^5.20.2 ([#2708](https://github.com/homarr-labs/homarr/issues/2708)) ([68407ea](https://github.com/homarr-labs/homarr/commit/68407eaa195894db37018cefeeca4ae2da085847)) +- **deps:** update dependency typescript-eslint to ^8.28.0 ([#2693](https://github.com/homarr-labs/homarr/issues/2693)) ([f624611](https://github.com/homarr-labs/homarr/commit/f6246115405cdc85948059170742b0bae58ab337)) +- **deps:** update dependency undici to v7.6.0 ([#2710](https://github.com/homarr-labs/homarr/issues/2710)) ([43b8cfa](https://github.com/homarr-labs/homarr/commit/43b8cfa4dd250013fdf15d509a072ba0984f9ab1)) +- **deps:** update mantine monorepo to ^7.17.3 ([#2707](https://github.com/homarr-labs/homarr/issues/2707)) ([6854e47](https://github.com/homarr-labs/homarr/commit/6854e4729d3ba4a82a318813fec0a20eccdbed18)) +- **deps:** update nextjs monorepo to v15.2.4 ([#2720](https://github.com/homarr-labs/homarr/issues/2720)) ([ac77bdd](https://github.com/homarr-labs/homarr/commit/ac77bdd84cba47a43d1952725a9c7feccd972766)) +- **deps:** update tanstack-query monorepo to ^5.69.2 ([#2714](https://github.com/homarr-labs/homarr/issues/2714)) ([78b5520](https://github.com/homarr-labs/homarr/commit/78b55202e7f4739933768d27211556f927b04fed)) +- **deps:** update tanstack-query monorepo to ^5.69.3 ([#2716](https://github.com/homarr-labs/homarr/issues/2716)) ([e7e80db](https://github.com/homarr-labs/homarr/commit/e7e80dbc7d62830ce1ce150b6e22a67220da8be8)) +- **deps:** update tanstack-query monorepo to ^5.70.0 ([#2722](https://github.com/homarr-labs/homarr/issues/2722)) ([34eb9b3](https://github.com/homarr-labs/homarr/commit/34eb9b366fdc58c9fc03d18ac7dd68bff1ea83e6)) +- **deps:** update testcontainers-node monorepo to ^10.22.0 ([#2692](https://github.com/homarr-labs/homarr/issues/2692)) ([b7a6d95](https://github.com/homarr-labs/homarr/commit/b7a6d950db557ea9deadc0be014b5f218611ac83)) +- **deps:** update testcontainers-node monorepo to ^10.23.0 ([#2699](https://github.com/homarr-labs/homarr/issues/2699)) ([c3264b2](https://github.com/homarr-labs/homarr/commit/c3264b2fe10ad374e92eb16921d43427d7ca866b)) +- **deps:** update tiptap monorepo to v2.11.6 ([#2718](https://github.com/homarr-labs/homarr/issues/2718)) ([0ed4c74](https://github.com/homarr-labs/homarr/commit/0ed4c741c59c3e498aa247adc292bdbbde1c59d3)) +- **deps:** update trpc monorepo to ^11.0.1 ([#2724](https://github.com/homarr-labs/homarr/issues/2724)) ([2178185](https://github.com/homarr-labs/homarr/commit/217818573e8bd7d49a821afdf269cd8b3f3d442d)) +- **import:** autofix missing shapes for sidebars and some sections as well ([#2723](https://github.com/homarr-labs/homarr/issues/2723)) ([62c7955](https://github.com/homarr-labs/homarr/commit/62c7955e48ca62b4bf1baf26ac6a12847795ac18)) +- Media request via search engine ([#2677](https://github.com/homarr-labs/homarr/issues/2677)) ([5a8405a](https://github.com/homarr-labs/homarr/commit/5a8405a9a81257b023c0265309f7f530b2e23c7a)) ### Reverts -* add development package and update workspace ([#2700](https://github.com/homarr-labs/homarr/issues/2700))" ([#2728](https://github.com/homarr-labs/homarr/issues/2728)) ([996ec54](https://github.com/homarr-labs/homarr/commit/996ec548c4b9c8561919409b81adc90b0a24fbd6)) +- add development package and update workspace ([#2700](https://github.com/homarr-labs/homarr/issues/2700))" ([#2728](https://github.com/homarr-labs/homarr/issues/2728)) ([996ec54](https://github.com/homarr-labs/homarr/commit/996ec548c4b9c8561919409b81adc90b0a24fbd6)) ## [1.12.0](https://github.com/homarr-labs/homarr/compare/v1.11.0...v1.12.0) (2025-03-21) ### Features -* stock price widget ([#2579](https://github.com/homarr-labs/homarr/issues/2579)) ([91a69c1](https://github.com/homarr-labs/homarr/commit/91a69c162a51cff8899eaa7d5a113f6ec8feafba)) +- stock price widget ([#2579](https://github.com/homarr-labs/homarr/issues/2579)) ([91a69c1](https://github.com/homarr-labs/homarr/commit/91a69c162a51cff8899eaa7d5a113f6ec8feafba)) ### Bug Fixes -* **cli:** fix-usernames command only fixes lowercase usernames ([#2650](https://github.com/homarr-labs/homarr/issues/2650)) ([b0381cb](https://github.com/homarr-labs/homarr/commit/b0381cb8836b8477d0990c264aa399cb06b85237)) -* **deps:** update dependency better-sqlite3 to ^11.9.1 ([#2632](https://github.com/homarr-labs/homarr/issues/2632)) ([289c7f1](https://github.com/homarr-labs/homarr/commit/289c7f1a60477024207261d486c2a88718320df7)) -* **deps:** update dependency drizzle-orm to ^0.40.1 ([#2624](https://github.com/homarr-labs/homarr/issues/2624)) ([7ba2067](https://github.com/homarr-labs/homarr/commit/7ba2067689ed7fd3ab78e75a6ba385483a97b0a3)) -* **deps:** update dependency drizzle-orm to ^0.41.0 ([#2666](https://github.com/homarr-labs/homarr/issues/2666)) ([8dee8f8](https://github.com/homarr-labs/homarr/commit/8dee8f8680f2282d76f6e727123220a60e2b596d)) -* **deps:** update dependency mysql2 to v3.14.0 ([#2652](https://github.com/homarr-labs/homarr/issues/2652)) ([3e4d24b](https://github.com/homarr-labs/homarr/commit/3e4d24b28e998af80c00c8ad141660d4bfe5ef33)) -* **deps:** update dependency sass to ^1.86.0 ([#2629](https://github.com/homarr-labs/homarr/issues/2629)) ([c9fecaa](https://github.com/homarr-labs/homarr/commit/c9fecaabb6416db5c55d9066ed782712cc96faa0)) -* **deps:** update dependency typescript-eslint to ^8.27.0 ([#2653](https://github.com/homarr-labs/homarr/issues/2653)) ([e3fcfbe](https://github.com/homarr-labs/homarr/commit/e3fcfbe9166834e9443c5ead21c2f67b2d01ad2e)) -* **deps:** update tanstack-query monorepo to ^5.69.0 ([#2634](https://github.com/homarr-labs/homarr/issues/2634)) ([2d2ae5a](https://github.com/homarr-labs/homarr/commit/2d2ae5a4191085404f8f7f790a4f0f62b86b408d)) -* **deps:** update testcontainers-node monorepo to ^10.21.0 ([#2633](https://github.com/homarr-labs/homarr/issues/2633)) ([1519789](https://github.com/homarr-labs/homarr/commit/15197897ac3e2f3ed1dcc24c5f64748eaa52f98f)) -* **permissions:** unable to edit board with full board permissions ([#2625](https://github.com/homarr-labs/homarr/issues/2625)) ([4cc3739](https://github.com/homarr-labs/homarr/commit/4cc37397c2e56a97e6b1173735da78824c7b15e5)) -* prohibit dot in board name ([#2643](https://github.com/homarr-labs/homarr/issues/2643)) ([bb8cb6d](https://github.com/homarr-labs/homarr/commit/bb8cb6ddeda6906b3c43270ec9dd8ec66d27f0cd)) +- **cli:** fix-usernames command only fixes lowercase usernames ([#2650](https://github.com/homarr-labs/homarr/issues/2650)) ([b0381cb](https://github.com/homarr-labs/homarr/commit/b0381cb8836b8477d0990c264aa399cb06b85237)) +- **deps:** update dependency better-sqlite3 to ^11.9.1 ([#2632](https://github.com/homarr-labs/homarr/issues/2632)) ([289c7f1](https://github.com/homarr-labs/homarr/commit/289c7f1a60477024207261d486c2a88718320df7)) +- **deps:** update dependency drizzle-orm to ^0.40.1 ([#2624](https://github.com/homarr-labs/homarr/issues/2624)) ([7ba2067](https://github.com/homarr-labs/homarr/commit/7ba2067689ed7fd3ab78e75a6ba385483a97b0a3)) +- **deps:** update dependency drizzle-orm to ^0.41.0 ([#2666](https://github.com/homarr-labs/homarr/issues/2666)) ([8dee8f8](https://github.com/homarr-labs/homarr/commit/8dee8f8680f2282d76f6e727123220a60e2b596d)) +- **deps:** update dependency mysql2 to v3.14.0 ([#2652](https://github.com/homarr-labs/homarr/issues/2652)) ([3e4d24b](https://github.com/homarr-labs/homarr/commit/3e4d24b28e998af80c00c8ad141660d4bfe5ef33)) +- **deps:** update dependency sass to ^1.86.0 ([#2629](https://github.com/homarr-labs/homarr/issues/2629)) ([c9fecaa](https://github.com/homarr-labs/homarr/commit/c9fecaabb6416db5c55d9066ed782712cc96faa0)) +- **deps:** update dependency typescript-eslint to ^8.27.0 ([#2653](https://github.com/homarr-labs/homarr/issues/2653)) ([e3fcfbe](https://github.com/homarr-labs/homarr/commit/e3fcfbe9166834e9443c5ead21c2f67b2d01ad2e)) +- **deps:** update tanstack-query monorepo to ^5.69.0 ([#2634](https://github.com/homarr-labs/homarr/issues/2634)) ([2d2ae5a](https://github.com/homarr-labs/homarr/commit/2d2ae5a4191085404f8f7f790a4f0f62b86b408d)) +- **deps:** update testcontainers-node monorepo to ^10.21.0 ([#2633](https://github.com/homarr-labs/homarr/issues/2633)) ([1519789](https://github.com/homarr-labs/homarr/commit/15197897ac3e2f3ed1dcc24c5f64748eaa52f98f)) +- **permissions:** unable to edit board with full board permissions ([#2625](https://github.com/homarr-labs/homarr/issues/2625)) ([4cc3739](https://github.com/homarr-labs/homarr/commit/4cc37397c2e56a97e6b1173735da78824c7b15e5)) +- prohibit dot in board name ([#2643](https://github.com/homarr-labs/homarr/issues/2643)) ([bb8cb6d](https://github.com/homarr-labs/homarr/commit/bb8cb6ddeda6906b3c43270ec9dd8ec66d27f0cd)) ## [1.11.0](https://github.com/homarr-labs/homarr/compare/v1.10.0...v1.11.0) (2025-03-14) ### Features -* add nextcloud integration ([#2501](https://github.com/homarr-labs/homarr/issues/2501)) ([2e62a61](https://github.com/homarr-labs/homarr/commit/2e62a61f4d20241fb77065faa00b14d427d4f4e0)) -* **calendar:** add show-unmonitored option ([#2547](https://github.com/homarr-labs/homarr/issues/2547)) ([f6f0d7c](https://github.com/homarr-labs/homarr/commit/f6f0d7c72bd4b91949f957e5e28ff60e6c82d2a5)) -* **integrations:** add checkbox to add app ([#2463](https://github.com/homarr-labs/homarr/issues/2463)) ([22f9166](https://github.com/homarr-labs/homarr/commit/22f91666908c6a140fadd89f52f57a57a51cd935)) -* **kubernetes:** add kubernetes tool ([#1929](https://github.com/homarr-labs/homarr/issues/1929)) ([f19aa29](https://github.com/homarr-labs/homarr/commit/f19aa29607640578f61d1842d4300cc0c0618896)) -* **logs:** improve error logs with stacked causes ([#2574](https://github.com/homarr-labs/homarr/issues/2574)) ([3d4d32f](https://github.com/homarr-labs/homarr/commit/3d4d32f3773f006edc1d441ce419d7b97c26b526)) -* **widgets:** add border color option to advanced-options ([#2512](https://github.com/homarr-labs/homarr/issues/2512)) ([b3464b3](https://github.com/homarr-labs/homarr/commit/b3464b3340cf57b4f85da0dd2e1bd8e754f1bec8)) +- add nextcloud integration ([#2501](https://github.com/homarr-labs/homarr/issues/2501)) ([2e62a61](https://github.com/homarr-labs/homarr/commit/2e62a61f4d20241fb77065faa00b14d427d4f4e0)) +- **calendar:** add show-unmonitored option ([#2547](https://github.com/homarr-labs/homarr/issues/2547)) ([f6f0d7c](https://github.com/homarr-labs/homarr/commit/f6f0d7c72bd4b91949f957e5e28ff60e6c82d2a5)) +- **integrations:** add checkbox to add app ([#2463](https://github.com/homarr-labs/homarr/issues/2463)) ([22f9166](https://github.com/homarr-labs/homarr/commit/22f91666908c6a140fadd89f52f57a57a51cd935)) +- **kubernetes:** add kubernetes tool ([#1929](https://github.com/homarr-labs/homarr/issues/1929)) ([f19aa29](https://github.com/homarr-labs/homarr/commit/f19aa29607640578f61d1842d4300cc0c0618896)) +- **logs:** improve error logs with stacked causes ([#2574](https://github.com/homarr-labs/homarr/issues/2574)) ([3d4d32f](https://github.com/homarr-labs/homarr/commit/3d4d32f3773f006edc1d441ce419d7b97c26b526)) +- **widgets:** add border color option to advanced-options ([#2512](https://github.com/homarr-labs/homarr/issues/2512)) ([b3464b3](https://github.com/homarr-labs/homarr/commit/b3464b3340cf57b4f85da0dd2e1bd8e754f1bec8)) ### Bug Fixes -* action icons not being rendered ([#2593](https://github.com/homarr-labs/homarr/issues/2593)) ([85d2d61](https://github.com/homarr-labs/homarr/commit/85d2d6118495f3b466a1f014b90446d03c5ffdcb)) -* **app:** improve responsive styles ([#2537](https://github.com/homarr-labs/homarr/issues/2537)) ([fb800a0](https://github.com/homarr-labs/homarr/commit/fb800a00084833e785deecdb3b6fde4e35ddf7b8)) -* **bookmarks:** improve responsive styles ([#2536](https://github.com/homarr-labs/homarr/issues/2536)) ([df249a0](https://github.com/homarr-labs/homarr/commit/df249a0173c3a70711c99df3f7983729a64eaff9)) -* **calendar:** dropdown spans over whole screen ([#2569](https://github.com/homarr-labs/homarr/issues/2569)) ([fbbfe9a](https://github.com/homarr-labs/homarr/commit/fbbfe9af293961afcb686f3e7a559b67b37f6743)) -* **calendar:** improve responsive styles ([#2538](https://github.com/homarr-labs/homarr/issues/2538)) ([1db9c3c](https://github.com/homarr-labs/homarr/commit/1db9c3c6925f0baae963c5f079037c2bcd1cee44)) -* **date-time:** improve responsive styles ([#2539](https://github.com/homarr-labs/homarr/issues/2539)) ([fd5b1b0](https://github.com/homarr-labs/homarr/commit/fd5b1b0c082ee440c6c5137629ef1ec4eead23eb)) -* **deps:** update dependency @kubernetes/client-node to ^1.1.0 ([#2591](https://github.com/homarr-labs/homarr/issues/2591)) ([8a02c65](https://github.com/homarr-labs/homarr/commit/8a02c656488bf0f239b8f394d73ed63ade8f61ed)) -* **deps:** update dependency better-sqlite3 to ^11.9.0 ([#2598](https://github.com/homarr-labs/homarr/issues/2598)) ([04c17d1](https://github.com/homarr-labs/homarr/commit/04c17d1c41f0c44e88e39cdfe116972da32624b4)) -* **deps:** update dependency jotai to ^2.12.2 ([#2560](https://github.com/homarr-labs/homarr/issues/2560)) ([ff6ca86](https://github.com/homarr-labs/homarr/commit/ff6ca86a78ccec4a2dee3d08c1420948c4de28ee)) -* **deps:** update dependency next-intl to v4 ([#2580](https://github.com/homarr-labs/homarr/issues/2580)) ([f55d8a9](https://github.com/homarr-labs/homarr/commit/f55d8a9c2ebbc612775d66b1f073605fb9e151f3)) -* **deps:** update dependency next-intl to v4.0.1 ([#2585](https://github.com/homarr-labs/homarr/issues/2585)) ([d8247f2](https://github.com/homarr-labs/homarr/commit/d8247f2dc9a4aaa45d8e193db04295f51c44d4aa)) -* **deps:** update dependency next-intl to v4.0.2 ([#2589](https://github.com/homarr-labs/homarr/issues/2589)) ([b607c57](https://github.com/homarr-labs/homarr/commit/b607c5702fd2bf86be8b56d7b7b00435363095e0)) -* **deps:** update dependency prismjs to ^1.30.0 ([#2562](https://github.com/homarr-labs/homarr/issues/2562)) ([8cb8eaf](https://github.com/homarr-labs/homarr/commit/8cb8eaf9cc2aaa842869c6be75e9208b9a19fd77)) -* **deps:** update dependency swagger-ui-react to ^5.20.1 ([#2558](https://github.com/homarr-labs/homarr/issues/2558)) ([9c582d9](https://github.com/homarr-labs/homarr/commit/9c582d906bb2702de5db282594293e51e94ca98d)) -* **deps:** update dependency typescript-eslint to ^8.26.1 ([#2561](https://github.com/homarr-labs/homarr/issues/2561)) ([55ad0b0](https://github.com/homarr-labs/homarr/commit/55ad0b0a6533df44e7d1f6eecf33135654cea104)) -* **deps:** update dependency undici to v7.5.0 ([#2583](https://github.com/homarr-labs/homarr/issues/2583)) ([56fe8dd](https://github.com/homarr-labs/homarr/commit/56fe8dd9e9ff14dc0c10a93f6798df11c2ef5761)) -* **deps:** update dependency video.js to ^8.22.0 ([#2564](https://github.com/homarr-labs/homarr/issues/2564)) ([a102f39](https://github.com/homarr-labs/homarr/commit/a102f39518722d898d75d978df91ae2a7f8da3e9)) -* **deps:** update dependency zod-form-data to ^2.0.6 ([#2572](https://github.com/homarr-labs/homarr/issues/2572)) ([2135f99](https://github.com/homarr-labs/homarr/commit/2135f9980b4eb9e682fd19d2a1536f50201a1bee)) -* **deps:** update dependency zod-form-data to ^2.0.7 ([#2573](https://github.com/homarr-labs/homarr/issues/2573)) ([6c9fbd6](https://github.com/homarr-labs/homarr/commit/6c9fbd6c09b481b24dad849cc8d367d0c5591cdb)) -* **deps:** update mantine monorepo to ^7.17.2 ([#2599](https://github.com/homarr-labs/homarr/issues/2599)) ([1e50ac4](https://github.com/homarr-labs/homarr/commit/1e50ac411c9e416de4225881b631e4cc497e7b0d)) -* **deps:** update tanstack-query monorepo to ^5.67.3 ([#2567](https://github.com/homarr-labs/homarr/issues/2567)) ([8486073](https://github.com/homarr-labs/homarr/commit/8486073f271c69f767d9cc76fdd3f27cf1f9db20)) -* **deps:** update tanstack-query monorepo to ^5.68.0 ([#2600](https://github.com/homarr-labs/homarr/issues/2600)) ([25f7406](https://github.com/homarr-labs/homarr/commit/25f7406283e2999b85fdc21953e0e6c572d8f23b)) -* **deps:** update testcontainers-node monorepo to ^10.19.0 ([#2576](https://github.com/homarr-labs/homarr/issues/2576)) ([d669f99](https://github.com/homarr-labs/homarr/commit/d669f99ac161697d6c3db81c51b7bf25532fbbfd)) -* **deps:** update testcontainers-node monorepo to ^10.20.0 ([#2602](https://github.com/homarr-labs/homarr/issues/2602)) ([75fb9db](https://github.com/homarr-labs/homarr/commit/75fb9dbf1e7c2137d1dd98bc2952ddb28fc0375f)) -* **dns-controls:** improve responsive styles ([#2534](https://github.com/homarr-labs/homarr/issues/2534)) ([c0e1355](https://github.com/homarr-labs/homarr/commit/c0e1355d7f995e79eec23680568f1830e5f03542)) -* **dns-hole-summary:** remove inconsistency for position of text ([#2568](https://github.com/homarr-labs/homarr/issues/2568)) ([e774b06](https://github.com/homarr-labs/homarr/commit/e774b06fc2173eb094e2b698a93624a54cd37dff)) -* **dns-summary:** improve responsive styles ([#2535](https://github.com/homarr-labs/homarr/issues/2535)) ([7ec6fbc](https://github.com/homarr-labs/homarr/commit/7ec6fbc3765491a810356948a294309ab606bdce)) -* **downloads:** improve responsive styles ([#2552](https://github.com/homarr-labs/homarr/issues/2552)) ([d714e53](https://github.com/homarr-labs/homarr/commit/d714e53cfa88da22a6fc75473455d57be7bac497)) -* **import:** autofix missing sizes of items with grid-algorithm ([#2522](https://github.com/homarr-labs/homarr/issues/2522)) ([d410af3](https://github.com/homarr-labs/homarr/commit/d410af34029a43e6e11cd766f55c634b00eb8fa2)) -* **indexer-manager:** improve responsive styles ([#2541](https://github.com/homarr-labs/homarr/issues/2541)) ([4472c04](https://github.com/homarr-labs/homarr/commit/4472c04967f0a3799507785b02f96a84c9626465)) -* **media-request-list:** improve responsive styles ([#2543](https://github.com/homarr-labs/homarr/issues/2543)) ([9e48f43](https://github.com/homarr-labs/homarr/commit/9e48f438b4550f542130651ea7dccccc36b59da8)) -* **media-request-stats:** improve responsive styles ([#2544](https://github.com/homarr-labs/homarr/issues/2544)) ([d584ade](https://github.com/homarr-labs/homarr/commit/d584ade8f4a788b284071cb9d17b6d8b606098c8)) -* **media-server:** improve responsive styles ([#2548](https://github.com/homarr-labs/homarr/issues/2548)) ([82528db](https://github.com/homarr-labs/homarr/commit/82528dbd961b21682d71b104b22804391b6c7d08)) -* **media-transcoding:** improve responsive styles ([#2550](https://github.com/homarr-labs/homarr/issues/2550)) ([8f8d788](https://github.com/homarr-labs/homarr/commit/8f8d7884a9484aa8e73f4ff114e58df78a8bb470)) -* **minecraft-status:** wrong api path for bedrock ([#2551](https://github.com/homarr-labs/homarr/issues/2551)) ([2f80c09](https://github.com/homarr-labs/homarr/commit/2f80c096a7e25b1a223336644f40a56311e1c7a8)) -* **notebook:** css for checkboxes not working ([#2570](https://github.com/homarr-labs/homarr/issues/2570)) ([a53e7aa](https://github.com/homarr-labs/homarr/commit/a53e7aaee5207ab563b6e0144f3154db917f7da1)) -* **smart-home:** improve responsive styles ([#2540](https://github.com/homarr-labs/homarr/issues/2540)) ([0b07f22](https://github.com/homarr-labs/homarr/commit/0b07f227ee72988fe1cbd37a9a6a8751b942a087)) -* **system-health:** improve responsive styles ([#2566](https://github.com/homarr-labs/homarr/issues/2566)) ([268daee](https://github.com/homarr-labs/homarr/commit/268daee4a6e90052a19b9d2426c2cf8b2c8a0c00)) +- action icons not being rendered ([#2593](https://github.com/homarr-labs/homarr/issues/2593)) ([85d2d61](https://github.com/homarr-labs/homarr/commit/85d2d6118495f3b466a1f014b90446d03c5ffdcb)) +- **app:** improve responsive styles ([#2537](https://github.com/homarr-labs/homarr/issues/2537)) ([fb800a0](https://github.com/homarr-labs/homarr/commit/fb800a00084833e785deecdb3b6fde4e35ddf7b8)) +- **bookmarks:** improve responsive styles ([#2536](https://github.com/homarr-labs/homarr/issues/2536)) ([df249a0](https://github.com/homarr-labs/homarr/commit/df249a0173c3a70711c99df3f7983729a64eaff9)) +- **calendar:** dropdown spans over whole screen ([#2569](https://github.com/homarr-labs/homarr/issues/2569)) ([fbbfe9a](https://github.com/homarr-labs/homarr/commit/fbbfe9af293961afcb686f3e7a559b67b37f6743)) +- **calendar:** improve responsive styles ([#2538](https://github.com/homarr-labs/homarr/issues/2538)) ([1db9c3c](https://github.com/homarr-labs/homarr/commit/1db9c3c6925f0baae963c5f079037c2bcd1cee44)) +- **date-time:** improve responsive styles ([#2539](https://github.com/homarr-labs/homarr/issues/2539)) ([fd5b1b0](https://github.com/homarr-labs/homarr/commit/fd5b1b0c082ee440c6c5137629ef1ec4eead23eb)) +- **deps:** update dependency @kubernetes/client-node to ^1.1.0 ([#2591](https://github.com/homarr-labs/homarr/issues/2591)) ([8a02c65](https://github.com/homarr-labs/homarr/commit/8a02c656488bf0f239b8f394d73ed63ade8f61ed)) +- **deps:** update dependency better-sqlite3 to ^11.9.0 ([#2598](https://github.com/homarr-labs/homarr/issues/2598)) ([04c17d1](https://github.com/homarr-labs/homarr/commit/04c17d1c41f0c44e88e39cdfe116972da32624b4)) +- **deps:** update dependency jotai to ^2.12.2 ([#2560](https://github.com/homarr-labs/homarr/issues/2560)) ([ff6ca86](https://github.com/homarr-labs/homarr/commit/ff6ca86a78ccec4a2dee3d08c1420948c4de28ee)) +- **deps:** update dependency next-intl to v4 ([#2580](https://github.com/homarr-labs/homarr/issues/2580)) ([f55d8a9](https://github.com/homarr-labs/homarr/commit/f55d8a9c2ebbc612775d66b1f073605fb9e151f3)) +- **deps:** update dependency next-intl to v4.0.1 ([#2585](https://github.com/homarr-labs/homarr/issues/2585)) ([d8247f2](https://github.com/homarr-labs/homarr/commit/d8247f2dc9a4aaa45d8e193db04295f51c44d4aa)) +- **deps:** update dependency next-intl to v4.0.2 ([#2589](https://github.com/homarr-labs/homarr/issues/2589)) ([b607c57](https://github.com/homarr-labs/homarr/commit/b607c5702fd2bf86be8b56d7b7b00435363095e0)) +- **deps:** update dependency prismjs to ^1.30.0 ([#2562](https://github.com/homarr-labs/homarr/issues/2562)) ([8cb8eaf](https://github.com/homarr-labs/homarr/commit/8cb8eaf9cc2aaa842869c6be75e9208b9a19fd77)) +- **deps:** update dependency swagger-ui-react to ^5.20.1 ([#2558](https://github.com/homarr-labs/homarr/issues/2558)) ([9c582d9](https://github.com/homarr-labs/homarr/commit/9c582d906bb2702de5db282594293e51e94ca98d)) +- **deps:** update dependency typescript-eslint to ^8.26.1 ([#2561](https://github.com/homarr-labs/homarr/issues/2561)) ([55ad0b0](https://github.com/homarr-labs/homarr/commit/55ad0b0a6533df44e7d1f6eecf33135654cea104)) +- **deps:** update dependency undici to v7.5.0 ([#2583](https://github.com/homarr-labs/homarr/issues/2583)) ([56fe8dd](https://github.com/homarr-labs/homarr/commit/56fe8dd9e9ff14dc0c10a93f6798df11c2ef5761)) +- **deps:** update dependency video.js to ^8.22.0 ([#2564](https://github.com/homarr-labs/homarr/issues/2564)) ([a102f39](https://github.com/homarr-labs/homarr/commit/a102f39518722d898d75d978df91ae2a7f8da3e9)) +- **deps:** update dependency zod-form-data to ^2.0.6 ([#2572](https://github.com/homarr-labs/homarr/issues/2572)) ([2135f99](https://github.com/homarr-labs/homarr/commit/2135f9980b4eb9e682fd19d2a1536f50201a1bee)) +- **deps:** update dependency zod-form-data to ^2.0.7 ([#2573](https://github.com/homarr-labs/homarr/issues/2573)) ([6c9fbd6](https://github.com/homarr-labs/homarr/commit/6c9fbd6c09b481b24dad849cc8d367d0c5591cdb)) +- **deps:** update mantine monorepo to ^7.17.2 ([#2599](https://github.com/homarr-labs/homarr/issues/2599)) ([1e50ac4](https://github.com/homarr-labs/homarr/commit/1e50ac411c9e416de4225881b631e4cc497e7b0d)) +- **deps:** update tanstack-query monorepo to ^5.67.3 ([#2567](https://github.com/homarr-labs/homarr/issues/2567)) ([8486073](https://github.com/homarr-labs/homarr/commit/8486073f271c69f767d9cc76fdd3f27cf1f9db20)) +- **deps:** update tanstack-query monorepo to ^5.68.0 ([#2600](https://github.com/homarr-labs/homarr/issues/2600)) ([25f7406](https://github.com/homarr-labs/homarr/commit/25f7406283e2999b85fdc21953e0e6c572d8f23b)) +- **deps:** update testcontainers-node monorepo to ^10.19.0 ([#2576](https://github.com/homarr-labs/homarr/issues/2576)) ([d669f99](https://github.com/homarr-labs/homarr/commit/d669f99ac161697d6c3db81c51b7bf25532fbbfd)) +- **deps:** update testcontainers-node monorepo to ^10.20.0 ([#2602](https://github.com/homarr-labs/homarr/issues/2602)) ([75fb9db](https://github.com/homarr-labs/homarr/commit/75fb9dbf1e7c2137d1dd98bc2952ddb28fc0375f)) +- **dns-controls:** improve responsive styles ([#2534](https://github.com/homarr-labs/homarr/issues/2534)) ([c0e1355](https://github.com/homarr-labs/homarr/commit/c0e1355d7f995e79eec23680568f1830e5f03542)) +- **dns-hole-summary:** remove inconsistency for position of text ([#2568](https://github.com/homarr-labs/homarr/issues/2568)) ([e774b06](https://github.com/homarr-labs/homarr/commit/e774b06fc2173eb094e2b698a93624a54cd37dff)) +- **dns-summary:** improve responsive styles ([#2535](https://github.com/homarr-labs/homarr/issues/2535)) ([7ec6fbc](https://github.com/homarr-labs/homarr/commit/7ec6fbc3765491a810356948a294309ab606bdce)) +- **downloads:** improve responsive styles ([#2552](https://github.com/homarr-labs/homarr/issues/2552)) ([d714e53](https://github.com/homarr-labs/homarr/commit/d714e53cfa88da22a6fc75473455d57be7bac497)) +- **import:** autofix missing sizes of items with grid-algorithm ([#2522](https://github.com/homarr-labs/homarr/issues/2522)) ([d410af3](https://github.com/homarr-labs/homarr/commit/d410af34029a43e6e11cd766f55c634b00eb8fa2)) +- **indexer-manager:** improve responsive styles ([#2541](https://github.com/homarr-labs/homarr/issues/2541)) ([4472c04](https://github.com/homarr-labs/homarr/commit/4472c04967f0a3799507785b02f96a84c9626465)) +- **media-request-list:** improve responsive styles ([#2543](https://github.com/homarr-labs/homarr/issues/2543)) ([9e48f43](https://github.com/homarr-labs/homarr/commit/9e48f438b4550f542130651ea7dccccc36b59da8)) +- **media-request-stats:** improve responsive styles ([#2544](https://github.com/homarr-labs/homarr/issues/2544)) ([d584ade](https://github.com/homarr-labs/homarr/commit/d584ade8f4a788b284071cb9d17b6d8b606098c8)) +- **media-server:** improve responsive styles ([#2548](https://github.com/homarr-labs/homarr/issues/2548)) ([82528db](https://github.com/homarr-labs/homarr/commit/82528dbd961b21682d71b104b22804391b6c7d08)) +- **media-transcoding:** improve responsive styles ([#2550](https://github.com/homarr-labs/homarr/issues/2550)) ([8f8d788](https://github.com/homarr-labs/homarr/commit/8f8d7884a9484aa8e73f4ff114e58df78a8bb470)) +- **minecraft-status:** wrong api path for bedrock ([#2551](https://github.com/homarr-labs/homarr/issues/2551)) ([2f80c09](https://github.com/homarr-labs/homarr/commit/2f80c096a7e25b1a223336644f40a56311e1c7a8)) +- **notebook:** css for checkboxes not working ([#2570](https://github.com/homarr-labs/homarr/issues/2570)) ([a53e7aa](https://github.com/homarr-labs/homarr/commit/a53e7aaee5207ab563b6e0144f3154db917f7da1)) +- **smart-home:** improve responsive styles ([#2540](https://github.com/homarr-labs/homarr/issues/2540)) ([0b07f22](https://github.com/homarr-labs/homarr/commit/0b07f227ee72988fe1cbd37a9a6a8751b942a087)) +- **system-health:** improve responsive styles ([#2566](https://github.com/homarr-labs/homarr/issues/2566)) ([268daee](https://github.com/homarr-labs/homarr/commit/268daee4a6e90052a19b9d2426c2cf8b2c8a0c00)) ## [1.10.0](https://github.com/homarr-labs/homarr/compare/v1.9.0...v1.10.0) (2025-03-07) ### Features -* remove cqmin system ([#2407](https://github.com/homarr-labs/homarr/issues/2407)) ([37d4714](https://github.com/homarr-labs/homarr/commit/37d471457a0a2b10112b67c02923f63de479e617)) +- remove cqmin system ([#2407](https://github.com/homarr-labs/homarr/issues/2407)) ([37d4714](https://github.com/homarr-labs/homarr/commit/37d471457a0a2b10112b67c02923f63de479e617)) ### Bug Fixes -* **deps:** update dependency eslint-config-prettier to ^10.1.1 ([#2524](https://github.com/homarr-labs/homarr/issues/2524)) ([4721a97](https://github.com/homarr-labs/homarr/commit/4721a97094ae1181216923c7fef7a29c343f882b)) -* **deps:** update dependency ioredis to v5.6.0 ([#2509](https://github.com/homarr-labs/homarr/issues/2509)) ([e4a3922](https://github.com/homarr-labs/homarr/commit/e4a39223a33d4bfccb1e9b4e2c30de1376879a1d)) -* **deps:** update dependency mysql2 to v3.13.0 ([#2516](https://github.com/homarr-labs/homarr/issues/2516)) ([67c739c](https://github.com/homarr-labs/homarr/commit/67c739c35bcb2d537a349f0ebff080eac67e93b5)) -* **deps:** update tanstack-query monorepo to ^5.67.2 ([#2525](https://github.com/homarr-labs/homarr/issues/2525)) ([a572aae](https://github.com/homarr-labs/homarr/commit/a572aae887142a7e601f70dcc601bf6335e37c17)) -* **pi-hole:** wrong fetch used in factory ([#2527](https://github.com/homarr-labs/homarr/issues/2527)) ([9881577](https://github.com/homarr-labs/homarr/commit/9881577f47fbeacf861dd564d57fc6d7c469d27b)) +- **deps:** update dependency eslint-config-prettier to ^10.1.1 ([#2524](https://github.com/homarr-labs/homarr/issues/2524)) ([4721a97](https://github.com/homarr-labs/homarr/commit/4721a97094ae1181216923c7fef7a29c343f882b)) +- **deps:** update dependency ioredis to v5.6.0 ([#2509](https://github.com/homarr-labs/homarr/issues/2509)) ([e4a3922](https://github.com/homarr-labs/homarr/commit/e4a39223a33d4bfccb1e9b4e2c30de1376879a1d)) +- **deps:** update dependency mysql2 to v3.13.0 ([#2516](https://github.com/homarr-labs/homarr/issues/2516)) ([67c739c](https://github.com/homarr-labs/homarr/commit/67c739c35bcb2d537a349f0ebff080eac67e93b5)) +- **deps:** update tanstack-query monorepo to ^5.67.2 ([#2525](https://github.com/homarr-labs/homarr/issues/2525)) ([a572aae](https://github.com/homarr-labs/homarr/commit/a572aae887142a7e601f70dcc601bf6335e37c17)) +- **pi-hole:** wrong fetch used in factory ([#2527](https://github.com/homarr-labs/homarr/issues/2527)) ([9881577](https://github.com/homarr-labs/homarr/commit/9881577f47fbeacf861dd564d57fc6d7c469d27b)) ## [1.9.0](https://github.com/homarr-labs/homarr/compare/v1.8.0...v1.9.0) (2025-03-05) ### Features -* add sigterm support ([#2472](https://github.com/homarr-labs/homarr/issues/2472)) ([a5e0e8c](https://github.com/homarr-labs/homarr/commit/a5e0e8c1296ebfbe46c88fbb152b5d0049db349d)) -* added bordercolor option for dynamic section ([#2334](https://github.com/homarr-labs/homarr/issues/2334)) ([7dfb108](https://github.com/homarr-labs/homarr/commit/7dfb108a56e38c32e712b82d1e1bd65a5c15722b)) -* **integration:** add emby integration ([#2466](https://github.com/homarr-labs/homarr/issues/2466)) ([7dfc364](https://github.com/homarr-labs/homarr/commit/7dfc3646b709e6bb1fc7ec11336024c7eff1f342)) -* **media-request:** show request status ([#2465](https://github.com/homarr-labs/homarr/issues/2465)) ([80c2040](https://github.com/homarr-labs/homarr/commit/80c2040b1345b0a60030aa8879442b937863216f)) -* **pihole:** add support for v6 ([#2448](https://github.com/homarr-labs/homarr/issues/2448)) ([3804d53](https://github.com/homarr-labs/homarr/commit/3804d530ec28c90b6ab1fa0f709468e2075afa28)) -* use fetch with trusted certificates for oidc ([#2412](https://github.com/homarr-labs/homarr/issues/2412)) ([6fad48f](https://github.com/homarr-labs/homarr/commit/6fad48f65ad7cbb927fd80de49930a8256110331)) +- add sigterm support ([#2472](https://github.com/homarr-labs/homarr/issues/2472)) ([a5e0e8c](https://github.com/homarr-labs/homarr/commit/a5e0e8c1296ebfbe46c88fbb152b5d0049db349d)) +- added bordercolor option for dynamic section ([#2334](https://github.com/homarr-labs/homarr/issues/2334)) ([7dfb108](https://github.com/homarr-labs/homarr/commit/7dfb108a56e38c32e712b82d1e1bd65a5c15722b)) +- **integration:** add emby integration ([#2466](https://github.com/homarr-labs/homarr/issues/2466)) ([7dfc364](https://github.com/homarr-labs/homarr/commit/7dfc3646b709e6bb1fc7ec11336024c7eff1f342)) +- **media-request:** show request status ([#2465](https://github.com/homarr-labs/homarr/issues/2465)) ([80c2040](https://github.com/homarr-labs/homarr/commit/80c2040b1345b0a60030aa8879442b937863216f)) +- **pihole:** add support for v6 ([#2448](https://github.com/homarr-labs/homarr/issues/2448)) ([3804d53](https://github.com/homarr-labs/homarr/commit/3804d530ec28c90b6ab1fa0f709468e2075afa28)) +- use fetch with trusted certificates for oidc ([#2412](https://github.com/homarr-labs/homarr/issues/2412)) ([6fad48f](https://github.com/homarr-labs/homarr/commit/6fad48f65ad7cbb927fd80de49930a8256110331)) ### Bug Fixes -* affix hides pagination on mobile ([#2491](https://github.com/homarr-labs/homarr/issues/2491)) ([604a05f](https://github.com/homarr-labs/homarr/commit/604a05f9d528b7d89b09f4f7982921963ba0fb90)) -* **boards:** case-sensitive board names in url ([#2454](https://github.com/homarr-labs/homarr/issues/2454)) ([c0e3544](https://github.com/homarr-labs/homarr/commit/c0e354428af2c69bf7638911320888f049ec0659)) -* **deps:** update dependency @tabler/icons-react to ^3.31.0 ([#2502](https://github.com/homarr-labs/homarr/issues/2502)) ([478aae6](https://github.com/homarr-labs/homarr/commit/478aae6cd496ef81e3036d8f2a5b6959b7fea12e)) -* **deps:** update dependency prettier to ^3.5.3 ([#2485](https://github.com/homarr-labs/homarr/issues/2485)) ([49b0f96](https://github.com/homarr-labs/homarr/commit/49b0f962e0b316bbed599d77d97be927aac252da)) -* **deps:** update dependency typescript-eslint to ^8.26.0 ([#2488](https://github.com/homarr-labs/homarr/issues/2488)) ([21f3a5a](https://github.com/homarr-labs/homarr/commit/21f3a5a408ab45dbf7d92162703e74b9e60aff10)) -* **deps:** update mantine monorepo to ^7.17.1 ([#2462](https://github.com/homarr-labs/homarr/issues/2462)) ([d9ef1b0](https://github.com/homarr-labs/homarr/commit/d9ef1b04706a3435d4500db2f2966a28db900d9d)) -* **deps:** update tanstack-query monorepo to ^5.67.0 ([#2486](https://github.com/homarr-labs/homarr/issues/2486)) ([bad07cb](https://github.com/homarr-labs/homarr/commit/bad07cbf251ab64afe99390bcb687d2f58e8fdc7)) -* **deps:** update tanstack-query monorepo to ^5.67.1 ([#2487](https://github.com/homarr-labs/homarr/issues/2487)) ([6135b59](https://github.com/homarr-labs/homarr/commit/6135b59b7d24029eaf24ae2a2b94b5cbc822242a)) -* docker add to homarr layout overflow ([#2441](https://github.com/homarr-labs/homarr/issues/2441)) ([a3999bc](https://github.com/homarr-labs/homarr/commit/a3999bcf521d4d339282701b4734b6cd352c9582)) -* **integration:** store omv session in redis ([#2467](https://github.com/homarr-labs/homarr/issues/2467)) ([b3e4f30](https://github.com/homarr-labs/homarr/commit/b3e4f3031296ffc69d914f542f95895a449ce2c7)) -* **logs:** add special case for axios error to prevent huge error messages ([#2468](https://github.com/homarr-labs/homarr/issues/2468)) ([9eb7663](https://github.com/homarr-labs/homarr/commit/9eb76634d07b7bf5ff28062714c44e150591d75d)) -* **media-request:** inconsistent sorting and reordering ([#2464](https://github.com/homarr-labs/homarr/issues/2464)) ([43619e0](https://github.com/homarr-labs/homarr/commit/43619e0cc0311ca8f26a4fdbc0ccb7fae79c3514)) -* **old-import:** default logo and favicon not replaced ([#2456](https://github.com/homarr-labs/homarr/issues/2456)) ([788304a](https://github.com/homarr-labs/homarr/commit/788304adfbe3c6c9696758e9ad42bca9d9b86290)) +- affix hides pagination on mobile ([#2491](https://github.com/homarr-labs/homarr/issues/2491)) ([604a05f](https://github.com/homarr-labs/homarr/commit/604a05f9d528b7d89b09f4f7982921963ba0fb90)) +- **boards:** case-sensitive board names in url ([#2454](https://github.com/homarr-labs/homarr/issues/2454)) ([c0e3544](https://github.com/homarr-labs/homarr/commit/c0e354428af2c69bf7638911320888f049ec0659)) +- **deps:** update dependency @tabler/icons-react to ^3.31.0 ([#2502](https://github.com/homarr-labs/homarr/issues/2502)) ([478aae6](https://github.com/homarr-labs/homarr/commit/478aae6cd496ef81e3036d8f2a5b6959b7fea12e)) +- **deps:** update dependency prettier to ^3.5.3 ([#2485](https://github.com/homarr-labs/homarr/issues/2485)) ([49b0f96](https://github.com/homarr-labs/homarr/commit/49b0f962e0b316bbed599d77d97be927aac252da)) +- **deps:** update dependency typescript-eslint to ^8.26.0 ([#2488](https://github.com/homarr-labs/homarr/issues/2488)) ([21f3a5a](https://github.com/homarr-labs/homarr/commit/21f3a5a408ab45dbf7d92162703e74b9e60aff10)) +- **deps:** update mantine monorepo to ^7.17.1 ([#2462](https://github.com/homarr-labs/homarr/issues/2462)) ([d9ef1b0](https://github.com/homarr-labs/homarr/commit/d9ef1b04706a3435d4500db2f2966a28db900d9d)) +- **deps:** update tanstack-query monorepo to ^5.67.0 ([#2486](https://github.com/homarr-labs/homarr/issues/2486)) ([bad07cb](https://github.com/homarr-labs/homarr/commit/bad07cbf251ab64afe99390bcb687d2f58e8fdc7)) +- **deps:** update tanstack-query monorepo to ^5.67.1 ([#2487](https://github.com/homarr-labs/homarr/issues/2487)) ([6135b59](https://github.com/homarr-labs/homarr/commit/6135b59b7d24029eaf24ae2a2b94b5cbc822242a)) +- docker add to homarr layout overflow ([#2441](https://github.com/homarr-labs/homarr/issues/2441)) ([a3999bc](https://github.com/homarr-labs/homarr/commit/a3999bcf521d4d339282701b4734b6cd352c9582)) +- **integration:** store omv session in redis ([#2467](https://github.com/homarr-labs/homarr/issues/2467)) ([b3e4f30](https://github.com/homarr-labs/homarr/commit/b3e4f3031296ffc69d914f542f95895a449ce2c7)) +- **logs:** add special case for axios error to prevent huge error messages ([#2468](https://github.com/homarr-labs/homarr/issues/2468)) ([9eb7663](https://github.com/homarr-labs/homarr/commit/9eb76634d07b7bf5ff28062714c44e150591d75d)) +- **media-request:** inconsistent sorting and reordering ([#2464](https://github.com/homarr-labs/homarr/issues/2464)) ([43619e0](https://github.com/homarr-labs/homarr/commit/43619e0cc0311ca8f26a4fdbc0ccb7fae79c3514)) +- **old-import:** default logo and favicon not replaced ([#2456](https://github.com/homarr-labs/homarr/issues/2456)) ([788304a](https://github.com/homarr-labs/homarr/commit/788304adfbe3c6c9696758e9ad42bca9d9b86290)) ## [1.8.0](https://github.com/homarr-labs/homarr/compare/v1.7.0...v1.8.0) (2025-02-28) ### Features -* add app ping url ([#2380](https://github.com/homarr-labs/homarr/issues/2380)) ([fb467ac](https://github.com/homarr-labs/homarr/commit/fb467ac16553d3c498770a531cf77b9f2c7c0a9e)) -* **boards:** add responsive layout system ([#2271](https://github.com/homarr-labs/homarr/issues/2271)) ([7761dc2](https://github.com/homarr-labs/homarr/commit/7761dc29c809b28cc8275dcabf77c453cea3621c)) +- add app ping url ([#2380](https://github.com/homarr-labs/homarr/issues/2380)) ([fb467ac](https://github.com/homarr-labs/homarr/commit/fb467ac16553d3c498770a531cf77b9f2c7c0a9e)) +- **boards:** add responsive layout system ([#2271](https://github.com/homarr-labs/homarr/issues/2271)) ([7761dc2](https://github.com/homarr-labs/homarr/commit/7761dc29c809b28cc8275dcabf77c453cea3621c)) ### Bug Fixes -* await params for board metadata ([#2406](https://github.com/homarr-labs/homarr/issues/2406)) ([2085b5e](https://github.com/homarr-labs/homarr/commit/2085b5ece24f661086c4896a6ecfbff61de1b7d4)) -* **boards:** add scrollarea to board-select ([#2409](https://github.com/homarr-labs/homarr/issues/2409)) ([508f9af](https://github.com/homarr-labs/homarr/commit/508f9afeb542d09d06fc34f06ac68cf732011620)) -* chinese traditional locale ([#2440](https://github.com/homarr-labs/homarr/issues/2440)) ([50367eb](https://github.com/homarr-labs/homarr/commit/50367eb2f5ae9cb6b736197692b3f555e07aca59)) -* **deps:** downgrade to next 15.1.7 cause of turbopack crash with 15.2.0 and above ([#2438](https://github.com/homarr-labs/homarr/issues/2438)) ([fdd91f5](https://github.com/homarr-labs/homarr/commit/fdd91f585d1c0c66a6c28c6d1e374bdd9fdcb787)) -* **deps:** update dependency @auth/core to ^0.38.0 ([#2434](https://github.com/homarr-labs/homarr/issues/2434)) ([8c1308c](https://github.com/homarr-labs/homarr/commit/8c1308c97f011336c2a813e92e7cefa195277994)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.8.0 ([#2435](https://github.com/homarr-labs/homarr/issues/2435)) ([b2cc97e](https://github.com/homarr-labs/homarr/commit/b2cc97e316976e74df8136a7da53a3fae78f815b)) -* **deps:** update dependency drizzle-kit to ^0.30.5 ([#2423](https://github.com/homarr-labs/homarr/issues/2423)) ([3b830ae](https://github.com/homarr-labs/homarr/commit/3b830ae098c290aaa15356cae5ec2fe8cb618d9f)) -* **deps:** update dependency drizzle-orm to ^0.40.0 ([#2425](https://github.com/homarr-labs/homarr/issues/2425)) ([faf7322](https://github.com/homarr-labs/homarr/commit/faf7322bcb94a61dbb2b3295cc4a4eca52484d74)) -* **deps:** update dependency eslint-config-prettier to ^10.0.2 ([#2427](https://github.com/homarr-labs/homarr/issues/2427)) ([c2d6e2e](https://github.com/homarr-labs/homarr/commit/c2d6e2efcf06e97c04bddc2d821c77ad034426b8)) -* **deps:** update dependency eslint-plugin-react-hooks to ^5.2.0 ([#2449](https://github.com/homarr-labs/homarr/issues/2449)) ([a88c1ba](https://github.com/homarr-labs/homarr/commit/a88c1ba4401bbe6317ccde11cff9a057bfa53e26)) -* **deps:** update dependency prettier to ^3.5.2 ([#2399](https://github.com/homarr-labs/homarr/issues/2399)) ([86e778d](https://github.com/homarr-labs/homarr/commit/86e778db1ee081288b4174f6b52fcc44a0bbc1e0)) -* **deps:** update dependency sass to ^1.85.1 ([#2418](https://github.com/homarr-labs/homarr/issues/2418)) ([a9a37af](https://github.com/homarr-labs/homarr/commit/a9a37afd441ad148a42432c24a9c7e6acf804c89)) -* **deps:** update dependency swagger-ui-react to ^5.20.0 ([#2436](https://github.com/homarr-labs/homarr/issues/2436)) ([add9170](https://github.com/homarr-labs/homarr/commit/add91701de30eaeb61efe3295307756e998703a9)) -* **deps:** update dependency typescript-eslint to ^8.25.0 ([#2413](https://github.com/homarr-labs/homarr/issues/2413)) ([593c50b](https://github.com/homarr-labs/homarr/commit/593c50bb8f803ecbda8e6d0c4a082e019cc56352)) -* **deps:** update dependency undici to v7.4.0 ([#2445](https://github.com/homarr-labs/homarr/issues/2445)) ([06ba0f0](https://github.com/homarr-labs/homarr/commit/06ba0f0e9f6da9c22ef531e41811a89c8c5039a8)) -* **deps:** update nextjs monorepo to ^15.2.0 ([#2428](https://github.com/homarr-labs/homarr/issues/2428)) ([d6939e4](https://github.com/homarr-labs/homarr/commit/d6939e4a6daf7fbe0095ae4028d33189c5866fb2)) -* **deps:** update tanstack-query monorepo to ^5.66.10 ([#2443](https://github.com/homarr-labs/homarr/issues/2443)) ([4483dc8](https://github.com/homarr-labs/homarr/commit/4483dc8bcd062f531badd94ba872cf42a17491df)) -* **deps:** update tanstack-query monorepo to ^5.66.11 ([#2447](https://github.com/homarr-labs/homarr/issues/2447)) ([5537f95](https://github.com/homarr-labs/homarr/commit/5537f95b85b1ae56a35d7b529907ebe22d0b1ae6)) -* **deps:** update turbo monorepo to ^2.4.3 ([#2422](https://github.com/homarr-labs/homarr/issues/2422)) ([874414f](https://github.com/homarr-labs/homarr/commit/874414fc4fc1130502abc267116ad109dab11efe)) -* **deps:** update turbo monorepo to ^2.4.4 ([#2424](https://github.com/homarr-labs/homarr/issues/2424)) ([a6f9199](https://github.com/homarr-labs/homarr/commit/a6f91998c3a8192eaa93b57a74b6dfc8f3fdc13a)) -* omv invalid temperature when not available ([#2322](https://github.com/homarr-labs/homarr/issues/2322)) ([5dc5d9e](https://github.com/homarr-labs/homarr/commit/5dc5d9e04ab747655276494d70557b45fed87b2c)) -* update checker logs incorrectly ([#2402](https://github.com/homarr-labs/homarr/issues/2402)) ([c5107b2](https://github.com/homarr-labs/homarr/commit/c5107b2b67cad73808dcbae6bde633ac1a7eb2b5)) +- await params for board metadata ([#2406](https://github.com/homarr-labs/homarr/issues/2406)) ([2085b5e](https://github.com/homarr-labs/homarr/commit/2085b5ece24f661086c4896a6ecfbff61de1b7d4)) +- **boards:** add scrollarea to board-select ([#2409](https://github.com/homarr-labs/homarr/issues/2409)) ([508f9af](https://github.com/homarr-labs/homarr/commit/508f9afeb542d09d06fc34f06ac68cf732011620)) +- chinese traditional locale ([#2440](https://github.com/homarr-labs/homarr/issues/2440)) ([50367eb](https://github.com/homarr-labs/homarr/commit/50367eb2f5ae9cb6b736197692b3f555e07aca59)) +- **deps:** downgrade to next 15.1.7 cause of turbopack crash with 15.2.0 and above ([#2438](https://github.com/homarr-labs/homarr/issues/2438)) ([fdd91f5](https://github.com/homarr-labs/homarr/commit/fdd91f585d1c0c66a6c28c6d1e374bdd9fdcb787)) +- **deps:** update dependency @auth/core to ^0.38.0 ([#2434](https://github.com/homarr-labs/homarr/issues/2434)) ([8c1308c](https://github.com/homarr-labs/homarr/commit/8c1308c97f011336c2a813e92e7cefa195277994)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.8.0 ([#2435](https://github.com/homarr-labs/homarr/issues/2435)) ([b2cc97e](https://github.com/homarr-labs/homarr/commit/b2cc97e316976e74df8136a7da53a3fae78f815b)) +- **deps:** update dependency drizzle-kit to ^0.30.5 ([#2423](https://github.com/homarr-labs/homarr/issues/2423)) ([3b830ae](https://github.com/homarr-labs/homarr/commit/3b830ae098c290aaa15356cae5ec2fe8cb618d9f)) +- **deps:** update dependency drizzle-orm to ^0.40.0 ([#2425](https://github.com/homarr-labs/homarr/issues/2425)) ([faf7322](https://github.com/homarr-labs/homarr/commit/faf7322bcb94a61dbb2b3295cc4a4eca52484d74)) +- **deps:** update dependency eslint-config-prettier to ^10.0.2 ([#2427](https://github.com/homarr-labs/homarr/issues/2427)) ([c2d6e2e](https://github.com/homarr-labs/homarr/commit/c2d6e2efcf06e97c04bddc2d821c77ad034426b8)) +- **deps:** update dependency eslint-plugin-react-hooks to ^5.2.0 ([#2449](https://github.com/homarr-labs/homarr/issues/2449)) ([a88c1ba](https://github.com/homarr-labs/homarr/commit/a88c1ba4401bbe6317ccde11cff9a057bfa53e26)) +- **deps:** update dependency prettier to ^3.5.2 ([#2399](https://github.com/homarr-labs/homarr/issues/2399)) ([86e778d](https://github.com/homarr-labs/homarr/commit/86e778db1ee081288b4174f6b52fcc44a0bbc1e0)) +- **deps:** update dependency sass to ^1.85.1 ([#2418](https://github.com/homarr-labs/homarr/issues/2418)) ([a9a37af](https://github.com/homarr-labs/homarr/commit/a9a37afd441ad148a42432c24a9c7e6acf804c89)) +- **deps:** update dependency swagger-ui-react to ^5.20.0 ([#2436](https://github.com/homarr-labs/homarr/issues/2436)) ([add9170](https://github.com/homarr-labs/homarr/commit/add91701de30eaeb61efe3295307756e998703a9)) +- **deps:** update dependency typescript-eslint to ^8.25.0 ([#2413](https://github.com/homarr-labs/homarr/issues/2413)) ([593c50b](https://github.com/homarr-labs/homarr/commit/593c50bb8f803ecbda8e6d0c4a082e019cc56352)) +- **deps:** update dependency undici to v7.4.0 ([#2445](https://github.com/homarr-labs/homarr/issues/2445)) ([06ba0f0](https://github.com/homarr-labs/homarr/commit/06ba0f0e9f6da9c22ef531e41811a89c8c5039a8)) +- **deps:** update nextjs monorepo to ^15.2.0 ([#2428](https://github.com/homarr-labs/homarr/issues/2428)) ([d6939e4](https://github.com/homarr-labs/homarr/commit/d6939e4a6daf7fbe0095ae4028d33189c5866fb2)) +- **deps:** update tanstack-query monorepo to ^5.66.10 ([#2443](https://github.com/homarr-labs/homarr/issues/2443)) ([4483dc8](https://github.com/homarr-labs/homarr/commit/4483dc8bcd062f531badd94ba872cf42a17491df)) +- **deps:** update tanstack-query monorepo to ^5.66.11 ([#2447](https://github.com/homarr-labs/homarr/issues/2447)) ([5537f95](https://github.com/homarr-labs/homarr/commit/5537f95b85b1ae56a35d7b529907ebe22d0b1ae6)) +- **deps:** update turbo monorepo to ^2.4.3 ([#2422](https://github.com/homarr-labs/homarr/issues/2422)) ([874414f](https://github.com/homarr-labs/homarr/commit/874414fc4fc1130502abc267116ad109dab11efe)) +- **deps:** update turbo monorepo to ^2.4.4 ([#2424](https://github.com/homarr-labs/homarr/issues/2424)) ([a6f9199](https://github.com/homarr-labs/homarr/commit/a6f91998c3a8192eaa93b57a74b6dfc8f3fdc13a)) +- omv invalid temperature when not available ([#2322](https://github.com/homarr-labs/homarr/issues/2322)) ([5dc5d9e](https://github.com/homarr-labs/homarr/commit/5dc5d9e04ab747655276494d70557b45fed87b2c)) +- update checker logs incorrectly ([#2402](https://github.com/homarr-labs/homarr/issues/2402)) ([c5107b2](https://github.com/homarr-labs/homarr/commit/c5107b2b67cad73808dcbae6bde633ac1a7eb2b5)) ## [1.7.0](https://github.com/homarr-labs/homarr/compare/v1.6.0...v1.7.0) (2025-02-21) ### Features -* add tile border radius ([#2338](https://github.com/homarr-labs/homarr/issues/2338)) ([7705bc4](https://github.com/homarr-labs/homarr/commit/7705bc44ae7c93751e718b019c98c11369c221af)) -* **board:** allow to set icon color of widgets ([#2228](https://github.com/homarr-labs/homarr/issues/2228)) ([de5c34a](https://github.com/homarr-labs/homarr/commit/de5c34ab079c308c80cc3b1ba8f9c8a265e3a1c3)) -* **cli:** add fix-username command to make all usernames lowercase ([#2366](https://github.com/homarr-labs/homarr/issues/2366)) ([8b7caf1](https://github.com/homarr-labs/homarr/commit/8b7caf1d7dfebb8121cefd301fa72ef59601d410)) -* downgrade log level callback succeeded ([#2329](https://github.com/homarr-labs/homarr/issues/2329)) ([22a341e](https://github.com/homarr-labs/homarr/commit/22a341ea4d7365fb51781f96791394315afd8860)) -* **groups:** add home board settings ([#2321](https://github.com/homarr-labs/homarr/issues/2321)) ([ffe7259](https://github.com/homarr-labs/homarr/commit/ffe72598026e5e27588b18feeaaf7d30065d5536)) -* **logging:** add log level env variable ([#2299](https://github.com/homarr-labs/homarr/issues/2299)) ([67d48e1](https://github.com/homarr-labs/homarr/commit/67d48e11d7e1165540c66f86b299e55028d76788)) -* quick add app modal ([#2248](https://github.com/homarr-labs/homarr/issues/2248)) ([6420fee](https://github.com/homarr-labs/homarr/commit/6420feee729aa641c0545fa39308772e4a4b1af8)) -* redirect to login screen when no global home board ([#2379](https://github.com/homarr-labs/homarr/issues/2379)) ([311ae80](https://github.com/homarr-labs/homarr/commit/311ae80667715fccffbfa73699c0770d483c3434)) +- add tile border radius ([#2338](https://github.com/homarr-labs/homarr/issues/2338)) ([7705bc4](https://github.com/homarr-labs/homarr/commit/7705bc44ae7c93751e718b019c98c11369c221af)) +- **board:** allow to set icon color of widgets ([#2228](https://github.com/homarr-labs/homarr/issues/2228)) ([de5c34a](https://github.com/homarr-labs/homarr/commit/de5c34ab079c308c80cc3b1ba8f9c8a265e3a1c3)) +- **cli:** add fix-username command to make all usernames lowercase ([#2366](https://github.com/homarr-labs/homarr/issues/2366)) ([8b7caf1](https://github.com/homarr-labs/homarr/commit/8b7caf1d7dfebb8121cefd301fa72ef59601d410)) +- downgrade log level callback succeeded ([#2329](https://github.com/homarr-labs/homarr/issues/2329)) ([22a341e](https://github.com/homarr-labs/homarr/commit/22a341ea4d7365fb51781f96791394315afd8860)) +- **groups:** add home board settings ([#2321](https://github.com/homarr-labs/homarr/issues/2321)) ([ffe7259](https://github.com/homarr-labs/homarr/commit/ffe72598026e5e27588b18feeaaf7d30065d5536)) +- **logging:** add log level env variable ([#2299](https://github.com/homarr-labs/homarr/issues/2299)) ([67d48e1](https://github.com/homarr-labs/homarr/commit/67d48e11d7e1165540c66f86b299e55028d76788)) +- quick add app modal ([#2248](https://github.com/homarr-labs/homarr/issues/2248)) ([6420fee](https://github.com/homarr-labs/homarr/commit/6420feee729aa641c0545fa39308772e4a4b1af8)) +- redirect to login screen when no global home board ([#2379](https://github.com/homarr-labs/homarr/issues/2379)) ([311ae80](https://github.com/homarr-labs/homarr/commit/311ae80667715fccffbfa73699c0770d483c3434)) ### Bug Fixes -* **deps:** update dependency jotai to ^2.12.1 ([#2354](https://github.com/homarr-labs/homarr/issues/2354)) ([c59fbfc](https://github.com/homarr-labs/homarr/commit/c59fbfc677b10ee20c2e698d9837af1aa098854b)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.9 ([#2348](https://github.com/homarr-labs/homarr/issues/2348)) ([4764f41](https://github.com/homarr-labs/homarr/commit/4764f41e1bf77f7934840a84e25b2989fc1e7c7c)) -* **deps:** update dependency next-intl to v3.26.4 ([#2361](https://github.com/homarr-labs/homarr/issues/2361)) ([241037f](https://github.com/homarr-labs/homarr/commit/241037fc2a699249f317e5e434ac603cee4e460d)) -* **deps:** update dependency next-intl to v3.26.5 ([#2386](https://github.com/homarr-labs/homarr/issues/2386)) ([afd7bce](https://github.com/homarr-labs/homarr/commit/afd7bcea841e906003ec90516b033214ad412473)) -* **deps:** update dependency octokit to ^4.1.2 ([#2333](https://github.com/homarr-labs/homarr/issues/2333)) ([33ef9f6](https://github.com/homarr-labs/homarr/commit/33ef9f66782a59047878a3e82330128fdcabfa93)) -* **deps:** update dependency prettier to ^3.5.1 ([#2284](https://github.com/homarr-labs/homarr/issues/2284)) ([f6c9230](https://github.com/homarr-labs/homarr/commit/f6c923017c6b4ac9670843bba5dee2f52afd1918)) -* **deps:** update dependency swagger-ui-react to ^5.19.0 ([#2358](https://github.com/homarr-labs/homarr/issues/2358)) ([91c61f8](https://github.com/homarr-labs/homarr/commit/91c61f8c06622893b90f668e30a615437d9bb549)) -* **deps:** update dependency tsx to v4.19.3 ([#2370](https://github.com/homarr-labs/homarr/issues/2370)) ([58babbf](https://github.com/homarr-labs/homarr/commit/58babbf88fecc401bf4e7baa52636a4a937bead2)) -* **deps:** update dependency typescript-eslint to ^8.24.1 ([#2360](https://github.com/homarr-labs/homarr/issues/2360)) ([146fe49](https://github.com/homarr-labs/homarr/commit/146fe499db0fe36c8822ad30a762738425fb6f50)) -* **deps:** update dependency ws to ^8.18.1 ([#2387](https://github.com/homarr-labs/homarr/issues/2387)) ([b58f64b](https://github.com/homarr-labs/homarr/commit/b58f64b05c09070d8c5cdc7f89b23768b9997405)) -* **deps:** update mantine monorepo to ^7.17.0 ([#2359](https://github.com/homarr-labs/homarr/issues/2359)) ([96a0717](https://github.com/homarr-labs/homarr/commit/96a071725e557e64d8951091063f047cb43a385b)) -* **deps:** update tanstack-query monorepo to ^5.66.2 ([#2341](https://github.com/homarr-labs/homarr/issues/2341)) ([f8fedef](https://github.com/homarr-labs/homarr/commit/f8fedefde9ae65923369b46876009f9f6cb27683)) -* **deps:** update tanstack-query monorepo to ^5.66.3 ([#2343](https://github.com/homarr-labs/homarr/issues/2343)) ([f32af66](https://github.com/homarr-labs/homarr/commit/f32af66a6ad4676530265bfd1052b56308d4d40f)) -* **deps:** update tanstack-query monorepo to ^5.66.4 ([#2355](https://github.com/homarr-labs/homarr/issues/2355)) ([602faf6](https://github.com/homarr-labs/homarr/commit/602faf622140af1cc4ac92f8a54a56924d809f67)) -* **deps:** update tanstack-query monorepo to ^5.66.6 ([#2357](https://github.com/homarr-labs/homarr/issues/2357)) ([bd0d910](https://github.com/homarr-labs/homarr/commit/bd0d910137194caef989f4dba360bcaf616e9ea4)) -* **deps:** update tanstack-query monorepo to ^5.66.7 ([#2364](https://github.com/homarr-labs/homarr/issues/2364)) ([e84cc5e](https://github.com/homarr-labs/homarr/commit/e84cc5e6ae32c78d4e2be4d57e2b97ad84094f5e)) -* **deps:** update tanstack-query monorepo to ^5.66.8 ([#2376](https://github.com/homarr-labs/homarr/issues/2376)) ([8b75966](https://github.com/homarr-labs/homarr/commit/8b7596642a8398af817eedbe2dd89e9bad3fd937)) -* **deps:** update tanstack-query monorepo to ^5.66.9 ([#2391](https://github.com/homarr-labs/homarr/issues/2391)) ([1cf36ed](https://github.com/homarr-labs/homarr/commit/1cf36ed4c776d6c99e1e1058dde9129475069aaf)) -* **medias:** svg files don't load in list ([#2381](https://github.com/homarr-labs/homarr/issues/2381)) ([52549a5](https://github.com/homarr-labs/homarr/commit/52549a598d039a9fa2165983698212564eb5233b)) -* missing cover types media organizers ([#2328](https://github.com/homarr-labs/homarr/issues/2328)) ([3257f61](https://github.com/homarr-labs/homarr/commit/3257f6101bdd8967089655507144dc4368390b8c)) -* omv integrations is unable to correctly retrieve the file system when using omv-zfs ([#2337](https://github.com/homarr-labs/homarr/issues/2337)) ([63e9623](https://github.com/homarr-labs/homarr/commit/63e96230e0e2831c787d3e520a6b8e9b4bddb2a7)) -* typo in pr template ([#2344](https://github.com/homarr-labs/homarr/issues/2344)) ([a62aa09](https://github.com/homarr-labs/homarr/commit/a62aa09db6c87573d579bcebc9f5d5c3ac133af2)) -* **widgets:** app icon not visible ([#2390](https://github.com/homarr-labs/homarr/issues/2390)) ([a54e078](https://github.com/homarr-labs/homarr/commit/a54e0783e2ad452c4db3d7ddb4e4bcd501a8687a)) +- **deps:** update dependency jotai to ^2.12.1 ([#2354](https://github.com/homarr-labs/homarr/issues/2354)) ([c59fbfc](https://github.com/homarr-labs/homarr/commit/c59fbfc677b10ee20c2e698d9837af1aa098854b)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.9 ([#2348](https://github.com/homarr-labs/homarr/issues/2348)) ([4764f41](https://github.com/homarr-labs/homarr/commit/4764f41e1bf77f7934840a84e25b2989fc1e7c7c)) +- **deps:** update dependency next-intl to v3.26.4 ([#2361](https://github.com/homarr-labs/homarr/issues/2361)) ([241037f](https://github.com/homarr-labs/homarr/commit/241037fc2a699249f317e5e434ac603cee4e460d)) +- **deps:** update dependency next-intl to v3.26.5 ([#2386](https://github.com/homarr-labs/homarr/issues/2386)) ([afd7bce](https://github.com/homarr-labs/homarr/commit/afd7bcea841e906003ec90516b033214ad412473)) +- **deps:** update dependency octokit to ^4.1.2 ([#2333](https://github.com/homarr-labs/homarr/issues/2333)) ([33ef9f6](https://github.com/homarr-labs/homarr/commit/33ef9f66782a59047878a3e82330128fdcabfa93)) +- **deps:** update dependency prettier to ^3.5.1 ([#2284](https://github.com/homarr-labs/homarr/issues/2284)) ([f6c9230](https://github.com/homarr-labs/homarr/commit/f6c923017c6b4ac9670843bba5dee2f52afd1918)) +- **deps:** update dependency swagger-ui-react to ^5.19.0 ([#2358](https://github.com/homarr-labs/homarr/issues/2358)) ([91c61f8](https://github.com/homarr-labs/homarr/commit/91c61f8c06622893b90f668e30a615437d9bb549)) +- **deps:** update dependency tsx to v4.19.3 ([#2370](https://github.com/homarr-labs/homarr/issues/2370)) ([58babbf](https://github.com/homarr-labs/homarr/commit/58babbf88fecc401bf4e7baa52636a4a937bead2)) +- **deps:** update dependency typescript-eslint to ^8.24.1 ([#2360](https://github.com/homarr-labs/homarr/issues/2360)) ([146fe49](https://github.com/homarr-labs/homarr/commit/146fe499db0fe36c8822ad30a762738425fb6f50)) +- **deps:** update dependency ws to ^8.18.1 ([#2387](https://github.com/homarr-labs/homarr/issues/2387)) ([b58f64b](https://github.com/homarr-labs/homarr/commit/b58f64b05c09070d8c5cdc7f89b23768b9997405)) +- **deps:** update mantine monorepo to ^7.17.0 ([#2359](https://github.com/homarr-labs/homarr/issues/2359)) ([96a0717](https://github.com/homarr-labs/homarr/commit/96a071725e557e64d8951091063f047cb43a385b)) +- **deps:** update tanstack-query monorepo to ^5.66.2 ([#2341](https://github.com/homarr-labs/homarr/issues/2341)) ([f8fedef](https://github.com/homarr-labs/homarr/commit/f8fedefde9ae65923369b46876009f9f6cb27683)) +- **deps:** update tanstack-query monorepo to ^5.66.3 ([#2343](https://github.com/homarr-labs/homarr/issues/2343)) ([f32af66](https://github.com/homarr-labs/homarr/commit/f32af66a6ad4676530265bfd1052b56308d4d40f)) +- **deps:** update tanstack-query monorepo to ^5.66.4 ([#2355](https://github.com/homarr-labs/homarr/issues/2355)) ([602faf6](https://github.com/homarr-labs/homarr/commit/602faf622140af1cc4ac92f8a54a56924d809f67)) +- **deps:** update tanstack-query monorepo to ^5.66.6 ([#2357](https://github.com/homarr-labs/homarr/issues/2357)) ([bd0d910](https://github.com/homarr-labs/homarr/commit/bd0d910137194caef989f4dba360bcaf616e9ea4)) +- **deps:** update tanstack-query monorepo to ^5.66.7 ([#2364](https://github.com/homarr-labs/homarr/issues/2364)) ([e84cc5e](https://github.com/homarr-labs/homarr/commit/e84cc5e6ae32c78d4e2be4d57e2b97ad84094f5e)) +- **deps:** update tanstack-query monorepo to ^5.66.8 ([#2376](https://github.com/homarr-labs/homarr/issues/2376)) ([8b75966](https://github.com/homarr-labs/homarr/commit/8b7596642a8398af817eedbe2dd89e9bad3fd937)) +- **deps:** update tanstack-query monorepo to ^5.66.9 ([#2391](https://github.com/homarr-labs/homarr/issues/2391)) ([1cf36ed](https://github.com/homarr-labs/homarr/commit/1cf36ed4c776d6c99e1e1058dde9129475069aaf)) +- **medias:** svg files don't load in list ([#2381](https://github.com/homarr-labs/homarr/issues/2381)) ([52549a5](https://github.com/homarr-labs/homarr/commit/52549a598d039a9fa2165983698212564eb5233b)) +- missing cover types media organizers ([#2328](https://github.com/homarr-labs/homarr/issues/2328)) ([3257f61](https://github.com/homarr-labs/homarr/commit/3257f6101bdd8967089655507144dc4368390b8c)) +- omv integrations is unable to correctly retrieve the file system when using omv-zfs ([#2337](https://github.com/homarr-labs/homarr/issues/2337)) ([63e9623](https://github.com/homarr-labs/homarr/commit/63e96230e0e2831c787d3e520a6b8e9b4bddb2a7)) +- typo in pr template ([#2344](https://github.com/homarr-labs/homarr/issues/2344)) ([a62aa09](https://github.com/homarr-labs/homarr/commit/a62aa09db6c87573d579bcebc9f5d5c3ac133af2)) +- **widgets:** app icon not visible ([#2390](https://github.com/homarr-labs/homarr/issues/2390)) ([a54e078](https://github.com/homarr-labs/homarr/commit/a54e0783e2ad452c4db3d7ddb4e4bcd501a8687a)) ## [1.6.0](https://github.com/homarr-labs/homarr/compare/v1.5.0...v1.6.0) (2025-02-14) ### Features -* **lang:** add catalan language ([#2283](https://github.com/homarr-labs/homarr/issues/2283)) ([749b0c6](https://github.com/homarr-labs/homarr/commit/749b0c6ee9dc7802ae10393b90e19bf3c43bf9e0)) -* **settings:** add simple-ping settings ([#2118](https://github.com/homarr-labs/homarr/issues/2118)) ([dff6cb9](https://github.com/homarr-labs/homarr/commit/dff6cb9d31c3884bf811774a7c90dad27ac19691)) +- **lang:** add catalan language ([#2283](https://github.com/homarr-labs/homarr/issues/2283)) ([749b0c6](https://github.com/homarr-labs/homarr/commit/749b0c6ee9dc7802ae10393b90e19bf3c43bf9e0)) +- **settings:** add simple-ping settings ([#2118](https://github.com/homarr-labs/homarr/issues/2118)) ([dff6cb9](https://github.com/homarr-labs/homarr/commit/dff6cb9d31c3884bf811774a7c90dad27ac19691)) ### Bug Fixes -* add error handling for available updates ([#2289](https://github.com/homarr-labs/homarr/issues/2289)) ([0502e47](https://github.com/homarr-labs/homarr/commit/0502e477707932db96b25372ddab8263572b389c)) -* add mysql pool with keep-alive to not close the connection ([#2282](https://github.com/homarr-labs/homarr/issues/2282)) ([a38afb0](https://github.com/homarr-labs/homarr/commit/a38afb05d35cf2bdba378be3744f3a8b6c9d38f6)) -* **calendar:** info popover overlap ([#2268](https://github.com/homarr-labs/homarr/issues/2268)) ([584c660](https://github.com/homarr-labs/homarr/commit/584c660906f5ae7e8ab1c88ce9cfbbbbdcdb5145)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.3.0 ([#2310](https://github.com/homarr-labs/homarr/issues/2310)) ([8649fac](https://github.com/homarr-labs/homarr/commit/8649faca7929daff426607f104057fce26edd049)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.4.0 ([#2315](https://github.com/homarr-labs/homarr/issues/2315)) ([4d3cc1d](https://github.com/homarr-labs/homarr/commit/4d3cc1d80698e659a669de7d4bd0d185ad68605e)) -* **deps:** update dependency @extractus/feed-extractor to v7.1.4 ([#2281](https://github.com/homarr-labs/homarr/issues/2281)) ([7edaa48](https://github.com/homarr-labs/homarr/commit/7edaa48fb9bcf48e8b734beec5a8bad003124233)) -* **deps:** update dependency drizzle-orm to ^0.39.3 ([#2295](https://github.com/homarr-labs/homarr/issues/2295)) ([8ec0080](https://github.com/homarr-labs/homarr/commit/8ec0080fca17c530cdd0576ba101299a0f769463)) -* **deps:** update dependency jotai to ^2.12.0 ([#2306](https://github.com/homarr-labs/homarr/issues/2306)) ([fc43da5](https://github.com/homarr-labs/homarr/commit/fc43da59f845934da428bcafd4ec46551ace8a81)) -* **deps:** update dependency sass to ^1.85.0 ([#2326](https://github.com/homarr-labs/homarr/issues/2326)) ([8ee39eb](https://github.com/homarr-labs/homarr/commit/8ee39eb6db89fdeaec0fae7988ffa97280c2f5ab)) -* **deps:** update dependency typescript-eslint to ^8.24.0 ([#2297](https://github.com/homarr-labs/homarr/issues/2297)) ([8371f46](https://github.com/homarr-labs/homarr/commit/8371f46d34ad36fd25f23d91804d3f95439d7012)) -* **deps:** update dependency zod to ^3.24.2 ([#2311](https://github.com/homarr-labs/homarr/issues/2311)) ([379675a](https://github.com/homarr-labs/homarr/commit/379675a901637a1b878595a80d0776d05311218d)) -* **deps:** update mantine monorepo to ^7.16.3 ([#2275](https://github.com/homarr-labs/homarr/issues/2275)) ([42a6814](https://github.com/homarr-labs/homarr/commit/42a68140b1493cc171977d996eea16d876dce60c)) -* **deps:** update nextjs monorepo to ^15.1.7 ([#2302](https://github.com/homarr-labs/homarr/issues/2302)) ([2399967](https://github.com/homarr-labs/homarr/commit/2399967868652436ee6827bce8883c1b4a00af0e)) -* **deps:** update turbo monorepo to ^2.4.1 ([#2296](https://github.com/homarr-labs/homarr/issues/2296)) ([2b9f834](https://github.com/homarr-labs/homarr/commit/2b9f834d9645aaf5f5aa1b8a5f1e48300389ac8b)) -* **deps:** update turbo monorepo to ^2.4.2 ([#2313](https://github.com/homarr-labs/homarr/issues/2313)) ([1045465](https://github.com/homarr-labs/homarr/commit/10454656a286c320a8d3b5ff12a138025d871b20)) -* **users:** edit profile username not lowercase ([#2279](https://github.com/homarr-labs/homarr/issues/2279)) ([b7fd247](https://github.com/homarr-labs/homarr/commit/b7fd2470ee0d85821f79a34e839e62fbab6989c6)) +- add error handling for available updates ([#2289](https://github.com/homarr-labs/homarr/issues/2289)) ([0502e47](https://github.com/homarr-labs/homarr/commit/0502e477707932db96b25372ddab8263572b389c)) +- add mysql pool with keep-alive to not close the connection ([#2282](https://github.com/homarr-labs/homarr/issues/2282)) ([a38afb0](https://github.com/homarr-labs/homarr/commit/a38afb05d35cf2bdba378be3744f3a8b6c9d38f6)) +- **calendar:** info popover overlap ([#2268](https://github.com/homarr-labs/homarr/issues/2268)) ([584c660](https://github.com/homarr-labs/homarr/commit/584c660906f5ae7e8ab1c88ce9cfbbbbdcdb5145)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.3.0 ([#2310](https://github.com/homarr-labs/homarr/issues/2310)) ([8649fac](https://github.com/homarr-labs/homarr/commit/8649faca7929daff426607f104057fce26edd049)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.4.0 ([#2315](https://github.com/homarr-labs/homarr/issues/2315)) ([4d3cc1d](https://github.com/homarr-labs/homarr/commit/4d3cc1d80698e659a669de7d4bd0d185ad68605e)) +- **deps:** update dependency @extractus/feed-extractor to v7.1.4 ([#2281](https://github.com/homarr-labs/homarr/issues/2281)) ([7edaa48](https://github.com/homarr-labs/homarr/commit/7edaa48fb9bcf48e8b734beec5a8bad003124233)) +- **deps:** update dependency drizzle-orm to ^0.39.3 ([#2295](https://github.com/homarr-labs/homarr/issues/2295)) ([8ec0080](https://github.com/homarr-labs/homarr/commit/8ec0080fca17c530cdd0576ba101299a0f769463)) +- **deps:** update dependency jotai to ^2.12.0 ([#2306](https://github.com/homarr-labs/homarr/issues/2306)) ([fc43da5](https://github.com/homarr-labs/homarr/commit/fc43da59f845934da428bcafd4ec46551ace8a81)) +- **deps:** update dependency sass to ^1.85.0 ([#2326](https://github.com/homarr-labs/homarr/issues/2326)) ([8ee39eb](https://github.com/homarr-labs/homarr/commit/8ee39eb6db89fdeaec0fae7988ffa97280c2f5ab)) +- **deps:** update dependency typescript-eslint to ^8.24.0 ([#2297](https://github.com/homarr-labs/homarr/issues/2297)) ([8371f46](https://github.com/homarr-labs/homarr/commit/8371f46d34ad36fd25f23d91804d3f95439d7012)) +- **deps:** update dependency zod to ^3.24.2 ([#2311](https://github.com/homarr-labs/homarr/issues/2311)) ([379675a](https://github.com/homarr-labs/homarr/commit/379675a901637a1b878595a80d0776d05311218d)) +- **deps:** update mantine monorepo to ^7.16.3 ([#2275](https://github.com/homarr-labs/homarr/issues/2275)) ([42a6814](https://github.com/homarr-labs/homarr/commit/42a68140b1493cc171977d996eea16d876dce60c)) +- **deps:** update nextjs monorepo to ^15.1.7 ([#2302](https://github.com/homarr-labs/homarr/issues/2302)) ([2399967](https://github.com/homarr-labs/homarr/commit/2399967868652436ee6827bce8883c1b4a00af0e)) +- **deps:** update turbo monorepo to ^2.4.1 ([#2296](https://github.com/homarr-labs/homarr/issues/2296)) ([2b9f834](https://github.com/homarr-labs/homarr/commit/2b9f834d9645aaf5f5aa1b8a5f1e48300389ac8b)) +- **deps:** update turbo monorepo to ^2.4.2 ([#2313](https://github.com/homarr-labs/homarr/issues/2313)) ([1045465](https://github.com/homarr-labs/homarr/commit/10454656a286c320a8d3b5ff12a138025d871b20)) +- **users:** edit profile username not lowercase ([#2279](https://github.com/homarr-labs/homarr/issues/2279)) ([b7fd247](https://github.com/homarr-labs/homarr/commit/b7fd2470ee0d85821f79a34e839e62fbab6989c6)) ## [1.5.0](https://github.com/homarr-labs/homarr/compare/v1.4.0...v1.5.0) (2025-02-07) ### Features -* add api key delete ([#2210](https://github.com/homarr-labs/homarr/issues/2210)) ([8058b62](https://github.com/homarr-labs/homarr/commit/8058b6207ad4be1d646182b67b810c397097c054)) -* custom time/date format in clock widget ([#2180](https://github.com/homarr-labs/homarr/issues/2180)) ([be603ba](https://github.com/homarr-labs/homarr/commit/be603badfed63ad7583a5265bef3b9e85f6b6b61)) -* improve consistency and design ([#1867](https://github.com/homarr-labs/homarr/issues/1867)) ([5f36d8b](https://github.com/homarr-labs/homarr/commit/5f36d8b12528fd2c8c3da783b266d614203ec46a)) -* open all apps in category ([#2212](https://github.com/homarr-labs/homarr/issues/2212)) ([bb67bf5](https://github.com/homarr-labs/homarr/commit/bb67bf5fa2968d91ad3522ebae960a6880f85987)) +- add api key delete ([#2210](https://github.com/homarr-labs/homarr/issues/2210)) ([8058b62](https://github.com/homarr-labs/homarr/commit/8058b6207ad4be1d646182b67b810c397097c054)) +- custom time/date format in clock widget ([#2180](https://github.com/homarr-labs/homarr/issues/2180)) ([be603ba](https://github.com/homarr-labs/homarr/commit/be603badfed63ad7583a5265bef3b9e85f6b6b61)) +- improve consistency and design ([#1867](https://github.com/homarr-labs/homarr/issues/1867)) ([5f36d8b](https://github.com/homarr-labs/homarr/commit/5f36d8b12528fd2c8c3da783b266d614203ec46a)) +- open all apps in category ([#2212](https://github.com/homarr-labs/homarr/issues/2212)) ([bb67bf5](https://github.com/homarr-labs/homarr/commit/bb67bf5fa2968d91ad3522ebae960a6880f85987)) ### Bug Fixes -* **deps:** update dependency @tabler/icons-react to ^3.30.0 ([#2266](https://github.com/homarr-labs/homarr/issues/2266)) ([c849109](https://github.com/homarr-labs/homarr/commit/c849109df5b622aca8cf7b392b94685581bf6b32)) -* **deps:** update dependency drizzle-orm to ^0.39.2 ([#2255](https://github.com/homarr-labs/homarr/issues/2255)) ([3d0b319](https://github.com/homarr-labs/homarr/commit/3d0b319a88bdb8d955d7942553d92988bf5b2c28)) -* **deps:** update dependency ioredis to v5.5.0 ([#2264](https://github.com/homarr-labs/homarr/issues/2264)) ([0da5a1b](https://github.com/homarr-labs/homarr/commit/0da5a1b0fb86ff2074f12a5e028fcc09ff94a4a5)) -* **deps:** update dependency jotai to ^2.11.3 ([#2215](https://github.com/homarr-labs/homarr/issues/2215)) ([a385337](https://github.com/homarr-labs/homarr/commit/a3853372687aed543fad2dd89bfb13871af0f2c1)) -* **deps:** update dependency octokit to ^4.1.1 ([#2262](https://github.com/homarr-labs/homarr/issues/2262)) ([3cbb656](https://github.com/homarr-labs/homarr/commit/3cbb656ee9b540d2dd4c7db37946efacbbfdc522)) -* **deps:** update dependency sass to ^1.84.0 ([#2257](https://github.com/homarr-labs/homarr/issues/2257)) ([7bbbaf3](https://github.com/homarr-labs/homarr/commit/7bbbaf343befaaa3d03a91e932f683c5aec4b41e)) -* **deps:** update dependency semver-parser to ^4.1.8 ([#2216](https://github.com/homarr-labs/homarr/issues/2216)) ([46cfb23](https://github.com/homarr-labs/homarr/commit/46cfb2383b6628472d3972da2166884330bf6d24)) -* **deps:** update dependency trpc-to-openapi to ^2.1.3 ([#2244](https://github.com/homarr-labs/homarr/issues/2244)) ([c623a42](https://github.com/homarr-labs/homarr/commit/c623a420cadce677e39b99fceeb3f3a391f879ea)) -* **deps:** update dependency typescript-eslint to ^8.23.0 ([#2232](https://github.com/homarr-labs/homarr/issues/2232)) ([83044d2](https://github.com/homarr-labs/homarr/commit/83044d23dd7accb1b3a21cdde1e034969a494ccb)) -* **deps:** update testcontainers-node monorepo to ^10.18.0 ([#2259](https://github.com/homarr-labs/homarr/issues/2259)) ([7a8e671](https://github.com/homarr-labs/homarr/commit/7a8e67120576b333bfcf73171b54ccfeeda0d44a)) -* **deps:** update turbo monorepo to ^2.4.0 ([#2207](https://github.com/homarr-labs/homarr/issues/2207)) ([6ce7bc0](https://github.com/homarr-labs/homarr/commit/6ce7bc0ee2dcd5150d72fdbc2070c05ba836ebd5)) -* foreign key reference default search engine ([#2211](https://github.com/homarr-labs/homarr/issues/2211)) ([26468a4](https://github.com/homarr-labs/homarr/commit/26468a413795afa7cc3444058bfc73435fb7f2a0)) -* make system health temp optional ([#2247](https://github.com/homarr-labs/homarr/issues/2247)) ([da09826](https://github.com/homarr-labs/homarr/commit/da098263930c9c9611a1505d52d3816bd2a49e7e)) +- **deps:** update dependency @tabler/icons-react to ^3.30.0 ([#2266](https://github.com/homarr-labs/homarr/issues/2266)) ([c849109](https://github.com/homarr-labs/homarr/commit/c849109df5b622aca8cf7b392b94685581bf6b32)) +- **deps:** update dependency drizzle-orm to ^0.39.2 ([#2255](https://github.com/homarr-labs/homarr/issues/2255)) ([3d0b319](https://github.com/homarr-labs/homarr/commit/3d0b319a88bdb8d955d7942553d92988bf5b2c28)) +- **deps:** update dependency ioredis to v5.5.0 ([#2264](https://github.com/homarr-labs/homarr/issues/2264)) ([0da5a1b](https://github.com/homarr-labs/homarr/commit/0da5a1b0fb86ff2074f12a5e028fcc09ff94a4a5)) +- **deps:** update dependency jotai to ^2.11.3 ([#2215](https://github.com/homarr-labs/homarr/issues/2215)) ([a385337](https://github.com/homarr-labs/homarr/commit/a3853372687aed543fad2dd89bfb13871af0f2c1)) +- **deps:** update dependency octokit to ^4.1.1 ([#2262](https://github.com/homarr-labs/homarr/issues/2262)) ([3cbb656](https://github.com/homarr-labs/homarr/commit/3cbb656ee9b540d2dd4c7db37946efacbbfdc522)) +- **deps:** update dependency sass to ^1.84.0 ([#2257](https://github.com/homarr-labs/homarr/issues/2257)) ([7bbbaf3](https://github.com/homarr-labs/homarr/commit/7bbbaf343befaaa3d03a91e932f683c5aec4b41e)) +- **deps:** update dependency semver-parser to ^4.1.8 ([#2216](https://github.com/homarr-labs/homarr/issues/2216)) ([46cfb23](https://github.com/homarr-labs/homarr/commit/46cfb2383b6628472d3972da2166884330bf6d24)) +- **deps:** update dependency trpc-to-openapi to ^2.1.3 ([#2244](https://github.com/homarr-labs/homarr/issues/2244)) ([c623a42](https://github.com/homarr-labs/homarr/commit/c623a420cadce677e39b99fceeb3f3a391f879ea)) +- **deps:** update dependency typescript-eslint to ^8.23.0 ([#2232](https://github.com/homarr-labs/homarr/issues/2232)) ([83044d2](https://github.com/homarr-labs/homarr/commit/83044d23dd7accb1b3a21cdde1e034969a494ccb)) +- **deps:** update testcontainers-node monorepo to ^10.18.0 ([#2259](https://github.com/homarr-labs/homarr/issues/2259)) ([7a8e671](https://github.com/homarr-labs/homarr/commit/7a8e67120576b333bfcf73171b54ccfeeda0d44a)) +- **deps:** update turbo monorepo to ^2.4.0 ([#2207](https://github.com/homarr-labs/homarr/issues/2207)) ([6ce7bc0](https://github.com/homarr-labs/homarr/commit/6ce7bc0ee2dcd5150d72fdbc2070c05ba836ebd5)) +- foreign key reference default search engine ([#2211](https://github.com/homarr-labs/homarr/issues/2211)) ([26468a4](https://github.com/homarr-labs/homarr/commit/26468a413795afa7cc3444058bfc73435fb7f2a0)) +- make system health temp optional ([#2247](https://github.com/homarr-labs/homarr/issues/2247)) ([da09826](https://github.com/homarr-labs/homarr/commit/da098263930c9c9611a1505d52d3816bd2a49e7e)) ## [1.4.0](https://github.com/homarr-labs/homarr/compare/v1.3.1...v1.4.0) (2025-01-31) ### Features -* weather widget - add wind speed, option to disable decimals for temperature & redesign dropdown forecast ([#2099](https://github.com/homarr-labs/homarr/issues/2099)) ([c19a400](https://github.com/homarr-labs/homarr/commit/c19a4009f37ec2aba8d4edd2d19819605ecb9575)) +- weather widget - add wind speed, option to disable decimals for temperature & redesign dropdown forecast ([#2099](https://github.com/homarr-labs/homarr/issues/2099)) ([c19a400](https://github.com/homarr-labs/homarr/commit/c19a4009f37ec2aba8d4edd2d19819605ecb9575)) ### Bug Fixes -* board crashes with empty string favicon ([#2192](https://github.com/homarr-labs/homarr/issues/2192)) ([bd0b7c9](https://github.com/homarr-labs/homarr/commit/bd0b7c9518af88e0a329ea6286cb5ef97098782a)) -* **deps:** update dependency drizzle-kit to ^0.30.4 ([#2183](https://github.com/homarr-labs/homarr/issues/2183)) ([37ccfab](https://github.com/homarr-labs/homarr/commit/37ccfab89a7843c65d6f354bef2b0537b20ea757)) -* **deps:** update dependency drizzle-orm to ^0.39.1 ([#2186](https://github.com/homarr-labs/homarr/issues/2186)) ([4c72a34](https://github.com/homarr-labs/homarr/commit/4c72a34daf06c5e00fc4ece6d990148c1cd6d87f)) -* **deps:** update dependency jotai to ^2.11.2 ([#2201](https://github.com/homarr-labs/homarr/issues/2201)) ([c287e99](https://github.com/homarr-labs/homarr/commit/c287e9965f008b6ac6f3bac56057b94c412a3779)) -* **deps:** update tanstack-query monorepo to ^5.66.0 ([#2202](https://github.com/homarr-labs/homarr/issues/2202)) ([e44c3a7](https://github.com/homarr-labs/homarr/commit/e44c3a7bc8be5b67d78096d5daa53ad23ccdea5d)) -* **deps:** update tiptap monorepo to v2.11.4 ([#2195](https://github.com/homarr-labs/homarr/issues/2195)) ([c05c518](https://github.com/homarr-labs/homarr/commit/c05c51856baff5222b0abda56e1c11d9bc9bd6f9)) -* **deps:** update tiptap monorepo to v2.11.5 ([#2203](https://github.com/homarr-labs/homarr/issues/2203)) ([9662e1a](https://github.com/homarr-labs/homarr/commit/9662e1abba3e105fd549d25ee0a0efc48cf293a1)) -* **docker:** missing production env variable ([#2188](https://github.com/homarr-labs/homarr/issues/2188)) ([7774627](https://github.com/homarr-labs/homarr/commit/77746278a36f2b9d39c780eada25195121cc0803)) -* negative curve radius system health ([#2197](https://github.com/homarr-labs/homarr/issues/2197)) ([c75d4f0](https://github.com/homarr-labs/homarr/commit/c75d4f0f58136a0499a51494eb54c78c745f0b3f)) -* respect certificates for app ping ([#2198](https://github.com/homarr-labs/homarr/issues/2198)) ([d4154d2](https://github.com/homarr-labs/homarr/commit/d4154d259fa50bfd754e7ea98b872df78864e014)) -* use hostname for suspense query url ([#2187](https://github.com/homarr-labs/homarr/issues/2187)) ([96fd5cc](https://github.com/homarr-labs/homarr/commit/96fd5cc35e9ca85aba48670860e6bf2a4a2caaa9)) +- board crashes with empty string favicon ([#2192](https://github.com/homarr-labs/homarr/issues/2192)) ([bd0b7c9](https://github.com/homarr-labs/homarr/commit/bd0b7c9518af88e0a329ea6286cb5ef97098782a)) +- **deps:** update dependency drizzle-kit to ^0.30.4 ([#2183](https://github.com/homarr-labs/homarr/issues/2183)) ([37ccfab](https://github.com/homarr-labs/homarr/commit/37ccfab89a7843c65d6f354bef2b0537b20ea757)) +- **deps:** update dependency drizzle-orm to ^0.39.1 ([#2186](https://github.com/homarr-labs/homarr/issues/2186)) ([4c72a34](https://github.com/homarr-labs/homarr/commit/4c72a34daf06c5e00fc4ece6d990148c1cd6d87f)) +- **deps:** update dependency jotai to ^2.11.2 ([#2201](https://github.com/homarr-labs/homarr/issues/2201)) ([c287e99](https://github.com/homarr-labs/homarr/commit/c287e9965f008b6ac6f3bac56057b94c412a3779)) +- **deps:** update tanstack-query monorepo to ^5.66.0 ([#2202](https://github.com/homarr-labs/homarr/issues/2202)) ([e44c3a7](https://github.com/homarr-labs/homarr/commit/e44c3a7bc8be5b67d78096d5daa53ad23ccdea5d)) +- **deps:** update tiptap monorepo to v2.11.4 ([#2195](https://github.com/homarr-labs/homarr/issues/2195)) ([c05c518](https://github.com/homarr-labs/homarr/commit/c05c51856baff5222b0abda56e1c11d9bc9bd6f9)) +- **deps:** update tiptap monorepo to v2.11.5 ([#2203](https://github.com/homarr-labs/homarr/issues/2203)) ([9662e1a](https://github.com/homarr-labs/homarr/commit/9662e1abba3e105fd549d25ee0a0efc48cf293a1)) +- **docker:** missing production env variable ([#2188](https://github.com/homarr-labs/homarr/issues/2188)) ([7774627](https://github.com/homarr-labs/homarr/commit/77746278a36f2b9d39c780eada25195121cc0803)) +- negative curve radius system health ([#2197](https://github.com/homarr-labs/homarr/issues/2197)) ([c75d4f0](https://github.com/homarr-labs/homarr/commit/c75d4f0f58136a0499a51494eb54c78c745f0b3f)) +- respect certificates for app ping ([#2198](https://github.com/homarr-labs/homarr/issues/2198)) ([d4154d2](https://github.com/homarr-labs/homarr/commit/d4154d259fa50bfd754e7ea98b872df78864e014)) +- use hostname for suspense query url ([#2187](https://github.com/homarr-labs/homarr/issues/2187)) ([96fd5cc](https://github.com/homarr-labs/homarr/commit/96fd5cc35e9ca85aba48670860e6bf2a4a2caaa9)) ## [1.3.1](https://github.com/homarr-labs/homarr/compare/v1.3.0...v1.3.1) (2025-01-28) ### Bug Fixes -* app url line clamp ([#2170](https://github.com/homarr-labs/homarr/issues/2170)) ([780efab](https://github.com/homarr-labs/homarr/commit/780efab80cdc5446a6468d60afe2c1d9ecca0f1e)) -* automatic search engine creation ([#2172](https://github.com/homarr-labs/homarr/issues/2172)) ([8dd7fe2](https://github.com/homarr-labs/homarr/commit/8dd7fe297c431bbe448bc47b381370ade7c4d3d9)) -* **deps:** update dependency swagger-ui-react to ^5.18.3 ([#2164](https://github.com/homarr-labs/homarr/issues/2164)) ([a4e9abc](https://github.com/homarr-labs/homarr/commit/a4e9abcda192a96754078eece4343c2c1c9fa032)) -* **deps:** update dependency typescript-eslint to ^8.22.0 ([#2149](https://github.com/homarr-labs/homarr/issues/2149)) ([9d4aea2](https://github.com/homarr-labs/homarr/commit/9d4aea2c4187ddda6a0484d0f6a0403c04961dde)) -* **deps:** update tanstack-query monorepo to ^5.65.1 ([#2161](https://github.com/homarr-labs/homarr/issues/2161)) ([55b1afb](https://github.com/homarr-labs/homarr/commit/55b1afbb2167ccb6f5115cbb1291dfe561a5aa05)) +- app url line clamp ([#2170](https://github.com/homarr-labs/homarr/issues/2170)) ([780efab](https://github.com/homarr-labs/homarr/commit/780efab80cdc5446a6468d60afe2c1d9ecca0f1e)) +- automatic search engine creation ([#2172](https://github.com/homarr-labs/homarr/issues/2172)) ([8dd7fe2](https://github.com/homarr-labs/homarr/commit/8dd7fe297c431bbe448bc47b381370ade7c4d3d9)) +- **deps:** update dependency swagger-ui-react to ^5.18.3 ([#2164](https://github.com/homarr-labs/homarr/issues/2164)) ([a4e9abc](https://github.com/homarr-labs/homarr/commit/a4e9abcda192a96754078eece4343c2c1c9fa032)) +- **deps:** update dependency typescript-eslint to ^8.22.0 ([#2149](https://github.com/homarr-labs/homarr/issues/2149)) ([9d4aea2](https://github.com/homarr-labs/homarr/commit/9d4aea2c4187ddda6a0484d0f6a0403c04961dde)) +- **deps:** update tanstack-query monorepo to ^5.65.1 ([#2161](https://github.com/homarr-labs/homarr/issues/2161)) ([55b1afb](https://github.com/homarr-labs/homarr/commit/55b1afbb2167ccb6f5115cbb1291dfe561a5aa05)) ## [1.3.0](https://github.com/homarr-labs/homarr/compare/v1.2.0...v1.3.0) (2025-01-27) ### Features -* add opacity for categories ([#2132](https://github.com/homarr-labs/homarr/issues/2132)) ([1146c59](https://github.com/homarr-labs/homarr/commit/1146c59a41ddd4b4cda14f6601437cd9bceb305a)) -* **category:** save collapse state for signed in users ([#2134](https://github.com/homarr-labs/homarr/issues/2134)) ([7cb0aa7](https://github.com/homarr-labs/homarr/commit/7cb0aa70f11253aa4016d928f326eb71183626f6)) -* log body integration test failure ([#2151](https://github.com/homarr-labs/homarr/issues/2151)) ([5c8d7fc](https://github.com/homarr-labs/homarr/commit/5c8d7fcc153ba4b94cd88c6ca8b22962d812b2b4)) -* **user:** add search in new tab preference ([#2125](https://github.com/homarr-labs/homarr/issues/2125)) ([92f70f5](https://github.com/homarr-labs/homarr/commit/92f70f5a03048c7b269604f1ce33313ecf23a64b)) +- add opacity for categories ([#2132](https://github.com/homarr-labs/homarr/issues/2132)) ([1146c59](https://github.com/homarr-labs/homarr/commit/1146c59a41ddd4b4cda14f6601437cd9bceb305a)) +- **category:** save collapse state for signed in users ([#2134](https://github.com/homarr-labs/homarr/issues/2134)) ([7cb0aa7](https://github.com/homarr-labs/homarr/commit/7cb0aa70f11253aa4016d928f326eb71183626f6)) +- log body integration test failure ([#2151](https://github.com/homarr-labs/homarr/issues/2151)) ([5c8d7fc](https://github.com/homarr-labs/homarr/commit/5c8d7fcc153ba4b94cd88c6ca8b22962d812b2b4)) +- **user:** add search in new tab preference ([#2125](https://github.com/homarr-labs/homarr/issues/2125)) ([92f70f5](https://github.com/homarr-labs/homarr/commit/92f70f5a03048c7b269604f1ce33313ecf23a64b)) ### Bug Fixes -* app url not required ([#2130](https://github.com/homarr-labs/homarr/issues/2130)) ([b38de29](https://github.com/homarr-labs/homarr/commit/b38de29a882ce26a9326f7f65403ea3916a58cac)) -* bookmarks show unauthorized when not logged in ([#2123](https://github.com/homarr-labs/homarr/issues/2123)) ([2bb44e1](https://github.com/homarr-labs/homarr/commit/2bb44e16669f94d3d7500e828b1ab66b98c54bc7)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.12.0 ([#2117](https://github.com/homarr-labs/homarr/issues/2117)) ([963d774](https://github.com/homarr-labs/homarr/commit/963d77463a5206ac1cb5d035b52271c6bbbd5e73)) -* **deps:** update dependency drizzle-kit to ^0.30.3 ([#2142](https://github.com/homarr-labs/homarr/issues/2142)) ([0d54873](https://github.com/homarr-labs/homarr/commit/0d5487366c2616738b2542838f5cbd9c6d628973)) -* **deps:** update dependency drizzle-orm to ^0.39.0 ([#2144](https://github.com/homarr-labs/homarr/issues/2144)) ([f0daef2](https://github.com/homarr-labs/homarr/commit/f0daef237c08c866f1f2aaefc113e70838b76be4)) -* **deps:** update dependency drizzle-zod to ^0.7.0 ([#2143](https://github.com/homarr-labs/homarr/issues/2143)) ([af67bf2](https://github.com/homarr-labs/homarr/commit/af67bf26d674539abd7a0fdc54d7764d90f7007c)) -* **deps:** update mantine monorepo to ^7.16.2 ([#2129](https://github.com/homarr-labs/homarr/issues/2129)) ([bbac412](https://github.com/homarr-labs/homarr/commit/bbac4128eb36d934310a83087c733338ae2b9b9c)) -* **deps:** update tanstack-query monorepo to ^5.65.0 ([#2146](https://github.com/homarr-labs/homarr/issues/2146)) ([50970e4](https://github.com/homarr-labs/homarr/commit/50970e431d7654d2db43a4b1d55cc4f7d15a4ac2)) -* **deps:** update testcontainers-node monorepo to ^10.17.2 ([#2148](https://github.com/homarr-labs/homarr/issues/2148)) ([5c219a8](https://github.com/homarr-labs/homarr/commit/5c219a8b595f90c53189569bd63fb85db8eab882)) -* multi-text-input not saving on blur ([#2128](https://github.com/homarr-labs/homarr/issues/2128)) ([dd2ca13](https://github.com/homarr-labs/homarr/commit/dd2ca1300422a6ad477089efe905901515eebaf6)) -* split up proxmox secrets are incorrectly migrated ([#2124](https://github.com/homarr-labs/homarr/issues/2124)) ([57b523f](https://github.com/homarr-labs/homarr/commit/57b523fa805de56d8795169a535e5e45d7c22ad7)) -* unable to update integration when encryption key changed ([#2133](https://github.com/homarr-labs/homarr/issues/2133)) ([93dc3ae](https://github.com/homarr-labs/homarr/commit/93dc3ae97ed97691c304c9b6de9245930d5461ae)) -* websocket is not keep alive ([#2131](https://github.com/homarr-labs/homarr/issues/2131)) ([af1f8ea](https://github.com/homarr-labs/homarr/commit/af1f8eaf76062a9fde5570097fc6a75742174d97)) +- app url not required ([#2130](https://github.com/homarr-labs/homarr/issues/2130)) ([b38de29](https://github.com/homarr-labs/homarr/commit/b38de29a882ce26a9326f7f65403ea3916a58cac)) +- bookmarks show unauthorized when not logged in ([#2123](https://github.com/homarr-labs/homarr/issues/2123)) ([2bb44e1](https://github.com/homarr-labs/homarr/commit/2bb44e16669f94d3d7500e828b1ab66b98c54bc7)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.12.0 ([#2117](https://github.com/homarr-labs/homarr/issues/2117)) ([963d774](https://github.com/homarr-labs/homarr/commit/963d77463a5206ac1cb5d035b52271c6bbbd5e73)) +- **deps:** update dependency drizzle-kit to ^0.30.3 ([#2142](https://github.com/homarr-labs/homarr/issues/2142)) ([0d54873](https://github.com/homarr-labs/homarr/commit/0d5487366c2616738b2542838f5cbd9c6d628973)) +- **deps:** update dependency drizzle-orm to ^0.39.0 ([#2144](https://github.com/homarr-labs/homarr/issues/2144)) ([f0daef2](https://github.com/homarr-labs/homarr/commit/f0daef237c08c866f1f2aaefc113e70838b76be4)) +- **deps:** update dependency drizzle-zod to ^0.7.0 ([#2143](https://github.com/homarr-labs/homarr/issues/2143)) ([af67bf2](https://github.com/homarr-labs/homarr/commit/af67bf26d674539abd7a0fdc54d7764d90f7007c)) +- **deps:** update mantine monorepo to ^7.16.2 ([#2129](https://github.com/homarr-labs/homarr/issues/2129)) ([bbac412](https://github.com/homarr-labs/homarr/commit/bbac4128eb36d934310a83087c733338ae2b9b9c)) +- **deps:** update tanstack-query monorepo to ^5.65.0 ([#2146](https://github.com/homarr-labs/homarr/issues/2146)) ([50970e4](https://github.com/homarr-labs/homarr/commit/50970e431d7654d2db43a4b1d55cc4f7d15a4ac2)) +- **deps:** update testcontainers-node monorepo to ^10.17.2 ([#2148](https://github.com/homarr-labs/homarr/issues/2148)) ([5c219a8](https://github.com/homarr-labs/homarr/commit/5c219a8b595f90c53189569bd63fb85db8eab882)) +- multi-text-input not saving on blur ([#2128](https://github.com/homarr-labs/homarr/issues/2128)) ([dd2ca13](https://github.com/homarr-labs/homarr/commit/dd2ca1300422a6ad477089efe905901515eebaf6)) +- split up proxmox secrets are incorrectly migrated ([#2124](https://github.com/homarr-labs/homarr/issues/2124)) ([57b523f](https://github.com/homarr-labs/homarr/commit/57b523fa805de56d8795169a535e5e45d7c22ad7)) +- unable to update integration when encryption key changed ([#2133](https://github.com/homarr-labs/homarr/issues/2133)) ([93dc3ae](https://github.com/homarr-labs/homarr/commit/93dc3ae97ed97691c304c9b6de9245930d5461ae)) +- websocket is not keep alive ([#2131](https://github.com/homarr-labs/homarr/issues/2131)) ([af1f8ea](https://github.com/homarr-labs/homarr/commit/af1f8eaf76062a9fde5570097fc6a75742174d97)) ## [1.2.0](https://github.com/homarr-labs/homarr/compare/v1.1.0...v1.2.0) (2025-01-24) ### Features -* add bookmarks options (apps) ([#2048](https://github.com/homarr-labs/homarr/issues/2048)) ([132db15](https://github.com/homarr-labs/homarr/commit/132db154242959dc2f16add4e58b0bdb7b96fb8c)) +- add bookmarks options (apps) ([#2048](https://github.com/homarr-labs/homarr/issues/2048)) ([132db15](https://github.com/homarr-labs/homarr/commit/132db154242959dc2f16add4e58b0bdb7b96fb8c)) ### Bug Fixes -* date & time widget padding cut off ([#2089](https://github.com/homarr-labs/homarr/issues/2089)) ([e4dd19b](https://github.com/homarr-labs/homarr/commit/e4dd19b574bfe0dcbcd92a3c5993aef550683fc3)) -* **deps:** update turbo monorepo to ^2.3.4 ([#2085](https://github.com/homarr-labs/homarr/issues/2085)) ([8b040ed](https://github.com/homarr-labs/homarr/commit/8b040eddef8dbc1269489038bc503dcf23ba9580)) -* issue with foreign key constraint do to empty string for home board ([#2088](https://github.com/homarr-labs/homarr/issues/2088)) ([ac78865](https://github.com/homarr-labs/homarr/commit/ac788650fb60d7aca889ec270dc29edb7ee53123)) -* system health monitoring gets proxmox id passed ([#2094](https://github.com/homarr-labs/homarr/issues/2094)) ([a1ba437](https://github.com/homarr-labs/homarr/commit/a1ba4372da3430777a85dc83bbfc59f4b03d65fb)) -* url-encode nzbget credentials ([#2093](https://github.com/homarr-labs/homarr/issues/2093)) ([4e153b8](https://github.com/homarr-labs/homarr/commit/4e153b804664e4fbc63ee5eb945c8096c809c6d5)) +- date & time widget padding cut off ([#2089](https://github.com/homarr-labs/homarr/issues/2089)) ([e4dd19b](https://github.com/homarr-labs/homarr/commit/e4dd19b574bfe0dcbcd92a3c5993aef550683fc3)) +- **deps:** update turbo monorepo to ^2.3.4 ([#2085](https://github.com/homarr-labs/homarr/issues/2085)) ([8b040ed](https://github.com/homarr-labs/homarr/commit/8b040eddef8dbc1269489038bc503dcf23ba9580)) +- issue with foreign key constraint do to empty string for home board ([#2088](https://github.com/homarr-labs/homarr/issues/2088)) ([ac78865](https://github.com/homarr-labs/homarr/commit/ac788650fb60d7aca889ec270dc29edb7ee53123)) +- system health monitoring gets proxmox id passed ([#2094](https://github.com/homarr-labs/homarr/issues/2094)) ([a1ba437](https://github.com/homarr-labs/homarr/commit/a1ba4372da3430777a85dc83bbfc59f4b03d65fb)) +- url-encode nzbget credentials ([#2093](https://github.com/homarr-labs/homarr/issues/2093)) ([4e153b8](https://github.com/homarr-labs/homarr/commit/4e153b804664e4fbc63ee5eb945c8096c809c6d5)) ## [1.1.0](https://github.com/homarr-labs/homarr/compare/v1.0.1...v1.1.0) (2025-01-22) ### Features -* add dropdown list for switching boards ([#2042](https://github.com/homarr-labs/homarr/issues/2042)) ([02dabfc](https://github.com/homarr-labs/homarr/commit/02dabfcd01e372ada7d80a0501b708b171c8fbc6)) -* add initial focus on new integration search ([#2015](https://github.com/homarr-labs/homarr/issues/2015)) ([b30c192](https://github.com/homarr-labs/homarr/commit/b30c192b8fbbbfcff8eb09b8f1654eb8dd90b56d)) -* add support for calendar without integrations, add today mark ([#2016](https://github.com/homarr-labs/homarr/issues/2016)) ([9d85677](https://github.com/homarr-labs/homarr/commit/9d8567704670a9ab471ac3e246c5ba85f908cfd9)) +- add dropdown list for switching boards ([#2042](https://github.com/homarr-labs/homarr/issues/2042)) ([02dabfc](https://github.com/homarr-labs/homarr/commit/02dabfcd01e372ada7d80a0501b708b171c8fbc6)) +- add initial focus on new integration search ([#2015](https://github.com/homarr-labs/homarr/issues/2015)) ([b30c192](https://github.com/homarr-labs/homarr/commit/b30c192b8fbbbfcff8eb09b8f1654eb8dd90b56d)) +- add support for calendar without integrations, add today mark ([#2016](https://github.com/homarr-labs/homarr/issues/2016)) ([9d85677](https://github.com/homarr-labs/homarr/commit/9d8567704670a9ab471ac3e246c5ba85f908cfd9)) ### Bug Fixes -* add item does not respect dynamic sections ([#2010](https://github.com/homarr-labs/homarr/issues/2010)) ([d4f04da](https://github.com/homarr-labs/homarr/commit/d4f04da70910b6adbf3764de1499dbd46fe9b6d5)) -* add missing request handler for rss feeds ([#2006](https://github.com/homarr-labs/homarr/issues/2006)) ([99c8e5b](https://github.com/homarr-labs/homarr/commit/99c8e5b609b17dfe443b35bfff2b883845dc62fe)) -* certificate card delete button not reachable caused by overflow ([#2037](https://github.com/homarr-labs/homarr/issues/2037)) ([c922c5b](https://github.com/homarr-labs/homarr/commit/c922c5b08387b01136332876782fed1444203096)) -* change error when section for item not found to logged warning and remove item ([#2044](https://github.com/homarr-labs/homarr/issues/2044)) ([b413e2e](https://github.com/homarr-labs/homarr/commit/b413e2ec7dd37c43665373be914ffa414599a206)) -* copy only working for https and localhost, adding open in new tab ([#2035](https://github.com/homarr-labs/homarr/issues/2035)) ([7a2d97b](https://github.com/homarr-labs/homarr/commit/7a2d97ba9119e046c06365146fc4efd080f6f6df)) -* **deps:** update dependency @tabler/icons-react to ^3.29.0 ([#2057](https://github.com/homarr-labs/homarr/issues/2057)) ([2a88095](https://github.com/homarr-labs/homarr/commit/2a8809551cfc4f4c09aa5c01cac05914fa913769)) -* **deps:** update dependency better-sqlite3 to ^11.8.1 ([#2005](https://github.com/homarr-labs/homarr/issues/2005)) ([49bd02e](https://github.com/homarr-labs/homarr/commit/49bd02e869081ec325bd8b4ba2909603a82cd7df)) -* **deps:** update dependency jotai to ^2.11.1 ([#2026](https://github.com/homarr-labs/homarr/issues/2026)) ([45af644](https://github.com/homarr-labs/homarr/commit/45af6442a1b84be399ddd281a17227a4184490be)) -* **deps:** update dependency typescript-eslint to ^8.21.0 ([#2032](https://github.com/homarr-labs/homarr/issues/2032)) ([55feb9d](https://github.com/homarr-labs/homarr/commit/55feb9dff87088d7f6d006bcecc61b0435edbb6f)) -* **deps:** update dependency undici to v7.3.0 ([#2061](https://github.com/homarr-labs/homarr/issues/2061)) ([3e9e1e5](https://github.com/homarr-labs/homarr/commit/3e9e1e5e4f737f8bdb1046585463c987fe43c3d5)) -* **deps:** update mantine monorepo to ^7.16.1 ([#2014](https://github.com/homarr-labs/homarr/issues/2014)) ([1897752](https://github.com/homarr-labs/homarr/commit/1897752e3893804a5082f34b20929ef007825506)) -* **deps:** update nextjs monorepo to ^15.1.6 ([#2063](https://github.com/homarr-labs/homarr/issues/2063)) ([4d8c22a](https://github.com/homarr-labs/homarr/commit/4d8c22a4e684b4f921967992d04d2461eb2e52db)) -* **deps:** update tanstack-query monorepo to ^5.64.2 ([#2013](https://github.com/homarr-labs/homarr/issues/2013)) ([554853f](https://github.com/homarr-labs/homarr/commit/554853ffbda202eff559b5dafa330a15e2649f17)) -* **deps:** update testcontainers-node monorepo to ^10.17.1 ([#2047](https://github.com/homarr-labs/homarr/issues/2047)) ([701538f](https://github.com/homarr-labs/homarr/commit/701538fcb5c546478f5d31b2869b933e7544cc3e)) -* **deps:** update tiptap monorepo to v2.11.3 ([#2067](https://github.com/homarr-labs/homarr/issues/2067)) ([1f54bf5](https://github.com/homarr-labs/homarr/commit/1f54bf5b9e24b6d063f5ce9165c87d2d036fb8c6)) -* docker hosts and ports env variable wrongly used ([#2050](https://github.com/homarr-labs/homarr/issues/2050)) ([73f7d88](https://github.com/homarr-labs/homarr/commit/73f7d885cddbbaa2ac879953fe5ee24a6abe582c)) -* empty env variables should be ignored ([#2040](https://github.com/homarr-labs/homarr/issues/2040)) ([1759279](https://github.com/homarr-labs/homarr/commit/175927970b25648104fac5a31649471b3ebeaa9e)) -* entity state and execute automation cards aren't movable ([#2043](https://github.com/homarr-labs/homarr/issues/2043)) ([29d4f9e](https://github.com/homarr-labs/homarr/commit/29d4f9e00313fe3e7ae207547cbd7a143b314535)) -* health monitoring cpu temp ring when no data, disks health when no data ([#2029](https://github.com/homarr-labs/homarr/issues/2029)) ([bdefff6](https://github.com/homarr-labs/homarr/commit/bdefff636b06cb33020765e606bfe8e41c931722)) -* hide current language switch in other users preferences ([#2069](https://github.com/homarr-labs/homarr/issues/2069)) ([470d27e](https://github.com/homarr-labs/homarr/commit/470d27e091a006af8a8c3ceccfc439902ebc5f18)) -* unable to change home board in user preferences ([#2011](https://github.com/homarr-labs/homarr/issues/2011)) ([7960a4c](https://github.com/homarr-labs/homarr/commit/7960a4cea11d839f5a0d1889e98bb949c11b68fa)) -* unable to move items with touch devices ([#2038](https://github.com/homarr-labs/homarr/issues/2038)) ([931f312](https://github.com/homarr-labs/homarr/commit/931f312291c0a6f1f22a26adf89dfbf912e4fe5e)) -* url of batch link can get to long with 414 http code ([#2036](https://github.com/homarr-labs/homarr/issues/2036)) ([73bbcfe](https://github.com/homarr-labs/homarr/commit/73bbcfeee86bf0950145070a6a2ce528b708fe7c)) -* User options switch on load value always false ([#1995](https://github.com/homarr-labs/homarr/issues/1995)) ([fa6262c](https://github.com/homarr-labs/homarr/commit/fa6262cf5e780fc3c5b445f988de9d9eb5b86ab5)) +- add item does not respect dynamic sections ([#2010](https://github.com/homarr-labs/homarr/issues/2010)) ([d4f04da](https://github.com/homarr-labs/homarr/commit/d4f04da70910b6adbf3764de1499dbd46fe9b6d5)) +- add missing request handler for rss feeds ([#2006](https://github.com/homarr-labs/homarr/issues/2006)) ([99c8e5b](https://github.com/homarr-labs/homarr/commit/99c8e5b609b17dfe443b35bfff2b883845dc62fe)) +- certificate card delete button not reachable caused by overflow ([#2037](https://github.com/homarr-labs/homarr/issues/2037)) ([c922c5b](https://github.com/homarr-labs/homarr/commit/c922c5b08387b01136332876782fed1444203096)) +- change error when section for item not found to logged warning and remove item ([#2044](https://github.com/homarr-labs/homarr/issues/2044)) ([b413e2e](https://github.com/homarr-labs/homarr/commit/b413e2ec7dd37c43665373be914ffa414599a206)) +- copy only working for https and localhost, adding open in new tab ([#2035](https://github.com/homarr-labs/homarr/issues/2035)) ([7a2d97b](https://github.com/homarr-labs/homarr/commit/7a2d97ba9119e046c06365146fc4efd080f6f6df)) +- **deps:** update dependency @tabler/icons-react to ^3.29.0 ([#2057](https://github.com/homarr-labs/homarr/issues/2057)) ([2a88095](https://github.com/homarr-labs/homarr/commit/2a8809551cfc4f4c09aa5c01cac05914fa913769)) +- **deps:** update dependency better-sqlite3 to ^11.8.1 ([#2005](https://github.com/homarr-labs/homarr/issues/2005)) ([49bd02e](https://github.com/homarr-labs/homarr/commit/49bd02e869081ec325bd8b4ba2909603a82cd7df)) +- **deps:** update dependency jotai to ^2.11.1 ([#2026](https://github.com/homarr-labs/homarr/issues/2026)) ([45af644](https://github.com/homarr-labs/homarr/commit/45af6442a1b84be399ddd281a17227a4184490be)) +- **deps:** update dependency typescript-eslint to ^8.21.0 ([#2032](https://github.com/homarr-labs/homarr/issues/2032)) ([55feb9d](https://github.com/homarr-labs/homarr/commit/55feb9dff87088d7f6d006bcecc61b0435edbb6f)) +- **deps:** update dependency undici to v7.3.0 ([#2061](https://github.com/homarr-labs/homarr/issues/2061)) ([3e9e1e5](https://github.com/homarr-labs/homarr/commit/3e9e1e5e4f737f8bdb1046585463c987fe43c3d5)) +- **deps:** update mantine monorepo to ^7.16.1 ([#2014](https://github.com/homarr-labs/homarr/issues/2014)) ([1897752](https://github.com/homarr-labs/homarr/commit/1897752e3893804a5082f34b20929ef007825506)) +- **deps:** update nextjs monorepo to ^15.1.6 ([#2063](https://github.com/homarr-labs/homarr/issues/2063)) ([4d8c22a](https://github.com/homarr-labs/homarr/commit/4d8c22a4e684b4f921967992d04d2461eb2e52db)) +- **deps:** update tanstack-query monorepo to ^5.64.2 ([#2013](https://github.com/homarr-labs/homarr/issues/2013)) ([554853f](https://github.com/homarr-labs/homarr/commit/554853ffbda202eff559b5dafa330a15e2649f17)) +- **deps:** update testcontainers-node monorepo to ^10.17.1 ([#2047](https://github.com/homarr-labs/homarr/issues/2047)) ([701538f](https://github.com/homarr-labs/homarr/commit/701538fcb5c546478f5d31b2869b933e7544cc3e)) +- **deps:** update tiptap monorepo to v2.11.3 ([#2067](https://github.com/homarr-labs/homarr/issues/2067)) ([1f54bf5](https://github.com/homarr-labs/homarr/commit/1f54bf5b9e24b6d063f5ce9165c87d2d036fb8c6)) +- docker hosts and ports env variable wrongly used ([#2050](https://github.com/homarr-labs/homarr/issues/2050)) ([73f7d88](https://github.com/homarr-labs/homarr/commit/73f7d885cddbbaa2ac879953fe5ee24a6abe582c)) +- empty env variables should be ignored ([#2040](https://github.com/homarr-labs/homarr/issues/2040)) ([1759279](https://github.com/homarr-labs/homarr/commit/175927970b25648104fac5a31649471b3ebeaa9e)) +- entity state and execute automation cards aren't movable ([#2043](https://github.com/homarr-labs/homarr/issues/2043)) ([29d4f9e](https://github.com/homarr-labs/homarr/commit/29d4f9e00313fe3e7ae207547cbd7a143b314535)) +- health monitoring cpu temp ring when no data, disks health when no data ([#2029](https://github.com/homarr-labs/homarr/issues/2029)) ([bdefff6](https://github.com/homarr-labs/homarr/commit/bdefff636b06cb33020765e606bfe8e41c931722)) +- hide current language switch in other users preferences ([#2069](https://github.com/homarr-labs/homarr/issues/2069)) ([470d27e](https://github.com/homarr-labs/homarr/commit/470d27e091a006af8a8c3ceccfc439902ebc5f18)) +- unable to change home board in user preferences ([#2011](https://github.com/homarr-labs/homarr/issues/2011)) ([7960a4c](https://github.com/homarr-labs/homarr/commit/7960a4cea11d839f5a0d1889e98bb949c11b68fa)) +- unable to move items with touch devices ([#2038](https://github.com/homarr-labs/homarr/issues/2038)) ([931f312](https://github.com/homarr-labs/homarr/commit/931f312291c0a6f1f22a26adf89dfbf912e4fe5e)) +- url of batch link can get to long with 414 http code ([#2036](https://github.com/homarr-labs/homarr/issues/2036)) ([73bbcfe](https://github.com/homarr-labs/homarr/commit/73bbcfeee86bf0950145070a6a2ce528b708fe7c)) +- User options switch on load value always false ([#1995](https://github.com/homarr-labs/homarr/issues/1995)) ([fa6262c](https://github.com/homarr-labs/homarr/commit/fa6262cf5e780fc3c5b445f988de9d9eb5b86ab5)) ## [1.0.1](https://github.com/homarr-labs/homarr/compare/v1.0.0...v1.0.1) (2025-01-17) ### Bug Fixes -* add error from ldap bind operation to log statement ([#1980](https://github.com/homarr-labs/homarr/issues/1980)) ([927913c](https://github.com/homarr-labs/homarr/commit/927913cf4e0a6e4f3a6b7dbf9ae9034d0780b5fb)) -* add missing old-import proxmox integration kind mapping ([#1979](https://github.com/homarr-labs/homarr/issues/1979)) ([e023edf](https://github.com/homarr-labs/homarr/commit/e023edf9d62417b054eb565a7f794267539eb992)) -* **deps:** update dependency flag-icons to ^7.3.2 ([#1981](https://github.com/homarr-labs/homarr/issues/1981)) ([c55207b](https://github.com/homarr-labs/homarr/commit/c55207bd59f0c51869e8fdb36e083a8327ca46b1)) -* **deps:** update nextjs monorepo to ^15.1.5 ([#1978](https://github.com/homarr-labs/homarr/issues/1978)) ([e35811c](https://github.com/homarr-labs/homarr/commit/e35811c921aea8c96dca398841ece396d71d4979)) +- add error from ldap bind operation to log statement ([#1980](https://github.com/homarr-labs/homarr/issues/1980)) ([927913c](https://github.com/homarr-labs/homarr/commit/927913cf4e0a6e4f3a6b7dbf9ae9034d0780b5fb)) +- add missing old-import proxmox integration kind mapping ([#1979](https://github.com/homarr-labs/homarr/issues/1979)) ([e023edf](https://github.com/homarr-labs/homarr/commit/e023edf9d62417b054eb565a7f794267539eb992)) +- **deps:** update dependency flag-icons to ^7.3.2 ([#1981](https://github.com/homarr-labs/homarr/issues/1981)) ([c55207b](https://github.com/homarr-labs/homarr/commit/c55207bd59f0c51869e8fdb36e083a8327ca46b1)) +- **deps:** update nextjs monorepo to ^15.1.5 ([#1978](https://github.com/homarr-labs/homarr/issues/1978)) ([e35811c](https://github.com/homarr-labs/homarr/commit/e35811c921aea8c96dca398841ece396d71d4979)) ## 1.0.0 (2025-01-17) ### ⚠ BREAKING CHANGES -* **deps:** update tanstack-query monorepo (#126) +- **deps:** update tanstack-query monorepo (#126) ### Features -* [#1047](https://github.com/homarr-labs/homarr/issues/1047) add overseerr search ([#1411](https://github.com/homarr-labs/homarr/issues/1411)) ([aa50399](https://github.com/homarr-labs/homarr/commit/aa503992af37bc683f934b36faebd31fba9d8720)) -* [#1243](https://github.com/homarr-labs/homarr/issues/1243) add api routes ([#1286](https://github.com/homarr-labs/homarr/issues/1286)) ([d76b4d0](https://github.com/homarr-labs/homarr/commit/d76b4d0ec185b627eee5e000ca16b78899c950a7)) -* [#1254](https://github.com/homarr-labs/homarr/issues/1254) display group owner ([#1406](https://github.com/homarr-labs/homarr/issues/1406)) ([34506b6](https://github.com/homarr-labs/homarr/commit/34506b6339945d3ee8d6afc84b7f1da8ff9153b0)) -* [#1408](https://github.com/homarr-labs/homarr/issues/1408) add local icon repository ([#1413](https://github.com/homarr-labs/homarr/issues/1413)) ([f31ccf2](https://github.com/homarr-labs/homarr/commit/f31ccf2d6aa9eb0e81e8759527195b7754eb7df3)) -* [#1408](https://github.com/homarr-labs/homarr/issues/1408) improve icon picker design ([#1412](https://github.com/homarr-labs/homarr/issues/1412)) ([441cbbe](https://github.com/homarr-labs/homarr/commit/441cbbe71775e37bf19f44ad2ba4065e839fbfa8)) -* [#420](https://github.com/homarr-labs/homarr/issues/420) reimplement icon picker ([#421](https://github.com/homarr-labs/homarr/issues/421)) ([60a35e2](https://github.com/homarr-labs/homarr/commit/60a35e258363e26df68f96290fd9359f577f1498)) -* [#511](https://github.com/homarr-labs/homarr/issues/511) log user logged in ([#1405](https://github.com/homarr-labs/homarr/issues/1405)) ([b294bf6](https://github.com/homarr-labs/homarr/commit/b294bf68cf4eceaf00ba94fb842f75af05a2c50d)) -* add 404 page ([#145](https://github.com/homarr-labs/homarr/issues/145)) ([60dec6e](https://github.com/homarr-labs/homarr/commit/60dec6e3be68a7f14ffae1f527c671e5d90e7f04)) -* add about page ([#388](https://github.com/homarr-labs/homarr/issues/388)) ([42a5a1a](https://github.com/homarr-labs/homarr/commit/42a5a1a56368cc1dadc61f403bd9a3f696716904)) -* add actual user for trpc wss-dev-server ([#261](https://github.com/homarr-labs/homarr/issues/261)) ([058a8c4](https://github.com/homarr-labs/homarr/commit/058a8c4776d2cd73653f9c40525847576e7b0a2b)), closes [#233](https://github.com/homarr-labs/homarr/issues/233) -* add analytics ([#528](https://github.com/homarr-labs/homarr/issues/528)) ([7e64d39](https://github.com/homarr-labs/homarr/commit/7e64d39693438cc52f37c8aab4fb9b04c851e4b9)) -* add api keys ([#991](https://github.com/homarr-labs/homarr/issues/991)) ([b14f82b](https://github.com/homarr-labs/homarr/commit/b14f82b4bb7be6e68ecaa9db0e1957e39f90823b)) -* add app actions ([#322](https://github.com/homarr-labs/homarr/issues/322)) ([8988880](https://github.com/homarr-labs/homarr/commit/89888804393720c10aab9f03f33d54d039d32a2b)) -* add app widget ([#206](https://github.com/homarr-labs/homarr/issues/206)) ([c4ff968](https://github.com/homarr-labs/homarr/commit/c4ff968cbca9250a8b33b5632e9267ecd0a7863b)) -* Add apps crud ([#174](https://github.com/homarr-labs/homarr/issues/174)) ([8d5984c](https://github.com/homarr-labs/homarr/commit/8d5984c58a6ec6ee04cce49d51ab9aee53577bf9)) -* add async suffix eslint rule ([#485](https://github.com/homarr-labs/homarr/issues/485)) ([dcaff1d](https://github.com/homarr-labs/homarr/commit/dcaff1d91c7789dd1003313e73172b605cd420c5)) -* add board ([#15](https://github.com/homarr-labs/homarr/issues/15)) ([9d52087](https://github.com/homarr-labs/homarr/commit/9d520874f4feb71587d365a82a75e2de93720b4e)) -* add board access settings ([#249](https://github.com/homarr-labs/homarr/issues/249)) ([361700b](https://github.com/homarr-labs/homarr/commit/361700b2394bc616607fdaa25bb7847998f3179f)) -* add boards management page ([#55](https://github.com/homarr-labs/homarr/issues/55)) ([5ef79ed](https://github.com/homarr-labs/homarr/commit/5ef79edc1aac1f675d613255a02741da4d836f81)) -* add bookmark widget ([#964](https://github.com/homarr-labs/homarr/issues/964)) ([49c0ebe](https://github.com/homarr-labs/homarr/commit/49c0ebea6dad6f586fc61073f815a928db4b435b)) -* add calendar widget ([#663](https://github.com/homarr-labs/homarr/issues/663)) ([dba97a3](https://github.com/homarr-labs/homarr/commit/dba97a3bd6d4b29c9079c9ee6ec98aa974614add)) -* add change password form ([#199](https://github.com/homarr-labs/homarr/issues/199)) ([beb7def](https://github.com/homarr-labs/homarr/commit/beb7defd32561ca074b48b4aa72631fdb59ddbdc)) -* add collapse to login screen with cli command for password reset ([#963](https://github.com/homarr-labs/homarr/issues/963)) ([bc886d9](https://github.com/homarr-labs/homarr/commit/bc886d94767cd2898529c0c17ff669bad4a19fad)) -* add colorscheme to user in db ([#987](https://github.com/homarr-labs/homarr/issues/987)) ([b080e0d](https://github.com/homarr-labs/homarr/commit/b080e0de714235756affc4c68854ec6a01269836)) -* add column count and is public options to board creation modal ([#930](https://github.com/homarr-labs/homarr/issues/930)) ([fcb72e6](https://github.com/homarr-labs/homarr/commit/fcb72e67167d3549f4f5b35706cabb0ca155eb8e)) -* add context specific search and actions ([#1570](https://github.com/homarr-labs/homarr/issues/1570)) ([c840ff8](https://github.com/homarr-labs/homarr/commit/c840ff85bcda7b45703e25204c93f1a9531d52dd)) -* add contributors to about page ([#445](https://github.com/homarr-labs/homarr/issues/445)) ([3cda718](https://github.com/homarr-labs/homarr/commit/3cda718474dc5641d4c2c8680ec5369ad5b85cc8)) -* add crawling settings ([#959](https://github.com/homarr-labs/homarr/issues/959)) ([19cd41a](https://github.com/homarr-labs/homarr/commit/19cd41a8e52585963ffe210186daadb1513b4dca)) -* add create board modal ([#131](https://github.com/homarr-labs/homarr/issues/131)) ([e3e38e7](https://github.com/homarr-labs/homarr/commit/e3e38e7f4496989a761657d9e79c317e26738c46)) -* add credentials authentication ([#1](https://github.com/homarr-labs/homarr/issues/1)) ([3cedb7f](https://github.com/homarr-labs/homarr/commit/3cedb7fba5aade5e176002453300779d6348a0b4)) -* add crud for integrations ([#11](https://github.com/homarr-labs/homarr/issues/11)) ([367beb6](https://github.com/homarr-labs/homarr/commit/367beb6759b54caaa8d3a2c723d5202626811976)) -* add custom css for board and custom classes in advanced options for items ([#512](https://github.com/homarr-labs/homarr/issues/512)) ([26b1c4a](https://github.com/homarr-labs/homarr/commit/26b1c4a3199c59e1b5eb3529da74180a455fa09f)) -* add dashdot integration ([#1541](https://github.com/homarr-labs/homarr/issues/1541)) ([84e5002](https://github.com/homarr-labs/homarr/commit/84e500279d5cc2db696365da46cf405c7a9fd06f)) -* add docker actions ([#752](https://github.com/homarr-labs/homarr/issues/752)) ([95101e3](https://github.com/homarr-labs/homarr/commit/95101e34ed0cc5134a7cb15fd0ab56c5f4b5a14e)) -* add docker container table ([#520](https://github.com/homarr-labs/homarr/issues/520)) ([dd2937a](https://github.com/homarr-labs/homarr/commit/dd2937a0d6106ce241cc5d8f25fc581c717604f1)) -* add duplication action for items ([#926](https://github.com/homarr-labs/homarr/issues/926)) ([81946e5](https://github.com/homarr-labs/homarr/commit/81946e50a9f643826f6c75ce2de54f92b74819bc)) -* add dynamic breadcrumb ([#706](https://github.com/homarr-labs/homarr/issues/706)) ([4e1bbf2](https://github.com/homarr-labs/homarr/commit/4e1bbf2ae64e951c62bb3a86787cecc1e2d22da9)) -* add dynamic section ([#842](https://github.com/homarr-labs/homarr/issues/842)) ([9ce172e](https://github.com/homarr-labs/homarr/commit/9ce172e78a142be71cfae8fdb581987fec9b78f0)) -* add edit user page ([#173](https://github.com/homarr-labs/homarr/issues/173)) ([41b99f1](https://github.com/homarr-labs/homarr/commit/41b99f191c6559bca49c7c3c3a13553c7698b781)) -* add env variable to disable db migrations on startup ([#1179](https://github.com/homarr-labs/homarr/issues/1179)) ([a30be7b](https://github.com/homarr-labs/homarr/commit/a30be7bc1e3beea0171c81ce9ec406ecc3c65e74)) -* add error page for docker tools page ([#1655](https://github.com/homarr-labs/homarr/issues/1655)) ([6031191](https://github.com/homarr-labs/homarr/commit/60311918ce31ec9ae84cadbc450fc5732f173536)) -* Add ErrorDisplay component ([245c2f4](https://github.com/homarr-labs/homarr/commit/245c2f483c36e197da4e8ff2a2fe1d58e2916786)) -* add everyone group ([#1322](https://github.com/homarr-labs/homarr/issues/1322)) ([2f1c800](https://github.com/homarr-labs/homarr/commit/2f1c8008447175697dfd3a814316665ed039713f)) -* add first day of week user setting ([#1249](https://github.com/homarr-labs/homarr/issues/1249)) ([ab1744c](https://github.com/homarr-labs/homarr/commit/ab1744ce20fd0df8c21361e3df0d65c9ab63c014)) -* add healthchecks ([#1187](https://github.com/homarr-labs/homarr/issues/1187)) ([08c6303](https://github.com/homarr-labs/homarr/commit/08c6303fa64a45580ef9ae41a7b1c0ea13266ecd)) -* add hero banner ([#463](https://github.com/homarr-labs/homarr/issues/463)) ([87fe03d](https://github.com/homarr-labs/homarr/commit/87fe03dd009be451981f99910d8f88129ecde9d1)) -* add home board for users ([#505](https://github.com/homarr-labs/homarr/issues/505)) ([7e339c0](https://github.com/homarr-labs/homarr/commit/7e339c09c86cafef56ea3bf915c8665b9e6e0c95)) -* add homeassistant integration ([#578](https://github.com/homarr-labs/homarr/issues/578)) ([2e782ae](https://github.com/homarr-labs/homarr/commit/2e782ae4428cc27024c29d58530fde86a65c87bd)) -* add hotkeys ([#986](https://github.com/homarr-labs/homarr/issues/986)) ([7521ef0](https://github.com/homarr-labs/homarr/commit/7521ef0519033fc4ddd51f03f46281417aa05b76)) -* add i18n translated form errors ([#509](https://github.com/homarr-labs/homarr/issues/509)) ([dfed804](https://github.com/homarr-labs/homarr/commit/dfed804f65003f715ed0bf699de39b4c8c63d63b)) -* add iframe widget ([#291](https://github.com/homarr-labs/homarr/issues/291)) ([8f48971](https://github.com/homarr-labs/homarr/commit/8f4897186c827f327d0823b619cd3ca4df859229)) -* add import for config files from oldmarr ([#1019](https://github.com/homarr-labs/homarr/issues/1019)) ([5404ceb](https://github.com/homarr-labs/homarr/commit/5404cebf5b04c5a93249c5674607640f70b798d3)) -* add improved search ([#1051](https://github.com/homarr-labs/homarr/issues/1051)) ([ce1ef3c](https://github.com/homarr-labs/homarr/commit/ce1ef3cbe761cbed9843eb4881758a30ac934fc1)) -* add integration access check to middlewares ([#756](https://github.com/homarr-labs/homarr/issues/756)) ([46943b1](https://github.com/homarr-labs/homarr/commit/46943b147ae08be3d79cce73243eaca4cba2959f)) -* add integration access settings ([#725](https://github.com/homarr-labs/homarr/issues/725)) ([408cdeb](https://github.com/homarr-labs/homarr/commit/408cdeb5c32735a9f78343818bb6f91eb1c8daee)) -* add jellyfin integration ([#672](https://github.com/homarr-labs/homarr/issues/672)) ([bb8640b](https://github.com/homarr-labs/homarr/commit/bb8640b1621f6a3809465c0187f99a8bcae473ed)), closes [#655](https://github.com/homarr-labs/homarr/issues/655) -* add job on start option for icons updater ([#442](https://github.com/homarr-labs/homarr/issues/442)) ([7b31684](https://github.com/homarr-labs/homarr/commit/7b31684c84aeaade6f370337821bea2d2bb9efee)) -* add ldap and oidc sso ([#500](https://github.com/homarr-labs/homarr/issues/500)) ([dc75ffb](https://github.com/homarr-labs/homarr/commit/dc75ffb9e65a6ea9479fae36558a5915578a83a6)) -* add lidarr integration ([#1433](https://github.com/homarr-labs/homarr/issues/1433)) ([ed74604](https://github.com/homarr-labs/homarr/commit/ed74604a547528a69d0572fe45e6482524ef1837)) -* add login and logout ([#436](https://github.com/homarr-labs/homarr/issues/436)) ([51aaab2](https://github.com/homarr-labs/homarr/commit/51aaab2f23f6a5a20fb5fc42bf8f9f79e017643e)) -* add logout redirect url ([#954](https://github.com/homarr-labs/homarr/issues/954)) ([13e0996](https://github.com/homarr-labs/homarr/commit/13e09968d928bc5e255dd3f93eca3d3e42f1b144)) -* add management pages ([#12](https://github.com/homarr-labs/homarr/issues/12)) ([2809e01](https://github.com/homarr-labs/homarr/commit/2809e01b03bf939aaecdce8007ece9322688061a)) -* add manifest ([#1309](https://github.com/homarr-labs/homarr/issues/1309)) ([727f104](https://github.com/homarr-labs/homarr/commit/727f10448f55d7dc7b9d4a227b34d7351816918d)) -* add media management ([#1337](https://github.com/homarr-labs/homarr/issues/1337)) ([db198c6](https://github.com/homarr-labs/homarr/commit/db198c6dab64b1dd299e6ed15a29ecb42bc409b6)) -* add media requests widget ([#774](https://github.com/homarr-labs/homarr/issues/774)) ([acbb834](https://github.com/homarr-labs/homarr/commit/acbb834889ae5a9161e609bff6a20d1e1a6258f3)) -* add member sync between groups of ldap and homarr ([#1149](https://github.com/homarr-labs/homarr/issues/1149)) ([6133309](https://github.com/homarr-labs/homarr/commit/61333094dff53cb4dea79f8dfffd3f9d6ee0ce1b)) -* add million-lint ([#607](https://github.com/homarr-labs/homarr/issues/607)) ([94984ac](https://github.com/homarr-labs/homarr/commit/94984ac11ba158563e8653d42d7c1f0b79bff0ea)) -* add more group permissions ([#1453](https://github.com/homarr-labs/homarr/issues/1453)) ([0ee343b](https://github.com/homarr-labs/homarr/commit/0ee343b99ecbb44140df8c3c59971108f13b3dce)) -* add mysql support ([#212](https://github.com/homarr-labs/homarr/issues/212)) ([24ec13c](https://github.com/homarr-labs/homarr/commit/24ec13c2ab76f73d4e18f1f4cc9ea369439b105d)) -* add nestjs app ([#172](https://github.com/homarr-labs/homarr/issues/172)) ([9440d04](https://github.com/homarr-labs/homarr/commit/9440d04261f6597c021fbb7a4eb6ee441bc8d41c)) -* add nestjs replacement, remove nestjs ([#285](https://github.com/homarr-labs/homarr/issues/285)) ([1936596](https://github.com/homarr-labs/homarr/commit/1936596c048552f1730a02b1e5c03aed6f9d0fb6)) -* add next-international translations ([#2](https://github.com/homarr-labs/homarr/issues/2)) ([a082f70](https://github.com/homarr-labs/homarr/commit/a082f704704bea127014216baeb914e9c8fe09f6)) -* add nginx proxy ([#1073](https://github.com/homarr-labs/homarr/issues/1073)) ([cd46198](https://github.com/homarr-labs/homarr/commit/cd4619845b83dd7d5bcd039b7ddeaf023eb42a84)) -* add not found pages for boards ([#1671](https://github.com/homarr-labs/homarr/issues/1671)) ([8e4d67c](https://github.com/homarr-labs/homarr/commit/8e4d67c3eb49f7ccbd7e87efa75dfe1e4665bf3f)) -* add notebook widget ([#294](https://github.com/homarr-labs/homarr/issues/294)) ([6b1879c](https://github.com/homarr-labs/homarr/commit/6b1879cbb1d5129b8960a5dec9880f4951c0222e)) -* add notes for creation of apps and integrations in widget edit modal ([#1297](https://github.com/homarr-labs/homarr/issues/1297)) ([e99fd64](https://github.com/homarr-labs/homarr/commit/e99fd648822f61b4ad7b3793875df69348a3e0c8)) -* add onboarding with oldmarr import ([#1606](https://github.com/homarr-labs/homarr/issues/1606)) ([6de74d9](https://github.com/homarr-labs/homarr/commit/6de74d952560275faf546c2720f71dddbe1fe399)) -* add password input field ([#160](https://github.com/homarr-labs/homarr/issues/160)) ([c6c8778](https://github.com/homarr-labs/homarr/commit/c6c87783979b1053fd6068920c412c20547bab69)) -* add password requirements ([#988](https://github.com/homarr-labs/homarr/issues/988)) ([2d155fa](https://github.com/homarr-labs/homarr/commit/2d155fa0c48d63fe376d52e2c5403c8ec1130db6)) -* add permission section to create user page ([#1524](https://github.com/homarr-labs/homarr/issues/1524)) ([1fc48f9](https://github.com/homarr-labs/homarr/commit/1fc48f9db05935bc3298f9251b564ed539c48312)) -* add pi hole summary integration ([#521](https://github.com/homarr-labs/homarr/issues/521)) ([d57b771](https://github.com/homarr-labs/homarr/commit/d57b771a177511b878c0eada1d3002b52acdc6fb)) -* add prettier packagejson plugin ([#1577](https://github.com/homarr-labs/homarr/issues/1577)) ([a53a2cd](https://github.com/homarr-labs/homarr/commit/a53a2cdd34a46d6442c030192b449a855b69fca3)) -* add preview to icon picker ([#914](https://github.com/homarr-labs/homarr/issues/914)) ([ca1ecdf](https://github.com/homarr-labs/homarr/commit/ca1ecdf84811c58e4dff372fab42e64ab1791f06)) -* Add quick filters for integration and status + minor UI improvement from feedback ([#1641](https://github.com/homarr-labs/homarr/issues/1641)) ([b6dad43](https://github.com/homarr-labs/homarr/commit/b6dad438c2f44aa8d7a740c1a22c9d4c39edf43e)) -* add readarr integration ([#1446](https://github.com/homarr-labs/homarr/issues/1446)) ([563c5d8](https://github.com/homarr-labs/homarr/commit/563c5d8f3c0dc5b7dcedadf7fa22c690c131a5c8)) -* add real time logger page ([#276](https://github.com/homarr-labs/homarr/issues/276)) ([c82915c](https://github.com/homarr-labs/homarr/commit/c82915c6dcaef8edffc67b82c97ba87e4597852a)) -* add redis ([#242](https://github.com/homarr-labs/homarr/issues/242)) ([1825e56](https://github.com/homarr-labs/homarr/commit/1825e563493a443039a5d0a8fa6d0b7ce3ef08b0)) -* add redis cache channel ([e05deef](https://github.com/homarr-labs/homarr/commit/e05deef6e28c7bbddda154d3d23f5325e85f3571)) -* add refresh button to docker containers table ([#913](https://github.com/homarr-labs/homarr/issues/913)) ([b53a2b6](https://github.com/homarr-labs/homarr/commit/b53a2b6b78f73f86ecff24cbf40b91e0f4ca55b0)) -* add request media ([#1811](https://github.com/homarr-labs/homarr/issues/1811)) ([91e1cef](https://github.com/homarr-labs/homarr/commit/91e1cef611a47d57b42c91c0c6d49fcf2e6a10bb)) -* add rss widget ([#760](https://github.com/homarr-labs/homarr/issues/760)) ([15d9327](https://github.com/homarr-labs/homarr/commit/15d9327d465d1c522d9182027adaf27727a95b4e)) -* add server settings ([#487](https://github.com/homarr-labs/homarr/issues/487)) ([9191617](https://github.com/homarr-labs/homarr/commit/919161798ee6c5c2070632920c9dfc3699ab1f93)) -* add server settings for default board, default color scheme and default locale ([#1373](https://github.com/homarr-labs/homarr/issues/1373)) ([326b769](https://github.com/homarr-labs/homarr/commit/326b769c23f6619c7d6edd0cecedccdf6d641dde)) -* add session expiry ([#951](https://github.com/homarr-labs/homarr/issues/951)) ([6dafbaa](https://github.com/homarr-labs/homarr/commit/6dafbaae48f17ff519723fe33fc89034b10e8f1b)) -* add simple app ping ([#580](https://github.com/homarr-labs/homarr/issues/580)) ([d7ecdf5](https://github.com/homarr-labs/homarr/commit/d7ecdf55672e05e90424bed964644091b1af6499)) -* Add Simple-Icons and Selfh.st collections ([#1118](https://github.com/homarr-labs/homarr/issues/1118)) ([9fb6e67](https://github.com/homarr-labs/homarr/commit/9fb6e67ed33264f877ba819240e00d8fc8dbb984)) -* add support for all languages from old homarr ([#1394](https://github.com/homarr-labs/homarr/issues/1394)) ([0ff7c89](https://github.com/homarr-labs/homarr/commit/0ff7c8903b3c23ee286a0e3d68287927e03ff3e0)) -* add support for app url variables ([#915](https://github.com/homarr-labs/homarr/issues/915)) ([c4c4d41](https://github.com/homarr-labs/homarr/commit/c4c4d41e4d7c37d498ba25c91a734a9d7f66f233)) -* add support for multiple integration kind options ([#127](https://github.com/homarr-labs/homarr/issues/127)) ([f1aa422](https://github.com/homarr-labs/homarr/commit/f1aa42261446bcc4bd16b47ed0c1d5cd279a2e48)) -* add support for should hide option i widget edit modal ([#78](https://github.com/homarr-labs/homarr/issues/78)) ([16442bc](https://github.com/homarr-labs/homarr/commit/16442bc379c1d418080947fbd86a4bb14639e90e)) -* add tasks page ([#692](https://github.com/homarr-labs/homarr/issues/692)) ([08d571a](https://github.com/homarr-labs/homarr/commit/08d571ad74c0c97313664b31bf2d1ce83d91629b)) -* add tdarr integration ([#1657](https://github.com/homarr-labs/homarr/issues/1657)) ([032509e](https://github.com/homarr-labs/homarr/commit/032509e4623d7bab3a000a308cb21fc487c45487)) -* add trpc websocket ([#205](https://github.com/homarr-labs/homarr/issues/205)) ([4f375cb](https://github.com/homarr-labs/homarr/commit/4f375cbe6d1b82322e0e8eaeea9db60be083c84e)) -* add undici fetch interceptor ([#687](https://github.com/homarr-labs/homarr/issues/687)) ([508369c](https://github.com/homarr-labs/homarr/commit/508369cb0bb61dadbc2c0b06f03e08581bc7d8ae)) -* add update indicator ([#1626](https://github.com/homarr-labs/homarr/issues/1626)) ([dd9d8b5](https://github.com/homarr-labs/homarr/commit/dd9d8b52610aefe4dbf19f20117ea51264525bcb)) -* add user avatar menu ([#80](https://github.com/homarr-labs/homarr/issues/80)) ([08fa338](https://github.com/homarr-labs/homarr/commit/08fa338abbdff3bb3f7cfc96bc328ecb4a49c584)) -* add user groups ([#376](https://github.com/homarr-labs/homarr/issues/376)) ([036925b](https://github.com/homarr-labs/homarr/commit/036925bf78ec50afe8455efdc270ee4e503a0e03)) -* add user invite management ([#338](https://github.com/homarr-labs/homarr/issues/338)) ([621f6c8](https://github.com/homarr-labs/homarr/commit/621f6c81ae8689f6efc9ac141e8bcbf7fe35eb81)) -* add user invite registration ([#477](https://github.com/homarr-labs/homarr/issues/477)) ([94af21a](https://github.com/homarr-labs/homarr/commit/94af21abbfb36b1804d86d89155af720055de588)) -* add user management ([#134](https://github.com/homarr-labs/homarr/issues/134)) ([b4749e7](https://github.com/homarr-labs/homarr/commit/b4749e7091649815f2918b81d3c79b0216ece5d2)) -* add user setting for home board ([#956](https://github.com/homarr-labs/homarr/issues/956)) ([f327837](https://github.com/homarr-labs/homarr/commit/f327837d82149c563b07e1d42850356930f20e50)) -* add username validation to prevent duplicate ([781247d](https://github.com/homarr-labs/homarr/commit/781247de5141f4b0532801194ac904763db7da39)) -* add validation to widget edit modal inputs ([#879](https://github.com/homarr-labs/homarr/issues/879)) ([9cb6200](https://github.com/homarr-labs/homarr/commit/9cb6200895a0d44e87f59cdaf19432fb8312f8bf)) -* add video widget ([#287](https://github.com/homarr-labs/homarr/issues/287)) ([82e9887](https://github.com/homarr-labs/homarr/commit/82e9887f36a370594f258d8e6f60cda57593b2b7)) -* Add VOLUME instruction to `Dockerfile` ([#527](https://github.com/homarr-labs/homarr/issues/527)) ([5a9e8ed](https://github.com/homarr-labs/homarr/commit/5a9e8edf70b91933afbd0b4564fda3ab25fdbdd5)) -* add weather widget ([#286](https://github.com/homarr-labs/homarr/issues/286)) ([80d2d48](https://github.com/homarr-labs/homarr/commit/80d2d485b862f6c95fa1eb81ff96cb45d9b147b1)) -* add web search engines ([#290](https://github.com/homarr-labs/homarr/issues/290)) ([35ca732](https://github.com/homarr-labs/homarr/commit/35ca732744752b54b6318e17319d9b8ac950fda8)) -* Add widget integration option ([#14](https://github.com/homarr-labs/homarr/issues/14)) ([1740450](https://github.com/homarr-labs/homarr/commit/1740450648fc5c3915cd71b493a8523305f33703)) -* add widget preview pages ([#9](https://github.com/homarr-labs/homarr/issues/9)) ([7828975](https://github.com/homarr-labs/homarr/commit/782897527f489889f8b6f46ec577a298a0714953)) -* add widget server loader ([#16](https://github.com/homarr-labs/homarr/issues/16)) ([975f912](https://github.com/homarr-labs/homarr/commit/975f9123dd4d509e2b777d8af8d74f38ebc59aad)) -* add winston logger ([#143](https://github.com/homarr-labs/homarr/issues/143)) ([3d50f81](https://github.com/homarr-labs/homarr/commit/3d50f8165f0d27e9fe7b517cffa5d1950eca7ab8)) -* add winston logger ([#77](https://github.com/homarr-labs/homarr/issues/77)) ([34875df](https://github.com/homarr-labs/homarr/commit/34875dfd154f9e9e3a8ce5c5bc4d14e757b4b14d)) -* AdGuard Home integration ([#929](https://github.com/homarr-labs/homarr/issues/929)) ([4471260](https://github.com/homarr-labs/homarr/commit/44712608b7e0dfcbaf5d36c40792b04f2edec8d7)) -* allow no secrets for integration ([#856](https://github.com/homarr-labs/homarr/issues/856)) ([508fcb9](https://github.com/homarr-labs/homarr/commit/508fcb9861d56f84d027fc8c456d8841486fdf72)) -* App tile scalability ([#645](https://github.com/homarr-labs/homarr/issues/645)) ([28927cf](https://github.com/homarr-labs/homarr/commit/28927cfa2802c6335487638b5ce4d7133f2e4423)) -* **app:** add search and pagination ([#1860](https://github.com/homarr-labs/homarr/issues/1860)) ([ccb19e0](https://github.com/homarr-labs/homarr/commit/ccb19e06c192029a81c851900982d52b045185a6)) -* approve before automerge ([3df6dcf](https://github.com/homarr-labs/homarr/commit/3df6dcfbe7b1b499dbd6ddf536ae509286afe21b)) -* **apps:** remove url variables ([#1771](https://github.com/homarr-labs/homarr/issues/1771)) ([8df398c](https://github.com/homarr-labs/homarr/commit/8df398c3c706369f6990719603a357c161606f81)) -* **auth:** add env variable for oidc-name-attribute-overwrite ([#1850](https://github.com/homarr-labs/homarr/issues/1850)) ([c349bf8](https://github.com/homarr-labs/homarr/commit/c349bf83714739ca1bc6057f2d43c9e3964fa205)) -* board access group permissions ([#422](https://github.com/homarr-labs/homarr/issues/422)) ([b1e065f](https://github.com/homarr-labs/homarr/commit/b1e065f1da0fc0c4992d0de8f6ed87a9adef1d24)) -* board settings ([#137](https://github.com/homarr-labs/homarr/issues/137)) ([bb02163](https://github.com/homarr-labs/homarr/commit/bb02163e25e64c13e4f36df21fa90ff33483cac6)) -* **board:** add board duplication ([#1856](https://github.com/homarr-labs/homarr/issues/1856)) ([49d10f7](https://github.com/homarr-labs/homarr/commit/49d10f7ad0f58b577ed72c2a46a062af263ff225)) -* **board:** add mobile home board ([#1910](https://github.com/homarr-labs/homarr/issues/1910)) ([e01d74f](https://github.com/homarr-labs/homarr/commit/e01d74f4f89aee9a122b660e6303c356871c6ebb)) -* cannot change username to the current one ([0ae8a75](https://github.com/homarr-labs/homarr/commit/0ae8a75a5ef38c85ca869cadbed9542c2993a3df)) -* **certificates:** handle self signed certificates ([#1951](https://github.com/homarr-labs/homarr/issues/1951)) ([8c36c3e](https://github.com/homarr-labs/homarr/commit/8c36c3e36b6f8283420ceee56922a002f6155a91)) -* change visibility in item options based on selected integration kinds ([#949](https://github.com/homarr-labs/homarr/issues/949)) ([25452ff](https://github.com/homarr-labs/homarr/commit/25452ff063383397af6b5e41984657f9eb68e801)) -* Clock widget and dayjs locale standard ([#79](https://github.com/homarr-labs/homarr/issues/79)) ([edcba9c](https://github.com/homarr-labs/homarr/commit/edcba9ceb62880196dac902e0a91b1dbdd0c45f1)) -* Clock widget scalability ([#644](https://github.com/homarr-labs/homarr/issues/644)) ([bac09d8](https://github.com/homarr-labs/homarr/commit/bac09d8be59eea7f59713fead9e5310b34cfa8aa)) -* date format on weather widget ([#1443](https://github.com/homarr-labs/homarr/issues/1443)) ([c51c5db](https://github.com/homarr-labs/homarr/commit/c51c5db3d73db8656f4d55921b5b664b8c27134e)) -* DNS Hole summary Scalability ([#646](https://github.com/homarr-labs/homarr/issues/646)) ([0710425](https://github.com/homarr-labs/homarr/commit/0710425e787aec1bcd90d3ba8dae71c8c97959ae)) -* dnshole controls widget ([#867](https://github.com/homarr-labs/homarr/issues/867)) ([65c6854](https://github.com/homarr-labs/homarr/commit/65c6854e4426350b196b1888c952d961c03c2b23)) -* DnsHole feature parity with oldmarr ([#1145](https://github.com/homarr-labs/homarr/issues/1145)) ([36915d9](https://github.com/homarr-labs/homarr/commit/36915d95fe45964f0291fb8c9cbc46ffecdf2681)) -* docker add to homarr ([#1825](https://github.com/homarr-labs/homarr/issues/1825)) ([64cc078](https://github.com/homarr-labs/homarr/commit/64cc078b095e64edca17e07a09a4f5c340665f84)) -* **docker:** add encryption key generation for integration secrets ([#1202](https://github.com/homarr-labs/homarr/issues/1202)) ([52b45d8](https://github.com/homarr-labs/homarr/commit/52b45d835db99b5e6b950a2adfb6e21665c8ccff)) -* **docker:** add support for pgid and puid env variables ([#1759](https://github.com/homarr-labs/homarr/issues/1759)) ([aeb681a](https://github.com/homarr-labs/homarr/commit/aeb681a85839e31284e8f1566adc4191a68ea385)) -* downloads widget ([#844](https://github.com/homarr-labs/homarr/issues/844)) ([2535192](https://github.com/homarr-labs/homarr/commit/2535192b2cfc1c4acc42b31a59f90989236ea2c2)) -* **icons:** add upload button to icon picker ([#1859](https://github.com/homarr-labs/homarr/issues/1859)) ([1e9098d](https://github.com/homarr-labs/homarr/commit/1e9098d052801fe7d53ce15e9f22ed89de04d644)) -* implement board access control ([#349](https://github.com/homarr-labs/homarr/issues/349)) ([7ab9dc2](https://github.com/homarr-labs/homarr/commit/7ab9dc250184947b1f1a071a0cb7bce63ce95c96)) -* implement openapi ([#482](https://github.com/homarr-labs/homarr/issues/482)) ([f0cd45c](https://github.com/homarr-labs/homarr/commit/f0cd45c81385720f68693f8d3481466fc147cd61)) -* improve metadata ([#1308](https://github.com/homarr-labs/homarr/issues/1308)) ([0df7cb5](https://github.com/homarr-labs/homarr/commit/0df7cb5c25441700616d268fac5e64068542d080)) -* improve user init setup ([#643](https://github.com/homarr-labs/homarr/issues/643)) ([3a3a825](https://github.com/homarr-labs/homarr/commit/3a3a8251bdb65f07e109af83b639efabbd1404a5)) -* indexer manager widget ([#1057](https://github.com/homarr-labs/homarr/issues/1057)) ([08d4472](https://github.com/homarr-labs/homarr/commit/08d4472d8b612e11a8b4e5f09952a788e7bcdf8a)), closes [#1055](https://github.com/homarr-labs/homarr/issues/1055) -* integrate crowdin [#1402](https://github.com/homarr-labs/homarr/issues/1402) ([#1599](https://github.com/homarr-labs/homarr/issues/1599)) ([096f034](https://github.com/homarr-labs/homarr/commit/096f03432cfca75bc2740f65d7d6cb6fed4c4eaa)) -* **integration:** add search engine creation ([#1816](https://github.com/homarr-labs/homarr/issues/1816)) ([f507645](https://github.com/homarr-labs/homarr/commit/f5076454cd644a99439b697f24bb0b1f871b2205)) -* **items:** add search to selection ([#1887](https://github.com/homarr-labs/homarr/issues/1887)) ([62da953](https://github.com/homarr-labs/homarr/commit/62da953356ff76694ddc50980a2b879a01bcbdd6)) -* language selector ([#484](https://github.com/homarr-labs/homarr/issues/484)) ([31c2694](https://github.com/homarr-labs/homarr/commit/31c26941857b4eac8e69ccb68bc4c00cd1073806)) -* log elapsed cron job time ([#742](https://github.com/homarr-labs/homarr/issues/742)) ([1cf119c](https://github.com/homarr-labs/homarr/commit/1cf119c76827c22dcac9f2417b6f65b64cd43e26)) -* log sql queries ([#444](https://github.com/homarr-labs/homarr/issues/444)) ([dc0184a](https://github.com/homarr-labs/homarr/commit/dc0184af071446e299407a2b6347852d52bdd17f)) -* make notifications optional ([e438bac](https://github.com/homarr-labs/homarr/commit/e438bac0f5dd7d487aae054802b5255612749252)) -* OMV integration & health monitoring widget ([#1142](https://github.com/homarr-labs/homarr/issues/1142)) ([0f56dc1](https://github.com/homarr-labs/homarr/commit/0f56dc1ecd03d6d6fe2305de85650f2b105e2169)) -* plex integration ([#1342](https://github.com/homarr-labs/homarr/issues/1342)) ([cf9b058](https://github.com/homarr-labs/homarr/commit/cf9b0581a486b3d6b1207e8a612c9fe4665c6d49)) -* populate integration name for new integrations automatically ([#1296](https://github.com/homarr-labs/homarr/issues/1296)) ([a0cc31d](https://github.com/homarr-labs/homarr/commit/a0cc31da700defc9a4f5c4210962571cbfe2b362)) -* pretty-print-error to print errors in console ([#1596](https://github.com/homarr-labs/homarr/issues/1596)) ([71f4f8c](https://github.com/homarr-labs/homarr/commit/71f4f8c4c85eb70533bed3ed86b6655e99cc2bb7)) -* Prowlarr integration ([#965](https://github.com/homarr-labs/homarr/issues/965)) ([6ff3640](https://github.com/homarr-labs/homarr/commit/6ff36405ba26ab27387094182885a99bf1ecb30d)) -* radarr integration ([#1053](https://github.com/homarr-labs/homarr/issues/1053)) ([e88854c](https://github.com/homarr-labs/homarr/commit/e88854c0e5b14c356f520c616b369d118ea3ddf7)) -* radarr release type to calendar widget ([#1256](https://github.com/homarr-labs/homarr/issues/1256)) ([98b62a9](https://github.com/homarr-labs/homarr/commit/98b62a9f919ef18f891e115f3dec31c7f1e49a44)) -* read all packages on about page ([#391](https://github.com/homarr-labs/homarr/issues/391)) ([16e42d6](https://github.com/homarr-labs/homarr/commit/16e42d654dbf8cf54757e49cc1c73ea1fa69d8a7)) -* remove import beta badge ([#1829](https://github.com/homarr-labs/homarr/issues/1829)) ([6305c74](https://github.com/homarr-labs/homarr/commit/6305c74f90d943722c915ffbf54b5fd7e68a7dca)) -* remove manual flag to pushing image ([9013d5d](https://github.com/homarr-labs/homarr/commit/9013d5dbf01a7c60e5a427cfcebea7a332deb5d2)) -* replace home page with home board ([#1530](https://github.com/homarr-labs/homarr/issues/1530)) ([9fb14df](https://github.com/homarr-labs/homarr/commit/9fb14df2103db720cb6e5333b8afed5c1e730de6)) -* reset password cli ([#903](https://github.com/homarr-labs/homarr/issues/903)) ([7fa5e70](https://github.com/homarr-labs/homarr/commit/7fa5e70d5b5e4e6cded08f343f5db0f42e8be324)) -* restrict non credential provider interactions ([#871](https://github.com/homarr-labs/homarr/issues/871)) ([6f7327b](https://github.com/homarr-labs/homarr/commit/6f7327b77478c567b478c2c61b0a09400e426678)) -* RTL option to RSS widget ([#1247](https://github.com/homarr-labs/homarr/issues/1247)) ([9a7e845](https://github.com/homarr-labs/homarr/commit/9a7e8450106aa5f61db9e3360221bd8ac168daf6)) -* show creator on board page ([#440](https://github.com/homarr-labs/homarr/issues/440)) ([5d30301](https://github.com/homarr-labs/homarr/commit/5d30301b95a8b1e6129d97a6a66cbfb417407caf)) -* **spotlight:** add default search engine ([#1807](https://github.com/homarr-labs/homarr/issues/1807)) ([65befa2](https://github.com/homarr-labs/homarr/commit/65befa22ba91c36a3734ac6dc027175dc9fca892)) -* **spotlight:** add support for custom search-engines ([#1200](https://github.com/homarr-labs/homarr/issues/1200)) ([4c9471e](https://github.com/homarr-labs/homarr/commit/4c9471e6086c354ec4383f22a7b8020c5aa8974d)) -* support arm64 ([#1022](https://github.com/homarr-labs/homarr/issues/1022)) ([0c65727](https://github.com/homarr-labs/homarr/commit/0c657276a53aa77d6cc37435e61907574320e324)) -* test integration connection ([#669](https://github.com/homarr-labs/homarr/issues/669)) ([f92aeba](https://github.com/homarr-labs/homarr/commit/f92aeba403ec22e2a3219550b51191ae82bac000)) -* use consistent line ending ([#1407](https://github.com/homarr-labs/homarr/issues/1407)) ([0c067c4](https://github.com/homarr-labs/homarr/commit/0c067c4e6f36d741edf7c88de847585fefd54b64)) -* use different tag name ([ff847f0](https://github.com/homarr-labs/homarr/commit/ff847f091054c38015f45dfd1ee88e06116f53ad)) -* use gh app for merging ([82caec4](https://github.com/homarr-labs/homarr/commit/82caec402a4f33d0217b9d5e02140d4857dbb0ce)) -* use password input ([#163](https://github.com/homarr-labs/homarr/issues/163)) ([2a83df3](https://github.com/homarr-labs/homarr/commit/2a83df348555de884a9419ecf6e7ecdc76272deb)) -* user preferences ([#470](https://github.com/homarr-labs/homarr/issues/470)) ([db01301](https://github.com/homarr-labs/homarr/commit/db013018453ba6d67a229d5b9852e85e61a6760d)) -* user setting ping icons ([#1277](https://github.com/homarr-labs/homarr/issues/1277)) ([3486876](https://github.com/homarr-labs/homarr/commit/348687670d18062254e8089572f824f33a6f0894)) -* weather widget scalable ([#574](https://github.com/homarr-labs/homarr/issues/574)) ([cfd8b32](https://github.com/homarr-labs/homarr/commit/cfd8b328b40352c4f517853b6f019042ddf57549)) -* **widget:** add minecraft server status widget ([#1801](https://github.com/homarr-labs/homarr/issues/1801)) ([0ebf4bc](https://github.com/homarr-labs/homarr/commit/0ebf4bc55e62caf5917340496abb350d564df255)) -* **widget:** add proxmox integration ([#1969](https://github.com/homarr-labs/homarr/issues/1969)) ([3ed46ae](https://github.com/homarr-labs/homarr/commit/3ed46aecbd0b41b6d906d70725991224a23f30cf)) +- [#1047](https://github.com/homarr-labs/homarr/issues/1047) add overseerr search ([#1411](https://github.com/homarr-labs/homarr/issues/1411)) ([aa50399](https://github.com/homarr-labs/homarr/commit/aa503992af37bc683f934b36faebd31fba9d8720)) +- [#1243](https://github.com/homarr-labs/homarr/issues/1243) add api routes ([#1286](https://github.com/homarr-labs/homarr/issues/1286)) ([d76b4d0](https://github.com/homarr-labs/homarr/commit/d76b4d0ec185b627eee5e000ca16b78899c950a7)) +- [#1254](https://github.com/homarr-labs/homarr/issues/1254) display group owner ([#1406](https://github.com/homarr-labs/homarr/issues/1406)) ([34506b6](https://github.com/homarr-labs/homarr/commit/34506b6339945d3ee8d6afc84b7f1da8ff9153b0)) +- [#1408](https://github.com/homarr-labs/homarr/issues/1408) add local icon repository ([#1413](https://github.com/homarr-labs/homarr/issues/1413)) ([f31ccf2](https://github.com/homarr-labs/homarr/commit/f31ccf2d6aa9eb0e81e8759527195b7754eb7df3)) +- [#1408](https://github.com/homarr-labs/homarr/issues/1408) improve icon picker design ([#1412](https://github.com/homarr-labs/homarr/issues/1412)) ([441cbbe](https://github.com/homarr-labs/homarr/commit/441cbbe71775e37bf19f44ad2ba4065e839fbfa8)) +- [#420](https://github.com/homarr-labs/homarr/issues/420) reimplement icon picker ([#421](https://github.com/homarr-labs/homarr/issues/421)) ([60a35e2](https://github.com/homarr-labs/homarr/commit/60a35e258363e26df68f96290fd9359f577f1498)) +- [#511](https://github.com/homarr-labs/homarr/issues/511) log user logged in ([#1405](https://github.com/homarr-labs/homarr/issues/1405)) ([b294bf6](https://github.com/homarr-labs/homarr/commit/b294bf68cf4eceaf00ba94fb842f75af05a2c50d)) +- add 404 page ([#145](https://github.com/homarr-labs/homarr/issues/145)) ([60dec6e](https://github.com/homarr-labs/homarr/commit/60dec6e3be68a7f14ffae1f527c671e5d90e7f04)) +- add about page ([#388](https://github.com/homarr-labs/homarr/issues/388)) ([42a5a1a](https://github.com/homarr-labs/homarr/commit/42a5a1a56368cc1dadc61f403bd9a3f696716904)) +- add actual user for trpc wss-dev-server ([#261](https://github.com/homarr-labs/homarr/issues/261)) ([058a8c4](https://github.com/homarr-labs/homarr/commit/058a8c4776d2cd73653f9c40525847576e7b0a2b)), closes [#233](https://github.com/homarr-labs/homarr/issues/233) +- add analytics ([#528](https://github.com/homarr-labs/homarr/issues/528)) ([7e64d39](https://github.com/homarr-labs/homarr/commit/7e64d39693438cc52f37c8aab4fb9b04c851e4b9)) +- add api keys ([#991](https://github.com/homarr-labs/homarr/issues/991)) ([b14f82b](https://github.com/homarr-labs/homarr/commit/b14f82b4bb7be6e68ecaa9db0e1957e39f90823b)) +- add app actions ([#322](https://github.com/homarr-labs/homarr/issues/322)) ([8988880](https://github.com/homarr-labs/homarr/commit/89888804393720c10aab9f03f33d54d039d32a2b)) +- add app widget ([#206](https://github.com/homarr-labs/homarr/issues/206)) ([c4ff968](https://github.com/homarr-labs/homarr/commit/c4ff968cbca9250a8b33b5632e9267ecd0a7863b)) +- Add apps crud ([#174](https://github.com/homarr-labs/homarr/issues/174)) ([8d5984c](https://github.com/homarr-labs/homarr/commit/8d5984c58a6ec6ee04cce49d51ab9aee53577bf9)) +- add async suffix eslint rule ([#485](https://github.com/homarr-labs/homarr/issues/485)) ([dcaff1d](https://github.com/homarr-labs/homarr/commit/dcaff1d91c7789dd1003313e73172b605cd420c5)) +- add board ([#15](https://github.com/homarr-labs/homarr/issues/15)) ([9d52087](https://github.com/homarr-labs/homarr/commit/9d520874f4feb71587d365a82a75e2de93720b4e)) +- add board access settings ([#249](https://github.com/homarr-labs/homarr/issues/249)) ([361700b](https://github.com/homarr-labs/homarr/commit/361700b2394bc616607fdaa25bb7847998f3179f)) +- add boards management page ([#55](https://github.com/homarr-labs/homarr/issues/55)) ([5ef79ed](https://github.com/homarr-labs/homarr/commit/5ef79edc1aac1f675d613255a02741da4d836f81)) +- add bookmark widget ([#964](https://github.com/homarr-labs/homarr/issues/964)) ([49c0ebe](https://github.com/homarr-labs/homarr/commit/49c0ebea6dad6f586fc61073f815a928db4b435b)) +- add calendar widget ([#663](https://github.com/homarr-labs/homarr/issues/663)) ([dba97a3](https://github.com/homarr-labs/homarr/commit/dba97a3bd6d4b29c9079c9ee6ec98aa974614add)) +- add change password form ([#199](https://github.com/homarr-labs/homarr/issues/199)) ([beb7def](https://github.com/homarr-labs/homarr/commit/beb7defd32561ca074b48b4aa72631fdb59ddbdc)) +- add collapse to login screen with cli command for password reset ([#963](https://github.com/homarr-labs/homarr/issues/963)) ([bc886d9](https://github.com/homarr-labs/homarr/commit/bc886d94767cd2898529c0c17ff669bad4a19fad)) +- add colorscheme to user in db ([#987](https://github.com/homarr-labs/homarr/issues/987)) ([b080e0d](https://github.com/homarr-labs/homarr/commit/b080e0de714235756affc4c68854ec6a01269836)) +- add column count and is public options to board creation modal ([#930](https://github.com/homarr-labs/homarr/issues/930)) ([fcb72e6](https://github.com/homarr-labs/homarr/commit/fcb72e67167d3549f4f5b35706cabb0ca155eb8e)) +- add context specific search and actions ([#1570](https://github.com/homarr-labs/homarr/issues/1570)) ([c840ff8](https://github.com/homarr-labs/homarr/commit/c840ff85bcda7b45703e25204c93f1a9531d52dd)) +- add contributors to about page ([#445](https://github.com/homarr-labs/homarr/issues/445)) ([3cda718](https://github.com/homarr-labs/homarr/commit/3cda718474dc5641d4c2c8680ec5369ad5b85cc8)) +- add crawling settings ([#959](https://github.com/homarr-labs/homarr/issues/959)) ([19cd41a](https://github.com/homarr-labs/homarr/commit/19cd41a8e52585963ffe210186daadb1513b4dca)) +- add create board modal ([#131](https://github.com/homarr-labs/homarr/issues/131)) ([e3e38e7](https://github.com/homarr-labs/homarr/commit/e3e38e7f4496989a761657d9e79c317e26738c46)) +- add credentials authentication ([#1](https://github.com/homarr-labs/homarr/issues/1)) ([3cedb7f](https://github.com/homarr-labs/homarr/commit/3cedb7fba5aade5e176002453300779d6348a0b4)) +- add crud for integrations ([#11](https://github.com/homarr-labs/homarr/issues/11)) ([367beb6](https://github.com/homarr-labs/homarr/commit/367beb6759b54caaa8d3a2c723d5202626811976)) +- add custom css for board and custom classes in advanced options for items ([#512](https://github.com/homarr-labs/homarr/issues/512)) ([26b1c4a](https://github.com/homarr-labs/homarr/commit/26b1c4a3199c59e1b5eb3529da74180a455fa09f)) +- add dashdot integration ([#1541](https://github.com/homarr-labs/homarr/issues/1541)) ([84e5002](https://github.com/homarr-labs/homarr/commit/84e500279d5cc2db696365da46cf405c7a9fd06f)) +- add docker actions ([#752](https://github.com/homarr-labs/homarr/issues/752)) ([95101e3](https://github.com/homarr-labs/homarr/commit/95101e34ed0cc5134a7cb15fd0ab56c5f4b5a14e)) +- add docker container table ([#520](https://github.com/homarr-labs/homarr/issues/520)) ([dd2937a](https://github.com/homarr-labs/homarr/commit/dd2937a0d6106ce241cc5d8f25fc581c717604f1)) +- add duplication action for items ([#926](https://github.com/homarr-labs/homarr/issues/926)) ([81946e5](https://github.com/homarr-labs/homarr/commit/81946e50a9f643826f6c75ce2de54f92b74819bc)) +- add dynamic breadcrumb ([#706](https://github.com/homarr-labs/homarr/issues/706)) ([4e1bbf2](https://github.com/homarr-labs/homarr/commit/4e1bbf2ae64e951c62bb3a86787cecc1e2d22da9)) +- add dynamic section ([#842](https://github.com/homarr-labs/homarr/issues/842)) ([9ce172e](https://github.com/homarr-labs/homarr/commit/9ce172e78a142be71cfae8fdb581987fec9b78f0)) +- add edit user page ([#173](https://github.com/homarr-labs/homarr/issues/173)) ([41b99f1](https://github.com/homarr-labs/homarr/commit/41b99f191c6559bca49c7c3c3a13553c7698b781)) +- add env variable to disable db migrations on startup ([#1179](https://github.com/homarr-labs/homarr/issues/1179)) ([a30be7b](https://github.com/homarr-labs/homarr/commit/a30be7bc1e3beea0171c81ce9ec406ecc3c65e74)) +- add error page for docker tools page ([#1655](https://github.com/homarr-labs/homarr/issues/1655)) ([6031191](https://github.com/homarr-labs/homarr/commit/60311918ce31ec9ae84cadbc450fc5732f173536)) +- Add ErrorDisplay component ([245c2f4](https://github.com/homarr-labs/homarr/commit/245c2f483c36e197da4e8ff2a2fe1d58e2916786)) +- add everyone group ([#1322](https://github.com/homarr-labs/homarr/issues/1322)) ([2f1c800](https://github.com/homarr-labs/homarr/commit/2f1c8008447175697dfd3a814316665ed039713f)) +- add first day of week user setting ([#1249](https://github.com/homarr-labs/homarr/issues/1249)) ([ab1744c](https://github.com/homarr-labs/homarr/commit/ab1744ce20fd0df8c21361e3df0d65c9ab63c014)) +- add healthchecks ([#1187](https://github.com/homarr-labs/homarr/issues/1187)) ([08c6303](https://github.com/homarr-labs/homarr/commit/08c6303fa64a45580ef9ae41a7b1c0ea13266ecd)) +- add hero banner ([#463](https://github.com/homarr-labs/homarr/issues/463)) ([87fe03d](https://github.com/homarr-labs/homarr/commit/87fe03dd009be451981f99910d8f88129ecde9d1)) +- add home board for users ([#505](https://github.com/homarr-labs/homarr/issues/505)) ([7e339c0](https://github.com/homarr-labs/homarr/commit/7e339c09c86cafef56ea3bf915c8665b9e6e0c95)) +- add homeassistant integration ([#578](https://github.com/homarr-labs/homarr/issues/578)) ([2e782ae](https://github.com/homarr-labs/homarr/commit/2e782ae4428cc27024c29d58530fde86a65c87bd)) +- add hotkeys ([#986](https://github.com/homarr-labs/homarr/issues/986)) ([7521ef0](https://github.com/homarr-labs/homarr/commit/7521ef0519033fc4ddd51f03f46281417aa05b76)) +- add i18n translated form errors ([#509](https://github.com/homarr-labs/homarr/issues/509)) ([dfed804](https://github.com/homarr-labs/homarr/commit/dfed804f65003f715ed0bf699de39b4c8c63d63b)) +- add iframe widget ([#291](https://github.com/homarr-labs/homarr/issues/291)) ([8f48971](https://github.com/homarr-labs/homarr/commit/8f4897186c827f327d0823b619cd3ca4df859229)) +- add import for config files from oldmarr ([#1019](https://github.com/homarr-labs/homarr/issues/1019)) ([5404ceb](https://github.com/homarr-labs/homarr/commit/5404cebf5b04c5a93249c5674607640f70b798d3)) +- add improved search ([#1051](https://github.com/homarr-labs/homarr/issues/1051)) ([ce1ef3c](https://github.com/homarr-labs/homarr/commit/ce1ef3cbe761cbed9843eb4881758a30ac934fc1)) +- add integration access check to middlewares ([#756](https://github.com/homarr-labs/homarr/issues/756)) ([46943b1](https://github.com/homarr-labs/homarr/commit/46943b147ae08be3d79cce73243eaca4cba2959f)) +- add integration access settings ([#725](https://github.com/homarr-labs/homarr/issues/725)) ([408cdeb](https://github.com/homarr-labs/homarr/commit/408cdeb5c32735a9f78343818bb6f91eb1c8daee)) +- add jellyfin integration ([#672](https://github.com/homarr-labs/homarr/issues/672)) ([bb8640b](https://github.com/homarr-labs/homarr/commit/bb8640b1621f6a3809465c0187f99a8bcae473ed)), closes [#655](https://github.com/homarr-labs/homarr/issues/655) +- add job on start option for icons updater ([#442](https://github.com/homarr-labs/homarr/issues/442)) ([7b31684](https://github.com/homarr-labs/homarr/commit/7b31684c84aeaade6f370337821bea2d2bb9efee)) +- add ldap and oidc sso ([#500](https://github.com/homarr-labs/homarr/issues/500)) ([dc75ffb](https://github.com/homarr-labs/homarr/commit/dc75ffb9e65a6ea9479fae36558a5915578a83a6)) +- add lidarr integration ([#1433](https://github.com/homarr-labs/homarr/issues/1433)) ([ed74604](https://github.com/homarr-labs/homarr/commit/ed74604a547528a69d0572fe45e6482524ef1837)) +- add login and logout ([#436](https://github.com/homarr-labs/homarr/issues/436)) ([51aaab2](https://github.com/homarr-labs/homarr/commit/51aaab2f23f6a5a20fb5fc42bf8f9f79e017643e)) +- add logout redirect url ([#954](https://github.com/homarr-labs/homarr/issues/954)) ([13e0996](https://github.com/homarr-labs/homarr/commit/13e09968d928bc5e255dd3f93eca3d3e42f1b144)) +- add management pages ([#12](https://github.com/homarr-labs/homarr/issues/12)) ([2809e01](https://github.com/homarr-labs/homarr/commit/2809e01b03bf939aaecdce8007ece9322688061a)) +- add manifest ([#1309](https://github.com/homarr-labs/homarr/issues/1309)) ([727f104](https://github.com/homarr-labs/homarr/commit/727f10448f55d7dc7b9d4a227b34d7351816918d)) +- add media management ([#1337](https://github.com/homarr-labs/homarr/issues/1337)) ([db198c6](https://github.com/homarr-labs/homarr/commit/db198c6dab64b1dd299e6ed15a29ecb42bc409b6)) +- add media requests widget ([#774](https://github.com/homarr-labs/homarr/issues/774)) ([acbb834](https://github.com/homarr-labs/homarr/commit/acbb834889ae5a9161e609bff6a20d1e1a6258f3)) +- add member sync between groups of ldap and homarr ([#1149](https://github.com/homarr-labs/homarr/issues/1149)) ([6133309](https://github.com/homarr-labs/homarr/commit/61333094dff53cb4dea79f8dfffd3f9d6ee0ce1b)) +- add million-lint ([#607](https://github.com/homarr-labs/homarr/issues/607)) ([94984ac](https://github.com/homarr-labs/homarr/commit/94984ac11ba158563e8653d42d7c1f0b79bff0ea)) +- add more group permissions ([#1453](https://github.com/homarr-labs/homarr/issues/1453)) ([0ee343b](https://github.com/homarr-labs/homarr/commit/0ee343b99ecbb44140df8c3c59971108f13b3dce)) +- add mysql support ([#212](https://github.com/homarr-labs/homarr/issues/212)) ([24ec13c](https://github.com/homarr-labs/homarr/commit/24ec13c2ab76f73d4e18f1f4cc9ea369439b105d)) +- add nestjs app ([#172](https://github.com/homarr-labs/homarr/issues/172)) ([9440d04](https://github.com/homarr-labs/homarr/commit/9440d04261f6597c021fbb7a4eb6ee441bc8d41c)) +- add nestjs replacement, remove nestjs ([#285](https://github.com/homarr-labs/homarr/issues/285)) ([1936596](https://github.com/homarr-labs/homarr/commit/1936596c048552f1730a02b1e5c03aed6f9d0fb6)) +- add next-international translations ([#2](https://github.com/homarr-labs/homarr/issues/2)) ([a082f70](https://github.com/homarr-labs/homarr/commit/a082f704704bea127014216baeb914e9c8fe09f6)) +- add nginx proxy ([#1073](https://github.com/homarr-labs/homarr/issues/1073)) ([cd46198](https://github.com/homarr-labs/homarr/commit/cd4619845b83dd7d5bcd039b7ddeaf023eb42a84)) +- add not found pages for boards ([#1671](https://github.com/homarr-labs/homarr/issues/1671)) ([8e4d67c](https://github.com/homarr-labs/homarr/commit/8e4d67c3eb49f7ccbd7e87efa75dfe1e4665bf3f)) +- add notebook widget ([#294](https://github.com/homarr-labs/homarr/issues/294)) ([6b1879c](https://github.com/homarr-labs/homarr/commit/6b1879cbb1d5129b8960a5dec9880f4951c0222e)) +- add notes for creation of apps and integrations in widget edit modal ([#1297](https://github.com/homarr-labs/homarr/issues/1297)) ([e99fd64](https://github.com/homarr-labs/homarr/commit/e99fd648822f61b4ad7b3793875df69348a3e0c8)) +- add onboarding with oldmarr import ([#1606](https://github.com/homarr-labs/homarr/issues/1606)) ([6de74d9](https://github.com/homarr-labs/homarr/commit/6de74d952560275faf546c2720f71dddbe1fe399)) +- add password input field ([#160](https://github.com/homarr-labs/homarr/issues/160)) ([c6c8778](https://github.com/homarr-labs/homarr/commit/c6c87783979b1053fd6068920c412c20547bab69)) +- add password requirements ([#988](https://github.com/homarr-labs/homarr/issues/988)) ([2d155fa](https://github.com/homarr-labs/homarr/commit/2d155fa0c48d63fe376d52e2c5403c8ec1130db6)) +- add permission section to create user page ([#1524](https://github.com/homarr-labs/homarr/issues/1524)) ([1fc48f9](https://github.com/homarr-labs/homarr/commit/1fc48f9db05935bc3298f9251b564ed539c48312)) +- add pi hole summary integration ([#521](https://github.com/homarr-labs/homarr/issues/521)) ([d57b771](https://github.com/homarr-labs/homarr/commit/d57b771a177511b878c0eada1d3002b52acdc6fb)) +- add prettier packagejson plugin ([#1577](https://github.com/homarr-labs/homarr/issues/1577)) ([a53a2cd](https://github.com/homarr-labs/homarr/commit/a53a2cdd34a46d6442c030192b449a855b69fca3)) +- add preview to icon picker ([#914](https://github.com/homarr-labs/homarr/issues/914)) ([ca1ecdf](https://github.com/homarr-labs/homarr/commit/ca1ecdf84811c58e4dff372fab42e64ab1791f06)) +- Add quick filters for integration and status + minor UI improvement from feedback ([#1641](https://github.com/homarr-labs/homarr/issues/1641)) ([b6dad43](https://github.com/homarr-labs/homarr/commit/b6dad438c2f44aa8d7a740c1a22c9d4c39edf43e)) +- add readarr integration ([#1446](https://github.com/homarr-labs/homarr/issues/1446)) ([563c5d8](https://github.com/homarr-labs/homarr/commit/563c5d8f3c0dc5b7dcedadf7fa22c690c131a5c8)) +- add real time logger page ([#276](https://github.com/homarr-labs/homarr/issues/276)) ([c82915c](https://github.com/homarr-labs/homarr/commit/c82915c6dcaef8edffc67b82c97ba87e4597852a)) +- add redis ([#242](https://github.com/homarr-labs/homarr/issues/242)) ([1825e56](https://github.com/homarr-labs/homarr/commit/1825e563493a443039a5d0a8fa6d0b7ce3ef08b0)) +- add redis cache channel ([e05deef](https://github.com/homarr-labs/homarr/commit/e05deef6e28c7bbddda154d3d23f5325e85f3571)) +- add refresh button to docker containers table ([#913](https://github.com/homarr-labs/homarr/issues/913)) ([b53a2b6](https://github.com/homarr-labs/homarr/commit/b53a2b6b78f73f86ecff24cbf40b91e0f4ca55b0)) +- add request media ([#1811](https://github.com/homarr-labs/homarr/issues/1811)) ([91e1cef](https://github.com/homarr-labs/homarr/commit/91e1cef611a47d57b42c91c0c6d49fcf2e6a10bb)) +- add rss widget ([#760](https://github.com/homarr-labs/homarr/issues/760)) ([15d9327](https://github.com/homarr-labs/homarr/commit/15d9327d465d1c522d9182027adaf27727a95b4e)) +- add server settings ([#487](https://github.com/homarr-labs/homarr/issues/487)) ([9191617](https://github.com/homarr-labs/homarr/commit/919161798ee6c5c2070632920c9dfc3699ab1f93)) +- add server settings for default board, default color scheme and default locale ([#1373](https://github.com/homarr-labs/homarr/issues/1373)) ([326b769](https://github.com/homarr-labs/homarr/commit/326b769c23f6619c7d6edd0cecedccdf6d641dde)) +- add session expiry ([#951](https://github.com/homarr-labs/homarr/issues/951)) ([6dafbaa](https://github.com/homarr-labs/homarr/commit/6dafbaae48f17ff519723fe33fc89034b10e8f1b)) +- add simple app ping ([#580](https://github.com/homarr-labs/homarr/issues/580)) ([d7ecdf5](https://github.com/homarr-labs/homarr/commit/d7ecdf55672e05e90424bed964644091b1af6499)) +- Add Simple-Icons and Selfh.st collections ([#1118](https://github.com/homarr-labs/homarr/issues/1118)) ([9fb6e67](https://github.com/homarr-labs/homarr/commit/9fb6e67ed33264f877ba819240e00d8fc8dbb984)) +- add support for all languages from old homarr ([#1394](https://github.com/homarr-labs/homarr/issues/1394)) ([0ff7c89](https://github.com/homarr-labs/homarr/commit/0ff7c8903b3c23ee286a0e3d68287927e03ff3e0)) +- add support for app url variables ([#915](https://github.com/homarr-labs/homarr/issues/915)) ([c4c4d41](https://github.com/homarr-labs/homarr/commit/c4c4d41e4d7c37d498ba25c91a734a9d7f66f233)) +- add support for multiple integration kind options ([#127](https://github.com/homarr-labs/homarr/issues/127)) ([f1aa422](https://github.com/homarr-labs/homarr/commit/f1aa42261446bcc4bd16b47ed0c1d5cd279a2e48)) +- add support for should hide option i widget edit modal ([#78](https://github.com/homarr-labs/homarr/issues/78)) ([16442bc](https://github.com/homarr-labs/homarr/commit/16442bc379c1d418080947fbd86a4bb14639e90e)) +- add tasks page ([#692](https://github.com/homarr-labs/homarr/issues/692)) ([08d571a](https://github.com/homarr-labs/homarr/commit/08d571ad74c0c97313664b31bf2d1ce83d91629b)) +- add tdarr integration ([#1657](https://github.com/homarr-labs/homarr/issues/1657)) ([032509e](https://github.com/homarr-labs/homarr/commit/032509e4623d7bab3a000a308cb21fc487c45487)) +- add trpc websocket ([#205](https://github.com/homarr-labs/homarr/issues/205)) ([4f375cb](https://github.com/homarr-labs/homarr/commit/4f375cbe6d1b82322e0e8eaeea9db60be083c84e)) +- add undici fetch interceptor ([#687](https://github.com/homarr-labs/homarr/issues/687)) ([508369c](https://github.com/homarr-labs/homarr/commit/508369cb0bb61dadbc2c0b06f03e08581bc7d8ae)) +- add update indicator ([#1626](https://github.com/homarr-labs/homarr/issues/1626)) ([dd9d8b5](https://github.com/homarr-labs/homarr/commit/dd9d8b52610aefe4dbf19f20117ea51264525bcb)) +- add user avatar menu ([#80](https://github.com/homarr-labs/homarr/issues/80)) ([08fa338](https://github.com/homarr-labs/homarr/commit/08fa338abbdff3bb3f7cfc96bc328ecb4a49c584)) +- add user groups ([#376](https://github.com/homarr-labs/homarr/issues/376)) ([036925b](https://github.com/homarr-labs/homarr/commit/036925bf78ec50afe8455efdc270ee4e503a0e03)) +- add user invite management ([#338](https://github.com/homarr-labs/homarr/issues/338)) ([621f6c8](https://github.com/homarr-labs/homarr/commit/621f6c81ae8689f6efc9ac141e8bcbf7fe35eb81)) +- add user invite registration ([#477](https://github.com/homarr-labs/homarr/issues/477)) ([94af21a](https://github.com/homarr-labs/homarr/commit/94af21abbfb36b1804d86d89155af720055de588)) +- add user management ([#134](https://github.com/homarr-labs/homarr/issues/134)) ([b4749e7](https://github.com/homarr-labs/homarr/commit/b4749e7091649815f2918b81d3c79b0216ece5d2)) +- add user setting for home board ([#956](https://github.com/homarr-labs/homarr/issues/956)) ([f327837](https://github.com/homarr-labs/homarr/commit/f327837d82149c563b07e1d42850356930f20e50)) +- add username validation to prevent duplicate ([781247d](https://github.com/homarr-labs/homarr/commit/781247de5141f4b0532801194ac904763db7da39)) +- add validation to widget edit modal inputs ([#879](https://github.com/homarr-labs/homarr/issues/879)) ([9cb6200](https://github.com/homarr-labs/homarr/commit/9cb6200895a0d44e87f59cdaf19432fb8312f8bf)) +- add video widget ([#287](https://github.com/homarr-labs/homarr/issues/287)) ([82e9887](https://github.com/homarr-labs/homarr/commit/82e9887f36a370594f258d8e6f60cda57593b2b7)) +- Add VOLUME instruction to `Dockerfile` ([#527](https://github.com/homarr-labs/homarr/issues/527)) ([5a9e8ed](https://github.com/homarr-labs/homarr/commit/5a9e8edf70b91933afbd0b4564fda3ab25fdbdd5)) +- add weather widget ([#286](https://github.com/homarr-labs/homarr/issues/286)) ([80d2d48](https://github.com/homarr-labs/homarr/commit/80d2d485b862f6c95fa1eb81ff96cb45d9b147b1)) +- add web search engines ([#290](https://github.com/homarr-labs/homarr/issues/290)) ([35ca732](https://github.com/homarr-labs/homarr/commit/35ca732744752b54b6318e17319d9b8ac950fda8)) +- Add widget integration option ([#14](https://github.com/homarr-labs/homarr/issues/14)) ([1740450](https://github.com/homarr-labs/homarr/commit/1740450648fc5c3915cd71b493a8523305f33703)) +- add widget preview pages ([#9](https://github.com/homarr-labs/homarr/issues/9)) ([7828975](https://github.com/homarr-labs/homarr/commit/782897527f489889f8b6f46ec577a298a0714953)) +- add widget server loader ([#16](https://github.com/homarr-labs/homarr/issues/16)) ([975f912](https://github.com/homarr-labs/homarr/commit/975f9123dd4d509e2b777d8af8d74f38ebc59aad)) +- add winston logger ([#143](https://github.com/homarr-labs/homarr/issues/143)) ([3d50f81](https://github.com/homarr-labs/homarr/commit/3d50f8165f0d27e9fe7b517cffa5d1950eca7ab8)) +- add winston logger ([#77](https://github.com/homarr-labs/homarr/issues/77)) ([34875df](https://github.com/homarr-labs/homarr/commit/34875dfd154f9e9e3a8ce5c5bc4d14e757b4b14d)) +- AdGuard Home integration ([#929](https://github.com/homarr-labs/homarr/issues/929)) ([4471260](https://github.com/homarr-labs/homarr/commit/44712608b7e0dfcbaf5d36c40792b04f2edec8d7)) +- allow no secrets for integration ([#856](https://github.com/homarr-labs/homarr/issues/856)) ([508fcb9](https://github.com/homarr-labs/homarr/commit/508fcb9861d56f84d027fc8c456d8841486fdf72)) +- App tile scalability ([#645](https://github.com/homarr-labs/homarr/issues/645)) ([28927cf](https://github.com/homarr-labs/homarr/commit/28927cfa2802c6335487638b5ce4d7133f2e4423)) +- **app:** add search and pagination ([#1860](https://github.com/homarr-labs/homarr/issues/1860)) ([ccb19e0](https://github.com/homarr-labs/homarr/commit/ccb19e06c192029a81c851900982d52b045185a6)) +- approve before automerge ([3df6dcf](https://github.com/homarr-labs/homarr/commit/3df6dcfbe7b1b499dbd6ddf536ae509286afe21b)) +- **apps:** remove url variables ([#1771](https://github.com/homarr-labs/homarr/issues/1771)) ([8df398c](https://github.com/homarr-labs/homarr/commit/8df398c3c706369f6990719603a357c161606f81)) +- **auth:** add env variable for oidc-name-attribute-overwrite ([#1850](https://github.com/homarr-labs/homarr/issues/1850)) ([c349bf8](https://github.com/homarr-labs/homarr/commit/c349bf83714739ca1bc6057f2d43c9e3964fa205)) +- board access group permissions ([#422](https://github.com/homarr-labs/homarr/issues/422)) ([b1e065f](https://github.com/homarr-labs/homarr/commit/b1e065f1da0fc0c4992d0de8f6ed87a9adef1d24)) +- board settings ([#137](https://github.com/homarr-labs/homarr/issues/137)) ([bb02163](https://github.com/homarr-labs/homarr/commit/bb02163e25e64c13e4f36df21fa90ff33483cac6)) +- **board:** add board duplication ([#1856](https://github.com/homarr-labs/homarr/issues/1856)) ([49d10f7](https://github.com/homarr-labs/homarr/commit/49d10f7ad0f58b577ed72c2a46a062af263ff225)) +- **board:** add mobile home board ([#1910](https://github.com/homarr-labs/homarr/issues/1910)) ([e01d74f](https://github.com/homarr-labs/homarr/commit/e01d74f4f89aee9a122b660e6303c356871c6ebb)) +- cannot change username to the current one ([0ae8a75](https://github.com/homarr-labs/homarr/commit/0ae8a75a5ef38c85ca869cadbed9542c2993a3df)) +- **certificates:** handle self signed certificates ([#1951](https://github.com/homarr-labs/homarr/issues/1951)) ([8c36c3e](https://github.com/homarr-labs/homarr/commit/8c36c3e36b6f8283420ceee56922a002f6155a91)) +- change visibility in item options based on selected integration kinds ([#949](https://github.com/homarr-labs/homarr/issues/949)) ([25452ff](https://github.com/homarr-labs/homarr/commit/25452ff063383397af6b5e41984657f9eb68e801)) +- Clock widget and dayjs locale standard ([#79](https://github.com/homarr-labs/homarr/issues/79)) ([edcba9c](https://github.com/homarr-labs/homarr/commit/edcba9ceb62880196dac902e0a91b1dbdd0c45f1)) +- Clock widget scalability ([#644](https://github.com/homarr-labs/homarr/issues/644)) ([bac09d8](https://github.com/homarr-labs/homarr/commit/bac09d8be59eea7f59713fead9e5310b34cfa8aa)) +- date format on weather widget ([#1443](https://github.com/homarr-labs/homarr/issues/1443)) ([c51c5db](https://github.com/homarr-labs/homarr/commit/c51c5db3d73db8656f4d55921b5b664b8c27134e)) +- DNS Hole summary Scalability ([#646](https://github.com/homarr-labs/homarr/issues/646)) ([0710425](https://github.com/homarr-labs/homarr/commit/0710425e787aec1bcd90d3ba8dae71c8c97959ae)) +- dnshole controls widget ([#867](https://github.com/homarr-labs/homarr/issues/867)) ([65c6854](https://github.com/homarr-labs/homarr/commit/65c6854e4426350b196b1888c952d961c03c2b23)) +- DnsHole feature parity with oldmarr ([#1145](https://github.com/homarr-labs/homarr/issues/1145)) ([36915d9](https://github.com/homarr-labs/homarr/commit/36915d95fe45964f0291fb8c9cbc46ffecdf2681)) +- docker add to homarr ([#1825](https://github.com/homarr-labs/homarr/issues/1825)) ([64cc078](https://github.com/homarr-labs/homarr/commit/64cc078b095e64edca17e07a09a4f5c340665f84)) +- **docker:** add encryption key generation for integration secrets ([#1202](https://github.com/homarr-labs/homarr/issues/1202)) ([52b45d8](https://github.com/homarr-labs/homarr/commit/52b45d835db99b5e6b950a2adfb6e21665c8ccff)) +- **docker:** add support for pgid and puid env variables ([#1759](https://github.com/homarr-labs/homarr/issues/1759)) ([aeb681a](https://github.com/homarr-labs/homarr/commit/aeb681a85839e31284e8f1566adc4191a68ea385)) +- downloads widget ([#844](https://github.com/homarr-labs/homarr/issues/844)) ([2535192](https://github.com/homarr-labs/homarr/commit/2535192b2cfc1c4acc42b31a59f90989236ea2c2)) +- **icons:** add upload button to icon picker ([#1859](https://github.com/homarr-labs/homarr/issues/1859)) ([1e9098d](https://github.com/homarr-labs/homarr/commit/1e9098d052801fe7d53ce15e9f22ed89de04d644)) +- implement board access control ([#349](https://github.com/homarr-labs/homarr/issues/349)) ([7ab9dc2](https://github.com/homarr-labs/homarr/commit/7ab9dc250184947b1f1a071a0cb7bce63ce95c96)) +- implement openapi ([#482](https://github.com/homarr-labs/homarr/issues/482)) ([f0cd45c](https://github.com/homarr-labs/homarr/commit/f0cd45c81385720f68693f8d3481466fc147cd61)) +- improve metadata ([#1308](https://github.com/homarr-labs/homarr/issues/1308)) ([0df7cb5](https://github.com/homarr-labs/homarr/commit/0df7cb5c25441700616d268fac5e64068542d080)) +- improve user init setup ([#643](https://github.com/homarr-labs/homarr/issues/643)) ([3a3a825](https://github.com/homarr-labs/homarr/commit/3a3a8251bdb65f07e109af83b639efabbd1404a5)) +- indexer manager widget ([#1057](https://github.com/homarr-labs/homarr/issues/1057)) ([08d4472](https://github.com/homarr-labs/homarr/commit/08d4472d8b612e11a8b4e5f09952a788e7bcdf8a)), closes [#1055](https://github.com/homarr-labs/homarr/issues/1055) +- integrate crowdin [#1402](https://github.com/homarr-labs/homarr/issues/1402) ([#1599](https://github.com/homarr-labs/homarr/issues/1599)) ([096f034](https://github.com/homarr-labs/homarr/commit/096f03432cfca75bc2740f65d7d6cb6fed4c4eaa)) +- **integration:** add search engine creation ([#1816](https://github.com/homarr-labs/homarr/issues/1816)) ([f507645](https://github.com/homarr-labs/homarr/commit/f5076454cd644a99439b697f24bb0b1f871b2205)) +- **items:** add search to selection ([#1887](https://github.com/homarr-labs/homarr/issues/1887)) ([62da953](https://github.com/homarr-labs/homarr/commit/62da953356ff76694ddc50980a2b879a01bcbdd6)) +- language selector ([#484](https://github.com/homarr-labs/homarr/issues/484)) ([31c2694](https://github.com/homarr-labs/homarr/commit/31c26941857b4eac8e69ccb68bc4c00cd1073806)) +- log elapsed cron job time ([#742](https://github.com/homarr-labs/homarr/issues/742)) ([1cf119c](https://github.com/homarr-labs/homarr/commit/1cf119c76827c22dcac9f2417b6f65b64cd43e26)) +- log sql queries ([#444](https://github.com/homarr-labs/homarr/issues/444)) ([dc0184a](https://github.com/homarr-labs/homarr/commit/dc0184af071446e299407a2b6347852d52bdd17f)) +- make notifications optional ([e438bac](https://github.com/homarr-labs/homarr/commit/e438bac0f5dd7d487aae054802b5255612749252)) +- OMV integration & health monitoring widget ([#1142](https://github.com/homarr-labs/homarr/issues/1142)) ([0f56dc1](https://github.com/homarr-labs/homarr/commit/0f56dc1ecd03d6d6fe2305de85650f2b105e2169)) +- plex integration ([#1342](https://github.com/homarr-labs/homarr/issues/1342)) ([cf9b058](https://github.com/homarr-labs/homarr/commit/cf9b0581a486b3d6b1207e8a612c9fe4665c6d49)) +- populate integration name for new integrations automatically ([#1296](https://github.com/homarr-labs/homarr/issues/1296)) ([a0cc31d](https://github.com/homarr-labs/homarr/commit/a0cc31da700defc9a4f5c4210962571cbfe2b362)) +- pretty-print-error to print errors in console ([#1596](https://github.com/homarr-labs/homarr/issues/1596)) ([71f4f8c](https://github.com/homarr-labs/homarr/commit/71f4f8c4c85eb70533bed3ed86b6655e99cc2bb7)) +- Prowlarr integration ([#965](https://github.com/homarr-labs/homarr/issues/965)) ([6ff3640](https://github.com/homarr-labs/homarr/commit/6ff36405ba26ab27387094182885a99bf1ecb30d)) +- radarr integration ([#1053](https://github.com/homarr-labs/homarr/issues/1053)) ([e88854c](https://github.com/homarr-labs/homarr/commit/e88854c0e5b14c356f520c616b369d118ea3ddf7)) +- radarr release type to calendar widget ([#1256](https://github.com/homarr-labs/homarr/issues/1256)) ([98b62a9](https://github.com/homarr-labs/homarr/commit/98b62a9f919ef18f891e115f3dec31c7f1e49a44)) +- read all packages on about page ([#391](https://github.com/homarr-labs/homarr/issues/391)) ([16e42d6](https://github.com/homarr-labs/homarr/commit/16e42d654dbf8cf54757e49cc1c73ea1fa69d8a7)) +- remove import beta badge ([#1829](https://github.com/homarr-labs/homarr/issues/1829)) ([6305c74](https://github.com/homarr-labs/homarr/commit/6305c74f90d943722c915ffbf54b5fd7e68a7dca)) +- remove manual flag to pushing image ([9013d5d](https://github.com/homarr-labs/homarr/commit/9013d5dbf01a7c60e5a427cfcebea7a332deb5d2)) +- replace home page with home board ([#1530](https://github.com/homarr-labs/homarr/issues/1530)) ([9fb14df](https://github.com/homarr-labs/homarr/commit/9fb14df2103db720cb6e5333b8afed5c1e730de6)) +- reset password cli ([#903](https://github.com/homarr-labs/homarr/issues/903)) ([7fa5e70](https://github.com/homarr-labs/homarr/commit/7fa5e70d5b5e4e6cded08f343f5db0f42e8be324)) +- restrict non credential provider interactions ([#871](https://github.com/homarr-labs/homarr/issues/871)) ([6f7327b](https://github.com/homarr-labs/homarr/commit/6f7327b77478c567b478c2c61b0a09400e426678)) +- RTL option to RSS widget ([#1247](https://github.com/homarr-labs/homarr/issues/1247)) ([9a7e845](https://github.com/homarr-labs/homarr/commit/9a7e8450106aa5f61db9e3360221bd8ac168daf6)) +- show creator on board page ([#440](https://github.com/homarr-labs/homarr/issues/440)) ([5d30301](https://github.com/homarr-labs/homarr/commit/5d30301b95a8b1e6129d97a6a66cbfb417407caf)) +- **spotlight:** add default search engine ([#1807](https://github.com/homarr-labs/homarr/issues/1807)) ([65befa2](https://github.com/homarr-labs/homarr/commit/65befa22ba91c36a3734ac6dc027175dc9fca892)) +- **spotlight:** add support for custom search-engines ([#1200](https://github.com/homarr-labs/homarr/issues/1200)) ([4c9471e](https://github.com/homarr-labs/homarr/commit/4c9471e6086c354ec4383f22a7b8020c5aa8974d)) +- support arm64 ([#1022](https://github.com/homarr-labs/homarr/issues/1022)) ([0c65727](https://github.com/homarr-labs/homarr/commit/0c657276a53aa77d6cc37435e61907574320e324)) +- test integration connection ([#669](https://github.com/homarr-labs/homarr/issues/669)) ([f92aeba](https://github.com/homarr-labs/homarr/commit/f92aeba403ec22e2a3219550b51191ae82bac000)) +- use consistent line ending ([#1407](https://github.com/homarr-labs/homarr/issues/1407)) ([0c067c4](https://github.com/homarr-labs/homarr/commit/0c067c4e6f36d741edf7c88de847585fefd54b64)) +- use different tag name ([ff847f0](https://github.com/homarr-labs/homarr/commit/ff847f091054c38015f45dfd1ee88e06116f53ad)) +- use gh app for merging ([82caec4](https://github.com/homarr-labs/homarr/commit/82caec402a4f33d0217b9d5e02140d4857dbb0ce)) +- use password input ([#163](https://github.com/homarr-labs/homarr/issues/163)) ([2a83df3](https://github.com/homarr-labs/homarr/commit/2a83df348555de884a9419ecf6e7ecdc76272deb)) +- user preferences ([#470](https://github.com/homarr-labs/homarr/issues/470)) ([db01301](https://github.com/homarr-labs/homarr/commit/db013018453ba6d67a229d5b9852e85e61a6760d)) +- user setting ping icons ([#1277](https://github.com/homarr-labs/homarr/issues/1277)) ([3486876](https://github.com/homarr-labs/homarr/commit/348687670d18062254e8089572f824f33a6f0894)) +- weather widget scalable ([#574](https://github.com/homarr-labs/homarr/issues/574)) ([cfd8b32](https://github.com/homarr-labs/homarr/commit/cfd8b328b40352c4f517853b6f019042ddf57549)) +- **widget:** add minecraft server status widget ([#1801](https://github.com/homarr-labs/homarr/issues/1801)) ([0ebf4bc](https://github.com/homarr-labs/homarr/commit/0ebf4bc55e62caf5917340496abb350d564df255)) +- **widget:** add proxmox integration ([#1969](https://github.com/homarr-labs/homarr/issues/1969)) ([3ed46ae](https://github.com/homarr-labs/homarr/commit/3ed46aecbd0b41b6d906d70725991224a23f30cf)) ### Bug Fixes -* about version is one behind because of missing package-json update in deploy ([#1725](https://github.com/homarr-labs/homarr/issues/1725)) ([8c11562](https://github.com/homarr-labs/homarr/commit/8c1156240c8a0d332301ae6dd0a4521f3db19d9a)) -* about version reads nextjs package-json ([#1706](https://github.com/homarr-labs/homarr/issues/1706)) ([d803087](https://github.com/homarr-labs/homarr/commit/d8030873452d2248d79d16a2fc4464ff2fbb478d)) -* actions user has no permission to are shown in spotlight ([#1452](https://github.com/homarr-labs/homarr/issues/1452)) ([04895da](https://github.com/homarr-labs/homarr/commit/04895da08a72864a55d6bb09524588ba0d9a06c1)) -* add beforeunload logic for board in edit mode ([#1531](https://github.com/homarr-labs/homarr/issues/1531)) ([225356c](https://github.com/homarr-labs/homarr/commit/225356cc4f49a8a8178f9d7dffc3283bc641b3d0)) -* add missing branch-name to discord deploy notification ([50697eb](https://github.com/homarr-labs/homarr/commit/50697eb21f923bbe9a6811c964cfc313f79a2806)) -* add missing tags ([f23831b](https://github.com/homarr-labs/homarr/commit/f23831be5ec257775ca9ce116a50f025cac65c2d)) -* add persists credentials false to checkout of release pipeline ([#1691](https://github.com/homarr-labs/homarr/issues/1691)) ([daf7ea5](https://github.com/homarr-labs/homarr/commit/daf7ea56c5ce05803efc475ad64c5abb6a0784ea)) -* add rtl compliance for symbols [#366](https://github.com/homarr-labs/homarr/issues/366) ([#406](https://github.com/homarr-labs/homarr/issues/406)) ([0278e3a](https://github.com/homarr-labs/homarr/commit/0278e3a854455a48c53ab394d4c4e65734f535ca)) -* add sharp ([#241](https://github.com/homarr-labs/homarr/issues/241)) ([0440af3](https://github.com/homarr-labs/homarr/commit/0440af3566ce7e57eaedd6921c16143943647bd4)) -* add subscription to health monitoring widget ([#1210](https://github.com/homarr-labs/homarr/issues/1210)) ([ce67fcd](https://github.com/homarr-labs/homarr/commit/ce67fcd57cd56fe68105c269a9f2377bbc89e61b)) -* adding volume /appdata removes created directories ([#1445](https://github.com/homarr-labs/homarr/issues/1445)) ([fe4dfc4](https://github.com/homarr-labs/homarr/commit/fe4dfc484bcc5da8d3901d042adc5d3cf3ea9fbc)) -* alert that certain fields in user settings are disabled is always shown ([#928](https://github.com/homarr-labs/homarr/issues/928)) ([9258c39](https://github.com/homarr-labs/homarr/commit/9258c397e0689bf46969614f3c634b5af20a2d8c)) -* allow additional file-type for oldmarr import ([#1723](https://github.com/homarr-labs/homarr/issues/1723)) ([1e8a535](https://github.com/homarr-labs/homarr/commit/1e8a5359b78e28db7683ba837a962685446c6c32)) -* Allow username to be capitalized on basic credentials login ([#1585](https://github.com/homarr-labs/homarr/issues/1585)) ([a1a6dc9](https://github.com/homarr-labs/homarr/commit/a1a6dc9d6e345ff102d69164d4bf2d7020db0ea4)) -* always require db-user and password for mysql ([#1730](https://github.com/homarr-labs/homarr/issues/1730)) ([d2584b6](https://github.com/homarr-labs/homarr/commit/d2584b63c55ca143a2b5dc6a71cb00fd5612b78a)) -* api keys authentication does not work [#1511](https://github.com/homarr-labs/homarr/issues/1511) ([#1512](https://github.com/homarr-labs/homarr/issues/1512)) ([72eda1f](https://github.com/homarr-labs/homarr/commit/72eda1f225cece3d317c66b4b98a481328962d63)) -* **app:** missing noreferer attribute for anchor tag ([#1915](https://github.com/homarr-labs/homarr/issues/1915)) ([986e013](https://github.com/homarr-labs/homarr/commit/986e013ca3eaf402d9014c5586536e05d93e9adc)) -* auth broken cause of consistent table column rename ([#1532](https://github.com/homarr-labs/homarr/issues/1532)) ([4a94d60](https://github.com/homarr-labs/homarr/commit/4a94d602c0cce7796cde7c08a5670e045452c2c5)) -* **auth:** oidc redirect does not respect https protocol ([#1763](https://github.com/homarr-labs/homarr/issues/1763)) ([0336803](https://github.com/homarr-labs/homarr/commit/033680355044b1ebfa5d8fe07b59929bbcfcb3a0)) -* auto-merge crowdin pr not working ([#1664](https://github.com/homarr-labs/homarr/issues/1664)) ([f330c7e](https://github.com/homarr-labs/homarr/commit/f330c7e4f1a8e097e2f594c47061f98c7c9e0034)) -* auto-merge for crowdin download pull request not working ([#1661](https://github.com/homarr-labs/homarr/issues/1661)) ([5bdc669](https://github.com/homarr-labs/homarr/commit/5bdc669e07c788f3b47009a4f5c3c2c785dda111)) -* base branch for semver ([a8748fa](https://github.com/homarr-labs/homarr/commit/a8748fa439c481d7238a32b99184e9fce667a709)) -* **board:** item background and border overridden by mantine card styles ([#1769](https://github.com/homarr-labs/homarr/issues/1769)) ([425359b](https://github.com/homarr-labs/homarr/commit/425359be02f66242f7db0dc77bed0355495e21d5)) -* **board:** tiles order not respected on firefox ([#1770](https://github.com/homarr-labs/homarr/issues/1770)) ([8893b72](https://github.com/homarr-labs/homarr/commit/8893b72fe363691b91b6aca75d4ad37f4b8e9f6a)) -* boolean checks do not work correctly in deploy workflow ([649506b](https://github.com/homarr-labs/homarr/commit/649506b56a5f3cbbee9b782b637730f2196785cc)) -* cache is not exportet from react ([#417](https://github.com/homarr-labs/homarr/issues/417)) ([fba767b](https://github.com/homarr-labs/homarr/commit/fba767bde3d17c09d563ccea352cd8e4171e84f8)) -* **category:** remove not always working and ignoring dynamic sections ([#1939](https://github.com/homarr-labs/homarr/issues/1939)) ([d4bb014](https://github.com/homarr-labs/homarr/commit/d4bb014a9ba83770fd7880b48a4a5ab5362f6f75)) -* change docker concurrency group to allow multiple deployments to different branches ([#1687](https://github.com/homarr-labs/homarr/issues/1687)) ([93abe8f](https://github.com/homarr-labs/homarr/commit/93abe8f6a2bfe012b6c03c7994e5334f22b6e5e8)) -* change node-version for composite setup action to 22, remove unnecessary installation of node from docker deployment ([#1429](https://github.com/homarr-labs/homarr/issues/1429)) ([319fb47](https://github.com/homarr-labs/homarr/commit/319fb477444bae5cd4c847af9ebf9e35359fbb03)) -* change permission for github action to contents write ([#1689](https://github.com/homarr-labs/homarr/issues/1689)) ([0f029b3](https://github.com/homarr-labs/homarr/commit/0f029b384d1699ea8ee784651b97b88fd64613c6)) -* color scheme manager should use cookie and not session value ([#1329](https://github.com/homarr-labs/homarr/issues/1329)) ([799d6c5](https://github.com/homarr-labs/homarr/commit/799d6c5d4a59c65d3e2f902843dfc86910b8496f)) -* confirm not selected by default in confirm modal ([#1232](https://github.com/homarr-labs/homarr/issues/1232)) ([ac07504](https://github.com/homarr-labs/homarr/commit/ac0750452cd4788cba48d3af720240e063080fba)) -* conflicts between common admin group for ldap or oidc and credentials default group ([#1710](https://github.com/homarr-labs/homarr/issues/1710)) ([3c0f272](https://github.com/homarr-labs/homarr/commit/3c0f272707ee66fd00bffb0d16e30df98b4f1aff)) -* container image always being on AMD64 arch ([#1173](https://github.com/homarr-labs/homarr/issues/1173)) ([65f2611](https://github.com/homarr-labs/homarr/commit/65f26117fc491958922cd863801cc049479766af)) -* controller is already closed trpc subscription observable error ([#743](https://github.com/homarr-labs/homarr/issues/743)) ([41dba7b](https://github.com/homarr-labs/homarr/commit/41dba7b516880098ae923d45f2065875cb6c70da)) -* copy media link ([#1750](https://github.com/homarr-labs/homarr/issues/1750)) ([d78c6ed](https://github.com/homarr-labs/homarr/commit/d78c6ed5299e1f975c2e85ec3ecad38e00457677)) -* correctly set pr description ([#778](https://github.com/homarr-labs/homarr/issues/778)) ([f58c38a](https://github.com/homarr-labs/homarr/commit/f58c38a1aa654acc474b492610452a9c38d20f42)) -* crash with no user in session ([547f75d](https://github.com/homarr-labs/homarr/commit/547f75d19cb08cd0eac6978cb9a6eb107a563edd)) -* create board submit button inverted ([0ee8c5a](https://github.com/homarr-labs/homarr/commit/0ee8c5ad91dfe70ef27af3fe9a47918bab23a665)) -* create user async is called twice ([7fa120c](https://github.com/homarr-labs/homarr/commit/7fa120c47490ab3e80fb8db0921d9afa3e12cfee)) -* credentials auth not working ([#1284](https://github.com/homarr-labs/homarr/issues/1284)) ([511c9a4](https://github.com/homarr-labs/homarr/commit/511c9a4dbbcaa3846bcd5a3dfe1827793e398ff4)) -* credentials login not working cause of cookie secure flag not possible for http ([#1421](https://github.com/homarr-labs/homarr/issues/1421)) ([cf5bcab](https://github.com/homarr-labs/homarr/commit/cf5bcab732924ef5b7a3eabf2d0a8760a59d6cb6)) -* db port validation for env variable wrong ([#1137](https://github.com/homarr-labs/homarr/issues/1137)) ([d01ddd6](https://github.com/homarr-labs/homarr/commit/d01ddd61b6fe3583412c7a553cfba8d32ae797a7)) -* default branch for tag compare ([#597](https://github.com/homarr-labs/homarr/issues/597)) ([7cc2736](https://github.com/homarr-labs/homarr/commit/7cc2736d68baaa5730e598b6c8e2cd55fa73711d)) -* defaultTitle invalid attribute on div ([#350](https://github.com/homarr-labs/homarr/issues/350)) ([4970c3a](https://github.com/homarr-labs/homarr/commit/4970c3a1b2545feb3bc20cc6605f8f16a28a8220)) -* deployment pipeline for docker not working ([#860](https://github.com/homarr-labs/homarr/issues/860)) ([90ef982](https://github.com/homarr-labs/homarr/commit/90ef982066b528e891bc3796256b2725ec1addf3)) -* **deps:** update dependency @auth/core to ^0.25.0 ([#29](https://github.com/homarr-labs/homarr/issues/29)) ([8bcbc45](https://github.com/homarr-labs/homarr/commit/8bcbc45943358d580712e0990ba2bb3c2c62d057)) -* **deps:** update dependency @auth/core to ^0.26.3 ([#54](https://github.com/homarr-labs/homarr/issues/54)) ([5cbd02b](https://github.com/homarr-labs/homarr/commit/5cbd02b142da68f067ef9831c6b47f117fbdc8e4)) -* **deps:** update dependency @auth/core to ^0.27.0 ([#89](https://github.com/homarr-labs/homarr/issues/89)) ([6c5e475](https://github.com/homarr-labs/homarr/commit/6c5e4752eaf7a07f9e80951541108643efb0faae)) -* **deps:** update dependency @auth/core to ^0.28.0 ([#169](https://github.com/homarr-labs/homarr/issues/169)) ([aa19139](https://github.com/homarr-labs/homarr/commit/aa19139cf7c4bb4ea6b57c3ca274fff533c2bb2a)) -* **deps:** update dependency @auth/core to ^0.28.1 ([#266](https://github.com/homarr-labs/homarr/issues/266)) ([c72f4bb](https://github.com/homarr-labs/homarr/commit/c72f4bb80de55c6a7dd94e142ce3b27c9073d33e)) -* **deps:** update dependency @auth/core to ^0.28.2 ([#292](https://github.com/homarr-labs/homarr/issues/292)) ([ba16ba1](https://github.com/homarr-labs/homarr/commit/ba16ba138209e843f1ee7304ebe1af138b6995fa)) -* **deps:** update dependency @auth/core to ^0.29.0 ([#327](https://github.com/homarr-labs/homarr/issues/327)) ([719d1cd](https://github.com/homarr-labs/homarr/commit/719d1cd845a3d6565c01d4f1846e9192038c1ce2)) -* **deps:** update dependency @auth/core to ^0.30.0 ([#358](https://github.com/homarr-labs/homarr/issues/358)) ([f6c0f3a](https://github.com/homarr-labs/homarr/commit/f6c0f3ab78f68cffc1ad2305c19f22b725b7a037)) -* **deps:** update dependency @auth/core to ^0.31.0 ([#473](https://github.com/homarr-labs/homarr/issues/473)) ([95ddd03](https://github.com/homarr-labs/homarr/commit/95ddd03763532658c620c50c698c14ed7cd01894)) -* **deps:** update dependency @auth/core to ^0.32.0 ([#603](https://github.com/homarr-labs/homarr/issues/603)) ([dc3b007](https://github.com/homarr-labs/homarr/commit/dc3b00736eabc4a65febb6ae9a8fd9779edb1cdf)) -* **deps:** update dependency @auth/core to ^0.33.0 ([#693](https://github.com/homarr-labs/homarr/issues/693)) ([171fe40](https://github.com/homarr-labs/homarr/commit/171fe40fd59ee1b21bf825a59b0f1792f627262f)) -* **deps:** update dependency @auth/core to ^0.34.0 ([#700](https://github.com/homarr-labs/homarr/issues/700)) ([9087f4b](https://github.com/homarr-labs/homarr/commit/9087f4bfdf263490b6d0e318e1af957dba493f09)) -* **deps:** update dependency @auth/core to ^0.34.1 ([#702](https://github.com/homarr-labs/homarr/issues/702)) ([05702be](https://github.com/homarr-labs/homarr/commit/05702bede88f86ef9014b8f7efa49b8d8a3ceca4)) -* **deps:** update dependency @auth/core to ^0.34.2 ([#876](https://github.com/homarr-labs/homarr/issues/876)) ([9181f11](https://github.com/homarr-labs/homarr/commit/9181f11b137f6327b558fabf6fe8b79de7ff345b)) -* **deps:** update dependency @auth/core to ^0.35.0 ([#1129](https://github.com/homarr-labs/homarr/issues/1129)) ([f9cc34c](https://github.com/homarr-labs/homarr/commit/f9cc34c12f1c8c3334f34a72322852a1e9e8e007)) -* **deps:** update dependency @auth/core to ^0.35.1 ([#1176](https://github.com/homarr-labs/homarr/issues/1176)) ([16e7f93](https://github.com/homarr-labs/homarr/commit/16e7f938bd2604cc2067466b56725ebe9f9743f9)) -* **deps:** update dependency @auth/core to ^0.35.2 ([#1180](https://github.com/homarr-labs/homarr/issues/1180)) ([f495383](https://github.com/homarr-labs/homarr/commit/f495383bcf2a725d82628067c19e763c84c8bdc1)) -* **deps:** update dependency @auth/core to ^0.35.3 ([#1193](https://github.com/homarr-labs/homarr/issues/1193)) ([1994a59](https://github.com/homarr-labs/homarr/commit/1994a5938d5cbb33a1e6cae0676d9350c9424f82)) -* **deps:** update dependency @auth/core to ^0.36.0 ([#1250](https://github.com/homarr-labs/homarr/issues/1250)) ([d0d2a82](https://github.com/homarr-labs/homarr/commit/d0d2a82a68f9155564d92ce925ac7d8cd80f42ee)) -* **deps:** update dependency @auth/core to ^0.37.0 ([#1272](https://github.com/homarr-labs/homarr/issues/1272)) ([8bcba35](https://github.com/homarr-labs/homarr/commit/8bcba350d58564b03cb2ff3296f8ddf2c77d0dae)) -* **deps:** update dependency @auth/core to ^0.37.1 ([#1323](https://github.com/homarr-labs/homarr/issues/1323)) ([dac2b50](https://github.com/homarr-labs/homarr/commit/dac2b5063bb892cdc5079a9957eb9199b6d62738)) -* **deps:** update dependency @auth/core to ^0.37.2 ([#1338](https://github.com/homarr-labs/homarr/issues/1338)) ([aa2d2f8](https://github.com/homarr-labs/homarr/commit/aa2d2f8c4b1b50e07cb68fb1bd76d6561fedb716)) -* **deps:** update dependency @auth/core to ^0.37.3 ([#1416](https://github.com/homarr-labs/homarr/issues/1416)) ([7a07f57](https://github.com/homarr-labs/homarr/commit/7a07f57d0c34fb2c5e98680b351254ab32e9a593)) -* **deps:** update dependency @auth/core to ^0.37.4 ([#1492](https://github.com/homarr-labs/homarr/issues/1492)) ([d4f0aa7](https://github.com/homarr-labs/homarr/commit/d4f0aa761d95cb2b7f72787b95b0033faba072c3)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.5.0 ([#30](https://github.com/homarr-labs/homarr/issues/30)) ([191d773](https://github.com/homarr-labs/homarr/commit/191d773aaf55209d67be841e4f24f24e6439ca85)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.6.3 ([#52](https://github.com/homarr-labs/homarr/issues/52)) ([6797cca](https://github.com/homarr-labs/homarr/commit/6797cca25945da5944966622c0cba5a9e0a263fa)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.7.0 ([#90](https://github.com/homarr-labs/homarr/issues/90)) ([1139352](https://github.com/homarr-labs/homarr/commit/11393525d9bfc192818c1ef2d80c3d41f56fcca3)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.8.0 ([#170](https://github.com/homarr-labs/homarr/issues/170)) ([50fd4c1](https://github.com/homarr-labs/homarr/commit/50fd4c17adfac217d7908d612fe10ee97171edac)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.8.1 ([#267](https://github.com/homarr-labs/homarr/issues/267)) ([98a8eaa](https://github.com/homarr-labs/homarr/commit/98a8eaac0950e53864cb87ee722f353df6c56c56)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.8.2 ([#293](https://github.com/homarr-labs/homarr/issues/293)) ([fbc69f6](https://github.com/homarr-labs/homarr/commit/fbc69f6078ddae657646247db77c425773ab5170)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.9.0 ([#328](https://github.com/homarr-labs/homarr/issues/328)) ([7fb0dec](https://github.com/homarr-labs/homarr/commit/7fb0decd5bde0855a191c69f52f426d104bf7151)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.1.0 ([#474](https://github.com/homarr-labs/homarr/issues/474)) ([82d41ab](https://github.com/homarr-labs/homarr/commit/82d41abf460556ce62f04a700d47208201bdd595)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.2.0 ([#604](https://github.com/homarr-labs/homarr/issues/604)) ([2e044ac](https://github.com/homarr-labs/homarr/commit/2e044ac871fb451160b0619ee430eba3f962c668)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.3.0 ([#694](https://github.com/homarr-labs/homarr/issues/694)) ([4291bde](https://github.com/homarr-labs/homarr/commit/4291bde94f6017c92d44dce50cb795d46f54f9c6)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.4.1 ([#701](https://github.com/homarr-labs/homarr/issues/701)) ([324a643](https://github.com/homarr-labs/homarr/commit/324a643fd1abad4b98bcd14934e4bd23f04e8260)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.4.2 ([#877](https://github.com/homarr-labs/homarr/issues/877)) ([37309e0](https://github.com/homarr-labs/homarr/commit/37309e07279ad46cb3e9e4a29033966d5a34d00a)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.5.0 ([#1130](https://github.com/homarr-labs/homarr/issues/1130)) ([929054d](https://github.com/homarr-labs/homarr/commit/929054d5bddd9863671227c2bc71e07ff4b197be)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.5.1 ([#1177](https://github.com/homarr-labs/homarr/issues/1177)) ([4e431b4](https://github.com/homarr-labs/homarr/commit/4e431b4f8971f18387f84553d1e644980733b383)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.5.2 ([#1181](https://github.com/homarr-labs/homarr/issues/1181)) ([17d6229](https://github.com/homarr-labs/homarr/commit/17d6229a0fadb56f2522256a03e15cca3fb7948e)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.5.3 ([#1194](https://github.com/homarr-labs/homarr/issues/1194)) ([adb59b2](https://github.com/homarr-labs/homarr/commit/adb59b292bd5b6df50c60eac17b2a77d3d28696c)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.6.0 ([#1251](https://github.com/homarr-labs/homarr/issues/1251)) ([9c5ca6f](https://github.com/homarr-labs/homarr/commit/9c5ca6f9069f8b6089212638009d098b3d76298c)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.6.1 ([#1258](https://github.com/homarr-labs/homarr/issues/1258)) ([dea6254](https://github.com/homarr-labs/homarr/commit/dea62547e0f51b6607eef5d278202081e6100509)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.0 ([#1273](https://github.com/homarr-labs/homarr/issues/1273)) ([a44ead0](https://github.com/homarr-labs/homarr/commit/a44ead09a39ff3d83d646622f29b4c236d078dc4)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.1 ([#1324](https://github.com/homarr-labs/homarr/issues/1324)) ([b1393fa](https://github.com/homarr-labs/homarr/commit/b1393fa59b35d84968fd5d6ecddb29e3c22b4aa3)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.2 ([#1339](https://github.com/homarr-labs/homarr/issues/1339)) ([c5cc21a](https://github.com/homarr-labs/homarr/commit/c5cc21a4b0537d2396ba8fe79eaeff0a008a5e75)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.3 ([#1417](https://github.com/homarr-labs/homarr/issues/1417)) ([b45eeb9](https://github.com/homarr-labs/homarr/commit/b45eeb95e94b1288bb97b45b1dd6eca3728cde72)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.4 ([#1493](https://github.com/homarr-labs/homarr/issues/1493)) ([e9a74a0](https://github.com/homarr-labs/homarr/commit/e9a74a01b900f083143b93c8df73fcaa98009ea0)) -* **deps:** update dependency @auth/drizzle-adapter to v1 ([#359](https://github.com/homarr-labs/homarr/issues/359)) ([ea528ea](https://github.com/homarr-labs/homarr/commit/ea528ea076fec672d7ee57a23ee66244d987f103)) -* **deps:** update dependency @ctrl/deluge to ^7.1.0 ([#1776](https://github.com/homarr-labs/homarr/issues/1776)) ([ecae80d](https://github.com/homarr-labs/homarr/commit/ecae80d741213f12ff08f87992cc4d906cbe0085)) -* **deps:** update dependency @ctrl/deluge to v7 ([#1468](https://github.com/homarr-labs/homarr/issues/1468)) ([70f9dc5](https://github.com/homarr-labs/homarr/commit/70f9dc54606d2518afdd5cef84f6623cfdfa8fd3)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.1.0 ([#1466](https://github.com/homarr-labs/homarr/issues/1466)) ([27931be](https://github.com/homarr-labs/homarr/commit/27931be9825a0ee1a4942abb560127c4e2286aa4)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.2.0 ([#1768](https://github.com/homarr-labs/homarr/issues/1768)) ([8b416a6](https://github.com/homarr-labs/homarr/commit/8b416a6dd354b22a3e4f527b793dde2c538b1e6a)) -* **deps:** update dependency @ctrl/transmission to ^7.1.0 ([#1467](https://github.com/homarr-labs/homarr/issues/1467)) ([f220bb6](https://github.com/homarr-labs/homarr/commit/f220bb62445219f9d010e9a28bcb78789a63d368)) -* **deps:** update dependency @ctrl/transmission to ^7.2.0 ([#1777](https://github.com/homarr-labs/homarr/issues/1777)) ([3e2ffbd](https://github.com/homarr-labs/homarr/commit/3e2ffbd7bf2793ff58136ed75b38e0d96b4a5ca8)) -* **deps:** update dependency @ctrl/transmission to v7 ([#1103](https://github.com/homarr-labs/homarr/issues/1103)) ([5986160](https://github.com/homarr-labs/homarr/commit/59861602652a5717e74a342059cd403151d8a6fd)) -* **deps:** update dependency @dnd-kit/core to ^6.2.0 ([#1534](https://github.com/homarr-labs/homarr/issues/1534)) ([5a3d974](https://github.com/homarr-labs/homarr/commit/5a3d9745d985cccca69f9bbfdf0d0ee922de8cbc)) -* **deps:** update dependency @dnd-kit/core to ^6.3.0 ([#1608](https://github.com/homarr-labs/homarr/issues/1608)) ([6c7cdb3](https://github.com/homarr-labs/homarr/commit/6c7cdb3adb6178888e4e3a5e328433f19803cd29)) -* **deps:** update dependency @dnd-kit/core to ^6.3.1 ([#1613](https://github.com/homarr-labs/homarr/issues/1613)) ([79d52b6](https://github.com/homarr-labs/homarr/commit/79d52b690533973e8ff00a1b4920c3f2cbcd417b)) -* **deps:** update dependency @dnd-kit/sortable to v10 ([#1609](https://github.com/homarr-labs/homarr/issues/1609)) ([1037a74](https://github.com/homarr-labs/homarr/commit/1037a747ea0c6e59fc2efb6562c49d4a3bca7465)) -* **deps:** update dependency @dnd-kit/sortable to v9 ([#1535](https://github.com/homarr-labs/homarr/issues/1535)) ([b68977c](https://github.com/homarr-labs/homarr/commit/b68977c52c84ae9742fd52b554d4838409ab76a6)) -* **deps:** update dependency @drizzle-team/brocli to ^0.10.0 ([#937](https://github.com/homarr-labs/homarr/issues/937)) ([a80b49a](https://github.com/homarr-labs/homarr/commit/a80b49a03e8174a1c4ae7e7abc8c9d32939946b6)) -* **deps:** update dependency @drizzle-team/brocli to ^0.10.1 ([#974](https://github.com/homarr-labs/homarr/issues/974)) ([ba3f173](https://github.com/homarr-labs/homarr/commit/ba3f1739f4be88b84f7c782936fc5c91bfa49fae)) -* **deps:** update dependency @drizzle-team/brocli to ^0.10.2 ([#1380](https://github.com/homarr-labs/homarr/issues/1380)) ([8d2d151](https://github.com/homarr-labs/homarr/commit/8d2d151787b4596e2af79e00345fc1ba40884535)) -* **deps:** update dependency @drizzle-team/brocli to ^0.11.0 ([#1427](https://github.com/homarr-labs/homarr/issues/1427)) ([e332a6f](https://github.com/homarr-labs/homarr/commit/e332a6fcbe719defc29f0ba7ada88fb3434784d9)) -* **deps:** update dependency @homarr/gridstack to v1.0.2 ([#542](https://github.com/homarr-labs/homarr/issues/542)) ([1569862](https://github.com/homarr-labs/homarr/commit/1569862baf77b3a8475c4aacc6f7ae5774be09cd)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.2.0 ([#227](https://github.com/homarr-labs/homarr/issues/227)) ([179ceae](https://github.com/homarr-labs/homarr/commit/179ceaebf05f53c434e245d1eb7b95a5be3c4d96)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.2.1 ([#243](https://github.com/homarr-labs/homarr/issues/243)) ([c5428ef](https://github.com/homarr-labs/homarr/commit/c5428efd60fa5217c7191bc3404cac420e9539be)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.3.0 ([#718](https://github.com/homarr-labs/homarr/issues/718)) ([7a14c25](https://github.com/homarr-labs/homarr/commit/7a14c255be48b9b8e92f7918f6af68a211e2666e)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.3.1 ([#784](https://github.com/homarr-labs/homarr/issues/784)) ([0a4ff4b](https://github.com/homarr-labs/homarr/commit/0a4ff4b883a40970e4d4b733aa096929ae6ec11a)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.4.0 ([#1441](https://github.com/homarr-labs/homarr/issues/1441)) ([7cd3156](https://github.com/homarr-labs/homarr/commit/7cd3156bd627b983ebe7eba4ace82535b8a5e913)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.4.1 ([#1936](https://github.com/homarr-labs/homarr/issues/1936)) ([1e406a8](https://github.com/homarr-labs/homarr/commit/1e406a8a58ebdf51f59b5aa0e079baf46c6d02cf)) -* **deps:** update dependency @jellyfin/sdk to ^0.11.0 ([#1384](https://github.com/homarr-labs/homarr/issues/1384)) ([7a4c9a9](https://github.com/homarr-labs/homarr/commit/7a4c9a9b2e72247577a61285546b0f74f5055d53)) -* **deps:** update dependency @million/lint to v1.0.0 ([#1212](https://github.com/homarr-labs/homarr/issues/1212)) ([b3f6645](https://github.com/homarr-labs/homarr/commit/b3f6645783bc4132480669113dfddac0939c5aeb)) -* **deps:** update dependency @million/lint to v1.0.10 ([#1293](https://github.com/homarr-labs/homarr/issues/1293)) ([ed52b26](https://github.com/homarr-labs/homarr/commit/ed52b26f6d6938d653527af94f341c3b5a69e093)) -* **deps:** update dependency @million/lint to v1.0.11 ([#1294](https://github.com/homarr-labs/homarr/issues/1294)) ([c707b4b](https://github.com/homarr-labs/homarr/commit/c707b4b10ff38e6cf299a503bd8176313d47f3ff)) -* **deps:** update dependency @million/lint to v1.0.12 ([#1459](https://github.com/homarr-labs/homarr/issues/1459)) ([ce32b48](https://github.com/homarr-labs/homarr/commit/ce32b4839d5074a38922c8bff389524d3e4619f4)) -* **deps:** update dependency @million/lint to v1.0.13 ([#1557](https://github.com/homarr-labs/homarr/issues/1557)) ([f2268c8](https://github.com/homarr-labs/homarr/commit/f2268c8041955c39206b1b8373278f170f76eae0)) -* **deps:** update dependency @million/lint to v1.0.14 ([#1647](https://github.com/homarr-labs/homarr/issues/1647)) ([4c7058b](https://github.com/homarr-labs/homarr/commit/4c7058b159858f3873aaf5dd95d5581696b3f30f)) -* **deps:** update dependency @million/lint to v1.0.7 ([#1225](https://github.com/homarr-labs/homarr/issues/1225)) ([770a0d6](https://github.com/homarr-labs/homarr/commit/770a0d63f9bab2f06e859bebe525ab9b222a5351)) -* **deps:** update dependency @million/lint to v1.0.8 ([#1231](https://github.com/homarr-labs/homarr/issues/1231)) ([547287d](https://github.com/homarr-labs/homarr/commit/547287dba1d37858f5406011bcbed20cbce08c9a)) -* **deps:** update dependency @million/lint to v1.0.9 ([#1255](https://github.com/homarr-labs/homarr/issues/1255)) ([1d281c0](https://github.com/homarr-labs/homarr/commit/1d281c0cc947612b21f65a1beca41e37a81403b0)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.10.1 ([#375](https://github.com/homarr-labs/homarr/issues/375)) ([73a72dc](https://github.com/homarr-labs/homarr/commit/73a72dc6755ee39fb1282ddde347a84d6aa8419f)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.11.0 ([#851](https://github.com/homarr-labs/homarr/issues/851)) ([88e5ac2](https://github.com/homarr-labs/homarr/commit/88e5ac2f71ed21e9a99969210b293e51d34b5106)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.11.1 ([#1029](https://github.com/homarr-labs/homarr/issues/1029)) ([e193c1c](https://github.com/homarr-labs/homarr/commit/e193c1c6f52c3a3e0072262227af82481d71b088)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.8.0 ([#31](https://github.com/homarr-labs/homarr/issues/31)) ([f8a3aae](https://github.com/homarr-labs/homarr/commit/f8a3aae1163d1b5d645e7e9fe0228846a856d4e6)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.9.2 ([#69](https://github.com/homarr-labs/homarr/issues/69)) ([11d1568](https://github.com/homarr-labs/homarr/commit/11d15687149f2bf55aba1999f368436b15b4a9ce)) -* **deps:** update dependency @tabler/icons-react to ^2.47.0 ([#32](https://github.com/homarr-labs/homarr/issues/32)) ([6a892e0](https://github.com/homarr-labs/homarr/commit/6a892e02c8aadcbfb192a65b56543ee27a3dc966)) -* **deps:** update dependency @tabler/icons-react to ^3.0.3 ([#229](https://github.com/homarr-labs/homarr/issues/229)) ([64354e4](https://github.com/homarr-labs/homarr/commit/64354e4b43ce4c7e9e2f1c816e2af8e3c15d905b)) -* **deps:** update dependency @tabler/icons-react to ^3.1.0 ([#236](https://github.com/homarr-labs/homarr/issues/236)) ([333aaf3](https://github.com/homarr-labs/homarr/commit/333aaf34dc85d24b9f7cf6451d65f566369ffa21)) -* **deps:** update dependency @tabler/icons-react to ^3.10.0 ([#769](https://github.com/homarr-labs/homarr/issues/769)) ([bf70143](https://github.com/homarr-labs/homarr/commit/bf70143ccab2ef6a35d739279af91c51e0be72e4)) -* **deps:** update dependency @tabler/icons-react to ^3.11.0 ([#818](https://github.com/homarr-labs/homarr/issues/818)) ([30669d2](https://github.com/homarr-labs/homarr/commit/30669d23e32974cbea3881fe2a0712985f59394d)) -* **deps:** update dependency @tabler/icons-react to ^3.12.0 ([#944](https://github.com/homarr-labs/homarr/issues/944)) ([21c0e4b](https://github.com/homarr-labs/homarr/commit/21c0e4b35471071cd73472a116f42550a4b7a509)) -* **deps:** update dependency @tabler/icons-react to ^3.13.0 ([#1034](https://github.com/homarr-labs/homarr/issues/1034)) ([2ea0d04](https://github.com/homarr-labs/homarr/commit/2ea0d04c71087bf56fd85c36955ba62ccf78e94b)) -* **deps:** update dependency @tabler/icons-react to ^3.14.0 ([#1039](https://github.com/homarr-labs/homarr/issues/1039)) ([961fca0](https://github.com/homarr-labs/homarr/commit/961fca0f647e569ee87a787d58e36c3c5f4fdedb)) -* **deps:** update dependency @tabler/icons-react to ^3.15.0 ([#1085](https://github.com/homarr-labs/homarr/issues/1085)) ([7b6301e](https://github.com/homarr-labs/homarr/commit/7b6301e498d608099f462b30177e8067bb0647b3)) -* **deps:** update dependency @tabler/icons-react to ^3.16.0 ([#1096](https://github.com/homarr-labs/homarr/issues/1096)) ([18c1da4](https://github.com/homarr-labs/homarr/commit/18c1da4a6296aadda9e9ecd88f112c1302b3e3ee)) -* **deps:** update dependency @tabler/icons-react to ^3.17.0 ([#1126](https://github.com/homarr-labs/homarr/issues/1126)) ([6685f4c](https://github.com/homarr-labs/homarr/commit/6685f4c8060867ec32e28c8ddfa351791feeaa53)) -* **deps:** update dependency @tabler/icons-react to ^3.18.0 ([#1188](https://github.com/homarr-labs/homarr/issues/1188)) ([1bce7a3](https://github.com/homarr-labs/homarr/commit/1bce7a300d616ad05dcf191a859af2bb665a41dd)) -* **deps:** update dependency @tabler/icons-react to ^3.19.0 ([#1197](https://github.com/homarr-labs/homarr/issues/1197)) ([8aaa4f5](https://github.com/homarr-labs/homarr/commit/8aaa4f5856ccac86ddd0e1e5ce3fc0178fda9597)) -* **deps:** update dependency @tabler/icons-react to ^3.2.0 ([#342](https://github.com/homarr-labs/homarr/issues/342)) ([c40533e](https://github.com/homarr-labs/homarr/commit/c40533e758ee60709a42b54e41345583cab40e51)) -* **deps:** update dependency @tabler/icons-react to ^3.20.0 ([#1359](https://github.com/homarr-labs/homarr/issues/1359)) ([30d4464](https://github.com/homarr-labs/homarr/commit/30d4464067583632bd9549b703dd886cac61a3f2)) -* **deps:** update dependency @tabler/icons-react to ^3.21.0 ([#1382](https://github.com/homarr-labs/homarr/issues/1382)) ([958c62c](https://github.com/homarr-labs/homarr/commit/958c62c92689ccdb466f7760dd053ca5f51099dc)) -* **deps:** update dependency @tabler/icons-react to ^3.22.0 ([#1471](https://github.com/homarr-labs/homarr/issues/1471)) ([a1fddaa](https://github.com/homarr-labs/homarr/commit/a1fddaa6a61fdcbc892e704bea8a0a0b73ab1e1e)) -* **deps:** update dependency @tabler/icons-react to ^3.23.0 ([#1566](https://github.com/homarr-labs/homarr/issues/1566)) ([fd42bde](https://github.com/homarr-labs/homarr/commit/fd42bde76ddf46f51f787cab832636f33187b006)) -* **deps:** update dependency @tabler/icons-react to ^3.24.0 ([#1587](https://github.com/homarr-labs/homarr/issues/1587)) ([23cc465](https://github.com/homarr-labs/homarr/commit/23cc4659c4cd14e7f95253e56fddd3a010d908c1)) -* **deps:** update dependency @tabler/icons-react to ^3.26.0 ([#1667](https://github.com/homarr-labs/homarr/issues/1667)) ([8c596bf](https://github.com/homarr-labs/homarr/commit/8c596bf5fa9119bd22375f2fc8408ebac8eb0bcb)) -* **deps:** update dependency @tabler/icons-react to ^3.27.1 ([#1875](https://github.com/homarr-labs/homarr/issues/1875)) ([e46b1c4](https://github.com/homarr-labs/homarr/commit/e46b1c49f9bb1320f82b2de0585f7e2c7bc72c54)) -* **deps:** update dependency @tabler/icons-react to ^3.28.1 ([#1891](https://github.com/homarr-labs/homarr/issues/1891)) ([ffdc8d3](https://github.com/homarr-labs/homarr/commit/ffdc8d34960dea0172c50a1d93a4cd14997b13ac)) -* **deps:** update dependency @tabler/icons-react to ^3.3.0 ([#405](https://github.com/homarr-labs/homarr/issues/405)) ([46bb3ee](https://github.com/homarr-labs/homarr/commit/46bb3ee0c98f1a0c24ef1111d5ffd86b0446c9f1)) -* **deps:** update dependency @tabler/icons-react to ^3.4.0 ([#501](https://github.com/homarr-labs/homarr/issues/501)) ([3fe1a19](https://github.com/homarr-labs/homarr/commit/3fe1a19e378810c86f4526d218758becd71bbe9f)) -* **deps:** update dependency @tabler/icons-react to ^3.5.0 ([#532](https://github.com/homarr-labs/homarr/issues/532)) ([63f7431](https://github.com/homarr-labs/homarr/commit/63f743175edbc2d46c6eb0cb7f7a41e8007cd038)) -* **deps:** update dependency @tabler/icons-react to ^3.6.0 ([#664](https://github.com/homarr-labs/homarr/issues/664)) ([e4c6864](https://github.com/homarr-labs/homarr/commit/e4c6864a94fc0dc0449249043b2cf8037783c99f)) -* **deps:** update dependency @tabler/icons-react to ^3.7.0 ([#715](https://github.com/homarr-labs/homarr/issues/715)) ([6a3a846](https://github.com/homarr-labs/homarr/commit/6a3a8465e701aa4449d9993151ebace0f71542b2)) -* **deps:** update dependency @tabler/icons-react to ^3.8.0 ([#737](https://github.com/homarr-labs/homarr/issues/737)) ([e12531c](https://github.com/homarr-labs/homarr/commit/e12531ccccfdfafd21c6cb62533b1c4752a13e80)) -* **deps:** update dependency @tabler/icons-react to ^3.9.0 ([#745](https://github.com/homarr-labs/homarr/issues/745)) ([75e5a6c](https://github.com/homarr-labs/homarr/commit/75e5a6c42ff41b72b1d86fcac61f7d8c89ac337d)) -* **deps:** update dependency @tabler/icons-react to v3 ([#215](https://github.com/homarr-labs/homarr/issues/215)) ([1c222ed](https://github.com/homarr-labs/homarr/commit/1c222ed89cd53dccc41445631f777424705a444a)) -* **deps:** update dependency @tanstack/react-query-devtools to ^5.21.0 ([#101](https://github.com/homarr-labs/homarr/issues/101)) ([4ea1d14](https://github.com/homarr-labs/homarr/commit/4ea1d14966aebf7477fdfebce0e1bf3833ac70c2)) -* **deps:** update dependency @tanstack/react-query-devtools to ^5.21.5 ([#130](https://github.com/homarr-labs/homarr/issues/130)) ([dbf02c6](https://github.com/homarr-labs/homarr/commit/dbf02c62641e541682a39ebd5bba4a4cc87d94ab)) -* **deps:** update dependency @tanstack/react-query-devtools to ^5.54.0 ([#1060](https://github.com/homarr-labs/homarr/issues/1060)) ([6ea4a74](https://github.com/homarr-labs/homarr/commit/6ea4a74675b271573e25fb88d8ecd62f9f83be12)) -* **deps:** update dependency @tanstack/react-query-devtools to ^5.58.0 ([#1175](https://github.com/homarr-labs/homarr/issues/1175)) ([e2414f5](https://github.com/homarr-labs/homarr/commit/e2414f5e9f6cca92e43a7c8e551cd84d73925db6)) -* **deps:** update dependency @tanstack/react-query-next-experimental to v5.41.0 ([#639](https://github.com/homarr-labs/homarr/issues/639)) ([38c32cb](https://github.com/homarr-labs/homarr/commit/38c32cbece6e400482d1fd69c7b6bcf971224848)) -* **deps:** update dependency @tanstack/react-query-next-experimental to v5.46.0 ([#699](https://github.com/homarr-labs/homarr/issues/699)) ([8d7a7bc](https://github.com/homarr-labs/homarr/commit/8d7a7bc9b1d8051be6a879cecb405934e508fc21)) -* **deps:** update dependency @trpc/client to v11.0.0-next-beta.318 ([#234](https://github.com/homarr-labs/homarr/issues/234)) ([ab55a13](https://github.com/homarr-labs/homarr/commit/ab55a1357dec7bbd8b9ce68d635f89078954d091)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.330 ([#288](https://github.com/homarr-labs/homarr/issues/288)) ([d8d25d5](https://github.com/homarr-labs/homarr/commit/d8d25d50379aa4b4514e61418a8bdf0430063256)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.332 ([#308](https://github.com/homarr-labs/homarr/issues/308)) ([50c1624](https://github.com/homarr-labs/homarr/commit/50c162444c45c954755fcca22bed6e3d1443f950)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.334 ([#334](https://github.com/homarr-labs/homarr/issues/334)) ([ed5e5d1](https://github.com/homarr-labs/homarr/commit/ed5e5d1edcbd5d0d8cefa9664ebe0f3d08ae1499)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.345 ([#351](https://github.com/homarr-labs/homarr/issues/351)) ([0ba6455](https://github.com/homarr-labs/homarr/commit/0ba64559829f2257d3ce59493e9ed9d012f88bce)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.354 ([#368](https://github.com/homarr-labs/homarr/issues/368)) ([d88b6de](https://github.com/homarr-labs/homarr/commit/d88b6def759bf8a4980aa67e7fa652be7def8c95)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.359 ([#394](https://github.com/homarr-labs/homarr/issues/394)) ([47accae](https://github.com/homarr-labs/homarr/commit/47accae90d7d56c5aa1ea33d74350addd2038a10)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.361 ([#404](https://github.com/homarr-labs/homarr/issues/404)) ([6dff7c4](https://github.com/homarr-labs/homarr/commit/6dff7c48e2622a1e0df1c3f8ab86450a0899d395)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.362 ([#407](https://github.com/homarr-labs/homarr/issues/407)) ([0020680](https://github.com/homarr-labs/homarr/commit/0020680ca097b82ade46fc7e82c83d0da60d6e1c)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.364 ([#409](https://github.com/homarr-labs/homarr/issues/409)) ([7bc7bd6](https://github.com/homarr-labs/homarr/commit/7bc7bd6bf9dbdeaeb6b62d35cb7fb3db6074245f)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.366 ([#454](https://github.com/homarr-labs/homarr/issues/454)) ([1172d84](https://github.com/homarr-labs/homarr/commit/1172d842235cf8e01279dc2ee44360b0773b3b20)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.373 ([#493](https://github.com/homarr-labs/homarr/issues/493)) ([1abf441](https://github.com/homarr-labs/homarr/commit/1abf441cdba8a8f3a32600c197d1e414fb41f655)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.374 ([#522](https://github.com/homarr-labs/homarr/issues/522)) ([eb0db3e](https://github.com/homarr-labs/homarr/commit/eb0db3ec4efc7d07bdb24dac6299d61b3164f666)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.377 ([#553](https://github.com/homarr-labs/homarr/issues/553)) ([abdf9bc](https://github.com/homarr-labs/homarr/commit/abdf9bc122cddb7b97ec48a8aacca27b382c02a3)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.382 ([#568](https://github.com/homarr-labs/homarr/issues/568)) ([e448eeb](https://github.com/homarr-labs/homarr/commit/e448eeb0a62a91aeab31547055cc7b94b5de9bcb)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.383 ([#608](https://github.com/homarr-labs/homarr/issues/608)) ([869efbc](https://github.com/homarr-labs/homarr/commit/869efbc6388bcd48b49d6f2b27f7e2609855ceab)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.390 ([#609](https://github.com/homarr-labs/homarr/issues/609)) ([812b8d8](https://github.com/homarr-labs/homarr/commit/812b8d8306672b99d2bfe5f0284bc92a585f8284)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.394 ([#626](https://github.com/homarr-labs/homarr/issues/626)) ([5bf1ddd](https://github.com/homarr-labs/homarr/commit/5bf1ddde4b509373a641f29c480b60598ada7bd9)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.396 ([#634](https://github.com/homarr-labs/homarr/issues/634)) ([475f472](https://github.com/homarr-labs/homarr/commit/475f472cb0885bf70133e08f3bde08830476ce39)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.401 ([#648](https://github.com/homarr-labs/homarr/issues/648)) ([84851db](https://github.com/homarr-labs/homarr/commit/84851db333a08ecc7d7255e0a2300e45d50a446b)) -* **deps:** update dependency @typescript-eslint/eslint-plugin to ^7.4.0 ([#271](https://github.com/homarr-labs/homarr/issues/271)) ([dd7f04e](https://github.com/homarr-labs/homarr/commit/dd7f04e3955644dcac7acf4446b454aaaa7ee387)) -* **deps:** update dependency @typescript-eslint/parser to ^7.4.0 ([#270](https://github.com/homarr-labs/homarr/issues/270)) ([c4a4452](https://github.com/homarr-labs/homarr/commit/c4a445283901128a738af553f54a912a48661f1d)) -* **deps:** update dependency @umami/node to ^0.4.0 ([#1000](https://github.com/homarr-labs/homarr/issues/1000)) ([72aed22](https://github.com/homarr-labs/homarr/commit/72aed221254b3bcfdaad3f26b2984ddbf7e4e152)) -* **deps:** update dependency better-sqlite3 to ^10.1.0 ([#584](https://github.com/homarr-labs/homarr/issues/584)) ([6d46e91](https://github.com/homarr-labs/homarr/commit/6d46e91a7cbbe6a892453c040da8b7b841d9ad2c)) -* **deps:** update dependency better-sqlite3 to ^11.1.1 ([#720](https://github.com/homarr-labs/homarr/issues/720)) ([c8d4461](https://github.com/homarr-labs/homarr/commit/c8d4461ab82b57c4719fcc805d75caac7db381ee)) -* **deps:** update dependency better-sqlite3 to ^11.1.2 ([#736](https://github.com/homarr-labs/homarr/issues/736)) ([6aecd1a](https://github.com/homarr-labs/homarr/commit/6aecd1a713575374b49253e074e4c1d52db58b77)) -* **deps:** update dependency better-sqlite3 to ^11.2.0 ([#1004](https://github.com/homarr-labs/homarr/issues/1004)) ([4e6437a](https://github.com/homarr-labs/homarr/commit/4e6437a180e3c25e6265803f2179d9caf119b64d)) -* **deps:** update dependency better-sqlite3 to ^11.2.1 ([#1006](https://github.com/homarr-labs/homarr/issues/1006)) ([051d57b](https://github.com/homarr-labs/homarr/commit/051d57bb399cea562f89b52a179d77c6bc90a3fc)) -* **deps:** update dependency better-sqlite3 to ^11.3.0 ([#1092](https://github.com/homarr-labs/homarr/issues/1092)) ([ed0c613](https://github.com/homarr-labs/homarr/commit/ed0c6136e61c46a9b90c5bbd1a85abbf4dfb68f5)) -* **deps:** update dependency better-sqlite3 to ^11.4.0 ([#1320](https://github.com/homarr-labs/homarr/issues/1320)) ([601af7a](https://github.com/homarr-labs/homarr/commit/601af7acd811a822a7d61d03094a61192e6947ed)) -* **deps:** update dependency better-sqlite3 to ^11.5.0 ([#1350](https://github.com/homarr-labs/homarr/issues/1350)) ([d599390](https://github.com/homarr-labs/homarr/commit/d599390512a169e15a4f9a1bff5f45eaf2e18834)) -* **deps:** update dependency better-sqlite3 to ^11.6.0 ([#1548](https://github.com/homarr-labs/homarr/issues/1548)) ([93aedd9](https://github.com/homarr-labs/homarr/commit/93aedd994f405a1e60913086900015c94a364962)) -* **deps:** update dependency better-sqlite3 to ^11.7.0 ([#1628](https://github.com/homarr-labs/homarr/issues/1628)) ([753e0ec](https://github.com/homarr-labs/homarr/commit/753e0ecad2f57ca1fa2202a9678ea7c2f1e67c5b)) -* **deps:** update dependency better-sqlite3 to ^11.7.2 ([#1858](https://github.com/homarr-labs/homarr/issues/1858)) ([1f0116d](https://github.com/homarr-labs/homarr/commit/1f0116d725d76845df4b9cce74ef87134edc627a)) -* **deps:** update dependency better-sqlite3 to ^11.8.0 ([#1956](https://github.com/homarr-labs/homarr/issues/1956)) ([34a76c9](https://github.com/homarr-labs/homarr/commit/34a76c98e8358f8b0a92e660a0d46f62b9473cbb)) -* **deps:** update dependency better-sqlite3 to ^9.4.0 ([#33](https://github.com/homarr-labs/homarr/issues/33)) ([00db901](https://github.com/homarr-labs/homarr/commit/00db9018339ae31f07edcd89a023f569aec0dbe5)) -* **deps:** update dependency better-sqlite3 to ^9.4.1 ([#83](https://github.com/homarr-labs/homarr/issues/83)) ([34f06e8](https://github.com/homarr-labs/homarr/commit/34f06e817db014e101e16543cdfc518485990a0d)) -* **deps:** update dependency better-sqlite3 to ^9.4.3 ([#118](https://github.com/homarr-labs/homarr/issues/118)) ([baa541a](https://github.com/homarr-labs/homarr/commit/baa541afa9c2f91bd56ec99bb24fc6cdb585991b)) -* **deps:** update dependency better-sqlite3 to ^9.4.5 ([#302](https://github.com/homarr-labs/homarr/issues/302)) ([7bff8e5](https://github.com/homarr-labs/homarr/commit/7bff8e5148875b72a5218e6856d10249f435b53b)) -* **deps:** update dependency better-sqlite3 to ^9.5.0 ([#335](https://github.com/homarr-labs/homarr/issues/335)) ([48a4b8b](https://github.com/homarr-labs/homarr/commit/48a4b8ba7e6b535fd1828713a0c4fadcbff89ec8)) -* **deps:** update dependency better-sqlite3 to ^9.6.0 ([#386](https://github.com/homarr-labs/homarr/issues/386)) ([45ffbad](https://github.com/homarr-labs/homarr/commit/45ffbadeece8a82dcb1e202e5934335a5d2d8832)) -* **deps:** update dependency better-sqlite3 to v10 ([#479](https://github.com/homarr-labs/homarr/issues/479)) ([f0da1d8](https://github.com/homarr-labs/homarr/commit/f0da1d81a6cd8b425919ffb9460b5f6bbb82ae2a)) -* **deps:** update dependency better-sqlite3 to v11 ([#587](https://github.com/homarr-labs/homarr/issues/587)) ([96150f8](https://github.com/homarr-labs/homarr/commit/96150f802d1c75ed6a10bf05a5f19c259ead581b)) -* **deps:** update dependency chroma-js to ^2.5.0 ([#890](https://github.com/homarr-labs/homarr/issues/890)) ([79cabe6](https://github.com/homarr-labs/homarr/commit/79cabe65801de1c180691f3413ef01939ede14be)) -* **deps:** update dependency chroma-js to ^2.6.0 ([#891](https://github.com/homarr-labs/homarr/issues/891)) ([15171dd](https://github.com/homarr-labs/homarr/commit/15171dd5afd12cbdc459442d2cab0164128381cb)) -* **deps:** update dependency chroma-js to ^3.1.0 ([#1081](https://github.com/homarr-labs/homarr/issues/1081)) ([4f42143](https://github.com/homarr-labs/homarr/commit/4f421433c2fa3918771f9138e45c3b526a6a9396)) -* **deps:** update dependency chroma-js to ^3.1.1 ([#1082](https://github.com/homarr-labs/homarr/issues/1082)) ([6bf0a53](https://github.com/homarr-labs/homarr/commit/6bf0a53d21a47542cceeec93eb90828206f2e81d)) -* **deps:** update dependency chroma-js to ^3.1.2 ([#1289](https://github.com/homarr-labs/homarr/issues/1289)) ([1bc470a](https://github.com/homarr-labs/homarr/commit/1bc470a39feae570a76dc210946ffc18b9bef6ea)) -* **deps:** update dependency chroma-js to v3 ([#992](https://github.com/homarr-labs/homarr/issues/992)) ([3eb9096](https://github.com/homarr-labs/homarr/commit/3eb90968ac8e5de059b3e14c0736433b005f5409)) -* **deps:** update dependency dayjs to ^1.11.11 ([#393](https://github.com/homarr-labs/homarr/issues/393)) ([03c2993](https://github.com/homarr-labs/homarr/commit/03c2993611e992cb24a142f050bdcd763c7813e2)) -* **deps:** update dependency dayjs to ^1.11.12 ([#832](https://github.com/homarr-labs/homarr/issues/832)) ([5c92f6a](https://github.com/homarr-labs/homarr/commit/5c92f6a3cc1febf9d96e394f54d2f5f94d9ab52e)) -* **deps:** update dependency dayjs to ^1.11.13 ([#1001](https://github.com/homarr-labs/homarr/issues/1001)) ([27d08ba](https://github.com/homarr-labs/homarr/commit/27d08baa2d6f82f521dc46a359ce3d24f1ac857a)) -* **deps:** update dependency dockerode to ^4.0.3 ([#1854](https://github.com/homarr-labs/homarr/issues/1854)) ([92f4f94](https://github.com/homarr-labs/homarr/commit/92f4f9421e8f693e6546716f5f04922161e29cdc)) -* **deps:** update dependency dotenv to ^16.4.6 ([#1588](https://github.com/homarr-labs/homarr/issues/1588)) ([716a2ab](https://github.com/homarr-labs/homarr/commit/716a2ab9d1f949748a39858daa330e9df32597fa)) -* **deps:** update dependency dotenv to ^16.4.7 ([#1597](https://github.com/homarr-labs/homarr/issues/1597)) ([31cc1ab](https://github.com/homarr-labs/homarr/commit/31cc1abb51c8867f8f9934815f24de5e190f3142)) -* **deps:** update dependency drizzle-kit to ^0.20.16 ([#362](https://github.com/homarr-labs/homarr/issues/362)) ([f58d0dd](https://github.com/homarr-labs/homarr/commit/f58d0ddd94633468872ccd93f908e39f0ccc9337)) -* **deps:** update dependency drizzle-kit to ^0.20.17 ([#367](https://github.com/homarr-labs/homarr/issues/367)) ([04a3131](https://github.com/homarr-labs/homarr/commit/04a313186f63c4810fdc4f062a94aedf77bf526b)) -* **deps:** update dependency drizzle-kit to ^0.20.18 ([#449](https://github.com/homarr-labs/homarr/issues/449)) ([5eb1d71](https://github.com/homarr-labs/homarr/commit/5eb1d716ded4fb1529e35afa0741646874b74a43)) -* **deps:** update dependency drizzle-kit to ^0.21.1 ([#462](https://github.com/homarr-labs/homarr/issues/462)) ([1ce6fb0](https://github.com/homarr-labs/homarr/commit/1ce6fb0d0fd3f2770ea2a2f3dec7104b03e2e4ff)) -* **deps:** update dependency drizzle-kit to ^0.21.2 ([#495](https://github.com/homarr-labs/homarr/issues/495)) ([8166fdb](https://github.com/homarr-labs/homarr/commit/8166fdb8e22842125933e93325c27fd561f5df02)) -* **deps:** update dependency drizzle-kit to ^0.21.4 ([#535](https://github.com/homarr-labs/homarr/issues/535)) ([56b6d76](https://github.com/homarr-labs/homarr/commit/56b6d76f43e7cfaac080d029a68a55eb243970e7)) -* **deps:** update dependency drizzle-kit to ^0.22.0 ([#588](https://github.com/homarr-labs/homarr/issues/588)) ([d16281b](https://github.com/homarr-labs/homarr/commit/d16281bea7f71bb6ed3292bc47ed3b2d0103e814)) -* **deps:** update dependency drizzle-kit to ^0.22.1 ([#590](https://github.com/homarr-labs/homarr/issues/590)) ([51fb7cb](https://github.com/homarr-labs/homarr/commit/51fb7cb402e45ee9f9bebbc153ec1f37fc4d4158)) -* **deps:** update dependency drizzle-kit to ^0.22.2 ([#618](https://github.com/homarr-labs/homarr/issues/618)) ([f5aaf89](https://github.com/homarr-labs/homarr/commit/f5aaf89a3db6e10f2ac07d3ac29300ec81575e61)) -* **deps:** update dependency drizzle-kit to ^0.22.4 ([#625](https://github.com/homarr-labs/homarr/issues/625)) ([dda34e7](https://github.com/homarr-labs/homarr/commit/dda34e7764ace4f20ec9742289987dc43ee2573c)) -* **deps:** update dependency drizzle-kit to ^0.22.5 ([#631](https://github.com/homarr-labs/homarr/issues/631)) ([2462726](https://github.com/homarr-labs/homarr/commit/246272669e2cef242a7ddda2d6bbafe5313ca3ec)) -* **deps:** update dependency drizzle-kit to ^0.22.6 ([#636](https://github.com/homarr-labs/homarr/issues/636)) ([66ddb45](https://github.com/homarr-labs/homarr/commit/66ddb4597530479eac3d1e417d1fabac39ad6d8c)) -* **deps:** update dependency drizzle-kit to ^0.22.7 ([#652](https://github.com/homarr-labs/homarr/issues/652)) ([d985fbe](https://github.com/homarr-labs/homarr/commit/d985fbe69a0c1f57d574bd547567a3cd486174b4)) -* **deps:** update dependency drizzle-kit to ^0.22.8 ([#729](https://github.com/homarr-labs/homarr/issues/729)) ([be100b6](https://github.com/homarr-labs/homarr/commit/be100b610eabb3acbbbe0827dc07e012962c8ad8)) -* **deps:** update dependency drizzle-kit to ^0.23.0 ([#775](https://github.com/homarr-labs/homarr/issues/775)) ([f2c70a4](https://github.com/homarr-labs/homarr/commit/f2c70a4d0b6b827b54a7b12f53c01b1094548c2e)) -* **deps:** update dependency drizzle-kit to ^0.23.1 ([#888](https://github.com/homarr-labs/homarr/issues/888)) ([5f89d93](https://github.com/homarr-labs/homarr/commit/5f89d93db64c5033053da239b6e94c2731958924)) -* **deps:** update dependency drizzle-kit to ^0.23.2 ([#918](https://github.com/homarr-labs/homarr/issues/918)) ([d378ddb](https://github.com/homarr-labs/homarr/commit/d378ddb42bd43971d88b43cb90e24d83d69d9812)) -* **deps:** update dependency drizzle-kit to ^0.24.0 ([#939](https://github.com/homarr-labs/homarr/issues/939)) ([940a489](https://github.com/homarr-labs/homarr/commit/940a4890e26a0c080fb084e6026c0438d9df6914)) -* **deps:** update dependency drizzle-kit to ^0.24.1 ([#1012](https://github.com/homarr-labs/homarr/issues/1012)) ([cd0af7e](https://github.com/homarr-labs/homarr/commit/cd0af7e8f18d0e1b21f28bafd12aaf8bb06009c9)) -* **deps:** update dependency drizzle-kit to ^0.24.2 ([#1033](https://github.com/homarr-labs/homarr/issues/1033)) ([78b45c4](https://github.com/homarr-labs/homarr/commit/78b45c4a5bae9839990b12127fda9c7e15d07b25)) -* **deps:** update dependency drizzle-kit to ^0.25.0 ([#1261](https://github.com/homarr-labs/homarr/issues/1261)) ([635fadf](https://github.com/homarr-labs/homarr/commit/635fadfce9842f6e8bdc2e4757256e8bd27ae868)) -* **deps:** update dependency drizzle-kit to ^0.26.0 ([#1301](https://github.com/homarr-labs/homarr/issues/1301)) ([f2f31b5](https://github.com/homarr-labs/homarr/commit/f2f31b5ee08f1c50ccc125e0ace470c360984350)) -* **deps:** update dependency drizzle-kit to ^0.26.1 ([#1303](https://github.com/homarr-labs/homarr/issues/1303)) ([f50f46d](https://github.com/homarr-labs/homarr/commit/f50f46d4b7b32bbd89073433316f461cd475e367)) -* **deps:** update dependency drizzle-kit to ^0.26.2 ([#1305](https://github.com/homarr-labs/homarr/issues/1305)) ([da13d63](https://github.com/homarr-labs/homarr/commit/da13d6396967419466729b4abd5a839b14a17977)) -* **deps:** update dependency drizzle-kit to ^0.27.0 ([#1389](https://github.com/homarr-labs/homarr/issues/1389)) ([d3f9696](https://github.com/homarr-labs/homarr/commit/d3f9696127d21d75c16b52ed5a661909db54f705)) -* **deps:** update dependency drizzle-kit to ^0.27.1 ([#1395](https://github.com/homarr-labs/homarr/issues/1395)) ([3bfdc2d](https://github.com/homarr-labs/homarr/commit/3bfdc2ded499a465ce5cb078adc83ee71377bb5e)) -* **deps:** update dependency drizzle-kit to ^0.27.2 ([#1437](https://github.com/homarr-labs/homarr/issues/1437)) ([10cebff](https://github.com/homarr-labs/homarr/commit/10cebff4edb1ad9ff61f1a0ff27b6f360db7e05f)) -* **deps:** update dependency drizzle-kit to ^0.28.0 ([#1439](https://github.com/homarr-labs/homarr/issues/1439)) ([c6a1aee](https://github.com/homarr-labs/homarr/commit/c6a1aeef4d2e2939e262912eaa10018b5c1c4d60)) -* **deps:** update dependency drizzle-kit to ^0.28.1 ([#1480](https://github.com/homarr-labs/homarr/issues/1480)) ([acc440b](https://github.com/homarr-labs/homarr/commit/acc440bb8975fee8ce37e9290fbd4b993b6fddc6)) -* **deps:** update dependency drizzle-kit to ^0.29.0 ([#1591](https://github.com/homarr-labs/homarr/issues/1591)) ([a8e045b](https://github.com/homarr-labs/homarr/commit/a8e045b2239202d469c802b00cc4e4528932b8ee)) -* **deps:** update dependency drizzle-kit to ^0.29.1 ([#1603](https://github.com/homarr-labs/homarr/issues/1603)) ([2e23b3d](https://github.com/homarr-labs/homarr/commit/2e23b3dad84ff3eaa57ec26805b75fb271e12027)) -* **deps:** update dependency drizzle-kit to ^0.30.0 ([#1630](https://github.com/homarr-labs/homarr/issues/1630)) ([46ce061](https://github.com/homarr-labs/homarr/commit/46ce06155b4df45f3676998a813f3a7cecdba085)) -* **deps:** update dependency drizzle-kit to ^0.30.1 ([#1651](https://github.com/homarr-labs/homarr/issues/1651)) ([6418dfe](https://github.com/homarr-labs/homarr/commit/6418dfed382c88cdfe3ea0078ee18c5ae04ec721)) -* **deps:** update dependency drizzle-kit to ^0.30.2 ([#1965](https://github.com/homarr-labs/homarr/issues/1965)) ([cb96508](https://github.com/homarr-labs/homarr/commit/cb96508634abe2d225ddb8a0ec1f1760f12e14e8)) -* **deps:** update dependency drizzle-orm to ^0.29.4 ([#150](https://github.com/homarr-labs/homarr/issues/150)) ([4cf505f](https://github.com/homarr-labs/homarr/commit/4cf505f0c50faa74e699a29fd98eab88b20c14e1)) -* **deps:** update dependency drizzle-orm to ^0.29.5 ([#203](https://github.com/homarr-labs/homarr/issues/203)) ([4f41765](https://github.com/homarr-labs/homarr/commit/4f41765f1039daa2dcd8e9e0e26b3569539697f7)) -* **deps:** update dependency drizzle-orm to ^0.30.1 ([#210](https://github.com/homarr-labs/homarr/issues/210)) ([e34161f](https://github.com/homarr-labs/homarr/commit/e34161f33ecc7c58df4c26f383cf827fd663884b)) -* **deps:** update dependency drizzle-orm to ^0.30.10 ([#413](https://github.com/homarr-labs/homarr/issues/413)) ([14d941e](https://github.com/homarr-labs/homarr/commit/14d941e57ad70573954b276816d28e7d341df673)) -* **deps:** update dependency drizzle-orm to ^0.30.2 ([#232](https://github.com/homarr-labs/homarr/issues/232)) ([9046517](https://github.com/homarr-labs/homarr/commit/90465175f9cec9f95e14541e5c94e5eeadfc90a6)) -* **deps:** update dependency drizzle-orm to ^0.30.4 ([#250](https://github.com/homarr-labs/homarr/issues/250)) ([cdc4870](https://github.com/homarr-labs/homarr/commit/cdc4870925944317ff7f5f7ad8fee80433cd4e05)) -* **deps:** update dependency drizzle-orm to ^0.30.6 ([#282](https://github.com/homarr-labs/homarr/issues/282)) ([6ef58be](https://github.com/homarr-labs/homarr/commit/6ef58beead0137128cefe65d8119317572304b35)) -* **deps:** update dependency drizzle-orm to ^0.30.7 ([#303](https://github.com/homarr-labs/homarr/issues/303)) ([362257c](https://github.com/homarr-labs/homarr/commit/362257cf2b6b60027485f59df080bcdb83c3a85e)) -* **deps:** update dependency drizzle-orm to ^0.30.8 ([#339](https://github.com/homarr-labs/homarr/issues/339)) ([f50550b](https://github.com/homarr-labs/homarr/commit/f50550b3e135375e44b77ddc958f8ba3cf17d214)) -* **deps:** update dependency drizzle-orm to ^0.30.9 ([#370](https://github.com/homarr-labs/homarr/issues/370)) ([f5002c3](https://github.com/homarr-labs/homarr/commit/f5002c3265a9318770d9e6d41aa3583e84fc40d9)) -* **deps:** update dependency drizzle-orm to ^0.31.0 ([#589](https://github.com/homarr-labs/homarr/issues/589)) ([3b39e87](https://github.com/homarr-labs/homarr/commit/3b39e87212acedb8904584a3b3d55fbfd1434fd3)) -* **deps:** update dependency drizzle-orm to ^0.31.1 ([#619](https://github.com/homarr-labs/homarr/issues/619)) ([710197b](https://github.com/homarr-labs/homarr/commit/710197b3a02e06be6a60df71a180fd31b913858a)) -* **deps:** update dependency drizzle-orm to ^0.31.2 ([#632](https://github.com/homarr-labs/homarr/issues/632)) ([efd958d](https://github.com/homarr-labs/homarr/commit/efd958d6cbf5ec5dd0951ca33e87489aa5ec5c16)) -* **deps:** update dependency drizzle-orm to ^0.31.3 ([#758](https://github.com/homarr-labs/homarr/issues/758)) ([0a3d1e9](https://github.com/homarr-labs/homarr/commit/0a3d1e9e5e6682b438b5f3782bdaa305068e0cb7)) -* **deps:** update dependency drizzle-orm to ^0.31.4 ([#759](https://github.com/homarr-labs/homarr/issues/759)) ([8d42ca8](https://github.com/homarr-labs/homarr/commit/8d42ca8b5e63071ceaaf731198ee4633e77d96ac)) -* **deps:** update dependency drizzle-orm to ^0.32.0 ([#776](https://github.com/homarr-labs/homarr/issues/776)) ([3da5734](https://github.com/homarr-labs/homarr/commit/3da5734571de98ceaf2a915a56c177b564beedab)) -* **deps:** update dependency drizzle-orm to ^0.32.1 ([#859](https://github.com/homarr-labs/homarr/issues/859)) ([868b7b8](https://github.com/homarr-labs/homarr/commit/868b7b890e7affbb79935dc78eaac463d660e413)) -* **deps:** update dependency drizzle-orm to ^0.32.2 ([#919](https://github.com/homarr-labs/homarr/issues/919)) ([3f35163](https://github.com/homarr-labs/homarr/commit/3f35163481c85f434a60438ea7425a75b4b2285d)) -* **deps:** update dependency drizzle-orm to ^0.33.0 ([#938](https://github.com/homarr-labs/homarr/issues/938)) ([c399d83](https://github.com/homarr-labs/homarr/commit/c399d832e58edce29b5bc657ff10970c50123a85)) -* **deps:** update dependency drizzle-orm to ^0.34.0 ([#1262](https://github.com/homarr-labs/homarr/issues/1262)) ([23ee229](https://github.com/homarr-labs/homarr/commit/23ee229906b3dab7f7b93e93f76c11aa4ca89392)) -* **deps:** update dependency drizzle-orm to ^0.34.1 ([#1268](https://github.com/homarr-labs/homarr/issues/1268)) ([14d1ce8](https://github.com/homarr-labs/homarr/commit/14d1ce842a011dbe84259ba3509d9edfcdf573e0)) -* **deps:** update dependency drizzle-orm to ^0.35.0 ([#1302](https://github.com/homarr-labs/homarr/issues/1302)) ([c6daccb](https://github.com/homarr-labs/homarr/commit/c6daccbdf0b6a531274c0ab86779ec3f946ebf38)) -* **deps:** update dependency drizzle-orm to ^0.35.1 ([#1306](https://github.com/homarr-labs/homarr/issues/1306)) ([c053a37](https://github.com/homarr-labs/homarr/commit/c053a373b48ed6cc2f877c581e03264288bbe751)) -* **deps:** update dependency drizzle-orm to ^0.35.2 ([#1321](https://github.com/homarr-labs/homarr/issues/1321)) ([c8b1bb8](https://github.com/homarr-labs/homarr/commit/c8b1bb8d62e5c608e37cd28a85c0e7fc12eaf102)) -* **deps:** update dependency drizzle-orm to ^0.35.3 ([#1348](https://github.com/homarr-labs/homarr/issues/1348)) ([85a5ebd](https://github.com/homarr-labs/homarr/commit/85a5ebd288807373f38552d09392be184c3a8caf)) -* **deps:** update dependency drizzle-orm to ^0.36.0 ([#1390](https://github.com/homarr-labs/homarr/issues/1390)) ([3c3dbf5](https://github.com/homarr-labs/homarr/commit/3c3dbf51dc2e702a5eb302dac88986d61aba5881)) -* **deps:** update dependency drizzle-orm to ^0.36.1 ([#1440](https://github.com/homarr-labs/homarr/issues/1440)) ([7966476](https://github.com/homarr-labs/homarr/commit/7966476cad956b20940fd4d7d9df004dd886f7ff)) -* **deps:** update dependency drizzle-orm to ^0.36.2 ([#1481](https://github.com/homarr-labs/homarr/issues/1481)) ([9bc5856](https://github.com/homarr-labs/homarr/commit/9bc585648c8926123c718a3c922ad25c2cd7b897)) -* **deps:** update dependency drizzle-orm to ^0.36.3 ([#1487](https://github.com/homarr-labs/homarr/issues/1487)) ([2fb014f](https://github.com/homarr-labs/homarr/commit/2fb014f2df295cc16a01cc613db6d04fc483793c)) -* **deps:** update dependency drizzle-orm to ^0.36.4 ([#1522](https://github.com/homarr-labs/homarr/issues/1522)) ([50c9683](https://github.com/homarr-labs/homarr/commit/50c96833a697b09cadb8a7c64b2340e2c7b4d292)) -* **deps:** update dependency drizzle-orm to ^0.37.0 ([#1592](https://github.com/homarr-labs/homarr/issues/1592)) ([16cf818](https://github.com/homarr-labs/homarr/commit/16cf818449cd10f14e5235d5afdefaf0f8f01336)) -* **deps:** update dependency drizzle-orm to ^0.38.0 ([#1631](https://github.com/homarr-labs/homarr/issues/1631)) ([2825c9b](https://github.com/homarr-labs/homarr/commit/2825c9bf45c52cf7ec0785774038d9c01ac80cf9)) -* **deps:** update dependency drizzle-orm to ^0.38.1 ([#1646](https://github.com/homarr-labs/homarr/issues/1646)) ([7d0a224](https://github.com/homarr-labs/homarr/commit/7d0a224a3fe70c941ecea6dce9e376c395d8c5bb)) -* **deps:** update dependency drizzle-orm to ^0.38.2 ([#1652](https://github.com/homarr-labs/homarr/issues/1652)) ([da63d8e](https://github.com/homarr-labs/homarr/commit/da63d8ebf4b56caa34896d3b41d4784cd333123c)) -* **deps:** update dependency drizzle-orm to ^0.38.3 ([#1783](https://github.com/homarr-labs/homarr/issues/1783)) ([82c6ce7](https://github.com/homarr-labs/homarr/commit/82c6ce7b77023881bd4c74fb43437e777f9b219e)) -* **deps:** update dependency drizzle-orm to ^0.38.4 ([#1967](https://github.com/homarr-labs/homarr/issues/1967)) ([b10b201](https://github.com/homarr-labs/homarr/commit/b10b2013af20b34f32b56cf4a9cd5f675ab34f2a)) -* **deps:** update dependency drizzle-zod to ^0.6.0 ([#1629](https://github.com/homarr-labs/homarr/issues/1629)) ([51c87c1](https://github.com/homarr-labs/homarr/commit/51c87c1a33ca5fc2e583e27c33dd8828ac134e41)) -* **deps:** update dependency drizzle-zod to ^0.6.1 ([#1782](https://github.com/homarr-labs/homarr/issues/1782)) ([555212e](https://github.com/homarr-labs/homarr/commit/555212e2dc82c4b71b8c25a5f20964b3441b5ab9)) -* **deps:** update dependency eslint-config-prettier to v10 ([#1937](https://github.com/homarr-labs/homarr/issues/1937)) ([75c7918](https://github.com/homarr-labs/homarr/commit/75c791801e593e88deb3abcacf2b91aade0871d8)) -* **deps:** update dependency eslint-config-turbo to ^1.12.2 ([#34](https://github.com/homarr-labs/homarr/issues/34)) ([837e390](https://github.com/homarr-labs/homarr/commit/837e3900fa905e3d96d1b7693a889eb99ac71c1f)) -* **deps:** update dependency eslint-config-turbo to ^2.0.13 ([#978](https://github.com/homarr-labs/homarr/issues/978)) ([497363b](https://github.com/homarr-labs/homarr/commit/497363b4912a1b0d42abd9414b7ff827223220a0)) -* **deps:** update dependency eslint-config-turbo to ^2.0.14 ([#984](https://github.com/homarr-labs/homarr/issues/984)) ([5e7ee1b](https://github.com/homarr-labs/homarr/commit/5e7ee1b657cb55826518841e1dcb25cce4050bad)) -* **deps:** update dependency eslint-plugin-import to ^2.29.1 ([#23](https://github.com/homarr-labs/homarr/issues/23)) ([f3bb990](https://github.com/homarr-labs/homarr/commit/f3bb990c4dcd40f367cf59a120cf8f6fd2658309)) -* **deps:** update dependency eslint-plugin-import to ^2.30.0 ([#1061](https://github.com/homarr-labs/homarr/issues/1061)) ([0f34bf8](https://github.com/homarr-labs/homarr/commit/0f34bf85a8476b73140c2b6b8baad87fa924ebdb)) -* **deps:** update dependency eslint-plugin-import to ^2.31.0 ([#1226](https://github.com/homarr-labs/homarr/issues/1226)) ([9d20362](https://github.com/homarr-labs/homarr/commit/9d20362cf1323c57e7ed7dc9ba4e234c51ccc1d0)) -* **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.0 ([#1066](https://github.com/homarr-labs/homarr/issues/1066)) ([bef5832](https://github.com/homarr-labs/homarr/commit/bef5832470012ff8eeddd2e95822800f4c349491)) -* **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.1 ([#1343](https://github.com/homarr-labs/homarr/issues/1343)) ([564096e](https://github.com/homarr-labs/homarr/commit/564096e463b25c243c7f2adb2c9b059c940365fe)) -* **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.2 ([#1374](https://github.com/homarr-labs/homarr/issues/1374)) ([3127182](https://github.com/homarr-labs/homarr/commit/3127182f5c16a6c792557c9f458b7e20511cdf8f)) -* **deps:** update dependency eslint-plugin-jsx-a11y to ^6.9.0 ([#695](https://github.com/homarr-labs/homarr/issues/695)) ([d78b581](https://github.com/homarr-labs/homarr/commit/d78b581104009d92a835d99978e935059682b7e2)) -* **deps:** update dependency eslint-plugin-react to ^7.34.0 ([#189](https://github.com/homarr-labs/homarr/issues/189)) ([4cd897d](https://github.com/homarr-labs/homarr/commit/4cd897d521ba11a69cc5f7960746dfbb5d10bd44)) -* **deps:** update dependency eslint-plugin-react to ^7.34.1 ([#240](https://github.com/homarr-labs/homarr/issues/240)) ([404f294](https://github.com/homarr-labs/homarr/commit/404f2945dc0db083ad4adb941f436b7cbd04ce6d)) -* **deps:** update dependency eslint-plugin-react to ^7.34.2 ([#567](https://github.com/homarr-labs/homarr/issues/567)) ([9e499bd](https://github.com/homarr-labs/homarr/commit/9e499bd30ba5a8d22f15ef7e4e467090268125e7)) -* **deps:** update dependency eslint-plugin-react to ^7.34.3 ([#688](https://github.com/homarr-labs/homarr/issues/688)) ([fdcf3a8](https://github.com/homarr-labs/homarr/commit/fdcf3a89c929de9d441898f31bfeb141613fe9ff)) -* **deps:** update dependency eslint-plugin-react to ^7.34.4 ([#809](https://github.com/homarr-labs/homarr/issues/809)) ([fd64201](https://github.com/homarr-labs/homarr/commit/fd642011ba8bd11e03de46e35de387da819d5c98)) -* **deps:** update dependency eslint-plugin-react to ^7.35.0 ([#835](https://github.com/homarr-labs/homarr/issues/835)) ([37a8a0f](https://github.com/homarr-labs/homarr/commit/37a8a0fe5aebe813ba9be05643b1333485e20d5f)) -* **deps:** update dependency eslint-plugin-react to ^7.35.1 ([#1059](https://github.com/homarr-labs/homarr/issues/1059)) ([4c52cc3](https://github.com/homarr-labs/homarr/commit/4c52cc338e0bca1d9a80d23a3b409526109206b5)) -* **deps:** update dependency eslint-plugin-react to ^7.35.2 ([#1062](https://github.com/homarr-labs/homarr/issues/1062)) ([1249fb9](https://github.com/homarr-labs/homarr/commit/1249fb96122597f2d40cc5719d687354b7c1411c)) -* **deps:** update dependency eslint-plugin-react to ^7.36.0 ([#1111](https://github.com/homarr-labs/homarr/issues/1111)) ([cd43253](https://github.com/homarr-labs/homarr/commit/cd43253061c4162d1c1835b3cbb843250d0d5b51)) -* **deps:** update dependency eslint-plugin-react to ^7.36.1 ([#1115](https://github.com/homarr-labs/homarr/issues/1115)) ([2351617](https://github.com/homarr-labs/homarr/commit/2351617177d334467e26c08c378da4994f21f581)) -* **deps:** update dependency eslint-plugin-react to ^7.37.0 ([#1189](https://github.com/homarr-labs/homarr/issues/1189)) ([2245e7a](https://github.com/homarr-labs/homarr/commit/2245e7aae8fa75730706d2e73c30870ac6d0ec77)) -* **deps:** update dependency eslint-plugin-react to ^7.37.1 ([#1213](https://github.com/homarr-labs/homarr/issues/1213)) ([4a8ed13](https://github.com/homarr-labs/homarr/commit/4a8ed13a87ff44aed89754fbc171db0641cf78d8)) -* **deps:** update dependency eslint-plugin-react to ^7.37.2 ([#1354](https://github.com/homarr-labs/homarr/issues/1354)) ([1a2f0ad](https://github.com/homarr-labs/homarr/commit/1a2f0adfc8d22eade925409aac63ccb9d8885c08)) -* **deps:** update dependency eslint-plugin-react to ^7.37.3 ([#1767](https://github.com/homarr-labs/homarr/issues/1767)) ([fe95334](https://github.com/homarr-labs/homarr/commit/fe95334aa70c95faefcf904591fa9d33159b0905)) -* **deps:** update dependency eslint-plugin-react to ^7.37.4 ([#1934](https://github.com/homarr-labs/homarr/issues/1934)) ([2ea763c](https://github.com/homarr-labs/homarr/commit/2ea763c23161753619a204f9bb522ab04c37a2ab)) -* **deps:** update dependency eslint-plugin-react-hooks to ^5.1.0 ([#1614](https://github.com/homarr-labs/homarr/issues/1614)) ([6d6840f](https://github.com/homarr-labs/homarr/commit/6d6840f85e5f38b2f7ec990cf7402de86ea84166)) -* **deps:** update dependency eslint-plugin-react-hooks to v5 ([#1280](https://github.com/homarr-labs/homarr/issues/1280)) ([a87c937](https://github.com/homarr-labs/homarr/commit/a87c937b69550160cc10e9991256c032245fcbfc)) -* **deps:** update dependency flag-icons to ^7.2.2 ([#533](https://github.com/homarr-labs/homarr/issues/533)) ([f45fa50](https://github.com/homarr-labs/homarr/commit/f45fa500248d810aadb05cf2ad8ecd247bcae60b)) -* **deps:** update dependency flag-icons to ^7.2.3 ([#575](https://github.com/homarr-labs/homarr/issues/575)) ([fe43e74](https://github.com/homarr-labs/homarr/commit/fe43e74c5399942c6cb099352fc1098fe1261fc4)) -* **deps:** update dependency flag-icons to ^7.2.4 ([#1960](https://github.com/homarr-labs/homarr/issues/1960)) ([44767c4](https://github.com/homarr-labs/homarr/commit/44767c46c292c9fb95bc874377db75f3916b7525)) -* **deps:** update dependency flag-icons to ^7.3.0 ([#1966](https://github.com/homarr-labs/homarr/issues/1966)) ([ea8acc8](https://github.com/homarr-labs/homarr/commit/ea8acc83eace461444b96f7f0bfd634e51f0a92a)) -* **deps:** update dependency flag-icons to ^7.3.1 ([#1970](https://github.com/homarr-labs/homarr/issues/1970)) ([34cacb3](https://github.com/homarr-labs/homarr/commit/34cacb31535b2990f12d75b95d57c34de4044bb6)) -* **deps:** update dependency glob to ^10.3.14 ([#461](https://github.com/homarr-labs/homarr/issues/461)) ([8bd08d3](https://github.com/homarr-labs/homarr/commit/8bd08d39ca106b225aee123278b1387d037feedc)) -* **deps:** update dependency glob to ^10.3.15 ([#478](https://github.com/homarr-labs/homarr/issues/478)) ([333b124](https://github.com/homarr-labs/homarr/commit/333b124f678818b346816bbd29f6bc78f20e175d)) -* **deps:** update dependency glob to ^10.4.1 ([#531](https://github.com/homarr-labs/homarr/issues/531)) ([a0322bf](https://github.com/homarr-labs/homarr/commit/a0322bfd994c9fae57f7d8f7e219d0ac70d7868c)) -* **deps:** update dependency glob to ^10.4.2 ([#689](https://github.com/homarr-labs/homarr/issues/689)) ([0bfc0c5](https://github.com/homarr-labs/homarr/commit/0bfc0c5d2543677b7efe6fcec1af7c72e178af1b)) -* **deps:** update dependency glob to ^10.4.3 ([#751](https://github.com/homarr-labs/homarr/issues/751)) ([61cbb74](https://github.com/homarr-labs/homarr/commit/61cbb74d14b93ee9e52a2170a4ff01c93dcd09c1)) -* **deps:** update dependency glob to ^10.4.4 ([#765](https://github.com/homarr-labs/homarr/issues/765)) ([74b017d](https://github.com/homarr-labs/homarr/commit/74b017d9f4b39b9d6de0d76f180fcf5c6f145215)) -* **deps:** update dependency glob to ^10.4.5 ([#768](https://github.com/homarr-labs/homarr/issues/768)) ([4cee3df](https://github.com/homarr-labs/homarr/commit/4cee3dfbe00cd984e31a732e88bc581606ab37e9)) -* **deps:** update dependency glob to ^11.0.1 ([#1908](https://github.com/homarr-labs/homarr/issues/1908)) ([7d1b1d8](https://github.com/homarr-labs/homarr/commit/7d1b1d83429acaa9846479a7a5c48092d4614b75)) -* **deps:** update dependency glob to v10.4.1 ([#544](https://github.com/homarr-labs/homarr/issues/544)) ([7b46d92](https://github.com/homarr-labs/homarr/commit/7b46d92d4f992584c813cc2d7e99813f53a8b72e)) -* **deps:** update dependency glob to v11 ([#766](https://github.com/homarr-labs/homarr/issues/766)) ([0169501](https://github.com/homarr-labs/homarr/commit/0169501676aa8d1170ee44aa0bb8134d994d472e)) -* **deps:** update dependency ioredis to v5.4.1 ([#357](https://github.com/homarr-labs/homarr/issues/357)) ([20f44d3](https://github.com/homarr-labs/homarr/commit/20f44d3494ffbe76994e6d541d31ced2cfd8abd3)) -* **deps:** update dependency ioredis to v5.4.2 ([#1739](https://github.com/homarr-labs/homarr/issues/1739)) ([720fdb7](https://github.com/homarr-labs/homarr/commit/720fdb772c2142e23b2bfa2ecaddf0063fbe192c)) -* **deps:** update dependency jotai to ^2.10.0 ([#1155](https://github.com/homarr-labs/homarr/issues/1155)) ([dd9080f](https://github.com/homarr-labs/homarr/commit/dd9080f781b782a1a112c53f1af1e987fde22e32)) -* **deps:** update dependency jotai to ^2.10.1 ([#1295](https://github.com/homarr-labs/homarr/issues/1295)) ([ba81e5e](https://github.com/homarr-labs/homarr/commit/ba81e5e35a046e8dda1c2660beff1e1644d4d32a)) -* **deps:** update dependency jotai to ^2.10.2 ([#1464](https://github.com/homarr-labs/homarr/issues/1464)) ([75d764b](https://github.com/homarr-labs/homarr/commit/75d764bca83e41bc932a4aed5244bf6922d2d070)) -* **deps:** update dependency jotai to ^2.10.3 ([#1509](https://github.com/homarr-labs/homarr/issues/1509)) ([ae61377](https://github.com/homarr-labs/homarr/commit/ae6137710f51c3f53127a779793ce2d1566e7e0d)) -* **deps:** update dependency jotai to ^2.10.4 ([#1672](https://github.com/homarr-labs/homarr/issues/1672)) ([b7b5da6](https://github.com/homarr-labs/homarr/commit/b7b5da654bee37f1aceda2718bb92646fc4f472e)) -* **deps:** update dependency jotai to ^2.11.0 ([#1756](https://github.com/homarr-labs/homarr/issues/1756)) ([4e85bbb](https://github.com/homarr-labs/homarr/commit/4e85bbbad034f08ab84e331d376b7a9c6f54e507)) -* **deps:** update dependency jotai to ^2.6.4 ([#24](https://github.com/homarr-labs/homarr/issues/24)) ([a7d5c36](https://github.com/homarr-labs/homarr/commit/a7d5c36aa798ea9cf03579b752fa3640fb4f79cf)) -* **deps:** update dependency jotai to ^2.6.5 ([#106](https://github.com/homarr-labs/homarr/issues/106)) ([fc8d907](https://github.com/homarr-labs/homarr/commit/fc8d9071aa91afdb00b17b1de13a61241aa93705)) -* **deps:** update dependency jotai to ^2.7.0 ([#162](https://github.com/homarr-labs/homarr/issues/162)) ([af203e1](https://github.com/homarr-labs/homarr/commit/af203e19e76450e990384443e9d9de1e1df7748f)) -* **deps:** update dependency jotai to ^2.7.1 ([#238](https://github.com/homarr-labs/homarr/issues/238)) ([75ab823](https://github.com/homarr-labs/homarr/commit/75ab8230196272e2c713b948a614b3ac0ce62f09)) -* **deps:** update dependency jotai to ^2.7.2 ([#284](https://github.com/homarr-labs/homarr/issues/284)) ([d06528f](https://github.com/homarr-labs/homarr/commit/d06528f3119e18ddf09ab210fa2dd7ed1570bd5f)) -* **deps:** update dependency jotai to ^2.8.0 ([#326](https://github.com/homarr-labs/homarr/issues/326)) ([27c858d](https://github.com/homarr-labs/homarr/commit/27c858dc815f8d450310a219d2ec44093f33b293)) -* **deps:** update dependency jotai to ^2.8.1 ([#534](https://github.com/homarr-labs/homarr/issues/534)) ([c668d0a](https://github.com/homarr-labs/homarr/commit/c668d0a76502ce082990e7e64b7e7c801f33134f)) -* **deps:** update dependency jotai to ^2.8.2 ([#561](https://github.com/homarr-labs/homarr/issues/561)) ([6f47adf](https://github.com/homarr-labs/homarr/commit/6f47adff8abfdd1e94207a73fa6638e9aa11d396)) -* **deps:** update dependency jotai to ^2.8.3 ([#615](https://github.com/homarr-labs/homarr/issues/615)) ([d993e8d](https://github.com/homarr-labs/homarr/commit/d993e8d81136f8fb42a27b082d41b00bd5c2668a)) -* **deps:** update dependency jotai to ^2.8.4 ([#721](https://github.com/homarr-labs/homarr/issues/721)) ([e46bfd9](https://github.com/homarr-labs/homarr/commit/e46bfd9146929421434ce847352ce8b7a08106f7)) -* **deps:** update dependency jotai to ^2.9.0 ([#767](https://github.com/homarr-labs/homarr/issues/767)) ([5e3dc1e](https://github.com/homarr-labs/homarr/commit/5e3dc1e44dbe229870637c58188c6b6057092a95)) -* **deps:** update dependency jotai to ^2.9.1 ([#858](https://github.com/homarr-labs/homarr/issues/858)) ([fc5f02b](https://github.com/homarr-labs/homarr/commit/fc5f02b022786e7ec75c900d33c2386c71a77e53)) -* **deps:** update dependency jotai to ^2.9.2 ([#933](https://github.com/homarr-labs/homarr/issues/933)) ([c2bf677](https://github.com/homarr-labs/homarr/commit/c2bf6779c0664720a180192813ed4bfab02bf0e1)) -* **deps:** update dependency jotai to ^2.9.3 ([#969](https://github.com/homarr-labs/homarr/issues/969)) ([9d62fb4](https://github.com/homarr-labs/homarr/commit/9d62fb42c470d09c8891bdb8997af75926f3d03d)) -* **deps:** update dependency ldapts to v7.1.0 ([#839](https://github.com/homarr-labs/homarr/issues/839)) ([c33086d](https://github.com/homarr-labs/homarr/commit/c33086d8b55be9ba605c1f2c7429e44bd6ddada1)) -* **deps:** update dependency ldapts to v7.1.1 ([#1038](https://github.com/homarr-labs/homarr/issues/1038)) ([b507bf2](https://github.com/homarr-labs/homarr/commit/b507bf2ae67120ab7089297d53ce41c26314ca30)) -* **deps:** update dependency ldapts to v7.2.0 ([#1097](https://github.com/homarr-labs/homarr/issues/1097)) ([9d5007c](https://github.com/homarr-labs/homarr/commit/9d5007c05cb3216c9acbb1233326be1cd8d1cbb8)) -* **deps:** update dependency ldapts to v7.2.1 ([#1211](https://github.com/homarr-labs/homarr/issues/1211)) ([1b0d927](https://github.com/homarr-labs/homarr/commit/1b0d927e8866376f2f6851f78f9ef5ab67eb5ad2)) -* **deps:** update dependency ldapts to v7.2.2 ([#1574](https://github.com/homarr-labs/homarr/issues/1574)) ([d5f7621](https://github.com/homarr-labs/homarr/commit/d5f76218cd314769fb312e60de824acc1f90914e)) -* **deps:** update dependency ldapts to v7.3.0 ([#1696](https://github.com/homarr-labs/homarr/issues/1696)) ([6943505](https://github.com/homarr-labs/homarr/commit/694350583a0e53014a950c4a5bed4d487ad4ca7b)) -* **deps:** update dependency ldapts to v7.3.1 ([#1896](https://github.com/homarr-labs/homarr/issues/1896)) ([a69c64d](https://github.com/homarr-labs/homarr/commit/a69c64d88d57293eba8adbdf88ce694194268492)) -* **deps:** update dependency mantine-modal-manager to ^7.5.2 ([#72](https://github.com/homarr-labs/homarr/issues/72)) ([f704bad](https://github.com/homarr-labs/homarr/commit/f704bad36e103fc349b0303d9f79440d076c1e88)) -* **deps:** update dependency mantine-modal-manager to ^7.5.3 ([#132](https://github.com/homarr-labs/homarr/issues/132)) ([4565f38](https://github.com/homarr-labs/homarr/commit/4565f38bef6e940c2856b7213dae92cfff659a7b)) -* **deps:** update dependency mantine-modal-manager to ^7.6.1 ([#171](https://github.com/homarr-labs/homarr/issues/171)) ([acf9d18](https://github.com/homarr-labs/homarr/commit/acf9d1803f7112520a87fe854ef65d7f67dd5cb9)) -* **deps:** update dependency mantine-modal-manager to ^7.6.2 ([#222](https://github.com/homarr-labs/homarr/issues/222)) ([b63b2c8](https://github.com/homarr-labs/homarr/commit/b63b2c8e9021d8e789789471a061f1f40320a135)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.0 ([#149](https://github.com/homarr-labs/homarr/issues/149)) ([f211ffb](https://github.com/homarr-labs/homarr/commit/f211ffbf78d9039fc5e68a8219cef134ad3a5fa5)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.1 ([#277](https://github.com/homarr-labs/homarr/issues/277)) ([e1b62ec](https://github.com/homarr-labs/homarr/commit/e1b62ecd5300b54523e9c9672b53b9ac49a3996e)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.2 ([#466](https://github.com/homarr-labs/homarr/issues/466)) ([627f895](https://github.com/homarr-labs/homarr/commit/627f8957e546a37520f0122b62664704f9d286c3)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.3 ([#488](https://github.com/homarr-labs/homarr/issues/488)) ([8b84695](https://github.com/homarr-labs/homarr/commit/8b84695079220228e99317d9cd12d613e6af4043)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.4 ([#593](https://github.com/homarr-labs/homarr/issues/593)) ([fef070c](https://github.com/homarr-labs/homarr/commit/fef070c42cbff79e8301fdbe5623482d2ed01521)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.5 ([#661](https://github.com/homarr-labs/homarr/issues/661)) ([37ebcfe](https://github.com/homarr-labs/homarr/commit/37ebcfe318540e6941ea62a40a001aaed19e0abf)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.6 ([#837](https://github.com/homarr-labs/homarr/issues/837)) ([5da74ca](https://github.com/homarr-labs/homarr/commit/5da74ca7e057632b9f693061c3855e1fb348c5bb)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.7 ([#1287](https://github.com/homarr-labs/homarr/issues/1287)) ([6f97741](https://github.com/homarr-labs/homarr/commit/6f97741862ad2d25d852858e509f78d0ff0a7e01)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.8 ([#1902](https://github.com/homarr-labs/homarr/issues/1902)) ([86a9259](https://github.com/homarr-labs/homarr/commit/86a925939cb8ef92fe0bca5a762e688887916b04)) -* **deps:** update dependency mysql2 to ^3.9.3 ([#273](https://github.com/homarr-labs/homarr/issues/273)) ([b0bba14](https://github.com/homarr-labs/homarr/commit/b0bba1418b802b238eb8724987ce6bbb1a27f195)) -* **deps:** update dependency mysql2 to v3.10.0 ([#585](https://github.com/homarr-labs/homarr/issues/585)) ([ff84c2b](https://github.com/homarr-labs/homarr/commit/ff84c2bdb77db1e825fd3a6c7be303f2c450edbe)) -* **deps:** update dependency mysql2 to v3.10.1 ([#665](https://github.com/homarr-labs/homarr/issues/665)) ([10acb2b](https://github.com/homarr-labs/homarr/commit/10acb2bc7645048c8265a78075eef6ac6f0b1fe0)) -* **deps:** update dependency mysql2 to v3.10.2 ([#731](https://github.com/homarr-labs/homarr/issues/731)) ([663eb0b](https://github.com/homarr-labs/homarr/commit/663eb0bf5b986a71c36a36f86e5011835112d2b7)) -* **deps:** update dependency mysql2 to v3.10.3 ([#816](https://github.com/homarr-labs/homarr/issues/816)) ([636d3c6](https://github.com/homarr-labs/homarr/commit/636d3c670cc387a26112d58a33576cdcd1e5b5d2)) -* **deps:** update dependency mysql2 to v3.11.0 ([#874](https://github.com/homarr-labs/homarr/issues/874)) ([c973a3b](https://github.com/homarr-labs/homarr/commit/c973a3bfa540397b6882e0b4bdd5ce6c2a193e2f)) -* **deps:** update dependency mysql2 to v3.11.1 ([#1094](https://github.com/homarr-labs/homarr/issues/1094)) ([40af170](https://github.com/homarr-labs/homarr/commit/40af17083aba37c2e02f81f295c1192f70d0a691)) -* **deps:** update dependency mysql2 to v3.11.2 ([#1098](https://github.com/homarr-labs/homarr/issues/1098)) ([d2a30db](https://github.com/homarr-labs/homarr/commit/d2a30db3c1bd21decba0624c13635b092afabf4f)) -* **deps:** update dependency mysql2 to v3.11.3 ([#1132](https://github.com/homarr-labs/homarr/issues/1132)) ([6c39612](https://github.com/homarr-labs/homarr/commit/6c39612c0731c0728b62057eb240543ae4a1ec15)) -* **deps:** update dependency mysql2 to v3.11.4 ([#1430](https://github.com/homarr-labs/homarr/issues/1430)) ([7e1305c](https://github.com/homarr-labs/homarr/commit/7e1305c6a99e96900b447591ebeb48393186483d)) -* **deps:** update dependency mysql2 to v3.11.5 ([#1567](https://github.com/homarr-labs/homarr/issues/1567)) ([cebc925](https://github.com/homarr-labs/homarr/commit/cebc925b879d22a662be326c6b8b5048907dd92c)) -* **deps:** update dependency mysql2 to v3.12.0 ([#1758](https://github.com/homarr-labs/homarr/issues/1758)) ([d02ded5](https://github.com/homarr-labs/homarr/commit/d02ded5511aa2d54307db0ac7f4e0a5dee5a707d)) -* **deps:** update dependency mysql2 to v3.9.6 ([#311](https://github.com/homarr-labs/homarr/issues/311)) ([a6d65fd](https://github.com/homarr-labs/homarr/commit/a6d65fda6b9ed31a08a420e51718dbd36f8da7ae)) -* **deps:** update dependency mysql2 to v3.9.7 ([#369](https://github.com/homarr-labs/homarr/issues/369)) ([51ea67f](https://github.com/homarr-labs/homarr/commit/51ea67fc883a6b2e2164f46a6a3e1e41a961a834)) -* **deps:** update dependency mysql2 to v3.9.8 ([#558](https://github.com/homarr-labs/homarr/issues/558)) ([3f364ca](https://github.com/homarr-labs/homarr/commit/3f364cacedb556cb58c8b15c1a81cecca7cb22e7)) -* **deps:** update dependency mysql2 to v3.9.9 ([#576](https://github.com/homarr-labs/homarr/issues/576)) ([612b8d8](https://github.com/homarr-labs/homarr/commit/612b8d8c6eff4adaec8e359b4733af31c69e10ae)) -* **deps:** update dependency next to ^14.1.1-canary.59 ([#121](https://github.com/homarr-labs/homarr/issues/121)) ([4f911c4](https://github.com/homarr-labs/homarr/commit/4f911c4f56be487726359eb00e7d34bff426b596)) -* **deps:** update dependency next to ^14.1.1-canary.61 ([#138](https://github.com/homarr-labs/homarr/issues/138)) ([6a02afb](https://github.com/homarr-labs/homarr/commit/6a02afbfe2daded6a86ee13423ae4fdeb7ed14a5)) -* **deps:** update dependency next to ^14.1.1-canary.62 ([#140](https://github.com/homarr-labs/homarr/issues/140)) ([fde634d](https://github.com/homarr-labs/homarr/commit/fde634d834c58501435ccab7409693fd9f5fecbc)) -* **deps:** update dependency next to ^14.1.1-canary.63 ([#146](https://github.com/homarr-labs/homarr/issues/146)) ([4d01136](https://github.com/homarr-labs/homarr/commit/4d011364bf61971392b541d6758585eb25f5c68c)) -* **deps:** update dependency next-auth to v5.0.0-beta.11 ([#91](https://github.com/homarr-labs/homarr/issues/91)) ([336dc38](https://github.com/homarr-labs/homarr/commit/336dc38b2d0f6932eaacee354640ffa5ec92729e)) -* **deps:** update dependency next-auth to v5.0.0-beta.13 ([#108](https://github.com/homarr-labs/homarr/issues/108)) ([64194c5](https://github.com/homarr-labs/homarr/commit/64194c51edbca639193d9865fc6d4c7e07a1b3bf)) -* **deps:** update dependency next-auth to v5.0.0-beta.15 ([#167](https://github.com/homarr-labs/homarr/issues/167)) ([70f34ef](https://github.com/homarr-labs/homarr/commit/70f34efd5385e641bf5f9f043cbd18e6e9bf2cce)) -* **deps:** update dependency next-auth to v5.0.0-beta.16 ([#268](https://github.com/homarr-labs/homarr/issues/268)) ([ba27871](https://github.com/homarr-labs/homarr/commit/ba278717650a20381912070624aa390594410578)) -* **deps:** update dependency next-auth to v5.0.0-beta.17 ([#383](https://github.com/homarr-labs/homarr/issues/383)) ([bfdc8d5](https://github.com/homarr-labs/homarr/commit/bfdc8d584b9abef5bf3b417ad8eba951404856ce)) -* **deps:** update dependency next-auth to v5.0.0-beta.19 ([#605](https://github.com/homarr-labs/homarr/issues/605)) ([20874cb](https://github.com/homarr-labs/homarr/commit/20874cb96d7b45ca33bd86e3670d81dc71688390)) -* **deps:** update dependency next-auth to v5.0.0-beta.20 ([#878](https://github.com/homarr-labs/homarr/issues/878)) ([a0c5545](https://github.com/homarr-labs/homarr/commit/a0c55459d1e3dbec93329ca9c99acf652683a08b)) -* **deps:** update dependency next-auth to v5.0.0-beta.21 ([#1131](https://github.com/homarr-labs/homarr/issues/1131)) ([5a73700](https://github.com/homarr-labs/homarr/commit/5a73700f571b6628161b55380fd08da93cede0a8)) -* **deps:** update dependency next-auth to v5.0.0-beta.22 ([#1195](https://github.com/homarr-labs/homarr/issues/1195)) ([c3e1ce3](https://github.com/homarr-labs/homarr/commit/c3e1ce30fa15ff7cee29d842a2f6c8688f9639ba)) -* **deps:** update dependency next-auth to v5.0.0-beta.23 ([#1325](https://github.com/homarr-labs/homarr/issues/1325)) ([c52fd97](https://github.com/homarr-labs/homarr/commit/c52fd972b7157d6132923cff5c2c350ca32d8229)) -* **deps:** update dependency next-auth to v5.0.0-beta.25 ([#1341](https://github.com/homarr-labs/homarr/issues/1341)) ([278107a](https://github.com/homarr-labs/homarr/commit/278107a1a4b6c5f6b391a25704314c613212fbab)) -* **deps:** update dependency next-auth to v5.0.0-beta.8 ([#60](https://github.com/homarr-labs/homarr/issues/60)) ([544a6d9](https://github.com/homarr-labs/homarr/commit/544a6d992691c6ba398b236fdd4f59111fa64e5a)) -* **deps:** update dependency next-auth to v5.0.0-beta.9 ([#68](https://github.com/homarr-labs/homarr/issues/68)) ([cc52c2b](https://github.com/homarr-labs/homarr/commit/cc52c2ba785e78f251bc6cfac637bc4285b77f0f)) -* **deps:** update dependency next-international to ^1.2.3 ([#35](https://github.com/homarr-labs/homarr/issues/35)) ([b8fe041](https://github.com/homarr-labs/homarr/commit/b8fe04144fea31a934a59094c52d7c6fc4cfffbb)) -* **deps:** update dependency next-international to ^1.2.4 ([#76](https://github.com/homarr-labs/homarr/issues/76)) ([60d5ebb](https://github.com/homarr-labs/homarr/commit/60d5ebbc11fd8a8f5494e303335e2bd46ec09a3d)) -* **deps:** update dependency next-intl to v3.23.5 ([#1376](https://github.com/homarr-labs/homarr/issues/1376)) ([a4ae38b](https://github.com/homarr-labs/homarr/commit/a4ae38b5e4bf09303e659f4eacac0c81ea3bea07)) -* **deps:** update dependency next-intl to v3.24.0 ([#1392](https://github.com/homarr-labs/homarr/issues/1392)) ([4e9b0af](https://github.com/homarr-labs/homarr/commit/4e9b0af54c2f3bc5a23b9cecfc570b74787af478)) -* **deps:** update dependency next-intl to v3.25.0 ([#1448](https://github.com/homarr-labs/homarr/issues/1448)) ([8722109](https://github.com/homarr-labs/homarr/commit/87221093d25df689472ed86184d528eb815e10d1)) -* **deps:** update dependency next-intl to v3.25.1 ([#1473](https://github.com/homarr-labs/homarr/issues/1473)) ([7a9e9a1](https://github.com/homarr-labs/homarr/commit/7a9e9a1e0de02a678787c2509e09c748d7a0042b)) -* **deps:** update dependency next-intl to v3.25.2 ([#1545](https://github.com/homarr-labs/homarr/issues/1545)) ([b6c28da](https://github.com/homarr-labs/homarr/commit/b6c28da32b0cdcfe181db8e698e9f28997cebc52)) -* **deps:** update dependency next-intl to v3.25.3 ([#1551](https://github.com/homarr-labs/homarr/issues/1551)) ([907c28c](https://github.com/homarr-labs/homarr/commit/907c28c945bc7e7ac2c600f7c7a04750ff7465d6)) -* **deps:** update dependency next-intl to v3.26.0 ([#1619](https://github.com/homarr-labs/homarr/issues/1619)) ([58008c1](https://github.com/homarr-labs/homarr/commit/58008c1e2fc9a20401f45288f3beedb80a466351)) -* **deps:** update dependency next-intl to v3.26.1 ([#1644](https://github.com/homarr-labs/homarr/issues/1644)) ([5194867](https://github.com/homarr-labs/homarr/commit/51948677fa1fd0b6ea7410cdbb6f6f77a1f87db0)) -* **deps:** update dependency next-intl to v3.26.2 ([#1703](https://github.com/homarr-labs/homarr/issues/1703)) ([d3a883a](https://github.com/homarr-labs/homarr/commit/d3a883a252167612f3f64579730c8f26453897e3)) -* **deps:** update dependency next-intl to v3.26.3 ([#1740](https://github.com/homarr-labs/homarr/issues/1740)) ([fff1da8](https://github.com/homarr-labs/homarr/commit/fff1da88bd44162b08a76f8b2f49e2b929fc56e8)) -* **deps:** update dependency node-cron to ^3.0.3 ([#309](https://github.com/homarr-labs/homarr/issues/309)) ([48f45d7](https://github.com/homarr-labs/homarr/commit/48f45d73775f0b872613e01edc3499a2a2f7c924)) -* **deps:** update dependency octokit to ^4.0.3 ([#1806](https://github.com/homarr-labs/homarr/issues/1806)) ([75aefcb](https://github.com/homarr-labs/homarr/commit/75aefcb0d5210a53e8a00b675dbbce847aa8add4)) -* **deps:** update dependency octokit to ^4.1.0 ([#1898](https://github.com/homarr-labs/homarr/issues/1898)) ([3860af3](https://github.com/homarr-labs/homarr/commit/3860af31b64e8a74e7e1c91470a9de5450f9e5e7)) -* **deps:** update dependency postcss-preset-mantine to ^1.13.0 ([#36](https://github.com/homarr-labs/homarr/issues/36)) ([d73e7a3](https://github.com/homarr-labs/homarr/commit/d73e7a3c3fc278e30f723a5d2b4bdedf667cc5ce)) -* **deps:** update dependency postcss-preset-mantine to ^1.14.4 ([#336](https://github.com/homarr-labs/homarr/issues/336)) ([49e45e8](https://github.com/homarr-labs/homarr/commit/49e45e8122147b2eeebc5ee025bdfd91e7cb4836)) -* **deps:** update dependency postcss-preset-mantine to ^1.15.0 ([#387](https://github.com/homarr-labs/homarr/issues/387)) ([84175e6](https://github.com/homarr-labs/homarr/commit/84175e6a7e4fb8ce3cbcb89ee4d713b6531d3ac0)) -* **deps:** update dependency postcss-preset-mantine to ^1.16.0 ([#827](https://github.com/homarr-labs/homarr/issues/827)) ([002d011](https://github.com/homarr-labs/homarr/commit/002d011b18ffa74f29d06a6bef3d08d6e997735d)) -* **deps:** update dependency postcss-preset-mantine to ^1.17.0 ([#843](https://github.com/homarr-labs/homarr/issues/843)) ([41e5760](https://github.com/homarr-labs/homarr/commit/41e576039f8400e671dd52362a6b2ba9ce605a9f)) -* **deps:** update dependency prettier to ^3.2.4 ([#37](https://github.com/homarr-labs/homarr/issues/37)) ([9aaec54](https://github.com/homarr-labs/homarr/commit/9aaec5495dfacbbf2a313d142e23394bf8c78d43)) -* **deps:** update dependency prettier to ^3.2.5 ([#53](https://github.com/homarr-labs/homarr/issues/53)) ([15f0801](https://github.com/homarr-labs/homarr/commit/15f08011a6c2e7fd7274bc28b9d559269cb03f7e)) -* **deps:** update dependency prettier to ^3.3.0 ([#594](https://github.com/homarr-labs/homarr/issues/594)) ([b1b839f](https://github.com/homarr-labs/homarr/commit/b1b839fcd866f0c157e14d59a47e0cdbeb1ff444)) -* **deps:** update dependency prettier to ^3.3.1 ([#623](https://github.com/homarr-labs/homarr/issues/623)) ([8f551aa](https://github.com/homarr-labs/homarr/commit/8f551aa4856065c3a7e1e7e763781863ed2db972)) -* **deps:** update dependency prettier to ^3.3.2 ([#656](https://github.com/homarr-labs/homarr/issues/656)) ([d69cda0](https://github.com/homarr-labs/homarr/commit/d69cda03136f29744b4935e28bdfc4dcb24424fb)) -* **deps:** update dependency prettier to ^3.3.3 ([#805](https://github.com/homarr-labs/homarr/issues/805)) ([66036b0](https://github.com/homarr-labs/homarr/commit/66036b08bcfecb5fb4e2e588bd74e935a387a34c)) -* **deps:** update dependency prettier to ^3.4.0 ([#1550](https://github.com/homarr-labs/homarr/issues/1550)) ([2e9b99d](https://github.com/homarr-labs/homarr/commit/2e9b99dff76e675a5e28ca22dddc467fe94a5f6d)) -* **deps:** update dependency prettier to ^3.4.1 ([#1554](https://github.com/homarr-labs/homarr/issues/1554)) ([27b8f65](https://github.com/homarr-labs/homarr/commit/27b8f65238eca00e6f51f681c4689199cae22728)) -* **deps:** update dependency prettier to ^3.4.2 ([#1602](https://github.com/homarr-labs/homarr/issues/1602)) ([bbec013](https://github.com/homarr-labs/homarr/commit/bbec01385f8ba609efe83712c61df4c0b483badb)) -* **deps:** update dependency react-error-boundary to ^4.1.0 ([#1304](https://github.com/homarr-labs/homarr/issues/1304)) ([9fa4bef](https://github.com/homarr-labs/homarr/commit/9fa4bef2a4a9edf68299f3095a60d4eaaf144f65)) -* **deps:** update dependency react-error-boundary to ^4.1.1 ([#1315](https://github.com/homarr-labs/homarr/issues/1315)) ([3b5082c](https://github.com/homarr-labs/homarr/commit/3b5082c107771ade24917da61b87321bfc40995d)) -* **deps:** update dependency react-error-boundary to ^4.1.2 ([#1334](https://github.com/homarr-labs/homarr/issues/1334)) ([98f1c33](https://github.com/homarr-labs/homarr/commit/98f1c333186c44f5f1e4bfc6452451edb990cbaa)) -* **deps:** update dependency react-error-boundary to v5 ([#1748](https://github.com/homarr-labs/homarr/issues/1748)) ([01db27c](https://github.com/homarr-labs/homarr/commit/01db27c34f3daf6e67e35bbd357df31dcb154b41)) -* **deps:** update dependency react-simple-code-editor to ^0.14.0 ([#738](https://github.com/homarr-labs/homarr/issues/738)) ([d32075d](https://github.com/homarr-labs/homarr/commit/d32075d410af5111e4e33c09be7facdd0d44d196)) -* **deps:** update dependency react-simple-code-editor to ^0.14.1 ([#746](https://github.com/homarr-labs/homarr/issues/746)) ([9375738](https://github.com/homarr-labs/homarr/commit/9375738e0552357f53b52c1637732494f568f5a0)) -* **deps:** update dependency reflect-metadata to ^0.2.1 ([#182](https://github.com/homarr-labs/homarr/issues/182)) ([9ee96a1](https://github.com/homarr-labs/homarr/commit/9ee96a14628b3b450d45b07ad45863375b899cde)) -* **deps:** update dependency rimraf to v5 ([#186](https://github.com/homarr-labs/homarr/issues/186)) ([f4b93d1](https://github.com/homarr-labs/homarr/commit/f4b93d1eae4b28cb5929b30ea2a55c57bdac84be)) -* **deps:** update dependency rxjs to ^7.8.1 ([#181](https://github.com/homarr-labs/homarr/issues/181)) ([e1a98f7](https://github.com/homarr-labs/homarr/commit/e1a98f7fc05881c3b161f22463afbcf3b0b306b0)) -* **deps:** update dependency sass to ^1.71.0 ([#96](https://github.com/homarr-labs/homarr/issues/96)) ([9a60588](https://github.com/homarr-labs/homarr/commit/9a60588a031b262a06d4048804960bf7966ba1b5)) -* **deps:** update dependency sass to ^1.71.1 ([#148](https://github.com/homarr-labs/homarr/issues/148)) ([abc4a9a](https://github.com/homarr-labs/homarr/commit/abc4a9afbc7b61266907826da1f20077e98176f2)) -* **deps:** update dependency sass to ^1.72.0 ([#230](https://github.com/homarr-labs/homarr/issues/230)) ([4bab91f](https://github.com/homarr-labs/homarr/commit/4bab91f8deeb65678009edcbff31abe843269d44)) -* **deps:** update dependency sass to ^1.74.1 ([#306](https://github.com/homarr-labs/homarr/issues/306)) ([e68a2e5](https://github.com/homarr-labs/homarr/commit/e68a2e5813d857f1da8bd1ae15129fd323d98f52)) -* **deps:** update dependency sass to ^1.75.0 ([#347](https://github.com/homarr-labs/homarr/issues/347)) ([0cc5225](https://github.com/homarr-labs/homarr/commit/0cc5225e32b18cf02378836bc4142663c68aa82d)) -* **deps:** update dependency sass to ^1.76.0 ([#410](https://github.com/homarr-labs/homarr/issues/410)) ([e556bf3](https://github.com/homarr-labs/homarr/commit/e556bf3e6617df664897037cfe6d223e56a8262a)) -* **deps:** update dependency sass to ^1.77.0 ([#451](https://github.com/homarr-labs/homarr/issues/451)) ([3ae96d9](https://github.com/homarr-labs/homarr/commit/3ae96d94a20797f0b4ec5ff22e4649a0fd497748)) -* **deps:** update dependency sass to ^1.77.1 ([#469](https://github.com/homarr-labs/homarr/issues/469)) ([cb6f754](https://github.com/homarr-labs/homarr/commit/cb6f754492b737b70f3db614efd2dfaea49daca9)) -* **deps:** update dependency sass to ^1.77.2 ([#506](https://github.com/homarr-labs/homarr/issues/506)) ([7664b00](https://github.com/homarr-labs/homarr/commit/7664b00be00dd134c130bbb6ffb438155d333553)) -* **deps:** update dependency sass to ^1.77.3 ([#579](https://github.com/homarr-labs/homarr/issues/579)) ([169feca](https://github.com/homarr-labs/homarr/commit/169fecaba1645f0313e730de0e0caff0793cd4c4)) -* **deps:** update dependency sass to ^1.77.4 ([#586](https://github.com/homarr-labs/homarr/issues/586)) ([79d977c](https://github.com/homarr-labs/homarr/commit/79d977c0085e8fc600d1806a566ac17e763dfc48)) -* **deps:** update dependency sass to ^1.77.5 ([#659](https://github.com/homarr-labs/homarr/issues/659)) ([f5f6388](https://github.com/homarr-labs/homarr/commit/f5f63883612c320d4a73cb5bf9435b30c6071537)) -* **deps:** update dependency sass to ^1.77.6 ([#683](https://github.com/homarr-labs/homarr/issues/683)) ([4526fa6](https://github.com/homarr-labs/homarr/commit/4526fa6fc488aad0b54093e47e9064d771473d30)) -* **deps:** update dependency sass to ^1.77.7 ([#773](https://github.com/homarr-labs/homarr/issues/773)) ([dcb9cfa](https://github.com/homarr-labs/homarr/commit/dcb9cfaf295c3aeb30181ea5c7c7e404785e6763)) -* **deps:** update dependency sass to ^1.77.8 ([#783](https://github.com/homarr-labs/homarr/issues/783)) ([ec4b3a6](https://github.com/homarr-labs/homarr/commit/ec4b3a64081bd5d94d4e728dcd7562f708cf0c5f)) -* **deps:** update dependency sass to ^1.78.0 ([#1064](https://github.com/homarr-labs/homarr/issues/1064)) ([3d1b626](https://github.com/homarr-labs/homarr/commit/3d1b626baa736a6a41b4b35f32ef44d948b2f309)) -* **deps:** update dependency sass to ^1.79.0 ([#1147](https://github.com/homarr-labs/homarr/issues/1147)) ([f1d5dd0](https://github.com/homarr-labs/homarr/commit/f1d5dd03cbea8ea569d21f94b95e31d66cb03adc)) -* **deps:** update dependency sass to ^1.79.1 ([#1148](https://github.com/homarr-labs/homarr/issues/1148)) ([3cb1221](https://github.com/homarr-labs/homarr/commit/3cb1221038715ae8d771c3a6622f666ae9493aef)) -* **deps:** update dependency sass to ^1.79.2 ([#1153](https://github.com/homarr-labs/homarr/issues/1153)) ([a028251](https://github.com/homarr-labs/homarr/commit/a02825113a17aa3142ced5a726058bd6168beee1)) -* **deps:** update dependency sass to ^1.79.3 ([#1159](https://github.com/homarr-labs/homarr/issues/1159)) ([612a158](https://github.com/homarr-labs/homarr/commit/612a15810b671cedeb9fefd7902692a466394e3a)) -* **deps:** update dependency sass to ^1.79.4 ([#1198](https://github.com/homarr-labs/homarr/issues/1198)) ([9af01bb](https://github.com/homarr-labs/homarr/commit/9af01bb68006af39f009e4a0605cc0a7f42bcba5)) -* **deps:** update dependency sass to ^1.79.5 ([#1279](https://github.com/homarr-labs/homarr/issues/1279)) ([99ddd92](https://github.com/homarr-labs/homarr/commit/99ddd9214edb8841a1c969af9c1d1f91643e6df8)) -* **deps:** update dependency sass to ^1.79.6 ([#1312](https://github.com/homarr-labs/homarr/issues/1312)) ([0c134dd](https://github.com/homarr-labs/homarr/commit/0c134dde6e9b472cd5cd32dfebdc9146e4fb64db)) -* **deps:** update dependency sass to ^1.80.1 ([#1314](https://github.com/homarr-labs/homarr/issues/1314)) ([a44c907](https://github.com/homarr-labs/homarr/commit/a44c90774547d9ad6c4911c12f21ffa98b3694e5)) -* **deps:** update dependency sass to ^1.80.2 ([#1319](https://github.com/homarr-labs/homarr/issues/1319)) ([3781fe5](https://github.com/homarr-labs/homarr/commit/3781fe5cf876d36aacc7bb4f373ea7973e4e57f7)) -* **deps:** update dependency sass to ^1.80.3 ([#1331](https://github.com/homarr-labs/homarr/issues/1331)) ([e46bf5d](https://github.com/homarr-labs/homarr/commit/e46bf5d24811aa9c8e8092d6635e67f665123721)) -* **deps:** update dependency sass to ^1.80.4 ([#1366](https://github.com/homarr-labs/homarr/issues/1366)) ([2bac28a](https://github.com/homarr-labs/homarr/commit/2bac28a50a843bdf2bdefdc9bad4a07af2fa92b9)) -* **deps:** update dependency sass to ^1.80.5 ([#1388](https://github.com/homarr-labs/homarr/issues/1388)) ([74a8495](https://github.com/homarr-labs/homarr/commit/74a84959034ba1383716e06a7ce73d2f6397e40f)) -* **deps:** update dependency sass to ^1.80.6 ([#1399](https://github.com/homarr-labs/homarr/issues/1399)) ([d908b3f](https://github.com/homarr-labs/homarr/commit/d908b3f6769fe5add91e605f16dc6c5f89d96373)) -* **deps:** update dependency sass to ^1.80.7 ([#1472](https://github.com/homarr-labs/homarr/issues/1472)) ([9bd0e0f](https://github.com/homarr-labs/homarr/commit/9bd0e0f4ee49a3e6ed5245312c5fb77ff8dc48a8)) -* **deps:** update dependency sass to ^1.81.0 ([#1486](https://github.com/homarr-labs/homarr/issues/1486)) ([908d0bb](https://github.com/homarr-labs/homarr/commit/908d0bbc5066e3ee312c89025e3bd60c224094f3)) -* **deps:** update dependency sass to ^1.81.1 ([#1589](https://github.com/homarr-labs/homarr/issues/1589)) ([57bbd43](https://github.com/homarr-labs/homarr/commit/57bbd43c74d29272ac0fa3667965fd78decc4e6b)) -* **deps:** update dependency sass to ^1.82.0 ([#1600](https://github.com/homarr-labs/homarr/issues/1600)) ([825b1a3](https://github.com/homarr-labs/homarr/commit/825b1a3643266049ddf5a6cd53defa47e78d8cc8)) -* **deps:** update dependency sass to ^1.83.0 ([#1650](https://github.com/homarr-labs/homarr/issues/1650)) ([0bd8e2c](https://github.com/homarr-labs/homarr/commit/0bd8e2c08516fabd9bd6c3d4649abb4f47d7bc13)) -* **deps:** update dependency sass to ^1.83.1 ([#1852](https://github.com/homarr-labs/homarr/issues/1852)) ([812469d](https://github.com/homarr-labs/homarr/commit/812469db827badee63c73a8c819922c24fdefd13)) -* **deps:** update dependency sass to ^1.83.3 ([#1945](https://github.com/homarr-labs/homarr/issues/1945)) ([99c69ba](https://github.com/homarr-labs/homarr/commit/99c69ba65ddb5f8cf6bdd61518649fc21405ac87)) -* **deps:** update dependency sass to ^1.83.4 ([#1946](https://github.com/homarr-labs/homarr/issues/1946)) ([ff1a003](https://github.com/homarr-labs/homarr/commit/ff1a00303728b15b8e709ce57d77a78967abab78)) -* **deps:** update dependency sharp to ^0.33.3 ([#260](https://github.com/homarr-labs/homarr/issues/260)) ([87808c1](https://github.com/homarr-labs/homarr/commit/87808c1349f520a4d2160a11ef49c11a91665ea9)) -* **deps:** update dependency superjson to v2.2.2 ([#1618](https://github.com/homarr-labs/homarr/issues/1618)) ([aaa3e7c](https://github.com/homarr-labs/homarr/commit/aaa3e7ce0c58f644db283e5c256779b5c4fb09bb)) -* **deps:** update dependency swagger-ui-react to ^5.17.14 ([#1031](https://github.com/homarr-labs/homarr/issues/1031)) ([6351bf7](https://github.com/homarr-labs/homarr/commit/6351bf78ff902948218b50d568e7d7425a27b2ad)) -* **deps:** update dependency swagger-ui-react to ^5.18.0 ([#1428](https://github.com/homarr-labs/homarr/issues/1428)) ([4643c0f](https://github.com/homarr-labs/homarr/commit/4643c0f004425f54d96871755aec1e0a6cfa30b2)) -* **deps:** update dependency swagger-ui-react to ^5.18.1 ([#1432](https://github.com/homarr-labs/homarr/issues/1432)) ([0809d5a](https://github.com/homarr-labs/homarr/commit/0809d5aa747e4937ca1890ee04972b99e87f26bc)) -* **deps:** update dependency swagger-ui-react to ^5.18.2 ([#1442](https://github.com/homarr-labs/homarr/issues/1442)) ([2357435](https://github.com/homarr-labs/homarr/commit/23574359f0ed180d512810773b48bd046139ae66)) -* **deps:** update dependency tldts to ^6.1.38 ([#931](https://github.com/homarr-labs/homarr/issues/931)) ([a2be781](https://github.com/homarr-labs/homarr/commit/a2be781f81465b32543b28dee7df8f1b0290f12a)) -* **deps:** update dependency tldts to ^6.1.39 ([#966](https://github.com/homarr-labs/homarr/issues/966)) ([4b39c16](https://github.com/homarr-labs/homarr/commit/4b39c16d256656998ab817f58cdaf13fe81dc044)) -* **deps:** update dependency tldts to ^6.1.40 ([#996](https://github.com/homarr-labs/homarr/issues/996)) ([f5c380f](https://github.com/homarr-labs/homarr/commit/f5c380f75b30bc45573a4aaef7fe926c3a71011d)) -* **deps:** update dependency tldts to ^6.1.41 ([#1011](https://github.com/homarr-labs/homarr/issues/1011)) ([7742d5f](https://github.com/homarr-labs/homarr/commit/7742d5f5b4b37ab2fb1e6cdc6a5c25c5caca1a5d)) -* **deps:** update dependency tldts to ^6.1.42 ([#1069](https://github.com/homarr-labs/homarr/issues/1069)) ([247de55](https://github.com/homarr-labs/homarr/commit/247de555cec15ae8f6fac0fd5b2abc90382b1786)) -* **deps:** update dependency tldts to ^6.1.43 ([#1080](https://github.com/homarr-labs/homarr/issues/1080)) ([fc1bff2](https://github.com/homarr-labs/homarr/commit/fc1bff2110e1a4c1fa1d48ba4a42ee4d3ad5b469)) -* **deps:** update dependency tldts to ^6.1.44 ([#1095](https://github.com/homarr-labs/homarr/issues/1095)) ([18347fe](https://github.com/homarr-labs/homarr/commit/18347fef3bc355d42e902e76e0caf02ee855df9a)) -* **deps:** update dependency tldts to ^6.1.45 ([#1121](https://github.com/homarr-labs/homarr/issues/1121)) ([7059a3d](https://github.com/homarr-labs/homarr/commit/7059a3d88f73ddceb70d037bb0f362fe50bda225)) -* **deps:** update dependency tldts to ^6.1.46 ([#1128](https://github.com/homarr-labs/homarr/issues/1128)) ([aca5c27](https://github.com/homarr-labs/homarr/commit/aca5c279b5360fdacd3f5dc77fd58ce41c343e5f)) -* **deps:** update dependency tldts to ^6.1.47 ([#1152](https://github.com/homarr-labs/homarr/issues/1152)) ([aa2d440](https://github.com/homarr-labs/homarr/commit/aa2d440acbbe92d088b9ba9bdf2ebbc5b2b642c1)) -* **deps:** update dependency tldts to ^6.1.48 ([#1190](https://github.com/homarr-labs/homarr/issues/1190)) ([f6c7271](https://github.com/homarr-labs/homarr/commit/f6c7271fb43324f7e9eb0f8cc7ae5646f516b8b2)) -* **deps:** update dependency tldts to ^6.1.49 ([#1216](https://github.com/homarr-labs/homarr/issues/1216)) ([2f3619b](https://github.com/homarr-labs/homarr/commit/2f3619b68dc9f3c20a229b896f8b3c4b91e5c0a7)) -* **deps:** update dependency tldts to ^6.1.50 ([#1228](https://github.com/homarr-labs/homarr/issues/1228)) ([17572bc](https://github.com/homarr-labs/homarr/commit/17572bc602a7b1e42def413f1a7668cf1280170b)) -* **deps:** update dependency tldts to ^6.1.51 ([#1288](https://github.com/homarr-labs/homarr/issues/1288)) ([0fadc28](https://github.com/homarr-labs/homarr/commit/0fadc28a125aa68e6d6d96a17c7c86012d13a288)) -* **deps:** update dependency tldts to ^6.1.52 ([#1307](https://github.com/homarr-labs/homarr/issues/1307)) ([c4ec4f3](https://github.com/homarr-labs/homarr/commit/c4ec4f3c66078b0c94bb049334e32e31e41936ac)) -* **deps:** update dependency tldts to ^6.1.53 ([#1351](https://github.com/homarr-labs/homarr/issues/1351)) ([a8c36f3](https://github.com/homarr-labs/homarr/commit/a8c36f35c3e5a9342fe932832342f76855c8d4d4)) -* **deps:** update dependency tldts to ^6.1.54 ([#1353](https://github.com/homarr-labs/homarr/issues/1353)) ([e062ea1](https://github.com/homarr-labs/homarr/commit/e062ea150782b73d0a86748fef43355a46df2244)) -* **deps:** update dependency tldts to ^6.1.55 ([#1369](https://github.com/homarr-labs/homarr/issues/1369)) ([3a6e957](https://github.com/homarr-labs/homarr/commit/3a6e957710c08e64cc7b42ecca2bf5069cceb896)) -* **deps:** update dependency tldts to ^6.1.56 ([#1375](https://github.com/homarr-labs/homarr/issues/1375)) ([f8c21f6](https://github.com/homarr-labs/homarr/commit/f8c21f6000e8d8843e43afaf09713f958b318f0f)) -* **deps:** update dependency tldts to ^6.1.57 ([#1386](https://github.com/homarr-labs/homarr/issues/1386)) ([8da1dd0](https://github.com/homarr-labs/homarr/commit/8da1dd0d5f95e1d15f1115a8518992935e89059c)) -* **deps:** update dependency tldts to ^6.1.58 ([#1400](https://github.com/homarr-labs/homarr/issues/1400)) ([baabf71](https://github.com/homarr-labs/homarr/commit/baabf717078caba315f39a1d429fc0ba92f3d167)) -* **deps:** update dependency tldts to ^6.1.59 ([#1447](https://github.com/homarr-labs/homarr/issues/1447)) ([2a7d648](https://github.com/homarr-labs/homarr/commit/2a7d64804975797863b9a4a7b03d7ab10f4d8a2b)) -* **deps:** update dependency tldts to ^6.1.60 ([#1460](https://github.com/homarr-labs/homarr/issues/1460)) ([4ab40c6](https://github.com/homarr-labs/homarr/commit/4ab40c6fa8e13af66a0a3b14e3c03955ff98f2c7)) -* **deps:** update dependency tldts to ^6.1.61 ([#1474](https://github.com/homarr-labs/homarr/issues/1474)) ([3ca97fe](https://github.com/homarr-labs/homarr/commit/3ca97fef0b984e06461d92f16564bd787ff53150)) -* **deps:** update dependency tldts to ^6.1.62 ([#1514](https://github.com/homarr-labs/homarr/issues/1514)) ([a2a65ab](https://github.com/homarr-labs/homarr/commit/a2a65abd3d451104d59e8eb55ad74d83f6956784)) -* **deps:** update dependency tldts to ^6.1.63 ([#1519](https://github.com/homarr-labs/homarr/issues/1519)) ([86ae346](https://github.com/homarr-labs/homarr/commit/86ae3469795378f626a2b6aa5eaaf6cd38c874d9)) -* **deps:** update dependency tldts to ^6.1.64 ([#1529](https://github.com/homarr-labs/homarr/issues/1529)) ([cdfb61f](https://github.com/homarr-labs/homarr/commit/cdfb61fb28f6a9adc8658187a41e0cfb3fdc1a8f)) -* **deps:** update dependency tldts to ^6.1.65 ([#1575](https://github.com/homarr-labs/homarr/issues/1575)) ([fb4a19b](https://github.com/homarr-labs/homarr/commit/fb4a19bfe457d1d815e9b72a85c8ea742b950a69)) -* **deps:** update dependency tldts to ^6.1.66 ([#1625](https://github.com/homarr-labs/homarr/issues/1625)) ([6a79d01](https://github.com/homarr-labs/homarr/commit/6a79d01d79b613dccf2a3ffe39a7271bc1931812)) -* **deps:** update dependency tldts to ^6.1.67 ([#1648](https://github.com/homarr-labs/homarr/issues/1648)) ([75c0f70](https://github.com/homarr-labs/homarr/commit/75c0f70ef6159bbada6770a49cfba59f4470fcfc)) -* **deps:** update dependency tldts to ^6.1.68 ([#1656](https://github.com/homarr-labs/homarr/issues/1656)) ([3347886](https://github.com/homarr-labs/homarr/commit/3347886f1e6754f9dd0f8a9975c51bf61b0d3f59)) -* **deps:** update dependency tldts to ^6.1.69 ([#1726](https://github.com/homarr-labs/homarr/issues/1726)) ([c0f6816](https://github.com/homarr-labs/homarr/commit/c0f681637db1d6e7abdf3326b3a3c17283440d09)) -* **deps:** update dependency trpc-swagger to ^1.2.6 ([#1032](https://github.com/homarr-labs/homarr/issues/1032)) ([e60e4a4](https://github.com/homarr-labs/homarr/commit/e60e4a49f84ec46f47bdaa830cea5ddeaf7ba8a3)) -* **deps:** update dependency trpc-to-openapi to ^2.0.3 ([#1576](https://github.com/homarr-labs/homarr/issues/1576)) ([0ab9d0b](https://github.com/homarr-labs/homarr/commit/0ab9d0bd694d2cb66de45bcfd0010ecc2b226cb7)) -* **deps:** update dependency trpc-to-openapi to ^2.0.4 ([#1578](https://github.com/homarr-labs/homarr/issues/1578)) ([3ffdc05](https://github.com/homarr-labs/homarr/commit/3ffdc054429a6ec6a3ddc14b9d1ac97602eb0f15)) -* **deps:** update dependency trpc-to-openapi to ^2.1.0 ([#1579](https://github.com/homarr-labs/homarr/issues/1579)) ([7343bdd](https://github.com/homarr-labs/homarr/commit/7343bdde1304f655149c257319996047ddd8a530)) -* **deps:** update dependency trpc-to-openapi to ^2.1.1 ([#1788](https://github.com/homarr-labs/homarr/issues/1788)) ([4943e7b](https://github.com/homarr-labs/homarr/commit/4943e7b851cd29291b5e8f2f9d0e084b4deeffc0)) -* **deps:** update dependency trpc-to-openapi to ^2.1.2 ([#1900](https://github.com/homarr-labs/homarr/issues/1900)) ([8edf922](https://github.com/homarr-labs/homarr/commit/8edf922e3050ba9d8c951180ae68f628067c190e)) -* **deps:** update dependency typescript-eslint to ^7.13.0 ([#653](https://github.com/homarr-labs/homarr/issues/653)) ([1949885](https://github.com/homarr-labs/homarr/commit/19498854fc1da6fdb9ec29f3ecb7a113a6b2a33e)) -* **deps:** update dependency typescript-eslint to ^7.13.1 ([#681](https://github.com/homarr-labs/homarr/issues/681)) ([e9d6120](https://github.com/homarr-labs/homarr/commit/e9d612051d043253d7c41bafdd4be82949564e43)) -* **deps:** update dependency typescript-eslint to ^7.14.1 ([#709](https://github.com/homarr-labs/homarr/issues/709)) ([196ac34](https://github.com/homarr-labs/homarr/commit/196ac340a16528196e1ca405147c83ed31f8337a)) -* **deps:** update dependency typescript-eslint to ^7.15.0 ([#732](https://github.com/homarr-labs/homarr/issues/732)) ([0990e4b](https://github.com/homarr-labs/homarr/commit/0990e4b552e3c65ee8802e11d2bd3adceab24009)) -* **deps:** update dependency typescript-eslint to ^7.16.0 ([#762](https://github.com/homarr-labs/homarr/issues/762)) ([2c197bc](https://github.com/homarr-labs/homarr/commit/2c197bc59bab428db4990a7c99b1dcdd8b372617)) -* **deps:** update dependency typescript-eslint to ^7.16.1 ([#814](https://github.com/homarr-labs/homarr/issues/814)) ([56c6be5](https://github.com/homarr-labs/homarr/commit/56c6be523db5219b97bafbc53d63360d019fefcc)) -* **deps:** update dependency typescript-eslint to ^7.17.0 ([#855](https://github.com/homarr-labs/homarr/issues/855)) ([b2860ff](https://github.com/homarr-labs/homarr/commit/b2860ffbd3e29ef21021b2416d0c26f0e3b6c54c)) -* **deps:** update dependency typescript-eslint to ^7.18.0 ([#886](https://github.com/homarr-labs/homarr/issues/886)) ([1a24ba6](https://github.com/homarr-labs/homarr/commit/1a24ba6ef73eb058f19f31140cff5198311eba08)) -* **deps:** update dependency typescript-eslint to ^8.0.1 ([#921](https://github.com/homarr-labs/homarr/issues/921)) ([c69483a](https://github.com/homarr-labs/homarr/commit/c69483a12c14ab284dd3cacd0e31d194dcc48cfc)) -* **deps:** update dependency typescript-eslint to ^8.1.0 ([#968](https://github.com/homarr-labs/homarr/issues/968)) ([b9f048c](https://github.com/homarr-labs/homarr/commit/b9f048c57d9f2618f8059862a800259246caa2f8)) -* **deps:** update dependency typescript-eslint to ^8.10.0 ([#1317](https://github.com/homarr-labs/homarr/issues/1317)) ([a231a2d](https://github.com/homarr-labs/homarr/commit/a231a2da6cd42e355fff52b9cf718f44c658cfff)) -* **deps:** update dependency typescript-eslint to ^8.11.0 ([#1346](https://github.com/homarr-labs/homarr/issues/1346)) ([a005ead](https://github.com/homarr-labs/homarr/commit/a005ead158ca1f058605b2a3198af438c7039109)) -* **deps:** update dependency typescript-eslint to ^8.12.2 ([#1381](https://github.com/homarr-labs/homarr/issues/1381)) ([17401d1](https://github.com/homarr-labs/homarr/commit/17401d1d7284088bc5fdc0e037dc72f75e8abd7e)) -* **deps:** update dependency typescript-eslint to ^8.13.0 ([#1420](https://github.com/homarr-labs/homarr/issues/1420)) ([97eb4c5](https://github.com/homarr-labs/homarr/commit/97eb4c54e2f7f9cfc0467b0236b4a2db87bc546c)) -* **deps:** update dependency typescript-eslint to ^8.14.0 ([#1465](https://github.com/homarr-labs/homarr/issues/1465)) ([53acff9](https://github.com/homarr-labs/homarr/commit/53acff91430b9889c90ab9e1a35bce792baa4dd9)) -* **deps:** update dependency typescript-eslint to ^8.15.0 ([#1497](https://github.com/homarr-labs/homarr/issues/1497)) ([b887713](https://github.com/homarr-labs/homarr/commit/b8877137ac05a08c5647d0ba785439d364d9bafb)) -* **deps:** update dependency typescript-eslint to ^8.16.0 ([#1544](https://github.com/homarr-labs/homarr/issues/1544)) ([4df6006](https://github.com/homarr-labs/homarr/commit/4df6006f0e487028fffc3f65d4fa20b2f252e612)) -* **deps:** update dependency typescript-eslint to ^8.17.0 ([#1582](https://github.com/homarr-labs/homarr/issues/1582)) ([5ecf93a](https://github.com/homarr-labs/homarr/commit/5ecf93a317f8face4d47d255c83c7f197eccdb92)) -* **deps:** update dependency typescript-eslint to ^8.18.0 ([#1634](https://github.com/homarr-labs/homarr/issues/1634)) ([3bee3fe](https://github.com/homarr-labs/homarr/commit/3bee3fe3f64c274c73f698cd5f8850f4496c35bd)) -* **deps:** update dependency typescript-eslint to ^8.18.1 ([#1673](https://github.com/homarr-labs/homarr/issues/1673)) ([613d1f9](https://github.com/homarr-labs/homarr/commit/613d1f966282886c6a85bc400dfedbc4bdac906c)) -* **deps:** update dependency typescript-eslint to ^8.18.2 ([#1762](https://github.com/homarr-labs/homarr/issues/1762)) ([9223dd0](https://github.com/homarr-labs/homarr/commit/9223dd06ee0c2b51e036f607d7b3252c61ab77ea)) -* **deps:** update dependency typescript-eslint to ^8.19.0 ([#1814](https://github.com/homarr-labs/homarr/issues/1814)) ([598f004](https://github.com/homarr-labs/homarr/commit/598f0047eb13d6d0d6b68c9032a7a6648f4b6aa3)) -* **deps:** update dependency typescript-eslint to ^8.19.1 ([#1874](https://github.com/homarr-labs/homarr/issues/1874)) ([be4e753](https://github.com/homarr-labs/homarr/commit/be4e75321a0a6a05c6ac6c4ba97ffb5068aed4aa)) -* **deps:** update dependency typescript-eslint to ^8.2.0 ([#999](https://github.com/homarr-labs/homarr/issues/999)) ([0585187](https://github.com/homarr-labs/homarr/commit/058518710e02ea47bc6e221cab43604d70b16ab5)) -* **deps:** update dependency typescript-eslint to ^8.20.0 ([#1938](https://github.com/homarr-labs/homarr/issues/1938)) ([feecdd3](https://github.com/homarr-labs/homarr/commit/feecdd36d49890022e8f479efe6cefa3f77d265a)) -* **deps:** update dependency typescript-eslint to ^8.3.0 ([#1036](https://github.com/homarr-labs/homarr/issues/1036)) ([b0e2692](https://github.com/homarr-labs/homarr/commit/b0e269209e67db1569effd72d1560c0414574654)) -* **deps:** update dependency typescript-eslint to ^8.4.0 ([#1058](https://github.com/homarr-labs/homarr/issues/1058)) ([1d23667](https://github.com/homarr-labs/homarr/commit/1d236678b334c35358a3d95e75d81ad16657afca)) -* **deps:** update dependency typescript-eslint to ^8.5.0 ([#1089](https://github.com/homarr-labs/homarr/issues/1089)) ([c844eb2](https://github.com/homarr-labs/homarr/commit/c844eb2a224c473dd42df4a1ffc9a74bd533e0e2)) -* **deps:** update dependency typescript-eslint to ^8.6.0 ([#1136](https://github.com/homarr-labs/homarr/issues/1136)) ([3ef478c](https://github.com/homarr-labs/homarr/commit/3ef478c53ab56c50b1ee1d71eebfcc32a4b8828a)) -* **deps:** update dependency typescript-eslint to ^8.7.0 ([#1165](https://github.com/homarr-labs/homarr/issues/1165)) ([6aa5adf](https://github.com/homarr-labs/homarr/commit/6aa5adf5b0602dc3c7de75d9fc88c751d77ceed9)) -* **deps:** update dependency typescript-eslint to ^8.8.0 ([#1207](https://github.com/homarr-labs/homarr/issues/1207)) ([233033f](https://github.com/homarr-labs/homarr/commit/233033f1ce2c1348287fd4f37cf27e53ca317868)) -* **deps:** update dependency typescript-eslint to ^8.8.1 ([#1266](https://github.com/homarr-labs/homarr/issues/1266)) ([4d51e3b](https://github.com/homarr-labs/homarr/commit/4d51e3b3442860fa43ef2766681aaf2bce771d3f)) -* **deps:** update dependency typescript-eslint to ^8.9.0 ([#1292](https://github.com/homarr-labs/homarr/issues/1292)) ([65b1ae2](https://github.com/homarr-labs/homarr/commit/65b1ae26d15d29820f3feb097f6ccf43e89b5e22)) -* **deps:** update dependency typescript-eslint to v8 ([#896](https://github.com/homarr-labs/homarr/issues/896)) ([a9a4602](https://github.com/homarr-labs/homarr/commit/a9a46024e2a1a130bf0f2d9f87d1fa7caa35823b)) -* **deps:** update dependency undici to v6.19.2 ([#691](https://github.com/homarr-labs/homarr/issues/691)) ([541d745](https://github.com/homarr-labs/homarr/commit/541d745cea4d615d88f0af454e39de61cfa104cf)) -* **deps:** update dependency undici to v6.19.3 ([#850](https://github.com/homarr-labs/homarr/issues/850)) ([1098725](https://github.com/homarr-labs/homarr/commit/1098725bd1f010056e40eb00db40e19011ef158a)) -* **deps:** update dependency undici to v6.19.4 ([#854](https://github.com/homarr-labs/homarr/issues/854)) ([0c7264b](https://github.com/homarr-labs/homarr/commit/0c7264bc52c80794a74c9836ae9f9d56df6fc52c)) -* **deps:** update dependency undici to v6.19.5 ([#893](https://github.com/homarr-labs/homarr/issues/893)) ([5256853](https://github.com/homarr-labs/homarr/commit/525685335103289eb06606b04610dcec1ecbf0a1)) -* **deps:** update dependency undici to v6.19.7 ([#950](https://github.com/homarr-labs/homarr/issues/950)) ([3be1100](https://github.com/homarr-labs/homarr/commit/3be110097bcb500ef79d88b28b626bcf15329ed3)) -* **deps:** update dependency undici to v6.19.8 ([#998](https://github.com/homarr-labs/homarr/issues/998)) ([9666440](https://github.com/homarr-labs/homarr/commit/9666440e803ce2275ef3d90ebbc37c00592b8372)) -* **deps:** update dependency undici to v6.20.0 ([#1275](https://github.com/homarr-labs/homarr/issues/1275)) ([c7b2261](https://github.com/homarr-labs/homarr/commit/c7b226142feaa3fb0651cdf8473d714643e8144d)) -* **deps:** update dependency undici to v6.20.1 ([#1291](https://github.com/homarr-labs/homarr/issues/1291)) ([85cf101](https://github.com/homarr-labs/homarr/commit/85cf101043a7dbcd9b3a956eb8b7fffb6d3712e3)) -* **deps:** update dependency undici to v6.21.0 ([#1477](https://github.com/homarr-labs/homarr/issues/1477)) ([07f89af](https://github.com/homarr-labs/homarr/commit/07f89afea8eb47894c1ef94e8f62f8fb8c45ebe8)) -* **deps:** update dependency undici to v7 ([#1560](https://github.com/homarr-labs/homarr/issues/1560)) ([44e2105](https://github.com/homarr-labs/homarr/commit/44e2105a8c9d7cc746f0424bf1f718f426dbea93)) -* **deps:** update dependency undici to v7.1.0 ([#1593](https://github.com/homarr-labs/homarr/issues/1593)) ([fb1f000](https://github.com/homarr-labs/homarr/commit/fb1f0003e60d21713968bc6ff4ec1ce85bc54388)) -* **deps:** update dependency undici to v7.1.1 ([#1674](https://github.com/homarr-labs/homarr/issues/1674)) ([02777d1](https://github.com/homarr-labs/homarr/commit/02777d104c5da555337b3b1494a906488fcc7d64)) -* **deps:** update dependency undici to v7.2.0 ([#1718](https://github.com/homarr-labs/homarr/issues/1718)) ([61afab5](https://github.com/homarr-labs/homarr/commit/61afab518f6193a700a547faffa4619b28fb0837)) -* **deps:** update dependency undici to v7.2.1 ([#1904](https://github.com/homarr-labs/homarr/issues/1904)) ([b034dcb](https://github.com/homarr-labs/homarr/commit/b034dcbb11017a016e30db0e2bf8c1a0765174ca)) -* **deps:** update dependency undici to v7.2.2 ([#1957](https://github.com/homarr-labs/homarr/issues/1957)) ([aaddf0d](https://github.com/homarr-labs/homarr/commit/aaddf0d987a25ef94db70b2a35ababfe63e414a4)) -* **deps:** update dependency undici to v7.2.3 ([#1963](https://github.com/homarr-labs/homarr/issues/1963)) ([5e83847](https://github.com/homarr-labs/homarr/commit/5e83847772e75a8a16ad34781092d3aea8fb5771)) -* **deps:** update dependency video.js to ^8.12.0 ([#400](https://github.com/homarr-labs/homarr/issues/400)) ([fc1360d](https://github.com/homarr-labs/homarr/commit/fc1360d6bb9512be8ca1f91e8624d2b9b45d1175)) -* **deps:** update dependency video.js to ^8.16.1 ([#772](https://github.com/homarr-labs/homarr/issues/772)) ([8085e72](https://github.com/homarr-labs/homarr/commit/8085e72cf487a1a757bd07f85f46280f2e677f9f)) -* **deps:** update dependency video.js to ^8.17.1 ([#884](https://github.com/homarr-labs/homarr/issues/884)) ([bce73bc](https://github.com/homarr-labs/homarr/commit/bce73bc38f19b5382f0ab233eac667dd926c27a3)) -* **deps:** update dependency video.js to ^8.17.2 ([#917](https://github.com/homarr-labs/homarr/issues/917)) ([796261c](https://github.com/homarr-labs/homarr/commit/796261c5f5f1fa2b02ce3d9ef338a5196d90ec07)) -* **deps:** update dependency video.js to ^8.17.3 ([#971](https://github.com/homarr-labs/homarr/issues/971)) ([0472594](https://github.com/homarr-labs/homarr/commit/04725942eeca3e4c535c6773044eea1b2dc68a33)) -* **deps:** update dependency video.js to ^8.17.4 ([#1099](https://github.com/homarr-labs/homarr/issues/1099)) ([8c9bb6e](https://github.com/homarr-labs/homarr/commit/8c9bb6e5d5eb61f5f7d60aa38c44c94675ab8202)) -* **deps:** update dependency video.js to ^8.18.1 ([#1259](https://github.com/homarr-labs/homarr/issues/1259)) ([ea84b1c](https://github.com/homarr-labs/homarr/commit/ea84b1c372efc40c4c48bf18347c734291a95997)) -* **deps:** update dependency video.js to ^8.19.1 ([#1370](https://github.com/homarr-labs/homarr/issues/1370)) ([4985bd8](https://github.com/homarr-labs/homarr/commit/4985bd8f9123b629dc9bba3c6bb40eaeab96cf87)) -* **deps:** update dependency video.js to ^8.20.0 ([#1561](https://github.com/homarr-labs/homarr/issues/1561)) ([9f98290](https://github.com/homarr-labs/homarr/commit/9f982906f25b042443ac57e8a46ccf98aca5731d)) -* **deps:** update dependency video.js to ^8.21.0 ([#1617](https://github.com/homarr-labs/homarr/issues/1617)) ([5c11a95](https://github.com/homarr-labs/homarr/commit/5c11a95ddcb8e31fbb1c1156a24a89f04f7c22b1)) -* **deps:** update dependency vite to ^5.2.3 ([#253](https://github.com/homarr-labs/homarr/issues/253)) ([7214df3](https://github.com/homarr-labs/homarr/commit/7214df3e442bb8dfc588b1470ed5cef89636643e)) -* **deps:** update dependency vite to ^5.2.5 ([#259](https://github.com/homarr-labs/homarr/issues/259)) ([8d40f54](https://github.com/homarr-labs/homarr/commit/8d40f54d7d1e350f1cd274de493fbe003eee2641)) -* **deps:** update dependency vite to ^5.2.6 ([#262](https://github.com/homarr-labs/homarr/issues/262)) ([36073db](https://github.com/homarr-labs/homarr/commit/36073dbc5ee404379e8ad165a53c2f703642b07a)) -* **deps:** update dependency winston to v3.12.0 ([#188](https://github.com/homarr-labs/homarr/issues/188)) ([fde6d66](https://github.com/homarr-labs/homarr/commit/fde6d6601d8a19b95896ccd8cd9654c48b1f6c48)) -* **deps:** update dependency winston to v3.13.0 ([#263](https://github.com/homarr-labs/homarr/issues/263)) ([724b348](https://github.com/homarr-labs/homarr/commit/724b3481063c028465af08127fb419b0551bb455)) -* **deps:** update dependency winston to v3.13.1 ([#781](https://github.com/homarr-labs/homarr/issues/781)) ([5382b19](https://github.com/homarr-labs/homarr/commit/5382b1999fd3d6ec3e6e043fbde5bd68a93f0e2d)) -* **deps:** update dependency winston to v3.14.0 ([#935](https://github.com/homarr-labs/homarr/issues/935)) ([ac4b4ed](https://github.com/homarr-labs/homarr/commit/ac4b4ed9cf5fc815dd83dce5e3f9608b4aac07af)) -* **deps:** update dependency winston to v3.14.1 ([#941](https://github.com/homarr-labs/homarr/issues/941)) ([db9c200](https://github.com/homarr-labs/homarr/commit/db9c200f890c70be6163b451e30f8950b676c2a1)) -* **deps:** update dependency winston to v3.14.2 ([#979](https://github.com/homarr-labs/homarr/issues/979)) ([b9bcc1d](https://github.com/homarr-labs/homarr/commit/b9bcc1d23aa20bf665c0fb13ec14f8eed0f6516e)) -* **deps:** update dependency winston to v3.15.0 ([#1245](https://github.com/homarr-labs/homarr/issues/1245)) ([20e6399](https://github.com/homarr-labs/homarr/commit/20e6399d5e493158b7c0fb9370e9287075d315da)) -* **deps:** update dependency winston to v3.16.0 ([#1398](https://github.com/homarr-labs/homarr/issues/1398)) ([02ddb1c](https://github.com/homarr-labs/homarr/commit/02ddb1c9c6d15e4965c93935ff7887f90bff05a4)) -* **deps:** update dependency winston to v3.17.0 ([#1457](https://github.com/homarr-labs/homarr/issues/1457)) ([fc4cddc](https://github.com/homarr-labs/homarr/commit/fc4cddcbac74122e652d5409c875694ae11dc78a)) -* **deps:** update dependency ws to ^8.17.0 ([#392](https://github.com/homarr-labs/homarr/issues/392)) ([55822ee](https://github.com/homarr-labs/homarr/commit/55822ee7a51b4f907ed5be3b8202c60d07dce506)) -* **deps:** update dependency ws to ^8.17.1 ([#676](https://github.com/homarr-labs/homarr/issues/676)) ([0d14bad](https://github.com/homarr-labs/homarr/commit/0d14bad10bc45b50e0d3551c071f1ec62c9b7403)) -* **deps:** update dependency ws to ^8.18.0 ([#740](https://github.com/homarr-labs/homarr/issues/740)) ([1dd509a](https://github.com/homarr-labs/homarr/commit/1dd509a40fb9090ba88a0d8e1a67baf58b244cd9)) -* **deps:** update dependency zod to ^3.22.5 ([#361](https://github.com/homarr-labs/homarr/issues/361)) ([cb2b934](https://github.com/homarr-labs/homarr/commit/cb2b934c83c3464ff71bd9dff3be9742e975ef8c)) -* **deps:** update dependency zod to ^3.23.4 ([#373](https://github.com/homarr-labs/homarr/issues/373)) ([392a185](https://github.com/homarr-labs/homarr/commit/392a18564045ab2ea68c694192f771234e40b90c)) -* **deps:** update dependency zod to ^3.23.5 ([#399](https://github.com/homarr-labs/homarr/issues/399)) ([56388eb](https://github.com/homarr-labs/homarr/commit/56388eb8ef452e1dae0ca9c0c68ed6a2ff6fbbd1)) -* **deps:** update dependency zod to ^3.23.6 ([#424](https://github.com/homarr-labs/homarr/issues/424)) ([11c20ce](https://github.com/homarr-labs/homarr/commit/11c20ce711e564bc76d835ed839dbe7dfe332301)) -* **deps:** update dependency zod to ^3.23.7 ([#456](https://github.com/homarr-labs/homarr/issues/456)) ([cab3405](https://github.com/homarr-labs/homarr/commit/cab34052f905d22f5ee593a960895cc9c137292c)) -* **deps:** update dependency zod to ^3.23.8 ([#460](https://github.com/homarr-labs/homarr/issues/460)) ([687556a](https://github.com/homarr-labs/homarr/commit/687556ad96136a72dc720a38f4628d0ba5a1cbcb)) -* **deps:** update dependency zod to ^3.24.0 ([#1635](https://github.com/homarr-labs/homarr/issues/1635)) ([8a25467](https://github.com/homarr-labs/homarr/commit/8a2546704b56d35786681fa6924770b04f833dff)) -* **deps:** update dependency zod to ^3.24.1 ([#1642](https://github.com/homarr-labs/homarr/issues/1642)) ([5e466e8](https://github.com/homarr-labs/homarr/commit/5e466e80c54accbc303e44d2093518465ad5863e)) -* **deps:** update dependency zod-form-data to ^2.0.3 ([#1717](https://github.com/homarr-labs/homarr/issues/1717)) ([a7bd664](https://github.com/homarr-labs/homarr/commit/a7bd664c5cee578574bf37b7149a2142be9f8b7a)) -* **deps:** update dependency zod-form-data to ^2.0.4 ([#1719](https://github.com/homarr-labs/homarr/issues/1719)) ([3b7e6cc](https://github.com/homarr-labs/homarr/commit/3b7e6cc083220a0e3a0cf4f5243c073067ba5bc7)) -* **deps:** update dependency zod-form-data to ^2.0.5 ([#1822](https://github.com/homarr-labs/homarr/issues/1822)) ([a234fc8](https://github.com/homarr-labs/homarr/commit/a234fc844e5edcef9935efb0725b6ccceadfe69d)) -* **deps:** update gridstack.js fork to v1.11.2 ([#1605](https://github.com/homarr-labs/homarr/issues/1605)) ([bf45860](https://github.com/homarr-labs/homarr/commit/bf45860966987be44c5eecf9add34173f5968194)) -* **deps:** update mantine monorepo to ^7.10.0 ([#538](https://github.com/homarr-labs/homarr/issues/538)) ([ad3ef4c](https://github.com/homarr-labs/homarr/commit/ad3ef4c313fceb40baaedb9bc3b0e17009eed5cb)) -* **deps:** update mantine monorepo to ^7.10.1 ([#581](https://github.com/homarr-labs/homarr/issues/581)) ([b12d109](https://github.com/homarr-labs/homarr/commit/b12d109f6dfa4f90fc9fe2fae216894d601d0594)) -* **deps:** update mantine monorepo to ^7.10.2 ([#662](https://github.com/homarr-labs/homarr/issues/662)) ([4e9593b](https://github.com/homarr-labs/homarr/commit/4e9593b859c2d16e89940de9abed418ae184f36f)) -* **deps:** update mantine monorepo to ^7.11.0 ([#719](https://github.com/homarr-labs/homarr/issues/719)) ([52e936f](https://github.com/homarr-labs/homarr/commit/52e936f979b9cb6968c6cfe3a66c2c652245c6d8)) -* **deps:** update mantine monorepo to ^7.11.1 ([#735](https://github.com/homarr-labs/homarr/issues/735)) ([60c0cfa](https://github.com/homarr-labs/homarr/commit/60c0cfa9119ae946ca232df00dcebf73c3259a00)) -* **deps:** update mantine monorepo to ^7.11.2 ([#808](https://github.com/homarr-labs/homarr/issues/808)) ([fe5af92](https://github.com/homarr-labs/homarr/commit/fe5af9231e0c8e604558056e28ddc0ad5d440ad8)) -* **deps:** update mantine monorepo to ^7.12.0 ([#920](https://github.com/homarr-labs/homarr/issues/920)) ([137ebf6](https://github.com/homarr-labs/homarr/commit/137ebf6d22bc1a420bab52444e2cd3df5fe31852)) -* **deps:** update mantine monorepo to ^7.12.1 ([#967](https://github.com/homarr-labs/homarr/issues/967)) ([5b651a7](https://github.com/homarr-labs/homarr/commit/5b651a782aef6ce6ecef58be0491642d4cf0c94f)) -* **deps:** update mantine monorepo to ^7.12.2 ([#1048](https://github.com/homarr-labs/homarr/issues/1048)) ([51be024](https://github.com/homarr-labs/homarr/commit/51be02477b63725f5052d478a6db59c48be1fdf0)) -* **deps:** update mantine monorepo to ^7.13.0 ([#1178](https://github.com/homarr-labs/homarr/issues/1178)) ([78230b1](https://github.com/homarr-labs/homarr/commit/78230b1fe9d4b5b071d80782f6ad177993903dd1)) -* **deps:** update mantine monorepo to ^7.13.1 ([#1205](https://github.com/homarr-labs/homarr/issues/1205)) ([6ce466d](https://github.com/homarr-labs/homarr/commit/6ce466d38ec8d3968c4f90583cdfd83d97a42154)) -* **deps:** update mantine monorepo to ^7.13.2 ([#1227](https://github.com/homarr-labs/homarr/issues/1227)) ([d383664](https://github.com/homarr-labs/homarr/commit/d3836648c288ca595ac7b43cc1a2089cd52b7cdd)) -* **deps:** update mantine monorepo to ^7.13.3 ([#1316](https://github.com/homarr-labs/homarr/issues/1316)) ([84bb1de](https://github.com/homarr-labs/homarr/commit/84bb1deae51982d5c7465b180198034c9f9b861a)) -* **deps:** update mantine monorepo to ^7.13.4 ([#1364](https://github.com/homarr-labs/homarr/issues/1364)) ([f55b813](https://github.com/homarr-labs/homarr/commit/f55b813aa1a1df8c1b5c0f29a9a302dab025a1aa)) -* **deps:** update mantine monorepo to ^7.13.5 ([#1449](https://github.com/homarr-labs/homarr/issues/1449)) ([2306ecd](https://github.com/homarr-labs/homarr/commit/2306ecda9f562e94ef21eae495eab4e7fc5a3fc2)) -* **deps:** update mantine monorepo to ^7.14.0 ([#1470](https://github.com/homarr-labs/homarr/issues/1470)) ([11ce6fa](https://github.com/homarr-labs/homarr/commit/11ce6faa37bcd6c54f348ed8c5d003ff4c061b40)) -* **deps:** update mantine monorepo to ^7.14.1 ([#1494](https://github.com/homarr-labs/homarr/issues/1494)) ([775d0a5](https://github.com/homarr-labs/homarr/commit/775d0a53decfbebdbab06936557adade378fd0c0)) -* **deps:** update mantine monorepo to ^7.14.2 ([#1537](https://github.com/homarr-labs/homarr/issues/1537)) ([2e28147](https://github.com/homarr-labs/homarr/commit/2e2814707e0a5c2c38ccefcf0387cc0dab195fb9)) -* **deps:** update mantine monorepo to ^7.14.3 ([#1563](https://github.com/homarr-labs/homarr/issues/1563)) ([09dae45](https://github.com/homarr-labs/homarr/commit/09dae45ae8c33cf9212b72b7b048bbb3866880eb)) -* **deps:** update mantine monorepo to ^7.15.0 ([#1636](https://github.com/homarr-labs/homarr/issues/1636)) ([99bb680](https://github.com/homarr-labs/homarr/commit/99bb68012faffa78e9eb279dcf57007250a7a343)) -* **deps:** update mantine monorepo to ^7.15.1 ([#1649](https://github.com/homarr-labs/homarr/issues/1649)) ([732f4d4](https://github.com/homarr-labs/homarr/commit/732f4d45bdc1a063640a4636de4b67f25927fe43)) -* **deps:** update mantine monorepo to ^7.15.2 ([#1757](https://github.com/homarr-labs/homarr/issues/1757)) ([dfacb08](https://github.com/homarr-labs/homarr/commit/dfacb08dbddb6864646ece2fca6978207f0c58ac)) -* **deps:** update mantine monorepo to ^7.15.3 ([#1880](https://github.com/homarr-labs/homarr/issues/1880)) ([7807b28](https://github.com/homarr-labs/homarr/commit/7807b28d24327db89514da533cb06f4c296b579d)) -* **deps:** update mantine monorepo to ^7.16.0 ([#1948](https://github.com/homarr-labs/homarr/issues/1948)) ([a03a01b](https://github.com/homarr-labs/homarr/commit/a03a01b964e3ab30af6078326b91fb10817b3b98)) -* **deps:** update mantine monorepo to ^7.5.2 ([#71](https://github.com/homarr-labs/homarr/issues/71)) ([81e61b4](https://github.com/homarr-labs/homarr/commit/81e61b4d6bea3f32822917c4cf03f4d5876397ca)) -* **deps:** update mantine monorepo to ^7.5.3 ([#97](https://github.com/homarr-labs/homarr/issues/97)) ([35edfc7](https://github.com/homarr-labs/homarr/commit/35edfc74c4000d59b72f58fb42a00093151d4f38)) -* **deps:** update mantine monorepo to ^7.6.1 ([#157](https://github.com/homarr-labs/homarr/issues/157)) ([8c0534f](https://github.com/homarr-labs/homarr/commit/8c0534f54c416af94743e1cf20d92a33e06c804c)) -* **deps:** update mantine monorepo to ^7.6.2 ([#221](https://github.com/homarr-labs/homarr/issues/221)) ([fc29db0](https://github.com/homarr-labs/homarr/commit/fc29db0151de2638d7550dad0a8328b87164a732)) -* **deps:** update mantine monorepo to ^7.7.1 ([#272](https://github.com/homarr-labs/homarr/issues/272)) ([c9e1580](https://github.com/homarr-labs/homarr/commit/c9e15805a9b4c845e5cc379ae8267c7c659c60a6)) -* **deps:** update mantine monorepo to ^7.8.0 ([#343](https://github.com/homarr-labs/homarr/issues/343)) ([3e3299a](https://github.com/homarr-labs/homarr/commit/3e3299a358b44f86c850b3b96edf14e503d92151)) -* **deps:** update mantine monorepo to ^7.8.1 ([#377](https://github.com/homarr-labs/homarr/issues/377)) ([92b417a](https://github.com/homarr-labs/homarr/commit/92b417a37e070352d4830ab6d907421a89440308)) -* **deps:** update mantine monorepo to ^7.9.0 ([#423](https://github.com/homarr-labs/homarr/issues/423)) ([90b9d56](https://github.com/homarr-labs/homarr/commit/90b9d5672959e68c551b2bd9190b8ad97fbec1d0)) -* **deps:** update mantine monorepo to ^7.9.1 ([#457](https://github.com/homarr-labs/homarr/issues/457)) ([48d7aaa](https://github.com/homarr-labs/homarr/commit/48d7aaaf1d0e59bd2573bbe01a3421d14cd64be1)) -* **deps:** update mantine monorepo to ^7.9.2 ([#510](https://github.com/homarr-labs/homarr/issues/510)) ([abffc86](https://github.com/homarr-labs/homarr/commit/abffc866c084c387a553395519c172becaec0618)) -* **deps:** update nest monorepo to ^10.3.5 ([#245](https://github.com/homarr-labs/homarr/issues/245)) ([0ffb3f1](https://github.com/homarr-labs/homarr/commit/0ffb3f18b9bd8c90f826bcb29c257d656dbb91f5)) -* **deps:** update nextjs monorepo to ^14.1.0 ([#38](https://github.com/homarr-labs/homarr/issues/38)) ([dadfc0c](https://github.com/homarr-labs/homarr/commit/dadfc0c5d73395d2c49afbc7c67d0755e102b719)) -* **deps:** update nextjs monorepo to ^14.1.1 ([#147](https://github.com/homarr-labs/homarr/issues/147)) ([b407f2a](https://github.com/homarr-labs/homarr/commit/b407f2a9ac02b3ea6bfa22388e8e1150d2c82d48)) -* **deps:** update nextjs monorepo to ^14.1.2 ([#193](https://github.com/homarr-labs/homarr/issues/193)) ([8df514d](https://github.com/homarr-labs/homarr/commit/8df514dec883a90b3fcee8ef69efed87608618df)) -* **deps:** update nextjs monorepo to ^14.1.3 ([#208](https://github.com/homarr-labs/homarr/issues/208)) ([56d5e70](https://github.com/homarr-labs/homarr/commit/56d5e709bccdff4d37c6964dd1420721fc6f0356)) -* **deps:** update nextjs monorepo to ^14.1.4 ([#252](https://github.com/homarr-labs/homarr/issues/252)) ([28f630f](https://github.com/homarr-labs/homarr/commit/28f630f58b60260cd48990f9edf04173db5bd01d)) -* **deps:** update nextjs monorepo to ^14.2.10 ([#1109](https://github.com/homarr-labs/homarr/issues/1109)) ([fb55f12](https://github.com/homarr-labs/homarr/commit/fb55f1272d890307452cf7c7f3a54eb454da736f)) -* **deps:** update nextjs monorepo to ^14.2.11 ([#1117](https://github.com/homarr-labs/homarr/issues/1117)) ([7a56006](https://github.com/homarr-labs/homarr/commit/7a56006533d0fce5b288e1efe658e026abd062e1)) -* **deps:** update nextjs monorepo to ^14.2.12 ([#1146](https://github.com/homarr-labs/homarr/issues/1146)) ([8f5d7f8](https://github.com/homarr-labs/homarr/commit/8f5d7f83879e68b73f20303fbd9d3f4f70f69e3d)) -* **deps:** update nextjs monorepo to ^14.2.13 ([#1154](https://github.com/homarr-labs/homarr/issues/1154)) ([2258dc3](https://github.com/homarr-labs/homarr/commit/2258dc3ec66fd6d2c0ca9d7d2a689174a806586d)) -* **deps:** update nextjs monorepo to ^14.2.14 ([#1215](https://github.com/homarr-labs/homarr/issues/1215)) ([6f5c993](https://github.com/homarr-labs/homarr/commit/6f5c9935108511783b16c1a8206088e4845f9529)) -* **deps:** update nextjs monorepo to ^14.2.15 ([#1270](https://github.com/homarr-labs/homarr/issues/1270)) ([2bbe594](https://github.com/homarr-labs/homarr/commit/2bbe594cd28decee8934fc7338cdda9b77a2040c)) -* **deps:** update nextjs monorepo to ^14.2.16 ([#1355](https://github.com/homarr-labs/homarr/issues/1355)) ([aea65ea](https://github.com/homarr-labs/homarr/commit/aea65eadcd180e892d823ddccc2657b3beeb8acb)) -* **deps:** update nextjs monorepo to ^14.2.17 ([#1435](https://github.com/homarr-labs/homarr/issues/1435)) ([cd18458](https://github.com/homarr-labs/homarr/commit/cd18458d0c8a91c9068f8fbbfa49b5c0191e8f63)) -* **deps:** update nextjs monorepo to ^14.2.18 ([#1479](https://github.com/homarr-labs/homarr/issues/1479)) ([ccee3dd](https://github.com/homarr-labs/homarr/commit/ccee3dd21732be7106bf04af802c528351d132be)) -* **deps:** update nextjs monorepo to ^14.2.19 ([#1594](https://github.com/homarr-labs/homarr/issues/1594)) ([b0d6230](https://github.com/homarr-labs/homarr/commit/b0d623047ed0aae68741a50345610d2bc65cf86b)) -* **deps:** update nextjs monorepo to ^14.2.2 ([#345](https://github.com/homarr-labs/homarr/issues/345)) ([b465b95](https://github.com/homarr-labs/homarr/commit/b465b95ca26c1b0bc9035c7d2bd72d8a657870b3)) -* **deps:** update nextjs monorepo to ^14.2.20 ([#1610](https://github.com/homarr-labs/homarr/issues/1610)) ([ef65270](https://github.com/homarr-labs/homarr/commit/ef652707788ab68eeadd43dff908387340784f04)) -* **deps:** update nextjs monorepo to ^14.2.21 ([#1727](https://github.com/homarr-labs/homarr/issues/1727)) ([2b4bc83](https://github.com/homarr-labs/homarr/commit/2b4bc8352efa1e2cffb71a6d4d6e42f941358f02)) -* **deps:** update nextjs monorepo to ^14.2.22 ([#1787](https://github.com/homarr-labs/homarr/issues/1787)) ([3d66ff9](https://github.com/homarr-labs/homarr/commit/3d66ff914883a665c0329c8fc4fd087f4d220692)) -* **deps:** update nextjs monorepo to ^14.2.3 ([#381](https://github.com/homarr-labs/homarr/issues/381)) ([75e4e81](https://github.com/homarr-labs/homarr/commit/75e4e8176e36a995ebcd25387cae6435a5723b49)) -* **deps:** update nextjs monorepo to ^14.2.4 ([#658](https://github.com/homarr-labs/homarr/issues/658)) ([476fa59](https://github.com/homarr-labs/homarr/commit/476fa59079a3026fb1ce3d3c1b87a4b99425dccf)) -* **deps:** update nextjs monorepo to ^14.2.5 ([#779](https://github.com/homarr-labs/homarr/issues/779)) ([99175fe](https://github.com/homarr-labs/homarr/commit/99175feda492ff0b0d2d9d07c75d2bd45f69fbb5)) -* **deps:** update nextjs monorepo to ^14.2.6 ([#1009](https://github.com/homarr-labs/homarr/issues/1009)) ([1311e72](https://github.com/homarr-labs/homarr/commit/1311e72ca0a9c16db207d088809debd020da1318)) -* **deps:** update nextjs monorepo to ^14.2.7 ([#1041](https://github.com/homarr-labs/homarr/issues/1041)) ([3771a61](https://github.com/homarr-labs/homarr/commit/3771a61c49ca92f8567bb0905a696236a1e473a0)) -* **deps:** update nextjs monorepo to ^14.2.8 ([#1067](https://github.com/homarr-labs/homarr/issues/1067)) ([ca83872](https://github.com/homarr-labs/homarr/commit/ca83872151a867a42b3504a3eafff585a386b02d)) -* **deps:** update nextjs monorepo to ^14.2.9 ([#1091](https://github.com/homarr-labs/homarr/issues/1091)) ([3f076fa](https://github.com/homarr-labs/homarr/commit/3f076fafcd505b0b18781fc485dec8b144c8051f)) -* **deps:** update nextjs monorepo to ^15.1.4 ([#1885](https://github.com/homarr-labs/homarr/issues/1885)) ([f4f02ca](https://github.com/homarr-labs/homarr/commit/f4f02ca539609705b7192c4327272f88415e1594)) -* **deps:** update nextjs monorepo to v15 (major) ([#1844](https://github.com/homarr-labs/homarr/issues/1844)) ([d985525](https://github.com/homarr-labs/homarr/commit/d98552540a9eb3c24ba92a490f921c2b1911b1f6)) -* **deps:** update react monorepo to v19 (major) ([#1615](https://github.com/homarr-labs/homarr/issues/1615)) ([6f874e8](https://github.com/homarr-labs/homarr/commit/6f874e87abbc20a6e95cfbeb7bb7188d13599672)) -* **deps:** update tanstack-query monorepo ([#126](https://github.com/homarr-labs/homarr/issues/126)) ([71521c0](https://github.com/homarr-labs/homarr/commit/71521c076809fa3041ebf0ce4c9b9365adcf167b)) -* **deps:** update tanstack-query monorepo ([#141](https://github.com/homarr-labs/homarr/issues/141)) ([5d68300](https://github.com/homarr-labs/homarr/commit/5d68300600f0bd890aa4413ada41559f10afcf51)) -* **deps:** update tanstack-query monorepo ([#216](https://github.com/homarr-labs/homarr/issues/216)) ([efbc4cf](https://github.com/homarr-labs/homarr/commit/efbc4cf8fe62c4dd39fa2191238e1d62e5e98f9c)) -* **deps:** update tanstack-query monorepo ([#280](https://github.com/homarr-labs/homarr/issues/280)) ([e74926d](https://github.com/homarr-labs/homarr/commit/e74926d3825a7a31008faf6ec4ef00b6ab5ce669)) -* **deps:** update tanstack-query monorepo to ^5.18.1 ([#39](https://github.com/homarr-labs/homarr/issues/39)) ([717e919](https://github.com/homarr-labs/homarr/commit/717e9194500ad875e2c57bc088a3fa7ec08faf68)) -* **deps:** update tanstack-query monorepo to ^5.20.1 ([#75](https://github.com/homarr-labs/homarr/issues/75)) ([00f4a28](https://github.com/homarr-labs/homarr/commit/00f4a288a413383b4c412a1165eeba8a4c973a67)) -* **deps:** update tanstack-query monorepo to ^5.20.5 ([#86](https://github.com/homarr-labs/homarr/issues/86)) ([b77e652](https://github.com/homarr-labs/homarr/commit/b77e6528225a54839c5b09ad2464c6ab266259c6)) -* **deps:** update tanstack-query monorepo to ^5.21.4 ([#128](https://github.com/homarr-labs/homarr/issues/128)) ([a9a3d98](https://github.com/homarr-labs/homarr/commit/a9a3d98248a9ba518d941f8e437784a98984895d)) -* **deps:** update tanstack-query monorepo to ^5.21.7 ([#133](https://github.com/homarr-labs/homarr/issues/133)) ([e150577](https://github.com/homarr-labs/homarr/commit/e150577c7eea55b3f837951eeaa8fef41468c6af)) -* **deps:** update tanstack-query monorepo to ^5.24.1 ([#156](https://github.com/homarr-labs/homarr/issues/156)) ([3022e7f](https://github.com/homarr-labs/homarr/commit/3022e7f0af1d319e87398e09df27bd5824f0f8b4)) -* **deps:** update tanstack-query monorepo to ^5.24.6 ([#168](https://github.com/homarr-labs/homarr/issues/168)) ([7f2ab7f](https://github.com/homarr-labs/homarr/commit/7f2ab7f192b55f970c6902cde71f85c06a5f67df)) -* **deps:** update tanstack-query monorepo to ^5.24.8 ([#187](https://github.com/homarr-labs/homarr/issues/187)) ([f98046d](https://github.com/homarr-labs/homarr/commit/f98046d9e207bd068fa1cea19c4be0cba61c14c0)) -* **deps:** update tanstack-query monorepo to ^5.25.0 ([#196](https://github.com/homarr-labs/homarr/issues/196)) ([8c9adb3](https://github.com/homarr-labs/homarr/commit/8c9adb31f34991117c18ded417bf13312a04244a)) -* **deps:** update tanstack-query monorepo to ^5.28.0 ([#225](https://github.com/homarr-labs/homarr/issues/225)) ([9a203e8](https://github.com/homarr-labs/homarr/commit/9a203e8fac4379a703ad0d13380bb1a827791cd2)) -* **deps:** update tanstack-query monorepo to ^5.28.14 ([#299](https://github.com/homarr-labs/homarr/issues/299)) ([a4f316f](https://github.com/homarr-labs/homarr/commit/a4f316f10fc11579527722263249523591762e8b)) -* **deps:** update tanstack-query monorepo to ^5.28.4 ([#235](https://github.com/homarr-labs/homarr/issues/235)) ([30278f3](https://github.com/homarr-labs/homarr/commit/30278f37d248f0222dcd86e67a3310961c804a25)) -* **deps:** update tanstack-query monorepo to ^5.28.6 ([#256](https://github.com/homarr-labs/homarr/issues/256)) ([e4e3463](https://github.com/homarr-labs/homarr/commit/e4e3463d0464c37c32da83000ae971006157d1b2)) -* **deps:** update tanstack-query monorepo to ^5.28.8 ([#265](https://github.com/homarr-labs/homarr/issues/265)) ([4783aae](https://github.com/homarr-labs/homarr/commit/4783aaea20c44d823cb01857ffd050f7539948af)) -* **deps:** update tanstack-query monorepo to ^5.29.0 ([#313](https://github.com/homarr-labs/homarr/issues/313)) ([fffefbb](https://github.com/homarr-labs/homarr/commit/fffefbb4c8767ae5803429363ecf323d2384a6a0)) -* **deps:** update tanstack-query monorepo to ^5.29.2 ([#340](https://github.com/homarr-labs/homarr/issues/340)) ([859fdf4](https://github.com/homarr-labs/homarr/commit/859fdf4c440af5176401bdee236b5e19973182ef)) -* **deps:** update tanstack-query monorepo to ^5.32.0 ([#374](https://github.com/homarr-labs/homarr/issues/374)) ([0cdf0b7](https://github.com/homarr-labs/homarr/commit/0cdf0b73bfc410c7457fe7b379a380fdf83a938b)) -* **deps:** update tanstack-query monorepo to ^5.32.1 ([#402](https://github.com/homarr-labs/homarr/issues/402)) ([c988f3d](https://github.com/homarr-labs/homarr/commit/c988f3d7f827dd3121582a69fe1219dedb1ae246)) -* **deps:** update tanstack-query monorepo to ^5.34.1 ([#427](https://github.com/homarr-labs/homarr/issues/427)) ([fb43fc6](https://github.com/homarr-labs/homarr/commit/fb43fc604657e0ee3361db5fb3df8bdf68a22a51)) -* **deps:** update tanstack-query monorepo to ^5.34.2 ([#439](https://github.com/homarr-labs/homarr/issues/439)) ([08d1b6c](https://github.com/homarr-labs/homarr/commit/08d1b6c638c008936d67e1fe720313deaae147cd)) -* **deps:** update tanstack-query monorepo to ^5.35.1 ([#446](https://github.com/homarr-labs/homarr/issues/446)) ([96158bc](https://github.com/homarr-labs/homarr/commit/96158bcb5e0818f698f04f107dab24b6285f32df)) -* **deps:** update tanstack-query monorepo to ^5.35.5 ([#465](https://github.com/homarr-labs/homarr/issues/465)) ([8e6d143](https://github.com/homarr-labs/homarr/commit/8e6d143edc6613766ea86d3c84ef392aea867a0a)) -* **deps:** update tanstack-query monorepo to ^5.36.0 ([#481](https://github.com/homarr-labs/homarr/issues/481)) ([1570faa](https://github.com/homarr-labs/homarr/commit/1570faa20af2c1b4173ade77565691176219c601)) -* **deps:** update tanstack-query monorepo to ^5.36.2 ([#496](https://github.com/homarr-labs/homarr/issues/496)) ([023feaf](https://github.com/homarr-labs/homarr/commit/023feafafe5f78b73870a48a06d037b563999d5d)) -* **deps:** update tanstack-query monorepo to ^5.37.1 ([#513](https://github.com/homarr-labs/homarr/issues/513)) ([b312032](https://github.com/homarr-labs/homarr/commit/b312032f02db6fac0e95456ef23cf84d4ab485b0)) -* **deps:** update tanstack-query monorepo to ^5.40.0 ([#552](https://github.com/homarr-labs/homarr/issues/552)) ([8f50def](https://github.com/homarr-labs/homarr/commit/8f50def4c931545fbe4b24a2c501c725e088ce9f)) -* **deps:** update tanstack-query monorepo to ^5.40.1 ([#617](https://github.com/homarr-labs/homarr/issues/617)) ([946ea87](https://github.com/homarr-labs/homarr/commit/946ea8753fd45582ba15b6fc69a434039d341b1d)) -* **deps:** update tanstack-query monorepo to ^5.44.0 ([#657](https://github.com/homarr-labs/homarr/issues/657)) ([8b3bc03](https://github.com/homarr-labs/homarr/commit/8b3bc03b9be9d70d11d982869250d575b24ca4b8)) -* **deps:** update tanstack-query monorepo to ^5.45.0 ([#660](https://github.com/homarr-labs/homarr/issues/660)) ([5547e52](https://github.com/homarr-labs/homarr/commit/5547e520016b92c0981899099cce1bf82f7d1a00)) -* **deps:** update tanstack-query monorepo to ^5.45.1 ([#677](https://github.com/homarr-labs/homarr/issues/677)) ([33e8cc7](https://github.com/homarr-labs/homarr/commit/33e8cc7412e2cc4541ae5e58ae45b20ffa74972a)) -* **deps:** update tanstack-query monorepo to ^5.47.0 ([#713](https://github.com/homarr-labs/homarr/issues/713)) ([75748df](https://github.com/homarr-labs/homarr/commit/75748dfbc35057b7f44e836fd2864c76c2705237)) -* **deps:** update tanstack-query monorepo to ^5.48.0 ([#714](https://github.com/homarr-labs/homarr/issues/714)) ([a76e941](https://github.com/homarr-labs/homarr/commit/a76e941378a2d8669a9b4484b8301f5557dda1a3)) -* **deps:** update tanstack-query monorepo to ^5.49.0 ([#728](https://github.com/homarr-labs/homarr/issues/728)) ([531cd0d](https://github.com/homarr-labs/homarr/commit/531cd0de2520429d3b3270e05fc5d8e9c5732163)) -* **deps:** update tanstack-query monorepo to ^5.49.2 ([#730](https://github.com/homarr-labs/homarr/issues/730)) ([8ee0d67](https://github.com/homarr-labs/homarr/commit/8ee0d67a36b30ae1e5f679a0c24014c3c79709ca)) -* **deps:** update tanstack-query monorepo to ^5.50.1 ([#747](https://github.com/homarr-labs/homarr/issues/747)) ([a67050e](https://github.com/homarr-labs/homarr/commit/a67050e77b14a0ad1e6b960dad24f4a35779f858)) -* **deps:** update tanstack-query monorepo to ^5.51.1 ([#782](https://github.com/homarr-labs/homarr/issues/782)) ([be4748b](https://github.com/homarr-labs/homarr/commit/be4748b8fa5cf2b7f17acd03753115b9562f3285)) -* **deps:** update tanstack-query monorepo to ^5.51.11 ([#836](https://github.com/homarr-labs/homarr/issues/836)) ([14d19fc](https://github.com/homarr-labs/homarr/commit/14d19fcd8bf9577cd483b6bb89e1cc3bbaf484b1)) -* **deps:** update tanstack-query monorepo to ^5.51.14 ([#866](https://github.com/homarr-labs/homarr/issues/866)) ([04a836e](https://github.com/homarr-labs/homarr/commit/04a836e824e607f48b876d6882aecb5de3b666ae)) -* **deps:** update tanstack-query monorepo to ^5.51.15 ([#868](https://github.com/homarr-labs/homarr/issues/868)) ([63b3c1b](https://github.com/homarr-labs/homarr/commit/63b3c1bff19d9265ef2c80dfbbc9058354a9acfb)) -* **deps:** update tanstack-query monorepo to ^5.51.16 ([#892](https://github.com/homarr-labs/homarr/issues/892)) ([3a5f818](https://github.com/homarr-labs/homarr/commit/3a5f818e7cbef6365f9ae89996657cdb418d7917)) -* **deps:** update tanstack-query monorepo to ^5.51.17 ([#899](https://github.com/homarr-labs/homarr/issues/899)) ([5c73b54](https://github.com/homarr-labs/homarr/commit/5c73b544285d1fca753168a796e1143da5ffc37d)) -* **deps:** update tanstack-query monorepo to ^5.51.18 ([#900](https://github.com/homarr-labs/homarr/issues/900)) ([26615d8](https://github.com/homarr-labs/homarr/commit/26615d80e795c050e2ac94ba133cbf23c74b2d27)) -* **deps:** update tanstack-query monorepo to ^5.51.21 ([#905](https://github.com/homarr-labs/homarr/issues/905)) ([2a459dd](https://github.com/homarr-labs/homarr/commit/2a459dda205448ebfa3d8451a5229a82fa850fbb)) -* **deps:** update tanstack-query monorepo to ^5.51.23 ([#936](https://github.com/homarr-labs/homarr/issues/936)) ([f9e2df0](https://github.com/homarr-labs/homarr/commit/f9e2df085b2ba737c2ef6375474865b34a3f43cf)) -* **deps:** update tanstack-query monorepo to ^5.51.24 ([#997](https://github.com/homarr-labs/homarr/issues/997)) ([2f77be8](https://github.com/homarr-labs/homarr/commit/2f77be8045ea67d1f5db20bd140c9e19af903571)) -* **deps:** update tanstack-query monorepo to ^5.51.3 ([#821](https://github.com/homarr-labs/homarr/issues/821)) ([05bbc19](https://github.com/homarr-labs/homarr/commit/05bbc19a15b8f8d7cdef4b9fee3174b28918bc9d)) -* **deps:** update tanstack-query monorepo to ^5.51.4 ([#824](https://github.com/homarr-labs/homarr/issues/824)) ([86c729a](https://github.com/homarr-labs/homarr/commit/86c729a83f01cb4a3ce5413b6b4117505b6b61f4)) -* **deps:** update tanstack-query monorepo to ^5.51.5 ([#829](https://github.com/homarr-labs/homarr/issues/829)) ([a4edda6](https://github.com/homarr-labs/homarr/commit/a4edda6932ed5008fe4609b55636232a7ca500ce)) -* **deps:** update tanstack-query monorepo to ^5.51.8 ([#830](https://github.com/homarr-labs/homarr/issues/830)) ([ee2703c](https://github.com/homarr-labs/homarr/commit/ee2703ca4be312e5e0f2b9964fa3fb1d0bd074c1)) -* **deps:** update tanstack-query monorepo to ^5.51.9 ([#831](https://github.com/homarr-labs/homarr/issues/831)) ([c8f3eb6](https://github.com/homarr-labs/homarr/commit/c8f3eb69e54a732274fd85841b1d1181fbc9a279)) -* **deps:** update tanstack-query monorepo to ^5.52.0 ([#1002](https://github.com/homarr-labs/homarr/issues/1002)) ([432af79](https://github.com/homarr-labs/homarr/commit/432af7905510283779aacf7331a82a3d53f0c899)) -* **deps:** update tanstack-query monorepo to ^5.52.1 ([#1013](https://github.com/homarr-labs/homarr/issues/1013)) ([8779b7d](https://github.com/homarr-labs/homarr/commit/8779b7d6073f41b52bf2fadda25ccab8d1ae1622)) -* **deps:** update tanstack-query monorepo to ^5.52.2 ([#1037](https://github.com/homarr-labs/homarr/issues/1037)) ([48d01e3](https://github.com/homarr-labs/homarr/commit/48d01e3c6ceb9fd4e60f0bd720374da53206d94e)) -* **deps:** update tanstack-query monorepo to ^5.52.3 ([#1043](https://github.com/homarr-labs/homarr/issues/1043)) ([afb6adf](https://github.com/homarr-labs/homarr/commit/afb6adf1e68f0f1b6b819a32a95d0a28855e88c4)) -* **deps:** update tanstack-query monorepo to ^5.53.1 ([#1045](https://github.com/homarr-labs/homarr/issues/1045)) ([775c359](https://github.com/homarr-labs/homarr/commit/775c3597dcd9008606446d066ddb46dc758b5689)) -* **deps:** update tanstack-query monorepo to ^5.53.2 ([#1055](https://github.com/homarr-labs/homarr/issues/1055)) ([d69fed6](https://github.com/homarr-labs/homarr/commit/d69fed6514bef0ee5cc235cca86888d040fae562)) -* **deps:** update tanstack-query monorepo to ^5.53.3 ([#1056](https://github.com/homarr-labs/homarr/issues/1056)) ([8fe162e](https://github.com/homarr-labs/homarr/commit/8fe162e16c4c06ca453437d0ee4e6491ecb2ed84)) -* **deps:** update tanstack-query monorepo to ^5.54.1 ([#1063](https://github.com/homarr-labs/homarr/issues/1063)) ([9e1faa0](https://github.com/homarr-labs/homarr/commit/9e1faa03b120a225114f7e8bf4cc683be243c4f6)) -* **deps:** update tanstack-query monorepo to ^5.55.0 ([#1070](https://github.com/homarr-labs/homarr/issues/1070)) ([00d5020](https://github.com/homarr-labs/homarr/commit/00d5020824f6661575d7201e2524151defc35585)) -* **deps:** update tanstack-query monorepo to ^5.55.2 ([#1084](https://github.com/homarr-labs/homarr/issues/1084)) ([930bc2d](https://github.com/homarr-labs/homarr/commit/930bc2d7d205e7883898fb15deefc3f5abfedced)) -* **deps:** update tanstack-query monorepo to ^5.55.4 ([#1086](https://github.com/homarr-labs/homarr/issues/1086)) ([36a7a18](https://github.com/homarr-labs/homarr/commit/36a7a18c35258f9e592755ef10583b603a5bb39e)) -* **deps:** update tanstack-query monorepo to ^5.56.0 ([#1112](https://github.com/homarr-labs/homarr/issues/1112)) ([703ecec](https://github.com/homarr-labs/homarr/commit/703ecece634a284070b15edbd4580ffbd3a58502)) -* **deps:** update tanstack-query monorepo to ^5.56.1 ([#1114](https://github.com/homarr-labs/homarr/issues/1114)) ([2d4681d](https://github.com/homarr-labs/homarr/commit/2d4681d07989bf8388152893a7e194ead1e4c59d)) -* **deps:** update tanstack-query monorepo to ^5.56.2 ([#1116](https://github.com/homarr-labs/homarr/issues/1116)) ([cae9a80](https://github.com/homarr-labs/homarr/commit/cae9a800c47e23b5ef674c19ba5a1eea127018a3)) -* **deps:** update tanstack-query monorepo to ^5.59.0 ([#1214](https://github.com/homarr-labs/homarr/issues/1214)) ([c3d54b4](https://github.com/homarr-labs/homarr/commit/c3d54b49a0ba0ae2c2a4cc3d1651cb01df2efdf7)) -* **deps:** update tanstack-query monorepo to ^5.59.14 ([#1282](https://github.com/homarr-labs/homarr/issues/1282)) ([df8f6d2](https://github.com/homarr-labs/homarr/commit/df8f6d25d4accd486274df15eb620b28fb545826)) -* **deps:** update tanstack-query monorepo to ^5.59.15 ([#1298](https://github.com/homarr-labs/homarr/issues/1298)) ([bb0026a](https://github.com/homarr-labs/homarr/commit/bb0026a9fd6093cf54dc5fdcf027ea1033ac8454)) -* **deps:** update tanstack-query monorepo to ^5.59.16 ([#1361](https://github.com/homarr-labs/homarr/issues/1361)) ([b542bad](https://github.com/homarr-labs/homarr/commit/b542bad939527d1de5a0eb0a8c384cf4f6267436)) -* **deps:** update tanstack-query monorepo to ^5.59.17 ([#1403](https://github.com/homarr-labs/homarr/issues/1403)) ([deb5a71](https://github.com/homarr-labs/homarr/commit/deb5a716db1312fcbafbd244d3399a35ab50c4e9)) -* **deps:** update tanstack-query monorepo to ^5.59.19 ([#1410](https://github.com/homarr-labs/homarr/issues/1410)) ([8983734](https://github.com/homarr-labs/homarr/commit/8983734408e9c5ea89bc3fb0e011e9030824a43c)) -* **deps:** update tanstack-query monorepo to ^5.59.20 ([#1438](https://github.com/homarr-labs/homarr/issues/1438)) ([e05567d](https://github.com/homarr-labs/homarr/commit/e05567d100e3ff99a1d41099ffe5b9333b0eb7a7)) -* **deps:** update tanstack-query monorepo to ^5.59.3 ([#1274](https://github.com/homarr-labs/homarr/issues/1274)) ([e3cd8a8](https://github.com/homarr-labs/homarr/commit/e3cd8a8b25c736e93dec8d4df4be368007785f61)) -* **deps:** update tanstack-query monorepo to ^5.59.6 ([#1276](https://github.com/homarr-labs/homarr/issues/1276)) ([efd06ea](https://github.com/homarr-labs/homarr/commit/efd06ea1079aca15b75f358916e20b13e39ac568)) -* **deps:** update tanstack-query monorepo to ^5.59.9 ([#1278](https://github.com/homarr-labs/homarr/issues/1278)) ([0ca140f](https://github.com/homarr-labs/homarr/commit/0ca140f4ff8f74a5eef496864d2bcd95e389f329)) -* **deps:** update tanstack-query monorepo to ^5.60.2 ([#1482](https://github.com/homarr-labs/homarr/issues/1482)) ([12c3bb9](https://github.com/homarr-labs/homarr/commit/12c3bb98485f3b38ba12d3fc84b7498b78fd1d8f)) -* **deps:** update tanstack-query monorepo to ^5.60.4 ([#1488](https://github.com/homarr-labs/homarr/issues/1488)) ([41f816b](https://github.com/homarr-labs/homarr/commit/41f816be5b9561398361153d3f9a07cd2e3cc6e1)) -* **deps:** update tanstack-query monorepo to ^5.60.5 ([#1489](https://github.com/homarr-labs/homarr/issues/1489)) ([6dcf1ad](https://github.com/homarr-labs/homarr/commit/6dcf1ad3446f0c564ec7c21c0fc8154e5cd1ce68)) -* **deps:** update tanstack-query monorepo to ^5.60.6 ([#1500](https://github.com/homarr-labs/homarr/issues/1500)) ([2f76e53](https://github.com/homarr-labs/homarr/commit/2f76e537b7a8a30b1a7801753b44cfd7a25dc2d6)) -* **deps:** update tanstack-query monorepo to ^5.61.0 ([#1510](https://github.com/homarr-labs/homarr/issues/1510)) ([ed10d63](https://github.com/homarr-labs/homarr/commit/ed10d63a04a2b5a8dad0ffb51fca35d8c0e88a34)) -* **deps:** update tanstack-query monorepo to ^5.61.3 ([#1536](https://github.com/homarr-labs/homarr/issues/1536)) ([24daba7](https://github.com/homarr-labs/homarr/commit/24daba743ed645e6a974bb212e28b745acdd34f7)) -* **deps:** update tanstack-query monorepo to ^5.61.4 ([#1555](https://github.com/homarr-labs/homarr/issues/1555)) ([91a199f](https://github.com/homarr-labs/homarr/commit/91a199f7d6014c97425b55f2a419b252b766b4c3)) -* **deps:** update tanstack-query monorepo to ^5.61.5 ([#1559](https://github.com/homarr-labs/homarr/issues/1559)) ([f2e7349](https://github.com/homarr-labs/homarr/commit/f2e7349cbdfc065b52951d3a54a22344dca6807b)) -* **deps:** update tanstack-query monorepo to ^5.62.0 ([#1569](https://github.com/homarr-labs/homarr/issues/1569)) ([6ad5fd5](https://github.com/homarr-labs/homarr/commit/6ad5fd55295622429035aa7f59e478ada19ec36a)) -* **deps:** update tanstack-query monorepo to ^5.62.1 ([#1584](https://github.com/homarr-labs/homarr/issues/1584)) ([0e01dd8](https://github.com/homarr-labs/homarr/commit/0e01dd86950beac24259ac1269f0159c7c33e35c)) -* **deps:** update tanstack-query monorepo to ^5.62.10 ([#1772](https://github.com/homarr-labs/homarr/issues/1772)) ([c410b06](https://github.com/homarr-labs/homarr/commit/c410b06a15ed5426931ad764cc861f66f11a40da)) -* **deps:** update tanstack-query monorepo to ^5.62.11 ([#1791](https://github.com/homarr-labs/homarr/issues/1791)) ([e9870e7](https://github.com/homarr-labs/homarr/commit/e9870e7ee78227d3be773d9d93aa732760cc8e21)) -* **deps:** update tanstack-query monorepo to ^5.62.12 ([#1843](https://github.com/homarr-labs/homarr/issues/1843)) ([bc5e25e](https://github.com/homarr-labs/homarr/commit/bc5e25e9cd3269a3d8cc8ef521ae75aff50088be)) -* **deps:** update tanstack-query monorepo to ^5.62.14 ([#1846](https://github.com/homarr-labs/homarr/issues/1846)) ([2358f6f](https://github.com/homarr-labs/homarr/commit/2358f6f5ebf4bbb9eb4ccd91990f967d9cc44e3b)) -* **deps:** update tanstack-query monorepo to ^5.62.15 ([#1853](https://github.com/homarr-labs/homarr/issues/1853)) ([53f07f8](https://github.com/homarr-labs/homarr/commit/53f07f87b8d600ce57fa94d2ffb4d6f0105102d0)) -* **deps:** update tanstack-query monorepo to ^5.62.16 ([#1877](https://github.com/homarr-labs/homarr/issues/1877)) ([eb424d7](https://github.com/homarr-labs/homarr/commit/eb424d757b7934d5a6bce9de943528f17e678b80)) -* **deps:** update tanstack-query monorepo to ^5.62.2 ([#1590](https://github.com/homarr-labs/homarr/issues/1590)) ([3b705f4](https://github.com/homarr-labs/homarr/commit/3b705f43b89b4c844522925c1d03a2822a2986a9)) -* **deps:** update tanstack-query monorepo to ^5.62.3 ([#1621](https://github.com/homarr-labs/homarr/issues/1621)) ([42ab783](https://github.com/homarr-labs/homarr/commit/42ab783085ab0a1998d62975aac796af1fc80a3c)) -* **deps:** update tanstack-query monorepo to ^5.62.7 ([#1638](https://github.com/homarr-labs/homarr/issues/1638)) ([e692cc8](https://github.com/homarr-labs/homarr/commit/e692cc891713802cdf8655eb54223ef8e30377ba)) -* **deps:** update tanstack-query monorepo to ^5.62.8 ([#1682](https://github.com/homarr-labs/homarr/issues/1682)) ([28667c5](https://github.com/homarr-labs/homarr/commit/28667c5e1aa5b9c9c640f251fcb4e9e1063fa922)) -* **deps:** update tanstack-query monorepo to ^5.62.9 ([#1761](https://github.com/homarr-labs/homarr/issues/1761)) ([42da2b9](https://github.com/homarr-labs/homarr/commit/42da2b9b062bd8a08c37e45ab129953e8b0e3624)) -* **deps:** update tanstack-query monorepo to ^5.63.0 ([#1893](https://github.com/homarr-labs/homarr/issues/1893)) ([e33e0a4](https://github.com/homarr-labs/homarr/commit/e33e0a4d2bd91d610c6d29522a98cae8b9953478)) -* **deps:** update tanstack-query monorepo to ^5.64.0 ([#1922](https://github.com/homarr-labs/homarr/issues/1922)) ([b399cb6](https://github.com/homarr-labs/homarr/commit/b399cb697945cd1bb3da2ad5222aceb9b0e71d2b)) -* **deps:** update tanstack-query monorepo to ^5.64.1 ([#1935](https://github.com/homarr-labs/homarr/issues/1935)) ([a53e0f7](https://github.com/homarr-labs/homarr/commit/a53e0f7ceed9cf771609be7b04090df9744ec4e6)) -* **deps:** update tanstack-query monorepo to v5.38.0 ([#551](https://github.com/homarr-labs/homarr/issues/551)) ([a029abe](https://github.com/homarr-labs/homarr/commit/a029abe6f3fa762e879717bd66bc4e8bbde3558b)) -* **deps:** update testcontainers-node monorepo to ^10.13.2 ([#1233](https://github.com/homarr-labs/homarr/issues/1233)) ([8ea8b2d](https://github.com/homarr-labs/homarr/commit/8ea8b2ded55e3d026d3d13b1baa09f740b2d3a54)) -* **deps:** update testcontainers-node monorepo to ^10.14.0 ([#1434](https://github.com/homarr-labs/homarr/issues/1434)) ([31c661b](https://github.com/homarr-labs/homarr/commit/31c661bc69c32403dd7eff262b62d86debef05bc)) -* **deps:** update testcontainers-node monorepo to ^10.15.0 ([#1521](https://github.com/homarr-labs/homarr/issues/1521)) ([6018b20](https://github.com/homarr-labs/homarr/commit/6018b20d4e2be0991c735ca690bd91062285b2bb)) -* **deps:** update testcontainers-node monorepo to ^10.16.0 ([#1604](https://github.com/homarr-labs/homarr/issues/1604)) ([feb93ef](https://github.com/homarr-labs/homarr/commit/feb93ef0c71089a005c31b4f0798a0b20dc0e36b)) -* **deps:** update tiptap monorepo to ^2.2.1 ([#40](https://github.com/homarr-labs/homarr/issues/40)) ([1e01312](https://github.com/homarr-labs/homarr/commit/1e01312fcd5e7e267db330dfdb72a8d8b83fadfd)) -* **deps:** update tiptap monorepo to ^2.2.2 ([#63](https://github.com/homarr-labs/homarr/issues/63)) ([593bc9c](https://github.com/homarr-labs/homarr/commit/593bc9ca1c05bfd69b35d6bb2b7c34d3dabe7303)) -* **deps:** update tiptap monorepo to ^2.2.3 ([#95](https://github.com/homarr-labs/homarr/issues/95)) ([3e44644](https://github.com/homarr-labs/homarr/commit/3e44644ef6e8f8e8b7d898f5794405d2e61eb3af)) -* **deps:** update tiptap monorepo to ^2.2.4 ([#153](https://github.com/homarr-labs/homarr/issues/153)) ([212063a](https://github.com/homarr-labs/homarr/commit/212063a51eb8f9a48fcfe39df9a79dca31116c08)) -* **deps:** update tiptap monorepo to ^2.2.5 ([#315](https://github.com/homarr-labs/homarr/issues/315)) ([75224e0](https://github.com/homarr-labs/homarr/commit/75224e05334361356d841c5878600709324fa3e8)) -* **deps:** update tiptap monorepo to v2.10.0 ([#1507](https://github.com/homarr-labs/homarr/issues/1507)) ([860d2e4](https://github.com/homarr-labs/homarr/commit/860d2e4f69bbdf9b3ffb37b26d514e86ceca378a)) -* **deps:** update tiptap monorepo to v2.10.1 ([#1516](https://github.com/homarr-labs/homarr/issues/1516)) ([85a69b1](https://github.com/homarr-labs/homarr/commit/85a69b13e38743d487e213012cf59b64ba52da67)) -* **deps:** update tiptap monorepo to v2.10.2 ([#1520](https://github.com/homarr-labs/homarr/issues/1520)) ([ba4c9a6](https://github.com/homarr-labs/homarr/commit/ba4c9a683ee533bd214faa8f834fb3fe8408b6bb)) -* **deps:** update tiptap monorepo to v2.10.3 ([#1556](https://github.com/homarr-labs/homarr/issues/1556)) ([c1fe655](https://github.com/homarr-labs/homarr/commit/c1fe6551ce46c00304f1a9c1e6d2d7f301f47dcb)) -* **deps:** update tiptap monorepo to v2.10.4 ([#1729](https://github.com/homarr-labs/homarr/issues/1729)) ([2ae3d93](https://github.com/homarr-labs/homarr/commit/2ae3d938eeea5bd49a74d9c09b4cb2c680b059d0)) -* **deps:** update tiptap monorepo to v2.11.0 ([#1813](https://github.com/homarr-labs/homarr/issues/1813)) ([eacda4c](https://github.com/homarr-labs/homarr/commit/eacda4c397cb384a35e9eec0305f9b26f2a22a4a)) -* **deps:** update tiptap monorepo to v2.11.1 ([#1909](https://github.com/homarr-labs/homarr/issues/1909)) ([dc3d27e](https://github.com/homarr-labs/homarr/commit/dc3d27e1a1b1611c1997235bf51daf00e3d1f239)) -* **deps:** update tiptap monorepo to v2.11.2 ([#1913](https://github.com/homarr-labs/homarr/issues/1913)) ([9a7e421](https://github.com/homarr-labs/homarr/commit/9a7e421f6827a5a0ac3627318e51537840295e72)) -* **deps:** update tiptap monorepo to v2.3.0 ([#317](https://github.com/homarr-labs/homarr/issues/317)) ([847adff](https://github.com/homarr-labs/homarr/commit/847adffe7b32310924d0e317fbc4379ed84bbca1)) -* **deps:** update tiptap monorepo to v2.3.1 ([#403](https://github.com/homarr-labs/homarr/issues/403)) ([876f21a](https://github.com/homarr-labs/homarr/commit/876f21a26dba4a2bf58a087d9d954c61baf30d07)) -* **deps:** update tiptap monorepo to v2.3.2 ([#459](https://github.com/homarr-labs/homarr/issues/459)) ([382be49](https://github.com/homarr-labs/homarr/commit/382be496ffb51bf16ff2b50689707503e610243c)) -* **deps:** update tiptap monorepo to v2.4.0 ([#494](https://github.com/homarr-labs/homarr/issues/494)) ([b18b364](https://github.com/homarr-labs/homarr/commit/b18b3642708dd36b6d269c78e8f0ce6efa6e1d17)) -* **deps:** update tiptap monorepo to v2.5.0 ([#811](https://github.com/homarr-labs/homarr/issues/811)) ([7f341ef](https://github.com/homarr-labs/homarr/commit/7f341efdb304cb9479bcce75b02f3d48ed99a8ad)) -* **deps:** update tiptap monorepo to v2.5.1 ([#813](https://github.com/homarr-labs/homarr/issues/813)) ([08ba282](https://github.com/homarr-labs/homarr/commit/08ba28252872455d960b63d688b13fffbca8edde)) -* **deps:** update tiptap monorepo to v2.5.2 ([#822](https://github.com/homarr-labs/homarr/issues/822)) ([b82128a](https://github.com/homarr-labs/homarr/commit/b82128a90cdef599b976625ab58bc20d30a78964)) -* **deps:** update tiptap monorepo to v2.5.3 ([#825](https://github.com/homarr-labs/homarr/issues/825)) ([015b42a](https://github.com/homarr-labs/homarr/commit/015b42aa61be681fc31359c00113f18331728a31)) -* **deps:** update tiptap monorepo to v2.5.4 ([#828](https://github.com/homarr-labs/homarr/issues/828)) ([baf552b](https://github.com/homarr-labs/homarr/commit/baf552bf52e35616c072e33d26014b0c181b6d46)) -* **deps:** update tiptap monorepo to v2.5.5 ([#853](https://github.com/homarr-labs/homarr/issues/853)) ([c512ddb](https://github.com/homarr-labs/homarr/commit/c512ddba493994f1b5a15dde58c32b704697fa1b)) -* **deps:** update tiptap monorepo to v2.5.6 ([#863](https://github.com/homarr-labs/homarr/issues/863)) ([d70e99c](https://github.com/homarr-labs/homarr/commit/d70e99c9734d8997a1f8a97fdf54aea1da08cc05)) -* **deps:** update tiptap monorepo to v2.5.7 ([#869](https://github.com/homarr-labs/homarr/issues/869)) ([89ab1df](https://github.com/homarr-labs/homarr/commit/89ab1df2dbdb19f4079f98289eeaeff591314fef)) -* **deps:** update tiptap monorepo to v2.5.8 ([#887](https://github.com/homarr-labs/homarr/issues/887)) ([e0566df](https://github.com/homarr-labs/homarr/commit/e0566dfcfa56c50b744a872ee0623f374696efee)) -* **deps:** update tiptap monorepo to v2.5.9 ([#922](https://github.com/homarr-labs/homarr/issues/922)) ([c6bb272](https://github.com/homarr-labs/homarr/commit/c6bb272318eccc4cf9c2790513a89cec650526e5)) -* **deps:** update tiptap monorepo to v2.6.1 ([#970](https://github.com/homarr-labs/homarr/issues/970)) ([4a34ec9](https://github.com/homarr-labs/homarr/commit/4a34ec91e5041acf257a1049a7b0c29e509b1585)) -* **deps:** update tiptap monorepo to v2.6.2 ([#972](https://github.com/homarr-labs/homarr/issues/972)) ([81a13b0](https://github.com/homarr-labs/homarr/commit/81a13b0e59eb776ca55782320f4967993e564819)) -* **deps:** update tiptap monorepo to v2.6.3 ([#980](https://github.com/homarr-labs/homarr/issues/980)) ([cc61e27](https://github.com/homarr-labs/homarr/commit/cc61e27fad4c058df6da8bdf49b2bf44d5fc0206)) -* **deps:** update tiptap monorepo to v2.6.4 ([#981](https://github.com/homarr-labs/homarr/issues/981)) ([0ba647a](https://github.com/homarr-labs/homarr/commit/0ba647ad511f45ad2fb1d35bc05f1876547602d0)) -* **deps:** update tiptap monorepo to v2.6.5 ([#1005](https://github.com/homarr-labs/homarr/issues/1005)) ([d401c8f](https://github.com/homarr-labs/homarr/commit/d401c8fa0ff47caef8e6f17aba39cf52310f6d7e)) -* **deps:** update tiptap monorepo to v2.6.6 ([#1015](https://github.com/homarr-labs/homarr/issues/1015)) ([cbf2ecf](https://github.com/homarr-labs/homarr/commit/cbf2ecfb9d3036e4077968c6ffb6c676b1e46308)) -* **deps:** update tiptap monorepo to v2.7.1 ([#1139](https://github.com/homarr-labs/homarr/issues/1139)) ([657c2ee](https://github.com/homarr-labs/homarr/commit/657c2eef80a6562c45c7d2a3b63fb03edff8eb3e)) -* **deps:** update tiptap monorepo to v2.7.2 ([#1150](https://github.com/homarr-labs/homarr/issues/1150)) ([d0e9e0f](https://github.com/homarr-labs/homarr/commit/d0e9e0f09da9afebf714c201b97528b743cc8915)) -* **deps:** update tiptap monorepo to v2.7.3 ([#1182](https://github.com/homarr-labs/homarr/issues/1182)) ([b2143ed](https://github.com/homarr-labs/homarr/commit/b2143eddeba787670d749a0f1e440936be7136d7)) -* **deps:** update tiptap monorepo to v2.7.4 ([#1186](https://github.com/homarr-labs/homarr/issues/1186)) ([4795c8c](https://github.com/homarr-labs/homarr/commit/4795c8c557f80e0019779f00afc58f053f9d6f40)) -* **deps:** update tiptap monorepo to v2.8.0 ([#1206](https://github.com/homarr-labs/homarr/issues/1206)) ([7dd4d4e](https://github.com/homarr-labs/homarr/commit/7dd4d4ec7be610c510caca1f8aa93e67095d05ed)) -* **deps:** update tiptap monorepo to v2.9.0 ([#1352](https://github.com/homarr-labs/homarr/issues/1352)) ([c3b9d98](https://github.com/homarr-labs/homarr/commit/c3b9d981f78b8131f269ec8b6b43f774196005ab)) -* **deps:** update tiptap monorepo to v2.9.1 ([#1360](https://github.com/homarr-labs/homarr/issues/1360)) ([d4919dc](https://github.com/homarr-labs/homarr/commit/d4919dc908748f61320e24f529a881547a124e7b)) -* **deps:** update typescript-eslint monorepo to ^6.20.0 ([#41](https://github.com/homarr-labs/homarr/issues/41)) ([4815230](https://github.com/homarr-labs/homarr/commit/4815230f8b0d3f9b88e72bbb4fb5f4e87daf81c1)) -* **deps:** update typescript-eslint monorepo to ^6.21.0 ([#58](https://github.com/homarr-labs/homarr/issues/58)) ([e683d61](https://github.com/homarr-labs/homarr/commit/e683d61568b61268dd04c50a31b18028b63a0a1b)) -* **deps:** update typescript-eslint monorepo to ^7.0.2 ([#122](https://github.com/homarr-labs/homarr/issues/122)) ([859eeed](https://github.com/homarr-labs/homarr/commit/859eeed32963f41b906d6dac5f16b9d9cd6ffd9e)) -* **deps:** update typescript-eslint monorepo to ^7.1.0 ([#159](https://github.com/homarr-labs/homarr/issues/159)) ([8e53792](https://github.com/homarr-labs/homarr/commit/8e5379225ad1df796a9f4829f4f8af7a41cae9d8)) -* **deps:** update typescript-eslint monorepo to ^7.1.1 ([#192](https://github.com/homarr-labs/homarr/issues/192)) ([27a63db](https://github.com/homarr-labs/homarr/commit/27a63dbf7a276d615c6de01b47e35830daff5cc9)) -* **deps:** update typescript-eslint monorepo to ^7.10.0 ([#562](https://github.com/homarr-labs/homarr/issues/562)) ([2bc0431](https://github.com/homarr-labs/homarr/commit/2bc0431e4e533476f8f7ecff2114b43759c33d9a)) -* **deps:** update typescript-eslint monorepo to ^7.11.0 ([#565](https://github.com/homarr-labs/homarr/issues/565)) ([c20f7a6](https://github.com/homarr-labs/homarr/commit/c20f7a64a0e47e2604645cc494b9d5cded15219a)) -* **deps:** update typescript-eslint monorepo to ^7.12.0 ([#616](https://github.com/homarr-labs/homarr/issues/616)) ([2623708](https://github.com/homarr-labs/homarr/commit/2623708c6dcf4ccd6c291a2548d68a918220dbed)) -* **deps:** update typescript-eslint monorepo to ^7.2.0 ([#218](https://github.com/homarr-labs/homarr/issues/218)) ([ea79953](https://github.com/homarr-labs/homarr/commit/ea79953353f0645849acbad2613f72d45f3894ea)) -* **deps:** update typescript-eslint monorepo to ^7.3.1 ([#247](https://github.com/homarr-labs/homarr/issues/247)) ([36e509a](https://github.com/homarr-labs/homarr/commit/36e509a474bc38a3b6c012bd566b73054f170f84)) -* **deps:** update typescript-eslint monorepo to ^7.5.0 ([#298](https://github.com/homarr-labs/homarr/issues/298)) ([54a7d1f](https://github.com/homarr-labs/homarr/commit/54a7d1f4ae2e470924d578bd507335e54d6c517a)) -* **deps:** update typescript-eslint monorepo to ^7.6.0 ([#329](https://github.com/homarr-labs/homarr/issues/329)) ([2ccb7d1](https://github.com/homarr-labs/homarr/commit/2ccb7d17655d3b9af67f30aa21a93764eeb81ac4)) -* **deps:** update typescript-eslint monorepo to ^7.7.1 ([#354](https://github.com/homarr-labs/homarr/issues/354)) ([0342a17](https://github.com/homarr-labs/homarr/commit/0342a177bb4a5cb642f79411a6003eca3a3a3e6d)) -* **deps:** update typescript-eslint monorepo to ^7.8.0 ([#395](https://github.com/homarr-labs/homarr/issues/395)) ([584483a](https://github.com/homarr-labs/homarr/commit/584483aa9cf309e3efa83f00ab735797638210ee)) -* **deps:** update typescript-eslint monorepo to ^7.9.0 ([#491](https://github.com/homarr-labs/homarr/issues/491)) ([a702f7d](https://github.com/homarr-labs/homarr/commit/a702f7dc67a3b63667ae019b4d807d54dc925ae0)) -* **deps:** update typescript-eslint monorepo to v7 ([#87](https://github.com/homarr-labs/homarr/issues/87)) ([f913384](https://github.com/homarr-labs/homarr/commit/f91338446df1eafce92842fa0ce9ebdabea7f629)) -* **deps:** update typescript-eslint monorepo to v7.10.0 ([#529](https://github.com/homarr-labs/homarr/issues/529)) ([30fe9fe](https://github.com/homarr-labs/homarr/commit/30fe9fef844e7cac5a59185926643baeb5e5ed2e)) -* **deps:** update xterm monorepo ([#312](https://github.com/homarr-labs/homarr/issues/312)) ([a5b8fdb](https://github.com/homarr-labs/homarr/commit/a5b8fdb3977c6613cfe592b20f57c0388e0c6229)) -* disable env validation in ci ([d7a30cd](https://github.com/homarr-labs/homarr/commit/d7a30cd0dd2dfd0e7db86d0c22780cf4c1e6423e)) -* disable env validation in ci ([c84fb63](https://github.com/homarr-labs/homarr/commit/c84fb63b25b199466cf1ba6f34ec5fd31d2a434c)) -* dispatch request-logger hides negative numbers, dates and date times ([#1506](https://github.com/homarr-labs/homarr/issues/1506)) ([2ffa9d0](https://github.com/homarr-labs/homarr/commit/2ffa9d0e712233b19ade71ec62fcf34de2128340)) -* display on safari ([#1071](https://github.com/homarr-labs/homarr/issues/1071)) ([753d091](https://github.com/homarr-labs/homarr/commit/753d091dbbc5665276461f5e1d79224ea1c0deb7)) -* **dns-hole-summary:** calculation for domains and percentage for multiple integrations ([#1894](https://github.com/homarr-labs/homarr/issues/1894)) ([546c824](https://github.com/homarr-labs/homarr/commit/546c824888a2a6909b831b69ce1a4e283099bda5)) -* DnsHole controls timer ([#953](https://github.com/homarr-labs/homarr/issues/953)) ([69e69ee](https://github.com/homarr-labs/homarr/commit/69e69ee315535555a8fd4cb43273357c9a4ce24b)) -* docker build ([#777](https://github.com/homarr-labs/homarr/issues/777)) ([01eb846](https://github.com/homarr-labs/homarr/commit/01eb84654d57afc2164ae8b7912752ecb6631f43)) -* docker build not working ([#1365](https://github.com/homarr-labs/homarr/issues/1365)) ([041006c](https://github.com/homarr-labs/homarr/commit/041006c181d7a1599400ce6d296d773c13f396b0)) -* docker development path in package.json ([#416](https://github.com/homarr-labs/homarr/issues/416)) ([48c2473](https://github.com/homarr-labs/homarr/commit/48c2473ab31354a492b86aa5d2d3319cbcadccea)) -* docker platforms ([f0d6676](https://github.com/homarr-labs/homarr/commit/f0d6676917c06a068aa432f49e5d74fc2ad45631)) -* docker push flag ([eab5c10](https://github.com/homarr-labs/homarr/commit/eab5c10fa6b36c22ee4bf1526d1000bc5137ac7b)) -* docker push flag ([1128110](https://github.com/homarr-labs/homarr/commit/1128110be386297ef0e128da477c1d9572336cad)) -* docker statup permission issue ([#1709](https://github.com/homarr-labs/homarr/issues/1709)) ([1baa9fc](https://github.com/homarr-labs/homarr/commit/1baa9fc74cf15df8ead7bbe6d1615f7bf0895813)) -* **docker:** replace anonymous docker volume with env variable for encrypting secrets ([#1809](https://github.com/homarr-labs/homarr/issues/1809)) ([56b57ad](https://github.com/homarr-labs/homarr/commit/56b57ad171da170c2d8edd6112092cef0b586852)) -* email verified check is in a newline in users table ([#1218](https://github.com/homarr-labs/homarr/issues/1218)) ([8b5ea3c](https://github.com/homarr-labs/homarr/commit/8b5ea3c5d3af5e904467591b9e066488b6a4abc1)) -* empty wrappers without items should not be visible in view mode ([#1026](https://github.com/homarr-labs/homarr/issues/1026)) ([022fad9](https://github.com/homarr-labs/homarr/commit/022fad92a9aa74c132c91c6e0a942c7d520eac88)) -* everyone group page throws error ([#1450](https://github.com/homarr-labs/homarr/issues/1450)) ([f3ebd6c](https://github.com/homarr-labs/homarr/commit/f3ebd6ccdf2d5964daf50f4b9221d2231a91855d)) -* external users can be added to groups manually ([#1540](https://github.com/homarr-labs/homarr/issues/1540)) ([32e6b8e](https://github.com/homarr-labs/homarr/commit/32e6b8ee45cac46cf71fd5c6cd71558c352b4097)) -* fetch timeout for external requests to small ([#881](https://github.com/homarr-labs/homarr/issues/881)) ([67dad45](https://github.com/homarr-labs/homarr/commit/67dad45214a0dcda9d79abb4c731b7705ceb7f2d)) -* fix binary conflicts for linux ([#1583](https://github.com/homarr-labs/homarr/issues/1583)) ([70ab294](https://github.com/homarr-labs/homarr/commit/70ab29454a53958676de33bb39b9be1ea613e135)) -* fix i18n-ally extension config ([#1462](https://github.com/homarr-labs/homarr/issues/1462)) ([4ba9e94](https://github.com/homarr-labs/homarr/commit/4ba9e94dd6f632492ed250ccc267f5ac72805290)) -* Fix typecheck, lint issues and errors brought to dnshole summary. ([#916](https://github.com/homarr-labs/homarr/issues/916)) ([0cec1db](https://github.com/homarr-labs/homarr/commit/0cec1dbb1743bbe2af03a006c24d3588d5a55d83)) -* github actor name for automatic approval wrong ([#943](https://github.com/homarr-labs/homarr/issues/943)) ([c833f2c](https://github.com/homarr-labs/homarr/commit/c833f2cbf2560919f5e2381678a46d2d8d649854)) -* gridstack not working ([#642](https://github.com/homarr-labs/homarr/issues/642)) ([2c1b52a](https://github.com/homarr-labs/homarr/commit/2c1b52aff95af95b2732c4e86af87fffdcbd6896)) -* groups can be created with empty names ([#1267](https://github.com/homarr-labs/homarr/issues/1267)) ([98cf214](https://github.com/homarr-labs/homarr/commit/98cf214aed9423dbf4e13982641d9e167de4171d)) -* Handle existing user when editing profile ([6e2bd0c](https://github.com/homarr-labs/homarr/commit/6e2bd0ce11697cdfd59500d506e68ac22ed38273)) -* hard to move iframe widget [#1075](https://github.com/homarr-labs/homarr/issues/1075) ([#1101](https://github.com/homarr-labs/homarr/issues/1101)) ([5e77221](https://github.com/homarr-labs/homarr/commit/5e772215a9a26f04fec25d3d983a86e8c53faf7c)) -* health-check widget sorting & last seen ([#1363](https://github.com/homarr-labs/homarr/issues/1363)) ([c37a0e3](https://github.com/homarr-labs/homarr/commit/c37a0e38d950ec24bd33a174a229ee20434fa6f9)) -* **health-monitoring:** add months to uptime, fix status update ([#1792](https://github.com/homarr-labs/homarr/issues/1792)) ([c91aae5](https://github.com/homarr-labs/homarr/commit/c91aae53acf27eab96a9150281f98a2156e9e2af)) -* icon picker keyboard interactions ([#1666](https://github.com/homarr-labs/homarr/issues/1666)) ([82ec77d](https://github.com/homarr-labs/homarr/commit/82ec77d2dac9764d44417a4e486a099f89b5e39c)) -* icon picker suspense issue ([#1533](https://github.com/homarr-labs/homarr/issues/1533)) ([ecf299e](https://github.com/homarr-labs/homarr/commit/ecf299e03b5906a7f006397ef1df463a2c531468)) -* icon selector is a select not an autocomplete [#515](https://github.com/homarr-labs/homarr/issues/515) ([#675](https://github.com/homarr-labs/homarr/issues/675)) ([e957c6b](https://github.com/homarr-labs/homarr/commit/e957c6b601b1ed1172df8ee998a50a56e4b83f1f)) -* **icons:** local icon repository does not work with medias ([#1765](https://github.com/homarr-labs/homarr/issues/1765)) ([e220087](https://github.com/homarr-labs/homarr/commit/e220087e96c7096303b1d245ccf3941118e692f3)) -* **icons:** picker does not allow multiple words ([#1827](https://github.com/homarr-labs/homarr/issues/1827)) ([6e21863](https://github.com/homarr-labs/homarr/commit/6e21863d04f7d0598e7e7ca3fb707f9beb09d7ef)) -* **iframe:** remove second scrollbar from item card ([#1828](https://github.com/homarr-labs/homarr/issues/1828)) ([bf12944](https://github.com/homarr-labs/homarr/commit/bf1294476867fabc896f94c9326a1acfe6bffa50)) -* import sidebar issues ([#1712](https://github.com/homarr-labs/homarr/issues/1712)) ([a519994](https://github.com/homarr-labs/homarr/commit/a51999457b57c042b543768bc1ef43647d62a85d)) -* improve ping performance ([#1020](https://github.com/homarr-labs/homarr/issues/1020)) ([b81f5a2](https://github.com/homarr-labs/homarr/commit/b81f5a2ee349f1b8205a86d72d00c4a2e3470d1f)) -* inconsistent session cookie ([#1310](https://github.com/homarr-labs/homarr/issues/1310)) ([12105b3](https://github.com/homarr-labs/homarr/commit/12105b3b2935afec4f43aed05e4e5700986430ea)) -* indexer manager UI behaviour + class naming ([#1134](https://github.com/homarr-labs/homarr/issues/1134)) ([6d4d6ef](https://github.com/homarr-labs/homarr/commit/6d4d6efe3f575830d10e8d04d71b14dcda82223b)) -* insert limit of sqlite is smaller than amount of icons ([#1161](https://github.com/homarr-labs/homarr/issues/1161)) ([9eea8d4](https://github.com/homarr-labs/homarr/commit/9eea8d48e8bc0776d6074840a47c4b4c2ba38347)) -* integration actions hidden for full access users ([#1300](https://github.com/homarr-labs/homarr/issues/1300)) ([476fda2](https://github.com/homarr-labs/homarr/commit/476fda279db3a501a376b5b77eff2ae99b8a0225)) -* integration links in manage section do not work ([#441](https://github.com/homarr-labs/homarr/issues/441)) ([4b80b16](https://github.com/homarr-labs/homarr/commit/4b80b16b530af17649ef71ab9481574b3e9a0159)) -* issue with category removal and ready state ([#129](https://github.com/homarr-labs/homarr/issues/129)) ([1e414af](https://github.com/homarr-labs/homarr/commit/1e414af57c604770118a3fac59941bfaff0ab6db)) -* issue with color scheme in layout ([#1168](https://github.com/homarr-labs/homarr/issues/1168)) ([8f7ed05](https://github.com/homarr-labs/homarr/commit/8f7ed056c435a66d095cdfd43b6e893dfc7e6da3)) -* issues found in security audit ([#1668](https://github.com/homarr-labs/homarr/issues/1668)) ([922101d](https://github.com/homarr-labs/homarr/commit/922101dcbd0c512815b2cbb354cbab0fe80028c0)) -* it was possible to go to the create user page when credentials login disabled ([#1217](https://github.com/homarr-labs/homarr/issues/1217)) ([d63f6d2](https://github.com/homarr-labs/homarr/commit/d63f6d270f496053ae52bc3b9bfe484372c5b9d3)) -* items can not be placed in newly created dynamic section without saving ([#1513](https://github.com/homarr-labs/homarr/issues/1513)) ([73cb0b9](https://github.com/homarr-labs/homarr/commit/73cb0b99accfeb05c63c78ff227db1d5f23b99b2)) -* jellyfin integration does not allow username password auth ([#1714](https://github.com/homarr-labs/homarr/issues/1714)) ([63a7be3](https://github.com/homarr-labs/homarr/commit/63a7be35a4cf0f11610c2097afc32d2ced0ef9e1)) -* job translations ([#846](https://github.com/homarr-labs/homarr/issues/846)) ([43e4801](https://github.com/homarr-labs/homarr/commit/43e48010e5f1d7cf65ad779c8684a7b468e43688)) -* local websocket url wrong ([#1328](https://github.com/homarr-labs/homarr/issues/1328)) ([7572634](https://github.com/homarr-labs/homarr/commit/757263478036d01d8fdbabf3857bb6ebd59ba9af)) -* login before pushing image ([4836801](https://github.com/homarr-labs/homarr/commit/4836801004301375220e8181c5f14e56020312d2)) -* login page in light mode is always black ([#1821](https://github.com/homarr-labs/homarr/issues/1821)) ([cc7d53e](https://github.com/homarr-labs/homarr/commit/cc7d53e84ec8c2dd3698a178ca6f35099194b5d7)) -* login with revalidate path and wrong preferences link ([#654](https://github.com/homarr-labs/homarr/issues/654)) ([8e4ba37](https://github.com/homarr-labs/homarr/commit/8e4ba37f94294577926ae6e668d50b2e151b2d35)) -* make oldmarr app schema less restrictive ([#1495](https://github.com/homarr-labs/homarr/issues/1495)) ([879aa11](https://github.com/homarr-labs/homarr/commit/879aa1152f8e9182c14775672cf371fdc639e223)) -* Manage banner animation hitch fix ([#826](https://github.com/homarr-labs/homarr/issues/826)) ([4e03e7f](https://github.com/homarr-labs/homarr/commit/4e03e7f49d931090636dea7ebed4a0bea9659177)) -* manage links wrong ([#754](https://github.com/homarr-labs/homarr/issues/754)) ([be71114](https://github.com/homarr-labs/homarr/commit/be711149f7d1ef82ab30e43209d6173f2520de57)) -* mantine react table style issue ([#508](https://github.com/homarr-labs/homarr/issues/508)) ([5723295](https://github.com/homarr-labs/homarr/commit/5723295856ae557a25db3b5782e6c4bea6b6c301)) -* mantine-react-table not localized [#333](https://github.com/homarr-labs/homarr/issues/333) ([#873](https://github.com/homarr-labs/homarr/issues/873)) ([4380aa9](https://github.com/homarr-labs/homarr/commit/4380aa9b3e8659bbb95f8d91e35bffc87c8e65c5)) -* matcher for translation middleware only supports en and de ([#1528](https://github.com/homarr-labs/homarr/issues/1528)) ([38143b6](https://github.com/homarr-labs/homarr/commit/38143b679e389633dbd27a2fede866c3696c583c)) -* **media-request:** media and media-request status can have missing values ([#1911](https://github.com/homarr-labs/homarr/issues/1911)) ([ec3bda3](https://github.com/homarr-labs/homarr/commit/ec3bda34e0c1adacf0cfc5d7af272f9f2617fbe5)) -* **media-server:** redesign widget ([#1775](https://github.com/homarr-labs/homarr/issues/1775)) ([23c7d0b](https://github.com/homarr-labs/homarr/commit/23c7d0bbf01215b680f346e7eef8072d8b9db09e)) -* memory leak caused by many unclosed redis subscriptions ([#750](https://github.com/homarr-labs/homarr/issues/750)) ([998615f](https://github.com/homarr-labs/homarr/commit/998615fc11cfcca1d1a51464550d599addb8e49f)) -* middleware fetch failed for docker container ([#1424](https://github.com/homarr-labs/homarr/issues/1424)) ([b7fc1ae](https://github.com/homarr-labs/homarr/commit/b7fc1ae4bb0aa03595d849d909b997c307dce26c)) -* missing breadcrumb translation, wrong spacing in user layout ([#872](https://github.com/homarr-labs/homarr/issues/872)) ([55a000a](https://github.com/homarr-labs/homarr/commit/55a000a7fc2b2c977af3f25d5196a464c6890745)) -* missing migration for default colorscheme change ([#1335](https://github.com/homarr-labs/homarr/issues/1335)) ([9c5972f](https://github.com/homarr-labs/homarr/commit/9c5972faf45a31ec379fe7a2fdd19548755d27ed)) -* missing translations for apps / integrations [#438](https://github.com/homarr-labs/homarr/issues/438) ([#674](https://github.com/homarr-labs/homarr/issues/674)) ([f358c33](https://github.com/homarr-labs/homarr/commit/f358c33bd37e581d7a3ce02f527eb499f8ae4b85)) -* modal transition not working ([#433](https://github.com/homarr-labs/homarr/issues/433)) ([b888fad](https://github.com/homarr-labs/homarr/commit/b888fad1fc288961f0582464392e3f12751e9146)) -* moving categories up and down is not working ([#1542](https://github.com/homarr-labs/homarr/issues/1542)) ([52d2a88](https://github.com/homarr-labs/homarr/commit/52d2a88b61a6ef8513560e8810bce6fa0867f0a6)) -* mysql migration not working ([#1138](https://github.com/homarr-labs/homarr/issues/1138)) ([003cc51](https://github.com/homarr-labs/homarr/commit/003cc5160c68d73e3cfbc3e933099a9275782b5b)) -* mysql operations not working ([#1728](https://github.com/homarr-labs/homarr/issues/1728)) ([550bca6](https://github.com/homarr-labs/homarr/commit/550bca6dee743a4ed68ec15677304ecfd7a9a385)) -* mysql transactions do not work with run property of sqlite ([#1974](https://github.com/homarr-labs/homarr/issues/1974)) ([a1084f9](https://github.com/homarr-labs/homarr/commit/a1084f91e56677b1cae3bb35e8f9f4cd0630dc81)) -* new sections without add and change listeners ([#1230](https://github.com/homarr-labs/homarr/issues/1230)) ([665df53](https://github.com/homarr-labs/homarr/commit/665df53a39cc90d4155b3c8436a88986aa7a5b23)) -* next auth host not trusted ([#144](https://github.com/homarr-labs/homarr/issues/144)) ([b2cee8f](https://github.com/homarr-labs/homarr/commit/b2cee8f6936d526072dd65a59a494081cfb81c16)) -* nextjs is slow dev server ([#364](https://github.com/homarr-labs/homarr/issues/364)) ([b78d32b](https://github.com/homarr-labs/homarr/commit/b78d32b81c6075a3d04abf0e8e7631e8ce6ef49c)) -* node cache cleanup error ([#1124](https://github.com/homarr-labs/homarr/issues/1124)) ([16a5b43](https://github.com/homarr-labs/homarr/commit/16a5b43695f5e8c8d3ba5ac9d1bfe2dec83f3bf1)) -* notebook save button on align buttons ([#1456](https://github.com/homarr-labs/homarr/issues/1456)) ([15abfbb](https://github.com/homarr-labs/homarr/commit/15abfbbdf722b9f996c69072b57105ecfdc647ad)) -* **notebook:** default-content image path ([#1244](https://github.com/homarr-labs/homarr/issues/1244)) ([b5bfe90](https://github.com/homarr-labs/homarr/commit/b5bfe90453b8ad5028b52b856631ec30f3f80afd)) -* oldmarr import user casing wrong ([#1784](https://github.com/homarr-labs/homarr/issues/1784)) ([e37279f](https://github.com/homarr-labs/homarr/commit/e37279fe8071773f1a9773e3233bc81cbb336798)) -* **onboard:** missing admin permission assignment for external group ([#1764](https://github.com/homarr-labs/homarr/issues/1764)) ([b948337](https://github.com/homarr-labs/homarr/commit/b9483379dd56a8dab2b9b636b66b970da4cf9d83)) -* open navigation item by default ([#716](https://github.com/homarr-labs/homarr/issues/716)) ([c4b54ed](https://github.com/homarr-labs/homarr/commit/c4b54ed36c2da54457ac58496e62e13856bc0c98)) -* open-api doc generation failing, post patch and delete not exported ([#1565](https://github.com/homarr-labs/homarr/issues/1565)) ([2d7efc3](https://github.com/homarr-labs/homarr/commit/2d7efc3ffacb16c27219c26f20fd0682304927e0)) -* overview in series of sonarr schema is optional ([#880](https://github.com/homarr-labs/homarr/issues/880)) ([406ed16](https://github.com/homarr-labs/homarr/commit/406ed16ce45683d04e7f0293037d1eeae269795d)) -* pass token to cli ([653f42b](https://github.com/homarr-labs/homarr/commit/653f42bccb8a5893eb64d66c4963068b37011cd7)) -* permission required for home page ([#1711](https://github.com/homarr-labs/homarr/issues/1711)) ([5fbbf03](https://github.com/homarr-labs/homarr/commit/5fbbf037ce8a06642533c7f68c1c34ed8b01e4e4)) -* permissions not restricted for certain management pages / actions ([#1219](https://github.com/homarr-labs/homarr/issues/1219)) ([1421ccc](https://github.com/homarr-labs/homarr/commit/1421ccc917fc54a8afcf6ba700d4b0590fa90ed5)) -* ping urls are not reset when restarting ([#924](https://github.com/homarr-labs/homarr/issues/924)) ([365e267](https://github.com/homarr-labs/homarr/commit/365e267b8d7ba75e47af974dec6f427592095185)) -* pnpm dev did not work caused by tsx update ([#638](https://github.com/homarr-labs/homarr/issues/638)) ([fb92c3e](https://github.com/homarr-labs/homarr/commit/fb92c3e95c164b4297c74bbe18461cd08b003112)) -* prevent flickering by removing auto color scheme and default background color ([#1299](https://github.com/homarr-labs/homarr/issues/1299)) ([cd77acd](https://github.com/homarr-labs/homarr/commit/cd77acdfabf6f58aa1973e8db9408379801a8085)) -* prowlarr integration indexers status changed from id to indexerId ([#1837](https://github.com/homarr-labs/homarr/issues/1837)) ([ee8831a](https://github.com/homarr-labs/homarr/commit/ee8831affe34a33b80a0993aa538c2b16c035f11)) -* rdb files can not be saved because of permission issues bug: redis can not save RDB files [#318](https://github.com/homarr-labs/homarr/issues/318) ([#472](https://github.com/homarr-labs/homarr/issues/472)) ([fd44ee4](https://github.com/homarr-labs/homarr/commit/fd44ee48f4dbd67a1f86a6a3fe7c7c986b87443a)) -* redirect url from login not working ([#952](https://github.com/homarr-labs/homarr/issues/952)) ([349c494](https://github.com/homarr-labs/homarr/commit/349c49462fdf29741910e036e4494909c13b6124)) -* remove unnecessary complex copy and build steps in dockerfile ([#1595](https://github.com/homarr-labs/homarr/issues/1595)) ([2686dad](https://github.com/homarr-labs/homarr/commit/2686dad63017cd3b8e45818bfcb27fa3618f1a15)) -* remove unused properties in SabNZBd schema ([#1415](https://github.com/homarr-labs/homarr/issues/1415)) ([ceafd37](https://github.com/homarr-labs/homarr/commit/ceafd3747b3a56531ca3357f68fd33350cf5c896)) -* Remove version override ([#67](https://github.com/homarr-labs/homarr/issues/67)) ([55ec600](https://github.com/homarr-labs/homarr/commit/55ec60041ac5fd38861220f42e6b6daba1fb3eb3)) -* rename default to home board ([#1538](https://github.com/homarr-labs/homarr/issues/1538)) ([1c4d4f4](https://github.com/homarr-labs/homarr/commit/1c4d4f4e9d39d52d6a8e69f06c1d6246c774ed79)) -* renovate approval run for all pull requests on every pull request change ([#942](https://github.com/homarr-labs/homarr/issues/942)) ([017c378](https://github.com/homarr-labs/homarr/commit/017c378582cca20688acac171bab803597d825b4)) -* renovate approval workflow not running ([#948](https://github.com/homarr-labs/homarr/issues/948)) ([ab7d3f8](https://github.com/homarr-labs/homarr/commit/ab7d3f8e4c82fcee9af6f79c70943633fec9af95)) -* renovate automatic approval typo no file extension ([#572](https://github.com/homarr-labs/homarr/issues/572)) ([c2185e3](https://github.com/homarr-labs/homarr/commit/c2185e34890b028eac7486a52d04967037be2183)) -* renovate config with json does not support comments ([#641](https://github.com/homarr-labs/homarr/issues/641)) ([e46ea71](https://github.com/homarr-labs/homarr/commit/e46ea71bc2f89f02403e8a9597dc02474181776d)) -* restrict access to docker containers page to admins ([#912](https://github.com/homarr-labs/homarr/issues/912)) ([b8b084c](https://github.com/homarr-labs/homarr/commit/b8b084c188b28ba8fb317156433e694e7d37dfbb)) -* revert mysql2 to version 3.9.2 as with 3.9.3 nextjs build fails ([1fc2df1](https://github.com/homarr-labs/homarr/commit/1fc2df19ec6e707f7dc9ca11e60f021dd03fc5aa)) -* rtl common translation unnecessary ([#1246](https://github.com/homarr-labs/homarr/issues/1246)) ([770768e](https://github.com/homarr-labs/homarr/commit/770768eb211259848437522615b7b78ecfca8ee5)) -* **security:** restrict link protocols to http and https ([#1888](https://github.com/homarr-labs/homarr/issues/1888)) ([a12dd10](https://github.com/homarr-labs/homarr/commit/a12dd102692ee237e9695bd852dc894a2856b30e)) -* sensitive data can be leaked through query parameters ([#1208](https://github.com/homarr-labs/homarr/issues/1208)) ([f24c068](https://github.com/homarr-labs/homarr/commit/f24c06852e0bf6d672b58b784ce34d96581c2c03)) -* server data is loaded on settings page [#363](https://github.com/homarr-labs/homarr/issues/363) ([#414](https://github.com/homarr-labs/homarr/issues/414)) ([7c98b65](https://github.com/homarr-labs/homarr/commit/7c98b65401778a61a4af4206612fa62dd95ba9a5)) -* sessions from inactive providers can still be used ([#1458](https://github.com/homarr-labs/homarr/issues/1458)) ([1105f00](https://github.com/homarr-labs/homarr/commit/1105f0029fd1479e3ab6d8dae8524233c264ca21)) -* sharp is not installed ([#397](https://github.com/homarr-labs/homarr/issues/397)) ([5f24797](https://github.com/homarr-labs/homarr/commit/5f247977fa50405d5daed9f628d1170d15be412d)), closes [#320](https://github.com/homarr-labs/homarr/issues/320) -* specify step image version ([fa2c448](https://github.com/homarr-labs/homarr/commit/fa2c448bac9734662295cb8ebd62f733d3153be2)) -* **spotlight:** x button not clickable, help links open in current tab, bad screen usage on mobile ([#1199](https://github.com/homarr-labs/homarr/issues/1199)) ([42a49e6](https://github.com/homarr-labs/homarr/commit/42a49e6461f1834a1e54563e908fe75457de6d96)) -* styles for light mode ([#1645](https://github.com/homarr-labs/homarr/issues/1645)) ([cf9656d](https://github.com/homarr-labs/homarr/commit/cf9656d91eedc73224e9cfc8871c977988994425)) -* testConnectionAsync url ([#1024](https://github.com/homarr-labs/homarr/issues/1024)) ([e34af86](https://github.com/homarr-labs/homarr/commit/e34af8659b6562e1ec3ebc502eff52ef3c699654)) -* trailing slash integration url issues ([#1571](https://github.com/homarr-labs/homarr/issues/1571)) ([b277f44](https://github.com/homarr-labs/homarr/commit/b277f444b2c01e251b53069c17674eb4188b5f8d)) -* transfer group not invalidating path ([#1539](https://github.com/homarr-labs/homarr/issues/1539)) ([74e1b6b](https://github.com/homarr-labs/homarr/commit/74e1b6b54494455fecc37f673569482c3fad1ce4)) -* **translation:** query parameter in search with escaped ([#1895](https://github.com/homarr-labs/homarr/issues/1895)) ([80c02ef](https://github.com/homarr-labs/homarr/commit/80c02ef9f24cec74025a0fcc983c6db37f7fd457)) -* trpc error at least one integration ([#1660](https://github.com/homarr-labs/homarr/issues/1660)) ([f857105](https://github.com/homarr-labs/homarr/commit/f8571059941a4c13b9b8bca24b399ca06a8aa13f)) -* trpc removed export anything from client in react-query ([#1941](https://github.com/homarr-labs/homarr/issues/1941)) ([56755d1](https://github.com/homarr-labs/homarr/commit/56755d1ab4194de04faeb569020f6d19623bd29a)) -* try using other variable ([5c68ac9](https://github.com/homarr-labs/homarr/commit/5c68ac9e2eda1c28befd25a14cc3c2b6e3965c34)) -* tsx not working ([#434](https://github.com/homarr-labs/homarr/issues/434)) ([5abd438](https://github.com/homarr-labs/homarr/commit/5abd438a494048738017a976faa35e1c79c7fd96)) -* typo in automatic release commit message ([#726](https://github.com/homarr-labs/homarr/issues/726)) ([8fc2884](https://github.com/homarr-labs/homarr/commit/8fc28844bbedb4edbdc504aba6330bad06d34e93)) -* typo in renovate config name ([#557](https://github.com/homarr-labs/homarr/issues/557)) ([4d1e4d5](https://github.com/homarr-labs/homarr/commit/4d1e4d55bc56a567aa5ae70a1c2d6bd7ed738954)) -* unable to select integration on board page ([#450](https://github.com/homarr-labs/homarr/issues/450)) ([c884644](https://github.com/homarr-labs/homarr/commit/c88464498fcca95232e87b684b20e932891b939c)) -* Update check for user existence ([65025a5](https://github.com/homarr-labs/homarr/commit/65025a5dda4414aa98ac042b64b22f15ddc8bff8)) -* update of dev branch has no credentials ([#1724](https://github.com/homarr-labs/homarr/issues/1724)) ([bb7f751](https://github.com/homarr-labs/homarr/commit/bb7f7514814d49a77ac79f63d68923d08148573e)) -* use correct branch for tag compare ([0c7f479](https://github.com/homarr-labs/homarr/commit/0c7f47995211f31fa81d0f27b9a0d901dd2e422c)) -* user is undefined when using use-suspense-query ([#1498](https://github.com/homarr-labs/homarr/issues/1498)) ([18b579e](https://github.com/homarr-labs/homarr/commit/18b579eb5f2ce77ac19a2bd9fee9c99025ab1c2d)) -* various issues with docker image workflow ([#1172](https://github.com/homarr-labs/homarr/issues/1172)) ([d029f48](https://github.com/homarr-labs/homarr/commit/d029f48f799bc9ff7e01c4b85194b58e050f0c5b)) -* videos not playing automatically on iOS / mobile ([#875](https://github.com/homarr-labs/homarr/issues/875)) ([8e10c48](https://github.com/homarr-labs/homarr/commit/8e10c48d2f182b1f11baac8747a0701019a4387c)) -* websockets not working extend not defined ([#1975](https://github.com/homarr-labs/homarr/issues/1975)) ([7622f0a](https://github.com/homarr-labs/homarr/commit/7622f0a4d2fc3c53a3ab72983b1c71b50fd4a079)) -* websockets on https do not work ([#1444](https://github.com/homarr-labs/homarr/issues/1444)) ([0aa72d1](https://github.com/homarr-labs/homarr/commit/0aa72d118c6c61798cff3406256e4253d0ad5aab)) -* wevbsocket url is always localhost ([#1072](https://github.com/homarr-labs/homarr/issues/1072)) ([8c20553](https://github.com/homarr-labs/homarr/commit/8c205535eb2d2e3a6efb26696460f1c60c58170e)) -* when no dead icons, all icons are removed ([#516](https://github.com/homarr-labs/homarr/issues/516)) ([8e8f908](https://github.com/homarr-labs/homarr/commit/8e8f9081b029e8a01e4dcfcc14e6cd259732c519)) -* when removing one item and then adding another one that newly added one can not be moved ([#1025](https://github.com/homarr-labs/homarr/issues/1025)) ([2738f40](https://github.com/homarr-labs/homarr/commit/2738f40c5e3028822c4586556fddc16af5aa7d58)) -* **widget:** set-options from widget components should be partial ([#1882](https://github.com/homarr-labs/homarr/issues/1882)) ([e695fb6](https://github.com/homarr-labs/homarr/commit/e695fb64d317ecb47b6844dc2a185502244f7db1)) -* workflow inputs and docker push ([#1123](https://github.com/homarr-labs/homarr/issues/1123)) ([c8dfbc8](https://github.com/homarr-labs/homarr/commit/c8dfbc8e2d3fd50958b124bdc4e1ad6b0af8f7ca)) -* wrong id for renovate auto approval ([#957](https://github.com/homarr-labs/homarr/issues/957)) ([67195c6](https://github.com/homarr-labs/homarr/commit/67195c605139dfd4b3cd1e7d7e627752e71a7f1f)) -* xterm-addon-fit deprecated ([#321](https://github.com/homarr-labs/homarr/issues/321)) ([e6e6e4e](https://github.com/homarr-labs/homarr/commit/e6e6e4e7d639277c6b23d389721de81f7abd68d0)) +- about version is one behind because of missing package-json update in deploy ([#1725](https://github.com/homarr-labs/homarr/issues/1725)) ([8c11562](https://github.com/homarr-labs/homarr/commit/8c1156240c8a0d332301ae6dd0a4521f3db19d9a)) +- about version reads nextjs package-json ([#1706](https://github.com/homarr-labs/homarr/issues/1706)) ([d803087](https://github.com/homarr-labs/homarr/commit/d8030873452d2248d79d16a2fc4464ff2fbb478d)) +- actions user has no permission to are shown in spotlight ([#1452](https://github.com/homarr-labs/homarr/issues/1452)) ([04895da](https://github.com/homarr-labs/homarr/commit/04895da08a72864a55d6bb09524588ba0d9a06c1)) +- add beforeunload logic for board in edit mode ([#1531](https://github.com/homarr-labs/homarr/issues/1531)) ([225356c](https://github.com/homarr-labs/homarr/commit/225356cc4f49a8a8178f9d7dffc3283bc641b3d0)) +- add missing branch-name to discord deploy notification ([50697eb](https://github.com/homarr-labs/homarr/commit/50697eb21f923bbe9a6811c964cfc313f79a2806)) +- add missing tags ([f23831b](https://github.com/homarr-labs/homarr/commit/f23831be5ec257775ca9ce116a50f025cac65c2d)) +- add persists credentials false to checkout of release pipeline ([#1691](https://github.com/homarr-labs/homarr/issues/1691)) ([daf7ea5](https://github.com/homarr-labs/homarr/commit/daf7ea56c5ce05803efc475ad64c5abb6a0784ea)) +- add rtl compliance for symbols [#366](https://github.com/homarr-labs/homarr/issues/366) ([#406](https://github.com/homarr-labs/homarr/issues/406)) ([0278e3a](https://github.com/homarr-labs/homarr/commit/0278e3a854455a48c53ab394d4c4e65734f535ca)) +- add sharp ([#241](https://github.com/homarr-labs/homarr/issues/241)) ([0440af3](https://github.com/homarr-labs/homarr/commit/0440af3566ce7e57eaedd6921c16143943647bd4)) +- add subscription to health monitoring widget ([#1210](https://github.com/homarr-labs/homarr/issues/1210)) ([ce67fcd](https://github.com/homarr-labs/homarr/commit/ce67fcd57cd56fe68105c269a9f2377bbc89e61b)) +- adding volume /appdata removes created directories ([#1445](https://github.com/homarr-labs/homarr/issues/1445)) ([fe4dfc4](https://github.com/homarr-labs/homarr/commit/fe4dfc484bcc5da8d3901d042adc5d3cf3ea9fbc)) +- alert that certain fields in user settings are disabled is always shown ([#928](https://github.com/homarr-labs/homarr/issues/928)) ([9258c39](https://github.com/homarr-labs/homarr/commit/9258c397e0689bf46969614f3c634b5af20a2d8c)) +- allow additional file-type for oldmarr import ([#1723](https://github.com/homarr-labs/homarr/issues/1723)) ([1e8a535](https://github.com/homarr-labs/homarr/commit/1e8a5359b78e28db7683ba837a962685446c6c32)) +- Allow username to be capitalized on basic credentials login ([#1585](https://github.com/homarr-labs/homarr/issues/1585)) ([a1a6dc9](https://github.com/homarr-labs/homarr/commit/a1a6dc9d6e345ff102d69164d4bf2d7020db0ea4)) +- always require db-user and password for mysql ([#1730](https://github.com/homarr-labs/homarr/issues/1730)) ([d2584b6](https://github.com/homarr-labs/homarr/commit/d2584b63c55ca143a2b5dc6a71cb00fd5612b78a)) +- api keys authentication does not work [#1511](https://github.com/homarr-labs/homarr/issues/1511) ([#1512](https://github.com/homarr-labs/homarr/issues/1512)) ([72eda1f](https://github.com/homarr-labs/homarr/commit/72eda1f225cece3d317c66b4b98a481328962d63)) +- **app:** missing noreferer attribute for anchor tag ([#1915](https://github.com/homarr-labs/homarr/issues/1915)) ([986e013](https://github.com/homarr-labs/homarr/commit/986e013ca3eaf402d9014c5586536e05d93e9adc)) +- auth broken cause of consistent table column rename ([#1532](https://github.com/homarr-labs/homarr/issues/1532)) ([4a94d60](https://github.com/homarr-labs/homarr/commit/4a94d602c0cce7796cde7c08a5670e045452c2c5)) +- **auth:** oidc redirect does not respect https protocol ([#1763](https://github.com/homarr-labs/homarr/issues/1763)) ([0336803](https://github.com/homarr-labs/homarr/commit/033680355044b1ebfa5d8fe07b59929bbcfcb3a0)) +- auto-merge crowdin pr not working ([#1664](https://github.com/homarr-labs/homarr/issues/1664)) ([f330c7e](https://github.com/homarr-labs/homarr/commit/f330c7e4f1a8e097e2f594c47061f98c7c9e0034)) +- auto-merge for crowdin download pull request not working ([#1661](https://github.com/homarr-labs/homarr/issues/1661)) ([5bdc669](https://github.com/homarr-labs/homarr/commit/5bdc669e07c788f3b47009a4f5c3c2c785dda111)) +- base branch for semver ([a8748fa](https://github.com/homarr-labs/homarr/commit/a8748fa439c481d7238a32b99184e9fce667a709)) +- **board:** item background and border overridden by mantine card styles ([#1769](https://github.com/homarr-labs/homarr/issues/1769)) ([425359b](https://github.com/homarr-labs/homarr/commit/425359be02f66242f7db0dc77bed0355495e21d5)) +- **board:** tiles order not respected on firefox ([#1770](https://github.com/homarr-labs/homarr/issues/1770)) ([8893b72](https://github.com/homarr-labs/homarr/commit/8893b72fe363691b91b6aca75d4ad37f4b8e9f6a)) +- boolean checks do not work correctly in deploy workflow ([649506b](https://github.com/homarr-labs/homarr/commit/649506b56a5f3cbbee9b782b637730f2196785cc)) +- cache is not exportet from react ([#417](https://github.com/homarr-labs/homarr/issues/417)) ([fba767b](https://github.com/homarr-labs/homarr/commit/fba767bde3d17c09d563ccea352cd8e4171e84f8)) +- **category:** remove not always working and ignoring dynamic sections ([#1939](https://github.com/homarr-labs/homarr/issues/1939)) ([d4bb014](https://github.com/homarr-labs/homarr/commit/d4bb014a9ba83770fd7880b48a4a5ab5362f6f75)) +- change docker concurrency group to allow multiple deployments to different branches ([#1687](https://github.com/homarr-labs/homarr/issues/1687)) ([93abe8f](https://github.com/homarr-labs/homarr/commit/93abe8f6a2bfe012b6c03c7994e5334f22b6e5e8)) +- change node-version for composite setup action to 22, remove unnecessary installation of node from docker deployment ([#1429](https://github.com/homarr-labs/homarr/issues/1429)) ([319fb47](https://github.com/homarr-labs/homarr/commit/319fb477444bae5cd4c847af9ebf9e35359fbb03)) +- change permission for github action to contents write ([#1689](https://github.com/homarr-labs/homarr/issues/1689)) ([0f029b3](https://github.com/homarr-labs/homarr/commit/0f029b384d1699ea8ee784651b97b88fd64613c6)) +- color scheme manager should use cookie and not session value ([#1329](https://github.com/homarr-labs/homarr/issues/1329)) ([799d6c5](https://github.com/homarr-labs/homarr/commit/799d6c5d4a59c65d3e2f902843dfc86910b8496f)) +- confirm not selected by default in confirm modal ([#1232](https://github.com/homarr-labs/homarr/issues/1232)) ([ac07504](https://github.com/homarr-labs/homarr/commit/ac0750452cd4788cba48d3af720240e063080fba)) +- conflicts between common admin group for ldap or oidc and credentials default group ([#1710](https://github.com/homarr-labs/homarr/issues/1710)) ([3c0f272](https://github.com/homarr-labs/homarr/commit/3c0f272707ee66fd00bffb0d16e30df98b4f1aff)) +- container image always being on AMD64 arch ([#1173](https://github.com/homarr-labs/homarr/issues/1173)) ([65f2611](https://github.com/homarr-labs/homarr/commit/65f26117fc491958922cd863801cc049479766af)) +- controller is already closed trpc subscription observable error ([#743](https://github.com/homarr-labs/homarr/issues/743)) ([41dba7b](https://github.com/homarr-labs/homarr/commit/41dba7b516880098ae923d45f2065875cb6c70da)) +- copy media link ([#1750](https://github.com/homarr-labs/homarr/issues/1750)) ([d78c6ed](https://github.com/homarr-labs/homarr/commit/d78c6ed5299e1f975c2e85ec3ecad38e00457677)) +- correctly set pr description ([#778](https://github.com/homarr-labs/homarr/issues/778)) ([f58c38a](https://github.com/homarr-labs/homarr/commit/f58c38a1aa654acc474b492610452a9c38d20f42)) +- crash with no user in session ([547f75d](https://github.com/homarr-labs/homarr/commit/547f75d19cb08cd0eac6978cb9a6eb107a563edd)) +- create board submit button inverted ([0ee8c5a](https://github.com/homarr-labs/homarr/commit/0ee8c5ad91dfe70ef27af3fe9a47918bab23a665)) +- create user async is called twice ([7fa120c](https://github.com/homarr-labs/homarr/commit/7fa120c47490ab3e80fb8db0921d9afa3e12cfee)) +- credentials auth not working ([#1284](https://github.com/homarr-labs/homarr/issues/1284)) ([511c9a4](https://github.com/homarr-labs/homarr/commit/511c9a4dbbcaa3846bcd5a3dfe1827793e398ff4)) +- credentials login not working cause of cookie secure flag not possible for http ([#1421](https://github.com/homarr-labs/homarr/issues/1421)) ([cf5bcab](https://github.com/homarr-labs/homarr/commit/cf5bcab732924ef5b7a3eabf2d0a8760a59d6cb6)) +- db port validation for env variable wrong ([#1137](https://github.com/homarr-labs/homarr/issues/1137)) ([d01ddd6](https://github.com/homarr-labs/homarr/commit/d01ddd61b6fe3583412c7a553cfba8d32ae797a7)) +- default branch for tag compare ([#597](https://github.com/homarr-labs/homarr/issues/597)) ([7cc2736](https://github.com/homarr-labs/homarr/commit/7cc2736d68baaa5730e598b6c8e2cd55fa73711d)) +- defaultTitle invalid attribute on div ([#350](https://github.com/homarr-labs/homarr/issues/350)) ([4970c3a](https://github.com/homarr-labs/homarr/commit/4970c3a1b2545feb3bc20cc6605f8f16a28a8220)) +- deployment pipeline for docker not working ([#860](https://github.com/homarr-labs/homarr/issues/860)) ([90ef982](https://github.com/homarr-labs/homarr/commit/90ef982066b528e891bc3796256b2725ec1addf3)) +- **deps:** update dependency @auth/core to ^0.25.0 ([#29](https://github.com/homarr-labs/homarr/issues/29)) ([8bcbc45](https://github.com/homarr-labs/homarr/commit/8bcbc45943358d580712e0990ba2bb3c2c62d057)) +- **deps:** update dependency @auth/core to ^0.26.3 ([#54](https://github.com/homarr-labs/homarr/issues/54)) ([5cbd02b](https://github.com/homarr-labs/homarr/commit/5cbd02b142da68f067ef9831c6b47f117fbdc8e4)) +- **deps:** update dependency @auth/core to ^0.27.0 ([#89](https://github.com/homarr-labs/homarr/issues/89)) ([6c5e475](https://github.com/homarr-labs/homarr/commit/6c5e4752eaf7a07f9e80951541108643efb0faae)) +- **deps:** update dependency @auth/core to ^0.28.0 ([#169](https://github.com/homarr-labs/homarr/issues/169)) ([aa19139](https://github.com/homarr-labs/homarr/commit/aa19139cf7c4bb4ea6b57c3ca274fff533c2bb2a)) +- **deps:** update dependency @auth/core to ^0.28.1 ([#266](https://github.com/homarr-labs/homarr/issues/266)) ([c72f4bb](https://github.com/homarr-labs/homarr/commit/c72f4bb80de55c6a7dd94e142ce3b27c9073d33e)) +- **deps:** update dependency @auth/core to ^0.28.2 ([#292](https://github.com/homarr-labs/homarr/issues/292)) ([ba16ba1](https://github.com/homarr-labs/homarr/commit/ba16ba138209e843f1ee7304ebe1af138b6995fa)) +- **deps:** update dependency @auth/core to ^0.29.0 ([#327](https://github.com/homarr-labs/homarr/issues/327)) ([719d1cd](https://github.com/homarr-labs/homarr/commit/719d1cd845a3d6565c01d4f1846e9192038c1ce2)) +- **deps:** update dependency @auth/core to ^0.30.0 ([#358](https://github.com/homarr-labs/homarr/issues/358)) ([f6c0f3a](https://github.com/homarr-labs/homarr/commit/f6c0f3ab78f68cffc1ad2305c19f22b725b7a037)) +- **deps:** update dependency @auth/core to ^0.31.0 ([#473](https://github.com/homarr-labs/homarr/issues/473)) ([95ddd03](https://github.com/homarr-labs/homarr/commit/95ddd03763532658c620c50c698c14ed7cd01894)) +- **deps:** update dependency @auth/core to ^0.32.0 ([#603](https://github.com/homarr-labs/homarr/issues/603)) ([dc3b007](https://github.com/homarr-labs/homarr/commit/dc3b00736eabc4a65febb6ae9a8fd9779edb1cdf)) +- **deps:** update dependency @auth/core to ^0.33.0 ([#693](https://github.com/homarr-labs/homarr/issues/693)) ([171fe40](https://github.com/homarr-labs/homarr/commit/171fe40fd59ee1b21bf825a59b0f1792f627262f)) +- **deps:** update dependency @auth/core to ^0.34.0 ([#700](https://github.com/homarr-labs/homarr/issues/700)) ([9087f4b](https://github.com/homarr-labs/homarr/commit/9087f4bfdf263490b6d0e318e1af957dba493f09)) +- **deps:** update dependency @auth/core to ^0.34.1 ([#702](https://github.com/homarr-labs/homarr/issues/702)) ([05702be](https://github.com/homarr-labs/homarr/commit/05702bede88f86ef9014b8f7efa49b8d8a3ceca4)) +- **deps:** update dependency @auth/core to ^0.34.2 ([#876](https://github.com/homarr-labs/homarr/issues/876)) ([9181f11](https://github.com/homarr-labs/homarr/commit/9181f11b137f6327b558fabf6fe8b79de7ff345b)) +- **deps:** update dependency @auth/core to ^0.35.0 ([#1129](https://github.com/homarr-labs/homarr/issues/1129)) ([f9cc34c](https://github.com/homarr-labs/homarr/commit/f9cc34c12f1c8c3334f34a72322852a1e9e8e007)) +- **deps:** update dependency @auth/core to ^0.35.1 ([#1176](https://github.com/homarr-labs/homarr/issues/1176)) ([16e7f93](https://github.com/homarr-labs/homarr/commit/16e7f938bd2604cc2067466b56725ebe9f9743f9)) +- **deps:** update dependency @auth/core to ^0.35.2 ([#1180](https://github.com/homarr-labs/homarr/issues/1180)) ([f495383](https://github.com/homarr-labs/homarr/commit/f495383bcf2a725d82628067c19e763c84c8bdc1)) +- **deps:** update dependency @auth/core to ^0.35.3 ([#1193](https://github.com/homarr-labs/homarr/issues/1193)) ([1994a59](https://github.com/homarr-labs/homarr/commit/1994a5938d5cbb33a1e6cae0676d9350c9424f82)) +- **deps:** update dependency @auth/core to ^0.36.0 ([#1250](https://github.com/homarr-labs/homarr/issues/1250)) ([d0d2a82](https://github.com/homarr-labs/homarr/commit/d0d2a82a68f9155564d92ce925ac7d8cd80f42ee)) +- **deps:** update dependency @auth/core to ^0.37.0 ([#1272](https://github.com/homarr-labs/homarr/issues/1272)) ([8bcba35](https://github.com/homarr-labs/homarr/commit/8bcba350d58564b03cb2ff3296f8ddf2c77d0dae)) +- **deps:** update dependency @auth/core to ^0.37.1 ([#1323](https://github.com/homarr-labs/homarr/issues/1323)) ([dac2b50](https://github.com/homarr-labs/homarr/commit/dac2b5063bb892cdc5079a9957eb9199b6d62738)) +- **deps:** update dependency @auth/core to ^0.37.2 ([#1338](https://github.com/homarr-labs/homarr/issues/1338)) ([aa2d2f8](https://github.com/homarr-labs/homarr/commit/aa2d2f8c4b1b50e07cb68fb1bd76d6561fedb716)) +- **deps:** update dependency @auth/core to ^0.37.3 ([#1416](https://github.com/homarr-labs/homarr/issues/1416)) ([7a07f57](https://github.com/homarr-labs/homarr/commit/7a07f57d0c34fb2c5e98680b351254ab32e9a593)) +- **deps:** update dependency @auth/core to ^0.37.4 ([#1492](https://github.com/homarr-labs/homarr/issues/1492)) ([d4f0aa7](https://github.com/homarr-labs/homarr/commit/d4f0aa761d95cb2b7f72787b95b0033faba072c3)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.5.0 ([#30](https://github.com/homarr-labs/homarr/issues/30)) ([191d773](https://github.com/homarr-labs/homarr/commit/191d773aaf55209d67be841e4f24f24e6439ca85)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.6.3 ([#52](https://github.com/homarr-labs/homarr/issues/52)) ([6797cca](https://github.com/homarr-labs/homarr/commit/6797cca25945da5944966622c0cba5a9e0a263fa)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.7.0 ([#90](https://github.com/homarr-labs/homarr/issues/90)) ([1139352](https://github.com/homarr-labs/homarr/commit/11393525d9bfc192818c1ef2d80c3d41f56fcca3)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.8.0 ([#170](https://github.com/homarr-labs/homarr/issues/170)) ([50fd4c1](https://github.com/homarr-labs/homarr/commit/50fd4c17adfac217d7908d612fe10ee97171edac)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.8.1 ([#267](https://github.com/homarr-labs/homarr/issues/267)) ([98a8eaa](https://github.com/homarr-labs/homarr/commit/98a8eaac0950e53864cb87ee722f353df6c56c56)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.8.2 ([#293](https://github.com/homarr-labs/homarr/issues/293)) ([fbc69f6](https://github.com/homarr-labs/homarr/commit/fbc69f6078ddae657646247db77c425773ab5170)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.9.0 ([#328](https://github.com/homarr-labs/homarr/issues/328)) ([7fb0dec](https://github.com/homarr-labs/homarr/commit/7fb0decd5bde0855a191c69f52f426d104bf7151)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.1.0 ([#474](https://github.com/homarr-labs/homarr/issues/474)) ([82d41ab](https://github.com/homarr-labs/homarr/commit/82d41abf460556ce62f04a700d47208201bdd595)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.2.0 ([#604](https://github.com/homarr-labs/homarr/issues/604)) ([2e044ac](https://github.com/homarr-labs/homarr/commit/2e044ac871fb451160b0619ee430eba3f962c668)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.3.0 ([#694](https://github.com/homarr-labs/homarr/issues/694)) ([4291bde](https://github.com/homarr-labs/homarr/commit/4291bde94f6017c92d44dce50cb795d46f54f9c6)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.4.1 ([#701](https://github.com/homarr-labs/homarr/issues/701)) ([324a643](https://github.com/homarr-labs/homarr/commit/324a643fd1abad4b98bcd14934e4bd23f04e8260)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.4.2 ([#877](https://github.com/homarr-labs/homarr/issues/877)) ([37309e0](https://github.com/homarr-labs/homarr/commit/37309e07279ad46cb3e9e4a29033966d5a34d00a)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.5.0 ([#1130](https://github.com/homarr-labs/homarr/issues/1130)) ([929054d](https://github.com/homarr-labs/homarr/commit/929054d5bddd9863671227c2bc71e07ff4b197be)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.5.1 ([#1177](https://github.com/homarr-labs/homarr/issues/1177)) ([4e431b4](https://github.com/homarr-labs/homarr/commit/4e431b4f8971f18387f84553d1e644980733b383)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.5.2 ([#1181](https://github.com/homarr-labs/homarr/issues/1181)) ([17d6229](https://github.com/homarr-labs/homarr/commit/17d6229a0fadb56f2522256a03e15cca3fb7948e)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.5.3 ([#1194](https://github.com/homarr-labs/homarr/issues/1194)) ([adb59b2](https://github.com/homarr-labs/homarr/commit/adb59b292bd5b6df50c60eac17b2a77d3d28696c)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.6.0 ([#1251](https://github.com/homarr-labs/homarr/issues/1251)) ([9c5ca6f](https://github.com/homarr-labs/homarr/commit/9c5ca6f9069f8b6089212638009d098b3d76298c)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.6.1 ([#1258](https://github.com/homarr-labs/homarr/issues/1258)) ([dea6254](https://github.com/homarr-labs/homarr/commit/dea62547e0f51b6607eef5d278202081e6100509)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.0 ([#1273](https://github.com/homarr-labs/homarr/issues/1273)) ([a44ead0](https://github.com/homarr-labs/homarr/commit/a44ead09a39ff3d83d646622f29b4c236d078dc4)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.1 ([#1324](https://github.com/homarr-labs/homarr/issues/1324)) ([b1393fa](https://github.com/homarr-labs/homarr/commit/b1393fa59b35d84968fd5d6ecddb29e3c22b4aa3)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.2 ([#1339](https://github.com/homarr-labs/homarr/issues/1339)) ([c5cc21a](https://github.com/homarr-labs/homarr/commit/c5cc21a4b0537d2396ba8fe79eaeff0a008a5e75)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.3 ([#1417](https://github.com/homarr-labs/homarr/issues/1417)) ([b45eeb9](https://github.com/homarr-labs/homarr/commit/b45eeb95e94b1288bb97b45b1dd6eca3728cde72)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.4 ([#1493](https://github.com/homarr-labs/homarr/issues/1493)) ([e9a74a0](https://github.com/homarr-labs/homarr/commit/e9a74a01b900f083143b93c8df73fcaa98009ea0)) +- **deps:** update dependency @auth/drizzle-adapter to v1 ([#359](https://github.com/homarr-labs/homarr/issues/359)) ([ea528ea](https://github.com/homarr-labs/homarr/commit/ea528ea076fec672d7ee57a23ee66244d987f103)) +- **deps:** update dependency @ctrl/deluge to ^7.1.0 ([#1776](https://github.com/homarr-labs/homarr/issues/1776)) ([ecae80d](https://github.com/homarr-labs/homarr/commit/ecae80d741213f12ff08f87992cc4d906cbe0085)) +- **deps:** update dependency @ctrl/deluge to v7 ([#1468](https://github.com/homarr-labs/homarr/issues/1468)) ([70f9dc5](https://github.com/homarr-labs/homarr/commit/70f9dc54606d2518afdd5cef84f6623cfdfa8fd3)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.1.0 ([#1466](https://github.com/homarr-labs/homarr/issues/1466)) ([27931be](https://github.com/homarr-labs/homarr/commit/27931be9825a0ee1a4942abb560127c4e2286aa4)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.2.0 ([#1768](https://github.com/homarr-labs/homarr/issues/1768)) ([8b416a6](https://github.com/homarr-labs/homarr/commit/8b416a6dd354b22a3e4f527b793dde2c538b1e6a)) +- **deps:** update dependency @ctrl/transmission to ^7.1.0 ([#1467](https://github.com/homarr-labs/homarr/issues/1467)) ([f220bb6](https://github.com/homarr-labs/homarr/commit/f220bb62445219f9d010e9a28bcb78789a63d368)) +- **deps:** update dependency @ctrl/transmission to ^7.2.0 ([#1777](https://github.com/homarr-labs/homarr/issues/1777)) ([3e2ffbd](https://github.com/homarr-labs/homarr/commit/3e2ffbd7bf2793ff58136ed75b38e0d96b4a5ca8)) +- **deps:** update dependency @ctrl/transmission to v7 ([#1103](https://github.com/homarr-labs/homarr/issues/1103)) ([5986160](https://github.com/homarr-labs/homarr/commit/59861602652a5717e74a342059cd403151d8a6fd)) +- **deps:** update dependency @dnd-kit/core to ^6.2.0 ([#1534](https://github.com/homarr-labs/homarr/issues/1534)) ([5a3d974](https://github.com/homarr-labs/homarr/commit/5a3d9745d985cccca69f9bbfdf0d0ee922de8cbc)) +- **deps:** update dependency @dnd-kit/core to ^6.3.0 ([#1608](https://github.com/homarr-labs/homarr/issues/1608)) ([6c7cdb3](https://github.com/homarr-labs/homarr/commit/6c7cdb3adb6178888e4e3a5e328433f19803cd29)) +- **deps:** update dependency @dnd-kit/core to ^6.3.1 ([#1613](https://github.com/homarr-labs/homarr/issues/1613)) ([79d52b6](https://github.com/homarr-labs/homarr/commit/79d52b690533973e8ff00a1b4920c3f2cbcd417b)) +- **deps:** update dependency @dnd-kit/sortable to v10 ([#1609](https://github.com/homarr-labs/homarr/issues/1609)) ([1037a74](https://github.com/homarr-labs/homarr/commit/1037a747ea0c6e59fc2efb6562c49d4a3bca7465)) +- **deps:** update dependency @dnd-kit/sortable to v9 ([#1535](https://github.com/homarr-labs/homarr/issues/1535)) ([b68977c](https://github.com/homarr-labs/homarr/commit/b68977c52c84ae9742fd52b554d4838409ab76a6)) +- **deps:** update dependency @drizzle-team/brocli to ^0.10.0 ([#937](https://github.com/homarr-labs/homarr/issues/937)) ([a80b49a](https://github.com/homarr-labs/homarr/commit/a80b49a03e8174a1c4ae7e7abc8c9d32939946b6)) +- **deps:** update dependency @drizzle-team/brocli to ^0.10.1 ([#974](https://github.com/homarr-labs/homarr/issues/974)) ([ba3f173](https://github.com/homarr-labs/homarr/commit/ba3f1739f4be88b84f7c782936fc5c91bfa49fae)) +- **deps:** update dependency @drizzle-team/brocli to ^0.10.2 ([#1380](https://github.com/homarr-labs/homarr/issues/1380)) ([8d2d151](https://github.com/homarr-labs/homarr/commit/8d2d151787b4596e2af79e00345fc1ba40884535)) +- **deps:** update dependency @drizzle-team/brocli to ^0.11.0 ([#1427](https://github.com/homarr-labs/homarr/issues/1427)) ([e332a6f](https://github.com/homarr-labs/homarr/commit/e332a6fcbe719defc29f0ba7ada88fb3434784d9)) +- **deps:** update dependency @homarr/gridstack to v1.0.2 ([#542](https://github.com/homarr-labs/homarr/issues/542)) ([1569862](https://github.com/homarr-labs/homarr/commit/1569862baf77b3a8475c4aacc6f7ae5774be09cd)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.2.0 ([#227](https://github.com/homarr-labs/homarr/issues/227)) ([179ceae](https://github.com/homarr-labs/homarr/commit/179ceaebf05f53c434e245d1eb7b95a5be3c4d96)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.2.1 ([#243](https://github.com/homarr-labs/homarr/issues/243)) ([c5428ef](https://github.com/homarr-labs/homarr/commit/c5428efd60fa5217c7191bc3404cac420e9539be)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.3.0 ([#718](https://github.com/homarr-labs/homarr/issues/718)) ([7a14c25](https://github.com/homarr-labs/homarr/commit/7a14c255be48b9b8e92f7918f6af68a211e2666e)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.3.1 ([#784](https://github.com/homarr-labs/homarr/issues/784)) ([0a4ff4b](https://github.com/homarr-labs/homarr/commit/0a4ff4b883a40970e4d4b733aa096929ae6ec11a)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.4.0 ([#1441](https://github.com/homarr-labs/homarr/issues/1441)) ([7cd3156](https://github.com/homarr-labs/homarr/commit/7cd3156bd627b983ebe7eba4ace82535b8a5e913)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.4.1 ([#1936](https://github.com/homarr-labs/homarr/issues/1936)) ([1e406a8](https://github.com/homarr-labs/homarr/commit/1e406a8a58ebdf51f59b5aa0e079baf46c6d02cf)) +- **deps:** update dependency @jellyfin/sdk to ^0.11.0 ([#1384](https://github.com/homarr-labs/homarr/issues/1384)) ([7a4c9a9](https://github.com/homarr-labs/homarr/commit/7a4c9a9b2e72247577a61285546b0f74f5055d53)) +- **deps:** update dependency @million/lint to v1.0.0 ([#1212](https://github.com/homarr-labs/homarr/issues/1212)) ([b3f6645](https://github.com/homarr-labs/homarr/commit/b3f6645783bc4132480669113dfddac0939c5aeb)) +- **deps:** update dependency @million/lint to v1.0.10 ([#1293](https://github.com/homarr-labs/homarr/issues/1293)) ([ed52b26](https://github.com/homarr-labs/homarr/commit/ed52b26f6d6938d653527af94f341c3b5a69e093)) +- **deps:** update dependency @million/lint to v1.0.11 ([#1294](https://github.com/homarr-labs/homarr/issues/1294)) ([c707b4b](https://github.com/homarr-labs/homarr/commit/c707b4b10ff38e6cf299a503bd8176313d47f3ff)) +- **deps:** update dependency @million/lint to v1.0.12 ([#1459](https://github.com/homarr-labs/homarr/issues/1459)) ([ce32b48](https://github.com/homarr-labs/homarr/commit/ce32b4839d5074a38922c8bff389524d3e4619f4)) +- **deps:** update dependency @million/lint to v1.0.13 ([#1557](https://github.com/homarr-labs/homarr/issues/1557)) ([f2268c8](https://github.com/homarr-labs/homarr/commit/f2268c8041955c39206b1b8373278f170f76eae0)) +- **deps:** update dependency @million/lint to v1.0.14 ([#1647](https://github.com/homarr-labs/homarr/issues/1647)) ([4c7058b](https://github.com/homarr-labs/homarr/commit/4c7058b159858f3873aaf5dd95d5581696b3f30f)) +- **deps:** update dependency @million/lint to v1.0.7 ([#1225](https://github.com/homarr-labs/homarr/issues/1225)) ([770a0d6](https://github.com/homarr-labs/homarr/commit/770a0d63f9bab2f06e859bebe525ab9b222a5351)) +- **deps:** update dependency @million/lint to v1.0.8 ([#1231](https://github.com/homarr-labs/homarr/issues/1231)) ([547287d](https://github.com/homarr-labs/homarr/commit/547287dba1d37858f5406011bcbed20cbce08c9a)) +- **deps:** update dependency @million/lint to v1.0.9 ([#1255](https://github.com/homarr-labs/homarr/issues/1255)) ([1d281c0](https://github.com/homarr-labs/homarr/commit/1d281c0cc947612b21f65a1beca41e37a81403b0)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.10.1 ([#375](https://github.com/homarr-labs/homarr/issues/375)) ([73a72dc](https://github.com/homarr-labs/homarr/commit/73a72dc6755ee39fb1282ddde347a84d6aa8419f)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.11.0 ([#851](https://github.com/homarr-labs/homarr/issues/851)) ([88e5ac2](https://github.com/homarr-labs/homarr/commit/88e5ac2f71ed21e9a99969210b293e51d34b5106)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.11.1 ([#1029](https://github.com/homarr-labs/homarr/issues/1029)) ([e193c1c](https://github.com/homarr-labs/homarr/commit/e193c1c6f52c3a3e0072262227af82481d71b088)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.8.0 ([#31](https://github.com/homarr-labs/homarr/issues/31)) ([f8a3aae](https://github.com/homarr-labs/homarr/commit/f8a3aae1163d1b5d645e7e9fe0228846a856d4e6)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.9.2 ([#69](https://github.com/homarr-labs/homarr/issues/69)) ([11d1568](https://github.com/homarr-labs/homarr/commit/11d15687149f2bf55aba1999f368436b15b4a9ce)) +- **deps:** update dependency @tabler/icons-react to ^2.47.0 ([#32](https://github.com/homarr-labs/homarr/issues/32)) ([6a892e0](https://github.com/homarr-labs/homarr/commit/6a892e02c8aadcbfb192a65b56543ee27a3dc966)) +- **deps:** update dependency @tabler/icons-react to ^3.0.3 ([#229](https://github.com/homarr-labs/homarr/issues/229)) ([64354e4](https://github.com/homarr-labs/homarr/commit/64354e4b43ce4c7e9e2f1c816e2af8e3c15d905b)) +- **deps:** update dependency @tabler/icons-react to ^3.1.0 ([#236](https://github.com/homarr-labs/homarr/issues/236)) ([333aaf3](https://github.com/homarr-labs/homarr/commit/333aaf34dc85d24b9f7cf6451d65f566369ffa21)) +- **deps:** update dependency @tabler/icons-react to ^3.10.0 ([#769](https://github.com/homarr-labs/homarr/issues/769)) ([bf70143](https://github.com/homarr-labs/homarr/commit/bf70143ccab2ef6a35d739279af91c51e0be72e4)) +- **deps:** update dependency @tabler/icons-react to ^3.11.0 ([#818](https://github.com/homarr-labs/homarr/issues/818)) ([30669d2](https://github.com/homarr-labs/homarr/commit/30669d23e32974cbea3881fe2a0712985f59394d)) +- **deps:** update dependency @tabler/icons-react to ^3.12.0 ([#944](https://github.com/homarr-labs/homarr/issues/944)) ([21c0e4b](https://github.com/homarr-labs/homarr/commit/21c0e4b35471071cd73472a116f42550a4b7a509)) +- **deps:** update dependency @tabler/icons-react to ^3.13.0 ([#1034](https://github.com/homarr-labs/homarr/issues/1034)) ([2ea0d04](https://github.com/homarr-labs/homarr/commit/2ea0d04c71087bf56fd85c36955ba62ccf78e94b)) +- **deps:** update dependency @tabler/icons-react to ^3.14.0 ([#1039](https://github.com/homarr-labs/homarr/issues/1039)) ([961fca0](https://github.com/homarr-labs/homarr/commit/961fca0f647e569ee87a787d58e36c3c5f4fdedb)) +- **deps:** update dependency @tabler/icons-react to ^3.15.0 ([#1085](https://github.com/homarr-labs/homarr/issues/1085)) ([7b6301e](https://github.com/homarr-labs/homarr/commit/7b6301e498d608099f462b30177e8067bb0647b3)) +- **deps:** update dependency @tabler/icons-react to ^3.16.0 ([#1096](https://github.com/homarr-labs/homarr/issues/1096)) ([18c1da4](https://github.com/homarr-labs/homarr/commit/18c1da4a6296aadda9e9ecd88f112c1302b3e3ee)) +- **deps:** update dependency @tabler/icons-react to ^3.17.0 ([#1126](https://github.com/homarr-labs/homarr/issues/1126)) ([6685f4c](https://github.com/homarr-labs/homarr/commit/6685f4c8060867ec32e28c8ddfa351791feeaa53)) +- **deps:** update dependency @tabler/icons-react to ^3.18.0 ([#1188](https://github.com/homarr-labs/homarr/issues/1188)) ([1bce7a3](https://github.com/homarr-labs/homarr/commit/1bce7a300d616ad05dcf191a859af2bb665a41dd)) +- **deps:** update dependency @tabler/icons-react to ^3.19.0 ([#1197](https://github.com/homarr-labs/homarr/issues/1197)) ([8aaa4f5](https://github.com/homarr-labs/homarr/commit/8aaa4f5856ccac86ddd0e1e5ce3fc0178fda9597)) +- **deps:** update dependency @tabler/icons-react to ^3.2.0 ([#342](https://github.com/homarr-labs/homarr/issues/342)) ([c40533e](https://github.com/homarr-labs/homarr/commit/c40533e758ee60709a42b54e41345583cab40e51)) +- **deps:** update dependency @tabler/icons-react to ^3.20.0 ([#1359](https://github.com/homarr-labs/homarr/issues/1359)) ([30d4464](https://github.com/homarr-labs/homarr/commit/30d4464067583632bd9549b703dd886cac61a3f2)) +- **deps:** update dependency @tabler/icons-react to ^3.21.0 ([#1382](https://github.com/homarr-labs/homarr/issues/1382)) ([958c62c](https://github.com/homarr-labs/homarr/commit/958c62c92689ccdb466f7760dd053ca5f51099dc)) +- **deps:** update dependency @tabler/icons-react to ^3.22.0 ([#1471](https://github.com/homarr-labs/homarr/issues/1471)) ([a1fddaa](https://github.com/homarr-labs/homarr/commit/a1fddaa6a61fdcbc892e704bea8a0a0b73ab1e1e)) +- **deps:** update dependency @tabler/icons-react to ^3.23.0 ([#1566](https://github.com/homarr-labs/homarr/issues/1566)) ([fd42bde](https://github.com/homarr-labs/homarr/commit/fd42bde76ddf46f51f787cab832636f33187b006)) +- **deps:** update dependency @tabler/icons-react to ^3.24.0 ([#1587](https://github.com/homarr-labs/homarr/issues/1587)) ([23cc465](https://github.com/homarr-labs/homarr/commit/23cc4659c4cd14e7f95253e56fddd3a010d908c1)) +- **deps:** update dependency @tabler/icons-react to ^3.26.0 ([#1667](https://github.com/homarr-labs/homarr/issues/1667)) ([8c596bf](https://github.com/homarr-labs/homarr/commit/8c596bf5fa9119bd22375f2fc8408ebac8eb0bcb)) +- **deps:** update dependency @tabler/icons-react to ^3.27.1 ([#1875](https://github.com/homarr-labs/homarr/issues/1875)) ([e46b1c4](https://github.com/homarr-labs/homarr/commit/e46b1c49f9bb1320f82b2de0585f7e2c7bc72c54)) +- **deps:** update dependency @tabler/icons-react to ^3.28.1 ([#1891](https://github.com/homarr-labs/homarr/issues/1891)) ([ffdc8d3](https://github.com/homarr-labs/homarr/commit/ffdc8d34960dea0172c50a1d93a4cd14997b13ac)) +- **deps:** update dependency @tabler/icons-react to ^3.3.0 ([#405](https://github.com/homarr-labs/homarr/issues/405)) ([46bb3ee](https://github.com/homarr-labs/homarr/commit/46bb3ee0c98f1a0c24ef1111d5ffd86b0446c9f1)) +- **deps:** update dependency @tabler/icons-react to ^3.4.0 ([#501](https://github.com/homarr-labs/homarr/issues/501)) ([3fe1a19](https://github.com/homarr-labs/homarr/commit/3fe1a19e378810c86f4526d218758becd71bbe9f)) +- **deps:** update dependency @tabler/icons-react to ^3.5.0 ([#532](https://github.com/homarr-labs/homarr/issues/532)) ([63f7431](https://github.com/homarr-labs/homarr/commit/63f743175edbc2d46c6eb0cb7f7a41e8007cd038)) +- **deps:** update dependency @tabler/icons-react to ^3.6.0 ([#664](https://github.com/homarr-labs/homarr/issues/664)) ([e4c6864](https://github.com/homarr-labs/homarr/commit/e4c6864a94fc0dc0449249043b2cf8037783c99f)) +- **deps:** update dependency @tabler/icons-react to ^3.7.0 ([#715](https://github.com/homarr-labs/homarr/issues/715)) ([6a3a846](https://github.com/homarr-labs/homarr/commit/6a3a8465e701aa4449d9993151ebace0f71542b2)) +- **deps:** update dependency @tabler/icons-react to ^3.8.0 ([#737](https://github.com/homarr-labs/homarr/issues/737)) ([e12531c](https://github.com/homarr-labs/homarr/commit/e12531ccccfdfafd21c6cb62533b1c4752a13e80)) +- **deps:** update dependency @tabler/icons-react to ^3.9.0 ([#745](https://github.com/homarr-labs/homarr/issues/745)) ([75e5a6c](https://github.com/homarr-labs/homarr/commit/75e5a6c42ff41b72b1d86fcac61f7d8c89ac337d)) +- **deps:** update dependency @tabler/icons-react to v3 ([#215](https://github.com/homarr-labs/homarr/issues/215)) ([1c222ed](https://github.com/homarr-labs/homarr/commit/1c222ed89cd53dccc41445631f777424705a444a)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.21.0 ([#101](https://github.com/homarr-labs/homarr/issues/101)) ([4ea1d14](https://github.com/homarr-labs/homarr/commit/4ea1d14966aebf7477fdfebce0e1bf3833ac70c2)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.21.5 ([#130](https://github.com/homarr-labs/homarr/issues/130)) ([dbf02c6](https://github.com/homarr-labs/homarr/commit/dbf02c62641e541682a39ebd5bba4a4cc87d94ab)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.54.0 ([#1060](https://github.com/homarr-labs/homarr/issues/1060)) ([6ea4a74](https://github.com/homarr-labs/homarr/commit/6ea4a74675b271573e25fb88d8ecd62f9f83be12)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.58.0 ([#1175](https://github.com/homarr-labs/homarr/issues/1175)) ([e2414f5](https://github.com/homarr-labs/homarr/commit/e2414f5e9f6cca92e43a7c8e551cd84d73925db6)) +- **deps:** update dependency @tanstack/react-query-next-experimental to v5.41.0 ([#639](https://github.com/homarr-labs/homarr/issues/639)) ([38c32cb](https://github.com/homarr-labs/homarr/commit/38c32cbece6e400482d1fd69c7b6bcf971224848)) +- **deps:** update dependency @tanstack/react-query-next-experimental to v5.46.0 ([#699](https://github.com/homarr-labs/homarr/issues/699)) ([8d7a7bc](https://github.com/homarr-labs/homarr/commit/8d7a7bc9b1d8051be6a879cecb405934e508fc21)) +- **deps:** update dependency @trpc/client to v11.0.0-next-beta.318 ([#234](https://github.com/homarr-labs/homarr/issues/234)) ([ab55a13](https://github.com/homarr-labs/homarr/commit/ab55a1357dec7bbd8b9ce68d635f89078954d091)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.330 ([#288](https://github.com/homarr-labs/homarr/issues/288)) ([d8d25d5](https://github.com/homarr-labs/homarr/commit/d8d25d50379aa4b4514e61418a8bdf0430063256)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.332 ([#308](https://github.com/homarr-labs/homarr/issues/308)) ([50c1624](https://github.com/homarr-labs/homarr/commit/50c162444c45c954755fcca22bed6e3d1443f950)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.334 ([#334](https://github.com/homarr-labs/homarr/issues/334)) ([ed5e5d1](https://github.com/homarr-labs/homarr/commit/ed5e5d1edcbd5d0d8cefa9664ebe0f3d08ae1499)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.345 ([#351](https://github.com/homarr-labs/homarr/issues/351)) ([0ba6455](https://github.com/homarr-labs/homarr/commit/0ba64559829f2257d3ce59493e9ed9d012f88bce)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.354 ([#368](https://github.com/homarr-labs/homarr/issues/368)) ([d88b6de](https://github.com/homarr-labs/homarr/commit/d88b6def759bf8a4980aa67e7fa652be7def8c95)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.359 ([#394](https://github.com/homarr-labs/homarr/issues/394)) ([47accae](https://github.com/homarr-labs/homarr/commit/47accae90d7d56c5aa1ea33d74350addd2038a10)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.361 ([#404](https://github.com/homarr-labs/homarr/issues/404)) ([6dff7c4](https://github.com/homarr-labs/homarr/commit/6dff7c48e2622a1e0df1c3f8ab86450a0899d395)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.362 ([#407](https://github.com/homarr-labs/homarr/issues/407)) ([0020680](https://github.com/homarr-labs/homarr/commit/0020680ca097b82ade46fc7e82c83d0da60d6e1c)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.364 ([#409](https://github.com/homarr-labs/homarr/issues/409)) ([7bc7bd6](https://github.com/homarr-labs/homarr/commit/7bc7bd6bf9dbdeaeb6b62d35cb7fb3db6074245f)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.366 ([#454](https://github.com/homarr-labs/homarr/issues/454)) ([1172d84](https://github.com/homarr-labs/homarr/commit/1172d842235cf8e01279dc2ee44360b0773b3b20)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.373 ([#493](https://github.com/homarr-labs/homarr/issues/493)) ([1abf441](https://github.com/homarr-labs/homarr/commit/1abf441cdba8a8f3a32600c197d1e414fb41f655)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.374 ([#522](https://github.com/homarr-labs/homarr/issues/522)) ([eb0db3e](https://github.com/homarr-labs/homarr/commit/eb0db3ec4efc7d07bdb24dac6299d61b3164f666)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.377 ([#553](https://github.com/homarr-labs/homarr/issues/553)) ([abdf9bc](https://github.com/homarr-labs/homarr/commit/abdf9bc122cddb7b97ec48a8aacca27b382c02a3)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.382 ([#568](https://github.com/homarr-labs/homarr/issues/568)) ([e448eeb](https://github.com/homarr-labs/homarr/commit/e448eeb0a62a91aeab31547055cc7b94b5de9bcb)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.383 ([#608](https://github.com/homarr-labs/homarr/issues/608)) ([869efbc](https://github.com/homarr-labs/homarr/commit/869efbc6388bcd48b49d6f2b27f7e2609855ceab)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.390 ([#609](https://github.com/homarr-labs/homarr/issues/609)) ([812b8d8](https://github.com/homarr-labs/homarr/commit/812b8d8306672b99d2bfe5f0284bc92a585f8284)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.394 ([#626](https://github.com/homarr-labs/homarr/issues/626)) ([5bf1ddd](https://github.com/homarr-labs/homarr/commit/5bf1ddde4b509373a641f29c480b60598ada7bd9)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.396 ([#634](https://github.com/homarr-labs/homarr/issues/634)) ([475f472](https://github.com/homarr-labs/homarr/commit/475f472cb0885bf70133e08f3bde08830476ce39)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.401 ([#648](https://github.com/homarr-labs/homarr/issues/648)) ([84851db](https://github.com/homarr-labs/homarr/commit/84851db333a08ecc7d7255e0a2300e45d50a446b)) +- **deps:** update dependency @typescript-eslint/eslint-plugin to ^7.4.0 ([#271](https://github.com/homarr-labs/homarr/issues/271)) ([dd7f04e](https://github.com/homarr-labs/homarr/commit/dd7f04e3955644dcac7acf4446b454aaaa7ee387)) +- **deps:** update dependency @typescript-eslint/parser to ^7.4.0 ([#270](https://github.com/homarr-labs/homarr/issues/270)) ([c4a4452](https://github.com/homarr-labs/homarr/commit/c4a445283901128a738af553f54a912a48661f1d)) +- **deps:** update dependency @umami/node to ^0.4.0 ([#1000](https://github.com/homarr-labs/homarr/issues/1000)) ([72aed22](https://github.com/homarr-labs/homarr/commit/72aed221254b3bcfdaad3f26b2984ddbf7e4e152)) +- **deps:** update dependency better-sqlite3 to ^10.1.0 ([#584](https://github.com/homarr-labs/homarr/issues/584)) ([6d46e91](https://github.com/homarr-labs/homarr/commit/6d46e91a7cbbe6a892453c040da8b7b841d9ad2c)) +- **deps:** update dependency better-sqlite3 to ^11.1.1 ([#720](https://github.com/homarr-labs/homarr/issues/720)) ([c8d4461](https://github.com/homarr-labs/homarr/commit/c8d4461ab82b57c4719fcc805d75caac7db381ee)) +- **deps:** update dependency better-sqlite3 to ^11.1.2 ([#736](https://github.com/homarr-labs/homarr/issues/736)) ([6aecd1a](https://github.com/homarr-labs/homarr/commit/6aecd1a713575374b49253e074e4c1d52db58b77)) +- **deps:** update dependency better-sqlite3 to ^11.2.0 ([#1004](https://github.com/homarr-labs/homarr/issues/1004)) ([4e6437a](https://github.com/homarr-labs/homarr/commit/4e6437a180e3c25e6265803f2179d9caf119b64d)) +- **deps:** update dependency better-sqlite3 to ^11.2.1 ([#1006](https://github.com/homarr-labs/homarr/issues/1006)) ([051d57b](https://github.com/homarr-labs/homarr/commit/051d57bb399cea562f89b52a179d77c6bc90a3fc)) +- **deps:** update dependency better-sqlite3 to ^11.3.0 ([#1092](https://github.com/homarr-labs/homarr/issues/1092)) ([ed0c613](https://github.com/homarr-labs/homarr/commit/ed0c6136e61c46a9b90c5bbd1a85abbf4dfb68f5)) +- **deps:** update dependency better-sqlite3 to ^11.4.0 ([#1320](https://github.com/homarr-labs/homarr/issues/1320)) ([601af7a](https://github.com/homarr-labs/homarr/commit/601af7acd811a822a7d61d03094a61192e6947ed)) +- **deps:** update dependency better-sqlite3 to ^11.5.0 ([#1350](https://github.com/homarr-labs/homarr/issues/1350)) ([d599390](https://github.com/homarr-labs/homarr/commit/d599390512a169e15a4f9a1bff5f45eaf2e18834)) +- **deps:** update dependency better-sqlite3 to ^11.6.0 ([#1548](https://github.com/homarr-labs/homarr/issues/1548)) ([93aedd9](https://github.com/homarr-labs/homarr/commit/93aedd994f405a1e60913086900015c94a364962)) +- **deps:** update dependency better-sqlite3 to ^11.7.0 ([#1628](https://github.com/homarr-labs/homarr/issues/1628)) ([753e0ec](https://github.com/homarr-labs/homarr/commit/753e0ecad2f57ca1fa2202a9678ea7c2f1e67c5b)) +- **deps:** update dependency better-sqlite3 to ^11.7.2 ([#1858](https://github.com/homarr-labs/homarr/issues/1858)) ([1f0116d](https://github.com/homarr-labs/homarr/commit/1f0116d725d76845df4b9cce74ef87134edc627a)) +- **deps:** update dependency better-sqlite3 to ^11.8.0 ([#1956](https://github.com/homarr-labs/homarr/issues/1956)) ([34a76c9](https://github.com/homarr-labs/homarr/commit/34a76c98e8358f8b0a92e660a0d46f62b9473cbb)) +- **deps:** update dependency better-sqlite3 to ^9.4.0 ([#33](https://github.com/homarr-labs/homarr/issues/33)) ([00db901](https://github.com/homarr-labs/homarr/commit/00db9018339ae31f07edcd89a023f569aec0dbe5)) +- **deps:** update dependency better-sqlite3 to ^9.4.1 ([#83](https://github.com/homarr-labs/homarr/issues/83)) ([34f06e8](https://github.com/homarr-labs/homarr/commit/34f06e817db014e101e16543cdfc518485990a0d)) +- **deps:** update dependency better-sqlite3 to ^9.4.3 ([#118](https://github.com/homarr-labs/homarr/issues/118)) ([baa541a](https://github.com/homarr-labs/homarr/commit/baa541afa9c2f91bd56ec99bb24fc6cdb585991b)) +- **deps:** update dependency better-sqlite3 to ^9.4.5 ([#302](https://github.com/homarr-labs/homarr/issues/302)) ([7bff8e5](https://github.com/homarr-labs/homarr/commit/7bff8e5148875b72a5218e6856d10249f435b53b)) +- **deps:** update dependency better-sqlite3 to ^9.5.0 ([#335](https://github.com/homarr-labs/homarr/issues/335)) ([48a4b8b](https://github.com/homarr-labs/homarr/commit/48a4b8ba7e6b535fd1828713a0c4fadcbff89ec8)) +- **deps:** update dependency better-sqlite3 to ^9.6.0 ([#386](https://github.com/homarr-labs/homarr/issues/386)) ([45ffbad](https://github.com/homarr-labs/homarr/commit/45ffbadeece8a82dcb1e202e5934335a5d2d8832)) +- **deps:** update dependency better-sqlite3 to v10 ([#479](https://github.com/homarr-labs/homarr/issues/479)) ([f0da1d8](https://github.com/homarr-labs/homarr/commit/f0da1d81a6cd8b425919ffb9460b5f6bbb82ae2a)) +- **deps:** update dependency better-sqlite3 to v11 ([#587](https://github.com/homarr-labs/homarr/issues/587)) ([96150f8](https://github.com/homarr-labs/homarr/commit/96150f802d1c75ed6a10bf05a5f19c259ead581b)) +- **deps:** update dependency chroma-js to ^2.5.0 ([#890](https://github.com/homarr-labs/homarr/issues/890)) ([79cabe6](https://github.com/homarr-labs/homarr/commit/79cabe65801de1c180691f3413ef01939ede14be)) +- **deps:** update dependency chroma-js to ^2.6.0 ([#891](https://github.com/homarr-labs/homarr/issues/891)) ([15171dd](https://github.com/homarr-labs/homarr/commit/15171dd5afd12cbdc459442d2cab0164128381cb)) +- **deps:** update dependency chroma-js to ^3.1.0 ([#1081](https://github.com/homarr-labs/homarr/issues/1081)) ([4f42143](https://github.com/homarr-labs/homarr/commit/4f421433c2fa3918771f9138e45c3b526a6a9396)) +- **deps:** update dependency chroma-js to ^3.1.1 ([#1082](https://github.com/homarr-labs/homarr/issues/1082)) ([6bf0a53](https://github.com/homarr-labs/homarr/commit/6bf0a53d21a47542cceeec93eb90828206f2e81d)) +- **deps:** update dependency chroma-js to ^3.1.2 ([#1289](https://github.com/homarr-labs/homarr/issues/1289)) ([1bc470a](https://github.com/homarr-labs/homarr/commit/1bc470a39feae570a76dc210946ffc18b9bef6ea)) +- **deps:** update dependency chroma-js to v3 ([#992](https://github.com/homarr-labs/homarr/issues/992)) ([3eb9096](https://github.com/homarr-labs/homarr/commit/3eb90968ac8e5de059b3e14c0736433b005f5409)) +- **deps:** update dependency dayjs to ^1.11.11 ([#393](https://github.com/homarr-labs/homarr/issues/393)) ([03c2993](https://github.com/homarr-labs/homarr/commit/03c2993611e992cb24a142f050bdcd763c7813e2)) +- **deps:** update dependency dayjs to ^1.11.12 ([#832](https://github.com/homarr-labs/homarr/issues/832)) ([5c92f6a](https://github.com/homarr-labs/homarr/commit/5c92f6a3cc1febf9d96e394f54d2f5f94d9ab52e)) +- **deps:** update dependency dayjs to ^1.11.13 ([#1001](https://github.com/homarr-labs/homarr/issues/1001)) ([27d08ba](https://github.com/homarr-labs/homarr/commit/27d08baa2d6f82f521dc46a359ce3d24f1ac857a)) +- **deps:** update dependency dockerode to ^4.0.3 ([#1854](https://github.com/homarr-labs/homarr/issues/1854)) ([92f4f94](https://github.com/homarr-labs/homarr/commit/92f4f9421e8f693e6546716f5f04922161e29cdc)) +- **deps:** update dependency dotenv to ^16.4.6 ([#1588](https://github.com/homarr-labs/homarr/issues/1588)) ([716a2ab](https://github.com/homarr-labs/homarr/commit/716a2ab9d1f949748a39858daa330e9df32597fa)) +- **deps:** update dependency dotenv to ^16.4.7 ([#1597](https://github.com/homarr-labs/homarr/issues/1597)) ([31cc1ab](https://github.com/homarr-labs/homarr/commit/31cc1abb51c8867f8f9934815f24de5e190f3142)) +- **deps:** update dependency drizzle-kit to ^0.20.16 ([#362](https://github.com/homarr-labs/homarr/issues/362)) ([f58d0dd](https://github.com/homarr-labs/homarr/commit/f58d0ddd94633468872ccd93f908e39f0ccc9337)) +- **deps:** update dependency drizzle-kit to ^0.20.17 ([#367](https://github.com/homarr-labs/homarr/issues/367)) ([04a3131](https://github.com/homarr-labs/homarr/commit/04a313186f63c4810fdc4f062a94aedf77bf526b)) +- **deps:** update dependency drizzle-kit to ^0.20.18 ([#449](https://github.com/homarr-labs/homarr/issues/449)) ([5eb1d71](https://github.com/homarr-labs/homarr/commit/5eb1d716ded4fb1529e35afa0741646874b74a43)) +- **deps:** update dependency drizzle-kit to ^0.21.1 ([#462](https://github.com/homarr-labs/homarr/issues/462)) ([1ce6fb0](https://github.com/homarr-labs/homarr/commit/1ce6fb0d0fd3f2770ea2a2f3dec7104b03e2e4ff)) +- **deps:** update dependency drizzle-kit to ^0.21.2 ([#495](https://github.com/homarr-labs/homarr/issues/495)) ([8166fdb](https://github.com/homarr-labs/homarr/commit/8166fdb8e22842125933e93325c27fd561f5df02)) +- **deps:** update dependency drizzle-kit to ^0.21.4 ([#535](https://github.com/homarr-labs/homarr/issues/535)) ([56b6d76](https://github.com/homarr-labs/homarr/commit/56b6d76f43e7cfaac080d029a68a55eb243970e7)) +- **deps:** update dependency drizzle-kit to ^0.22.0 ([#588](https://github.com/homarr-labs/homarr/issues/588)) ([d16281b](https://github.com/homarr-labs/homarr/commit/d16281bea7f71bb6ed3292bc47ed3b2d0103e814)) +- **deps:** update dependency drizzle-kit to ^0.22.1 ([#590](https://github.com/homarr-labs/homarr/issues/590)) ([51fb7cb](https://github.com/homarr-labs/homarr/commit/51fb7cb402e45ee9f9bebbc153ec1f37fc4d4158)) +- **deps:** update dependency drizzle-kit to ^0.22.2 ([#618](https://github.com/homarr-labs/homarr/issues/618)) ([f5aaf89](https://github.com/homarr-labs/homarr/commit/f5aaf89a3db6e10f2ac07d3ac29300ec81575e61)) +- **deps:** update dependency drizzle-kit to ^0.22.4 ([#625](https://github.com/homarr-labs/homarr/issues/625)) ([dda34e7](https://github.com/homarr-labs/homarr/commit/dda34e7764ace4f20ec9742289987dc43ee2573c)) +- **deps:** update dependency drizzle-kit to ^0.22.5 ([#631](https://github.com/homarr-labs/homarr/issues/631)) ([2462726](https://github.com/homarr-labs/homarr/commit/246272669e2cef242a7ddda2d6bbafe5313ca3ec)) +- **deps:** update dependency drizzle-kit to ^0.22.6 ([#636](https://github.com/homarr-labs/homarr/issues/636)) ([66ddb45](https://github.com/homarr-labs/homarr/commit/66ddb4597530479eac3d1e417d1fabac39ad6d8c)) +- **deps:** update dependency drizzle-kit to ^0.22.7 ([#652](https://github.com/homarr-labs/homarr/issues/652)) ([d985fbe](https://github.com/homarr-labs/homarr/commit/d985fbe69a0c1f57d574bd547567a3cd486174b4)) +- **deps:** update dependency drizzle-kit to ^0.22.8 ([#729](https://github.com/homarr-labs/homarr/issues/729)) ([be100b6](https://github.com/homarr-labs/homarr/commit/be100b610eabb3acbbbe0827dc07e012962c8ad8)) +- **deps:** update dependency drizzle-kit to ^0.23.0 ([#775](https://github.com/homarr-labs/homarr/issues/775)) ([f2c70a4](https://github.com/homarr-labs/homarr/commit/f2c70a4d0b6b827b54a7b12f53c01b1094548c2e)) +- **deps:** update dependency drizzle-kit to ^0.23.1 ([#888](https://github.com/homarr-labs/homarr/issues/888)) ([5f89d93](https://github.com/homarr-labs/homarr/commit/5f89d93db64c5033053da239b6e94c2731958924)) +- **deps:** update dependency drizzle-kit to ^0.23.2 ([#918](https://github.com/homarr-labs/homarr/issues/918)) ([d378ddb](https://github.com/homarr-labs/homarr/commit/d378ddb42bd43971d88b43cb90e24d83d69d9812)) +- **deps:** update dependency drizzle-kit to ^0.24.0 ([#939](https://github.com/homarr-labs/homarr/issues/939)) ([940a489](https://github.com/homarr-labs/homarr/commit/940a4890e26a0c080fb084e6026c0438d9df6914)) +- **deps:** update dependency drizzle-kit to ^0.24.1 ([#1012](https://github.com/homarr-labs/homarr/issues/1012)) ([cd0af7e](https://github.com/homarr-labs/homarr/commit/cd0af7e8f18d0e1b21f28bafd12aaf8bb06009c9)) +- **deps:** update dependency drizzle-kit to ^0.24.2 ([#1033](https://github.com/homarr-labs/homarr/issues/1033)) ([78b45c4](https://github.com/homarr-labs/homarr/commit/78b45c4a5bae9839990b12127fda9c7e15d07b25)) +- **deps:** update dependency drizzle-kit to ^0.25.0 ([#1261](https://github.com/homarr-labs/homarr/issues/1261)) ([635fadf](https://github.com/homarr-labs/homarr/commit/635fadfce9842f6e8bdc2e4757256e8bd27ae868)) +- **deps:** update dependency drizzle-kit to ^0.26.0 ([#1301](https://github.com/homarr-labs/homarr/issues/1301)) ([f2f31b5](https://github.com/homarr-labs/homarr/commit/f2f31b5ee08f1c50ccc125e0ace470c360984350)) +- **deps:** update dependency drizzle-kit to ^0.26.1 ([#1303](https://github.com/homarr-labs/homarr/issues/1303)) ([f50f46d](https://github.com/homarr-labs/homarr/commit/f50f46d4b7b32bbd89073433316f461cd475e367)) +- **deps:** update dependency drizzle-kit to ^0.26.2 ([#1305](https://github.com/homarr-labs/homarr/issues/1305)) ([da13d63](https://github.com/homarr-labs/homarr/commit/da13d6396967419466729b4abd5a839b14a17977)) +- **deps:** update dependency drizzle-kit to ^0.27.0 ([#1389](https://github.com/homarr-labs/homarr/issues/1389)) ([d3f9696](https://github.com/homarr-labs/homarr/commit/d3f9696127d21d75c16b52ed5a661909db54f705)) +- **deps:** update dependency drizzle-kit to ^0.27.1 ([#1395](https://github.com/homarr-labs/homarr/issues/1395)) ([3bfdc2d](https://github.com/homarr-labs/homarr/commit/3bfdc2ded499a465ce5cb078adc83ee71377bb5e)) +- **deps:** update dependency drizzle-kit to ^0.27.2 ([#1437](https://github.com/homarr-labs/homarr/issues/1437)) ([10cebff](https://github.com/homarr-labs/homarr/commit/10cebff4edb1ad9ff61f1a0ff27b6f360db7e05f)) +- **deps:** update dependency drizzle-kit to ^0.28.0 ([#1439](https://github.com/homarr-labs/homarr/issues/1439)) ([c6a1aee](https://github.com/homarr-labs/homarr/commit/c6a1aeef4d2e2939e262912eaa10018b5c1c4d60)) +- **deps:** update dependency drizzle-kit to ^0.28.1 ([#1480](https://github.com/homarr-labs/homarr/issues/1480)) ([acc440b](https://github.com/homarr-labs/homarr/commit/acc440bb8975fee8ce37e9290fbd4b993b6fddc6)) +- **deps:** update dependency drizzle-kit to ^0.29.0 ([#1591](https://github.com/homarr-labs/homarr/issues/1591)) ([a8e045b](https://github.com/homarr-labs/homarr/commit/a8e045b2239202d469c802b00cc4e4528932b8ee)) +- **deps:** update dependency drizzle-kit to ^0.29.1 ([#1603](https://github.com/homarr-labs/homarr/issues/1603)) ([2e23b3d](https://github.com/homarr-labs/homarr/commit/2e23b3dad84ff3eaa57ec26805b75fb271e12027)) +- **deps:** update dependency drizzle-kit to ^0.30.0 ([#1630](https://github.com/homarr-labs/homarr/issues/1630)) ([46ce061](https://github.com/homarr-labs/homarr/commit/46ce06155b4df45f3676998a813f3a7cecdba085)) +- **deps:** update dependency drizzle-kit to ^0.30.1 ([#1651](https://github.com/homarr-labs/homarr/issues/1651)) ([6418dfe](https://github.com/homarr-labs/homarr/commit/6418dfed382c88cdfe3ea0078ee18c5ae04ec721)) +- **deps:** update dependency drizzle-kit to ^0.30.2 ([#1965](https://github.com/homarr-labs/homarr/issues/1965)) ([cb96508](https://github.com/homarr-labs/homarr/commit/cb96508634abe2d225ddb8a0ec1f1760f12e14e8)) +- **deps:** update dependency drizzle-orm to ^0.29.4 ([#150](https://github.com/homarr-labs/homarr/issues/150)) ([4cf505f](https://github.com/homarr-labs/homarr/commit/4cf505f0c50faa74e699a29fd98eab88b20c14e1)) +- **deps:** update dependency drizzle-orm to ^0.29.5 ([#203](https://github.com/homarr-labs/homarr/issues/203)) ([4f41765](https://github.com/homarr-labs/homarr/commit/4f41765f1039daa2dcd8e9e0e26b3569539697f7)) +- **deps:** update dependency drizzle-orm to ^0.30.1 ([#210](https://github.com/homarr-labs/homarr/issues/210)) ([e34161f](https://github.com/homarr-labs/homarr/commit/e34161f33ecc7c58df4c26f383cf827fd663884b)) +- **deps:** update dependency drizzle-orm to ^0.30.10 ([#413](https://github.com/homarr-labs/homarr/issues/413)) ([14d941e](https://github.com/homarr-labs/homarr/commit/14d941e57ad70573954b276816d28e7d341df673)) +- **deps:** update dependency drizzle-orm to ^0.30.2 ([#232](https://github.com/homarr-labs/homarr/issues/232)) ([9046517](https://github.com/homarr-labs/homarr/commit/90465175f9cec9f95e14541e5c94e5eeadfc90a6)) +- **deps:** update dependency drizzle-orm to ^0.30.4 ([#250](https://github.com/homarr-labs/homarr/issues/250)) ([cdc4870](https://github.com/homarr-labs/homarr/commit/cdc4870925944317ff7f5f7ad8fee80433cd4e05)) +- **deps:** update dependency drizzle-orm to ^0.30.6 ([#282](https://github.com/homarr-labs/homarr/issues/282)) ([6ef58be](https://github.com/homarr-labs/homarr/commit/6ef58beead0137128cefe65d8119317572304b35)) +- **deps:** update dependency drizzle-orm to ^0.30.7 ([#303](https://github.com/homarr-labs/homarr/issues/303)) ([362257c](https://github.com/homarr-labs/homarr/commit/362257cf2b6b60027485f59df080bcdb83c3a85e)) +- **deps:** update dependency drizzle-orm to ^0.30.8 ([#339](https://github.com/homarr-labs/homarr/issues/339)) ([f50550b](https://github.com/homarr-labs/homarr/commit/f50550b3e135375e44b77ddc958f8ba3cf17d214)) +- **deps:** update dependency drizzle-orm to ^0.30.9 ([#370](https://github.com/homarr-labs/homarr/issues/370)) ([f5002c3](https://github.com/homarr-labs/homarr/commit/f5002c3265a9318770d9e6d41aa3583e84fc40d9)) +- **deps:** update dependency drizzle-orm to ^0.31.0 ([#589](https://github.com/homarr-labs/homarr/issues/589)) ([3b39e87](https://github.com/homarr-labs/homarr/commit/3b39e87212acedb8904584a3b3d55fbfd1434fd3)) +- **deps:** update dependency drizzle-orm to ^0.31.1 ([#619](https://github.com/homarr-labs/homarr/issues/619)) ([710197b](https://github.com/homarr-labs/homarr/commit/710197b3a02e06be6a60df71a180fd31b913858a)) +- **deps:** update dependency drizzle-orm to ^0.31.2 ([#632](https://github.com/homarr-labs/homarr/issues/632)) ([efd958d](https://github.com/homarr-labs/homarr/commit/efd958d6cbf5ec5dd0951ca33e87489aa5ec5c16)) +- **deps:** update dependency drizzle-orm to ^0.31.3 ([#758](https://github.com/homarr-labs/homarr/issues/758)) ([0a3d1e9](https://github.com/homarr-labs/homarr/commit/0a3d1e9e5e6682b438b5f3782bdaa305068e0cb7)) +- **deps:** update dependency drizzle-orm to ^0.31.4 ([#759](https://github.com/homarr-labs/homarr/issues/759)) ([8d42ca8](https://github.com/homarr-labs/homarr/commit/8d42ca8b5e63071ceaaf731198ee4633e77d96ac)) +- **deps:** update dependency drizzle-orm to ^0.32.0 ([#776](https://github.com/homarr-labs/homarr/issues/776)) ([3da5734](https://github.com/homarr-labs/homarr/commit/3da5734571de98ceaf2a915a56c177b564beedab)) +- **deps:** update dependency drizzle-orm to ^0.32.1 ([#859](https://github.com/homarr-labs/homarr/issues/859)) ([868b7b8](https://github.com/homarr-labs/homarr/commit/868b7b890e7affbb79935dc78eaac463d660e413)) +- **deps:** update dependency drizzle-orm to ^0.32.2 ([#919](https://github.com/homarr-labs/homarr/issues/919)) ([3f35163](https://github.com/homarr-labs/homarr/commit/3f35163481c85f434a60438ea7425a75b4b2285d)) +- **deps:** update dependency drizzle-orm to ^0.33.0 ([#938](https://github.com/homarr-labs/homarr/issues/938)) ([c399d83](https://github.com/homarr-labs/homarr/commit/c399d832e58edce29b5bc657ff10970c50123a85)) +- **deps:** update dependency drizzle-orm to ^0.34.0 ([#1262](https://github.com/homarr-labs/homarr/issues/1262)) ([23ee229](https://github.com/homarr-labs/homarr/commit/23ee229906b3dab7f7b93e93f76c11aa4ca89392)) +- **deps:** update dependency drizzle-orm to ^0.34.1 ([#1268](https://github.com/homarr-labs/homarr/issues/1268)) ([14d1ce8](https://github.com/homarr-labs/homarr/commit/14d1ce842a011dbe84259ba3509d9edfcdf573e0)) +- **deps:** update dependency drizzle-orm to ^0.35.0 ([#1302](https://github.com/homarr-labs/homarr/issues/1302)) ([c6daccb](https://github.com/homarr-labs/homarr/commit/c6daccbdf0b6a531274c0ab86779ec3f946ebf38)) +- **deps:** update dependency drizzle-orm to ^0.35.1 ([#1306](https://github.com/homarr-labs/homarr/issues/1306)) ([c053a37](https://github.com/homarr-labs/homarr/commit/c053a373b48ed6cc2f877c581e03264288bbe751)) +- **deps:** update dependency drizzle-orm to ^0.35.2 ([#1321](https://github.com/homarr-labs/homarr/issues/1321)) ([c8b1bb8](https://github.com/homarr-labs/homarr/commit/c8b1bb8d62e5c608e37cd28a85c0e7fc12eaf102)) +- **deps:** update dependency drizzle-orm to ^0.35.3 ([#1348](https://github.com/homarr-labs/homarr/issues/1348)) ([85a5ebd](https://github.com/homarr-labs/homarr/commit/85a5ebd288807373f38552d09392be184c3a8caf)) +- **deps:** update dependency drizzle-orm to ^0.36.0 ([#1390](https://github.com/homarr-labs/homarr/issues/1390)) ([3c3dbf5](https://github.com/homarr-labs/homarr/commit/3c3dbf51dc2e702a5eb302dac88986d61aba5881)) +- **deps:** update dependency drizzle-orm to ^0.36.1 ([#1440](https://github.com/homarr-labs/homarr/issues/1440)) ([7966476](https://github.com/homarr-labs/homarr/commit/7966476cad956b20940fd4d7d9df004dd886f7ff)) +- **deps:** update dependency drizzle-orm to ^0.36.2 ([#1481](https://github.com/homarr-labs/homarr/issues/1481)) ([9bc5856](https://github.com/homarr-labs/homarr/commit/9bc585648c8926123c718a3c922ad25c2cd7b897)) +- **deps:** update dependency drizzle-orm to ^0.36.3 ([#1487](https://github.com/homarr-labs/homarr/issues/1487)) ([2fb014f](https://github.com/homarr-labs/homarr/commit/2fb014f2df295cc16a01cc613db6d04fc483793c)) +- **deps:** update dependency drizzle-orm to ^0.36.4 ([#1522](https://github.com/homarr-labs/homarr/issues/1522)) ([50c9683](https://github.com/homarr-labs/homarr/commit/50c96833a697b09cadb8a7c64b2340e2c7b4d292)) +- **deps:** update dependency drizzle-orm to ^0.37.0 ([#1592](https://github.com/homarr-labs/homarr/issues/1592)) ([16cf818](https://github.com/homarr-labs/homarr/commit/16cf818449cd10f14e5235d5afdefaf0f8f01336)) +- **deps:** update dependency drizzle-orm to ^0.38.0 ([#1631](https://github.com/homarr-labs/homarr/issues/1631)) ([2825c9b](https://github.com/homarr-labs/homarr/commit/2825c9bf45c52cf7ec0785774038d9c01ac80cf9)) +- **deps:** update dependency drizzle-orm to ^0.38.1 ([#1646](https://github.com/homarr-labs/homarr/issues/1646)) ([7d0a224](https://github.com/homarr-labs/homarr/commit/7d0a224a3fe70c941ecea6dce9e376c395d8c5bb)) +- **deps:** update dependency drizzle-orm to ^0.38.2 ([#1652](https://github.com/homarr-labs/homarr/issues/1652)) ([da63d8e](https://github.com/homarr-labs/homarr/commit/da63d8ebf4b56caa34896d3b41d4784cd333123c)) +- **deps:** update dependency drizzle-orm to ^0.38.3 ([#1783](https://github.com/homarr-labs/homarr/issues/1783)) ([82c6ce7](https://github.com/homarr-labs/homarr/commit/82c6ce7b77023881bd4c74fb43437e777f9b219e)) +- **deps:** update dependency drizzle-orm to ^0.38.4 ([#1967](https://github.com/homarr-labs/homarr/issues/1967)) ([b10b201](https://github.com/homarr-labs/homarr/commit/b10b2013af20b34f32b56cf4a9cd5f675ab34f2a)) +- **deps:** update dependency drizzle-zod to ^0.6.0 ([#1629](https://github.com/homarr-labs/homarr/issues/1629)) ([51c87c1](https://github.com/homarr-labs/homarr/commit/51c87c1a33ca5fc2e583e27c33dd8828ac134e41)) +- **deps:** update dependency drizzle-zod to ^0.6.1 ([#1782](https://github.com/homarr-labs/homarr/issues/1782)) ([555212e](https://github.com/homarr-labs/homarr/commit/555212e2dc82c4b71b8c25a5f20964b3441b5ab9)) +- **deps:** update dependency eslint-config-prettier to v10 ([#1937](https://github.com/homarr-labs/homarr/issues/1937)) ([75c7918](https://github.com/homarr-labs/homarr/commit/75c791801e593e88deb3abcacf2b91aade0871d8)) +- **deps:** update dependency eslint-config-turbo to ^1.12.2 ([#34](https://github.com/homarr-labs/homarr/issues/34)) ([837e390](https://github.com/homarr-labs/homarr/commit/837e3900fa905e3d96d1b7693a889eb99ac71c1f)) +- **deps:** update dependency eslint-config-turbo to ^2.0.13 ([#978](https://github.com/homarr-labs/homarr/issues/978)) ([497363b](https://github.com/homarr-labs/homarr/commit/497363b4912a1b0d42abd9414b7ff827223220a0)) +- **deps:** update dependency eslint-config-turbo to ^2.0.14 ([#984](https://github.com/homarr-labs/homarr/issues/984)) ([5e7ee1b](https://github.com/homarr-labs/homarr/commit/5e7ee1b657cb55826518841e1dcb25cce4050bad)) +- **deps:** update dependency eslint-plugin-import to ^2.29.1 ([#23](https://github.com/homarr-labs/homarr/issues/23)) ([f3bb990](https://github.com/homarr-labs/homarr/commit/f3bb990c4dcd40f367cf59a120cf8f6fd2658309)) +- **deps:** update dependency eslint-plugin-import to ^2.30.0 ([#1061](https://github.com/homarr-labs/homarr/issues/1061)) ([0f34bf8](https://github.com/homarr-labs/homarr/commit/0f34bf85a8476b73140c2b6b8baad87fa924ebdb)) +- **deps:** update dependency eslint-plugin-import to ^2.31.0 ([#1226](https://github.com/homarr-labs/homarr/issues/1226)) ([9d20362](https://github.com/homarr-labs/homarr/commit/9d20362cf1323c57e7ed7dc9ba4e234c51ccc1d0)) +- **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.0 ([#1066](https://github.com/homarr-labs/homarr/issues/1066)) ([bef5832](https://github.com/homarr-labs/homarr/commit/bef5832470012ff8eeddd2e95822800f4c349491)) +- **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.1 ([#1343](https://github.com/homarr-labs/homarr/issues/1343)) ([564096e](https://github.com/homarr-labs/homarr/commit/564096e463b25c243c7f2adb2c9b059c940365fe)) +- **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.2 ([#1374](https://github.com/homarr-labs/homarr/issues/1374)) ([3127182](https://github.com/homarr-labs/homarr/commit/3127182f5c16a6c792557c9f458b7e20511cdf8f)) +- **deps:** update dependency eslint-plugin-jsx-a11y to ^6.9.0 ([#695](https://github.com/homarr-labs/homarr/issues/695)) ([d78b581](https://github.com/homarr-labs/homarr/commit/d78b581104009d92a835d99978e935059682b7e2)) +- **deps:** update dependency eslint-plugin-react to ^7.34.0 ([#189](https://github.com/homarr-labs/homarr/issues/189)) ([4cd897d](https://github.com/homarr-labs/homarr/commit/4cd897d521ba11a69cc5f7960746dfbb5d10bd44)) +- **deps:** update dependency eslint-plugin-react to ^7.34.1 ([#240](https://github.com/homarr-labs/homarr/issues/240)) ([404f294](https://github.com/homarr-labs/homarr/commit/404f2945dc0db083ad4adb941f436b7cbd04ce6d)) +- **deps:** update dependency eslint-plugin-react to ^7.34.2 ([#567](https://github.com/homarr-labs/homarr/issues/567)) ([9e499bd](https://github.com/homarr-labs/homarr/commit/9e499bd30ba5a8d22f15ef7e4e467090268125e7)) +- **deps:** update dependency eslint-plugin-react to ^7.34.3 ([#688](https://github.com/homarr-labs/homarr/issues/688)) ([fdcf3a8](https://github.com/homarr-labs/homarr/commit/fdcf3a89c929de9d441898f31bfeb141613fe9ff)) +- **deps:** update dependency eslint-plugin-react to ^7.34.4 ([#809](https://github.com/homarr-labs/homarr/issues/809)) ([fd64201](https://github.com/homarr-labs/homarr/commit/fd642011ba8bd11e03de46e35de387da819d5c98)) +- **deps:** update dependency eslint-plugin-react to ^7.35.0 ([#835](https://github.com/homarr-labs/homarr/issues/835)) ([37a8a0f](https://github.com/homarr-labs/homarr/commit/37a8a0fe5aebe813ba9be05643b1333485e20d5f)) +- **deps:** update dependency eslint-plugin-react to ^7.35.1 ([#1059](https://github.com/homarr-labs/homarr/issues/1059)) ([4c52cc3](https://github.com/homarr-labs/homarr/commit/4c52cc338e0bca1d9a80d23a3b409526109206b5)) +- **deps:** update dependency eslint-plugin-react to ^7.35.2 ([#1062](https://github.com/homarr-labs/homarr/issues/1062)) ([1249fb9](https://github.com/homarr-labs/homarr/commit/1249fb96122597f2d40cc5719d687354b7c1411c)) +- **deps:** update dependency eslint-plugin-react to ^7.36.0 ([#1111](https://github.com/homarr-labs/homarr/issues/1111)) ([cd43253](https://github.com/homarr-labs/homarr/commit/cd43253061c4162d1c1835b3cbb843250d0d5b51)) +- **deps:** update dependency eslint-plugin-react to ^7.36.1 ([#1115](https://github.com/homarr-labs/homarr/issues/1115)) ([2351617](https://github.com/homarr-labs/homarr/commit/2351617177d334467e26c08c378da4994f21f581)) +- **deps:** update dependency eslint-plugin-react to ^7.37.0 ([#1189](https://github.com/homarr-labs/homarr/issues/1189)) ([2245e7a](https://github.com/homarr-labs/homarr/commit/2245e7aae8fa75730706d2e73c30870ac6d0ec77)) +- **deps:** update dependency eslint-plugin-react to ^7.37.1 ([#1213](https://github.com/homarr-labs/homarr/issues/1213)) ([4a8ed13](https://github.com/homarr-labs/homarr/commit/4a8ed13a87ff44aed89754fbc171db0641cf78d8)) +- **deps:** update dependency eslint-plugin-react to ^7.37.2 ([#1354](https://github.com/homarr-labs/homarr/issues/1354)) ([1a2f0ad](https://github.com/homarr-labs/homarr/commit/1a2f0adfc8d22eade925409aac63ccb9d8885c08)) +- **deps:** update dependency eslint-plugin-react to ^7.37.3 ([#1767](https://github.com/homarr-labs/homarr/issues/1767)) ([fe95334](https://github.com/homarr-labs/homarr/commit/fe95334aa70c95faefcf904591fa9d33159b0905)) +- **deps:** update dependency eslint-plugin-react to ^7.37.4 ([#1934](https://github.com/homarr-labs/homarr/issues/1934)) ([2ea763c](https://github.com/homarr-labs/homarr/commit/2ea763c23161753619a204f9bb522ab04c37a2ab)) +- **deps:** update dependency eslint-plugin-react-hooks to ^5.1.0 ([#1614](https://github.com/homarr-labs/homarr/issues/1614)) ([6d6840f](https://github.com/homarr-labs/homarr/commit/6d6840f85e5f38b2f7ec990cf7402de86ea84166)) +- **deps:** update dependency eslint-plugin-react-hooks to v5 ([#1280](https://github.com/homarr-labs/homarr/issues/1280)) ([a87c937](https://github.com/homarr-labs/homarr/commit/a87c937b69550160cc10e9991256c032245fcbfc)) +- **deps:** update dependency flag-icons to ^7.2.2 ([#533](https://github.com/homarr-labs/homarr/issues/533)) ([f45fa50](https://github.com/homarr-labs/homarr/commit/f45fa500248d810aadb05cf2ad8ecd247bcae60b)) +- **deps:** update dependency flag-icons to ^7.2.3 ([#575](https://github.com/homarr-labs/homarr/issues/575)) ([fe43e74](https://github.com/homarr-labs/homarr/commit/fe43e74c5399942c6cb099352fc1098fe1261fc4)) +- **deps:** update dependency flag-icons to ^7.2.4 ([#1960](https://github.com/homarr-labs/homarr/issues/1960)) ([44767c4](https://github.com/homarr-labs/homarr/commit/44767c46c292c9fb95bc874377db75f3916b7525)) +- **deps:** update dependency flag-icons to ^7.3.0 ([#1966](https://github.com/homarr-labs/homarr/issues/1966)) ([ea8acc8](https://github.com/homarr-labs/homarr/commit/ea8acc83eace461444b96f7f0bfd634e51f0a92a)) +- **deps:** update dependency flag-icons to ^7.3.1 ([#1970](https://github.com/homarr-labs/homarr/issues/1970)) ([34cacb3](https://github.com/homarr-labs/homarr/commit/34cacb31535b2990f12d75b95d57c34de4044bb6)) +- **deps:** update dependency glob to ^10.3.14 ([#461](https://github.com/homarr-labs/homarr/issues/461)) ([8bd08d3](https://github.com/homarr-labs/homarr/commit/8bd08d39ca106b225aee123278b1387d037feedc)) +- **deps:** update dependency glob to ^10.3.15 ([#478](https://github.com/homarr-labs/homarr/issues/478)) ([333b124](https://github.com/homarr-labs/homarr/commit/333b124f678818b346816bbd29f6bc78f20e175d)) +- **deps:** update dependency glob to ^10.4.1 ([#531](https://github.com/homarr-labs/homarr/issues/531)) ([a0322bf](https://github.com/homarr-labs/homarr/commit/a0322bfd994c9fae57f7d8f7e219d0ac70d7868c)) +- **deps:** update dependency glob to ^10.4.2 ([#689](https://github.com/homarr-labs/homarr/issues/689)) ([0bfc0c5](https://github.com/homarr-labs/homarr/commit/0bfc0c5d2543677b7efe6fcec1af7c72e178af1b)) +- **deps:** update dependency glob to ^10.4.3 ([#751](https://github.com/homarr-labs/homarr/issues/751)) ([61cbb74](https://github.com/homarr-labs/homarr/commit/61cbb74d14b93ee9e52a2170a4ff01c93dcd09c1)) +- **deps:** update dependency glob to ^10.4.4 ([#765](https://github.com/homarr-labs/homarr/issues/765)) ([74b017d](https://github.com/homarr-labs/homarr/commit/74b017d9f4b39b9d6de0d76f180fcf5c6f145215)) +- **deps:** update dependency glob to ^10.4.5 ([#768](https://github.com/homarr-labs/homarr/issues/768)) ([4cee3df](https://github.com/homarr-labs/homarr/commit/4cee3dfbe00cd984e31a732e88bc581606ab37e9)) +- **deps:** update dependency glob to ^11.0.1 ([#1908](https://github.com/homarr-labs/homarr/issues/1908)) ([7d1b1d8](https://github.com/homarr-labs/homarr/commit/7d1b1d83429acaa9846479a7a5c48092d4614b75)) +- **deps:** update dependency glob to v10.4.1 ([#544](https://github.com/homarr-labs/homarr/issues/544)) ([7b46d92](https://github.com/homarr-labs/homarr/commit/7b46d92d4f992584c813cc2d7e99813f53a8b72e)) +- **deps:** update dependency glob to v11 ([#766](https://github.com/homarr-labs/homarr/issues/766)) ([0169501](https://github.com/homarr-labs/homarr/commit/0169501676aa8d1170ee44aa0bb8134d994d472e)) +- **deps:** update dependency ioredis to v5.4.1 ([#357](https://github.com/homarr-labs/homarr/issues/357)) ([20f44d3](https://github.com/homarr-labs/homarr/commit/20f44d3494ffbe76994e6d541d31ced2cfd8abd3)) +- **deps:** update dependency ioredis to v5.4.2 ([#1739](https://github.com/homarr-labs/homarr/issues/1739)) ([720fdb7](https://github.com/homarr-labs/homarr/commit/720fdb772c2142e23b2bfa2ecaddf0063fbe192c)) +- **deps:** update dependency jotai to ^2.10.0 ([#1155](https://github.com/homarr-labs/homarr/issues/1155)) ([dd9080f](https://github.com/homarr-labs/homarr/commit/dd9080f781b782a1a112c53f1af1e987fde22e32)) +- **deps:** update dependency jotai to ^2.10.1 ([#1295](https://github.com/homarr-labs/homarr/issues/1295)) ([ba81e5e](https://github.com/homarr-labs/homarr/commit/ba81e5e35a046e8dda1c2660beff1e1644d4d32a)) +- **deps:** update dependency jotai to ^2.10.2 ([#1464](https://github.com/homarr-labs/homarr/issues/1464)) ([75d764b](https://github.com/homarr-labs/homarr/commit/75d764bca83e41bc932a4aed5244bf6922d2d070)) +- **deps:** update dependency jotai to ^2.10.3 ([#1509](https://github.com/homarr-labs/homarr/issues/1509)) ([ae61377](https://github.com/homarr-labs/homarr/commit/ae6137710f51c3f53127a779793ce2d1566e7e0d)) +- **deps:** update dependency jotai to ^2.10.4 ([#1672](https://github.com/homarr-labs/homarr/issues/1672)) ([b7b5da6](https://github.com/homarr-labs/homarr/commit/b7b5da654bee37f1aceda2718bb92646fc4f472e)) +- **deps:** update dependency jotai to ^2.11.0 ([#1756](https://github.com/homarr-labs/homarr/issues/1756)) ([4e85bbb](https://github.com/homarr-labs/homarr/commit/4e85bbbad034f08ab84e331d376b7a9c6f54e507)) +- **deps:** update dependency jotai to ^2.6.4 ([#24](https://github.com/homarr-labs/homarr/issues/24)) ([a7d5c36](https://github.com/homarr-labs/homarr/commit/a7d5c36aa798ea9cf03579b752fa3640fb4f79cf)) +- **deps:** update dependency jotai to ^2.6.5 ([#106](https://github.com/homarr-labs/homarr/issues/106)) ([fc8d907](https://github.com/homarr-labs/homarr/commit/fc8d9071aa91afdb00b17b1de13a61241aa93705)) +- **deps:** update dependency jotai to ^2.7.0 ([#162](https://github.com/homarr-labs/homarr/issues/162)) ([af203e1](https://github.com/homarr-labs/homarr/commit/af203e19e76450e990384443e9d9de1e1df7748f)) +- **deps:** update dependency jotai to ^2.7.1 ([#238](https://github.com/homarr-labs/homarr/issues/238)) ([75ab823](https://github.com/homarr-labs/homarr/commit/75ab8230196272e2c713b948a614b3ac0ce62f09)) +- **deps:** update dependency jotai to ^2.7.2 ([#284](https://github.com/homarr-labs/homarr/issues/284)) ([d06528f](https://github.com/homarr-labs/homarr/commit/d06528f3119e18ddf09ab210fa2dd7ed1570bd5f)) +- **deps:** update dependency jotai to ^2.8.0 ([#326](https://github.com/homarr-labs/homarr/issues/326)) ([27c858d](https://github.com/homarr-labs/homarr/commit/27c858dc815f8d450310a219d2ec44093f33b293)) +- **deps:** update dependency jotai to ^2.8.1 ([#534](https://github.com/homarr-labs/homarr/issues/534)) ([c668d0a](https://github.com/homarr-labs/homarr/commit/c668d0a76502ce082990e7e64b7e7c801f33134f)) +- **deps:** update dependency jotai to ^2.8.2 ([#561](https://github.com/homarr-labs/homarr/issues/561)) ([6f47adf](https://github.com/homarr-labs/homarr/commit/6f47adff8abfdd1e94207a73fa6638e9aa11d396)) +- **deps:** update dependency jotai to ^2.8.3 ([#615](https://github.com/homarr-labs/homarr/issues/615)) ([d993e8d](https://github.com/homarr-labs/homarr/commit/d993e8d81136f8fb42a27b082d41b00bd5c2668a)) +- **deps:** update dependency jotai to ^2.8.4 ([#721](https://github.com/homarr-labs/homarr/issues/721)) ([e46bfd9](https://github.com/homarr-labs/homarr/commit/e46bfd9146929421434ce847352ce8b7a08106f7)) +- **deps:** update dependency jotai to ^2.9.0 ([#767](https://github.com/homarr-labs/homarr/issues/767)) ([5e3dc1e](https://github.com/homarr-labs/homarr/commit/5e3dc1e44dbe229870637c58188c6b6057092a95)) +- **deps:** update dependency jotai to ^2.9.1 ([#858](https://github.com/homarr-labs/homarr/issues/858)) ([fc5f02b](https://github.com/homarr-labs/homarr/commit/fc5f02b022786e7ec75c900d33c2386c71a77e53)) +- **deps:** update dependency jotai to ^2.9.2 ([#933](https://github.com/homarr-labs/homarr/issues/933)) ([c2bf677](https://github.com/homarr-labs/homarr/commit/c2bf6779c0664720a180192813ed4bfab02bf0e1)) +- **deps:** update dependency jotai to ^2.9.3 ([#969](https://github.com/homarr-labs/homarr/issues/969)) ([9d62fb4](https://github.com/homarr-labs/homarr/commit/9d62fb42c470d09c8891bdb8997af75926f3d03d)) +- **deps:** update dependency ldapts to v7.1.0 ([#839](https://github.com/homarr-labs/homarr/issues/839)) ([c33086d](https://github.com/homarr-labs/homarr/commit/c33086d8b55be9ba605c1f2c7429e44bd6ddada1)) +- **deps:** update dependency ldapts to v7.1.1 ([#1038](https://github.com/homarr-labs/homarr/issues/1038)) ([b507bf2](https://github.com/homarr-labs/homarr/commit/b507bf2ae67120ab7089297d53ce41c26314ca30)) +- **deps:** update dependency ldapts to v7.2.0 ([#1097](https://github.com/homarr-labs/homarr/issues/1097)) ([9d5007c](https://github.com/homarr-labs/homarr/commit/9d5007c05cb3216c9acbb1233326be1cd8d1cbb8)) +- **deps:** update dependency ldapts to v7.2.1 ([#1211](https://github.com/homarr-labs/homarr/issues/1211)) ([1b0d927](https://github.com/homarr-labs/homarr/commit/1b0d927e8866376f2f6851f78f9ef5ab67eb5ad2)) +- **deps:** update dependency ldapts to v7.2.2 ([#1574](https://github.com/homarr-labs/homarr/issues/1574)) ([d5f7621](https://github.com/homarr-labs/homarr/commit/d5f76218cd314769fb312e60de824acc1f90914e)) +- **deps:** update dependency ldapts to v7.3.0 ([#1696](https://github.com/homarr-labs/homarr/issues/1696)) ([6943505](https://github.com/homarr-labs/homarr/commit/694350583a0e53014a950c4a5bed4d487ad4ca7b)) +- **deps:** update dependency ldapts to v7.3.1 ([#1896](https://github.com/homarr-labs/homarr/issues/1896)) ([a69c64d](https://github.com/homarr-labs/homarr/commit/a69c64d88d57293eba8adbdf88ce694194268492)) +- **deps:** update dependency mantine-modal-manager to ^7.5.2 ([#72](https://github.com/homarr-labs/homarr/issues/72)) ([f704bad](https://github.com/homarr-labs/homarr/commit/f704bad36e103fc349b0303d9f79440d076c1e88)) +- **deps:** update dependency mantine-modal-manager to ^7.5.3 ([#132](https://github.com/homarr-labs/homarr/issues/132)) ([4565f38](https://github.com/homarr-labs/homarr/commit/4565f38bef6e940c2856b7213dae92cfff659a7b)) +- **deps:** update dependency mantine-modal-manager to ^7.6.1 ([#171](https://github.com/homarr-labs/homarr/issues/171)) ([acf9d18](https://github.com/homarr-labs/homarr/commit/acf9d1803f7112520a87fe854ef65d7f67dd5cb9)) +- **deps:** update dependency mantine-modal-manager to ^7.6.2 ([#222](https://github.com/homarr-labs/homarr/issues/222)) ([b63b2c8](https://github.com/homarr-labs/homarr/commit/b63b2c8e9021d8e789789471a061f1f40320a135)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.0 ([#149](https://github.com/homarr-labs/homarr/issues/149)) ([f211ffb](https://github.com/homarr-labs/homarr/commit/f211ffbf78d9039fc5e68a8219cef134ad3a5fa5)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.1 ([#277](https://github.com/homarr-labs/homarr/issues/277)) ([e1b62ec](https://github.com/homarr-labs/homarr/commit/e1b62ecd5300b54523e9c9672b53b9ac49a3996e)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.2 ([#466](https://github.com/homarr-labs/homarr/issues/466)) ([627f895](https://github.com/homarr-labs/homarr/commit/627f8957e546a37520f0122b62664704f9d286c3)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.3 ([#488](https://github.com/homarr-labs/homarr/issues/488)) ([8b84695](https://github.com/homarr-labs/homarr/commit/8b84695079220228e99317d9cd12d613e6af4043)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.4 ([#593](https://github.com/homarr-labs/homarr/issues/593)) ([fef070c](https://github.com/homarr-labs/homarr/commit/fef070c42cbff79e8301fdbe5623482d2ed01521)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.5 ([#661](https://github.com/homarr-labs/homarr/issues/661)) ([37ebcfe](https://github.com/homarr-labs/homarr/commit/37ebcfe318540e6941ea62a40a001aaed19e0abf)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.6 ([#837](https://github.com/homarr-labs/homarr/issues/837)) ([5da74ca](https://github.com/homarr-labs/homarr/commit/5da74ca7e057632b9f693061c3855e1fb348c5bb)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.7 ([#1287](https://github.com/homarr-labs/homarr/issues/1287)) ([6f97741](https://github.com/homarr-labs/homarr/commit/6f97741862ad2d25d852858e509f78d0ff0a7e01)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.8 ([#1902](https://github.com/homarr-labs/homarr/issues/1902)) ([86a9259](https://github.com/homarr-labs/homarr/commit/86a925939cb8ef92fe0bca5a762e688887916b04)) +- **deps:** update dependency mysql2 to ^3.9.3 ([#273](https://github.com/homarr-labs/homarr/issues/273)) ([b0bba14](https://github.com/homarr-labs/homarr/commit/b0bba1418b802b238eb8724987ce6bbb1a27f195)) +- **deps:** update dependency mysql2 to v3.10.0 ([#585](https://github.com/homarr-labs/homarr/issues/585)) ([ff84c2b](https://github.com/homarr-labs/homarr/commit/ff84c2bdb77db1e825fd3a6c7be303f2c450edbe)) +- **deps:** update dependency mysql2 to v3.10.1 ([#665](https://github.com/homarr-labs/homarr/issues/665)) ([10acb2b](https://github.com/homarr-labs/homarr/commit/10acb2bc7645048c8265a78075eef6ac6f0b1fe0)) +- **deps:** update dependency mysql2 to v3.10.2 ([#731](https://github.com/homarr-labs/homarr/issues/731)) ([663eb0b](https://github.com/homarr-labs/homarr/commit/663eb0bf5b986a71c36a36f86e5011835112d2b7)) +- **deps:** update dependency mysql2 to v3.10.3 ([#816](https://github.com/homarr-labs/homarr/issues/816)) ([636d3c6](https://github.com/homarr-labs/homarr/commit/636d3c670cc387a26112d58a33576cdcd1e5b5d2)) +- **deps:** update dependency mysql2 to v3.11.0 ([#874](https://github.com/homarr-labs/homarr/issues/874)) ([c973a3b](https://github.com/homarr-labs/homarr/commit/c973a3bfa540397b6882e0b4bdd5ce6c2a193e2f)) +- **deps:** update dependency mysql2 to v3.11.1 ([#1094](https://github.com/homarr-labs/homarr/issues/1094)) ([40af170](https://github.com/homarr-labs/homarr/commit/40af17083aba37c2e02f81f295c1192f70d0a691)) +- **deps:** update dependency mysql2 to v3.11.2 ([#1098](https://github.com/homarr-labs/homarr/issues/1098)) ([d2a30db](https://github.com/homarr-labs/homarr/commit/d2a30db3c1bd21decba0624c13635b092afabf4f)) +- **deps:** update dependency mysql2 to v3.11.3 ([#1132](https://github.com/homarr-labs/homarr/issues/1132)) ([6c39612](https://github.com/homarr-labs/homarr/commit/6c39612c0731c0728b62057eb240543ae4a1ec15)) +- **deps:** update dependency mysql2 to v3.11.4 ([#1430](https://github.com/homarr-labs/homarr/issues/1430)) ([7e1305c](https://github.com/homarr-labs/homarr/commit/7e1305c6a99e96900b447591ebeb48393186483d)) +- **deps:** update dependency mysql2 to v3.11.5 ([#1567](https://github.com/homarr-labs/homarr/issues/1567)) ([cebc925](https://github.com/homarr-labs/homarr/commit/cebc925b879d22a662be326c6b8b5048907dd92c)) +- **deps:** update dependency mysql2 to v3.12.0 ([#1758](https://github.com/homarr-labs/homarr/issues/1758)) ([d02ded5](https://github.com/homarr-labs/homarr/commit/d02ded5511aa2d54307db0ac7f4e0a5dee5a707d)) +- **deps:** update dependency mysql2 to v3.9.6 ([#311](https://github.com/homarr-labs/homarr/issues/311)) ([a6d65fd](https://github.com/homarr-labs/homarr/commit/a6d65fda6b9ed31a08a420e51718dbd36f8da7ae)) +- **deps:** update dependency mysql2 to v3.9.7 ([#369](https://github.com/homarr-labs/homarr/issues/369)) ([51ea67f](https://github.com/homarr-labs/homarr/commit/51ea67fc883a6b2e2164f46a6a3e1e41a961a834)) +- **deps:** update dependency mysql2 to v3.9.8 ([#558](https://github.com/homarr-labs/homarr/issues/558)) ([3f364ca](https://github.com/homarr-labs/homarr/commit/3f364cacedb556cb58c8b15c1a81cecca7cb22e7)) +- **deps:** update dependency mysql2 to v3.9.9 ([#576](https://github.com/homarr-labs/homarr/issues/576)) ([612b8d8](https://github.com/homarr-labs/homarr/commit/612b8d8c6eff4adaec8e359b4733af31c69e10ae)) +- **deps:** update dependency next to ^14.1.1-canary.59 ([#121](https://github.com/homarr-labs/homarr/issues/121)) ([4f911c4](https://github.com/homarr-labs/homarr/commit/4f911c4f56be487726359eb00e7d34bff426b596)) +- **deps:** update dependency next to ^14.1.1-canary.61 ([#138](https://github.com/homarr-labs/homarr/issues/138)) ([6a02afb](https://github.com/homarr-labs/homarr/commit/6a02afbfe2daded6a86ee13423ae4fdeb7ed14a5)) +- **deps:** update dependency next to ^14.1.1-canary.62 ([#140](https://github.com/homarr-labs/homarr/issues/140)) ([fde634d](https://github.com/homarr-labs/homarr/commit/fde634d834c58501435ccab7409693fd9f5fecbc)) +- **deps:** update dependency next to ^14.1.1-canary.63 ([#146](https://github.com/homarr-labs/homarr/issues/146)) ([4d01136](https://github.com/homarr-labs/homarr/commit/4d011364bf61971392b541d6758585eb25f5c68c)) +- **deps:** update dependency next-auth to v5.0.0-beta.11 ([#91](https://github.com/homarr-labs/homarr/issues/91)) ([336dc38](https://github.com/homarr-labs/homarr/commit/336dc38b2d0f6932eaacee354640ffa5ec92729e)) +- **deps:** update dependency next-auth to v5.0.0-beta.13 ([#108](https://github.com/homarr-labs/homarr/issues/108)) ([64194c5](https://github.com/homarr-labs/homarr/commit/64194c51edbca639193d9865fc6d4c7e07a1b3bf)) +- **deps:** update dependency next-auth to v5.0.0-beta.15 ([#167](https://github.com/homarr-labs/homarr/issues/167)) ([70f34ef](https://github.com/homarr-labs/homarr/commit/70f34efd5385e641bf5f9f043cbd18e6e9bf2cce)) +- **deps:** update dependency next-auth to v5.0.0-beta.16 ([#268](https://github.com/homarr-labs/homarr/issues/268)) ([ba27871](https://github.com/homarr-labs/homarr/commit/ba278717650a20381912070624aa390594410578)) +- **deps:** update dependency next-auth to v5.0.0-beta.17 ([#383](https://github.com/homarr-labs/homarr/issues/383)) ([bfdc8d5](https://github.com/homarr-labs/homarr/commit/bfdc8d584b9abef5bf3b417ad8eba951404856ce)) +- **deps:** update dependency next-auth to v5.0.0-beta.19 ([#605](https://github.com/homarr-labs/homarr/issues/605)) ([20874cb](https://github.com/homarr-labs/homarr/commit/20874cb96d7b45ca33bd86e3670d81dc71688390)) +- **deps:** update dependency next-auth to v5.0.0-beta.20 ([#878](https://github.com/homarr-labs/homarr/issues/878)) ([a0c5545](https://github.com/homarr-labs/homarr/commit/a0c55459d1e3dbec93329ca9c99acf652683a08b)) +- **deps:** update dependency next-auth to v5.0.0-beta.21 ([#1131](https://github.com/homarr-labs/homarr/issues/1131)) ([5a73700](https://github.com/homarr-labs/homarr/commit/5a73700f571b6628161b55380fd08da93cede0a8)) +- **deps:** update dependency next-auth to v5.0.0-beta.22 ([#1195](https://github.com/homarr-labs/homarr/issues/1195)) ([c3e1ce3](https://github.com/homarr-labs/homarr/commit/c3e1ce30fa15ff7cee29d842a2f6c8688f9639ba)) +- **deps:** update dependency next-auth to v5.0.0-beta.23 ([#1325](https://github.com/homarr-labs/homarr/issues/1325)) ([c52fd97](https://github.com/homarr-labs/homarr/commit/c52fd972b7157d6132923cff5c2c350ca32d8229)) +- **deps:** update dependency next-auth to v5.0.0-beta.25 ([#1341](https://github.com/homarr-labs/homarr/issues/1341)) ([278107a](https://github.com/homarr-labs/homarr/commit/278107a1a4b6c5f6b391a25704314c613212fbab)) +- **deps:** update dependency next-auth to v5.0.0-beta.8 ([#60](https://github.com/homarr-labs/homarr/issues/60)) ([544a6d9](https://github.com/homarr-labs/homarr/commit/544a6d992691c6ba398b236fdd4f59111fa64e5a)) +- **deps:** update dependency next-auth to v5.0.0-beta.9 ([#68](https://github.com/homarr-labs/homarr/issues/68)) ([cc52c2b](https://github.com/homarr-labs/homarr/commit/cc52c2ba785e78f251bc6cfac637bc4285b77f0f)) +- **deps:** update dependency next-international to ^1.2.3 ([#35](https://github.com/homarr-labs/homarr/issues/35)) ([b8fe041](https://github.com/homarr-labs/homarr/commit/b8fe04144fea31a934a59094c52d7c6fc4cfffbb)) +- **deps:** update dependency next-international to ^1.2.4 ([#76](https://github.com/homarr-labs/homarr/issues/76)) ([60d5ebb](https://github.com/homarr-labs/homarr/commit/60d5ebbc11fd8a8f5494e303335e2bd46ec09a3d)) +- **deps:** update dependency next-intl to v3.23.5 ([#1376](https://github.com/homarr-labs/homarr/issues/1376)) ([a4ae38b](https://github.com/homarr-labs/homarr/commit/a4ae38b5e4bf09303e659f4eacac0c81ea3bea07)) +- **deps:** update dependency next-intl to v3.24.0 ([#1392](https://github.com/homarr-labs/homarr/issues/1392)) ([4e9b0af](https://github.com/homarr-labs/homarr/commit/4e9b0af54c2f3bc5a23b9cecfc570b74787af478)) +- **deps:** update dependency next-intl to v3.25.0 ([#1448](https://github.com/homarr-labs/homarr/issues/1448)) ([8722109](https://github.com/homarr-labs/homarr/commit/87221093d25df689472ed86184d528eb815e10d1)) +- **deps:** update dependency next-intl to v3.25.1 ([#1473](https://github.com/homarr-labs/homarr/issues/1473)) ([7a9e9a1](https://github.com/homarr-labs/homarr/commit/7a9e9a1e0de02a678787c2509e09c748d7a0042b)) +- **deps:** update dependency next-intl to v3.25.2 ([#1545](https://github.com/homarr-labs/homarr/issues/1545)) ([b6c28da](https://github.com/homarr-labs/homarr/commit/b6c28da32b0cdcfe181db8e698e9f28997cebc52)) +- **deps:** update dependency next-intl to v3.25.3 ([#1551](https://github.com/homarr-labs/homarr/issues/1551)) ([907c28c](https://github.com/homarr-labs/homarr/commit/907c28c945bc7e7ac2c600f7c7a04750ff7465d6)) +- **deps:** update dependency next-intl to v3.26.0 ([#1619](https://github.com/homarr-labs/homarr/issues/1619)) ([58008c1](https://github.com/homarr-labs/homarr/commit/58008c1e2fc9a20401f45288f3beedb80a466351)) +- **deps:** update dependency next-intl to v3.26.1 ([#1644](https://github.com/homarr-labs/homarr/issues/1644)) ([5194867](https://github.com/homarr-labs/homarr/commit/51948677fa1fd0b6ea7410cdbb6f6f77a1f87db0)) +- **deps:** update dependency next-intl to v3.26.2 ([#1703](https://github.com/homarr-labs/homarr/issues/1703)) ([d3a883a](https://github.com/homarr-labs/homarr/commit/d3a883a252167612f3f64579730c8f26453897e3)) +- **deps:** update dependency next-intl to v3.26.3 ([#1740](https://github.com/homarr-labs/homarr/issues/1740)) ([fff1da8](https://github.com/homarr-labs/homarr/commit/fff1da88bd44162b08a76f8b2f49e2b929fc56e8)) +- **deps:** update dependency node-cron to ^3.0.3 ([#309](https://github.com/homarr-labs/homarr/issues/309)) ([48f45d7](https://github.com/homarr-labs/homarr/commit/48f45d73775f0b872613e01edc3499a2a2f7c924)) +- **deps:** update dependency octokit to ^4.0.3 ([#1806](https://github.com/homarr-labs/homarr/issues/1806)) ([75aefcb](https://github.com/homarr-labs/homarr/commit/75aefcb0d5210a53e8a00b675dbbce847aa8add4)) +- **deps:** update dependency octokit to ^4.1.0 ([#1898](https://github.com/homarr-labs/homarr/issues/1898)) ([3860af3](https://github.com/homarr-labs/homarr/commit/3860af31b64e8a74e7e1c91470a9de5450f9e5e7)) +- **deps:** update dependency postcss-preset-mantine to ^1.13.0 ([#36](https://github.com/homarr-labs/homarr/issues/36)) ([d73e7a3](https://github.com/homarr-labs/homarr/commit/d73e7a3c3fc278e30f723a5d2b4bdedf667cc5ce)) +- **deps:** update dependency postcss-preset-mantine to ^1.14.4 ([#336](https://github.com/homarr-labs/homarr/issues/336)) ([49e45e8](https://github.com/homarr-labs/homarr/commit/49e45e8122147b2eeebc5ee025bdfd91e7cb4836)) +- **deps:** update dependency postcss-preset-mantine to ^1.15.0 ([#387](https://github.com/homarr-labs/homarr/issues/387)) ([84175e6](https://github.com/homarr-labs/homarr/commit/84175e6a7e4fb8ce3cbcb89ee4d713b6531d3ac0)) +- **deps:** update dependency postcss-preset-mantine to ^1.16.0 ([#827](https://github.com/homarr-labs/homarr/issues/827)) ([002d011](https://github.com/homarr-labs/homarr/commit/002d011b18ffa74f29d06a6bef3d08d6e997735d)) +- **deps:** update dependency postcss-preset-mantine to ^1.17.0 ([#843](https://github.com/homarr-labs/homarr/issues/843)) ([41e5760](https://github.com/homarr-labs/homarr/commit/41e576039f8400e671dd52362a6b2ba9ce605a9f)) +- **deps:** update dependency prettier to ^3.2.4 ([#37](https://github.com/homarr-labs/homarr/issues/37)) ([9aaec54](https://github.com/homarr-labs/homarr/commit/9aaec5495dfacbbf2a313d142e23394bf8c78d43)) +- **deps:** update dependency prettier to ^3.2.5 ([#53](https://github.com/homarr-labs/homarr/issues/53)) ([15f0801](https://github.com/homarr-labs/homarr/commit/15f08011a6c2e7fd7274bc28b9d559269cb03f7e)) +- **deps:** update dependency prettier to ^3.3.0 ([#594](https://github.com/homarr-labs/homarr/issues/594)) ([b1b839f](https://github.com/homarr-labs/homarr/commit/b1b839fcd866f0c157e14d59a47e0cdbeb1ff444)) +- **deps:** update dependency prettier to ^3.3.1 ([#623](https://github.com/homarr-labs/homarr/issues/623)) ([8f551aa](https://github.com/homarr-labs/homarr/commit/8f551aa4856065c3a7e1e7e763781863ed2db972)) +- **deps:** update dependency prettier to ^3.3.2 ([#656](https://github.com/homarr-labs/homarr/issues/656)) ([d69cda0](https://github.com/homarr-labs/homarr/commit/d69cda03136f29744b4935e28bdfc4dcb24424fb)) +- **deps:** update dependency prettier to ^3.3.3 ([#805](https://github.com/homarr-labs/homarr/issues/805)) ([66036b0](https://github.com/homarr-labs/homarr/commit/66036b08bcfecb5fb4e2e588bd74e935a387a34c)) +- **deps:** update dependency prettier to ^3.4.0 ([#1550](https://github.com/homarr-labs/homarr/issues/1550)) ([2e9b99d](https://github.com/homarr-labs/homarr/commit/2e9b99dff76e675a5e28ca22dddc467fe94a5f6d)) +- **deps:** update dependency prettier to ^3.4.1 ([#1554](https://github.com/homarr-labs/homarr/issues/1554)) ([27b8f65](https://github.com/homarr-labs/homarr/commit/27b8f65238eca00e6f51f681c4689199cae22728)) +- **deps:** update dependency prettier to ^3.4.2 ([#1602](https://github.com/homarr-labs/homarr/issues/1602)) ([bbec013](https://github.com/homarr-labs/homarr/commit/bbec01385f8ba609efe83712c61df4c0b483badb)) +- **deps:** update dependency react-error-boundary to ^4.1.0 ([#1304](https://github.com/homarr-labs/homarr/issues/1304)) ([9fa4bef](https://github.com/homarr-labs/homarr/commit/9fa4bef2a4a9edf68299f3095a60d4eaaf144f65)) +- **deps:** update dependency react-error-boundary to ^4.1.1 ([#1315](https://github.com/homarr-labs/homarr/issues/1315)) ([3b5082c](https://github.com/homarr-labs/homarr/commit/3b5082c107771ade24917da61b87321bfc40995d)) +- **deps:** update dependency react-error-boundary to ^4.1.2 ([#1334](https://github.com/homarr-labs/homarr/issues/1334)) ([98f1c33](https://github.com/homarr-labs/homarr/commit/98f1c333186c44f5f1e4bfc6452451edb990cbaa)) +- **deps:** update dependency react-error-boundary to v5 ([#1748](https://github.com/homarr-labs/homarr/issues/1748)) ([01db27c](https://github.com/homarr-labs/homarr/commit/01db27c34f3daf6e67e35bbd357df31dcb154b41)) +- **deps:** update dependency react-simple-code-editor to ^0.14.0 ([#738](https://github.com/homarr-labs/homarr/issues/738)) ([d32075d](https://github.com/homarr-labs/homarr/commit/d32075d410af5111e4e33c09be7facdd0d44d196)) +- **deps:** update dependency react-simple-code-editor to ^0.14.1 ([#746](https://github.com/homarr-labs/homarr/issues/746)) ([9375738](https://github.com/homarr-labs/homarr/commit/9375738e0552357f53b52c1637732494f568f5a0)) +- **deps:** update dependency reflect-metadata to ^0.2.1 ([#182](https://github.com/homarr-labs/homarr/issues/182)) ([9ee96a1](https://github.com/homarr-labs/homarr/commit/9ee96a14628b3b450d45b07ad45863375b899cde)) +- **deps:** update dependency rimraf to v5 ([#186](https://github.com/homarr-labs/homarr/issues/186)) ([f4b93d1](https://github.com/homarr-labs/homarr/commit/f4b93d1eae4b28cb5929b30ea2a55c57bdac84be)) +- **deps:** update dependency rxjs to ^7.8.1 ([#181](https://github.com/homarr-labs/homarr/issues/181)) ([e1a98f7](https://github.com/homarr-labs/homarr/commit/e1a98f7fc05881c3b161f22463afbcf3b0b306b0)) +- **deps:** update dependency sass to ^1.71.0 ([#96](https://github.com/homarr-labs/homarr/issues/96)) ([9a60588](https://github.com/homarr-labs/homarr/commit/9a60588a031b262a06d4048804960bf7966ba1b5)) +- **deps:** update dependency sass to ^1.71.1 ([#148](https://github.com/homarr-labs/homarr/issues/148)) ([abc4a9a](https://github.com/homarr-labs/homarr/commit/abc4a9afbc7b61266907826da1f20077e98176f2)) +- **deps:** update dependency sass to ^1.72.0 ([#230](https://github.com/homarr-labs/homarr/issues/230)) ([4bab91f](https://github.com/homarr-labs/homarr/commit/4bab91f8deeb65678009edcbff31abe843269d44)) +- **deps:** update dependency sass to ^1.74.1 ([#306](https://github.com/homarr-labs/homarr/issues/306)) ([e68a2e5](https://github.com/homarr-labs/homarr/commit/e68a2e5813d857f1da8bd1ae15129fd323d98f52)) +- **deps:** update dependency sass to ^1.75.0 ([#347](https://github.com/homarr-labs/homarr/issues/347)) ([0cc5225](https://github.com/homarr-labs/homarr/commit/0cc5225e32b18cf02378836bc4142663c68aa82d)) +- **deps:** update dependency sass to ^1.76.0 ([#410](https://github.com/homarr-labs/homarr/issues/410)) ([e556bf3](https://github.com/homarr-labs/homarr/commit/e556bf3e6617df664897037cfe6d223e56a8262a)) +- **deps:** update dependency sass to ^1.77.0 ([#451](https://github.com/homarr-labs/homarr/issues/451)) ([3ae96d9](https://github.com/homarr-labs/homarr/commit/3ae96d94a20797f0b4ec5ff22e4649a0fd497748)) +- **deps:** update dependency sass to ^1.77.1 ([#469](https://github.com/homarr-labs/homarr/issues/469)) ([cb6f754](https://github.com/homarr-labs/homarr/commit/cb6f754492b737b70f3db614efd2dfaea49daca9)) +- **deps:** update dependency sass to ^1.77.2 ([#506](https://github.com/homarr-labs/homarr/issues/506)) ([7664b00](https://github.com/homarr-labs/homarr/commit/7664b00be00dd134c130bbb6ffb438155d333553)) +- **deps:** update dependency sass to ^1.77.3 ([#579](https://github.com/homarr-labs/homarr/issues/579)) ([169feca](https://github.com/homarr-labs/homarr/commit/169fecaba1645f0313e730de0e0caff0793cd4c4)) +- **deps:** update dependency sass to ^1.77.4 ([#586](https://github.com/homarr-labs/homarr/issues/586)) ([79d977c](https://github.com/homarr-labs/homarr/commit/79d977c0085e8fc600d1806a566ac17e763dfc48)) +- **deps:** update dependency sass to ^1.77.5 ([#659](https://github.com/homarr-labs/homarr/issues/659)) ([f5f6388](https://github.com/homarr-labs/homarr/commit/f5f63883612c320d4a73cb5bf9435b30c6071537)) +- **deps:** update dependency sass to ^1.77.6 ([#683](https://github.com/homarr-labs/homarr/issues/683)) ([4526fa6](https://github.com/homarr-labs/homarr/commit/4526fa6fc488aad0b54093e47e9064d771473d30)) +- **deps:** update dependency sass to ^1.77.7 ([#773](https://github.com/homarr-labs/homarr/issues/773)) ([dcb9cfa](https://github.com/homarr-labs/homarr/commit/dcb9cfaf295c3aeb30181ea5c7c7e404785e6763)) +- **deps:** update dependency sass to ^1.77.8 ([#783](https://github.com/homarr-labs/homarr/issues/783)) ([ec4b3a6](https://github.com/homarr-labs/homarr/commit/ec4b3a64081bd5d94d4e728dcd7562f708cf0c5f)) +- **deps:** update dependency sass to ^1.78.0 ([#1064](https://github.com/homarr-labs/homarr/issues/1064)) ([3d1b626](https://github.com/homarr-labs/homarr/commit/3d1b626baa736a6a41b4b35f32ef44d948b2f309)) +- **deps:** update dependency sass to ^1.79.0 ([#1147](https://github.com/homarr-labs/homarr/issues/1147)) ([f1d5dd0](https://github.com/homarr-labs/homarr/commit/f1d5dd03cbea8ea569d21f94b95e31d66cb03adc)) +- **deps:** update dependency sass to ^1.79.1 ([#1148](https://github.com/homarr-labs/homarr/issues/1148)) ([3cb1221](https://github.com/homarr-labs/homarr/commit/3cb1221038715ae8d771c3a6622f666ae9493aef)) +- **deps:** update dependency sass to ^1.79.2 ([#1153](https://github.com/homarr-labs/homarr/issues/1153)) ([a028251](https://github.com/homarr-labs/homarr/commit/a02825113a17aa3142ced5a726058bd6168beee1)) +- **deps:** update dependency sass to ^1.79.3 ([#1159](https://github.com/homarr-labs/homarr/issues/1159)) ([612a158](https://github.com/homarr-labs/homarr/commit/612a15810b671cedeb9fefd7902692a466394e3a)) +- **deps:** update dependency sass to ^1.79.4 ([#1198](https://github.com/homarr-labs/homarr/issues/1198)) ([9af01bb](https://github.com/homarr-labs/homarr/commit/9af01bb68006af39f009e4a0605cc0a7f42bcba5)) +- **deps:** update dependency sass to ^1.79.5 ([#1279](https://github.com/homarr-labs/homarr/issues/1279)) ([99ddd92](https://github.com/homarr-labs/homarr/commit/99ddd9214edb8841a1c969af9c1d1f91643e6df8)) +- **deps:** update dependency sass to ^1.79.6 ([#1312](https://github.com/homarr-labs/homarr/issues/1312)) ([0c134dd](https://github.com/homarr-labs/homarr/commit/0c134dde6e9b472cd5cd32dfebdc9146e4fb64db)) +- **deps:** update dependency sass to ^1.80.1 ([#1314](https://github.com/homarr-labs/homarr/issues/1314)) ([a44c907](https://github.com/homarr-labs/homarr/commit/a44c90774547d9ad6c4911c12f21ffa98b3694e5)) +- **deps:** update dependency sass to ^1.80.2 ([#1319](https://github.com/homarr-labs/homarr/issues/1319)) ([3781fe5](https://github.com/homarr-labs/homarr/commit/3781fe5cf876d36aacc7bb4f373ea7973e4e57f7)) +- **deps:** update dependency sass to ^1.80.3 ([#1331](https://github.com/homarr-labs/homarr/issues/1331)) ([e46bf5d](https://github.com/homarr-labs/homarr/commit/e46bf5d24811aa9c8e8092d6635e67f665123721)) +- **deps:** update dependency sass to ^1.80.4 ([#1366](https://github.com/homarr-labs/homarr/issues/1366)) ([2bac28a](https://github.com/homarr-labs/homarr/commit/2bac28a50a843bdf2bdefdc9bad4a07af2fa92b9)) +- **deps:** update dependency sass to ^1.80.5 ([#1388](https://github.com/homarr-labs/homarr/issues/1388)) ([74a8495](https://github.com/homarr-labs/homarr/commit/74a84959034ba1383716e06a7ce73d2f6397e40f)) +- **deps:** update dependency sass to ^1.80.6 ([#1399](https://github.com/homarr-labs/homarr/issues/1399)) ([d908b3f](https://github.com/homarr-labs/homarr/commit/d908b3f6769fe5add91e605f16dc6c5f89d96373)) +- **deps:** update dependency sass to ^1.80.7 ([#1472](https://github.com/homarr-labs/homarr/issues/1472)) ([9bd0e0f](https://github.com/homarr-labs/homarr/commit/9bd0e0f4ee49a3e6ed5245312c5fb77ff8dc48a8)) +- **deps:** update dependency sass to ^1.81.0 ([#1486](https://github.com/homarr-labs/homarr/issues/1486)) ([908d0bb](https://github.com/homarr-labs/homarr/commit/908d0bbc5066e3ee312c89025e3bd60c224094f3)) +- **deps:** update dependency sass to ^1.81.1 ([#1589](https://github.com/homarr-labs/homarr/issues/1589)) ([57bbd43](https://github.com/homarr-labs/homarr/commit/57bbd43c74d29272ac0fa3667965fd78decc4e6b)) +- **deps:** update dependency sass to ^1.82.0 ([#1600](https://github.com/homarr-labs/homarr/issues/1600)) ([825b1a3](https://github.com/homarr-labs/homarr/commit/825b1a3643266049ddf5a6cd53defa47e78d8cc8)) +- **deps:** update dependency sass to ^1.83.0 ([#1650](https://github.com/homarr-labs/homarr/issues/1650)) ([0bd8e2c](https://github.com/homarr-labs/homarr/commit/0bd8e2c08516fabd9bd6c3d4649abb4f47d7bc13)) +- **deps:** update dependency sass to ^1.83.1 ([#1852](https://github.com/homarr-labs/homarr/issues/1852)) ([812469d](https://github.com/homarr-labs/homarr/commit/812469db827badee63c73a8c819922c24fdefd13)) +- **deps:** update dependency sass to ^1.83.3 ([#1945](https://github.com/homarr-labs/homarr/issues/1945)) ([99c69ba](https://github.com/homarr-labs/homarr/commit/99c69ba65ddb5f8cf6bdd61518649fc21405ac87)) +- **deps:** update dependency sass to ^1.83.4 ([#1946](https://github.com/homarr-labs/homarr/issues/1946)) ([ff1a003](https://github.com/homarr-labs/homarr/commit/ff1a00303728b15b8e709ce57d77a78967abab78)) +- **deps:** update dependency sharp to ^0.33.3 ([#260](https://github.com/homarr-labs/homarr/issues/260)) ([87808c1](https://github.com/homarr-labs/homarr/commit/87808c1349f520a4d2160a11ef49c11a91665ea9)) +- **deps:** update dependency superjson to v2.2.2 ([#1618](https://github.com/homarr-labs/homarr/issues/1618)) ([aaa3e7c](https://github.com/homarr-labs/homarr/commit/aaa3e7ce0c58f644db283e5c256779b5c4fb09bb)) +- **deps:** update dependency swagger-ui-react to ^5.17.14 ([#1031](https://github.com/homarr-labs/homarr/issues/1031)) ([6351bf7](https://github.com/homarr-labs/homarr/commit/6351bf78ff902948218b50d568e7d7425a27b2ad)) +- **deps:** update dependency swagger-ui-react to ^5.18.0 ([#1428](https://github.com/homarr-labs/homarr/issues/1428)) ([4643c0f](https://github.com/homarr-labs/homarr/commit/4643c0f004425f54d96871755aec1e0a6cfa30b2)) +- **deps:** update dependency swagger-ui-react to ^5.18.1 ([#1432](https://github.com/homarr-labs/homarr/issues/1432)) ([0809d5a](https://github.com/homarr-labs/homarr/commit/0809d5aa747e4937ca1890ee04972b99e87f26bc)) +- **deps:** update dependency swagger-ui-react to ^5.18.2 ([#1442](https://github.com/homarr-labs/homarr/issues/1442)) ([2357435](https://github.com/homarr-labs/homarr/commit/23574359f0ed180d512810773b48bd046139ae66)) +- **deps:** update dependency tldts to ^6.1.38 ([#931](https://github.com/homarr-labs/homarr/issues/931)) ([a2be781](https://github.com/homarr-labs/homarr/commit/a2be781f81465b32543b28dee7df8f1b0290f12a)) +- **deps:** update dependency tldts to ^6.1.39 ([#966](https://github.com/homarr-labs/homarr/issues/966)) ([4b39c16](https://github.com/homarr-labs/homarr/commit/4b39c16d256656998ab817f58cdaf13fe81dc044)) +- **deps:** update dependency tldts to ^6.1.40 ([#996](https://github.com/homarr-labs/homarr/issues/996)) ([f5c380f](https://github.com/homarr-labs/homarr/commit/f5c380f75b30bc45573a4aaef7fe926c3a71011d)) +- **deps:** update dependency tldts to ^6.1.41 ([#1011](https://github.com/homarr-labs/homarr/issues/1011)) ([7742d5f](https://github.com/homarr-labs/homarr/commit/7742d5f5b4b37ab2fb1e6cdc6a5c25c5caca1a5d)) +- **deps:** update dependency tldts to ^6.1.42 ([#1069](https://github.com/homarr-labs/homarr/issues/1069)) ([247de55](https://github.com/homarr-labs/homarr/commit/247de555cec15ae8f6fac0fd5b2abc90382b1786)) +- **deps:** update dependency tldts to ^6.1.43 ([#1080](https://github.com/homarr-labs/homarr/issues/1080)) ([fc1bff2](https://github.com/homarr-labs/homarr/commit/fc1bff2110e1a4c1fa1d48ba4a42ee4d3ad5b469)) +- **deps:** update dependency tldts to ^6.1.44 ([#1095](https://github.com/homarr-labs/homarr/issues/1095)) ([18347fe](https://github.com/homarr-labs/homarr/commit/18347fef3bc355d42e902e76e0caf02ee855df9a)) +- **deps:** update dependency tldts to ^6.1.45 ([#1121](https://github.com/homarr-labs/homarr/issues/1121)) ([7059a3d](https://github.com/homarr-labs/homarr/commit/7059a3d88f73ddceb70d037bb0f362fe50bda225)) +- **deps:** update dependency tldts to ^6.1.46 ([#1128](https://github.com/homarr-labs/homarr/issues/1128)) ([aca5c27](https://github.com/homarr-labs/homarr/commit/aca5c279b5360fdacd3f5dc77fd58ce41c343e5f)) +- **deps:** update dependency tldts to ^6.1.47 ([#1152](https://github.com/homarr-labs/homarr/issues/1152)) ([aa2d440](https://github.com/homarr-labs/homarr/commit/aa2d440acbbe92d088b9ba9bdf2ebbc5b2b642c1)) +- **deps:** update dependency tldts to ^6.1.48 ([#1190](https://github.com/homarr-labs/homarr/issues/1190)) ([f6c7271](https://github.com/homarr-labs/homarr/commit/f6c7271fb43324f7e9eb0f8cc7ae5646f516b8b2)) +- **deps:** update dependency tldts to ^6.1.49 ([#1216](https://github.com/homarr-labs/homarr/issues/1216)) ([2f3619b](https://github.com/homarr-labs/homarr/commit/2f3619b68dc9f3c20a229b896f8b3c4b91e5c0a7)) +- **deps:** update dependency tldts to ^6.1.50 ([#1228](https://github.com/homarr-labs/homarr/issues/1228)) ([17572bc](https://github.com/homarr-labs/homarr/commit/17572bc602a7b1e42def413f1a7668cf1280170b)) +- **deps:** update dependency tldts to ^6.1.51 ([#1288](https://github.com/homarr-labs/homarr/issues/1288)) ([0fadc28](https://github.com/homarr-labs/homarr/commit/0fadc28a125aa68e6d6d96a17c7c86012d13a288)) +- **deps:** update dependency tldts to ^6.1.52 ([#1307](https://github.com/homarr-labs/homarr/issues/1307)) ([c4ec4f3](https://github.com/homarr-labs/homarr/commit/c4ec4f3c66078b0c94bb049334e32e31e41936ac)) +- **deps:** update dependency tldts to ^6.1.53 ([#1351](https://github.com/homarr-labs/homarr/issues/1351)) ([a8c36f3](https://github.com/homarr-labs/homarr/commit/a8c36f35c3e5a9342fe932832342f76855c8d4d4)) +- **deps:** update dependency tldts to ^6.1.54 ([#1353](https://github.com/homarr-labs/homarr/issues/1353)) ([e062ea1](https://github.com/homarr-labs/homarr/commit/e062ea150782b73d0a86748fef43355a46df2244)) +- **deps:** update dependency tldts to ^6.1.55 ([#1369](https://github.com/homarr-labs/homarr/issues/1369)) ([3a6e957](https://github.com/homarr-labs/homarr/commit/3a6e957710c08e64cc7b42ecca2bf5069cceb896)) +- **deps:** update dependency tldts to ^6.1.56 ([#1375](https://github.com/homarr-labs/homarr/issues/1375)) ([f8c21f6](https://github.com/homarr-labs/homarr/commit/f8c21f6000e8d8843e43afaf09713f958b318f0f)) +- **deps:** update dependency tldts to ^6.1.57 ([#1386](https://github.com/homarr-labs/homarr/issues/1386)) ([8da1dd0](https://github.com/homarr-labs/homarr/commit/8da1dd0d5f95e1d15f1115a8518992935e89059c)) +- **deps:** update dependency tldts to ^6.1.58 ([#1400](https://github.com/homarr-labs/homarr/issues/1400)) ([baabf71](https://github.com/homarr-labs/homarr/commit/baabf717078caba315f39a1d429fc0ba92f3d167)) +- **deps:** update dependency tldts to ^6.1.59 ([#1447](https://github.com/homarr-labs/homarr/issues/1447)) ([2a7d648](https://github.com/homarr-labs/homarr/commit/2a7d64804975797863b9a4a7b03d7ab10f4d8a2b)) +- **deps:** update dependency tldts to ^6.1.60 ([#1460](https://github.com/homarr-labs/homarr/issues/1460)) ([4ab40c6](https://github.com/homarr-labs/homarr/commit/4ab40c6fa8e13af66a0a3b14e3c03955ff98f2c7)) +- **deps:** update dependency tldts to ^6.1.61 ([#1474](https://github.com/homarr-labs/homarr/issues/1474)) ([3ca97fe](https://github.com/homarr-labs/homarr/commit/3ca97fef0b984e06461d92f16564bd787ff53150)) +- **deps:** update dependency tldts to ^6.1.62 ([#1514](https://github.com/homarr-labs/homarr/issues/1514)) ([a2a65ab](https://github.com/homarr-labs/homarr/commit/a2a65abd3d451104d59e8eb55ad74d83f6956784)) +- **deps:** update dependency tldts to ^6.1.63 ([#1519](https://github.com/homarr-labs/homarr/issues/1519)) ([86ae346](https://github.com/homarr-labs/homarr/commit/86ae3469795378f626a2b6aa5eaaf6cd38c874d9)) +- **deps:** update dependency tldts to ^6.1.64 ([#1529](https://github.com/homarr-labs/homarr/issues/1529)) ([cdfb61f](https://github.com/homarr-labs/homarr/commit/cdfb61fb28f6a9adc8658187a41e0cfb3fdc1a8f)) +- **deps:** update dependency tldts to ^6.1.65 ([#1575](https://github.com/homarr-labs/homarr/issues/1575)) ([fb4a19b](https://github.com/homarr-labs/homarr/commit/fb4a19bfe457d1d815e9b72a85c8ea742b950a69)) +- **deps:** update dependency tldts to ^6.1.66 ([#1625](https://github.com/homarr-labs/homarr/issues/1625)) ([6a79d01](https://github.com/homarr-labs/homarr/commit/6a79d01d79b613dccf2a3ffe39a7271bc1931812)) +- **deps:** update dependency tldts to ^6.1.67 ([#1648](https://github.com/homarr-labs/homarr/issues/1648)) ([75c0f70](https://github.com/homarr-labs/homarr/commit/75c0f70ef6159bbada6770a49cfba59f4470fcfc)) +- **deps:** update dependency tldts to ^6.1.68 ([#1656](https://github.com/homarr-labs/homarr/issues/1656)) ([3347886](https://github.com/homarr-labs/homarr/commit/3347886f1e6754f9dd0f8a9975c51bf61b0d3f59)) +- **deps:** update dependency tldts to ^6.1.69 ([#1726](https://github.com/homarr-labs/homarr/issues/1726)) ([c0f6816](https://github.com/homarr-labs/homarr/commit/c0f681637db1d6e7abdf3326b3a3c17283440d09)) +- **deps:** update dependency trpc-swagger to ^1.2.6 ([#1032](https://github.com/homarr-labs/homarr/issues/1032)) ([e60e4a4](https://github.com/homarr-labs/homarr/commit/e60e4a49f84ec46f47bdaa830cea5ddeaf7ba8a3)) +- **deps:** update dependency trpc-to-openapi to ^2.0.3 ([#1576](https://github.com/homarr-labs/homarr/issues/1576)) ([0ab9d0b](https://github.com/homarr-labs/homarr/commit/0ab9d0bd694d2cb66de45bcfd0010ecc2b226cb7)) +- **deps:** update dependency trpc-to-openapi to ^2.0.4 ([#1578](https://github.com/homarr-labs/homarr/issues/1578)) ([3ffdc05](https://github.com/homarr-labs/homarr/commit/3ffdc054429a6ec6a3ddc14b9d1ac97602eb0f15)) +- **deps:** update dependency trpc-to-openapi to ^2.1.0 ([#1579](https://github.com/homarr-labs/homarr/issues/1579)) ([7343bdd](https://github.com/homarr-labs/homarr/commit/7343bdde1304f655149c257319996047ddd8a530)) +- **deps:** update dependency trpc-to-openapi to ^2.1.1 ([#1788](https://github.com/homarr-labs/homarr/issues/1788)) ([4943e7b](https://github.com/homarr-labs/homarr/commit/4943e7b851cd29291b5e8f2f9d0e084b4deeffc0)) +- **deps:** update dependency trpc-to-openapi to ^2.1.2 ([#1900](https://github.com/homarr-labs/homarr/issues/1900)) ([8edf922](https://github.com/homarr-labs/homarr/commit/8edf922e3050ba9d8c951180ae68f628067c190e)) +- **deps:** update dependency typescript-eslint to ^7.13.0 ([#653](https://github.com/homarr-labs/homarr/issues/653)) ([1949885](https://github.com/homarr-labs/homarr/commit/19498854fc1da6fdb9ec29f3ecb7a113a6b2a33e)) +- **deps:** update dependency typescript-eslint to ^7.13.1 ([#681](https://github.com/homarr-labs/homarr/issues/681)) ([e9d6120](https://github.com/homarr-labs/homarr/commit/e9d612051d043253d7c41bafdd4be82949564e43)) +- **deps:** update dependency typescript-eslint to ^7.14.1 ([#709](https://github.com/homarr-labs/homarr/issues/709)) ([196ac34](https://github.com/homarr-labs/homarr/commit/196ac340a16528196e1ca405147c83ed31f8337a)) +- **deps:** update dependency typescript-eslint to ^7.15.0 ([#732](https://github.com/homarr-labs/homarr/issues/732)) ([0990e4b](https://github.com/homarr-labs/homarr/commit/0990e4b552e3c65ee8802e11d2bd3adceab24009)) +- **deps:** update dependency typescript-eslint to ^7.16.0 ([#762](https://github.com/homarr-labs/homarr/issues/762)) ([2c197bc](https://github.com/homarr-labs/homarr/commit/2c197bc59bab428db4990a7c99b1dcdd8b372617)) +- **deps:** update dependency typescript-eslint to ^7.16.1 ([#814](https://github.com/homarr-labs/homarr/issues/814)) ([56c6be5](https://github.com/homarr-labs/homarr/commit/56c6be523db5219b97bafbc53d63360d019fefcc)) +- **deps:** update dependency typescript-eslint to ^7.17.0 ([#855](https://github.com/homarr-labs/homarr/issues/855)) ([b2860ff](https://github.com/homarr-labs/homarr/commit/b2860ffbd3e29ef21021b2416d0c26f0e3b6c54c)) +- **deps:** update dependency typescript-eslint to ^7.18.0 ([#886](https://github.com/homarr-labs/homarr/issues/886)) ([1a24ba6](https://github.com/homarr-labs/homarr/commit/1a24ba6ef73eb058f19f31140cff5198311eba08)) +- **deps:** update dependency typescript-eslint to ^8.0.1 ([#921](https://github.com/homarr-labs/homarr/issues/921)) ([c69483a](https://github.com/homarr-labs/homarr/commit/c69483a12c14ab284dd3cacd0e31d194dcc48cfc)) +- **deps:** update dependency typescript-eslint to ^8.1.0 ([#968](https://github.com/homarr-labs/homarr/issues/968)) ([b9f048c](https://github.com/homarr-labs/homarr/commit/b9f048c57d9f2618f8059862a800259246caa2f8)) +- **deps:** update dependency typescript-eslint to ^8.10.0 ([#1317](https://github.com/homarr-labs/homarr/issues/1317)) ([a231a2d](https://github.com/homarr-labs/homarr/commit/a231a2da6cd42e355fff52b9cf718f44c658cfff)) +- **deps:** update dependency typescript-eslint to ^8.11.0 ([#1346](https://github.com/homarr-labs/homarr/issues/1346)) ([a005ead](https://github.com/homarr-labs/homarr/commit/a005ead158ca1f058605b2a3198af438c7039109)) +- **deps:** update dependency typescript-eslint to ^8.12.2 ([#1381](https://github.com/homarr-labs/homarr/issues/1381)) ([17401d1](https://github.com/homarr-labs/homarr/commit/17401d1d7284088bc5fdc0e037dc72f75e8abd7e)) +- **deps:** update dependency typescript-eslint to ^8.13.0 ([#1420](https://github.com/homarr-labs/homarr/issues/1420)) ([97eb4c5](https://github.com/homarr-labs/homarr/commit/97eb4c54e2f7f9cfc0467b0236b4a2db87bc546c)) +- **deps:** update dependency typescript-eslint to ^8.14.0 ([#1465](https://github.com/homarr-labs/homarr/issues/1465)) ([53acff9](https://github.com/homarr-labs/homarr/commit/53acff91430b9889c90ab9e1a35bce792baa4dd9)) +- **deps:** update dependency typescript-eslint to ^8.15.0 ([#1497](https://github.com/homarr-labs/homarr/issues/1497)) ([b887713](https://github.com/homarr-labs/homarr/commit/b8877137ac05a08c5647d0ba785439d364d9bafb)) +- **deps:** update dependency typescript-eslint to ^8.16.0 ([#1544](https://github.com/homarr-labs/homarr/issues/1544)) ([4df6006](https://github.com/homarr-labs/homarr/commit/4df6006f0e487028fffc3f65d4fa20b2f252e612)) +- **deps:** update dependency typescript-eslint to ^8.17.0 ([#1582](https://github.com/homarr-labs/homarr/issues/1582)) ([5ecf93a](https://github.com/homarr-labs/homarr/commit/5ecf93a317f8face4d47d255c83c7f197eccdb92)) +- **deps:** update dependency typescript-eslint to ^8.18.0 ([#1634](https://github.com/homarr-labs/homarr/issues/1634)) ([3bee3fe](https://github.com/homarr-labs/homarr/commit/3bee3fe3f64c274c73f698cd5f8850f4496c35bd)) +- **deps:** update dependency typescript-eslint to ^8.18.1 ([#1673](https://github.com/homarr-labs/homarr/issues/1673)) ([613d1f9](https://github.com/homarr-labs/homarr/commit/613d1f966282886c6a85bc400dfedbc4bdac906c)) +- **deps:** update dependency typescript-eslint to ^8.18.2 ([#1762](https://github.com/homarr-labs/homarr/issues/1762)) ([9223dd0](https://github.com/homarr-labs/homarr/commit/9223dd06ee0c2b51e036f607d7b3252c61ab77ea)) +- **deps:** update dependency typescript-eslint to ^8.19.0 ([#1814](https://github.com/homarr-labs/homarr/issues/1814)) ([598f004](https://github.com/homarr-labs/homarr/commit/598f0047eb13d6d0d6b68c9032a7a6648f4b6aa3)) +- **deps:** update dependency typescript-eslint to ^8.19.1 ([#1874](https://github.com/homarr-labs/homarr/issues/1874)) ([be4e753](https://github.com/homarr-labs/homarr/commit/be4e75321a0a6a05c6ac6c4ba97ffb5068aed4aa)) +- **deps:** update dependency typescript-eslint to ^8.2.0 ([#999](https://github.com/homarr-labs/homarr/issues/999)) ([0585187](https://github.com/homarr-labs/homarr/commit/058518710e02ea47bc6e221cab43604d70b16ab5)) +- **deps:** update dependency typescript-eslint to ^8.20.0 ([#1938](https://github.com/homarr-labs/homarr/issues/1938)) ([feecdd3](https://github.com/homarr-labs/homarr/commit/feecdd36d49890022e8f479efe6cefa3f77d265a)) +- **deps:** update dependency typescript-eslint to ^8.3.0 ([#1036](https://github.com/homarr-labs/homarr/issues/1036)) ([b0e2692](https://github.com/homarr-labs/homarr/commit/b0e269209e67db1569effd72d1560c0414574654)) +- **deps:** update dependency typescript-eslint to ^8.4.0 ([#1058](https://github.com/homarr-labs/homarr/issues/1058)) ([1d23667](https://github.com/homarr-labs/homarr/commit/1d236678b334c35358a3d95e75d81ad16657afca)) +- **deps:** update dependency typescript-eslint to ^8.5.0 ([#1089](https://github.com/homarr-labs/homarr/issues/1089)) ([c844eb2](https://github.com/homarr-labs/homarr/commit/c844eb2a224c473dd42df4a1ffc9a74bd533e0e2)) +- **deps:** update dependency typescript-eslint to ^8.6.0 ([#1136](https://github.com/homarr-labs/homarr/issues/1136)) ([3ef478c](https://github.com/homarr-labs/homarr/commit/3ef478c53ab56c50b1ee1d71eebfcc32a4b8828a)) +- **deps:** update dependency typescript-eslint to ^8.7.0 ([#1165](https://github.com/homarr-labs/homarr/issues/1165)) ([6aa5adf](https://github.com/homarr-labs/homarr/commit/6aa5adf5b0602dc3c7de75d9fc88c751d77ceed9)) +- **deps:** update dependency typescript-eslint to ^8.8.0 ([#1207](https://github.com/homarr-labs/homarr/issues/1207)) ([233033f](https://github.com/homarr-labs/homarr/commit/233033f1ce2c1348287fd4f37cf27e53ca317868)) +- **deps:** update dependency typescript-eslint to ^8.8.1 ([#1266](https://github.com/homarr-labs/homarr/issues/1266)) ([4d51e3b](https://github.com/homarr-labs/homarr/commit/4d51e3b3442860fa43ef2766681aaf2bce771d3f)) +- **deps:** update dependency typescript-eslint to ^8.9.0 ([#1292](https://github.com/homarr-labs/homarr/issues/1292)) ([65b1ae2](https://github.com/homarr-labs/homarr/commit/65b1ae26d15d29820f3feb097f6ccf43e89b5e22)) +- **deps:** update dependency typescript-eslint to v8 ([#896](https://github.com/homarr-labs/homarr/issues/896)) ([a9a4602](https://github.com/homarr-labs/homarr/commit/a9a46024e2a1a130bf0f2d9f87d1fa7caa35823b)) +- **deps:** update dependency undici to v6.19.2 ([#691](https://github.com/homarr-labs/homarr/issues/691)) ([541d745](https://github.com/homarr-labs/homarr/commit/541d745cea4d615d88f0af454e39de61cfa104cf)) +- **deps:** update dependency undici to v6.19.3 ([#850](https://github.com/homarr-labs/homarr/issues/850)) ([1098725](https://github.com/homarr-labs/homarr/commit/1098725bd1f010056e40eb00db40e19011ef158a)) +- **deps:** update dependency undici to v6.19.4 ([#854](https://github.com/homarr-labs/homarr/issues/854)) ([0c7264b](https://github.com/homarr-labs/homarr/commit/0c7264bc52c80794a74c9836ae9f9d56df6fc52c)) +- **deps:** update dependency undici to v6.19.5 ([#893](https://github.com/homarr-labs/homarr/issues/893)) ([5256853](https://github.com/homarr-labs/homarr/commit/525685335103289eb06606b04610dcec1ecbf0a1)) +- **deps:** update dependency undici to v6.19.7 ([#950](https://github.com/homarr-labs/homarr/issues/950)) ([3be1100](https://github.com/homarr-labs/homarr/commit/3be110097bcb500ef79d88b28b626bcf15329ed3)) +- **deps:** update dependency undici to v6.19.8 ([#998](https://github.com/homarr-labs/homarr/issues/998)) ([9666440](https://github.com/homarr-labs/homarr/commit/9666440e803ce2275ef3d90ebbc37c00592b8372)) +- **deps:** update dependency undici to v6.20.0 ([#1275](https://github.com/homarr-labs/homarr/issues/1275)) ([c7b2261](https://github.com/homarr-labs/homarr/commit/c7b226142feaa3fb0651cdf8473d714643e8144d)) +- **deps:** update dependency undici to v6.20.1 ([#1291](https://github.com/homarr-labs/homarr/issues/1291)) ([85cf101](https://github.com/homarr-labs/homarr/commit/85cf101043a7dbcd9b3a956eb8b7fffb6d3712e3)) +- **deps:** update dependency undici to v6.21.0 ([#1477](https://github.com/homarr-labs/homarr/issues/1477)) ([07f89af](https://github.com/homarr-labs/homarr/commit/07f89afea8eb47894c1ef94e8f62f8fb8c45ebe8)) +- **deps:** update dependency undici to v7 ([#1560](https://github.com/homarr-labs/homarr/issues/1560)) ([44e2105](https://github.com/homarr-labs/homarr/commit/44e2105a8c9d7cc746f0424bf1f718f426dbea93)) +- **deps:** update dependency undici to v7.1.0 ([#1593](https://github.com/homarr-labs/homarr/issues/1593)) ([fb1f000](https://github.com/homarr-labs/homarr/commit/fb1f0003e60d21713968bc6ff4ec1ce85bc54388)) +- **deps:** update dependency undici to v7.1.1 ([#1674](https://github.com/homarr-labs/homarr/issues/1674)) ([02777d1](https://github.com/homarr-labs/homarr/commit/02777d104c5da555337b3b1494a906488fcc7d64)) +- **deps:** update dependency undici to v7.2.0 ([#1718](https://github.com/homarr-labs/homarr/issues/1718)) ([61afab5](https://github.com/homarr-labs/homarr/commit/61afab518f6193a700a547faffa4619b28fb0837)) +- **deps:** update dependency undici to v7.2.1 ([#1904](https://github.com/homarr-labs/homarr/issues/1904)) ([b034dcb](https://github.com/homarr-labs/homarr/commit/b034dcbb11017a016e30db0e2bf8c1a0765174ca)) +- **deps:** update dependency undici to v7.2.2 ([#1957](https://github.com/homarr-labs/homarr/issues/1957)) ([aaddf0d](https://github.com/homarr-labs/homarr/commit/aaddf0d987a25ef94db70b2a35ababfe63e414a4)) +- **deps:** update dependency undici to v7.2.3 ([#1963](https://github.com/homarr-labs/homarr/issues/1963)) ([5e83847](https://github.com/homarr-labs/homarr/commit/5e83847772e75a8a16ad34781092d3aea8fb5771)) +- **deps:** update dependency video.js to ^8.12.0 ([#400](https://github.com/homarr-labs/homarr/issues/400)) ([fc1360d](https://github.com/homarr-labs/homarr/commit/fc1360d6bb9512be8ca1f91e8624d2b9b45d1175)) +- **deps:** update dependency video.js to ^8.16.1 ([#772](https://github.com/homarr-labs/homarr/issues/772)) ([8085e72](https://github.com/homarr-labs/homarr/commit/8085e72cf487a1a757bd07f85f46280f2e677f9f)) +- **deps:** update dependency video.js to ^8.17.1 ([#884](https://github.com/homarr-labs/homarr/issues/884)) ([bce73bc](https://github.com/homarr-labs/homarr/commit/bce73bc38f19b5382f0ab233eac667dd926c27a3)) +- **deps:** update dependency video.js to ^8.17.2 ([#917](https://github.com/homarr-labs/homarr/issues/917)) ([796261c](https://github.com/homarr-labs/homarr/commit/796261c5f5f1fa2b02ce3d9ef338a5196d90ec07)) +- **deps:** update dependency video.js to ^8.17.3 ([#971](https://github.com/homarr-labs/homarr/issues/971)) ([0472594](https://github.com/homarr-labs/homarr/commit/04725942eeca3e4c535c6773044eea1b2dc68a33)) +- **deps:** update dependency video.js to ^8.17.4 ([#1099](https://github.com/homarr-labs/homarr/issues/1099)) ([8c9bb6e](https://github.com/homarr-labs/homarr/commit/8c9bb6e5d5eb61f5f7d60aa38c44c94675ab8202)) +- **deps:** update dependency video.js to ^8.18.1 ([#1259](https://github.com/homarr-labs/homarr/issues/1259)) ([ea84b1c](https://github.com/homarr-labs/homarr/commit/ea84b1c372efc40c4c48bf18347c734291a95997)) +- **deps:** update dependency video.js to ^8.19.1 ([#1370](https://github.com/homarr-labs/homarr/issues/1370)) ([4985bd8](https://github.com/homarr-labs/homarr/commit/4985bd8f9123b629dc9bba3c6bb40eaeab96cf87)) +- **deps:** update dependency video.js to ^8.20.0 ([#1561](https://github.com/homarr-labs/homarr/issues/1561)) ([9f98290](https://github.com/homarr-labs/homarr/commit/9f982906f25b042443ac57e8a46ccf98aca5731d)) +- **deps:** update dependency video.js to ^8.21.0 ([#1617](https://github.com/homarr-labs/homarr/issues/1617)) ([5c11a95](https://github.com/homarr-labs/homarr/commit/5c11a95ddcb8e31fbb1c1156a24a89f04f7c22b1)) +- **deps:** update dependency vite to ^5.2.3 ([#253](https://github.com/homarr-labs/homarr/issues/253)) ([7214df3](https://github.com/homarr-labs/homarr/commit/7214df3e442bb8dfc588b1470ed5cef89636643e)) +- **deps:** update dependency vite to ^5.2.5 ([#259](https://github.com/homarr-labs/homarr/issues/259)) ([8d40f54](https://github.com/homarr-labs/homarr/commit/8d40f54d7d1e350f1cd274de493fbe003eee2641)) +- **deps:** update dependency vite to ^5.2.6 ([#262](https://github.com/homarr-labs/homarr/issues/262)) ([36073db](https://github.com/homarr-labs/homarr/commit/36073dbc5ee404379e8ad165a53c2f703642b07a)) +- **deps:** update dependency winston to v3.12.0 ([#188](https://github.com/homarr-labs/homarr/issues/188)) ([fde6d66](https://github.com/homarr-labs/homarr/commit/fde6d6601d8a19b95896ccd8cd9654c48b1f6c48)) +- **deps:** update dependency winston to v3.13.0 ([#263](https://github.com/homarr-labs/homarr/issues/263)) ([724b348](https://github.com/homarr-labs/homarr/commit/724b3481063c028465af08127fb419b0551bb455)) +- **deps:** update dependency winston to v3.13.1 ([#781](https://github.com/homarr-labs/homarr/issues/781)) ([5382b19](https://github.com/homarr-labs/homarr/commit/5382b1999fd3d6ec3e6e043fbde5bd68a93f0e2d)) +- **deps:** update dependency winston to v3.14.0 ([#935](https://github.com/homarr-labs/homarr/issues/935)) ([ac4b4ed](https://github.com/homarr-labs/homarr/commit/ac4b4ed9cf5fc815dd83dce5e3f9608b4aac07af)) +- **deps:** update dependency winston to v3.14.1 ([#941](https://github.com/homarr-labs/homarr/issues/941)) ([db9c200](https://github.com/homarr-labs/homarr/commit/db9c200f890c70be6163b451e30f8950b676c2a1)) +- **deps:** update dependency winston to v3.14.2 ([#979](https://github.com/homarr-labs/homarr/issues/979)) ([b9bcc1d](https://github.com/homarr-labs/homarr/commit/b9bcc1d23aa20bf665c0fb13ec14f8eed0f6516e)) +- **deps:** update dependency winston to v3.15.0 ([#1245](https://github.com/homarr-labs/homarr/issues/1245)) ([20e6399](https://github.com/homarr-labs/homarr/commit/20e6399d5e493158b7c0fb9370e9287075d315da)) +- **deps:** update dependency winston to v3.16.0 ([#1398](https://github.com/homarr-labs/homarr/issues/1398)) ([02ddb1c](https://github.com/homarr-labs/homarr/commit/02ddb1c9c6d15e4965c93935ff7887f90bff05a4)) +- **deps:** update dependency winston to v3.17.0 ([#1457](https://github.com/homarr-labs/homarr/issues/1457)) ([fc4cddc](https://github.com/homarr-labs/homarr/commit/fc4cddcbac74122e652d5409c875694ae11dc78a)) +- **deps:** update dependency ws to ^8.17.0 ([#392](https://github.com/homarr-labs/homarr/issues/392)) ([55822ee](https://github.com/homarr-labs/homarr/commit/55822ee7a51b4f907ed5be3b8202c60d07dce506)) +- **deps:** update dependency ws to ^8.17.1 ([#676](https://github.com/homarr-labs/homarr/issues/676)) ([0d14bad](https://github.com/homarr-labs/homarr/commit/0d14bad10bc45b50e0d3551c071f1ec62c9b7403)) +- **deps:** update dependency ws to ^8.18.0 ([#740](https://github.com/homarr-labs/homarr/issues/740)) ([1dd509a](https://github.com/homarr-labs/homarr/commit/1dd509a40fb9090ba88a0d8e1a67baf58b244cd9)) +- **deps:** update dependency zod to ^3.22.5 ([#361](https://github.com/homarr-labs/homarr/issues/361)) ([cb2b934](https://github.com/homarr-labs/homarr/commit/cb2b934c83c3464ff71bd9dff3be9742e975ef8c)) +- **deps:** update dependency zod to ^3.23.4 ([#373](https://github.com/homarr-labs/homarr/issues/373)) ([392a185](https://github.com/homarr-labs/homarr/commit/392a18564045ab2ea68c694192f771234e40b90c)) +- **deps:** update dependency zod to ^3.23.5 ([#399](https://github.com/homarr-labs/homarr/issues/399)) ([56388eb](https://github.com/homarr-labs/homarr/commit/56388eb8ef452e1dae0ca9c0c68ed6a2ff6fbbd1)) +- **deps:** update dependency zod to ^3.23.6 ([#424](https://github.com/homarr-labs/homarr/issues/424)) ([11c20ce](https://github.com/homarr-labs/homarr/commit/11c20ce711e564bc76d835ed839dbe7dfe332301)) +- **deps:** update dependency zod to ^3.23.7 ([#456](https://github.com/homarr-labs/homarr/issues/456)) ([cab3405](https://github.com/homarr-labs/homarr/commit/cab34052f905d22f5ee593a960895cc9c137292c)) +- **deps:** update dependency zod to ^3.23.8 ([#460](https://github.com/homarr-labs/homarr/issues/460)) ([687556a](https://github.com/homarr-labs/homarr/commit/687556ad96136a72dc720a38f4628d0ba5a1cbcb)) +- **deps:** update dependency zod to ^3.24.0 ([#1635](https://github.com/homarr-labs/homarr/issues/1635)) ([8a25467](https://github.com/homarr-labs/homarr/commit/8a2546704b56d35786681fa6924770b04f833dff)) +- **deps:** update dependency zod to ^3.24.1 ([#1642](https://github.com/homarr-labs/homarr/issues/1642)) ([5e466e8](https://github.com/homarr-labs/homarr/commit/5e466e80c54accbc303e44d2093518465ad5863e)) +- **deps:** update dependency zod-form-data to ^2.0.3 ([#1717](https://github.com/homarr-labs/homarr/issues/1717)) ([a7bd664](https://github.com/homarr-labs/homarr/commit/a7bd664c5cee578574bf37b7149a2142be9f8b7a)) +- **deps:** update dependency zod-form-data to ^2.0.4 ([#1719](https://github.com/homarr-labs/homarr/issues/1719)) ([3b7e6cc](https://github.com/homarr-labs/homarr/commit/3b7e6cc083220a0e3a0cf4f5243c073067ba5bc7)) +- **deps:** update dependency zod-form-data to ^2.0.5 ([#1822](https://github.com/homarr-labs/homarr/issues/1822)) ([a234fc8](https://github.com/homarr-labs/homarr/commit/a234fc844e5edcef9935efb0725b6ccceadfe69d)) +- **deps:** update gridstack.js fork to v1.11.2 ([#1605](https://github.com/homarr-labs/homarr/issues/1605)) ([bf45860](https://github.com/homarr-labs/homarr/commit/bf45860966987be44c5eecf9add34173f5968194)) +- **deps:** update mantine monorepo to ^7.10.0 ([#538](https://github.com/homarr-labs/homarr/issues/538)) ([ad3ef4c](https://github.com/homarr-labs/homarr/commit/ad3ef4c313fceb40baaedb9bc3b0e17009eed5cb)) +- **deps:** update mantine monorepo to ^7.10.1 ([#581](https://github.com/homarr-labs/homarr/issues/581)) ([b12d109](https://github.com/homarr-labs/homarr/commit/b12d109f6dfa4f90fc9fe2fae216894d601d0594)) +- **deps:** update mantine monorepo to ^7.10.2 ([#662](https://github.com/homarr-labs/homarr/issues/662)) ([4e9593b](https://github.com/homarr-labs/homarr/commit/4e9593b859c2d16e89940de9abed418ae184f36f)) +- **deps:** update mantine monorepo to ^7.11.0 ([#719](https://github.com/homarr-labs/homarr/issues/719)) ([52e936f](https://github.com/homarr-labs/homarr/commit/52e936f979b9cb6968c6cfe3a66c2c652245c6d8)) +- **deps:** update mantine monorepo to ^7.11.1 ([#735](https://github.com/homarr-labs/homarr/issues/735)) ([60c0cfa](https://github.com/homarr-labs/homarr/commit/60c0cfa9119ae946ca232df00dcebf73c3259a00)) +- **deps:** update mantine monorepo to ^7.11.2 ([#808](https://github.com/homarr-labs/homarr/issues/808)) ([fe5af92](https://github.com/homarr-labs/homarr/commit/fe5af9231e0c8e604558056e28ddc0ad5d440ad8)) +- **deps:** update mantine monorepo to ^7.12.0 ([#920](https://github.com/homarr-labs/homarr/issues/920)) ([137ebf6](https://github.com/homarr-labs/homarr/commit/137ebf6d22bc1a420bab52444e2cd3df5fe31852)) +- **deps:** update mantine monorepo to ^7.12.1 ([#967](https://github.com/homarr-labs/homarr/issues/967)) ([5b651a7](https://github.com/homarr-labs/homarr/commit/5b651a782aef6ce6ecef58be0491642d4cf0c94f)) +- **deps:** update mantine monorepo to ^7.12.2 ([#1048](https://github.com/homarr-labs/homarr/issues/1048)) ([51be024](https://github.com/homarr-labs/homarr/commit/51be02477b63725f5052d478a6db59c48be1fdf0)) +- **deps:** update mantine monorepo to ^7.13.0 ([#1178](https://github.com/homarr-labs/homarr/issues/1178)) ([78230b1](https://github.com/homarr-labs/homarr/commit/78230b1fe9d4b5b071d80782f6ad177993903dd1)) +- **deps:** update mantine monorepo to ^7.13.1 ([#1205](https://github.com/homarr-labs/homarr/issues/1205)) ([6ce466d](https://github.com/homarr-labs/homarr/commit/6ce466d38ec8d3968c4f90583cdfd83d97a42154)) +- **deps:** update mantine monorepo to ^7.13.2 ([#1227](https://github.com/homarr-labs/homarr/issues/1227)) ([d383664](https://github.com/homarr-labs/homarr/commit/d3836648c288ca595ac7b43cc1a2089cd52b7cdd)) +- **deps:** update mantine monorepo to ^7.13.3 ([#1316](https://github.com/homarr-labs/homarr/issues/1316)) ([84bb1de](https://github.com/homarr-labs/homarr/commit/84bb1deae51982d5c7465b180198034c9f9b861a)) +- **deps:** update mantine monorepo to ^7.13.4 ([#1364](https://github.com/homarr-labs/homarr/issues/1364)) ([f55b813](https://github.com/homarr-labs/homarr/commit/f55b813aa1a1df8c1b5c0f29a9a302dab025a1aa)) +- **deps:** update mantine monorepo to ^7.13.5 ([#1449](https://github.com/homarr-labs/homarr/issues/1449)) ([2306ecd](https://github.com/homarr-labs/homarr/commit/2306ecda9f562e94ef21eae495eab4e7fc5a3fc2)) +- **deps:** update mantine monorepo to ^7.14.0 ([#1470](https://github.com/homarr-labs/homarr/issues/1470)) ([11ce6fa](https://github.com/homarr-labs/homarr/commit/11ce6faa37bcd6c54f348ed8c5d003ff4c061b40)) +- **deps:** update mantine monorepo to ^7.14.1 ([#1494](https://github.com/homarr-labs/homarr/issues/1494)) ([775d0a5](https://github.com/homarr-labs/homarr/commit/775d0a53decfbebdbab06936557adade378fd0c0)) +- **deps:** update mantine monorepo to ^7.14.2 ([#1537](https://github.com/homarr-labs/homarr/issues/1537)) ([2e28147](https://github.com/homarr-labs/homarr/commit/2e2814707e0a5c2c38ccefcf0387cc0dab195fb9)) +- **deps:** update mantine monorepo to ^7.14.3 ([#1563](https://github.com/homarr-labs/homarr/issues/1563)) ([09dae45](https://github.com/homarr-labs/homarr/commit/09dae45ae8c33cf9212b72b7b048bbb3866880eb)) +- **deps:** update mantine monorepo to ^7.15.0 ([#1636](https://github.com/homarr-labs/homarr/issues/1636)) ([99bb680](https://github.com/homarr-labs/homarr/commit/99bb68012faffa78e9eb279dcf57007250a7a343)) +- **deps:** update mantine monorepo to ^7.15.1 ([#1649](https://github.com/homarr-labs/homarr/issues/1649)) ([732f4d4](https://github.com/homarr-labs/homarr/commit/732f4d45bdc1a063640a4636de4b67f25927fe43)) +- **deps:** update mantine monorepo to ^7.15.2 ([#1757](https://github.com/homarr-labs/homarr/issues/1757)) ([dfacb08](https://github.com/homarr-labs/homarr/commit/dfacb08dbddb6864646ece2fca6978207f0c58ac)) +- **deps:** update mantine monorepo to ^7.15.3 ([#1880](https://github.com/homarr-labs/homarr/issues/1880)) ([7807b28](https://github.com/homarr-labs/homarr/commit/7807b28d24327db89514da533cb06f4c296b579d)) +- **deps:** update mantine monorepo to ^7.16.0 ([#1948](https://github.com/homarr-labs/homarr/issues/1948)) ([a03a01b](https://github.com/homarr-labs/homarr/commit/a03a01b964e3ab30af6078326b91fb10817b3b98)) +- **deps:** update mantine monorepo to ^7.5.2 ([#71](https://github.com/homarr-labs/homarr/issues/71)) ([81e61b4](https://github.com/homarr-labs/homarr/commit/81e61b4d6bea3f32822917c4cf03f4d5876397ca)) +- **deps:** update mantine monorepo to ^7.5.3 ([#97](https://github.com/homarr-labs/homarr/issues/97)) ([35edfc7](https://github.com/homarr-labs/homarr/commit/35edfc74c4000d59b72f58fb42a00093151d4f38)) +- **deps:** update mantine monorepo to ^7.6.1 ([#157](https://github.com/homarr-labs/homarr/issues/157)) ([8c0534f](https://github.com/homarr-labs/homarr/commit/8c0534f54c416af94743e1cf20d92a33e06c804c)) +- **deps:** update mantine monorepo to ^7.6.2 ([#221](https://github.com/homarr-labs/homarr/issues/221)) ([fc29db0](https://github.com/homarr-labs/homarr/commit/fc29db0151de2638d7550dad0a8328b87164a732)) +- **deps:** update mantine monorepo to ^7.7.1 ([#272](https://github.com/homarr-labs/homarr/issues/272)) ([c9e1580](https://github.com/homarr-labs/homarr/commit/c9e15805a9b4c845e5cc379ae8267c7c659c60a6)) +- **deps:** update mantine monorepo to ^7.8.0 ([#343](https://github.com/homarr-labs/homarr/issues/343)) ([3e3299a](https://github.com/homarr-labs/homarr/commit/3e3299a358b44f86c850b3b96edf14e503d92151)) +- **deps:** update mantine monorepo to ^7.8.1 ([#377](https://github.com/homarr-labs/homarr/issues/377)) ([92b417a](https://github.com/homarr-labs/homarr/commit/92b417a37e070352d4830ab6d907421a89440308)) +- **deps:** update mantine monorepo to ^7.9.0 ([#423](https://github.com/homarr-labs/homarr/issues/423)) ([90b9d56](https://github.com/homarr-labs/homarr/commit/90b9d5672959e68c551b2bd9190b8ad97fbec1d0)) +- **deps:** update mantine monorepo to ^7.9.1 ([#457](https://github.com/homarr-labs/homarr/issues/457)) ([48d7aaa](https://github.com/homarr-labs/homarr/commit/48d7aaaf1d0e59bd2573bbe01a3421d14cd64be1)) +- **deps:** update mantine monorepo to ^7.9.2 ([#510](https://github.com/homarr-labs/homarr/issues/510)) ([abffc86](https://github.com/homarr-labs/homarr/commit/abffc866c084c387a553395519c172becaec0618)) +- **deps:** update nest monorepo to ^10.3.5 ([#245](https://github.com/homarr-labs/homarr/issues/245)) ([0ffb3f1](https://github.com/homarr-labs/homarr/commit/0ffb3f18b9bd8c90f826bcb29c257d656dbb91f5)) +- **deps:** update nextjs monorepo to ^14.1.0 ([#38](https://github.com/homarr-labs/homarr/issues/38)) ([dadfc0c](https://github.com/homarr-labs/homarr/commit/dadfc0c5d73395d2c49afbc7c67d0755e102b719)) +- **deps:** update nextjs monorepo to ^14.1.1 ([#147](https://github.com/homarr-labs/homarr/issues/147)) ([b407f2a](https://github.com/homarr-labs/homarr/commit/b407f2a9ac02b3ea6bfa22388e8e1150d2c82d48)) +- **deps:** update nextjs monorepo to ^14.1.2 ([#193](https://github.com/homarr-labs/homarr/issues/193)) ([8df514d](https://github.com/homarr-labs/homarr/commit/8df514dec883a90b3fcee8ef69efed87608618df)) +- **deps:** update nextjs monorepo to ^14.1.3 ([#208](https://github.com/homarr-labs/homarr/issues/208)) ([56d5e70](https://github.com/homarr-labs/homarr/commit/56d5e709bccdff4d37c6964dd1420721fc6f0356)) +- **deps:** update nextjs monorepo to ^14.1.4 ([#252](https://github.com/homarr-labs/homarr/issues/252)) ([28f630f](https://github.com/homarr-labs/homarr/commit/28f630f58b60260cd48990f9edf04173db5bd01d)) +- **deps:** update nextjs monorepo to ^14.2.10 ([#1109](https://github.com/homarr-labs/homarr/issues/1109)) ([fb55f12](https://github.com/homarr-labs/homarr/commit/fb55f1272d890307452cf7c7f3a54eb454da736f)) +- **deps:** update nextjs monorepo to ^14.2.11 ([#1117](https://github.com/homarr-labs/homarr/issues/1117)) ([7a56006](https://github.com/homarr-labs/homarr/commit/7a56006533d0fce5b288e1efe658e026abd062e1)) +- **deps:** update nextjs monorepo to ^14.2.12 ([#1146](https://github.com/homarr-labs/homarr/issues/1146)) ([8f5d7f8](https://github.com/homarr-labs/homarr/commit/8f5d7f83879e68b73f20303fbd9d3f4f70f69e3d)) +- **deps:** update nextjs monorepo to ^14.2.13 ([#1154](https://github.com/homarr-labs/homarr/issues/1154)) ([2258dc3](https://github.com/homarr-labs/homarr/commit/2258dc3ec66fd6d2c0ca9d7d2a689174a806586d)) +- **deps:** update nextjs monorepo to ^14.2.14 ([#1215](https://github.com/homarr-labs/homarr/issues/1215)) ([6f5c993](https://github.com/homarr-labs/homarr/commit/6f5c9935108511783b16c1a8206088e4845f9529)) +- **deps:** update nextjs monorepo to ^14.2.15 ([#1270](https://github.com/homarr-labs/homarr/issues/1270)) ([2bbe594](https://github.com/homarr-labs/homarr/commit/2bbe594cd28decee8934fc7338cdda9b77a2040c)) +- **deps:** update nextjs monorepo to ^14.2.16 ([#1355](https://github.com/homarr-labs/homarr/issues/1355)) ([aea65ea](https://github.com/homarr-labs/homarr/commit/aea65eadcd180e892d823ddccc2657b3beeb8acb)) +- **deps:** update nextjs monorepo to ^14.2.17 ([#1435](https://github.com/homarr-labs/homarr/issues/1435)) ([cd18458](https://github.com/homarr-labs/homarr/commit/cd18458d0c8a91c9068f8fbbfa49b5c0191e8f63)) +- **deps:** update nextjs monorepo to ^14.2.18 ([#1479](https://github.com/homarr-labs/homarr/issues/1479)) ([ccee3dd](https://github.com/homarr-labs/homarr/commit/ccee3dd21732be7106bf04af802c528351d132be)) +- **deps:** update nextjs monorepo to ^14.2.19 ([#1594](https://github.com/homarr-labs/homarr/issues/1594)) ([b0d6230](https://github.com/homarr-labs/homarr/commit/b0d623047ed0aae68741a50345610d2bc65cf86b)) +- **deps:** update nextjs monorepo to ^14.2.2 ([#345](https://github.com/homarr-labs/homarr/issues/345)) ([b465b95](https://github.com/homarr-labs/homarr/commit/b465b95ca26c1b0bc9035c7d2bd72d8a657870b3)) +- **deps:** update nextjs monorepo to ^14.2.20 ([#1610](https://github.com/homarr-labs/homarr/issues/1610)) ([ef65270](https://github.com/homarr-labs/homarr/commit/ef652707788ab68eeadd43dff908387340784f04)) +- **deps:** update nextjs monorepo to ^14.2.21 ([#1727](https://github.com/homarr-labs/homarr/issues/1727)) ([2b4bc83](https://github.com/homarr-labs/homarr/commit/2b4bc8352efa1e2cffb71a6d4d6e42f941358f02)) +- **deps:** update nextjs monorepo to ^14.2.22 ([#1787](https://github.com/homarr-labs/homarr/issues/1787)) ([3d66ff9](https://github.com/homarr-labs/homarr/commit/3d66ff914883a665c0329c8fc4fd087f4d220692)) +- **deps:** update nextjs monorepo to ^14.2.3 ([#381](https://github.com/homarr-labs/homarr/issues/381)) ([75e4e81](https://github.com/homarr-labs/homarr/commit/75e4e8176e36a995ebcd25387cae6435a5723b49)) +- **deps:** update nextjs monorepo to ^14.2.4 ([#658](https://github.com/homarr-labs/homarr/issues/658)) ([476fa59](https://github.com/homarr-labs/homarr/commit/476fa59079a3026fb1ce3d3c1b87a4b99425dccf)) +- **deps:** update nextjs monorepo to ^14.2.5 ([#779](https://github.com/homarr-labs/homarr/issues/779)) ([99175fe](https://github.com/homarr-labs/homarr/commit/99175feda492ff0b0d2d9d07c75d2bd45f69fbb5)) +- **deps:** update nextjs monorepo to ^14.2.6 ([#1009](https://github.com/homarr-labs/homarr/issues/1009)) ([1311e72](https://github.com/homarr-labs/homarr/commit/1311e72ca0a9c16db207d088809debd020da1318)) +- **deps:** update nextjs monorepo to ^14.2.7 ([#1041](https://github.com/homarr-labs/homarr/issues/1041)) ([3771a61](https://github.com/homarr-labs/homarr/commit/3771a61c49ca92f8567bb0905a696236a1e473a0)) +- **deps:** update nextjs monorepo to ^14.2.8 ([#1067](https://github.com/homarr-labs/homarr/issues/1067)) ([ca83872](https://github.com/homarr-labs/homarr/commit/ca83872151a867a42b3504a3eafff585a386b02d)) +- **deps:** update nextjs monorepo to ^14.2.9 ([#1091](https://github.com/homarr-labs/homarr/issues/1091)) ([3f076fa](https://github.com/homarr-labs/homarr/commit/3f076fafcd505b0b18781fc485dec8b144c8051f)) +- **deps:** update nextjs monorepo to ^15.1.4 ([#1885](https://github.com/homarr-labs/homarr/issues/1885)) ([f4f02ca](https://github.com/homarr-labs/homarr/commit/f4f02ca539609705b7192c4327272f88415e1594)) +- **deps:** update nextjs monorepo to v15 (major) ([#1844](https://github.com/homarr-labs/homarr/issues/1844)) ([d985525](https://github.com/homarr-labs/homarr/commit/d98552540a9eb3c24ba92a490f921c2b1911b1f6)) +- **deps:** update react monorepo to v19 (major) ([#1615](https://github.com/homarr-labs/homarr/issues/1615)) ([6f874e8](https://github.com/homarr-labs/homarr/commit/6f874e87abbc20a6e95cfbeb7bb7188d13599672)) +- **deps:** update tanstack-query monorepo ([#126](https://github.com/homarr-labs/homarr/issues/126)) ([71521c0](https://github.com/homarr-labs/homarr/commit/71521c076809fa3041ebf0ce4c9b9365adcf167b)) +- **deps:** update tanstack-query monorepo ([#141](https://github.com/homarr-labs/homarr/issues/141)) ([5d68300](https://github.com/homarr-labs/homarr/commit/5d68300600f0bd890aa4413ada41559f10afcf51)) +- **deps:** update tanstack-query monorepo ([#216](https://github.com/homarr-labs/homarr/issues/216)) ([efbc4cf](https://github.com/homarr-labs/homarr/commit/efbc4cf8fe62c4dd39fa2191238e1d62e5e98f9c)) +- **deps:** update tanstack-query monorepo ([#280](https://github.com/homarr-labs/homarr/issues/280)) ([e74926d](https://github.com/homarr-labs/homarr/commit/e74926d3825a7a31008faf6ec4ef00b6ab5ce669)) +- **deps:** update tanstack-query monorepo to ^5.18.1 ([#39](https://github.com/homarr-labs/homarr/issues/39)) ([717e919](https://github.com/homarr-labs/homarr/commit/717e9194500ad875e2c57bc088a3fa7ec08faf68)) +- **deps:** update tanstack-query monorepo to ^5.20.1 ([#75](https://github.com/homarr-labs/homarr/issues/75)) ([00f4a28](https://github.com/homarr-labs/homarr/commit/00f4a288a413383b4c412a1165eeba8a4c973a67)) +- **deps:** update tanstack-query monorepo to ^5.20.5 ([#86](https://github.com/homarr-labs/homarr/issues/86)) ([b77e652](https://github.com/homarr-labs/homarr/commit/b77e6528225a54839c5b09ad2464c6ab266259c6)) +- **deps:** update tanstack-query monorepo to ^5.21.4 ([#128](https://github.com/homarr-labs/homarr/issues/128)) ([a9a3d98](https://github.com/homarr-labs/homarr/commit/a9a3d98248a9ba518d941f8e437784a98984895d)) +- **deps:** update tanstack-query monorepo to ^5.21.7 ([#133](https://github.com/homarr-labs/homarr/issues/133)) ([e150577](https://github.com/homarr-labs/homarr/commit/e150577c7eea55b3f837951eeaa8fef41468c6af)) +- **deps:** update tanstack-query monorepo to ^5.24.1 ([#156](https://github.com/homarr-labs/homarr/issues/156)) ([3022e7f](https://github.com/homarr-labs/homarr/commit/3022e7f0af1d319e87398e09df27bd5824f0f8b4)) +- **deps:** update tanstack-query monorepo to ^5.24.6 ([#168](https://github.com/homarr-labs/homarr/issues/168)) ([7f2ab7f](https://github.com/homarr-labs/homarr/commit/7f2ab7f192b55f970c6902cde71f85c06a5f67df)) +- **deps:** update tanstack-query monorepo to ^5.24.8 ([#187](https://github.com/homarr-labs/homarr/issues/187)) ([f98046d](https://github.com/homarr-labs/homarr/commit/f98046d9e207bd068fa1cea19c4be0cba61c14c0)) +- **deps:** update tanstack-query monorepo to ^5.25.0 ([#196](https://github.com/homarr-labs/homarr/issues/196)) ([8c9adb3](https://github.com/homarr-labs/homarr/commit/8c9adb31f34991117c18ded417bf13312a04244a)) +- **deps:** update tanstack-query monorepo to ^5.28.0 ([#225](https://github.com/homarr-labs/homarr/issues/225)) ([9a203e8](https://github.com/homarr-labs/homarr/commit/9a203e8fac4379a703ad0d13380bb1a827791cd2)) +- **deps:** update tanstack-query monorepo to ^5.28.14 ([#299](https://github.com/homarr-labs/homarr/issues/299)) ([a4f316f](https://github.com/homarr-labs/homarr/commit/a4f316f10fc11579527722263249523591762e8b)) +- **deps:** update tanstack-query monorepo to ^5.28.4 ([#235](https://github.com/homarr-labs/homarr/issues/235)) ([30278f3](https://github.com/homarr-labs/homarr/commit/30278f37d248f0222dcd86e67a3310961c804a25)) +- **deps:** update tanstack-query monorepo to ^5.28.6 ([#256](https://github.com/homarr-labs/homarr/issues/256)) ([e4e3463](https://github.com/homarr-labs/homarr/commit/e4e3463d0464c37c32da83000ae971006157d1b2)) +- **deps:** update tanstack-query monorepo to ^5.28.8 ([#265](https://github.com/homarr-labs/homarr/issues/265)) ([4783aae](https://github.com/homarr-labs/homarr/commit/4783aaea20c44d823cb01857ffd050f7539948af)) +- **deps:** update tanstack-query monorepo to ^5.29.0 ([#313](https://github.com/homarr-labs/homarr/issues/313)) ([fffefbb](https://github.com/homarr-labs/homarr/commit/fffefbb4c8767ae5803429363ecf323d2384a6a0)) +- **deps:** update tanstack-query monorepo to ^5.29.2 ([#340](https://github.com/homarr-labs/homarr/issues/340)) ([859fdf4](https://github.com/homarr-labs/homarr/commit/859fdf4c440af5176401bdee236b5e19973182ef)) +- **deps:** update tanstack-query monorepo to ^5.32.0 ([#374](https://github.com/homarr-labs/homarr/issues/374)) ([0cdf0b7](https://github.com/homarr-labs/homarr/commit/0cdf0b73bfc410c7457fe7b379a380fdf83a938b)) +- **deps:** update tanstack-query monorepo to ^5.32.1 ([#402](https://github.com/homarr-labs/homarr/issues/402)) ([c988f3d](https://github.com/homarr-labs/homarr/commit/c988f3d7f827dd3121582a69fe1219dedb1ae246)) +- **deps:** update tanstack-query monorepo to ^5.34.1 ([#427](https://github.com/homarr-labs/homarr/issues/427)) ([fb43fc6](https://github.com/homarr-labs/homarr/commit/fb43fc604657e0ee3361db5fb3df8bdf68a22a51)) +- **deps:** update tanstack-query monorepo to ^5.34.2 ([#439](https://github.com/homarr-labs/homarr/issues/439)) ([08d1b6c](https://github.com/homarr-labs/homarr/commit/08d1b6c638c008936d67e1fe720313deaae147cd)) +- **deps:** update tanstack-query monorepo to ^5.35.1 ([#446](https://github.com/homarr-labs/homarr/issues/446)) ([96158bc](https://github.com/homarr-labs/homarr/commit/96158bcb5e0818f698f04f107dab24b6285f32df)) +- **deps:** update tanstack-query monorepo to ^5.35.5 ([#465](https://github.com/homarr-labs/homarr/issues/465)) ([8e6d143](https://github.com/homarr-labs/homarr/commit/8e6d143edc6613766ea86d3c84ef392aea867a0a)) +- **deps:** update tanstack-query monorepo to ^5.36.0 ([#481](https://github.com/homarr-labs/homarr/issues/481)) ([1570faa](https://github.com/homarr-labs/homarr/commit/1570faa20af2c1b4173ade77565691176219c601)) +- **deps:** update tanstack-query monorepo to ^5.36.2 ([#496](https://github.com/homarr-labs/homarr/issues/496)) ([023feaf](https://github.com/homarr-labs/homarr/commit/023feafafe5f78b73870a48a06d037b563999d5d)) +- **deps:** update tanstack-query monorepo to ^5.37.1 ([#513](https://github.com/homarr-labs/homarr/issues/513)) ([b312032](https://github.com/homarr-labs/homarr/commit/b312032f02db6fac0e95456ef23cf84d4ab485b0)) +- **deps:** update tanstack-query monorepo to ^5.40.0 ([#552](https://github.com/homarr-labs/homarr/issues/552)) ([8f50def](https://github.com/homarr-labs/homarr/commit/8f50def4c931545fbe4b24a2c501c725e088ce9f)) +- **deps:** update tanstack-query monorepo to ^5.40.1 ([#617](https://github.com/homarr-labs/homarr/issues/617)) ([946ea87](https://github.com/homarr-labs/homarr/commit/946ea8753fd45582ba15b6fc69a434039d341b1d)) +- **deps:** update tanstack-query monorepo to ^5.44.0 ([#657](https://github.com/homarr-labs/homarr/issues/657)) ([8b3bc03](https://github.com/homarr-labs/homarr/commit/8b3bc03b9be9d70d11d982869250d575b24ca4b8)) +- **deps:** update tanstack-query monorepo to ^5.45.0 ([#660](https://github.com/homarr-labs/homarr/issues/660)) ([5547e52](https://github.com/homarr-labs/homarr/commit/5547e520016b92c0981899099cce1bf82f7d1a00)) +- **deps:** update tanstack-query monorepo to ^5.45.1 ([#677](https://github.com/homarr-labs/homarr/issues/677)) ([33e8cc7](https://github.com/homarr-labs/homarr/commit/33e8cc7412e2cc4541ae5e58ae45b20ffa74972a)) +- **deps:** update tanstack-query monorepo to ^5.47.0 ([#713](https://github.com/homarr-labs/homarr/issues/713)) ([75748df](https://github.com/homarr-labs/homarr/commit/75748dfbc35057b7f44e836fd2864c76c2705237)) +- **deps:** update tanstack-query monorepo to ^5.48.0 ([#714](https://github.com/homarr-labs/homarr/issues/714)) ([a76e941](https://github.com/homarr-labs/homarr/commit/a76e941378a2d8669a9b4484b8301f5557dda1a3)) +- **deps:** update tanstack-query monorepo to ^5.49.0 ([#728](https://github.com/homarr-labs/homarr/issues/728)) ([531cd0d](https://github.com/homarr-labs/homarr/commit/531cd0de2520429d3b3270e05fc5d8e9c5732163)) +- **deps:** update tanstack-query monorepo to ^5.49.2 ([#730](https://github.com/homarr-labs/homarr/issues/730)) ([8ee0d67](https://github.com/homarr-labs/homarr/commit/8ee0d67a36b30ae1e5f679a0c24014c3c79709ca)) +- **deps:** update tanstack-query monorepo to ^5.50.1 ([#747](https://github.com/homarr-labs/homarr/issues/747)) ([a67050e](https://github.com/homarr-labs/homarr/commit/a67050e77b14a0ad1e6b960dad24f4a35779f858)) +- **deps:** update tanstack-query monorepo to ^5.51.1 ([#782](https://github.com/homarr-labs/homarr/issues/782)) ([be4748b](https://github.com/homarr-labs/homarr/commit/be4748b8fa5cf2b7f17acd03753115b9562f3285)) +- **deps:** update tanstack-query monorepo to ^5.51.11 ([#836](https://github.com/homarr-labs/homarr/issues/836)) ([14d19fc](https://github.com/homarr-labs/homarr/commit/14d19fcd8bf9577cd483b6bb89e1cc3bbaf484b1)) +- **deps:** update tanstack-query monorepo to ^5.51.14 ([#866](https://github.com/homarr-labs/homarr/issues/866)) ([04a836e](https://github.com/homarr-labs/homarr/commit/04a836e824e607f48b876d6882aecb5de3b666ae)) +- **deps:** update tanstack-query monorepo to ^5.51.15 ([#868](https://github.com/homarr-labs/homarr/issues/868)) ([63b3c1b](https://github.com/homarr-labs/homarr/commit/63b3c1bff19d9265ef2c80dfbbc9058354a9acfb)) +- **deps:** update tanstack-query monorepo to ^5.51.16 ([#892](https://github.com/homarr-labs/homarr/issues/892)) ([3a5f818](https://github.com/homarr-labs/homarr/commit/3a5f818e7cbef6365f9ae89996657cdb418d7917)) +- **deps:** update tanstack-query monorepo to ^5.51.17 ([#899](https://github.com/homarr-labs/homarr/issues/899)) ([5c73b54](https://github.com/homarr-labs/homarr/commit/5c73b544285d1fca753168a796e1143da5ffc37d)) +- **deps:** update tanstack-query monorepo to ^5.51.18 ([#900](https://github.com/homarr-labs/homarr/issues/900)) ([26615d8](https://github.com/homarr-labs/homarr/commit/26615d80e795c050e2ac94ba133cbf23c74b2d27)) +- **deps:** update tanstack-query monorepo to ^5.51.21 ([#905](https://github.com/homarr-labs/homarr/issues/905)) ([2a459dd](https://github.com/homarr-labs/homarr/commit/2a459dda205448ebfa3d8451a5229a82fa850fbb)) +- **deps:** update tanstack-query monorepo to ^5.51.23 ([#936](https://github.com/homarr-labs/homarr/issues/936)) ([f9e2df0](https://github.com/homarr-labs/homarr/commit/f9e2df085b2ba737c2ef6375474865b34a3f43cf)) +- **deps:** update tanstack-query monorepo to ^5.51.24 ([#997](https://github.com/homarr-labs/homarr/issues/997)) ([2f77be8](https://github.com/homarr-labs/homarr/commit/2f77be8045ea67d1f5db20bd140c9e19af903571)) +- **deps:** update tanstack-query monorepo to ^5.51.3 ([#821](https://github.com/homarr-labs/homarr/issues/821)) ([05bbc19](https://github.com/homarr-labs/homarr/commit/05bbc19a15b8f8d7cdef4b9fee3174b28918bc9d)) +- **deps:** update tanstack-query monorepo to ^5.51.4 ([#824](https://github.com/homarr-labs/homarr/issues/824)) ([86c729a](https://github.com/homarr-labs/homarr/commit/86c729a83f01cb4a3ce5413b6b4117505b6b61f4)) +- **deps:** update tanstack-query monorepo to ^5.51.5 ([#829](https://github.com/homarr-labs/homarr/issues/829)) ([a4edda6](https://github.com/homarr-labs/homarr/commit/a4edda6932ed5008fe4609b55636232a7ca500ce)) +- **deps:** update tanstack-query monorepo to ^5.51.8 ([#830](https://github.com/homarr-labs/homarr/issues/830)) ([ee2703c](https://github.com/homarr-labs/homarr/commit/ee2703ca4be312e5e0f2b9964fa3fb1d0bd074c1)) +- **deps:** update tanstack-query monorepo to ^5.51.9 ([#831](https://github.com/homarr-labs/homarr/issues/831)) ([c8f3eb6](https://github.com/homarr-labs/homarr/commit/c8f3eb69e54a732274fd85841b1d1181fbc9a279)) +- **deps:** update tanstack-query monorepo to ^5.52.0 ([#1002](https://github.com/homarr-labs/homarr/issues/1002)) ([432af79](https://github.com/homarr-labs/homarr/commit/432af7905510283779aacf7331a82a3d53f0c899)) +- **deps:** update tanstack-query monorepo to ^5.52.1 ([#1013](https://github.com/homarr-labs/homarr/issues/1013)) ([8779b7d](https://github.com/homarr-labs/homarr/commit/8779b7d6073f41b52bf2fadda25ccab8d1ae1622)) +- **deps:** update tanstack-query monorepo to ^5.52.2 ([#1037](https://github.com/homarr-labs/homarr/issues/1037)) ([48d01e3](https://github.com/homarr-labs/homarr/commit/48d01e3c6ceb9fd4e60f0bd720374da53206d94e)) +- **deps:** update tanstack-query monorepo to ^5.52.3 ([#1043](https://github.com/homarr-labs/homarr/issues/1043)) ([afb6adf](https://github.com/homarr-labs/homarr/commit/afb6adf1e68f0f1b6b819a32a95d0a28855e88c4)) +- **deps:** update tanstack-query monorepo to ^5.53.1 ([#1045](https://github.com/homarr-labs/homarr/issues/1045)) ([775c359](https://github.com/homarr-labs/homarr/commit/775c3597dcd9008606446d066ddb46dc758b5689)) +- **deps:** update tanstack-query monorepo to ^5.53.2 ([#1055](https://github.com/homarr-labs/homarr/issues/1055)) ([d69fed6](https://github.com/homarr-labs/homarr/commit/d69fed6514bef0ee5cc235cca86888d040fae562)) +- **deps:** update tanstack-query monorepo to ^5.53.3 ([#1056](https://github.com/homarr-labs/homarr/issues/1056)) ([8fe162e](https://github.com/homarr-labs/homarr/commit/8fe162e16c4c06ca453437d0ee4e6491ecb2ed84)) +- **deps:** update tanstack-query monorepo to ^5.54.1 ([#1063](https://github.com/homarr-labs/homarr/issues/1063)) ([9e1faa0](https://github.com/homarr-labs/homarr/commit/9e1faa03b120a225114f7e8bf4cc683be243c4f6)) +- **deps:** update tanstack-query monorepo to ^5.55.0 ([#1070](https://github.com/homarr-labs/homarr/issues/1070)) ([00d5020](https://github.com/homarr-labs/homarr/commit/00d5020824f6661575d7201e2524151defc35585)) +- **deps:** update tanstack-query monorepo to ^5.55.2 ([#1084](https://github.com/homarr-labs/homarr/issues/1084)) ([930bc2d](https://github.com/homarr-labs/homarr/commit/930bc2d7d205e7883898fb15deefc3f5abfedced)) +- **deps:** update tanstack-query monorepo to ^5.55.4 ([#1086](https://github.com/homarr-labs/homarr/issues/1086)) ([36a7a18](https://github.com/homarr-labs/homarr/commit/36a7a18c35258f9e592755ef10583b603a5bb39e)) +- **deps:** update tanstack-query monorepo to ^5.56.0 ([#1112](https://github.com/homarr-labs/homarr/issues/1112)) ([703ecec](https://github.com/homarr-labs/homarr/commit/703ecece634a284070b15edbd4580ffbd3a58502)) +- **deps:** update tanstack-query monorepo to ^5.56.1 ([#1114](https://github.com/homarr-labs/homarr/issues/1114)) ([2d4681d](https://github.com/homarr-labs/homarr/commit/2d4681d07989bf8388152893a7e194ead1e4c59d)) +- **deps:** update tanstack-query monorepo to ^5.56.2 ([#1116](https://github.com/homarr-labs/homarr/issues/1116)) ([cae9a80](https://github.com/homarr-labs/homarr/commit/cae9a800c47e23b5ef674c19ba5a1eea127018a3)) +- **deps:** update tanstack-query monorepo to ^5.59.0 ([#1214](https://github.com/homarr-labs/homarr/issues/1214)) ([c3d54b4](https://github.com/homarr-labs/homarr/commit/c3d54b49a0ba0ae2c2a4cc3d1651cb01df2efdf7)) +- **deps:** update tanstack-query monorepo to ^5.59.14 ([#1282](https://github.com/homarr-labs/homarr/issues/1282)) ([df8f6d2](https://github.com/homarr-labs/homarr/commit/df8f6d25d4accd486274df15eb620b28fb545826)) +- **deps:** update tanstack-query monorepo to ^5.59.15 ([#1298](https://github.com/homarr-labs/homarr/issues/1298)) ([bb0026a](https://github.com/homarr-labs/homarr/commit/bb0026a9fd6093cf54dc5fdcf027ea1033ac8454)) +- **deps:** update tanstack-query monorepo to ^5.59.16 ([#1361](https://github.com/homarr-labs/homarr/issues/1361)) ([b542bad](https://github.com/homarr-labs/homarr/commit/b542bad939527d1de5a0eb0a8c384cf4f6267436)) +- **deps:** update tanstack-query monorepo to ^5.59.17 ([#1403](https://github.com/homarr-labs/homarr/issues/1403)) ([deb5a71](https://github.com/homarr-labs/homarr/commit/deb5a716db1312fcbafbd244d3399a35ab50c4e9)) +- **deps:** update tanstack-query monorepo to ^5.59.19 ([#1410](https://github.com/homarr-labs/homarr/issues/1410)) ([8983734](https://github.com/homarr-labs/homarr/commit/8983734408e9c5ea89bc3fb0e011e9030824a43c)) +- **deps:** update tanstack-query monorepo to ^5.59.20 ([#1438](https://github.com/homarr-labs/homarr/issues/1438)) ([e05567d](https://github.com/homarr-labs/homarr/commit/e05567d100e3ff99a1d41099ffe5b9333b0eb7a7)) +- **deps:** update tanstack-query monorepo to ^5.59.3 ([#1274](https://github.com/homarr-labs/homarr/issues/1274)) ([e3cd8a8](https://github.com/homarr-labs/homarr/commit/e3cd8a8b25c736e93dec8d4df4be368007785f61)) +- **deps:** update tanstack-query monorepo to ^5.59.6 ([#1276](https://github.com/homarr-labs/homarr/issues/1276)) ([efd06ea](https://github.com/homarr-labs/homarr/commit/efd06ea1079aca15b75f358916e20b13e39ac568)) +- **deps:** update tanstack-query monorepo to ^5.59.9 ([#1278](https://github.com/homarr-labs/homarr/issues/1278)) ([0ca140f](https://github.com/homarr-labs/homarr/commit/0ca140f4ff8f74a5eef496864d2bcd95e389f329)) +- **deps:** update tanstack-query monorepo to ^5.60.2 ([#1482](https://github.com/homarr-labs/homarr/issues/1482)) ([12c3bb9](https://github.com/homarr-labs/homarr/commit/12c3bb98485f3b38ba12d3fc84b7498b78fd1d8f)) +- **deps:** update tanstack-query monorepo to ^5.60.4 ([#1488](https://github.com/homarr-labs/homarr/issues/1488)) ([41f816b](https://github.com/homarr-labs/homarr/commit/41f816be5b9561398361153d3f9a07cd2e3cc6e1)) +- **deps:** update tanstack-query monorepo to ^5.60.5 ([#1489](https://github.com/homarr-labs/homarr/issues/1489)) ([6dcf1ad](https://github.com/homarr-labs/homarr/commit/6dcf1ad3446f0c564ec7c21c0fc8154e5cd1ce68)) +- **deps:** update tanstack-query monorepo to ^5.60.6 ([#1500](https://github.com/homarr-labs/homarr/issues/1500)) ([2f76e53](https://github.com/homarr-labs/homarr/commit/2f76e537b7a8a30b1a7801753b44cfd7a25dc2d6)) +- **deps:** update tanstack-query monorepo to ^5.61.0 ([#1510](https://github.com/homarr-labs/homarr/issues/1510)) ([ed10d63](https://github.com/homarr-labs/homarr/commit/ed10d63a04a2b5a8dad0ffb51fca35d8c0e88a34)) +- **deps:** update tanstack-query monorepo to ^5.61.3 ([#1536](https://github.com/homarr-labs/homarr/issues/1536)) ([24daba7](https://github.com/homarr-labs/homarr/commit/24daba743ed645e6a974bb212e28b745acdd34f7)) +- **deps:** update tanstack-query monorepo to ^5.61.4 ([#1555](https://github.com/homarr-labs/homarr/issues/1555)) ([91a199f](https://github.com/homarr-labs/homarr/commit/91a199f7d6014c97425b55f2a419b252b766b4c3)) +- **deps:** update tanstack-query monorepo to ^5.61.5 ([#1559](https://github.com/homarr-labs/homarr/issues/1559)) ([f2e7349](https://github.com/homarr-labs/homarr/commit/f2e7349cbdfc065b52951d3a54a22344dca6807b)) +- **deps:** update tanstack-query monorepo to ^5.62.0 ([#1569](https://github.com/homarr-labs/homarr/issues/1569)) ([6ad5fd5](https://github.com/homarr-labs/homarr/commit/6ad5fd55295622429035aa7f59e478ada19ec36a)) +- **deps:** update tanstack-query monorepo to ^5.62.1 ([#1584](https://github.com/homarr-labs/homarr/issues/1584)) ([0e01dd8](https://github.com/homarr-labs/homarr/commit/0e01dd86950beac24259ac1269f0159c7c33e35c)) +- **deps:** update tanstack-query monorepo to ^5.62.10 ([#1772](https://github.com/homarr-labs/homarr/issues/1772)) ([c410b06](https://github.com/homarr-labs/homarr/commit/c410b06a15ed5426931ad764cc861f66f11a40da)) +- **deps:** update tanstack-query monorepo to ^5.62.11 ([#1791](https://github.com/homarr-labs/homarr/issues/1791)) ([e9870e7](https://github.com/homarr-labs/homarr/commit/e9870e7ee78227d3be773d9d93aa732760cc8e21)) +- **deps:** update tanstack-query monorepo to ^5.62.12 ([#1843](https://github.com/homarr-labs/homarr/issues/1843)) ([bc5e25e](https://github.com/homarr-labs/homarr/commit/bc5e25e9cd3269a3d8cc8ef521ae75aff50088be)) +- **deps:** update tanstack-query monorepo to ^5.62.14 ([#1846](https://github.com/homarr-labs/homarr/issues/1846)) ([2358f6f](https://github.com/homarr-labs/homarr/commit/2358f6f5ebf4bbb9eb4ccd91990f967d9cc44e3b)) +- **deps:** update tanstack-query monorepo to ^5.62.15 ([#1853](https://github.com/homarr-labs/homarr/issues/1853)) ([53f07f8](https://github.com/homarr-labs/homarr/commit/53f07f87b8d600ce57fa94d2ffb4d6f0105102d0)) +- **deps:** update tanstack-query monorepo to ^5.62.16 ([#1877](https://github.com/homarr-labs/homarr/issues/1877)) ([eb424d7](https://github.com/homarr-labs/homarr/commit/eb424d757b7934d5a6bce9de943528f17e678b80)) +- **deps:** update tanstack-query monorepo to ^5.62.2 ([#1590](https://github.com/homarr-labs/homarr/issues/1590)) ([3b705f4](https://github.com/homarr-labs/homarr/commit/3b705f43b89b4c844522925c1d03a2822a2986a9)) +- **deps:** update tanstack-query monorepo to ^5.62.3 ([#1621](https://github.com/homarr-labs/homarr/issues/1621)) ([42ab783](https://github.com/homarr-labs/homarr/commit/42ab783085ab0a1998d62975aac796af1fc80a3c)) +- **deps:** update tanstack-query monorepo to ^5.62.7 ([#1638](https://github.com/homarr-labs/homarr/issues/1638)) ([e692cc8](https://github.com/homarr-labs/homarr/commit/e692cc891713802cdf8655eb54223ef8e30377ba)) +- **deps:** update tanstack-query monorepo to ^5.62.8 ([#1682](https://github.com/homarr-labs/homarr/issues/1682)) ([28667c5](https://github.com/homarr-labs/homarr/commit/28667c5e1aa5b9c9c640f251fcb4e9e1063fa922)) +- **deps:** update tanstack-query monorepo to ^5.62.9 ([#1761](https://github.com/homarr-labs/homarr/issues/1761)) ([42da2b9](https://github.com/homarr-labs/homarr/commit/42da2b9b062bd8a08c37e45ab129953e8b0e3624)) +- **deps:** update tanstack-query monorepo to ^5.63.0 ([#1893](https://github.com/homarr-labs/homarr/issues/1893)) ([e33e0a4](https://github.com/homarr-labs/homarr/commit/e33e0a4d2bd91d610c6d29522a98cae8b9953478)) +- **deps:** update tanstack-query monorepo to ^5.64.0 ([#1922](https://github.com/homarr-labs/homarr/issues/1922)) ([b399cb6](https://github.com/homarr-labs/homarr/commit/b399cb697945cd1bb3da2ad5222aceb9b0e71d2b)) +- **deps:** update tanstack-query monorepo to ^5.64.1 ([#1935](https://github.com/homarr-labs/homarr/issues/1935)) ([a53e0f7](https://github.com/homarr-labs/homarr/commit/a53e0f7ceed9cf771609be7b04090df9744ec4e6)) +- **deps:** update tanstack-query monorepo to v5.38.0 ([#551](https://github.com/homarr-labs/homarr/issues/551)) ([a029abe](https://github.com/homarr-labs/homarr/commit/a029abe6f3fa762e879717bd66bc4e8bbde3558b)) +- **deps:** update testcontainers-node monorepo to ^10.13.2 ([#1233](https://github.com/homarr-labs/homarr/issues/1233)) ([8ea8b2d](https://github.com/homarr-labs/homarr/commit/8ea8b2ded55e3d026d3d13b1baa09f740b2d3a54)) +- **deps:** update testcontainers-node monorepo to ^10.14.0 ([#1434](https://github.com/homarr-labs/homarr/issues/1434)) ([31c661b](https://github.com/homarr-labs/homarr/commit/31c661bc69c32403dd7eff262b62d86debef05bc)) +- **deps:** update testcontainers-node monorepo to ^10.15.0 ([#1521](https://github.com/homarr-labs/homarr/issues/1521)) ([6018b20](https://github.com/homarr-labs/homarr/commit/6018b20d4e2be0991c735ca690bd91062285b2bb)) +- **deps:** update testcontainers-node monorepo to ^10.16.0 ([#1604](https://github.com/homarr-labs/homarr/issues/1604)) ([feb93ef](https://github.com/homarr-labs/homarr/commit/feb93ef0c71089a005c31b4f0798a0b20dc0e36b)) +- **deps:** update tiptap monorepo to ^2.2.1 ([#40](https://github.com/homarr-labs/homarr/issues/40)) ([1e01312](https://github.com/homarr-labs/homarr/commit/1e01312fcd5e7e267db330dfdb72a8d8b83fadfd)) +- **deps:** update tiptap monorepo to ^2.2.2 ([#63](https://github.com/homarr-labs/homarr/issues/63)) ([593bc9c](https://github.com/homarr-labs/homarr/commit/593bc9ca1c05bfd69b35d6bb2b7c34d3dabe7303)) +- **deps:** update tiptap monorepo to ^2.2.3 ([#95](https://github.com/homarr-labs/homarr/issues/95)) ([3e44644](https://github.com/homarr-labs/homarr/commit/3e44644ef6e8f8e8b7d898f5794405d2e61eb3af)) +- **deps:** update tiptap monorepo to ^2.2.4 ([#153](https://github.com/homarr-labs/homarr/issues/153)) ([212063a](https://github.com/homarr-labs/homarr/commit/212063a51eb8f9a48fcfe39df9a79dca31116c08)) +- **deps:** update tiptap monorepo to ^2.2.5 ([#315](https://github.com/homarr-labs/homarr/issues/315)) ([75224e0](https://github.com/homarr-labs/homarr/commit/75224e05334361356d841c5878600709324fa3e8)) +- **deps:** update tiptap monorepo to v2.10.0 ([#1507](https://github.com/homarr-labs/homarr/issues/1507)) ([860d2e4](https://github.com/homarr-labs/homarr/commit/860d2e4f69bbdf9b3ffb37b26d514e86ceca378a)) +- **deps:** update tiptap monorepo to v2.10.1 ([#1516](https://github.com/homarr-labs/homarr/issues/1516)) ([85a69b1](https://github.com/homarr-labs/homarr/commit/85a69b13e38743d487e213012cf59b64ba52da67)) +- **deps:** update tiptap monorepo to v2.10.2 ([#1520](https://github.com/homarr-labs/homarr/issues/1520)) ([ba4c9a6](https://github.com/homarr-labs/homarr/commit/ba4c9a683ee533bd214faa8f834fb3fe8408b6bb)) +- **deps:** update tiptap monorepo to v2.10.3 ([#1556](https://github.com/homarr-labs/homarr/issues/1556)) ([c1fe655](https://github.com/homarr-labs/homarr/commit/c1fe6551ce46c00304f1a9c1e6d2d7f301f47dcb)) +- **deps:** update tiptap monorepo to v2.10.4 ([#1729](https://github.com/homarr-labs/homarr/issues/1729)) ([2ae3d93](https://github.com/homarr-labs/homarr/commit/2ae3d938eeea5bd49a74d9c09b4cb2c680b059d0)) +- **deps:** update tiptap monorepo to v2.11.0 ([#1813](https://github.com/homarr-labs/homarr/issues/1813)) ([eacda4c](https://github.com/homarr-labs/homarr/commit/eacda4c397cb384a35e9eec0305f9b26f2a22a4a)) +- **deps:** update tiptap monorepo to v2.11.1 ([#1909](https://github.com/homarr-labs/homarr/issues/1909)) ([dc3d27e](https://github.com/homarr-labs/homarr/commit/dc3d27e1a1b1611c1997235bf51daf00e3d1f239)) +- **deps:** update tiptap monorepo to v2.11.2 ([#1913](https://github.com/homarr-labs/homarr/issues/1913)) ([9a7e421](https://github.com/homarr-labs/homarr/commit/9a7e421f6827a5a0ac3627318e51537840295e72)) +- **deps:** update tiptap monorepo to v2.3.0 ([#317](https://github.com/homarr-labs/homarr/issues/317)) ([847adff](https://github.com/homarr-labs/homarr/commit/847adffe7b32310924d0e317fbc4379ed84bbca1)) +- **deps:** update tiptap monorepo to v2.3.1 ([#403](https://github.com/homarr-labs/homarr/issues/403)) ([876f21a](https://github.com/homarr-labs/homarr/commit/876f21a26dba4a2bf58a087d9d954c61baf30d07)) +- **deps:** update tiptap monorepo to v2.3.2 ([#459](https://github.com/homarr-labs/homarr/issues/459)) ([382be49](https://github.com/homarr-labs/homarr/commit/382be496ffb51bf16ff2b50689707503e610243c)) +- **deps:** update tiptap monorepo to v2.4.0 ([#494](https://github.com/homarr-labs/homarr/issues/494)) ([b18b364](https://github.com/homarr-labs/homarr/commit/b18b3642708dd36b6d269c78e8f0ce6efa6e1d17)) +- **deps:** update tiptap monorepo to v2.5.0 ([#811](https://github.com/homarr-labs/homarr/issues/811)) ([7f341ef](https://github.com/homarr-labs/homarr/commit/7f341efdb304cb9479bcce75b02f3d48ed99a8ad)) +- **deps:** update tiptap monorepo to v2.5.1 ([#813](https://github.com/homarr-labs/homarr/issues/813)) ([08ba282](https://github.com/homarr-labs/homarr/commit/08ba28252872455d960b63d688b13fffbca8edde)) +- **deps:** update tiptap monorepo to v2.5.2 ([#822](https://github.com/homarr-labs/homarr/issues/822)) ([b82128a](https://github.com/homarr-labs/homarr/commit/b82128a90cdef599b976625ab58bc20d30a78964)) +- **deps:** update tiptap monorepo to v2.5.3 ([#825](https://github.com/homarr-labs/homarr/issues/825)) ([015b42a](https://github.com/homarr-labs/homarr/commit/015b42aa61be681fc31359c00113f18331728a31)) +- **deps:** update tiptap monorepo to v2.5.4 ([#828](https://github.com/homarr-labs/homarr/issues/828)) ([baf552b](https://github.com/homarr-labs/homarr/commit/baf552bf52e35616c072e33d26014b0c181b6d46)) +- **deps:** update tiptap monorepo to v2.5.5 ([#853](https://github.com/homarr-labs/homarr/issues/853)) ([c512ddb](https://github.com/homarr-labs/homarr/commit/c512ddba493994f1b5a15dde58c32b704697fa1b)) +- **deps:** update tiptap monorepo to v2.5.6 ([#863](https://github.com/homarr-labs/homarr/issues/863)) ([d70e99c](https://github.com/homarr-labs/homarr/commit/d70e99c9734d8997a1f8a97fdf54aea1da08cc05)) +- **deps:** update tiptap monorepo to v2.5.7 ([#869](https://github.com/homarr-labs/homarr/issues/869)) ([89ab1df](https://github.com/homarr-labs/homarr/commit/89ab1df2dbdb19f4079f98289eeaeff591314fef)) +- **deps:** update tiptap monorepo to v2.5.8 ([#887](https://github.com/homarr-labs/homarr/issues/887)) ([e0566df](https://github.com/homarr-labs/homarr/commit/e0566dfcfa56c50b744a872ee0623f374696efee)) +- **deps:** update tiptap monorepo to v2.5.9 ([#922](https://github.com/homarr-labs/homarr/issues/922)) ([c6bb272](https://github.com/homarr-labs/homarr/commit/c6bb272318eccc4cf9c2790513a89cec650526e5)) +- **deps:** update tiptap monorepo to v2.6.1 ([#970](https://github.com/homarr-labs/homarr/issues/970)) ([4a34ec9](https://github.com/homarr-labs/homarr/commit/4a34ec91e5041acf257a1049a7b0c29e509b1585)) +- **deps:** update tiptap monorepo to v2.6.2 ([#972](https://github.com/homarr-labs/homarr/issues/972)) ([81a13b0](https://github.com/homarr-labs/homarr/commit/81a13b0e59eb776ca55782320f4967993e564819)) +- **deps:** update tiptap monorepo to v2.6.3 ([#980](https://github.com/homarr-labs/homarr/issues/980)) ([cc61e27](https://github.com/homarr-labs/homarr/commit/cc61e27fad4c058df6da8bdf49b2bf44d5fc0206)) +- **deps:** update tiptap monorepo to v2.6.4 ([#981](https://github.com/homarr-labs/homarr/issues/981)) ([0ba647a](https://github.com/homarr-labs/homarr/commit/0ba647ad511f45ad2fb1d35bc05f1876547602d0)) +- **deps:** update tiptap monorepo to v2.6.5 ([#1005](https://github.com/homarr-labs/homarr/issues/1005)) ([d401c8f](https://github.com/homarr-labs/homarr/commit/d401c8fa0ff47caef8e6f17aba39cf52310f6d7e)) +- **deps:** update tiptap monorepo to v2.6.6 ([#1015](https://github.com/homarr-labs/homarr/issues/1015)) ([cbf2ecf](https://github.com/homarr-labs/homarr/commit/cbf2ecfb9d3036e4077968c6ffb6c676b1e46308)) +- **deps:** update tiptap monorepo to v2.7.1 ([#1139](https://github.com/homarr-labs/homarr/issues/1139)) ([657c2ee](https://github.com/homarr-labs/homarr/commit/657c2eef80a6562c45c7d2a3b63fb03edff8eb3e)) +- **deps:** update tiptap monorepo to v2.7.2 ([#1150](https://github.com/homarr-labs/homarr/issues/1150)) ([d0e9e0f](https://github.com/homarr-labs/homarr/commit/d0e9e0f09da9afebf714c201b97528b743cc8915)) +- **deps:** update tiptap monorepo to v2.7.3 ([#1182](https://github.com/homarr-labs/homarr/issues/1182)) ([b2143ed](https://github.com/homarr-labs/homarr/commit/b2143eddeba787670d749a0f1e440936be7136d7)) +- **deps:** update tiptap monorepo to v2.7.4 ([#1186](https://github.com/homarr-labs/homarr/issues/1186)) ([4795c8c](https://github.com/homarr-labs/homarr/commit/4795c8c557f80e0019779f00afc58f053f9d6f40)) +- **deps:** update tiptap monorepo to v2.8.0 ([#1206](https://github.com/homarr-labs/homarr/issues/1206)) ([7dd4d4e](https://github.com/homarr-labs/homarr/commit/7dd4d4ec7be610c510caca1f8aa93e67095d05ed)) +- **deps:** update tiptap monorepo to v2.9.0 ([#1352](https://github.com/homarr-labs/homarr/issues/1352)) ([c3b9d98](https://github.com/homarr-labs/homarr/commit/c3b9d981f78b8131f269ec8b6b43f774196005ab)) +- **deps:** update tiptap monorepo to v2.9.1 ([#1360](https://github.com/homarr-labs/homarr/issues/1360)) ([d4919dc](https://github.com/homarr-labs/homarr/commit/d4919dc908748f61320e24f529a881547a124e7b)) +- **deps:** update typescript-eslint monorepo to ^6.20.0 ([#41](https://github.com/homarr-labs/homarr/issues/41)) ([4815230](https://github.com/homarr-labs/homarr/commit/4815230f8b0d3f9b88e72bbb4fb5f4e87daf81c1)) +- **deps:** update typescript-eslint monorepo to ^6.21.0 ([#58](https://github.com/homarr-labs/homarr/issues/58)) ([e683d61](https://github.com/homarr-labs/homarr/commit/e683d61568b61268dd04c50a31b18028b63a0a1b)) +- **deps:** update typescript-eslint monorepo to ^7.0.2 ([#122](https://github.com/homarr-labs/homarr/issues/122)) ([859eeed](https://github.com/homarr-labs/homarr/commit/859eeed32963f41b906d6dac5f16b9d9cd6ffd9e)) +- **deps:** update typescript-eslint monorepo to ^7.1.0 ([#159](https://github.com/homarr-labs/homarr/issues/159)) ([8e53792](https://github.com/homarr-labs/homarr/commit/8e5379225ad1df796a9f4829f4f8af7a41cae9d8)) +- **deps:** update typescript-eslint monorepo to ^7.1.1 ([#192](https://github.com/homarr-labs/homarr/issues/192)) ([27a63db](https://github.com/homarr-labs/homarr/commit/27a63dbf7a276d615c6de01b47e35830daff5cc9)) +- **deps:** update typescript-eslint monorepo to ^7.10.0 ([#562](https://github.com/homarr-labs/homarr/issues/562)) ([2bc0431](https://github.com/homarr-labs/homarr/commit/2bc0431e4e533476f8f7ecff2114b43759c33d9a)) +- **deps:** update typescript-eslint monorepo to ^7.11.0 ([#565](https://github.com/homarr-labs/homarr/issues/565)) ([c20f7a6](https://github.com/homarr-labs/homarr/commit/c20f7a64a0e47e2604645cc494b9d5cded15219a)) +- **deps:** update typescript-eslint monorepo to ^7.12.0 ([#616](https://github.com/homarr-labs/homarr/issues/616)) ([2623708](https://github.com/homarr-labs/homarr/commit/2623708c6dcf4ccd6c291a2548d68a918220dbed)) +- **deps:** update typescript-eslint monorepo to ^7.2.0 ([#218](https://github.com/homarr-labs/homarr/issues/218)) ([ea79953](https://github.com/homarr-labs/homarr/commit/ea79953353f0645849acbad2613f72d45f3894ea)) +- **deps:** update typescript-eslint monorepo to ^7.3.1 ([#247](https://github.com/homarr-labs/homarr/issues/247)) ([36e509a](https://github.com/homarr-labs/homarr/commit/36e509a474bc38a3b6c012bd566b73054f170f84)) +- **deps:** update typescript-eslint monorepo to ^7.5.0 ([#298](https://github.com/homarr-labs/homarr/issues/298)) ([54a7d1f](https://github.com/homarr-labs/homarr/commit/54a7d1f4ae2e470924d578bd507335e54d6c517a)) +- **deps:** update typescript-eslint monorepo to ^7.6.0 ([#329](https://github.com/homarr-labs/homarr/issues/329)) ([2ccb7d1](https://github.com/homarr-labs/homarr/commit/2ccb7d17655d3b9af67f30aa21a93764eeb81ac4)) +- **deps:** update typescript-eslint monorepo to ^7.7.1 ([#354](https://github.com/homarr-labs/homarr/issues/354)) ([0342a17](https://github.com/homarr-labs/homarr/commit/0342a177bb4a5cb642f79411a6003eca3a3a3e6d)) +- **deps:** update typescript-eslint monorepo to ^7.8.0 ([#395](https://github.com/homarr-labs/homarr/issues/395)) ([584483a](https://github.com/homarr-labs/homarr/commit/584483aa9cf309e3efa83f00ab735797638210ee)) +- **deps:** update typescript-eslint monorepo to ^7.9.0 ([#491](https://github.com/homarr-labs/homarr/issues/491)) ([a702f7d](https://github.com/homarr-labs/homarr/commit/a702f7dc67a3b63667ae019b4d807d54dc925ae0)) +- **deps:** update typescript-eslint monorepo to v7 ([#87](https://github.com/homarr-labs/homarr/issues/87)) ([f913384](https://github.com/homarr-labs/homarr/commit/f91338446df1eafce92842fa0ce9ebdabea7f629)) +- **deps:** update typescript-eslint monorepo to v7.10.0 ([#529](https://github.com/homarr-labs/homarr/issues/529)) ([30fe9fe](https://github.com/homarr-labs/homarr/commit/30fe9fef844e7cac5a59185926643baeb5e5ed2e)) +- **deps:** update xterm monorepo ([#312](https://github.com/homarr-labs/homarr/issues/312)) ([a5b8fdb](https://github.com/homarr-labs/homarr/commit/a5b8fdb3977c6613cfe592b20f57c0388e0c6229)) +- disable env validation in ci ([d7a30cd](https://github.com/homarr-labs/homarr/commit/d7a30cd0dd2dfd0e7db86d0c22780cf4c1e6423e)) +- disable env validation in ci ([c84fb63](https://github.com/homarr-labs/homarr/commit/c84fb63b25b199466cf1ba6f34ec5fd31d2a434c)) +- dispatch request-logger hides negative numbers, dates and date times ([#1506](https://github.com/homarr-labs/homarr/issues/1506)) ([2ffa9d0](https://github.com/homarr-labs/homarr/commit/2ffa9d0e712233b19ade71ec62fcf34de2128340)) +- display on safari ([#1071](https://github.com/homarr-labs/homarr/issues/1071)) ([753d091](https://github.com/homarr-labs/homarr/commit/753d091dbbc5665276461f5e1d79224ea1c0deb7)) +- **dns-hole-summary:** calculation for domains and percentage for multiple integrations ([#1894](https://github.com/homarr-labs/homarr/issues/1894)) ([546c824](https://github.com/homarr-labs/homarr/commit/546c824888a2a6909b831b69ce1a4e283099bda5)) +- DnsHole controls timer ([#953](https://github.com/homarr-labs/homarr/issues/953)) ([69e69ee](https://github.com/homarr-labs/homarr/commit/69e69ee315535555a8fd4cb43273357c9a4ce24b)) +- docker build ([#777](https://github.com/homarr-labs/homarr/issues/777)) ([01eb846](https://github.com/homarr-labs/homarr/commit/01eb84654d57afc2164ae8b7912752ecb6631f43)) +- docker build not working ([#1365](https://github.com/homarr-labs/homarr/issues/1365)) ([041006c](https://github.com/homarr-labs/homarr/commit/041006c181d7a1599400ce6d296d773c13f396b0)) +- docker development path in package.json ([#416](https://github.com/homarr-labs/homarr/issues/416)) ([48c2473](https://github.com/homarr-labs/homarr/commit/48c2473ab31354a492b86aa5d2d3319cbcadccea)) +- docker platforms ([f0d6676](https://github.com/homarr-labs/homarr/commit/f0d6676917c06a068aa432f49e5d74fc2ad45631)) +- docker push flag ([eab5c10](https://github.com/homarr-labs/homarr/commit/eab5c10fa6b36c22ee4bf1526d1000bc5137ac7b)) +- docker push flag ([1128110](https://github.com/homarr-labs/homarr/commit/1128110be386297ef0e128da477c1d9572336cad)) +- docker statup permission issue ([#1709](https://github.com/homarr-labs/homarr/issues/1709)) ([1baa9fc](https://github.com/homarr-labs/homarr/commit/1baa9fc74cf15df8ead7bbe6d1615f7bf0895813)) +- **docker:** replace anonymous docker volume with env variable for encrypting secrets ([#1809](https://github.com/homarr-labs/homarr/issues/1809)) ([56b57ad](https://github.com/homarr-labs/homarr/commit/56b57ad171da170c2d8edd6112092cef0b586852)) +- email verified check is in a newline in users table ([#1218](https://github.com/homarr-labs/homarr/issues/1218)) ([8b5ea3c](https://github.com/homarr-labs/homarr/commit/8b5ea3c5d3af5e904467591b9e066488b6a4abc1)) +- empty wrappers without items should not be visible in view mode ([#1026](https://github.com/homarr-labs/homarr/issues/1026)) ([022fad9](https://github.com/homarr-labs/homarr/commit/022fad92a9aa74c132c91c6e0a942c7d520eac88)) +- everyone group page throws error ([#1450](https://github.com/homarr-labs/homarr/issues/1450)) ([f3ebd6c](https://github.com/homarr-labs/homarr/commit/f3ebd6ccdf2d5964daf50f4b9221d2231a91855d)) +- external users can be added to groups manually ([#1540](https://github.com/homarr-labs/homarr/issues/1540)) ([32e6b8e](https://github.com/homarr-labs/homarr/commit/32e6b8ee45cac46cf71fd5c6cd71558c352b4097)) +- fetch timeout for external requests to small ([#881](https://github.com/homarr-labs/homarr/issues/881)) ([67dad45](https://github.com/homarr-labs/homarr/commit/67dad45214a0dcda9d79abb4c731b7705ceb7f2d)) +- fix binary conflicts for linux ([#1583](https://github.com/homarr-labs/homarr/issues/1583)) ([70ab294](https://github.com/homarr-labs/homarr/commit/70ab29454a53958676de33bb39b9be1ea613e135)) +- fix i18n-ally extension config ([#1462](https://github.com/homarr-labs/homarr/issues/1462)) ([4ba9e94](https://github.com/homarr-labs/homarr/commit/4ba9e94dd6f632492ed250ccc267f5ac72805290)) +- Fix typecheck, lint issues and errors brought to dnshole summary. ([#916](https://github.com/homarr-labs/homarr/issues/916)) ([0cec1db](https://github.com/homarr-labs/homarr/commit/0cec1dbb1743bbe2af03a006c24d3588d5a55d83)) +- github actor name for automatic approval wrong ([#943](https://github.com/homarr-labs/homarr/issues/943)) ([c833f2c](https://github.com/homarr-labs/homarr/commit/c833f2cbf2560919f5e2381678a46d2d8d649854)) +- gridstack not working ([#642](https://github.com/homarr-labs/homarr/issues/642)) ([2c1b52a](https://github.com/homarr-labs/homarr/commit/2c1b52aff95af95b2732c4e86af87fffdcbd6896)) +- groups can be created with empty names ([#1267](https://github.com/homarr-labs/homarr/issues/1267)) ([98cf214](https://github.com/homarr-labs/homarr/commit/98cf214aed9423dbf4e13982641d9e167de4171d)) +- Handle existing user when editing profile ([6e2bd0c](https://github.com/homarr-labs/homarr/commit/6e2bd0ce11697cdfd59500d506e68ac22ed38273)) +- hard to move iframe widget [#1075](https://github.com/homarr-labs/homarr/issues/1075) ([#1101](https://github.com/homarr-labs/homarr/issues/1101)) ([5e77221](https://github.com/homarr-labs/homarr/commit/5e772215a9a26f04fec25d3d983a86e8c53faf7c)) +- health-check widget sorting & last seen ([#1363](https://github.com/homarr-labs/homarr/issues/1363)) ([c37a0e3](https://github.com/homarr-labs/homarr/commit/c37a0e38d950ec24bd33a174a229ee20434fa6f9)) +- **health-monitoring:** add months to uptime, fix status update ([#1792](https://github.com/homarr-labs/homarr/issues/1792)) ([c91aae5](https://github.com/homarr-labs/homarr/commit/c91aae53acf27eab96a9150281f98a2156e9e2af)) +- icon picker keyboard interactions ([#1666](https://github.com/homarr-labs/homarr/issues/1666)) ([82ec77d](https://github.com/homarr-labs/homarr/commit/82ec77d2dac9764d44417a4e486a099f89b5e39c)) +- icon picker suspense issue ([#1533](https://github.com/homarr-labs/homarr/issues/1533)) ([ecf299e](https://github.com/homarr-labs/homarr/commit/ecf299e03b5906a7f006397ef1df463a2c531468)) +- icon selector is a select not an autocomplete [#515](https://github.com/homarr-labs/homarr/issues/515) ([#675](https://github.com/homarr-labs/homarr/issues/675)) ([e957c6b](https://github.com/homarr-labs/homarr/commit/e957c6b601b1ed1172df8ee998a50a56e4b83f1f)) +- **icons:** local icon repository does not work with medias ([#1765](https://github.com/homarr-labs/homarr/issues/1765)) ([e220087](https://github.com/homarr-labs/homarr/commit/e220087e96c7096303b1d245ccf3941118e692f3)) +- **icons:** picker does not allow multiple words ([#1827](https://github.com/homarr-labs/homarr/issues/1827)) ([6e21863](https://github.com/homarr-labs/homarr/commit/6e21863d04f7d0598e7e7ca3fb707f9beb09d7ef)) +- **iframe:** remove second scrollbar from item card ([#1828](https://github.com/homarr-labs/homarr/issues/1828)) ([bf12944](https://github.com/homarr-labs/homarr/commit/bf1294476867fabc896f94c9326a1acfe6bffa50)) +- import sidebar issues ([#1712](https://github.com/homarr-labs/homarr/issues/1712)) ([a519994](https://github.com/homarr-labs/homarr/commit/a51999457b57c042b543768bc1ef43647d62a85d)) +- improve ping performance ([#1020](https://github.com/homarr-labs/homarr/issues/1020)) ([b81f5a2](https://github.com/homarr-labs/homarr/commit/b81f5a2ee349f1b8205a86d72d00c4a2e3470d1f)) +- inconsistent session cookie ([#1310](https://github.com/homarr-labs/homarr/issues/1310)) ([12105b3](https://github.com/homarr-labs/homarr/commit/12105b3b2935afec4f43aed05e4e5700986430ea)) +- indexer manager UI behaviour + class naming ([#1134](https://github.com/homarr-labs/homarr/issues/1134)) ([6d4d6ef](https://github.com/homarr-labs/homarr/commit/6d4d6efe3f575830d10e8d04d71b14dcda82223b)) +- insert limit of sqlite is smaller than amount of icons ([#1161](https://github.com/homarr-labs/homarr/issues/1161)) ([9eea8d4](https://github.com/homarr-labs/homarr/commit/9eea8d48e8bc0776d6074840a47c4b4c2ba38347)) +- integration actions hidden for full access users ([#1300](https://github.com/homarr-labs/homarr/issues/1300)) ([476fda2](https://github.com/homarr-labs/homarr/commit/476fda279db3a501a376b5b77eff2ae99b8a0225)) +- integration links in manage section do not work ([#441](https://github.com/homarr-labs/homarr/issues/441)) ([4b80b16](https://github.com/homarr-labs/homarr/commit/4b80b16b530af17649ef71ab9481574b3e9a0159)) +- issue with category removal and ready state ([#129](https://github.com/homarr-labs/homarr/issues/129)) ([1e414af](https://github.com/homarr-labs/homarr/commit/1e414af57c604770118a3fac59941bfaff0ab6db)) +- issue with color scheme in layout ([#1168](https://github.com/homarr-labs/homarr/issues/1168)) ([8f7ed05](https://github.com/homarr-labs/homarr/commit/8f7ed056c435a66d095cdfd43b6e893dfc7e6da3)) +- issues found in security audit ([#1668](https://github.com/homarr-labs/homarr/issues/1668)) ([922101d](https://github.com/homarr-labs/homarr/commit/922101dcbd0c512815b2cbb354cbab0fe80028c0)) +- it was possible to go to the create user page when credentials login disabled ([#1217](https://github.com/homarr-labs/homarr/issues/1217)) ([d63f6d2](https://github.com/homarr-labs/homarr/commit/d63f6d270f496053ae52bc3b9bfe484372c5b9d3)) +- items can not be placed in newly created dynamic section without saving ([#1513](https://github.com/homarr-labs/homarr/issues/1513)) ([73cb0b9](https://github.com/homarr-labs/homarr/commit/73cb0b99accfeb05c63c78ff227db1d5f23b99b2)) +- jellyfin integration does not allow username password auth ([#1714](https://github.com/homarr-labs/homarr/issues/1714)) ([63a7be3](https://github.com/homarr-labs/homarr/commit/63a7be35a4cf0f11610c2097afc32d2ced0ef9e1)) +- job translations ([#846](https://github.com/homarr-labs/homarr/issues/846)) ([43e4801](https://github.com/homarr-labs/homarr/commit/43e48010e5f1d7cf65ad779c8684a7b468e43688)) +- local websocket url wrong ([#1328](https://github.com/homarr-labs/homarr/issues/1328)) ([7572634](https://github.com/homarr-labs/homarr/commit/757263478036d01d8fdbabf3857bb6ebd59ba9af)) +- login before pushing image ([4836801](https://github.com/homarr-labs/homarr/commit/4836801004301375220e8181c5f14e56020312d2)) +- login page in light mode is always black ([#1821](https://github.com/homarr-labs/homarr/issues/1821)) ([cc7d53e](https://github.com/homarr-labs/homarr/commit/cc7d53e84ec8c2dd3698a178ca6f35099194b5d7)) +- login with revalidate path and wrong preferences link ([#654](https://github.com/homarr-labs/homarr/issues/654)) ([8e4ba37](https://github.com/homarr-labs/homarr/commit/8e4ba37f94294577926ae6e668d50b2e151b2d35)) +- make oldmarr app schema less restrictive ([#1495](https://github.com/homarr-labs/homarr/issues/1495)) ([879aa11](https://github.com/homarr-labs/homarr/commit/879aa1152f8e9182c14775672cf371fdc639e223)) +- Manage banner animation hitch fix ([#826](https://github.com/homarr-labs/homarr/issues/826)) ([4e03e7f](https://github.com/homarr-labs/homarr/commit/4e03e7f49d931090636dea7ebed4a0bea9659177)) +- manage links wrong ([#754](https://github.com/homarr-labs/homarr/issues/754)) ([be71114](https://github.com/homarr-labs/homarr/commit/be711149f7d1ef82ab30e43209d6173f2520de57)) +- mantine react table style issue ([#508](https://github.com/homarr-labs/homarr/issues/508)) ([5723295](https://github.com/homarr-labs/homarr/commit/5723295856ae557a25db3b5782e6c4bea6b6c301)) +- mantine-react-table not localized [#333](https://github.com/homarr-labs/homarr/issues/333) ([#873](https://github.com/homarr-labs/homarr/issues/873)) ([4380aa9](https://github.com/homarr-labs/homarr/commit/4380aa9b3e8659bbb95f8d91e35bffc87c8e65c5)) +- matcher for translation middleware only supports en and de ([#1528](https://github.com/homarr-labs/homarr/issues/1528)) ([38143b6](https://github.com/homarr-labs/homarr/commit/38143b679e389633dbd27a2fede866c3696c583c)) +- **media-request:** media and media-request status can have missing values ([#1911](https://github.com/homarr-labs/homarr/issues/1911)) ([ec3bda3](https://github.com/homarr-labs/homarr/commit/ec3bda34e0c1adacf0cfc5d7af272f9f2617fbe5)) +- **media-server:** redesign widget ([#1775](https://github.com/homarr-labs/homarr/issues/1775)) ([23c7d0b](https://github.com/homarr-labs/homarr/commit/23c7d0bbf01215b680f346e7eef8072d8b9db09e)) +- memory leak caused by many unclosed redis subscriptions ([#750](https://github.com/homarr-labs/homarr/issues/750)) ([998615f](https://github.com/homarr-labs/homarr/commit/998615fc11cfcca1d1a51464550d599addb8e49f)) +- middleware fetch failed for docker container ([#1424](https://github.com/homarr-labs/homarr/issues/1424)) ([b7fc1ae](https://github.com/homarr-labs/homarr/commit/b7fc1ae4bb0aa03595d849d909b997c307dce26c)) +- missing breadcrumb translation, wrong spacing in user layout ([#872](https://github.com/homarr-labs/homarr/issues/872)) ([55a000a](https://github.com/homarr-labs/homarr/commit/55a000a7fc2b2c977af3f25d5196a464c6890745)) +- missing migration for default colorscheme change ([#1335](https://github.com/homarr-labs/homarr/issues/1335)) ([9c5972f](https://github.com/homarr-labs/homarr/commit/9c5972faf45a31ec379fe7a2fdd19548755d27ed)) +- missing translations for apps / integrations [#438](https://github.com/homarr-labs/homarr/issues/438) ([#674](https://github.com/homarr-labs/homarr/issues/674)) ([f358c33](https://github.com/homarr-labs/homarr/commit/f358c33bd37e581d7a3ce02f527eb499f8ae4b85)) +- modal transition not working ([#433](https://github.com/homarr-labs/homarr/issues/433)) ([b888fad](https://github.com/homarr-labs/homarr/commit/b888fad1fc288961f0582464392e3f12751e9146)) +- moving categories up and down is not working ([#1542](https://github.com/homarr-labs/homarr/issues/1542)) ([52d2a88](https://github.com/homarr-labs/homarr/commit/52d2a88b61a6ef8513560e8810bce6fa0867f0a6)) +- mysql migration not working ([#1138](https://github.com/homarr-labs/homarr/issues/1138)) ([003cc51](https://github.com/homarr-labs/homarr/commit/003cc5160c68d73e3cfbc3e933099a9275782b5b)) +- mysql operations not working ([#1728](https://github.com/homarr-labs/homarr/issues/1728)) ([550bca6](https://github.com/homarr-labs/homarr/commit/550bca6dee743a4ed68ec15677304ecfd7a9a385)) +- mysql transactions do not work with run property of sqlite ([#1974](https://github.com/homarr-labs/homarr/issues/1974)) ([a1084f9](https://github.com/homarr-labs/homarr/commit/a1084f91e56677b1cae3bb35e8f9f4cd0630dc81)) +- new sections without add and change listeners ([#1230](https://github.com/homarr-labs/homarr/issues/1230)) ([665df53](https://github.com/homarr-labs/homarr/commit/665df53a39cc90d4155b3c8436a88986aa7a5b23)) +- next auth host not trusted ([#144](https://github.com/homarr-labs/homarr/issues/144)) ([b2cee8f](https://github.com/homarr-labs/homarr/commit/b2cee8f6936d526072dd65a59a494081cfb81c16)) +- nextjs is slow dev server ([#364](https://github.com/homarr-labs/homarr/issues/364)) ([b78d32b](https://github.com/homarr-labs/homarr/commit/b78d32b81c6075a3d04abf0e8e7631e8ce6ef49c)) +- node cache cleanup error ([#1124](https://github.com/homarr-labs/homarr/issues/1124)) ([16a5b43](https://github.com/homarr-labs/homarr/commit/16a5b43695f5e8c8d3ba5ac9d1bfe2dec83f3bf1)) +- notebook save button on align buttons ([#1456](https://github.com/homarr-labs/homarr/issues/1456)) ([15abfbb](https://github.com/homarr-labs/homarr/commit/15abfbbdf722b9f996c69072b57105ecfdc647ad)) +- **notebook:** default-content image path ([#1244](https://github.com/homarr-labs/homarr/issues/1244)) ([b5bfe90](https://github.com/homarr-labs/homarr/commit/b5bfe90453b8ad5028b52b856631ec30f3f80afd)) +- oldmarr import user casing wrong ([#1784](https://github.com/homarr-labs/homarr/issues/1784)) ([e37279f](https://github.com/homarr-labs/homarr/commit/e37279fe8071773f1a9773e3233bc81cbb336798)) +- **onboard:** missing admin permission assignment for external group ([#1764](https://github.com/homarr-labs/homarr/issues/1764)) ([b948337](https://github.com/homarr-labs/homarr/commit/b9483379dd56a8dab2b9b636b66b970da4cf9d83)) +- open navigation item by default ([#716](https://github.com/homarr-labs/homarr/issues/716)) ([c4b54ed](https://github.com/homarr-labs/homarr/commit/c4b54ed36c2da54457ac58496e62e13856bc0c98)) +- open-api doc generation failing, post patch and delete not exported ([#1565](https://github.com/homarr-labs/homarr/issues/1565)) ([2d7efc3](https://github.com/homarr-labs/homarr/commit/2d7efc3ffacb16c27219c26f20fd0682304927e0)) +- overview in series of sonarr schema is optional ([#880](https://github.com/homarr-labs/homarr/issues/880)) ([406ed16](https://github.com/homarr-labs/homarr/commit/406ed16ce45683d04e7f0293037d1eeae269795d)) +- pass token to cli ([653f42b](https://github.com/homarr-labs/homarr/commit/653f42bccb8a5893eb64d66c4963068b37011cd7)) +- permission required for home page ([#1711](https://github.com/homarr-labs/homarr/issues/1711)) ([5fbbf03](https://github.com/homarr-labs/homarr/commit/5fbbf037ce8a06642533c7f68c1c34ed8b01e4e4)) +- permissions not restricted for certain management pages / actions ([#1219](https://github.com/homarr-labs/homarr/issues/1219)) ([1421ccc](https://github.com/homarr-labs/homarr/commit/1421ccc917fc54a8afcf6ba700d4b0590fa90ed5)) +- ping urls are not reset when restarting ([#924](https://github.com/homarr-labs/homarr/issues/924)) ([365e267](https://github.com/homarr-labs/homarr/commit/365e267b8d7ba75e47af974dec6f427592095185)) +- pnpm dev did not work caused by tsx update ([#638](https://github.com/homarr-labs/homarr/issues/638)) ([fb92c3e](https://github.com/homarr-labs/homarr/commit/fb92c3e95c164b4297c74bbe18461cd08b003112)) +- prevent flickering by removing auto color scheme and default background color ([#1299](https://github.com/homarr-labs/homarr/issues/1299)) ([cd77acd](https://github.com/homarr-labs/homarr/commit/cd77acdfabf6f58aa1973e8db9408379801a8085)) +- prowlarr integration indexers status changed from id to indexerId ([#1837](https://github.com/homarr-labs/homarr/issues/1837)) ([ee8831a](https://github.com/homarr-labs/homarr/commit/ee8831affe34a33b80a0993aa538c2b16c035f11)) +- rdb files can not be saved because of permission issues bug: redis can not save RDB files [#318](https://github.com/homarr-labs/homarr/issues/318) ([#472](https://github.com/homarr-labs/homarr/issues/472)) ([fd44ee4](https://github.com/homarr-labs/homarr/commit/fd44ee48f4dbd67a1f86a6a3fe7c7c986b87443a)) +- redirect url from login not working ([#952](https://github.com/homarr-labs/homarr/issues/952)) ([349c494](https://github.com/homarr-labs/homarr/commit/349c49462fdf29741910e036e4494909c13b6124)) +- remove unnecessary complex copy and build steps in dockerfile ([#1595](https://github.com/homarr-labs/homarr/issues/1595)) ([2686dad](https://github.com/homarr-labs/homarr/commit/2686dad63017cd3b8e45818bfcb27fa3618f1a15)) +- remove unused properties in SabNZBd schema ([#1415](https://github.com/homarr-labs/homarr/issues/1415)) ([ceafd37](https://github.com/homarr-labs/homarr/commit/ceafd3747b3a56531ca3357f68fd33350cf5c896)) +- Remove version override ([#67](https://github.com/homarr-labs/homarr/issues/67)) ([55ec600](https://github.com/homarr-labs/homarr/commit/55ec60041ac5fd38861220f42e6b6daba1fb3eb3)) +- rename default to home board ([#1538](https://github.com/homarr-labs/homarr/issues/1538)) ([1c4d4f4](https://github.com/homarr-labs/homarr/commit/1c4d4f4e9d39d52d6a8e69f06c1d6246c774ed79)) +- renovate approval run for all pull requests on every pull request change ([#942](https://github.com/homarr-labs/homarr/issues/942)) ([017c378](https://github.com/homarr-labs/homarr/commit/017c378582cca20688acac171bab803597d825b4)) +- renovate approval workflow not running ([#948](https://github.com/homarr-labs/homarr/issues/948)) ([ab7d3f8](https://github.com/homarr-labs/homarr/commit/ab7d3f8e4c82fcee9af6f79c70943633fec9af95)) +- renovate automatic approval typo no file extension ([#572](https://github.com/homarr-labs/homarr/issues/572)) ([c2185e3](https://github.com/homarr-labs/homarr/commit/c2185e34890b028eac7486a52d04967037be2183)) +- renovate config with json does not support comments ([#641](https://github.com/homarr-labs/homarr/issues/641)) ([e46ea71](https://github.com/homarr-labs/homarr/commit/e46ea71bc2f89f02403e8a9597dc02474181776d)) +- restrict access to docker containers page to admins ([#912](https://github.com/homarr-labs/homarr/issues/912)) ([b8b084c](https://github.com/homarr-labs/homarr/commit/b8b084c188b28ba8fb317156433e694e7d37dfbb)) +- revert mysql2 to version 3.9.2 as with 3.9.3 nextjs build fails ([1fc2df1](https://github.com/homarr-labs/homarr/commit/1fc2df19ec6e707f7dc9ca11e60f021dd03fc5aa)) +- rtl common translation unnecessary ([#1246](https://github.com/homarr-labs/homarr/issues/1246)) ([770768e](https://github.com/homarr-labs/homarr/commit/770768eb211259848437522615b7b78ecfca8ee5)) +- **security:** restrict link protocols to http and https ([#1888](https://github.com/homarr-labs/homarr/issues/1888)) ([a12dd10](https://github.com/homarr-labs/homarr/commit/a12dd102692ee237e9695bd852dc894a2856b30e)) +- sensitive data can be leaked through query parameters ([#1208](https://github.com/homarr-labs/homarr/issues/1208)) ([f24c068](https://github.com/homarr-labs/homarr/commit/f24c06852e0bf6d672b58b784ce34d96581c2c03)) +- server data is loaded on settings page [#363](https://github.com/homarr-labs/homarr/issues/363) ([#414](https://github.com/homarr-labs/homarr/issues/414)) ([7c98b65](https://github.com/homarr-labs/homarr/commit/7c98b65401778a61a4af4206612fa62dd95ba9a5)) +- sessions from inactive providers can still be used ([#1458](https://github.com/homarr-labs/homarr/issues/1458)) ([1105f00](https://github.com/homarr-labs/homarr/commit/1105f0029fd1479e3ab6d8dae8524233c264ca21)) +- sharp is not installed ([#397](https://github.com/homarr-labs/homarr/issues/397)) ([5f24797](https://github.com/homarr-labs/homarr/commit/5f247977fa50405d5daed9f628d1170d15be412d)), closes [#320](https://github.com/homarr-labs/homarr/issues/320) +- specify step image version ([fa2c448](https://github.com/homarr-labs/homarr/commit/fa2c448bac9734662295cb8ebd62f733d3153be2)) +- **spotlight:** x button not clickable, help links open in current tab, bad screen usage on mobile ([#1199](https://github.com/homarr-labs/homarr/issues/1199)) ([42a49e6](https://github.com/homarr-labs/homarr/commit/42a49e6461f1834a1e54563e908fe75457de6d96)) +- styles for light mode ([#1645](https://github.com/homarr-labs/homarr/issues/1645)) ([cf9656d](https://github.com/homarr-labs/homarr/commit/cf9656d91eedc73224e9cfc8871c977988994425)) +- testConnectionAsync url ([#1024](https://github.com/homarr-labs/homarr/issues/1024)) ([e34af86](https://github.com/homarr-labs/homarr/commit/e34af8659b6562e1ec3ebc502eff52ef3c699654)) +- trailing slash integration url issues ([#1571](https://github.com/homarr-labs/homarr/issues/1571)) ([b277f44](https://github.com/homarr-labs/homarr/commit/b277f444b2c01e251b53069c17674eb4188b5f8d)) +- transfer group not invalidating path ([#1539](https://github.com/homarr-labs/homarr/issues/1539)) ([74e1b6b](https://github.com/homarr-labs/homarr/commit/74e1b6b54494455fecc37f673569482c3fad1ce4)) +- **translation:** query parameter in search with escaped ([#1895](https://github.com/homarr-labs/homarr/issues/1895)) ([80c02ef](https://github.com/homarr-labs/homarr/commit/80c02ef9f24cec74025a0fcc983c6db37f7fd457)) +- trpc error at least one integration ([#1660](https://github.com/homarr-labs/homarr/issues/1660)) ([f857105](https://github.com/homarr-labs/homarr/commit/f8571059941a4c13b9b8bca24b399ca06a8aa13f)) +- trpc removed export anything from client in react-query ([#1941](https://github.com/homarr-labs/homarr/issues/1941)) ([56755d1](https://github.com/homarr-labs/homarr/commit/56755d1ab4194de04faeb569020f6d19623bd29a)) +- try using other variable ([5c68ac9](https://github.com/homarr-labs/homarr/commit/5c68ac9e2eda1c28befd25a14cc3c2b6e3965c34)) +- tsx not working ([#434](https://github.com/homarr-labs/homarr/issues/434)) ([5abd438](https://github.com/homarr-labs/homarr/commit/5abd438a494048738017a976faa35e1c79c7fd96)) +- typo in automatic release commit message ([#726](https://github.com/homarr-labs/homarr/issues/726)) ([8fc2884](https://github.com/homarr-labs/homarr/commit/8fc28844bbedb4edbdc504aba6330bad06d34e93)) +- typo in renovate config name ([#557](https://github.com/homarr-labs/homarr/issues/557)) ([4d1e4d5](https://github.com/homarr-labs/homarr/commit/4d1e4d55bc56a567aa5ae70a1c2d6bd7ed738954)) +- unable to select integration on board page ([#450](https://github.com/homarr-labs/homarr/issues/450)) ([c884644](https://github.com/homarr-labs/homarr/commit/c88464498fcca95232e87b684b20e932891b939c)) +- Update check for user existence ([65025a5](https://github.com/homarr-labs/homarr/commit/65025a5dda4414aa98ac042b64b22f15ddc8bff8)) +- update of dev branch has no credentials ([#1724](https://github.com/homarr-labs/homarr/issues/1724)) ([bb7f751](https://github.com/homarr-labs/homarr/commit/bb7f7514814d49a77ac79f63d68923d08148573e)) +- use correct branch for tag compare ([0c7f479](https://github.com/homarr-labs/homarr/commit/0c7f47995211f31fa81d0f27b9a0d901dd2e422c)) +- user is undefined when using use-suspense-query ([#1498](https://github.com/homarr-labs/homarr/issues/1498)) ([18b579e](https://github.com/homarr-labs/homarr/commit/18b579eb5f2ce77ac19a2bd9fee9c99025ab1c2d)) +- various issues with docker image workflow ([#1172](https://github.com/homarr-labs/homarr/issues/1172)) ([d029f48](https://github.com/homarr-labs/homarr/commit/d029f48f799bc9ff7e01c4b85194b58e050f0c5b)) +- videos not playing automatically on iOS / mobile ([#875](https://github.com/homarr-labs/homarr/issues/875)) ([8e10c48](https://github.com/homarr-labs/homarr/commit/8e10c48d2f182b1f11baac8747a0701019a4387c)) +- websockets not working extend not defined ([#1975](https://github.com/homarr-labs/homarr/issues/1975)) ([7622f0a](https://github.com/homarr-labs/homarr/commit/7622f0a4d2fc3c53a3ab72983b1c71b50fd4a079)) +- websockets on https do not work ([#1444](https://github.com/homarr-labs/homarr/issues/1444)) ([0aa72d1](https://github.com/homarr-labs/homarr/commit/0aa72d118c6c61798cff3406256e4253d0ad5aab)) +- wevbsocket url is always localhost ([#1072](https://github.com/homarr-labs/homarr/issues/1072)) ([8c20553](https://github.com/homarr-labs/homarr/commit/8c205535eb2d2e3a6efb26696460f1c60c58170e)) +- when no dead icons, all icons are removed ([#516](https://github.com/homarr-labs/homarr/issues/516)) ([8e8f908](https://github.com/homarr-labs/homarr/commit/8e8f9081b029e8a01e4dcfcc14e6cd259732c519)) +- when removing one item and then adding another one that newly added one can not be moved ([#1025](https://github.com/homarr-labs/homarr/issues/1025)) ([2738f40](https://github.com/homarr-labs/homarr/commit/2738f40c5e3028822c4586556fddc16af5aa7d58)) +- **widget:** set-options from widget components should be partial ([#1882](https://github.com/homarr-labs/homarr/issues/1882)) ([e695fb6](https://github.com/homarr-labs/homarr/commit/e695fb64d317ecb47b6844dc2a185502244f7db1)) +- workflow inputs and docker push ([#1123](https://github.com/homarr-labs/homarr/issues/1123)) ([c8dfbc8](https://github.com/homarr-labs/homarr/commit/c8dfbc8e2d3fd50958b124bdc4e1ad6b0af8f7ca)) +- wrong id for renovate auto approval ([#957](https://github.com/homarr-labs/homarr/issues/957)) ([67195c6](https://github.com/homarr-labs/homarr/commit/67195c605139dfd4b3cd1e7d7e627752e71a7f1f)) +- xterm-addon-fit deprecated ([#321](https://github.com/homarr-labs/homarr/issues/321)) ([e6e6e4e](https://github.com/homarr-labs/homarr/commit/e6e6e4e7d639277c6b23d389721de81f7abd68d0)) ### Performance Improvements -* improve performance of icon updater from 10s to 300ms ([#502](https://github.com/homarr-labs/homarr/issues/502)) ([333dc57](https://github.com/homarr-labs/homarr/commit/333dc571fa32e9aad988f91b2547cebd99388fb4)) -* improve typescript performance ([#523](https://github.com/homarr-labs/homarr/issues/523)) ([d9f5158](https://github.com/homarr-labs/homarr/commit/d9f5158662e55bcfcb8a33018f3826286df8ff8c)) +- improve performance of icon updater from 10s to 300ms ([#502](https://github.com/homarr-labs/homarr/issues/502)) ([333dc57](https://github.com/homarr-labs/homarr/commit/333dc571fa32e9aad988f91b2547cebd99388fb4)) +- improve typescript performance ([#523](https://github.com/homarr-labs/homarr/issues/523)) ([d9f5158](https://github.com/homarr-labs/homarr/commit/d9f5158662e55bcfcb8a33018f3826286df8ff8c)) ## [1.0.0-beta.12](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.11...v1.0.0-beta.12) (2025-01-10) ### Features -* **app:** add search and pagination ([#1860](https://github.com/homarr-labs/homarr/issues/1860)) ([ccb19e0](https://github.com/homarr-labs/homarr/commit/ccb19e06c192029a81c851900982d52b045185a6)) -* **auth:** add env variable for oidc-name-attribute-overwrite ([#1850](https://github.com/homarr-labs/homarr/issues/1850)) ([c349bf8](https://github.com/homarr-labs/homarr/commit/c349bf83714739ca1bc6057f2d43c9e3964fa205)) -* **board:** add board duplication ([#1856](https://github.com/homarr-labs/homarr/issues/1856)) ([49d10f7](https://github.com/homarr-labs/homarr/commit/49d10f7ad0f58b577ed72c2a46a062af263ff225)) -* docker add to homarr ([#1825](https://github.com/homarr-labs/homarr/issues/1825)) ([64cc078](https://github.com/homarr-labs/homarr/commit/64cc078b095e64edca17e07a09a4f5c340665f84)) -* **icons:** add upload button to icon picker ([#1859](https://github.com/homarr-labs/homarr/issues/1859)) ([1e9098d](https://github.com/homarr-labs/homarr/commit/1e9098d052801fe7d53ce15e9f22ed89de04d644)) -* **items:** add search to selection ([#1887](https://github.com/homarr-labs/homarr/issues/1887)) ([62da953](https://github.com/homarr-labs/homarr/commit/62da953356ff76694ddc50980a2b879a01bcbdd6)) -* **spotlight:** add default search engine ([#1807](https://github.com/homarr-labs/homarr/issues/1807)) ([65befa2](https://github.com/homarr-labs/homarr/commit/65befa22ba91c36a3734ac6dc027175dc9fca892)) +- **app:** add search and pagination ([#1860](https://github.com/homarr-labs/homarr/issues/1860)) ([ccb19e0](https://github.com/homarr-labs/homarr/commit/ccb19e06c192029a81c851900982d52b045185a6)) +- **auth:** add env variable for oidc-name-attribute-overwrite ([#1850](https://github.com/homarr-labs/homarr/issues/1850)) ([c349bf8](https://github.com/homarr-labs/homarr/commit/c349bf83714739ca1bc6057f2d43c9e3964fa205)) +- **board:** add board duplication ([#1856](https://github.com/homarr-labs/homarr/issues/1856)) ([49d10f7](https://github.com/homarr-labs/homarr/commit/49d10f7ad0f58b577ed72c2a46a062af263ff225)) +- docker add to homarr ([#1825](https://github.com/homarr-labs/homarr/issues/1825)) ([64cc078](https://github.com/homarr-labs/homarr/commit/64cc078b095e64edca17e07a09a4f5c340665f84)) +- **icons:** add upload button to icon picker ([#1859](https://github.com/homarr-labs/homarr/issues/1859)) ([1e9098d](https://github.com/homarr-labs/homarr/commit/1e9098d052801fe7d53ce15e9f22ed89de04d644)) +- **items:** add search to selection ([#1887](https://github.com/homarr-labs/homarr/issues/1887)) ([62da953](https://github.com/homarr-labs/homarr/commit/62da953356ff76694ddc50980a2b879a01bcbdd6)) +- **spotlight:** add default search engine ([#1807](https://github.com/homarr-labs/homarr/issues/1807)) ([65befa2](https://github.com/homarr-labs/homarr/commit/65befa22ba91c36a3734ac6dc027175dc9fca892)) ### Bug Fixes -* **deps:** update dependency @tabler/icons-react to ^3.27.1 ([#1875](https://github.com/homarr-labs/homarr/issues/1875)) ([e46b1c4](https://github.com/homarr-labs/homarr/commit/e46b1c49f9bb1320f82b2de0585f7e2c7bc72c54)) -* **deps:** update dependency @tabler/icons-react to ^3.28.1 ([#1891](https://github.com/homarr-labs/homarr/issues/1891)) ([ffdc8d3](https://github.com/homarr-labs/homarr/commit/ffdc8d34960dea0172c50a1d93a4cd14997b13ac)) -* **deps:** update dependency better-sqlite3 to ^11.7.2 ([#1858](https://github.com/homarr-labs/homarr/issues/1858)) ([1f0116d](https://github.com/homarr-labs/homarr/commit/1f0116d725d76845df4b9cce74ef87134edc627a)) -* **deps:** update dependency dockerode to ^4.0.3 ([#1854](https://github.com/homarr-labs/homarr/issues/1854)) ([92f4f94](https://github.com/homarr-labs/homarr/commit/92f4f9421e8f693e6546716f5f04922161e29cdc)) -* **deps:** update dependency glob to ^11.0.1 ([#1908](https://github.com/homarr-labs/homarr/issues/1908)) ([7d1b1d8](https://github.com/homarr-labs/homarr/commit/7d1b1d83429acaa9846479a7a5c48092d4614b75)) -* **deps:** update dependency ldapts to v7.3.1 ([#1896](https://github.com/homarr-labs/homarr/issues/1896)) ([a69c64d](https://github.com/homarr-labs/homarr/commit/a69c64d88d57293eba8adbdf88ce694194268492)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.8 ([#1902](https://github.com/homarr-labs/homarr/issues/1902)) ([86a9259](https://github.com/homarr-labs/homarr/commit/86a925939cb8ef92fe0bca5a762e688887916b04)) -* **deps:** update dependency octokit to ^4.1.0 ([#1898](https://github.com/homarr-labs/homarr/issues/1898)) ([3860af3](https://github.com/homarr-labs/homarr/commit/3860af31b64e8a74e7e1c91470a9de5450f9e5e7)) -* **deps:** update dependency sass to ^1.83.1 ([#1852](https://github.com/homarr-labs/homarr/issues/1852)) ([812469d](https://github.com/homarr-labs/homarr/commit/812469db827badee63c73a8c819922c24fdefd13)) -* **deps:** update dependency trpc-to-openapi to ^2.1.2 ([#1900](https://github.com/homarr-labs/homarr/issues/1900)) ([8edf922](https://github.com/homarr-labs/homarr/commit/8edf922e3050ba9d8c951180ae68f628067c190e)) -* **deps:** update dependency typescript-eslint to ^8.19.1 ([#1874](https://github.com/homarr-labs/homarr/issues/1874)) ([be4e753](https://github.com/homarr-labs/homarr/commit/be4e75321a0a6a05c6ac6c4ba97ffb5068aed4aa)) -* **deps:** update dependency undici to v7.2.1 ([#1904](https://github.com/homarr-labs/homarr/issues/1904)) ([b034dcb](https://github.com/homarr-labs/homarr/commit/b034dcbb11017a016e30db0e2bf8c1a0765174ca)) -* **deps:** update mantine monorepo to ^7.15.3 ([#1880](https://github.com/homarr-labs/homarr/issues/1880)) ([7807b28](https://github.com/homarr-labs/homarr/commit/7807b28d24327db89514da533cb06f4c296b579d)) -* **deps:** update nextjs monorepo to ^15.1.4 ([#1885](https://github.com/homarr-labs/homarr/issues/1885)) ([f4f02ca](https://github.com/homarr-labs/homarr/commit/f4f02ca539609705b7192c4327272f88415e1594)) -* **deps:** update nextjs monorepo to v15 (major) ([#1844](https://github.com/homarr-labs/homarr/issues/1844)) ([d985525](https://github.com/homarr-labs/homarr/commit/d98552540a9eb3c24ba92a490f921c2b1911b1f6)) -* **deps:** update tanstack-query monorepo to ^5.62.14 ([#1846](https://github.com/homarr-labs/homarr/issues/1846)) ([2358f6f](https://github.com/homarr-labs/homarr/commit/2358f6f5ebf4bbb9eb4ccd91990f967d9cc44e3b)) -* **deps:** update tanstack-query monorepo to ^5.62.15 ([#1853](https://github.com/homarr-labs/homarr/issues/1853)) ([53f07f8](https://github.com/homarr-labs/homarr/commit/53f07f87b8d600ce57fa94d2ffb4d6f0105102d0)) -* **deps:** update tanstack-query monorepo to ^5.62.16 ([#1877](https://github.com/homarr-labs/homarr/issues/1877)) ([eb424d7](https://github.com/homarr-labs/homarr/commit/eb424d757b7934d5a6bce9de943528f17e678b80)) -* **deps:** update tanstack-query monorepo to ^5.63.0 ([#1893](https://github.com/homarr-labs/homarr/issues/1893)) ([e33e0a4](https://github.com/homarr-labs/homarr/commit/e33e0a4d2bd91d610c6d29522a98cae8b9953478)) -* **deps:** update tiptap monorepo to v2.11.1 ([#1909](https://github.com/homarr-labs/homarr/issues/1909)) ([dc3d27e](https://github.com/homarr-labs/homarr/commit/dc3d27e1a1b1611c1997235bf51daf00e3d1f239)) -* **deps:** update tiptap monorepo to v2.11.2 ([#1913](https://github.com/homarr-labs/homarr/issues/1913)) ([9a7e421](https://github.com/homarr-labs/homarr/commit/9a7e421f6827a5a0ac3627318e51537840295e72)) -* **dns-hole-summary:** calculation for domains and percentage for multiple integrations ([#1894](https://github.com/homarr-labs/homarr/issues/1894)) ([546c824](https://github.com/homarr-labs/homarr/commit/546c824888a2a6909b831b69ce1a4e283099bda5)) -* **iframe:** remove second scrollbar from item card ([#1828](https://github.com/homarr-labs/homarr/issues/1828)) ([bf12944](https://github.com/homarr-labs/homarr/commit/bf1294476867fabc896f94c9326a1acfe6bffa50)) -* **security:** restrict link protocols to http and https ([#1888](https://github.com/homarr-labs/homarr/issues/1888)) ([a12dd10](https://github.com/homarr-labs/homarr/commit/a12dd102692ee237e9695bd852dc894a2856b30e)) -* **translation:** query parameter in search with escaped ([#1895](https://github.com/homarr-labs/homarr/issues/1895)) ([80c02ef](https://github.com/homarr-labs/homarr/commit/80c02ef9f24cec74025a0fcc983c6db37f7fd457)) -* **widget:** set-options from widget components should be partial ([#1882](https://github.com/homarr-labs/homarr/issues/1882)) ([e695fb6](https://github.com/homarr-labs/homarr/commit/e695fb64d317ecb47b6844dc2a185502244f7db1)) +- **deps:** update dependency @tabler/icons-react to ^3.27.1 ([#1875](https://github.com/homarr-labs/homarr/issues/1875)) ([e46b1c4](https://github.com/homarr-labs/homarr/commit/e46b1c49f9bb1320f82b2de0585f7e2c7bc72c54)) +- **deps:** update dependency @tabler/icons-react to ^3.28.1 ([#1891](https://github.com/homarr-labs/homarr/issues/1891)) ([ffdc8d3](https://github.com/homarr-labs/homarr/commit/ffdc8d34960dea0172c50a1d93a4cd14997b13ac)) +- **deps:** update dependency better-sqlite3 to ^11.7.2 ([#1858](https://github.com/homarr-labs/homarr/issues/1858)) ([1f0116d](https://github.com/homarr-labs/homarr/commit/1f0116d725d76845df4b9cce74ef87134edc627a)) +- **deps:** update dependency dockerode to ^4.0.3 ([#1854](https://github.com/homarr-labs/homarr/issues/1854)) ([92f4f94](https://github.com/homarr-labs/homarr/commit/92f4f9421e8f693e6546716f5f04922161e29cdc)) +- **deps:** update dependency glob to ^11.0.1 ([#1908](https://github.com/homarr-labs/homarr/issues/1908)) ([7d1b1d8](https://github.com/homarr-labs/homarr/commit/7d1b1d83429acaa9846479a7a5c48092d4614b75)) +- **deps:** update dependency ldapts to v7.3.1 ([#1896](https://github.com/homarr-labs/homarr/issues/1896)) ([a69c64d](https://github.com/homarr-labs/homarr/commit/a69c64d88d57293eba8adbdf88ce694194268492)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.8 ([#1902](https://github.com/homarr-labs/homarr/issues/1902)) ([86a9259](https://github.com/homarr-labs/homarr/commit/86a925939cb8ef92fe0bca5a762e688887916b04)) +- **deps:** update dependency octokit to ^4.1.0 ([#1898](https://github.com/homarr-labs/homarr/issues/1898)) ([3860af3](https://github.com/homarr-labs/homarr/commit/3860af31b64e8a74e7e1c91470a9de5450f9e5e7)) +- **deps:** update dependency sass to ^1.83.1 ([#1852](https://github.com/homarr-labs/homarr/issues/1852)) ([812469d](https://github.com/homarr-labs/homarr/commit/812469db827badee63c73a8c819922c24fdefd13)) +- **deps:** update dependency trpc-to-openapi to ^2.1.2 ([#1900](https://github.com/homarr-labs/homarr/issues/1900)) ([8edf922](https://github.com/homarr-labs/homarr/commit/8edf922e3050ba9d8c951180ae68f628067c190e)) +- **deps:** update dependency typescript-eslint to ^8.19.1 ([#1874](https://github.com/homarr-labs/homarr/issues/1874)) ([be4e753](https://github.com/homarr-labs/homarr/commit/be4e75321a0a6a05c6ac6c4ba97ffb5068aed4aa)) +- **deps:** update dependency undici to v7.2.1 ([#1904](https://github.com/homarr-labs/homarr/issues/1904)) ([b034dcb](https://github.com/homarr-labs/homarr/commit/b034dcbb11017a016e30db0e2bf8c1a0765174ca)) +- **deps:** update mantine monorepo to ^7.15.3 ([#1880](https://github.com/homarr-labs/homarr/issues/1880)) ([7807b28](https://github.com/homarr-labs/homarr/commit/7807b28d24327db89514da533cb06f4c296b579d)) +- **deps:** update nextjs monorepo to ^15.1.4 ([#1885](https://github.com/homarr-labs/homarr/issues/1885)) ([f4f02ca](https://github.com/homarr-labs/homarr/commit/f4f02ca539609705b7192c4327272f88415e1594)) +- **deps:** update nextjs monorepo to v15 (major) ([#1844](https://github.com/homarr-labs/homarr/issues/1844)) ([d985525](https://github.com/homarr-labs/homarr/commit/d98552540a9eb3c24ba92a490f921c2b1911b1f6)) +- **deps:** update tanstack-query monorepo to ^5.62.14 ([#1846](https://github.com/homarr-labs/homarr/issues/1846)) ([2358f6f](https://github.com/homarr-labs/homarr/commit/2358f6f5ebf4bbb9eb4ccd91990f967d9cc44e3b)) +- **deps:** update tanstack-query monorepo to ^5.62.15 ([#1853](https://github.com/homarr-labs/homarr/issues/1853)) ([53f07f8](https://github.com/homarr-labs/homarr/commit/53f07f87b8d600ce57fa94d2ffb4d6f0105102d0)) +- **deps:** update tanstack-query monorepo to ^5.62.16 ([#1877](https://github.com/homarr-labs/homarr/issues/1877)) ([eb424d7](https://github.com/homarr-labs/homarr/commit/eb424d757b7934d5a6bce9de943528f17e678b80)) +- **deps:** update tanstack-query monorepo to ^5.63.0 ([#1893](https://github.com/homarr-labs/homarr/issues/1893)) ([e33e0a4](https://github.com/homarr-labs/homarr/commit/e33e0a4d2bd91d610c6d29522a98cae8b9953478)) +- **deps:** update tiptap monorepo to v2.11.1 ([#1909](https://github.com/homarr-labs/homarr/issues/1909)) ([dc3d27e](https://github.com/homarr-labs/homarr/commit/dc3d27e1a1b1611c1997235bf51daf00e3d1f239)) +- **deps:** update tiptap monorepo to v2.11.2 ([#1913](https://github.com/homarr-labs/homarr/issues/1913)) ([9a7e421](https://github.com/homarr-labs/homarr/commit/9a7e421f6827a5a0ac3627318e51537840295e72)) +- **dns-hole-summary:** calculation for domains and percentage for multiple integrations ([#1894](https://github.com/homarr-labs/homarr/issues/1894)) ([546c824](https://github.com/homarr-labs/homarr/commit/546c824888a2a6909b831b69ce1a4e283099bda5)) +- **iframe:** remove second scrollbar from item card ([#1828](https://github.com/homarr-labs/homarr/issues/1828)) ([bf12944](https://github.com/homarr-labs/homarr/commit/bf1294476867fabc896f94c9326a1acfe6bffa50)) +- **security:** restrict link protocols to http and https ([#1888](https://github.com/homarr-labs/homarr/issues/1888)) ([a12dd10](https://github.com/homarr-labs/homarr/commit/a12dd102692ee237e9695bd852dc894a2856b30e)) +- **translation:** query parameter in search with escaped ([#1895](https://github.com/homarr-labs/homarr/issues/1895)) ([80c02ef](https://github.com/homarr-labs/homarr/commit/80c02ef9f24cec74025a0fcc983c6db37f7fd457)) +- **widget:** set-options from widget components should be partial ([#1882](https://github.com/homarr-labs/homarr/issues/1882)) ([e695fb6](https://github.com/homarr-labs/homarr/commit/e695fb64d317ecb47b6844dc2a185502244f7db1)) ## [1.0.0-beta.11](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.10...v1.0.0-beta.11) (2025-01-03) ### Features -* remove import beta badge ([#1829](https://github.com/homarr-labs/homarr/issues/1829)) ([6305c74](https://github.com/homarr-labs/homarr/commit/6305c74f90d943722c915ffbf54b5fd7e68a7dca)) +- remove import beta badge ([#1829](https://github.com/homarr-labs/homarr/issues/1829)) ([6305c74](https://github.com/homarr-labs/homarr/commit/6305c74f90d943722c915ffbf54b5fd7e68a7dca)) ### Bug Fixes -* **deps:** update dependency zod-form-data to ^2.0.5 ([#1822](https://github.com/homarr-labs/homarr/issues/1822)) ([a234fc8](https://github.com/homarr-labs/homarr/commit/a234fc844e5edcef9935efb0725b6ccceadfe69d)) -* **deps:** update tanstack-query monorepo to ^5.62.12 ([#1843](https://github.com/homarr-labs/homarr/issues/1843)) ([bc5e25e](https://github.com/homarr-labs/homarr/commit/bc5e25e9cd3269a3d8cc8ef521ae75aff50088be)) -* **icons:** picker does not allow multiple words ([#1827](https://github.com/homarr-labs/homarr/issues/1827)) ([6e21863](https://github.com/homarr-labs/homarr/commit/6e21863d04f7d0598e7e7ca3fb707f9beb09d7ef)) -* login page in light mode is always black ([#1821](https://github.com/homarr-labs/homarr/issues/1821)) ([cc7d53e](https://github.com/homarr-labs/homarr/commit/cc7d53e84ec8c2dd3698a178ca6f35099194b5d7)) -* prowlarr integration indexers status changed from id to indexerId ([#1837](https://github.com/homarr-labs/homarr/issues/1837)) ([ee8831a](https://github.com/homarr-labs/homarr/commit/ee8831affe34a33b80a0993aa538c2b16c035f11)) +- **deps:** update dependency zod-form-data to ^2.0.5 ([#1822](https://github.com/homarr-labs/homarr/issues/1822)) ([a234fc8](https://github.com/homarr-labs/homarr/commit/a234fc844e5edcef9935efb0725b6ccceadfe69d)) +- **deps:** update tanstack-query monorepo to ^5.62.12 ([#1843](https://github.com/homarr-labs/homarr/issues/1843)) ([bc5e25e](https://github.com/homarr-labs/homarr/commit/bc5e25e9cd3269a3d8cc8ef521ae75aff50088be)) +- **icons:** picker does not allow multiple words ([#1827](https://github.com/homarr-labs/homarr/issues/1827)) ([6e21863](https://github.com/homarr-labs/homarr/commit/6e21863d04f7d0598e7e7ca3fb707f9beb09d7ef)) +- login page in light mode is always black ([#1821](https://github.com/homarr-labs/homarr/issues/1821)) ([cc7d53e](https://github.com/homarr-labs/homarr/commit/cc7d53e84ec8c2dd3698a178ca6f35099194b5d7)) +- prowlarr integration indexers status changed from id to indexerId ([#1837](https://github.com/homarr-labs/homarr/issues/1837)) ([ee8831a](https://github.com/homarr-labs/homarr/commit/ee8831affe34a33b80a0993aa538c2b16c035f11)) ## [1.0.0-beta.10](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.9...v1.0.0-beta.10) (2024-12-31) ### Features -* add request media ([#1811](https://github.com/homarr-labs/homarr/issues/1811)) ([91e1cef](https://github.com/homarr-labs/homarr/commit/91e1cef611a47d57b42c91c0c6d49fcf2e6a10bb)) -* **docker:** add support for pgid and puid env variables ([#1759](https://github.com/homarr-labs/homarr/issues/1759)) ([aeb681a](https://github.com/homarr-labs/homarr/commit/aeb681a85839e31284e8f1566adc4191a68ea385)) -* **integration:** add search engine creation ([#1816](https://github.com/homarr-labs/homarr/issues/1816)) ([f507645](https://github.com/homarr-labs/homarr/commit/f5076454cd644a99439b697f24bb0b1f871b2205)) -* **widget:** add minecraft server status widget ([#1801](https://github.com/homarr-labs/homarr/issues/1801)) ([0ebf4bc](https://github.com/homarr-labs/homarr/commit/0ebf4bc55e62caf5917340496abb350d564df255)) +- add request media ([#1811](https://github.com/homarr-labs/homarr/issues/1811)) ([91e1cef](https://github.com/homarr-labs/homarr/commit/91e1cef611a47d57b42c91c0c6d49fcf2e6a10bb)) +- **docker:** add support for pgid and puid env variables ([#1759](https://github.com/homarr-labs/homarr/issues/1759)) ([aeb681a](https://github.com/homarr-labs/homarr/commit/aeb681a85839e31284e8f1566adc4191a68ea385)) +- **integration:** add search engine creation ([#1816](https://github.com/homarr-labs/homarr/issues/1816)) ([f507645](https://github.com/homarr-labs/homarr/commit/f5076454cd644a99439b697f24bb0b1f871b2205)) +- **widget:** add minecraft server status widget ([#1801](https://github.com/homarr-labs/homarr/issues/1801)) ([0ebf4bc](https://github.com/homarr-labs/homarr/commit/0ebf4bc55e62caf5917340496abb350d564df255)) ### Bug Fixes -* **deps:** update dependency octokit to ^4.0.3 ([#1806](https://github.com/homarr-labs/homarr/issues/1806)) ([75aefcb](https://github.com/homarr-labs/homarr/commit/75aefcb0d5210a53e8a00b675dbbce847aa8add4)) -* **deps:** update dependency trpc-to-openapi to ^2.1.1 ([#1788](https://github.com/homarr-labs/homarr/issues/1788)) ([4943e7b](https://github.com/homarr-labs/homarr/commit/4943e7b851cd29291b5e8f2f9d0e084b4deeffc0)) -* **deps:** update dependency typescript-eslint to ^8.19.0 ([#1814](https://github.com/homarr-labs/homarr/issues/1814)) ([598f004](https://github.com/homarr-labs/homarr/commit/598f0047eb13d6d0d6b68c9032a7a6648f4b6aa3)) -* **deps:** update tiptap monorepo to v2.11.0 ([#1813](https://github.com/homarr-labs/homarr/issues/1813)) ([eacda4c](https://github.com/homarr-labs/homarr/commit/eacda4c397cb384a35e9eec0305f9b26f2a22a4a)) -* **docker:** replace anonymous docker volume with env variable for encrypting secrets ([#1809](https://github.com/homarr-labs/homarr/issues/1809)) ([56b57ad](https://github.com/homarr-labs/homarr/commit/56b57ad171da170c2d8edd6112092cef0b586852)) -* **health-monitoring:** add months to uptime, fix status update ([#1792](https://github.com/homarr-labs/homarr/issues/1792)) ([c91aae5](https://github.com/homarr-labs/homarr/commit/c91aae53acf27eab96a9150281f98a2156e9e2af)) -* **media-server:** redesign widget ([#1775](https://github.com/homarr-labs/homarr/issues/1775)) ([23c7d0b](https://github.com/homarr-labs/homarr/commit/23c7d0bbf01215b680f346e7eef8072d8b9db09e)) +- **deps:** update dependency octokit to ^4.0.3 ([#1806](https://github.com/homarr-labs/homarr/issues/1806)) ([75aefcb](https://github.com/homarr-labs/homarr/commit/75aefcb0d5210a53e8a00b675dbbce847aa8add4)) +- **deps:** update dependency trpc-to-openapi to ^2.1.1 ([#1788](https://github.com/homarr-labs/homarr/issues/1788)) ([4943e7b](https://github.com/homarr-labs/homarr/commit/4943e7b851cd29291b5e8f2f9d0e084b4deeffc0)) +- **deps:** update dependency typescript-eslint to ^8.19.0 ([#1814](https://github.com/homarr-labs/homarr/issues/1814)) ([598f004](https://github.com/homarr-labs/homarr/commit/598f0047eb13d6d0d6b68c9032a7a6648f4b6aa3)) +- **deps:** update tiptap monorepo to v2.11.0 ([#1813](https://github.com/homarr-labs/homarr/issues/1813)) ([eacda4c](https://github.com/homarr-labs/homarr/commit/eacda4c397cb384a35e9eec0305f9b26f2a22a4a)) +- **docker:** replace anonymous docker volume with env variable for encrypting secrets ([#1809](https://github.com/homarr-labs/homarr/issues/1809)) ([56b57ad](https://github.com/homarr-labs/homarr/commit/56b57ad171da170c2d8edd6112092cef0b586852)) +- **health-monitoring:** add months to uptime, fix status update ([#1792](https://github.com/homarr-labs/homarr/issues/1792)) ([c91aae5](https://github.com/homarr-labs/homarr/commit/c91aae53acf27eab96a9150281f98a2156e9e2af)) +- **media-server:** redesign widget ([#1775](https://github.com/homarr-labs/homarr/issues/1775)) ([23c7d0b](https://github.com/homarr-labs/homarr/commit/23c7d0bbf01215b680f346e7eef8072d8b9db09e)) ## [1.0.0-beta.9](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.8...v1.0.0-beta.9) (2024-12-27) ### Bug Fixes -* **deps:** update nextjs monorepo to ^14.2.22 ([#1787](https://github.com/homarr-labs/homarr/issues/1787)) ([3d66ff9](https://github.com/homarr-labs/homarr/commit/3d66ff914883a665c0329c8fc4fd087f4d220692)) -* **deps:** update tanstack-query monorepo to ^5.62.11 ([#1791](https://github.com/homarr-labs/homarr/issues/1791)) ([e9870e7](https://github.com/homarr-labs/homarr/commit/e9870e7ee78227d3be773d9d93aa732760cc8e21)) +- **deps:** update nextjs monorepo to ^14.2.22 ([#1787](https://github.com/homarr-labs/homarr/issues/1787)) ([3d66ff9](https://github.com/homarr-labs/homarr/commit/3d66ff914883a665c0329c8fc4fd087f4d220692)) +- **deps:** update tanstack-query monorepo to ^5.62.11 ([#1791](https://github.com/homarr-labs/homarr/issues/1791)) ([e9870e7](https://github.com/homarr-labs/homarr/commit/e9870e7ee78227d3be773d9d93aa732760cc8e21)) ## [1.0.0-beta.8](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.7...v1.0.0-beta.8) (2024-12-25) ### Bug Fixes -* **deps:** update dependency @ctrl/deluge to ^7.1.0 ([#1776](https://github.com/homarr-labs/homarr/issues/1776)) ([ecae80d](https://github.com/homarr-labs/homarr/commit/ecae80d741213f12ff08f87992cc4d906cbe0085)) -* **deps:** update dependency @ctrl/transmission to ^7.2.0 ([#1777](https://github.com/homarr-labs/homarr/issues/1777)) ([3e2ffbd](https://github.com/homarr-labs/homarr/commit/3e2ffbd7bf2793ff58136ed75b38e0d96b4a5ca8)) -* **deps:** update dependency drizzle-orm to ^0.38.3 ([#1783](https://github.com/homarr-labs/homarr/issues/1783)) ([82c6ce7](https://github.com/homarr-labs/homarr/commit/82c6ce7b77023881bd4c74fb43437e777f9b219e)) -* **deps:** update dependency drizzle-zod to ^0.6.1 ([#1782](https://github.com/homarr-labs/homarr/issues/1782)) ([555212e](https://github.com/homarr-labs/homarr/commit/555212e2dc82c4b71b8c25a5f20964b3441b5ab9)) -* oldmarr import user casing wrong ([#1784](https://github.com/homarr-labs/homarr/issues/1784)) ([e37279f](https://github.com/homarr-labs/homarr/commit/e37279fe8071773f1a9773e3233bc81cbb336798)) +- **deps:** update dependency @ctrl/deluge to ^7.1.0 ([#1776](https://github.com/homarr-labs/homarr/issues/1776)) ([ecae80d](https://github.com/homarr-labs/homarr/commit/ecae80d741213f12ff08f87992cc4d906cbe0085)) +- **deps:** update dependency @ctrl/transmission to ^7.2.0 ([#1777](https://github.com/homarr-labs/homarr/issues/1777)) ([3e2ffbd](https://github.com/homarr-labs/homarr/commit/3e2ffbd7bf2793ff58136ed75b38e0d96b4a5ca8)) +- **deps:** update dependency drizzle-orm to ^0.38.3 ([#1783](https://github.com/homarr-labs/homarr/issues/1783)) ([82c6ce7](https://github.com/homarr-labs/homarr/commit/82c6ce7b77023881bd4c74fb43437e777f9b219e)) +- **deps:** update dependency drizzle-zod to ^0.6.1 ([#1782](https://github.com/homarr-labs/homarr/issues/1782)) ([555212e](https://github.com/homarr-labs/homarr/commit/555212e2dc82c4b71b8c25a5f20964b3441b5ab9)) +- oldmarr import user casing wrong ([#1784](https://github.com/homarr-labs/homarr/issues/1784)) ([e37279f](https://github.com/homarr-labs/homarr/commit/e37279fe8071773f1a9773e3233bc81cbb336798)) ## [1.0.0-beta.7](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.6...v1.0.0-beta.7) (2024-12-24) ### Features -* **apps:** remove url variables ([#1771](https://github.com/homarr-labs/homarr/issues/1771)) ([8df398c](https://github.com/homarr-labs/homarr/commit/8df398c3c706369f6990719603a357c161606f81)) +- **apps:** remove url variables ([#1771](https://github.com/homarr-labs/homarr/issues/1771)) ([8df398c](https://github.com/homarr-labs/homarr/commit/8df398c3c706369f6990719603a357c161606f81)) ### Bug Fixes -* **auth:** oidc redirect does not respect https protocol ([#1763](https://github.com/homarr-labs/homarr/issues/1763)) ([0336803](https://github.com/homarr-labs/homarr/commit/033680355044b1ebfa5d8fe07b59929bbcfcb3a0)) -* **board:** item background and border overridden by mantine card styles ([#1769](https://github.com/homarr-labs/homarr/issues/1769)) ([425359b](https://github.com/homarr-labs/homarr/commit/425359be02f66242f7db0dc77bed0355495e21d5)) -* **board:** tiles order not respected on firefox ([#1770](https://github.com/homarr-labs/homarr/issues/1770)) ([8893b72](https://github.com/homarr-labs/homarr/commit/8893b72fe363691b91b6aca75d4ad37f4b8e9f6a)) -* copy media link ([#1750](https://github.com/homarr-labs/homarr/issues/1750)) ([d78c6ed](https://github.com/homarr-labs/homarr/commit/d78c6ed5299e1f975c2e85ec3ecad38e00457677)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.2.0 ([#1768](https://github.com/homarr-labs/homarr/issues/1768)) ([8b416a6](https://github.com/homarr-labs/homarr/commit/8b416a6dd354b22a3e4f527b793dde2c538b1e6a)) -* **deps:** update dependency eslint-plugin-react to ^7.37.3 ([#1767](https://github.com/homarr-labs/homarr/issues/1767)) ([fe95334](https://github.com/homarr-labs/homarr/commit/fe95334aa70c95faefcf904591fa9d33159b0905)) -* **deps:** update dependency jotai to ^2.11.0 ([#1756](https://github.com/homarr-labs/homarr/issues/1756)) ([4e85bbb](https://github.com/homarr-labs/homarr/commit/4e85bbbad034f08ab84e331d376b7a9c6f54e507)) -* **deps:** update dependency mysql2 to v3.12.0 ([#1758](https://github.com/homarr-labs/homarr/issues/1758)) ([d02ded5](https://github.com/homarr-labs/homarr/commit/d02ded5511aa2d54307db0ac7f4e0a5dee5a707d)) -* **deps:** update dependency react-error-boundary to v5 ([#1748](https://github.com/homarr-labs/homarr/issues/1748)) ([01db27c](https://github.com/homarr-labs/homarr/commit/01db27c34f3daf6e67e35bbd357df31dcb154b41)) -* **deps:** update dependency typescript-eslint to ^8.18.2 ([#1762](https://github.com/homarr-labs/homarr/issues/1762)) ([9223dd0](https://github.com/homarr-labs/homarr/commit/9223dd06ee0c2b51e036f607d7b3252c61ab77ea)) -* **deps:** update mantine monorepo to ^7.15.2 ([#1757](https://github.com/homarr-labs/homarr/issues/1757)) ([dfacb08](https://github.com/homarr-labs/homarr/commit/dfacb08dbddb6864646ece2fca6978207f0c58ac)) -* **deps:** update tanstack-query monorepo to ^5.62.10 ([#1772](https://github.com/homarr-labs/homarr/issues/1772)) ([c410b06](https://github.com/homarr-labs/homarr/commit/c410b06a15ed5426931ad764cc861f66f11a40da)) -* **deps:** update tanstack-query monorepo to ^5.62.9 ([#1761](https://github.com/homarr-labs/homarr/issues/1761)) ([42da2b9](https://github.com/homarr-labs/homarr/commit/42da2b9b062bd8a08c37e45ab129953e8b0e3624)) -* **icons:** local icon repository does not work with medias ([#1765](https://github.com/homarr-labs/homarr/issues/1765)) ([e220087](https://github.com/homarr-labs/homarr/commit/e220087e96c7096303b1d245ccf3941118e692f3)) -* **onboard:** missing admin permission assignment for external group ([#1764](https://github.com/homarr-labs/homarr/issues/1764)) ([b948337](https://github.com/homarr-labs/homarr/commit/b9483379dd56a8dab2b9b636b66b970da4cf9d83)) +- **auth:** oidc redirect does not respect https protocol ([#1763](https://github.com/homarr-labs/homarr/issues/1763)) ([0336803](https://github.com/homarr-labs/homarr/commit/033680355044b1ebfa5d8fe07b59929bbcfcb3a0)) +- **board:** item background and border overridden by mantine card styles ([#1769](https://github.com/homarr-labs/homarr/issues/1769)) ([425359b](https://github.com/homarr-labs/homarr/commit/425359be02f66242f7db0dc77bed0355495e21d5)) +- **board:** tiles order not respected on firefox ([#1770](https://github.com/homarr-labs/homarr/issues/1770)) ([8893b72](https://github.com/homarr-labs/homarr/commit/8893b72fe363691b91b6aca75d4ad37f4b8e9f6a)) +- copy media link ([#1750](https://github.com/homarr-labs/homarr/issues/1750)) ([d78c6ed](https://github.com/homarr-labs/homarr/commit/d78c6ed5299e1f975c2e85ec3ecad38e00457677)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.2.0 ([#1768](https://github.com/homarr-labs/homarr/issues/1768)) ([8b416a6](https://github.com/homarr-labs/homarr/commit/8b416a6dd354b22a3e4f527b793dde2c538b1e6a)) +- **deps:** update dependency eslint-plugin-react to ^7.37.3 ([#1767](https://github.com/homarr-labs/homarr/issues/1767)) ([fe95334](https://github.com/homarr-labs/homarr/commit/fe95334aa70c95faefcf904591fa9d33159b0905)) +- **deps:** update dependency jotai to ^2.11.0 ([#1756](https://github.com/homarr-labs/homarr/issues/1756)) ([4e85bbb](https://github.com/homarr-labs/homarr/commit/4e85bbbad034f08ab84e331d376b7a9c6f54e507)) +- **deps:** update dependency mysql2 to v3.12.0 ([#1758](https://github.com/homarr-labs/homarr/issues/1758)) ([d02ded5](https://github.com/homarr-labs/homarr/commit/d02ded5511aa2d54307db0ac7f4e0a5dee5a707d)) +- **deps:** update dependency react-error-boundary to v5 ([#1748](https://github.com/homarr-labs/homarr/issues/1748)) ([01db27c](https://github.com/homarr-labs/homarr/commit/01db27c34f3daf6e67e35bbd357df31dcb154b41)) +- **deps:** update dependency typescript-eslint to ^8.18.2 ([#1762](https://github.com/homarr-labs/homarr/issues/1762)) ([9223dd0](https://github.com/homarr-labs/homarr/commit/9223dd06ee0c2b51e036f607d7b3252c61ab77ea)) +- **deps:** update mantine monorepo to ^7.15.2 ([#1757](https://github.com/homarr-labs/homarr/issues/1757)) ([dfacb08](https://github.com/homarr-labs/homarr/commit/dfacb08dbddb6864646ece2fca6978207f0c58ac)) +- **deps:** update tanstack-query monorepo to ^5.62.10 ([#1772](https://github.com/homarr-labs/homarr/issues/1772)) ([c410b06](https://github.com/homarr-labs/homarr/commit/c410b06a15ed5426931ad764cc861f66f11a40da)) +- **deps:** update tanstack-query monorepo to ^5.62.9 ([#1761](https://github.com/homarr-labs/homarr/issues/1761)) ([42da2b9](https://github.com/homarr-labs/homarr/commit/42da2b9b062bd8a08c37e45ab129953e8b0e3624)) +- **icons:** local icon repository does not work with medias ([#1765](https://github.com/homarr-labs/homarr/issues/1765)) ([e220087](https://github.com/homarr-labs/homarr/commit/e220087e96c7096303b1d245ccf3941118e692f3)) +- **onboard:** missing admin permission assignment for external group ([#1764](https://github.com/homarr-labs/homarr/issues/1764)) ([b948337](https://github.com/homarr-labs/homarr/commit/b9483379dd56a8dab2b9b636b66b970da4cf9d83)) ## [1.0.0-beta.6](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.5...v1.0.0-beta.6) (2024-12-20) ### Bug Fixes -* **deps:** update dependency ioredis to v5.4.2 ([#1739](https://github.com/homarr-labs/homarr/issues/1739)) ([720fdb7](https://github.com/homarr-labs/homarr/commit/720fdb772c2142e23b2bfa2ecaddf0063fbe192c)) -* **deps:** update dependency next-intl to v3.26.3 ([#1740](https://github.com/homarr-labs/homarr/issues/1740)) ([fff1da8](https://github.com/homarr-labs/homarr/commit/fff1da88bd44162b08a76f8b2f49e2b929fc56e8)) +- **deps:** update dependency ioredis to v5.4.2 ([#1739](https://github.com/homarr-labs/homarr/issues/1739)) ([720fdb7](https://github.com/homarr-labs/homarr/commit/720fdb772c2142e23b2bfa2ecaddf0063fbe192c)) +- **deps:** update dependency next-intl to v3.26.3 ([#1740](https://github.com/homarr-labs/homarr/issues/1740)) ([fff1da8](https://github.com/homarr-labs/homarr/commit/fff1da88bd44162b08a76f8b2f49e2b929fc56e8)) ## [1.0.0-beta.5](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.4...v1.0.0-beta.5) (2024-12-19) ### Features -* Add quick filters for integration and status + minor UI improvement from feedback ([#1641](https://github.com/homarr-labs/homarr/issues/1641)) ([b6dad43](https://github.com/homarr-labs/homarr/commit/b6dad438c2f44aa8d7a740c1a22c9d4c39edf43e)) +- Add quick filters for integration and status + minor UI improvement from feedback ([#1641](https://github.com/homarr-labs/homarr/issues/1641)) ([b6dad43](https://github.com/homarr-labs/homarr/commit/b6dad438c2f44aa8d7a740c1a22c9d4c39edf43e)) ### Bug Fixes -* about version is one behind because of missing package-json update in deploy ([#1725](https://github.com/homarr-labs/homarr/issues/1725)) ([8c11562](https://github.com/homarr-labs/homarr/commit/8c1156240c8a0d332301ae6dd0a4521f3db19d9a)) -* allow additional file-type for oldmarr import ([#1723](https://github.com/homarr-labs/homarr/issues/1723)) ([1e8a535](https://github.com/homarr-labs/homarr/commit/1e8a5359b78e28db7683ba837a962685446c6c32)) -* always require db-user and password for mysql ([#1730](https://github.com/homarr-labs/homarr/issues/1730)) ([d2584b6](https://github.com/homarr-labs/homarr/commit/d2584b63c55ca143a2b5dc6a71cb00fd5612b78a)) -* **deps:** update dependency tldts to ^6.1.69 ([#1726](https://github.com/homarr-labs/homarr/issues/1726)) ([c0f6816](https://github.com/homarr-labs/homarr/commit/c0f681637db1d6e7abdf3326b3a3c17283440d09)) -* **deps:** update dependency undici to v7.2.0 ([#1718](https://github.com/homarr-labs/homarr/issues/1718)) ([61afab5](https://github.com/homarr-labs/homarr/commit/61afab518f6193a700a547faffa4619b28fb0837)) -* **deps:** update dependency zod-form-data to ^2.0.3 ([#1717](https://github.com/homarr-labs/homarr/issues/1717)) ([a7bd664](https://github.com/homarr-labs/homarr/commit/a7bd664c5cee578574bf37b7149a2142be9f8b7a)) -* **deps:** update dependency zod-form-data to ^2.0.4 ([#1719](https://github.com/homarr-labs/homarr/issues/1719)) ([3b7e6cc](https://github.com/homarr-labs/homarr/commit/3b7e6cc083220a0e3a0cf4f5243c073067ba5bc7)) -* **deps:** update nextjs monorepo to ^14.2.21 ([#1727](https://github.com/homarr-labs/homarr/issues/1727)) ([2b4bc83](https://github.com/homarr-labs/homarr/commit/2b4bc8352efa1e2cffb71a6d4d6e42f941358f02)) -* **deps:** update tiptap monorepo to v2.10.4 ([#1729](https://github.com/homarr-labs/homarr/issues/1729)) ([2ae3d93](https://github.com/homarr-labs/homarr/commit/2ae3d938eeea5bd49a74d9c09b4cb2c680b059d0)) -* mysql operations not working ([#1728](https://github.com/homarr-labs/homarr/issues/1728)) ([550bca6](https://github.com/homarr-labs/homarr/commit/550bca6dee743a4ed68ec15677304ecfd7a9a385)) -* update of dev branch has no credentials ([#1724](https://github.com/homarr-labs/homarr/issues/1724)) ([bb7f751](https://github.com/homarr-labs/homarr/commit/bb7f7514814d49a77ac79f63d68923d08148573e)) +- about version is one behind because of missing package-json update in deploy ([#1725](https://github.com/homarr-labs/homarr/issues/1725)) ([8c11562](https://github.com/homarr-labs/homarr/commit/8c1156240c8a0d332301ae6dd0a4521f3db19d9a)) +- allow additional file-type for oldmarr import ([#1723](https://github.com/homarr-labs/homarr/issues/1723)) ([1e8a535](https://github.com/homarr-labs/homarr/commit/1e8a5359b78e28db7683ba837a962685446c6c32)) +- always require db-user and password for mysql ([#1730](https://github.com/homarr-labs/homarr/issues/1730)) ([d2584b6](https://github.com/homarr-labs/homarr/commit/d2584b63c55ca143a2b5dc6a71cb00fd5612b78a)) +- **deps:** update dependency tldts to ^6.1.69 ([#1726](https://github.com/homarr-labs/homarr/issues/1726)) ([c0f6816](https://github.com/homarr-labs/homarr/commit/c0f681637db1d6e7abdf3326b3a3c17283440d09)) +- **deps:** update dependency undici to v7.2.0 ([#1718](https://github.com/homarr-labs/homarr/issues/1718)) ([61afab5](https://github.com/homarr-labs/homarr/commit/61afab518f6193a700a547faffa4619b28fb0837)) +- **deps:** update dependency zod-form-data to ^2.0.3 ([#1717](https://github.com/homarr-labs/homarr/issues/1717)) ([a7bd664](https://github.com/homarr-labs/homarr/commit/a7bd664c5cee578574bf37b7149a2142be9f8b7a)) +- **deps:** update dependency zod-form-data to ^2.0.4 ([#1719](https://github.com/homarr-labs/homarr/issues/1719)) ([3b7e6cc](https://github.com/homarr-labs/homarr/commit/3b7e6cc083220a0e3a0cf4f5243c073067ba5bc7)) +- **deps:** update nextjs monorepo to ^14.2.21 ([#1727](https://github.com/homarr-labs/homarr/issues/1727)) ([2b4bc83](https://github.com/homarr-labs/homarr/commit/2b4bc8352efa1e2cffb71a6d4d6e42f941358f02)) +- **deps:** update tiptap monorepo to v2.10.4 ([#1729](https://github.com/homarr-labs/homarr/issues/1729)) ([2ae3d93](https://github.com/homarr-labs/homarr/commit/2ae3d938eeea5bd49a74d9c09b4cb2c680b059d0)) +- mysql operations not working ([#1728](https://github.com/homarr-labs/homarr/issues/1728)) ([550bca6](https://github.com/homarr-labs/homarr/commit/550bca6dee743a4ed68ec15677304ecfd7a9a385)) +- update of dev branch has no credentials ([#1724](https://github.com/homarr-labs/homarr/issues/1724)) ([bb7f751](https://github.com/homarr-labs/homarr/commit/bb7f7514814d49a77ac79f63d68923d08148573e)) ## [1.0.0-beta.4](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.3...v1.0.0-beta.4) (2024-12-18) ### Bug Fixes -* about version reads nextjs package-json ([#1706](https://github.com/homarr-labs/homarr/issues/1706)) ([d803087](https://github.com/homarr-labs/homarr/commit/d8030873452d2248d79d16a2fc4464ff2fbb478d)) -* conflicts between common admin group for ldap or oidc and credentials default group ([#1710](https://github.com/homarr-labs/homarr/issues/1710)) ([3c0f272](https://github.com/homarr-labs/homarr/commit/3c0f272707ee66fd00bffb0d16e30df98b4f1aff)) -* **deps:** update dependency ldapts to v7.3.0 ([#1696](https://github.com/homarr-labs/homarr/issues/1696)) ([6943505](https://github.com/homarr-labs/homarr/commit/694350583a0e53014a950c4a5bed4d487ad4ca7b)) -* **deps:** update dependency next-intl to v3.26.2 ([#1703](https://github.com/homarr-labs/homarr/issues/1703)) ([d3a883a](https://github.com/homarr-labs/homarr/commit/d3a883a252167612f3f64579730c8f26453897e3)) -* docker statup permission issue ([#1709](https://github.com/homarr-labs/homarr/issues/1709)) ([1baa9fc](https://github.com/homarr-labs/homarr/commit/1baa9fc74cf15df8ead7bbe6d1615f7bf0895813)) -* import sidebar issues ([#1712](https://github.com/homarr-labs/homarr/issues/1712)) ([a519994](https://github.com/homarr-labs/homarr/commit/a51999457b57c042b543768bc1ef43647d62a85d)) -* jellyfin integration does not allow username password auth ([#1714](https://github.com/homarr-labs/homarr/issues/1714)) ([63a7be3](https://github.com/homarr-labs/homarr/commit/63a7be35a4cf0f11610c2097afc32d2ced0ef9e1)) -* permission required for home page ([#1711](https://github.com/homarr-labs/homarr/issues/1711)) ([5fbbf03](https://github.com/homarr-labs/homarr/commit/5fbbf037ce8a06642533c7f68c1c34ed8b01e4e4)) +- about version reads nextjs package-json ([#1706](https://github.com/homarr-labs/homarr/issues/1706)) ([d803087](https://github.com/homarr-labs/homarr/commit/d8030873452d2248d79d16a2fc4464ff2fbb478d)) +- conflicts between common admin group for ldap or oidc and credentials default group ([#1710](https://github.com/homarr-labs/homarr/issues/1710)) ([3c0f272](https://github.com/homarr-labs/homarr/commit/3c0f272707ee66fd00bffb0d16e30df98b4f1aff)) +- **deps:** update dependency ldapts to v7.3.0 ([#1696](https://github.com/homarr-labs/homarr/issues/1696)) ([6943505](https://github.com/homarr-labs/homarr/commit/694350583a0e53014a950c4a5bed4d487ad4ca7b)) +- **deps:** update dependency next-intl to v3.26.2 ([#1703](https://github.com/homarr-labs/homarr/issues/1703)) ([d3a883a](https://github.com/homarr-labs/homarr/commit/d3a883a252167612f3f64579730c8f26453897e3)) +- docker statup permission issue ([#1709](https://github.com/homarr-labs/homarr/issues/1709)) ([1baa9fc](https://github.com/homarr-labs/homarr/commit/1baa9fc74cf15df8ead7bbe6d1615f7bf0895813)) +- import sidebar issues ([#1712](https://github.com/homarr-labs/homarr/issues/1712)) ([a519994](https://github.com/homarr-labs/homarr/commit/a51999457b57c042b543768bc1ef43647d62a85d)) +- jellyfin integration does not allow username password auth ([#1714](https://github.com/homarr-labs/homarr/issues/1714)) ([63a7be3](https://github.com/homarr-labs/homarr/commit/63a7be35a4cf0f11610c2097afc32d2ced0ef9e1)) +- permission required for home page ([#1711](https://github.com/homarr-labs/homarr/issues/1711)) ([5fbbf03](https://github.com/homarr-labs/homarr/commit/5fbbf037ce8a06642533c7f68c1c34ed8b01e4e4)) ## [1.0.0-beta.3](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.2...v1.0.0-beta.3) (2024-12-17) ### Bug Fixes -* boolean checks do not work correctly in deploy workflow ([649506b](https://github.com/homarr-labs/homarr/commit/649506b56a5f3cbbee9b782b637730f2196785cc)) +- boolean checks do not work correctly in deploy workflow ([649506b](https://github.com/homarr-labs/homarr/commit/649506b56a5f3cbbee9b782b637730f2196785cc)) ## [1.0.0-beta.2](https://github.com/homarr-labs/homarr/compare/v1.0.0-beta.1...v1.0.0-beta.2) (2024-12-17) ### Bug Fixes -* add missing branch-name to discord deploy notification ([50697eb](https://github.com/homarr-labs/homarr/commit/50697eb21f923bbe9a6811c964cfc313f79a2806)) +- add missing branch-name to discord deploy notification ([50697eb](https://github.com/homarr-labs/homarr/commit/50697eb21f923bbe9a6811c964cfc313f79a2806)) ## 1.0.0-beta.1 (2024-12-17) ### ⚠ BREAKING CHANGES -* **deps:** update tanstack-query monorepo (#126) +- **deps:** update tanstack-query monorepo (#126) ### Features -* [#1047](https://github.com/homarr-labs/homarr/issues/1047) add overseerr search ([#1411](https://github.com/homarr-labs/homarr/issues/1411)) ([aa50399](https://github.com/homarr-labs/homarr/commit/aa503992af37bc683f934b36faebd31fba9d8720)) -* [#1243](https://github.com/homarr-labs/homarr/issues/1243) add api routes ([#1286](https://github.com/homarr-labs/homarr/issues/1286)) ([d76b4d0](https://github.com/homarr-labs/homarr/commit/d76b4d0ec185b627eee5e000ca16b78899c950a7)) -* [#1254](https://github.com/homarr-labs/homarr/issues/1254) display group owner ([#1406](https://github.com/homarr-labs/homarr/issues/1406)) ([34506b6](https://github.com/homarr-labs/homarr/commit/34506b6339945d3ee8d6afc84b7f1da8ff9153b0)) -* [#1408](https://github.com/homarr-labs/homarr/issues/1408) add local icon repository ([#1413](https://github.com/homarr-labs/homarr/issues/1413)) ([f31ccf2](https://github.com/homarr-labs/homarr/commit/f31ccf2d6aa9eb0e81e8759527195b7754eb7df3)) -* [#1408](https://github.com/homarr-labs/homarr/issues/1408) improve icon picker design ([#1412](https://github.com/homarr-labs/homarr/issues/1412)) ([441cbbe](https://github.com/homarr-labs/homarr/commit/441cbbe71775e37bf19f44ad2ba4065e839fbfa8)) -* [#420](https://github.com/homarr-labs/homarr/issues/420) reimplement icon picker ([#421](https://github.com/homarr-labs/homarr/issues/421)) ([60a35e2](https://github.com/homarr-labs/homarr/commit/60a35e258363e26df68f96290fd9359f577f1498)) -* [#511](https://github.com/homarr-labs/homarr/issues/511) log user logged in ([#1405](https://github.com/homarr-labs/homarr/issues/1405)) ([b294bf6](https://github.com/homarr-labs/homarr/commit/b294bf68cf4eceaf00ba94fb842f75af05a2c50d)) -* add 404 page ([#145](https://github.com/homarr-labs/homarr/issues/145)) ([60dec6e](https://github.com/homarr-labs/homarr/commit/60dec6e3be68a7f14ffae1f527c671e5d90e7f04)) -* add about page ([#388](https://github.com/homarr-labs/homarr/issues/388)) ([42a5a1a](https://github.com/homarr-labs/homarr/commit/42a5a1a56368cc1dadc61f403bd9a3f696716904)) -* add actual user for trpc wss-dev-server ([#261](https://github.com/homarr-labs/homarr/issues/261)) ([058a8c4](https://github.com/homarr-labs/homarr/commit/058a8c4776d2cd73653f9c40525847576e7b0a2b)), closes [#233](https://github.com/homarr-labs/homarr/issues/233) -* add analytics ([#528](https://github.com/homarr-labs/homarr/issues/528)) ([7e64d39](https://github.com/homarr-labs/homarr/commit/7e64d39693438cc52f37c8aab4fb9b04c851e4b9)) -* add api keys ([#991](https://github.com/homarr-labs/homarr/issues/991)) ([b14f82b](https://github.com/homarr-labs/homarr/commit/b14f82b4bb7be6e68ecaa9db0e1957e39f90823b)) -* add app actions ([#322](https://github.com/homarr-labs/homarr/issues/322)) ([8988880](https://github.com/homarr-labs/homarr/commit/89888804393720c10aab9f03f33d54d039d32a2b)) -* add app widget ([#206](https://github.com/homarr-labs/homarr/issues/206)) ([c4ff968](https://github.com/homarr-labs/homarr/commit/c4ff968cbca9250a8b33b5632e9267ecd0a7863b)) -* Add apps crud ([#174](https://github.com/homarr-labs/homarr/issues/174)) ([8d5984c](https://github.com/homarr-labs/homarr/commit/8d5984c58a6ec6ee04cce49d51ab9aee53577bf9)) -* add async suffix eslint rule ([#485](https://github.com/homarr-labs/homarr/issues/485)) ([dcaff1d](https://github.com/homarr-labs/homarr/commit/dcaff1d91c7789dd1003313e73172b605cd420c5)) -* add board ([#15](https://github.com/homarr-labs/homarr/issues/15)) ([9d52087](https://github.com/homarr-labs/homarr/commit/9d520874f4feb71587d365a82a75e2de93720b4e)) -* add board access settings ([#249](https://github.com/homarr-labs/homarr/issues/249)) ([361700b](https://github.com/homarr-labs/homarr/commit/361700b2394bc616607fdaa25bb7847998f3179f)) -* add boards management page ([#55](https://github.com/homarr-labs/homarr/issues/55)) ([5ef79ed](https://github.com/homarr-labs/homarr/commit/5ef79edc1aac1f675d613255a02741da4d836f81)) -* add bookmark widget ([#964](https://github.com/homarr-labs/homarr/issues/964)) ([49c0ebe](https://github.com/homarr-labs/homarr/commit/49c0ebea6dad6f586fc61073f815a928db4b435b)) -* add calendar widget ([#663](https://github.com/homarr-labs/homarr/issues/663)) ([dba97a3](https://github.com/homarr-labs/homarr/commit/dba97a3bd6d4b29c9079c9ee6ec98aa974614add)) -* add change password form ([#199](https://github.com/homarr-labs/homarr/issues/199)) ([beb7def](https://github.com/homarr-labs/homarr/commit/beb7defd32561ca074b48b4aa72631fdb59ddbdc)) -* add collapse to login screen with cli command for password reset ([#963](https://github.com/homarr-labs/homarr/issues/963)) ([bc886d9](https://github.com/homarr-labs/homarr/commit/bc886d94767cd2898529c0c17ff669bad4a19fad)) -* add colorscheme to user in db ([#987](https://github.com/homarr-labs/homarr/issues/987)) ([b080e0d](https://github.com/homarr-labs/homarr/commit/b080e0de714235756affc4c68854ec6a01269836)) -* add column count and is public options to board creation modal ([#930](https://github.com/homarr-labs/homarr/issues/930)) ([fcb72e6](https://github.com/homarr-labs/homarr/commit/fcb72e67167d3549f4f5b35706cabb0ca155eb8e)) -* add context specific search and actions ([#1570](https://github.com/homarr-labs/homarr/issues/1570)) ([c840ff8](https://github.com/homarr-labs/homarr/commit/c840ff85bcda7b45703e25204c93f1a9531d52dd)) -* add contributors to about page ([#445](https://github.com/homarr-labs/homarr/issues/445)) ([3cda718](https://github.com/homarr-labs/homarr/commit/3cda718474dc5641d4c2c8680ec5369ad5b85cc8)) -* add crawling settings ([#959](https://github.com/homarr-labs/homarr/issues/959)) ([19cd41a](https://github.com/homarr-labs/homarr/commit/19cd41a8e52585963ffe210186daadb1513b4dca)) -* add create board modal ([#131](https://github.com/homarr-labs/homarr/issues/131)) ([e3e38e7](https://github.com/homarr-labs/homarr/commit/e3e38e7f4496989a761657d9e79c317e26738c46)) -* add credentials authentication ([#1](https://github.com/homarr-labs/homarr/issues/1)) ([3cedb7f](https://github.com/homarr-labs/homarr/commit/3cedb7fba5aade5e176002453300779d6348a0b4)) -* add crud for integrations ([#11](https://github.com/homarr-labs/homarr/issues/11)) ([367beb6](https://github.com/homarr-labs/homarr/commit/367beb6759b54caaa8d3a2c723d5202626811976)) -* add custom css for board and custom classes in advanced options for items ([#512](https://github.com/homarr-labs/homarr/issues/512)) ([26b1c4a](https://github.com/homarr-labs/homarr/commit/26b1c4a3199c59e1b5eb3529da74180a455fa09f)) -* add dashdot integration ([#1541](https://github.com/homarr-labs/homarr/issues/1541)) ([84e5002](https://github.com/homarr-labs/homarr/commit/84e500279d5cc2db696365da46cf405c7a9fd06f)) -* add docker actions ([#752](https://github.com/homarr-labs/homarr/issues/752)) ([95101e3](https://github.com/homarr-labs/homarr/commit/95101e34ed0cc5134a7cb15fd0ab56c5f4b5a14e)) -* add docker container table ([#520](https://github.com/homarr-labs/homarr/issues/520)) ([dd2937a](https://github.com/homarr-labs/homarr/commit/dd2937a0d6106ce241cc5d8f25fc581c717604f1)) -* add duplication action for items ([#926](https://github.com/homarr-labs/homarr/issues/926)) ([81946e5](https://github.com/homarr-labs/homarr/commit/81946e50a9f643826f6c75ce2de54f92b74819bc)) -* add dynamic breadcrumb ([#706](https://github.com/homarr-labs/homarr/issues/706)) ([4e1bbf2](https://github.com/homarr-labs/homarr/commit/4e1bbf2ae64e951c62bb3a86787cecc1e2d22da9)) -* add dynamic section ([#842](https://github.com/homarr-labs/homarr/issues/842)) ([9ce172e](https://github.com/homarr-labs/homarr/commit/9ce172e78a142be71cfae8fdb581987fec9b78f0)) -* add edit user page ([#173](https://github.com/homarr-labs/homarr/issues/173)) ([41b99f1](https://github.com/homarr-labs/homarr/commit/41b99f191c6559bca49c7c3c3a13553c7698b781)) -* add env variable to disable db migrations on startup ([#1179](https://github.com/homarr-labs/homarr/issues/1179)) ([a30be7b](https://github.com/homarr-labs/homarr/commit/a30be7bc1e3beea0171c81ce9ec406ecc3c65e74)) -* add error page for docker tools page ([#1655](https://github.com/homarr-labs/homarr/issues/1655)) ([6031191](https://github.com/homarr-labs/homarr/commit/60311918ce31ec9ae84cadbc450fc5732f173536)) -* Add ErrorDisplay component ([245c2f4](https://github.com/homarr-labs/homarr/commit/245c2f483c36e197da4e8ff2a2fe1d58e2916786)) -* add everyone group ([#1322](https://github.com/homarr-labs/homarr/issues/1322)) ([2f1c800](https://github.com/homarr-labs/homarr/commit/2f1c8008447175697dfd3a814316665ed039713f)) -* add first day of week user setting ([#1249](https://github.com/homarr-labs/homarr/issues/1249)) ([ab1744c](https://github.com/homarr-labs/homarr/commit/ab1744ce20fd0df8c21361e3df0d65c9ab63c014)) -* add healthchecks ([#1187](https://github.com/homarr-labs/homarr/issues/1187)) ([08c6303](https://github.com/homarr-labs/homarr/commit/08c6303fa64a45580ef9ae41a7b1c0ea13266ecd)) -* add hero banner ([#463](https://github.com/homarr-labs/homarr/issues/463)) ([87fe03d](https://github.com/homarr-labs/homarr/commit/87fe03dd009be451981f99910d8f88129ecde9d1)) -* add home board for users ([#505](https://github.com/homarr-labs/homarr/issues/505)) ([7e339c0](https://github.com/homarr-labs/homarr/commit/7e339c09c86cafef56ea3bf915c8665b9e6e0c95)) -* add homeassistant integration ([#578](https://github.com/homarr-labs/homarr/issues/578)) ([2e782ae](https://github.com/homarr-labs/homarr/commit/2e782ae4428cc27024c29d58530fde86a65c87bd)) -* add hotkeys ([#986](https://github.com/homarr-labs/homarr/issues/986)) ([7521ef0](https://github.com/homarr-labs/homarr/commit/7521ef0519033fc4ddd51f03f46281417aa05b76)) -* add i18n translated form errors ([#509](https://github.com/homarr-labs/homarr/issues/509)) ([dfed804](https://github.com/homarr-labs/homarr/commit/dfed804f65003f715ed0bf699de39b4c8c63d63b)) -* add iframe widget ([#291](https://github.com/homarr-labs/homarr/issues/291)) ([8f48971](https://github.com/homarr-labs/homarr/commit/8f4897186c827f327d0823b619cd3ca4df859229)) -* add import for config files from oldmarr ([#1019](https://github.com/homarr-labs/homarr/issues/1019)) ([5404ceb](https://github.com/homarr-labs/homarr/commit/5404cebf5b04c5a93249c5674607640f70b798d3)) -* add improved search ([#1051](https://github.com/homarr-labs/homarr/issues/1051)) ([ce1ef3c](https://github.com/homarr-labs/homarr/commit/ce1ef3cbe761cbed9843eb4881758a30ac934fc1)) -* add integration access check to middlewares ([#756](https://github.com/homarr-labs/homarr/issues/756)) ([46943b1](https://github.com/homarr-labs/homarr/commit/46943b147ae08be3d79cce73243eaca4cba2959f)) -* add integration access settings ([#725](https://github.com/homarr-labs/homarr/issues/725)) ([408cdeb](https://github.com/homarr-labs/homarr/commit/408cdeb5c32735a9f78343818bb6f91eb1c8daee)) -* add jellyfin integration ([#672](https://github.com/homarr-labs/homarr/issues/672)) ([bb8640b](https://github.com/homarr-labs/homarr/commit/bb8640b1621f6a3809465c0187f99a8bcae473ed)), closes [#655](https://github.com/homarr-labs/homarr/issues/655) -* add job on start option for icons updater ([#442](https://github.com/homarr-labs/homarr/issues/442)) ([7b31684](https://github.com/homarr-labs/homarr/commit/7b31684c84aeaade6f370337821bea2d2bb9efee)) -* add ldap and oidc sso ([#500](https://github.com/homarr-labs/homarr/issues/500)) ([dc75ffb](https://github.com/homarr-labs/homarr/commit/dc75ffb9e65a6ea9479fae36558a5915578a83a6)) -* add lidarr integration ([#1433](https://github.com/homarr-labs/homarr/issues/1433)) ([ed74604](https://github.com/homarr-labs/homarr/commit/ed74604a547528a69d0572fe45e6482524ef1837)) -* add login and logout ([#436](https://github.com/homarr-labs/homarr/issues/436)) ([51aaab2](https://github.com/homarr-labs/homarr/commit/51aaab2f23f6a5a20fb5fc42bf8f9f79e017643e)) -* add logout redirect url ([#954](https://github.com/homarr-labs/homarr/issues/954)) ([13e0996](https://github.com/homarr-labs/homarr/commit/13e09968d928bc5e255dd3f93eca3d3e42f1b144)) -* add management pages ([#12](https://github.com/homarr-labs/homarr/issues/12)) ([2809e01](https://github.com/homarr-labs/homarr/commit/2809e01b03bf939aaecdce8007ece9322688061a)) -* add manifest ([#1309](https://github.com/homarr-labs/homarr/issues/1309)) ([727f104](https://github.com/homarr-labs/homarr/commit/727f10448f55d7dc7b9d4a227b34d7351816918d)) -* add media management ([#1337](https://github.com/homarr-labs/homarr/issues/1337)) ([db198c6](https://github.com/homarr-labs/homarr/commit/db198c6dab64b1dd299e6ed15a29ecb42bc409b6)) -* add media requests widget ([#774](https://github.com/homarr-labs/homarr/issues/774)) ([acbb834](https://github.com/homarr-labs/homarr/commit/acbb834889ae5a9161e609bff6a20d1e1a6258f3)) -* add member sync between groups of ldap and homarr ([#1149](https://github.com/homarr-labs/homarr/issues/1149)) ([6133309](https://github.com/homarr-labs/homarr/commit/61333094dff53cb4dea79f8dfffd3f9d6ee0ce1b)) -* add million-lint ([#607](https://github.com/homarr-labs/homarr/issues/607)) ([94984ac](https://github.com/homarr-labs/homarr/commit/94984ac11ba158563e8653d42d7c1f0b79bff0ea)) -* add more group permissions ([#1453](https://github.com/homarr-labs/homarr/issues/1453)) ([0ee343b](https://github.com/homarr-labs/homarr/commit/0ee343b99ecbb44140df8c3c59971108f13b3dce)) -* add mysql support ([#212](https://github.com/homarr-labs/homarr/issues/212)) ([24ec13c](https://github.com/homarr-labs/homarr/commit/24ec13c2ab76f73d4e18f1f4cc9ea369439b105d)) -* add nestjs app ([#172](https://github.com/homarr-labs/homarr/issues/172)) ([9440d04](https://github.com/homarr-labs/homarr/commit/9440d04261f6597c021fbb7a4eb6ee441bc8d41c)) -* add nestjs replacement, remove nestjs ([#285](https://github.com/homarr-labs/homarr/issues/285)) ([1936596](https://github.com/homarr-labs/homarr/commit/1936596c048552f1730a02b1e5c03aed6f9d0fb6)) -* add next-international translations ([#2](https://github.com/homarr-labs/homarr/issues/2)) ([a082f70](https://github.com/homarr-labs/homarr/commit/a082f704704bea127014216baeb914e9c8fe09f6)) -* add nginx proxy ([#1073](https://github.com/homarr-labs/homarr/issues/1073)) ([cd46198](https://github.com/homarr-labs/homarr/commit/cd4619845b83dd7d5bcd039b7ddeaf023eb42a84)) -* add not found pages for boards ([#1671](https://github.com/homarr-labs/homarr/issues/1671)) ([8e4d67c](https://github.com/homarr-labs/homarr/commit/8e4d67c3eb49f7ccbd7e87efa75dfe1e4665bf3f)) -* add notebook widget ([#294](https://github.com/homarr-labs/homarr/issues/294)) ([6b1879c](https://github.com/homarr-labs/homarr/commit/6b1879cbb1d5129b8960a5dec9880f4951c0222e)) -* add notes for creation of apps and integrations in widget edit modal ([#1297](https://github.com/homarr-labs/homarr/issues/1297)) ([e99fd64](https://github.com/homarr-labs/homarr/commit/e99fd648822f61b4ad7b3793875df69348a3e0c8)) -* add onboarding with oldmarr import ([#1606](https://github.com/homarr-labs/homarr/issues/1606)) ([6de74d9](https://github.com/homarr-labs/homarr/commit/6de74d952560275faf546c2720f71dddbe1fe399)) -* add password input field ([#160](https://github.com/homarr-labs/homarr/issues/160)) ([c6c8778](https://github.com/homarr-labs/homarr/commit/c6c87783979b1053fd6068920c412c20547bab69)) -* add password requirements ([#988](https://github.com/homarr-labs/homarr/issues/988)) ([2d155fa](https://github.com/homarr-labs/homarr/commit/2d155fa0c48d63fe376d52e2c5403c8ec1130db6)) -* add permission section to create user page ([#1524](https://github.com/homarr-labs/homarr/issues/1524)) ([1fc48f9](https://github.com/homarr-labs/homarr/commit/1fc48f9db05935bc3298f9251b564ed539c48312)) -* add pi hole summary integration ([#521](https://github.com/homarr-labs/homarr/issues/521)) ([d57b771](https://github.com/homarr-labs/homarr/commit/d57b771a177511b878c0eada1d3002b52acdc6fb)) -* add prettier packagejson plugin ([#1577](https://github.com/homarr-labs/homarr/issues/1577)) ([a53a2cd](https://github.com/homarr-labs/homarr/commit/a53a2cdd34a46d6442c030192b449a855b69fca3)) -* add preview to icon picker ([#914](https://github.com/homarr-labs/homarr/issues/914)) ([ca1ecdf](https://github.com/homarr-labs/homarr/commit/ca1ecdf84811c58e4dff372fab42e64ab1791f06)) -* add readarr integration ([#1446](https://github.com/homarr-labs/homarr/issues/1446)) ([563c5d8](https://github.com/homarr-labs/homarr/commit/563c5d8f3c0dc5b7dcedadf7fa22c690c131a5c8)) -* add real time logger page ([#276](https://github.com/homarr-labs/homarr/issues/276)) ([c82915c](https://github.com/homarr-labs/homarr/commit/c82915c6dcaef8edffc67b82c97ba87e4597852a)) -* add redis ([#242](https://github.com/homarr-labs/homarr/issues/242)) ([1825e56](https://github.com/homarr-labs/homarr/commit/1825e563493a443039a5d0a8fa6d0b7ce3ef08b0)) -* add redis cache channel ([e05deef](https://github.com/homarr-labs/homarr/commit/e05deef6e28c7bbddda154d3d23f5325e85f3571)) -* add refresh button to docker containers table ([#913](https://github.com/homarr-labs/homarr/issues/913)) ([b53a2b6](https://github.com/homarr-labs/homarr/commit/b53a2b6b78f73f86ecff24cbf40b91e0f4ca55b0)) -* add rss widget ([#760](https://github.com/homarr-labs/homarr/issues/760)) ([15d9327](https://github.com/homarr-labs/homarr/commit/15d9327d465d1c522d9182027adaf27727a95b4e)) -* add server settings ([#487](https://github.com/homarr-labs/homarr/issues/487)) ([9191617](https://github.com/homarr-labs/homarr/commit/919161798ee6c5c2070632920c9dfc3699ab1f93)) -* add server settings for default board, default color scheme and default locale ([#1373](https://github.com/homarr-labs/homarr/issues/1373)) ([326b769](https://github.com/homarr-labs/homarr/commit/326b769c23f6619c7d6edd0cecedccdf6d641dde)) -* add session expiry ([#951](https://github.com/homarr-labs/homarr/issues/951)) ([6dafbaa](https://github.com/homarr-labs/homarr/commit/6dafbaae48f17ff519723fe33fc89034b10e8f1b)) -* add simple app ping ([#580](https://github.com/homarr-labs/homarr/issues/580)) ([d7ecdf5](https://github.com/homarr-labs/homarr/commit/d7ecdf55672e05e90424bed964644091b1af6499)) -* Add Simple-Icons and Selfh.st collections ([#1118](https://github.com/homarr-labs/homarr/issues/1118)) ([9fb6e67](https://github.com/homarr-labs/homarr/commit/9fb6e67ed33264f877ba819240e00d8fc8dbb984)) -* add support for all languages from old homarr ([#1394](https://github.com/homarr-labs/homarr/issues/1394)) ([0ff7c89](https://github.com/homarr-labs/homarr/commit/0ff7c8903b3c23ee286a0e3d68287927e03ff3e0)) -* add support for app url variables ([#915](https://github.com/homarr-labs/homarr/issues/915)) ([c4c4d41](https://github.com/homarr-labs/homarr/commit/c4c4d41e4d7c37d498ba25c91a734a9d7f66f233)) -* add support for multiple integration kind options ([#127](https://github.com/homarr-labs/homarr/issues/127)) ([f1aa422](https://github.com/homarr-labs/homarr/commit/f1aa42261446bcc4bd16b47ed0c1d5cd279a2e48)) -* add support for should hide option i widget edit modal ([#78](https://github.com/homarr-labs/homarr/issues/78)) ([16442bc](https://github.com/homarr-labs/homarr/commit/16442bc379c1d418080947fbd86a4bb14639e90e)) -* add tasks page ([#692](https://github.com/homarr-labs/homarr/issues/692)) ([08d571a](https://github.com/homarr-labs/homarr/commit/08d571ad74c0c97313664b31bf2d1ce83d91629b)) -* add tdarr integration ([#1657](https://github.com/homarr-labs/homarr/issues/1657)) ([032509e](https://github.com/homarr-labs/homarr/commit/032509e4623d7bab3a000a308cb21fc487c45487)) -* add trpc websocket ([#205](https://github.com/homarr-labs/homarr/issues/205)) ([4f375cb](https://github.com/homarr-labs/homarr/commit/4f375cbe6d1b82322e0e8eaeea9db60be083c84e)) -* add undici fetch interceptor ([#687](https://github.com/homarr-labs/homarr/issues/687)) ([508369c](https://github.com/homarr-labs/homarr/commit/508369cb0bb61dadbc2c0b06f03e08581bc7d8ae)) -* add update indicator ([#1626](https://github.com/homarr-labs/homarr/issues/1626)) ([dd9d8b5](https://github.com/homarr-labs/homarr/commit/dd9d8b52610aefe4dbf19f20117ea51264525bcb)) -* add user avatar menu ([#80](https://github.com/homarr-labs/homarr/issues/80)) ([08fa338](https://github.com/homarr-labs/homarr/commit/08fa338abbdff3bb3f7cfc96bc328ecb4a49c584)) -* add user groups ([#376](https://github.com/homarr-labs/homarr/issues/376)) ([036925b](https://github.com/homarr-labs/homarr/commit/036925bf78ec50afe8455efdc270ee4e503a0e03)) -* add user invite management ([#338](https://github.com/homarr-labs/homarr/issues/338)) ([621f6c8](https://github.com/homarr-labs/homarr/commit/621f6c81ae8689f6efc9ac141e8bcbf7fe35eb81)) -* add user invite registration ([#477](https://github.com/homarr-labs/homarr/issues/477)) ([94af21a](https://github.com/homarr-labs/homarr/commit/94af21abbfb36b1804d86d89155af720055de588)) -* add user management ([#134](https://github.com/homarr-labs/homarr/issues/134)) ([b4749e7](https://github.com/homarr-labs/homarr/commit/b4749e7091649815f2918b81d3c79b0216ece5d2)) -* add user setting for home board ([#956](https://github.com/homarr-labs/homarr/issues/956)) ([f327837](https://github.com/homarr-labs/homarr/commit/f327837d82149c563b07e1d42850356930f20e50)) -* add username validation to prevent duplicate ([781247d](https://github.com/homarr-labs/homarr/commit/781247de5141f4b0532801194ac904763db7da39)) -* add validation to widget edit modal inputs ([#879](https://github.com/homarr-labs/homarr/issues/879)) ([9cb6200](https://github.com/homarr-labs/homarr/commit/9cb6200895a0d44e87f59cdaf19432fb8312f8bf)) -* add video widget ([#287](https://github.com/homarr-labs/homarr/issues/287)) ([82e9887](https://github.com/homarr-labs/homarr/commit/82e9887f36a370594f258d8e6f60cda57593b2b7)) -* Add VOLUME instruction to `Dockerfile` ([#527](https://github.com/homarr-labs/homarr/issues/527)) ([5a9e8ed](https://github.com/homarr-labs/homarr/commit/5a9e8edf70b91933afbd0b4564fda3ab25fdbdd5)) -* add weather widget ([#286](https://github.com/homarr-labs/homarr/issues/286)) ([80d2d48](https://github.com/homarr-labs/homarr/commit/80d2d485b862f6c95fa1eb81ff96cb45d9b147b1)) -* add web search engines ([#290](https://github.com/homarr-labs/homarr/issues/290)) ([35ca732](https://github.com/homarr-labs/homarr/commit/35ca732744752b54b6318e17319d9b8ac950fda8)) -* Add widget integration option ([#14](https://github.com/homarr-labs/homarr/issues/14)) ([1740450](https://github.com/homarr-labs/homarr/commit/1740450648fc5c3915cd71b493a8523305f33703)) -* add widget preview pages ([#9](https://github.com/homarr-labs/homarr/issues/9)) ([7828975](https://github.com/homarr-labs/homarr/commit/782897527f489889f8b6f46ec577a298a0714953)) -* add widget server loader ([#16](https://github.com/homarr-labs/homarr/issues/16)) ([975f912](https://github.com/homarr-labs/homarr/commit/975f9123dd4d509e2b777d8af8d74f38ebc59aad)) -* add winston logger ([#143](https://github.com/homarr-labs/homarr/issues/143)) ([3d50f81](https://github.com/homarr-labs/homarr/commit/3d50f8165f0d27e9fe7b517cffa5d1950eca7ab8)) -* add winston logger ([#77](https://github.com/homarr-labs/homarr/issues/77)) ([34875df](https://github.com/homarr-labs/homarr/commit/34875dfd154f9e9e3a8ce5c5bc4d14e757b4b14d)) -* AdGuard Home integration ([#929](https://github.com/homarr-labs/homarr/issues/929)) ([4471260](https://github.com/homarr-labs/homarr/commit/44712608b7e0dfcbaf5d36c40792b04f2edec8d7)) -* allow no secrets for integration ([#856](https://github.com/homarr-labs/homarr/issues/856)) ([508fcb9](https://github.com/homarr-labs/homarr/commit/508fcb9861d56f84d027fc8c456d8841486fdf72)) -* App tile scalability ([#645](https://github.com/homarr-labs/homarr/issues/645)) ([28927cf](https://github.com/homarr-labs/homarr/commit/28927cfa2802c6335487638b5ce4d7133f2e4423)) -* approve before automerge ([3df6dcf](https://github.com/homarr-labs/homarr/commit/3df6dcfbe7b1b499dbd6ddf536ae509286afe21b)) -* board access group permissions ([#422](https://github.com/homarr-labs/homarr/issues/422)) ([b1e065f](https://github.com/homarr-labs/homarr/commit/b1e065f1da0fc0c4992d0de8f6ed87a9adef1d24)) -* board settings ([#137](https://github.com/homarr-labs/homarr/issues/137)) ([bb02163](https://github.com/homarr-labs/homarr/commit/bb02163e25e64c13e4f36df21fa90ff33483cac6)) -* cannot change username to the current one ([0ae8a75](https://github.com/homarr-labs/homarr/commit/0ae8a75a5ef38c85ca869cadbed9542c2993a3df)) -* change visibility in item options based on selected integration kinds ([#949](https://github.com/homarr-labs/homarr/issues/949)) ([25452ff](https://github.com/homarr-labs/homarr/commit/25452ff063383397af6b5e41984657f9eb68e801)) -* Clock widget and dayjs locale standard ([#79](https://github.com/homarr-labs/homarr/issues/79)) ([edcba9c](https://github.com/homarr-labs/homarr/commit/edcba9ceb62880196dac902e0a91b1dbdd0c45f1)) -* Clock widget scalability ([#644](https://github.com/homarr-labs/homarr/issues/644)) ([bac09d8](https://github.com/homarr-labs/homarr/commit/bac09d8be59eea7f59713fead9e5310b34cfa8aa)) -* date format on weather widget ([#1443](https://github.com/homarr-labs/homarr/issues/1443)) ([c51c5db](https://github.com/homarr-labs/homarr/commit/c51c5db3d73db8656f4d55921b5b664b8c27134e)) -* DNS Hole summary Scalability ([#646](https://github.com/homarr-labs/homarr/issues/646)) ([0710425](https://github.com/homarr-labs/homarr/commit/0710425e787aec1bcd90d3ba8dae71c8c97959ae)) -* dnshole controls widget ([#867](https://github.com/homarr-labs/homarr/issues/867)) ([65c6854](https://github.com/homarr-labs/homarr/commit/65c6854e4426350b196b1888c952d961c03c2b23)) -* DnsHole feature parity with oldmarr ([#1145](https://github.com/homarr-labs/homarr/issues/1145)) ([36915d9](https://github.com/homarr-labs/homarr/commit/36915d95fe45964f0291fb8c9cbc46ffecdf2681)) -* **docker:** add encryption key generation for integration secrets ([#1202](https://github.com/homarr-labs/homarr/issues/1202)) ([52b45d8](https://github.com/homarr-labs/homarr/commit/52b45d835db99b5e6b950a2adfb6e21665c8ccff)) -* downloads widget ([#844](https://github.com/homarr-labs/homarr/issues/844)) ([2535192](https://github.com/homarr-labs/homarr/commit/2535192b2cfc1c4acc42b31a59f90989236ea2c2)) -* implement board access control ([#349](https://github.com/homarr-labs/homarr/issues/349)) ([7ab9dc2](https://github.com/homarr-labs/homarr/commit/7ab9dc250184947b1f1a071a0cb7bce63ce95c96)) -* implement openapi ([#482](https://github.com/homarr-labs/homarr/issues/482)) ([f0cd45c](https://github.com/homarr-labs/homarr/commit/f0cd45c81385720f68693f8d3481466fc147cd61)) -* improve metadata ([#1308](https://github.com/homarr-labs/homarr/issues/1308)) ([0df7cb5](https://github.com/homarr-labs/homarr/commit/0df7cb5c25441700616d268fac5e64068542d080)) -* improve user init setup ([#643](https://github.com/homarr-labs/homarr/issues/643)) ([3a3a825](https://github.com/homarr-labs/homarr/commit/3a3a8251bdb65f07e109af83b639efabbd1404a5)) -* indexer manager widget ([#1057](https://github.com/homarr-labs/homarr/issues/1057)) ([08d4472](https://github.com/homarr-labs/homarr/commit/08d4472d8b612e11a8b4e5f09952a788e7bcdf8a)), closes [#1055](https://github.com/homarr-labs/homarr/issues/1055) -* integrate crowdin [#1402](https://github.com/homarr-labs/homarr/issues/1402) ([#1599](https://github.com/homarr-labs/homarr/issues/1599)) ([096f034](https://github.com/homarr-labs/homarr/commit/096f03432cfca75bc2740f65d7d6cb6fed4c4eaa)) -* language selector ([#484](https://github.com/homarr-labs/homarr/issues/484)) ([31c2694](https://github.com/homarr-labs/homarr/commit/31c26941857b4eac8e69ccb68bc4c00cd1073806)) -* log elapsed cron job time ([#742](https://github.com/homarr-labs/homarr/issues/742)) ([1cf119c](https://github.com/homarr-labs/homarr/commit/1cf119c76827c22dcac9f2417b6f65b64cd43e26)) -* log sql queries ([#444](https://github.com/homarr-labs/homarr/issues/444)) ([dc0184a](https://github.com/homarr-labs/homarr/commit/dc0184af071446e299407a2b6347852d52bdd17f)) -* make notifications optional ([e438bac](https://github.com/homarr-labs/homarr/commit/e438bac0f5dd7d487aae054802b5255612749252)) -* OMV integration & health monitoring widget ([#1142](https://github.com/homarr-labs/homarr/issues/1142)) ([0f56dc1](https://github.com/homarr-labs/homarr/commit/0f56dc1ecd03d6d6fe2305de85650f2b105e2169)) -* plex integration ([#1342](https://github.com/homarr-labs/homarr/issues/1342)) ([cf9b058](https://github.com/homarr-labs/homarr/commit/cf9b0581a486b3d6b1207e8a612c9fe4665c6d49)) -* populate integration name for new integrations automatically ([#1296](https://github.com/homarr-labs/homarr/issues/1296)) ([a0cc31d](https://github.com/homarr-labs/homarr/commit/a0cc31da700defc9a4f5c4210962571cbfe2b362)) -* pretty-print-error to print errors in console ([#1596](https://github.com/homarr-labs/homarr/issues/1596)) ([71f4f8c](https://github.com/homarr-labs/homarr/commit/71f4f8c4c85eb70533bed3ed86b6655e99cc2bb7)) -* Prowlarr integration ([#965](https://github.com/homarr-labs/homarr/issues/965)) ([6ff3640](https://github.com/homarr-labs/homarr/commit/6ff36405ba26ab27387094182885a99bf1ecb30d)) -* radarr integration ([#1053](https://github.com/homarr-labs/homarr/issues/1053)) ([e88854c](https://github.com/homarr-labs/homarr/commit/e88854c0e5b14c356f520c616b369d118ea3ddf7)) -* radarr release type to calendar widget ([#1256](https://github.com/homarr-labs/homarr/issues/1256)) ([98b62a9](https://github.com/homarr-labs/homarr/commit/98b62a9f919ef18f891e115f3dec31c7f1e49a44)) -* read all packages on about page ([#391](https://github.com/homarr-labs/homarr/issues/391)) ([16e42d6](https://github.com/homarr-labs/homarr/commit/16e42d654dbf8cf54757e49cc1c73ea1fa69d8a7)) -* remove manual flag to pushing image ([9013d5d](https://github.com/homarr-labs/homarr/commit/9013d5dbf01a7c60e5a427cfcebea7a332deb5d2)) -* replace home page with home board ([#1530](https://github.com/homarr-labs/homarr/issues/1530)) ([9fb14df](https://github.com/homarr-labs/homarr/commit/9fb14df2103db720cb6e5333b8afed5c1e730de6)) -* reset password cli ([#903](https://github.com/homarr-labs/homarr/issues/903)) ([7fa5e70](https://github.com/homarr-labs/homarr/commit/7fa5e70d5b5e4e6cded08f343f5db0f42e8be324)) -* restrict non credential provider interactions ([#871](https://github.com/homarr-labs/homarr/issues/871)) ([6f7327b](https://github.com/homarr-labs/homarr/commit/6f7327b77478c567b478c2c61b0a09400e426678)) -* RTL option to RSS widget ([#1247](https://github.com/homarr-labs/homarr/issues/1247)) ([9a7e845](https://github.com/homarr-labs/homarr/commit/9a7e8450106aa5f61db9e3360221bd8ac168daf6)) -* show creator on board page ([#440](https://github.com/homarr-labs/homarr/issues/440)) ([5d30301](https://github.com/homarr-labs/homarr/commit/5d30301b95a8b1e6129d97a6a66cbfb417407caf)) -* **spotlight:** add support for custom search-engines ([#1200](https://github.com/homarr-labs/homarr/issues/1200)) ([4c9471e](https://github.com/homarr-labs/homarr/commit/4c9471e6086c354ec4383f22a7b8020c5aa8974d)) -* support arm64 ([#1022](https://github.com/homarr-labs/homarr/issues/1022)) ([0c65727](https://github.com/homarr-labs/homarr/commit/0c657276a53aa77d6cc37435e61907574320e324)) -* test integration connection ([#669](https://github.com/homarr-labs/homarr/issues/669)) ([f92aeba](https://github.com/homarr-labs/homarr/commit/f92aeba403ec22e2a3219550b51191ae82bac000)) -* use consistent line ending ([#1407](https://github.com/homarr-labs/homarr/issues/1407)) ([0c067c4](https://github.com/homarr-labs/homarr/commit/0c067c4e6f36d741edf7c88de847585fefd54b64)) -* use different tag name ([ff847f0](https://github.com/homarr-labs/homarr/commit/ff847f091054c38015f45dfd1ee88e06116f53ad)) -* use gh app for merging ([82caec4](https://github.com/homarr-labs/homarr/commit/82caec402a4f33d0217b9d5e02140d4857dbb0ce)) -* use password input ([#163](https://github.com/homarr-labs/homarr/issues/163)) ([2a83df3](https://github.com/homarr-labs/homarr/commit/2a83df348555de884a9419ecf6e7ecdc76272deb)) -* user preferences ([#470](https://github.com/homarr-labs/homarr/issues/470)) ([db01301](https://github.com/homarr-labs/homarr/commit/db013018453ba6d67a229d5b9852e85e61a6760d)) -* user setting ping icons ([#1277](https://github.com/homarr-labs/homarr/issues/1277)) ([3486876](https://github.com/homarr-labs/homarr/commit/348687670d18062254e8089572f824f33a6f0894)) -* weather widget scalable ([#574](https://github.com/homarr-labs/homarr/issues/574)) ([cfd8b32](https://github.com/homarr-labs/homarr/commit/cfd8b328b40352c4f517853b6f019042ddf57549)) +- [#1047](https://github.com/homarr-labs/homarr/issues/1047) add overseerr search ([#1411](https://github.com/homarr-labs/homarr/issues/1411)) ([aa50399](https://github.com/homarr-labs/homarr/commit/aa503992af37bc683f934b36faebd31fba9d8720)) +- [#1243](https://github.com/homarr-labs/homarr/issues/1243) add api routes ([#1286](https://github.com/homarr-labs/homarr/issues/1286)) ([d76b4d0](https://github.com/homarr-labs/homarr/commit/d76b4d0ec185b627eee5e000ca16b78899c950a7)) +- [#1254](https://github.com/homarr-labs/homarr/issues/1254) display group owner ([#1406](https://github.com/homarr-labs/homarr/issues/1406)) ([34506b6](https://github.com/homarr-labs/homarr/commit/34506b6339945d3ee8d6afc84b7f1da8ff9153b0)) +- [#1408](https://github.com/homarr-labs/homarr/issues/1408) add local icon repository ([#1413](https://github.com/homarr-labs/homarr/issues/1413)) ([f31ccf2](https://github.com/homarr-labs/homarr/commit/f31ccf2d6aa9eb0e81e8759527195b7754eb7df3)) +- [#1408](https://github.com/homarr-labs/homarr/issues/1408) improve icon picker design ([#1412](https://github.com/homarr-labs/homarr/issues/1412)) ([441cbbe](https://github.com/homarr-labs/homarr/commit/441cbbe71775e37bf19f44ad2ba4065e839fbfa8)) +- [#420](https://github.com/homarr-labs/homarr/issues/420) reimplement icon picker ([#421](https://github.com/homarr-labs/homarr/issues/421)) ([60a35e2](https://github.com/homarr-labs/homarr/commit/60a35e258363e26df68f96290fd9359f577f1498)) +- [#511](https://github.com/homarr-labs/homarr/issues/511) log user logged in ([#1405](https://github.com/homarr-labs/homarr/issues/1405)) ([b294bf6](https://github.com/homarr-labs/homarr/commit/b294bf68cf4eceaf00ba94fb842f75af05a2c50d)) +- add 404 page ([#145](https://github.com/homarr-labs/homarr/issues/145)) ([60dec6e](https://github.com/homarr-labs/homarr/commit/60dec6e3be68a7f14ffae1f527c671e5d90e7f04)) +- add about page ([#388](https://github.com/homarr-labs/homarr/issues/388)) ([42a5a1a](https://github.com/homarr-labs/homarr/commit/42a5a1a56368cc1dadc61f403bd9a3f696716904)) +- add actual user for trpc wss-dev-server ([#261](https://github.com/homarr-labs/homarr/issues/261)) ([058a8c4](https://github.com/homarr-labs/homarr/commit/058a8c4776d2cd73653f9c40525847576e7b0a2b)), closes [#233](https://github.com/homarr-labs/homarr/issues/233) +- add analytics ([#528](https://github.com/homarr-labs/homarr/issues/528)) ([7e64d39](https://github.com/homarr-labs/homarr/commit/7e64d39693438cc52f37c8aab4fb9b04c851e4b9)) +- add api keys ([#991](https://github.com/homarr-labs/homarr/issues/991)) ([b14f82b](https://github.com/homarr-labs/homarr/commit/b14f82b4bb7be6e68ecaa9db0e1957e39f90823b)) +- add app actions ([#322](https://github.com/homarr-labs/homarr/issues/322)) ([8988880](https://github.com/homarr-labs/homarr/commit/89888804393720c10aab9f03f33d54d039d32a2b)) +- add app widget ([#206](https://github.com/homarr-labs/homarr/issues/206)) ([c4ff968](https://github.com/homarr-labs/homarr/commit/c4ff968cbca9250a8b33b5632e9267ecd0a7863b)) +- Add apps crud ([#174](https://github.com/homarr-labs/homarr/issues/174)) ([8d5984c](https://github.com/homarr-labs/homarr/commit/8d5984c58a6ec6ee04cce49d51ab9aee53577bf9)) +- add async suffix eslint rule ([#485](https://github.com/homarr-labs/homarr/issues/485)) ([dcaff1d](https://github.com/homarr-labs/homarr/commit/dcaff1d91c7789dd1003313e73172b605cd420c5)) +- add board ([#15](https://github.com/homarr-labs/homarr/issues/15)) ([9d52087](https://github.com/homarr-labs/homarr/commit/9d520874f4feb71587d365a82a75e2de93720b4e)) +- add board access settings ([#249](https://github.com/homarr-labs/homarr/issues/249)) ([361700b](https://github.com/homarr-labs/homarr/commit/361700b2394bc616607fdaa25bb7847998f3179f)) +- add boards management page ([#55](https://github.com/homarr-labs/homarr/issues/55)) ([5ef79ed](https://github.com/homarr-labs/homarr/commit/5ef79edc1aac1f675d613255a02741da4d836f81)) +- add bookmark widget ([#964](https://github.com/homarr-labs/homarr/issues/964)) ([49c0ebe](https://github.com/homarr-labs/homarr/commit/49c0ebea6dad6f586fc61073f815a928db4b435b)) +- add calendar widget ([#663](https://github.com/homarr-labs/homarr/issues/663)) ([dba97a3](https://github.com/homarr-labs/homarr/commit/dba97a3bd6d4b29c9079c9ee6ec98aa974614add)) +- add change password form ([#199](https://github.com/homarr-labs/homarr/issues/199)) ([beb7def](https://github.com/homarr-labs/homarr/commit/beb7defd32561ca074b48b4aa72631fdb59ddbdc)) +- add collapse to login screen with cli command for password reset ([#963](https://github.com/homarr-labs/homarr/issues/963)) ([bc886d9](https://github.com/homarr-labs/homarr/commit/bc886d94767cd2898529c0c17ff669bad4a19fad)) +- add colorscheme to user in db ([#987](https://github.com/homarr-labs/homarr/issues/987)) ([b080e0d](https://github.com/homarr-labs/homarr/commit/b080e0de714235756affc4c68854ec6a01269836)) +- add column count and is public options to board creation modal ([#930](https://github.com/homarr-labs/homarr/issues/930)) ([fcb72e6](https://github.com/homarr-labs/homarr/commit/fcb72e67167d3549f4f5b35706cabb0ca155eb8e)) +- add context specific search and actions ([#1570](https://github.com/homarr-labs/homarr/issues/1570)) ([c840ff8](https://github.com/homarr-labs/homarr/commit/c840ff85bcda7b45703e25204c93f1a9531d52dd)) +- add contributors to about page ([#445](https://github.com/homarr-labs/homarr/issues/445)) ([3cda718](https://github.com/homarr-labs/homarr/commit/3cda718474dc5641d4c2c8680ec5369ad5b85cc8)) +- add crawling settings ([#959](https://github.com/homarr-labs/homarr/issues/959)) ([19cd41a](https://github.com/homarr-labs/homarr/commit/19cd41a8e52585963ffe210186daadb1513b4dca)) +- add create board modal ([#131](https://github.com/homarr-labs/homarr/issues/131)) ([e3e38e7](https://github.com/homarr-labs/homarr/commit/e3e38e7f4496989a761657d9e79c317e26738c46)) +- add credentials authentication ([#1](https://github.com/homarr-labs/homarr/issues/1)) ([3cedb7f](https://github.com/homarr-labs/homarr/commit/3cedb7fba5aade5e176002453300779d6348a0b4)) +- add crud for integrations ([#11](https://github.com/homarr-labs/homarr/issues/11)) ([367beb6](https://github.com/homarr-labs/homarr/commit/367beb6759b54caaa8d3a2c723d5202626811976)) +- add custom css for board and custom classes in advanced options for items ([#512](https://github.com/homarr-labs/homarr/issues/512)) ([26b1c4a](https://github.com/homarr-labs/homarr/commit/26b1c4a3199c59e1b5eb3529da74180a455fa09f)) +- add dashdot integration ([#1541](https://github.com/homarr-labs/homarr/issues/1541)) ([84e5002](https://github.com/homarr-labs/homarr/commit/84e500279d5cc2db696365da46cf405c7a9fd06f)) +- add docker actions ([#752](https://github.com/homarr-labs/homarr/issues/752)) ([95101e3](https://github.com/homarr-labs/homarr/commit/95101e34ed0cc5134a7cb15fd0ab56c5f4b5a14e)) +- add docker container table ([#520](https://github.com/homarr-labs/homarr/issues/520)) ([dd2937a](https://github.com/homarr-labs/homarr/commit/dd2937a0d6106ce241cc5d8f25fc581c717604f1)) +- add duplication action for items ([#926](https://github.com/homarr-labs/homarr/issues/926)) ([81946e5](https://github.com/homarr-labs/homarr/commit/81946e50a9f643826f6c75ce2de54f92b74819bc)) +- add dynamic breadcrumb ([#706](https://github.com/homarr-labs/homarr/issues/706)) ([4e1bbf2](https://github.com/homarr-labs/homarr/commit/4e1bbf2ae64e951c62bb3a86787cecc1e2d22da9)) +- add dynamic section ([#842](https://github.com/homarr-labs/homarr/issues/842)) ([9ce172e](https://github.com/homarr-labs/homarr/commit/9ce172e78a142be71cfae8fdb581987fec9b78f0)) +- add edit user page ([#173](https://github.com/homarr-labs/homarr/issues/173)) ([41b99f1](https://github.com/homarr-labs/homarr/commit/41b99f191c6559bca49c7c3c3a13553c7698b781)) +- add env variable to disable db migrations on startup ([#1179](https://github.com/homarr-labs/homarr/issues/1179)) ([a30be7b](https://github.com/homarr-labs/homarr/commit/a30be7bc1e3beea0171c81ce9ec406ecc3c65e74)) +- add error page for docker tools page ([#1655](https://github.com/homarr-labs/homarr/issues/1655)) ([6031191](https://github.com/homarr-labs/homarr/commit/60311918ce31ec9ae84cadbc450fc5732f173536)) +- Add ErrorDisplay component ([245c2f4](https://github.com/homarr-labs/homarr/commit/245c2f483c36e197da4e8ff2a2fe1d58e2916786)) +- add everyone group ([#1322](https://github.com/homarr-labs/homarr/issues/1322)) ([2f1c800](https://github.com/homarr-labs/homarr/commit/2f1c8008447175697dfd3a814316665ed039713f)) +- add first day of week user setting ([#1249](https://github.com/homarr-labs/homarr/issues/1249)) ([ab1744c](https://github.com/homarr-labs/homarr/commit/ab1744ce20fd0df8c21361e3df0d65c9ab63c014)) +- add healthchecks ([#1187](https://github.com/homarr-labs/homarr/issues/1187)) ([08c6303](https://github.com/homarr-labs/homarr/commit/08c6303fa64a45580ef9ae41a7b1c0ea13266ecd)) +- add hero banner ([#463](https://github.com/homarr-labs/homarr/issues/463)) ([87fe03d](https://github.com/homarr-labs/homarr/commit/87fe03dd009be451981f99910d8f88129ecde9d1)) +- add home board for users ([#505](https://github.com/homarr-labs/homarr/issues/505)) ([7e339c0](https://github.com/homarr-labs/homarr/commit/7e339c09c86cafef56ea3bf915c8665b9e6e0c95)) +- add homeassistant integration ([#578](https://github.com/homarr-labs/homarr/issues/578)) ([2e782ae](https://github.com/homarr-labs/homarr/commit/2e782ae4428cc27024c29d58530fde86a65c87bd)) +- add hotkeys ([#986](https://github.com/homarr-labs/homarr/issues/986)) ([7521ef0](https://github.com/homarr-labs/homarr/commit/7521ef0519033fc4ddd51f03f46281417aa05b76)) +- add i18n translated form errors ([#509](https://github.com/homarr-labs/homarr/issues/509)) ([dfed804](https://github.com/homarr-labs/homarr/commit/dfed804f65003f715ed0bf699de39b4c8c63d63b)) +- add iframe widget ([#291](https://github.com/homarr-labs/homarr/issues/291)) ([8f48971](https://github.com/homarr-labs/homarr/commit/8f4897186c827f327d0823b619cd3ca4df859229)) +- add import for config files from oldmarr ([#1019](https://github.com/homarr-labs/homarr/issues/1019)) ([5404ceb](https://github.com/homarr-labs/homarr/commit/5404cebf5b04c5a93249c5674607640f70b798d3)) +- add improved search ([#1051](https://github.com/homarr-labs/homarr/issues/1051)) ([ce1ef3c](https://github.com/homarr-labs/homarr/commit/ce1ef3cbe761cbed9843eb4881758a30ac934fc1)) +- add integration access check to middlewares ([#756](https://github.com/homarr-labs/homarr/issues/756)) ([46943b1](https://github.com/homarr-labs/homarr/commit/46943b147ae08be3d79cce73243eaca4cba2959f)) +- add integration access settings ([#725](https://github.com/homarr-labs/homarr/issues/725)) ([408cdeb](https://github.com/homarr-labs/homarr/commit/408cdeb5c32735a9f78343818bb6f91eb1c8daee)) +- add jellyfin integration ([#672](https://github.com/homarr-labs/homarr/issues/672)) ([bb8640b](https://github.com/homarr-labs/homarr/commit/bb8640b1621f6a3809465c0187f99a8bcae473ed)), closes [#655](https://github.com/homarr-labs/homarr/issues/655) +- add job on start option for icons updater ([#442](https://github.com/homarr-labs/homarr/issues/442)) ([7b31684](https://github.com/homarr-labs/homarr/commit/7b31684c84aeaade6f370337821bea2d2bb9efee)) +- add ldap and oidc sso ([#500](https://github.com/homarr-labs/homarr/issues/500)) ([dc75ffb](https://github.com/homarr-labs/homarr/commit/dc75ffb9e65a6ea9479fae36558a5915578a83a6)) +- add lidarr integration ([#1433](https://github.com/homarr-labs/homarr/issues/1433)) ([ed74604](https://github.com/homarr-labs/homarr/commit/ed74604a547528a69d0572fe45e6482524ef1837)) +- add login and logout ([#436](https://github.com/homarr-labs/homarr/issues/436)) ([51aaab2](https://github.com/homarr-labs/homarr/commit/51aaab2f23f6a5a20fb5fc42bf8f9f79e017643e)) +- add logout redirect url ([#954](https://github.com/homarr-labs/homarr/issues/954)) ([13e0996](https://github.com/homarr-labs/homarr/commit/13e09968d928bc5e255dd3f93eca3d3e42f1b144)) +- add management pages ([#12](https://github.com/homarr-labs/homarr/issues/12)) ([2809e01](https://github.com/homarr-labs/homarr/commit/2809e01b03bf939aaecdce8007ece9322688061a)) +- add manifest ([#1309](https://github.com/homarr-labs/homarr/issues/1309)) ([727f104](https://github.com/homarr-labs/homarr/commit/727f10448f55d7dc7b9d4a227b34d7351816918d)) +- add media management ([#1337](https://github.com/homarr-labs/homarr/issues/1337)) ([db198c6](https://github.com/homarr-labs/homarr/commit/db198c6dab64b1dd299e6ed15a29ecb42bc409b6)) +- add media requests widget ([#774](https://github.com/homarr-labs/homarr/issues/774)) ([acbb834](https://github.com/homarr-labs/homarr/commit/acbb834889ae5a9161e609bff6a20d1e1a6258f3)) +- add member sync between groups of ldap and homarr ([#1149](https://github.com/homarr-labs/homarr/issues/1149)) ([6133309](https://github.com/homarr-labs/homarr/commit/61333094dff53cb4dea79f8dfffd3f9d6ee0ce1b)) +- add million-lint ([#607](https://github.com/homarr-labs/homarr/issues/607)) ([94984ac](https://github.com/homarr-labs/homarr/commit/94984ac11ba158563e8653d42d7c1f0b79bff0ea)) +- add more group permissions ([#1453](https://github.com/homarr-labs/homarr/issues/1453)) ([0ee343b](https://github.com/homarr-labs/homarr/commit/0ee343b99ecbb44140df8c3c59971108f13b3dce)) +- add mysql support ([#212](https://github.com/homarr-labs/homarr/issues/212)) ([24ec13c](https://github.com/homarr-labs/homarr/commit/24ec13c2ab76f73d4e18f1f4cc9ea369439b105d)) +- add nestjs app ([#172](https://github.com/homarr-labs/homarr/issues/172)) ([9440d04](https://github.com/homarr-labs/homarr/commit/9440d04261f6597c021fbb7a4eb6ee441bc8d41c)) +- add nestjs replacement, remove nestjs ([#285](https://github.com/homarr-labs/homarr/issues/285)) ([1936596](https://github.com/homarr-labs/homarr/commit/1936596c048552f1730a02b1e5c03aed6f9d0fb6)) +- add next-international translations ([#2](https://github.com/homarr-labs/homarr/issues/2)) ([a082f70](https://github.com/homarr-labs/homarr/commit/a082f704704bea127014216baeb914e9c8fe09f6)) +- add nginx proxy ([#1073](https://github.com/homarr-labs/homarr/issues/1073)) ([cd46198](https://github.com/homarr-labs/homarr/commit/cd4619845b83dd7d5bcd039b7ddeaf023eb42a84)) +- add not found pages for boards ([#1671](https://github.com/homarr-labs/homarr/issues/1671)) ([8e4d67c](https://github.com/homarr-labs/homarr/commit/8e4d67c3eb49f7ccbd7e87efa75dfe1e4665bf3f)) +- add notebook widget ([#294](https://github.com/homarr-labs/homarr/issues/294)) ([6b1879c](https://github.com/homarr-labs/homarr/commit/6b1879cbb1d5129b8960a5dec9880f4951c0222e)) +- add notes for creation of apps and integrations in widget edit modal ([#1297](https://github.com/homarr-labs/homarr/issues/1297)) ([e99fd64](https://github.com/homarr-labs/homarr/commit/e99fd648822f61b4ad7b3793875df69348a3e0c8)) +- add onboarding with oldmarr import ([#1606](https://github.com/homarr-labs/homarr/issues/1606)) ([6de74d9](https://github.com/homarr-labs/homarr/commit/6de74d952560275faf546c2720f71dddbe1fe399)) +- add password input field ([#160](https://github.com/homarr-labs/homarr/issues/160)) ([c6c8778](https://github.com/homarr-labs/homarr/commit/c6c87783979b1053fd6068920c412c20547bab69)) +- add password requirements ([#988](https://github.com/homarr-labs/homarr/issues/988)) ([2d155fa](https://github.com/homarr-labs/homarr/commit/2d155fa0c48d63fe376d52e2c5403c8ec1130db6)) +- add permission section to create user page ([#1524](https://github.com/homarr-labs/homarr/issues/1524)) ([1fc48f9](https://github.com/homarr-labs/homarr/commit/1fc48f9db05935bc3298f9251b564ed539c48312)) +- add pi hole summary integration ([#521](https://github.com/homarr-labs/homarr/issues/521)) ([d57b771](https://github.com/homarr-labs/homarr/commit/d57b771a177511b878c0eada1d3002b52acdc6fb)) +- add prettier packagejson plugin ([#1577](https://github.com/homarr-labs/homarr/issues/1577)) ([a53a2cd](https://github.com/homarr-labs/homarr/commit/a53a2cdd34a46d6442c030192b449a855b69fca3)) +- add preview to icon picker ([#914](https://github.com/homarr-labs/homarr/issues/914)) ([ca1ecdf](https://github.com/homarr-labs/homarr/commit/ca1ecdf84811c58e4dff372fab42e64ab1791f06)) +- add readarr integration ([#1446](https://github.com/homarr-labs/homarr/issues/1446)) ([563c5d8](https://github.com/homarr-labs/homarr/commit/563c5d8f3c0dc5b7dcedadf7fa22c690c131a5c8)) +- add real time logger page ([#276](https://github.com/homarr-labs/homarr/issues/276)) ([c82915c](https://github.com/homarr-labs/homarr/commit/c82915c6dcaef8edffc67b82c97ba87e4597852a)) +- add redis ([#242](https://github.com/homarr-labs/homarr/issues/242)) ([1825e56](https://github.com/homarr-labs/homarr/commit/1825e563493a443039a5d0a8fa6d0b7ce3ef08b0)) +- add redis cache channel ([e05deef](https://github.com/homarr-labs/homarr/commit/e05deef6e28c7bbddda154d3d23f5325e85f3571)) +- add refresh button to docker containers table ([#913](https://github.com/homarr-labs/homarr/issues/913)) ([b53a2b6](https://github.com/homarr-labs/homarr/commit/b53a2b6b78f73f86ecff24cbf40b91e0f4ca55b0)) +- add rss widget ([#760](https://github.com/homarr-labs/homarr/issues/760)) ([15d9327](https://github.com/homarr-labs/homarr/commit/15d9327d465d1c522d9182027adaf27727a95b4e)) +- add server settings ([#487](https://github.com/homarr-labs/homarr/issues/487)) ([9191617](https://github.com/homarr-labs/homarr/commit/919161798ee6c5c2070632920c9dfc3699ab1f93)) +- add server settings for default board, default color scheme and default locale ([#1373](https://github.com/homarr-labs/homarr/issues/1373)) ([326b769](https://github.com/homarr-labs/homarr/commit/326b769c23f6619c7d6edd0cecedccdf6d641dde)) +- add session expiry ([#951](https://github.com/homarr-labs/homarr/issues/951)) ([6dafbaa](https://github.com/homarr-labs/homarr/commit/6dafbaae48f17ff519723fe33fc89034b10e8f1b)) +- add simple app ping ([#580](https://github.com/homarr-labs/homarr/issues/580)) ([d7ecdf5](https://github.com/homarr-labs/homarr/commit/d7ecdf55672e05e90424bed964644091b1af6499)) +- Add Simple-Icons and Selfh.st collections ([#1118](https://github.com/homarr-labs/homarr/issues/1118)) ([9fb6e67](https://github.com/homarr-labs/homarr/commit/9fb6e67ed33264f877ba819240e00d8fc8dbb984)) +- add support for all languages from old homarr ([#1394](https://github.com/homarr-labs/homarr/issues/1394)) ([0ff7c89](https://github.com/homarr-labs/homarr/commit/0ff7c8903b3c23ee286a0e3d68287927e03ff3e0)) +- add support for app url variables ([#915](https://github.com/homarr-labs/homarr/issues/915)) ([c4c4d41](https://github.com/homarr-labs/homarr/commit/c4c4d41e4d7c37d498ba25c91a734a9d7f66f233)) +- add support for multiple integration kind options ([#127](https://github.com/homarr-labs/homarr/issues/127)) ([f1aa422](https://github.com/homarr-labs/homarr/commit/f1aa42261446bcc4bd16b47ed0c1d5cd279a2e48)) +- add support for should hide option i widget edit modal ([#78](https://github.com/homarr-labs/homarr/issues/78)) ([16442bc](https://github.com/homarr-labs/homarr/commit/16442bc379c1d418080947fbd86a4bb14639e90e)) +- add tasks page ([#692](https://github.com/homarr-labs/homarr/issues/692)) ([08d571a](https://github.com/homarr-labs/homarr/commit/08d571ad74c0c97313664b31bf2d1ce83d91629b)) +- add tdarr integration ([#1657](https://github.com/homarr-labs/homarr/issues/1657)) ([032509e](https://github.com/homarr-labs/homarr/commit/032509e4623d7bab3a000a308cb21fc487c45487)) +- add trpc websocket ([#205](https://github.com/homarr-labs/homarr/issues/205)) ([4f375cb](https://github.com/homarr-labs/homarr/commit/4f375cbe6d1b82322e0e8eaeea9db60be083c84e)) +- add undici fetch interceptor ([#687](https://github.com/homarr-labs/homarr/issues/687)) ([508369c](https://github.com/homarr-labs/homarr/commit/508369cb0bb61dadbc2c0b06f03e08581bc7d8ae)) +- add update indicator ([#1626](https://github.com/homarr-labs/homarr/issues/1626)) ([dd9d8b5](https://github.com/homarr-labs/homarr/commit/dd9d8b52610aefe4dbf19f20117ea51264525bcb)) +- add user avatar menu ([#80](https://github.com/homarr-labs/homarr/issues/80)) ([08fa338](https://github.com/homarr-labs/homarr/commit/08fa338abbdff3bb3f7cfc96bc328ecb4a49c584)) +- add user groups ([#376](https://github.com/homarr-labs/homarr/issues/376)) ([036925b](https://github.com/homarr-labs/homarr/commit/036925bf78ec50afe8455efdc270ee4e503a0e03)) +- add user invite management ([#338](https://github.com/homarr-labs/homarr/issues/338)) ([621f6c8](https://github.com/homarr-labs/homarr/commit/621f6c81ae8689f6efc9ac141e8bcbf7fe35eb81)) +- add user invite registration ([#477](https://github.com/homarr-labs/homarr/issues/477)) ([94af21a](https://github.com/homarr-labs/homarr/commit/94af21abbfb36b1804d86d89155af720055de588)) +- add user management ([#134](https://github.com/homarr-labs/homarr/issues/134)) ([b4749e7](https://github.com/homarr-labs/homarr/commit/b4749e7091649815f2918b81d3c79b0216ece5d2)) +- add user setting for home board ([#956](https://github.com/homarr-labs/homarr/issues/956)) ([f327837](https://github.com/homarr-labs/homarr/commit/f327837d82149c563b07e1d42850356930f20e50)) +- add username validation to prevent duplicate ([781247d](https://github.com/homarr-labs/homarr/commit/781247de5141f4b0532801194ac904763db7da39)) +- add validation to widget edit modal inputs ([#879](https://github.com/homarr-labs/homarr/issues/879)) ([9cb6200](https://github.com/homarr-labs/homarr/commit/9cb6200895a0d44e87f59cdaf19432fb8312f8bf)) +- add video widget ([#287](https://github.com/homarr-labs/homarr/issues/287)) ([82e9887](https://github.com/homarr-labs/homarr/commit/82e9887f36a370594f258d8e6f60cda57593b2b7)) +- Add VOLUME instruction to `Dockerfile` ([#527](https://github.com/homarr-labs/homarr/issues/527)) ([5a9e8ed](https://github.com/homarr-labs/homarr/commit/5a9e8edf70b91933afbd0b4564fda3ab25fdbdd5)) +- add weather widget ([#286](https://github.com/homarr-labs/homarr/issues/286)) ([80d2d48](https://github.com/homarr-labs/homarr/commit/80d2d485b862f6c95fa1eb81ff96cb45d9b147b1)) +- add web search engines ([#290](https://github.com/homarr-labs/homarr/issues/290)) ([35ca732](https://github.com/homarr-labs/homarr/commit/35ca732744752b54b6318e17319d9b8ac950fda8)) +- Add widget integration option ([#14](https://github.com/homarr-labs/homarr/issues/14)) ([1740450](https://github.com/homarr-labs/homarr/commit/1740450648fc5c3915cd71b493a8523305f33703)) +- add widget preview pages ([#9](https://github.com/homarr-labs/homarr/issues/9)) ([7828975](https://github.com/homarr-labs/homarr/commit/782897527f489889f8b6f46ec577a298a0714953)) +- add widget server loader ([#16](https://github.com/homarr-labs/homarr/issues/16)) ([975f912](https://github.com/homarr-labs/homarr/commit/975f9123dd4d509e2b777d8af8d74f38ebc59aad)) +- add winston logger ([#143](https://github.com/homarr-labs/homarr/issues/143)) ([3d50f81](https://github.com/homarr-labs/homarr/commit/3d50f8165f0d27e9fe7b517cffa5d1950eca7ab8)) +- add winston logger ([#77](https://github.com/homarr-labs/homarr/issues/77)) ([34875df](https://github.com/homarr-labs/homarr/commit/34875dfd154f9e9e3a8ce5c5bc4d14e757b4b14d)) +- AdGuard Home integration ([#929](https://github.com/homarr-labs/homarr/issues/929)) ([4471260](https://github.com/homarr-labs/homarr/commit/44712608b7e0dfcbaf5d36c40792b04f2edec8d7)) +- allow no secrets for integration ([#856](https://github.com/homarr-labs/homarr/issues/856)) ([508fcb9](https://github.com/homarr-labs/homarr/commit/508fcb9861d56f84d027fc8c456d8841486fdf72)) +- App tile scalability ([#645](https://github.com/homarr-labs/homarr/issues/645)) ([28927cf](https://github.com/homarr-labs/homarr/commit/28927cfa2802c6335487638b5ce4d7133f2e4423)) +- approve before automerge ([3df6dcf](https://github.com/homarr-labs/homarr/commit/3df6dcfbe7b1b499dbd6ddf536ae509286afe21b)) +- board access group permissions ([#422](https://github.com/homarr-labs/homarr/issues/422)) ([b1e065f](https://github.com/homarr-labs/homarr/commit/b1e065f1da0fc0c4992d0de8f6ed87a9adef1d24)) +- board settings ([#137](https://github.com/homarr-labs/homarr/issues/137)) ([bb02163](https://github.com/homarr-labs/homarr/commit/bb02163e25e64c13e4f36df21fa90ff33483cac6)) +- cannot change username to the current one ([0ae8a75](https://github.com/homarr-labs/homarr/commit/0ae8a75a5ef38c85ca869cadbed9542c2993a3df)) +- change visibility in item options based on selected integration kinds ([#949](https://github.com/homarr-labs/homarr/issues/949)) ([25452ff](https://github.com/homarr-labs/homarr/commit/25452ff063383397af6b5e41984657f9eb68e801)) +- Clock widget and dayjs locale standard ([#79](https://github.com/homarr-labs/homarr/issues/79)) ([edcba9c](https://github.com/homarr-labs/homarr/commit/edcba9ceb62880196dac902e0a91b1dbdd0c45f1)) +- Clock widget scalability ([#644](https://github.com/homarr-labs/homarr/issues/644)) ([bac09d8](https://github.com/homarr-labs/homarr/commit/bac09d8be59eea7f59713fead9e5310b34cfa8aa)) +- date format on weather widget ([#1443](https://github.com/homarr-labs/homarr/issues/1443)) ([c51c5db](https://github.com/homarr-labs/homarr/commit/c51c5db3d73db8656f4d55921b5b664b8c27134e)) +- DNS Hole summary Scalability ([#646](https://github.com/homarr-labs/homarr/issues/646)) ([0710425](https://github.com/homarr-labs/homarr/commit/0710425e787aec1bcd90d3ba8dae71c8c97959ae)) +- dnshole controls widget ([#867](https://github.com/homarr-labs/homarr/issues/867)) ([65c6854](https://github.com/homarr-labs/homarr/commit/65c6854e4426350b196b1888c952d961c03c2b23)) +- DnsHole feature parity with oldmarr ([#1145](https://github.com/homarr-labs/homarr/issues/1145)) ([36915d9](https://github.com/homarr-labs/homarr/commit/36915d95fe45964f0291fb8c9cbc46ffecdf2681)) +- **docker:** add encryption key generation for integration secrets ([#1202](https://github.com/homarr-labs/homarr/issues/1202)) ([52b45d8](https://github.com/homarr-labs/homarr/commit/52b45d835db99b5e6b950a2adfb6e21665c8ccff)) +- downloads widget ([#844](https://github.com/homarr-labs/homarr/issues/844)) ([2535192](https://github.com/homarr-labs/homarr/commit/2535192b2cfc1c4acc42b31a59f90989236ea2c2)) +- implement board access control ([#349](https://github.com/homarr-labs/homarr/issues/349)) ([7ab9dc2](https://github.com/homarr-labs/homarr/commit/7ab9dc250184947b1f1a071a0cb7bce63ce95c96)) +- implement openapi ([#482](https://github.com/homarr-labs/homarr/issues/482)) ([f0cd45c](https://github.com/homarr-labs/homarr/commit/f0cd45c81385720f68693f8d3481466fc147cd61)) +- improve metadata ([#1308](https://github.com/homarr-labs/homarr/issues/1308)) ([0df7cb5](https://github.com/homarr-labs/homarr/commit/0df7cb5c25441700616d268fac5e64068542d080)) +- improve user init setup ([#643](https://github.com/homarr-labs/homarr/issues/643)) ([3a3a825](https://github.com/homarr-labs/homarr/commit/3a3a8251bdb65f07e109af83b639efabbd1404a5)) +- indexer manager widget ([#1057](https://github.com/homarr-labs/homarr/issues/1057)) ([08d4472](https://github.com/homarr-labs/homarr/commit/08d4472d8b612e11a8b4e5f09952a788e7bcdf8a)), closes [#1055](https://github.com/homarr-labs/homarr/issues/1055) +- integrate crowdin [#1402](https://github.com/homarr-labs/homarr/issues/1402) ([#1599](https://github.com/homarr-labs/homarr/issues/1599)) ([096f034](https://github.com/homarr-labs/homarr/commit/096f03432cfca75bc2740f65d7d6cb6fed4c4eaa)) +- language selector ([#484](https://github.com/homarr-labs/homarr/issues/484)) ([31c2694](https://github.com/homarr-labs/homarr/commit/31c26941857b4eac8e69ccb68bc4c00cd1073806)) +- log elapsed cron job time ([#742](https://github.com/homarr-labs/homarr/issues/742)) ([1cf119c](https://github.com/homarr-labs/homarr/commit/1cf119c76827c22dcac9f2417b6f65b64cd43e26)) +- log sql queries ([#444](https://github.com/homarr-labs/homarr/issues/444)) ([dc0184a](https://github.com/homarr-labs/homarr/commit/dc0184af071446e299407a2b6347852d52bdd17f)) +- make notifications optional ([e438bac](https://github.com/homarr-labs/homarr/commit/e438bac0f5dd7d487aae054802b5255612749252)) +- OMV integration & health monitoring widget ([#1142](https://github.com/homarr-labs/homarr/issues/1142)) ([0f56dc1](https://github.com/homarr-labs/homarr/commit/0f56dc1ecd03d6d6fe2305de85650f2b105e2169)) +- plex integration ([#1342](https://github.com/homarr-labs/homarr/issues/1342)) ([cf9b058](https://github.com/homarr-labs/homarr/commit/cf9b0581a486b3d6b1207e8a612c9fe4665c6d49)) +- populate integration name for new integrations automatically ([#1296](https://github.com/homarr-labs/homarr/issues/1296)) ([a0cc31d](https://github.com/homarr-labs/homarr/commit/a0cc31da700defc9a4f5c4210962571cbfe2b362)) +- pretty-print-error to print errors in console ([#1596](https://github.com/homarr-labs/homarr/issues/1596)) ([71f4f8c](https://github.com/homarr-labs/homarr/commit/71f4f8c4c85eb70533bed3ed86b6655e99cc2bb7)) +- Prowlarr integration ([#965](https://github.com/homarr-labs/homarr/issues/965)) ([6ff3640](https://github.com/homarr-labs/homarr/commit/6ff36405ba26ab27387094182885a99bf1ecb30d)) +- radarr integration ([#1053](https://github.com/homarr-labs/homarr/issues/1053)) ([e88854c](https://github.com/homarr-labs/homarr/commit/e88854c0e5b14c356f520c616b369d118ea3ddf7)) +- radarr release type to calendar widget ([#1256](https://github.com/homarr-labs/homarr/issues/1256)) ([98b62a9](https://github.com/homarr-labs/homarr/commit/98b62a9f919ef18f891e115f3dec31c7f1e49a44)) +- read all packages on about page ([#391](https://github.com/homarr-labs/homarr/issues/391)) ([16e42d6](https://github.com/homarr-labs/homarr/commit/16e42d654dbf8cf54757e49cc1c73ea1fa69d8a7)) +- remove manual flag to pushing image ([9013d5d](https://github.com/homarr-labs/homarr/commit/9013d5dbf01a7c60e5a427cfcebea7a332deb5d2)) +- replace home page with home board ([#1530](https://github.com/homarr-labs/homarr/issues/1530)) ([9fb14df](https://github.com/homarr-labs/homarr/commit/9fb14df2103db720cb6e5333b8afed5c1e730de6)) +- reset password cli ([#903](https://github.com/homarr-labs/homarr/issues/903)) ([7fa5e70](https://github.com/homarr-labs/homarr/commit/7fa5e70d5b5e4e6cded08f343f5db0f42e8be324)) +- restrict non credential provider interactions ([#871](https://github.com/homarr-labs/homarr/issues/871)) ([6f7327b](https://github.com/homarr-labs/homarr/commit/6f7327b77478c567b478c2c61b0a09400e426678)) +- RTL option to RSS widget ([#1247](https://github.com/homarr-labs/homarr/issues/1247)) ([9a7e845](https://github.com/homarr-labs/homarr/commit/9a7e8450106aa5f61db9e3360221bd8ac168daf6)) +- show creator on board page ([#440](https://github.com/homarr-labs/homarr/issues/440)) ([5d30301](https://github.com/homarr-labs/homarr/commit/5d30301b95a8b1e6129d97a6a66cbfb417407caf)) +- **spotlight:** add support for custom search-engines ([#1200](https://github.com/homarr-labs/homarr/issues/1200)) ([4c9471e](https://github.com/homarr-labs/homarr/commit/4c9471e6086c354ec4383f22a7b8020c5aa8974d)) +- support arm64 ([#1022](https://github.com/homarr-labs/homarr/issues/1022)) ([0c65727](https://github.com/homarr-labs/homarr/commit/0c657276a53aa77d6cc37435e61907574320e324)) +- test integration connection ([#669](https://github.com/homarr-labs/homarr/issues/669)) ([f92aeba](https://github.com/homarr-labs/homarr/commit/f92aeba403ec22e2a3219550b51191ae82bac000)) +- use consistent line ending ([#1407](https://github.com/homarr-labs/homarr/issues/1407)) ([0c067c4](https://github.com/homarr-labs/homarr/commit/0c067c4e6f36d741edf7c88de847585fefd54b64)) +- use different tag name ([ff847f0](https://github.com/homarr-labs/homarr/commit/ff847f091054c38015f45dfd1ee88e06116f53ad)) +- use gh app for merging ([82caec4](https://github.com/homarr-labs/homarr/commit/82caec402a4f33d0217b9d5e02140d4857dbb0ce)) +- use password input ([#163](https://github.com/homarr-labs/homarr/issues/163)) ([2a83df3](https://github.com/homarr-labs/homarr/commit/2a83df348555de884a9419ecf6e7ecdc76272deb)) +- user preferences ([#470](https://github.com/homarr-labs/homarr/issues/470)) ([db01301](https://github.com/homarr-labs/homarr/commit/db013018453ba6d67a229d5b9852e85e61a6760d)) +- user setting ping icons ([#1277](https://github.com/homarr-labs/homarr/issues/1277)) ([3486876](https://github.com/homarr-labs/homarr/commit/348687670d18062254e8089572f824f33a6f0894)) +- weather widget scalable ([#574](https://github.com/homarr-labs/homarr/issues/574)) ([cfd8b32](https://github.com/homarr-labs/homarr/commit/cfd8b328b40352c4f517853b6f019042ddf57549)) ### Bug Fixes -* actions user has no permission to are shown in spotlight ([#1452](https://github.com/homarr-labs/homarr/issues/1452)) ([04895da](https://github.com/homarr-labs/homarr/commit/04895da08a72864a55d6bb09524588ba0d9a06c1)) -* add beforeunload logic for board in edit mode ([#1531](https://github.com/homarr-labs/homarr/issues/1531)) ([225356c](https://github.com/homarr-labs/homarr/commit/225356cc4f49a8a8178f9d7dffc3283bc641b3d0)) -* add missing tags ([f23831b](https://github.com/homarr-labs/homarr/commit/f23831be5ec257775ca9ce116a50f025cac65c2d)) -* add persists credentials false to checkout of release pipeline ([#1691](https://github.com/homarr-labs/homarr/issues/1691)) ([daf7ea5](https://github.com/homarr-labs/homarr/commit/daf7ea56c5ce05803efc475ad64c5abb6a0784ea)) -* add rtl compliance for symbols [#366](https://github.com/homarr-labs/homarr/issues/366) ([#406](https://github.com/homarr-labs/homarr/issues/406)) ([0278e3a](https://github.com/homarr-labs/homarr/commit/0278e3a854455a48c53ab394d4c4e65734f535ca)) -* add sharp ([#241](https://github.com/homarr-labs/homarr/issues/241)) ([0440af3](https://github.com/homarr-labs/homarr/commit/0440af3566ce7e57eaedd6921c16143943647bd4)) -* add subscription to health monitoring widget ([#1210](https://github.com/homarr-labs/homarr/issues/1210)) ([ce67fcd](https://github.com/homarr-labs/homarr/commit/ce67fcd57cd56fe68105c269a9f2377bbc89e61b)) -* adding volume /appdata removes created directories ([#1445](https://github.com/homarr-labs/homarr/issues/1445)) ([fe4dfc4](https://github.com/homarr-labs/homarr/commit/fe4dfc484bcc5da8d3901d042adc5d3cf3ea9fbc)) -* alert that certain fields in user settings are disabled is always shown ([#928](https://github.com/homarr-labs/homarr/issues/928)) ([9258c39](https://github.com/homarr-labs/homarr/commit/9258c397e0689bf46969614f3c634b5af20a2d8c)) -* Allow username to be capitalized on basic credentials login ([#1585](https://github.com/homarr-labs/homarr/issues/1585)) ([a1a6dc9](https://github.com/homarr-labs/homarr/commit/a1a6dc9d6e345ff102d69164d4bf2d7020db0ea4)) -* api keys authentication does not work [#1511](https://github.com/homarr-labs/homarr/issues/1511) ([#1512](https://github.com/homarr-labs/homarr/issues/1512)) ([72eda1f](https://github.com/homarr-labs/homarr/commit/72eda1f225cece3d317c66b4b98a481328962d63)) -* auth broken cause of consistent table column rename ([#1532](https://github.com/homarr-labs/homarr/issues/1532)) ([4a94d60](https://github.com/homarr-labs/homarr/commit/4a94d602c0cce7796cde7c08a5670e045452c2c5)) -* auto-merge crowdin pr not working ([#1664](https://github.com/homarr-labs/homarr/issues/1664)) ([f330c7e](https://github.com/homarr-labs/homarr/commit/f330c7e4f1a8e097e2f594c47061f98c7c9e0034)) -* auto-merge for crowdin download pull request not working ([#1661](https://github.com/homarr-labs/homarr/issues/1661)) ([5bdc669](https://github.com/homarr-labs/homarr/commit/5bdc669e07c788f3b47009a4f5c3c2c785dda111)) -* base branch for semver ([a8748fa](https://github.com/homarr-labs/homarr/commit/a8748fa439c481d7238a32b99184e9fce667a709)) -* cache is not exportet from react ([#417](https://github.com/homarr-labs/homarr/issues/417)) ([fba767b](https://github.com/homarr-labs/homarr/commit/fba767bde3d17c09d563ccea352cd8e4171e84f8)) -* change docker concurrency group to allow multiple deployments to different branches ([#1687](https://github.com/homarr-labs/homarr/issues/1687)) ([93abe8f](https://github.com/homarr-labs/homarr/commit/93abe8f6a2bfe012b6c03c7994e5334f22b6e5e8)) -* change node-version for composite setup action to 22, remove unnecessary installation of node from docker deployment ([#1429](https://github.com/homarr-labs/homarr/issues/1429)) ([319fb47](https://github.com/homarr-labs/homarr/commit/319fb477444bae5cd4c847af9ebf9e35359fbb03)) -* change permission for github action to contents write ([#1689](https://github.com/homarr-labs/homarr/issues/1689)) ([0f029b3](https://github.com/homarr-labs/homarr/commit/0f029b384d1699ea8ee784651b97b88fd64613c6)) -* color scheme manager should use cookie and not session value ([#1329](https://github.com/homarr-labs/homarr/issues/1329)) ([799d6c5](https://github.com/homarr-labs/homarr/commit/799d6c5d4a59c65d3e2f902843dfc86910b8496f)) -* confirm not selected by default in confirm modal ([#1232](https://github.com/homarr-labs/homarr/issues/1232)) ([ac07504](https://github.com/homarr-labs/homarr/commit/ac0750452cd4788cba48d3af720240e063080fba)) -* container image always being on AMD64 arch ([#1173](https://github.com/homarr-labs/homarr/issues/1173)) ([65f2611](https://github.com/homarr-labs/homarr/commit/65f26117fc491958922cd863801cc049479766af)) -* controller is already closed trpc subscription observable error ([#743](https://github.com/homarr-labs/homarr/issues/743)) ([41dba7b](https://github.com/homarr-labs/homarr/commit/41dba7b516880098ae923d45f2065875cb6c70da)) -* correctly set pr description ([#778](https://github.com/homarr-labs/homarr/issues/778)) ([f58c38a](https://github.com/homarr-labs/homarr/commit/f58c38a1aa654acc474b492610452a9c38d20f42)) -* crash with no user in session ([547f75d](https://github.com/homarr-labs/homarr/commit/547f75d19cb08cd0eac6978cb9a6eb107a563edd)) -* create board submit button inverted ([0ee8c5a](https://github.com/homarr-labs/homarr/commit/0ee8c5ad91dfe70ef27af3fe9a47918bab23a665)) -* create user async is called twice ([7fa120c](https://github.com/homarr-labs/homarr/commit/7fa120c47490ab3e80fb8db0921d9afa3e12cfee)) -* credentials auth not working ([#1284](https://github.com/homarr-labs/homarr/issues/1284)) ([511c9a4](https://github.com/homarr-labs/homarr/commit/511c9a4dbbcaa3846bcd5a3dfe1827793e398ff4)) -* credentials login not working cause of cookie secure flag not possible for http ([#1421](https://github.com/homarr-labs/homarr/issues/1421)) ([cf5bcab](https://github.com/homarr-labs/homarr/commit/cf5bcab732924ef5b7a3eabf2d0a8760a59d6cb6)) -* db port validation for env variable wrong ([#1137](https://github.com/homarr-labs/homarr/issues/1137)) ([d01ddd6](https://github.com/homarr-labs/homarr/commit/d01ddd61b6fe3583412c7a553cfba8d32ae797a7)) -* default branch for tag compare ([#597](https://github.com/homarr-labs/homarr/issues/597)) ([7cc2736](https://github.com/homarr-labs/homarr/commit/7cc2736d68baaa5730e598b6c8e2cd55fa73711d)) -* defaultTitle invalid attribute on div ([#350](https://github.com/homarr-labs/homarr/issues/350)) ([4970c3a](https://github.com/homarr-labs/homarr/commit/4970c3a1b2545feb3bc20cc6605f8f16a28a8220)) -* deployment pipeline for docker not working ([#860](https://github.com/homarr-labs/homarr/issues/860)) ([90ef982](https://github.com/homarr-labs/homarr/commit/90ef982066b528e891bc3796256b2725ec1addf3)) -* **deps:** update dependency @auth/core to ^0.25.0 ([#29](https://github.com/homarr-labs/homarr/issues/29)) ([8bcbc45](https://github.com/homarr-labs/homarr/commit/8bcbc45943358d580712e0990ba2bb3c2c62d057)) -* **deps:** update dependency @auth/core to ^0.26.3 ([#54](https://github.com/homarr-labs/homarr/issues/54)) ([5cbd02b](https://github.com/homarr-labs/homarr/commit/5cbd02b142da68f067ef9831c6b47f117fbdc8e4)) -* **deps:** update dependency @auth/core to ^0.27.0 ([#89](https://github.com/homarr-labs/homarr/issues/89)) ([6c5e475](https://github.com/homarr-labs/homarr/commit/6c5e4752eaf7a07f9e80951541108643efb0faae)) -* **deps:** update dependency @auth/core to ^0.28.0 ([#169](https://github.com/homarr-labs/homarr/issues/169)) ([aa19139](https://github.com/homarr-labs/homarr/commit/aa19139cf7c4bb4ea6b57c3ca274fff533c2bb2a)) -* **deps:** update dependency @auth/core to ^0.28.1 ([#266](https://github.com/homarr-labs/homarr/issues/266)) ([c72f4bb](https://github.com/homarr-labs/homarr/commit/c72f4bb80de55c6a7dd94e142ce3b27c9073d33e)) -* **deps:** update dependency @auth/core to ^0.28.2 ([#292](https://github.com/homarr-labs/homarr/issues/292)) ([ba16ba1](https://github.com/homarr-labs/homarr/commit/ba16ba138209e843f1ee7304ebe1af138b6995fa)) -* **deps:** update dependency @auth/core to ^0.29.0 ([#327](https://github.com/homarr-labs/homarr/issues/327)) ([719d1cd](https://github.com/homarr-labs/homarr/commit/719d1cd845a3d6565c01d4f1846e9192038c1ce2)) -* **deps:** update dependency @auth/core to ^0.30.0 ([#358](https://github.com/homarr-labs/homarr/issues/358)) ([f6c0f3a](https://github.com/homarr-labs/homarr/commit/f6c0f3ab78f68cffc1ad2305c19f22b725b7a037)) -* **deps:** update dependency @auth/core to ^0.31.0 ([#473](https://github.com/homarr-labs/homarr/issues/473)) ([95ddd03](https://github.com/homarr-labs/homarr/commit/95ddd03763532658c620c50c698c14ed7cd01894)) -* **deps:** update dependency @auth/core to ^0.32.0 ([#603](https://github.com/homarr-labs/homarr/issues/603)) ([dc3b007](https://github.com/homarr-labs/homarr/commit/dc3b00736eabc4a65febb6ae9a8fd9779edb1cdf)) -* **deps:** update dependency @auth/core to ^0.33.0 ([#693](https://github.com/homarr-labs/homarr/issues/693)) ([171fe40](https://github.com/homarr-labs/homarr/commit/171fe40fd59ee1b21bf825a59b0f1792f627262f)) -* **deps:** update dependency @auth/core to ^0.34.0 ([#700](https://github.com/homarr-labs/homarr/issues/700)) ([9087f4b](https://github.com/homarr-labs/homarr/commit/9087f4bfdf263490b6d0e318e1af957dba493f09)) -* **deps:** update dependency @auth/core to ^0.34.1 ([#702](https://github.com/homarr-labs/homarr/issues/702)) ([05702be](https://github.com/homarr-labs/homarr/commit/05702bede88f86ef9014b8f7efa49b8d8a3ceca4)) -* **deps:** update dependency @auth/core to ^0.34.2 ([#876](https://github.com/homarr-labs/homarr/issues/876)) ([9181f11](https://github.com/homarr-labs/homarr/commit/9181f11b137f6327b558fabf6fe8b79de7ff345b)) -* **deps:** update dependency @auth/core to ^0.35.0 ([#1129](https://github.com/homarr-labs/homarr/issues/1129)) ([f9cc34c](https://github.com/homarr-labs/homarr/commit/f9cc34c12f1c8c3334f34a72322852a1e9e8e007)) -* **deps:** update dependency @auth/core to ^0.35.1 ([#1176](https://github.com/homarr-labs/homarr/issues/1176)) ([16e7f93](https://github.com/homarr-labs/homarr/commit/16e7f938bd2604cc2067466b56725ebe9f9743f9)) -* **deps:** update dependency @auth/core to ^0.35.2 ([#1180](https://github.com/homarr-labs/homarr/issues/1180)) ([f495383](https://github.com/homarr-labs/homarr/commit/f495383bcf2a725d82628067c19e763c84c8bdc1)) -* **deps:** update dependency @auth/core to ^0.35.3 ([#1193](https://github.com/homarr-labs/homarr/issues/1193)) ([1994a59](https://github.com/homarr-labs/homarr/commit/1994a5938d5cbb33a1e6cae0676d9350c9424f82)) -* **deps:** update dependency @auth/core to ^0.36.0 ([#1250](https://github.com/homarr-labs/homarr/issues/1250)) ([d0d2a82](https://github.com/homarr-labs/homarr/commit/d0d2a82a68f9155564d92ce925ac7d8cd80f42ee)) -* **deps:** update dependency @auth/core to ^0.37.0 ([#1272](https://github.com/homarr-labs/homarr/issues/1272)) ([8bcba35](https://github.com/homarr-labs/homarr/commit/8bcba350d58564b03cb2ff3296f8ddf2c77d0dae)) -* **deps:** update dependency @auth/core to ^0.37.1 ([#1323](https://github.com/homarr-labs/homarr/issues/1323)) ([dac2b50](https://github.com/homarr-labs/homarr/commit/dac2b5063bb892cdc5079a9957eb9199b6d62738)) -* **deps:** update dependency @auth/core to ^0.37.2 ([#1338](https://github.com/homarr-labs/homarr/issues/1338)) ([aa2d2f8](https://github.com/homarr-labs/homarr/commit/aa2d2f8c4b1b50e07cb68fb1bd76d6561fedb716)) -* **deps:** update dependency @auth/core to ^0.37.3 ([#1416](https://github.com/homarr-labs/homarr/issues/1416)) ([7a07f57](https://github.com/homarr-labs/homarr/commit/7a07f57d0c34fb2c5e98680b351254ab32e9a593)) -* **deps:** update dependency @auth/core to ^0.37.4 ([#1492](https://github.com/homarr-labs/homarr/issues/1492)) ([d4f0aa7](https://github.com/homarr-labs/homarr/commit/d4f0aa761d95cb2b7f72787b95b0033faba072c3)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.5.0 ([#30](https://github.com/homarr-labs/homarr/issues/30)) ([191d773](https://github.com/homarr-labs/homarr/commit/191d773aaf55209d67be841e4f24f24e6439ca85)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.6.3 ([#52](https://github.com/homarr-labs/homarr/issues/52)) ([6797cca](https://github.com/homarr-labs/homarr/commit/6797cca25945da5944966622c0cba5a9e0a263fa)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.7.0 ([#90](https://github.com/homarr-labs/homarr/issues/90)) ([1139352](https://github.com/homarr-labs/homarr/commit/11393525d9bfc192818c1ef2d80c3d41f56fcca3)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.8.0 ([#170](https://github.com/homarr-labs/homarr/issues/170)) ([50fd4c1](https://github.com/homarr-labs/homarr/commit/50fd4c17adfac217d7908d612fe10ee97171edac)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.8.1 ([#267](https://github.com/homarr-labs/homarr/issues/267)) ([98a8eaa](https://github.com/homarr-labs/homarr/commit/98a8eaac0950e53864cb87ee722f353df6c56c56)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.8.2 ([#293](https://github.com/homarr-labs/homarr/issues/293)) ([fbc69f6](https://github.com/homarr-labs/homarr/commit/fbc69f6078ddae657646247db77c425773ab5170)) -* **deps:** update dependency @auth/drizzle-adapter to ^0.9.0 ([#328](https://github.com/homarr-labs/homarr/issues/328)) ([7fb0dec](https://github.com/homarr-labs/homarr/commit/7fb0decd5bde0855a191c69f52f426d104bf7151)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.1.0 ([#474](https://github.com/homarr-labs/homarr/issues/474)) ([82d41ab](https://github.com/homarr-labs/homarr/commit/82d41abf460556ce62f04a700d47208201bdd595)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.2.0 ([#604](https://github.com/homarr-labs/homarr/issues/604)) ([2e044ac](https://github.com/homarr-labs/homarr/commit/2e044ac871fb451160b0619ee430eba3f962c668)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.3.0 ([#694](https://github.com/homarr-labs/homarr/issues/694)) ([4291bde](https://github.com/homarr-labs/homarr/commit/4291bde94f6017c92d44dce50cb795d46f54f9c6)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.4.1 ([#701](https://github.com/homarr-labs/homarr/issues/701)) ([324a643](https://github.com/homarr-labs/homarr/commit/324a643fd1abad4b98bcd14934e4bd23f04e8260)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.4.2 ([#877](https://github.com/homarr-labs/homarr/issues/877)) ([37309e0](https://github.com/homarr-labs/homarr/commit/37309e07279ad46cb3e9e4a29033966d5a34d00a)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.5.0 ([#1130](https://github.com/homarr-labs/homarr/issues/1130)) ([929054d](https://github.com/homarr-labs/homarr/commit/929054d5bddd9863671227c2bc71e07ff4b197be)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.5.1 ([#1177](https://github.com/homarr-labs/homarr/issues/1177)) ([4e431b4](https://github.com/homarr-labs/homarr/commit/4e431b4f8971f18387f84553d1e644980733b383)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.5.2 ([#1181](https://github.com/homarr-labs/homarr/issues/1181)) ([17d6229](https://github.com/homarr-labs/homarr/commit/17d6229a0fadb56f2522256a03e15cca3fb7948e)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.5.3 ([#1194](https://github.com/homarr-labs/homarr/issues/1194)) ([adb59b2](https://github.com/homarr-labs/homarr/commit/adb59b292bd5b6df50c60eac17b2a77d3d28696c)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.6.0 ([#1251](https://github.com/homarr-labs/homarr/issues/1251)) ([9c5ca6f](https://github.com/homarr-labs/homarr/commit/9c5ca6f9069f8b6089212638009d098b3d76298c)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.6.1 ([#1258](https://github.com/homarr-labs/homarr/issues/1258)) ([dea6254](https://github.com/homarr-labs/homarr/commit/dea62547e0f51b6607eef5d278202081e6100509)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.0 ([#1273](https://github.com/homarr-labs/homarr/issues/1273)) ([a44ead0](https://github.com/homarr-labs/homarr/commit/a44ead09a39ff3d83d646622f29b4c236d078dc4)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.1 ([#1324](https://github.com/homarr-labs/homarr/issues/1324)) ([b1393fa](https://github.com/homarr-labs/homarr/commit/b1393fa59b35d84968fd5d6ecddb29e3c22b4aa3)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.2 ([#1339](https://github.com/homarr-labs/homarr/issues/1339)) ([c5cc21a](https://github.com/homarr-labs/homarr/commit/c5cc21a4b0537d2396ba8fe79eaeff0a008a5e75)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.3 ([#1417](https://github.com/homarr-labs/homarr/issues/1417)) ([b45eeb9](https://github.com/homarr-labs/homarr/commit/b45eeb95e94b1288bb97b45b1dd6eca3728cde72)) -* **deps:** update dependency @auth/drizzle-adapter to ^1.7.4 ([#1493](https://github.com/homarr-labs/homarr/issues/1493)) ([e9a74a0](https://github.com/homarr-labs/homarr/commit/e9a74a01b900f083143b93c8df73fcaa98009ea0)) -* **deps:** update dependency @auth/drizzle-adapter to v1 ([#359](https://github.com/homarr-labs/homarr/issues/359)) ([ea528ea](https://github.com/homarr-labs/homarr/commit/ea528ea076fec672d7ee57a23ee66244d987f103)) -* **deps:** update dependency @ctrl/deluge to v7 ([#1468](https://github.com/homarr-labs/homarr/issues/1468)) ([70f9dc5](https://github.com/homarr-labs/homarr/commit/70f9dc54606d2518afdd5cef84f6623cfdfa8fd3)) -* **deps:** update dependency @ctrl/qbittorrent to ^9.1.0 ([#1466](https://github.com/homarr-labs/homarr/issues/1466)) ([27931be](https://github.com/homarr-labs/homarr/commit/27931be9825a0ee1a4942abb560127c4e2286aa4)) -* **deps:** update dependency @ctrl/transmission to ^7.1.0 ([#1467](https://github.com/homarr-labs/homarr/issues/1467)) ([f220bb6](https://github.com/homarr-labs/homarr/commit/f220bb62445219f9d010e9a28bcb78789a63d368)) -* **deps:** update dependency @ctrl/transmission to v7 ([#1103](https://github.com/homarr-labs/homarr/issues/1103)) ([5986160](https://github.com/homarr-labs/homarr/commit/59861602652a5717e74a342059cd403151d8a6fd)) -* **deps:** update dependency @dnd-kit/core to ^6.2.0 ([#1534](https://github.com/homarr-labs/homarr/issues/1534)) ([5a3d974](https://github.com/homarr-labs/homarr/commit/5a3d9745d985cccca69f9bbfdf0d0ee922de8cbc)) -* **deps:** update dependency @dnd-kit/core to ^6.3.0 ([#1608](https://github.com/homarr-labs/homarr/issues/1608)) ([6c7cdb3](https://github.com/homarr-labs/homarr/commit/6c7cdb3adb6178888e4e3a5e328433f19803cd29)) -* **deps:** update dependency @dnd-kit/core to ^6.3.1 ([#1613](https://github.com/homarr-labs/homarr/issues/1613)) ([79d52b6](https://github.com/homarr-labs/homarr/commit/79d52b690533973e8ff00a1b4920c3f2cbcd417b)) -* **deps:** update dependency @dnd-kit/sortable to v10 ([#1609](https://github.com/homarr-labs/homarr/issues/1609)) ([1037a74](https://github.com/homarr-labs/homarr/commit/1037a747ea0c6e59fc2efb6562c49d4a3bca7465)) -* **deps:** update dependency @dnd-kit/sortable to v9 ([#1535](https://github.com/homarr-labs/homarr/issues/1535)) ([b68977c](https://github.com/homarr-labs/homarr/commit/b68977c52c84ae9742fd52b554d4838409ab76a6)) -* **deps:** update dependency @drizzle-team/brocli to ^0.10.0 ([#937](https://github.com/homarr-labs/homarr/issues/937)) ([a80b49a](https://github.com/homarr-labs/homarr/commit/a80b49a03e8174a1c4ae7e7abc8c9d32939946b6)) -* **deps:** update dependency @drizzle-team/brocli to ^0.10.1 ([#974](https://github.com/homarr-labs/homarr/issues/974)) ([ba3f173](https://github.com/homarr-labs/homarr/commit/ba3f1739f4be88b84f7c782936fc5c91bfa49fae)) -* **deps:** update dependency @drizzle-team/brocli to ^0.10.2 ([#1380](https://github.com/homarr-labs/homarr/issues/1380)) ([8d2d151](https://github.com/homarr-labs/homarr/commit/8d2d151787b4596e2af79e00345fc1ba40884535)) -* **deps:** update dependency @drizzle-team/brocli to ^0.11.0 ([#1427](https://github.com/homarr-labs/homarr/issues/1427)) ([e332a6f](https://github.com/homarr-labs/homarr/commit/e332a6fcbe719defc29f0ba7ada88fb3434784d9)) -* **deps:** update dependency @homarr/gridstack to v1.0.2 ([#542](https://github.com/homarr-labs/homarr/issues/542)) ([1569862](https://github.com/homarr-labs/homarr/commit/1569862baf77b3a8475c4aacc6f7ae5774be09cd)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.2.0 ([#227](https://github.com/homarr-labs/homarr/issues/227)) ([179ceae](https://github.com/homarr-labs/homarr/commit/179ceaebf05f53c434e245d1eb7b95a5be3c4d96)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.2.1 ([#243](https://github.com/homarr-labs/homarr/issues/243)) ([c5428ef](https://github.com/homarr-labs/homarr/commit/c5428efd60fa5217c7191bc3404cac420e9539be)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.3.0 ([#718](https://github.com/homarr-labs/homarr/issues/718)) ([7a14c25](https://github.com/homarr-labs/homarr/commit/7a14c255be48b9b8e92f7918f6af68a211e2666e)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.3.1 ([#784](https://github.com/homarr-labs/homarr/issues/784)) ([0a4ff4b](https://github.com/homarr-labs/homarr/commit/0a4ff4b883a40970e4d4b733aa096929ae6ec11a)) -* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.4.0 ([#1441](https://github.com/homarr-labs/homarr/issues/1441)) ([7cd3156](https://github.com/homarr-labs/homarr/commit/7cd3156bd627b983ebe7eba4ace82535b8a5e913)) -* **deps:** update dependency @jellyfin/sdk to ^0.11.0 ([#1384](https://github.com/homarr-labs/homarr/issues/1384)) ([7a4c9a9](https://github.com/homarr-labs/homarr/commit/7a4c9a9b2e72247577a61285546b0f74f5055d53)) -* **deps:** update dependency @million/lint to v1.0.0 ([#1212](https://github.com/homarr-labs/homarr/issues/1212)) ([b3f6645](https://github.com/homarr-labs/homarr/commit/b3f6645783bc4132480669113dfddac0939c5aeb)) -* **deps:** update dependency @million/lint to v1.0.10 ([#1293](https://github.com/homarr-labs/homarr/issues/1293)) ([ed52b26](https://github.com/homarr-labs/homarr/commit/ed52b26f6d6938d653527af94f341c3b5a69e093)) -* **deps:** update dependency @million/lint to v1.0.11 ([#1294](https://github.com/homarr-labs/homarr/issues/1294)) ([c707b4b](https://github.com/homarr-labs/homarr/commit/c707b4b10ff38e6cf299a503bd8176313d47f3ff)) -* **deps:** update dependency @million/lint to v1.0.12 ([#1459](https://github.com/homarr-labs/homarr/issues/1459)) ([ce32b48](https://github.com/homarr-labs/homarr/commit/ce32b4839d5074a38922c8bff389524d3e4619f4)) -* **deps:** update dependency @million/lint to v1.0.13 ([#1557](https://github.com/homarr-labs/homarr/issues/1557)) ([f2268c8](https://github.com/homarr-labs/homarr/commit/f2268c8041955c39206b1b8373278f170f76eae0)) -* **deps:** update dependency @million/lint to v1.0.14 ([#1647](https://github.com/homarr-labs/homarr/issues/1647)) ([4c7058b](https://github.com/homarr-labs/homarr/commit/4c7058b159858f3873aaf5dd95d5581696b3f30f)) -* **deps:** update dependency @million/lint to v1.0.7 ([#1225](https://github.com/homarr-labs/homarr/issues/1225)) ([770a0d6](https://github.com/homarr-labs/homarr/commit/770a0d63f9bab2f06e859bebe525ab9b222a5351)) -* **deps:** update dependency @million/lint to v1.0.8 ([#1231](https://github.com/homarr-labs/homarr/issues/1231)) ([547287d](https://github.com/homarr-labs/homarr/commit/547287dba1d37858f5406011bcbed20cbce08c9a)) -* **deps:** update dependency @million/lint to v1.0.9 ([#1255](https://github.com/homarr-labs/homarr/issues/1255)) ([1d281c0](https://github.com/homarr-labs/homarr/commit/1d281c0cc947612b21f65a1beca41e37a81403b0)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.10.1 ([#375](https://github.com/homarr-labs/homarr/issues/375)) ([73a72dc](https://github.com/homarr-labs/homarr/commit/73a72dc6755ee39fb1282ddde347a84d6aa8419f)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.11.0 ([#851](https://github.com/homarr-labs/homarr/issues/851)) ([88e5ac2](https://github.com/homarr-labs/homarr/commit/88e5ac2f71ed21e9a99969210b293e51d34b5106)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.11.1 ([#1029](https://github.com/homarr-labs/homarr/issues/1029)) ([e193c1c](https://github.com/homarr-labs/homarr/commit/e193c1c6f52c3a3e0072262227af82481d71b088)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.8.0 ([#31](https://github.com/homarr-labs/homarr/issues/31)) ([f8a3aae](https://github.com/homarr-labs/homarr/commit/f8a3aae1163d1b5d645e7e9fe0228846a856d4e6)) -* **deps:** update dependency @t3-oss/env-nextjs to ^0.9.2 ([#69](https://github.com/homarr-labs/homarr/issues/69)) ([11d1568](https://github.com/homarr-labs/homarr/commit/11d15687149f2bf55aba1999f368436b15b4a9ce)) -* **deps:** update dependency @tabler/icons-react to ^2.47.0 ([#32](https://github.com/homarr-labs/homarr/issues/32)) ([6a892e0](https://github.com/homarr-labs/homarr/commit/6a892e02c8aadcbfb192a65b56543ee27a3dc966)) -* **deps:** update dependency @tabler/icons-react to ^3.0.3 ([#229](https://github.com/homarr-labs/homarr/issues/229)) ([64354e4](https://github.com/homarr-labs/homarr/commit/64354e4b43ce4c7e9e2f1c816e2af8e3c15d905b)) -* **deps:** update dependency @tabler/icons-react to ^3.1.0 ([#236](https://github.com/homarr-labs/homarr/issues/236)) ([333aaf3](https://github.com/homarr-labs/homarr/commit/333aaf34dc85d24b9f7cf6451d65f566369ffa21)) -* **deps:** update dependency @tabler/icons-react to ^3.10.0 ([#769](https://github.com/homarr-labs/homarr/issues/769)) ([bf70143](https://github.com/homarr-labs/homarr/commit/bf70143ccab2ef6a35d739279af91c51e0be72e4)) -* **deps:** update dependency @tabler/icons-react to ^3.11.0 ([#818](https://github.com/homarr-labs/homarr/issues/818)) ([30669d2](https://github.com/homarr-labs/homarr/commit/30669d23e32974cbea3881fe2a0712985f59394d)) -* **deps:** update dependency @tabler/icons-react to ^3.12.0 ([#944](https://github.com/homarr-labs/homarr/issues/944)) ([21c0e4b](https://github.com/homarr-labs/homarr/commit/21c0e4b35471071cd73472a116f42550a4b7a509)) -* **deps:** update dependency @tabler/icons-react to ^3.13.0 ([#1034](https://github.com/homarr-labs/homarr/issues/1034)) ([2ea0d04](https://github.com/homarr-labs/homarr/commit/2ea0d04c71087bf56fd85c36955ba62ccf78e94b)) -* **deps:** update dependency @tabler/icons-react to ^3.14.0 ([#1039](https://github.com/homarr-labs/homarr/issues/1039)) ([961fca0](https://github.com/homarr-labs/homarr/commit/961fca0f647e569ee87a787d58e36c3c5f4fdedb)) -* **deps:** update dependency @tabler/icons-react to ^3.15.0 ([#1085](https://github.com/homarr-labs/homarr/issues/1085)) ([7b6301e](https://github.com/homarr-labs/homarr/commit/7b6301e498d608099f462b30177e8067bb0647b3)) -* **deps:** update dependency @tabler/icons-react to ^3.16.0 ([#1096](https://github.com/homarr-labs/homarr/issues/1096)) ([18c1da4](https://github.com/homarr-labs/homarr/commit/18c1da4a6296aadda9e9ecd88f112c1302b3e3ee)) -* **deps:** update dependency @tabler/icons-react to ^3.17.0 ([#1126](https://github.com/homarr-labs/homarr/issues/1126)) ([6685f4c](https://github.com/homarr-labs/homarr/commit/6685f4c8060867ec32e28c8ddfa351791feeaa53)) -* **deps:** update dependency @tabler/icons-react to ^3.18.0 ([#1188](https://github.com/homarr-labs/homarr/issues/1188)) ([1bce7a3](https://github.com/homarr-labs/homarr/commit/1bce7a300d616ad05dcf191a859af2bb665a41dd)) -* **deps:** update dependency @tabler/icons-react to ^3.19.0 ([#1197](https://github.com/homarr-labs/homarr/issues/1197)) ([8aaa4f5](https://github.com/homarr-labs/homarr/commit/8aaa4f5856ccac86ddd0e1e5ce3fc0178fda9597)) -* **deps:** update dependency @tabler/icons-react to ^3.2.0 ([#342](https://github.com/homarr-labs/homarr/issues/342)) ([c40533e](https://github.com/homarr-labs/homarr/commit/c40533e758ee60709a42b54e41345583cab40e51)) -* **deps:** update dependency @tabler/icons-react to ^3.20.0 ([#1359](https://github.com/homarr-labs/homarr/issues/1359)) ([30d4464](https://github.com/homarr-labs/homarr/commit/30d4464067583632bd9549b703dd886cac61a3f2)) -* **deps:** update dependency @tabler/icons-react to ^3.21.0 ([#1382](https://github.com/homarr-labs/homarr/issues/1382)) ([958c62c](https://github.com/homarr-labs/homarr/commit/958c62c92689ccdb466f7760dd053ca5f51099dc)) -* **deps:** update dependency @tabler/icons-react to ^3.22.0 ([#1471](https://github.com/homarr-labs/homarr/issues/1471)) ([a1fddaa](https://github.com/homarr-labs/homarr/commit/a1fddaa6a61fdcbc892e704bea8a0a0b73ab1e1e)) -* **deps:** update dependency @tabler/icons-react to ^3.23.0 ([#1566](https://github.com/homarr-labs/homarr/issues/1566)) ([fd42bde](https://github.com/homarr-labs/homarr/commit/fd42bde76ddf46f51f787cab832636f33187b006)) -* **deps:** update dependency @tabler/icons-react to ^3.24.0 ([#1587](https://github.com/homarr-labs/homarr/issues/1587)) ([23cc465](https://github.com/homarr-labs/homarr/commit/23cc4659c4cd14e7f95253e56fddd3a010d908c1)) -* **deps:** update dependency @tabler/icons-react to ^3.26.0 ([#1667](https://github.com/homarr-labs/homarr/issues/1667)) ([8c596bf](https://github.com/homarr-labs/homarr/commit/8c596bf5fa9119bd22375f2fc8408ebac8eb0bcb)) -* **deps:** update dependency @tabler/icons-react to ^3.3.0 ([#405](https://github.com/homarr-labs/homarr/issues/405)) ([46bb3ee](https://github.com/homarr-labs/homarr/commit/46bb3ee0c98f1a0c24ef1111d5ffd86b0446c9f1)) -* **deps:** update dependency @tabler/icons-react to ^3.4.0 ([#501](https://github.com/homarr-labs/homarr/issues/501)) ([3fe1a19](https://github.com/homarr-labs/homarr/commit/3fe1a19e378810c86f4526d218758becd71bbe9f)) -* **deps:** update dependency @tabler/icons-react to ^3.5.0 ([#532](https://github.com/homarr-labs/homarr/issues/532)) ([63f7431](https://github.com/homarr-labs/homarr/commit/63f743175edbc2d46c6eb0cb7f7a41e8007cd038)) -* **deps:** update dependency @tabler/icons-react to ^3.6.0 ([#664](https://github.com/homarr-labs/homarr/issues/664)) ([e4c6864](https://github.com/homarr-labs/homarr/commit/e4c6864a94fc0dc0449249043b2cf8037783c99f)) -* **deps:** update dependency @tabler/icons-react to ^3.7.0 ([#715](https://github.com/homarr-labs/homarr/issues/715)) ([6a3a846](https://github.com/homarr-labs/homarr/commit/6a3a8465e701aa4449d9993151ebace0f71542b2)) -* **deps:** update dependency @tabler/icons-react to ^3.8.0 ([#737](https://github.com/homarr-labs/homarr/issues/737)) ([e12531c](https://github.com/homarr-labs/homarr/commit/e12531ccccfdfafd21c6cb62533b1c4752a13e80)) -* **deps:** update dependency @tabler/icons-react to ^3.9.0 ([#745](https://github.com/homarr-labs/homarr/issues/745)) ([75e5a6c](https://github.com/homarr-labs/homarr/commit/75e5a6c42ff41b72b1d86fcac61f7d8c89ac337d)) -* **deps:** update dependency @tabler/icons-react to v3 ([#215](https://github.com/homarr-labs/homarr/issues/215)) ([1c222ed](https://github.com/homarr-labs/homarr/commit/1c222ed89cd53dccc41445631f777424705a444a)) -* **deps:** update dependency @tanstack/react-query-devtools to ^5.21.0 ([#101](https://github.com/homarr-labs/homarr/issues/101)) ([4ea1d14](https://github.com/homarr-labs/homarr/commit/4ea1d14966aebf7477fdfebce0e1bf3833ac70c2)) -* **deps:** update dependency @tanstack/react-query-devtools to ^5.21.5 ([#130](https://github.com/homarr-labs/homarr/issues/130)) ([dbf02c6](https://github.com/homarr-labs/homarr/commit/dbf02c62641e541682a39ebd5bba4a4cc87d94ab)) -* **deps:** update dependency @tanstack/react-query-devtools to ^5.54.0 ([#1060](https://github.com/homarr-labs/homarr/issues/1060)) ([6ea4a74](https://github.com/homarr-labs/homarr/commit/6ea4a74675b271573e25fb88d8ecd62f9f83be12)) -* **deps:** update dependency @tanstack/react-query-devtools to ^5.58.0 ([#1175](https://github.com/homarr-labs/homarr/issues/1175)) ([e2414f5](https://github.com/homarr-labs/homarr/commit/e2414f5e9f6cca92e43a7c8e551cd84d73925db6)) -* **deps:** update dependency @tanstack/react-query-next-experimental to v5.41.0 ([#639](https://github.com/homarr-labs/homarr/issues/639)) ([38c32cb](https://github.com/homarr-labs/homarr/commit/38c32cbece6e400482d1fd69c7b6bcf971224848)) -* **deps:** update dependency @tanstack/react-query-next-experimental to v5.46.0 ([#699](https://github.com/homarr-labs/homarr/issues/699)) ([8d7a7bc](https://github.com/homarr-labs/homarr/commit/8d7a7bc9b1d8051be6a879cecb405934e508fc21)) -* **deps:** update dependency @trpc/client to v11.0.0-next-beta.318 ([#234](https://github.com/homarr-labs/homarr/issues/234)) ([ab55a13](https://github.com/homarr-labs/homarr/commit/ab55a1357dec7bbd8b9ce68d635f89078954d091)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.330 ([#288](https://github.com/homarr-labs/homarr/issues/288)) ([d8d25d5](https://github.com/homarr-labs/homarr/commit/d8d25d50379aa4b4514e61418a8bdf0430063256)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.332 ([#308](https://github.com/homarr-labs/homarr/issues/308)) ([50c1624](https://github.com/homarr-labs/homarr/commit/50c162444c45c954755fcca22bed6e3d1443f950)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.334 ([#334](https://github.com/homarr-labs/homarr/issues/334)) ([ed5e5d1](https://github.com/homarr-labs/homarr/commit/ed5e5d1edcbd5d0d8cefa9664ebe0f3d08ae1499)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.345 ([#351](https://github.com/homarr-labs/homarr/issues/351)) ([0ba6455](https://github.com/homarr-labs/homarr/commit/0ba64559829f2257d3ce59493e9ed9d012f88bce)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.354 ([#368](https://github.com/homarr-labs/homarr/issues/368)) ([d88b6de](https://github.com/homarr-labs/homarr/commit/d88b6def759bf8a4980aa67e7fa652be7def8c95)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.359 ([#394](https://github.com/homarr-labs/homarr/issues/394)) ([47accae](https://github.com/homarr-labs/homarr/commit/47accae90d7d56c5aa1ea33d74350addd2038a10)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.361 ([#404](https://github.com/homarr-labs/homarr/issues/404)) ([6dff7c4](https://github.com/homarr-labs/homarr/commit/6dff7c48e2622a1e0df1c3f8ab86450a0899d395)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.362 ([#407](https://github.com/homarr-labs/homarr/issues/407)) ([0020680](https://github.com/homarr-labs/homarr/commit/0020680ca097b82ade46fc7e82c83d0da60d6e1c)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.364 ([#409](https://github.com/homarr-labs/homarr/issues/409)) ([7bc7bd6](https://github.com/homarr-labs/homarr/commit/7bc7bd6bf9dbdeaeb6b62d35cb7fb3db6074245f)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.366 ([#454](https://github.com/homarr-labs/homarr/issues/454)) ([1172d84](https://github.com/homarr-labs/homarr/commit/1172d842235cf8e01279dc2ee44360b0773b3b20)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.373 ([#493](https://github.com/homarr-labs/homarr/issues/493)) ([1abf441](https://github.com/homarr-labs/homarr/commit/1abf441cdba8a8f3a32600c197d1e414fb41f655)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.374 ([#522](https://github.com/homarr-labs/homarr/issues/522)) ([eb0db3e](https://github.com/homarr-labs/homarr/commit/eb0db3ec4efc7d07bdb24dac6299d61b3164f666)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.377 ([#553](https://github.com/homarr-labs/homarr/issues/553)) ([abdf9bc](https://github.com/homarr-labs/homarr/commit/abdf9bc122cddb7b97ec48a8aacca27b382c02a3)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.382 ([#568](https://github.com/homarr-labs/homarr/issues/568)) ([e448eeb](https://github.com/homarr-labs/homarr/commit/e448eeb0a62a91aeab31547055cc7b94b5de9bcb)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.383 ([#608](https://github.com/homarr-labs/homarr/issues/608)) ([869efbc](https://github.com/homarr-labs/homarr/commit/869efbc6388bcd48b49d6f2b27f7e2609855ceab)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.390 ([#609](https://github.com/homarr-labs/homarr/issues/609)) ([812b8d8](https://github.com/homarr-labs/homarr/commit/812b8d8306672b99d2bfe5f0284bc92a585f8284)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.394 ([#626](https://github.com/homarr-labs/homarr/issues/626)) ([5bf1ddd](https://github.com/homarr-labs/homarr/commit/5bf1ddde4b509373a641f29c480b60598ada7bd9)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.396 ([#634](https://github.com/homarr-labs/homarr/issues/634)) ([475f472](https://github.com/homarr-labs/homarr/commit/475f472cb0885bf70133e08f3bde08830476ce39)) -* **deps:** update dependency @trpc/client to v11.0.0-rc.401 ([#648](https://github.com/homarr-labs/homarr/issues/648)) ([84851db](https://github.com/homarr-labs/homarr/commit/84851db333a08ecc7d7255e0a2300e45d50a446b)) -* **deps:** update dependency @typescript-eslint/eslint-plugin to ^7.4.0 ([#271](https://github.com/homarr-labs/homarr/issues/271)) ([dd7f04e](https://github.com/homarr-labs/homarr/commit/dd7f04e3955644dcac7acf4446b454aaaa7ee387)) -* **deps:** update dependency @typescript-eslint/parser to ^7.4.0 ([#270](https://github.com/homarr-labs/homarr/issues/270)) ([c4a4452](https://github.com/homarr-labs/homarr/commit/c4a445283901128a738af553f54a912a48661f1d)) -* **deps:** update dependency @umami/node to ^0.4.0 ([#1000](https://github.com/homarr-labs/homarr/issues/1000)) ([72aed22](https://github.com/homarr-labs/homarr/commit/72aed221254b3bcfdaad3f26b2984ddbf7e4e152)) -* **deps:** update dependency better-sqlite3 to ^10.1.0 ([#584](https://github.com/homarr-labs/homarr/issues/584)) ([6d46e91](https://github.com/homarr-labs/homarr/commit/6d46e91a7cbbe6a892453c040da8b7b841d9ad2c)) -* **deps:** update dependency better-sqlite3 to ^11.1.1 ([#720](https://github.com/homarr-labs/homarr/issues/720)) ([c8d4461](https://github.com/homarr-labs/homarr/commit/c8d4461ab82b57c4719fcc805d75caac7db381ee)) -* **deps:** update dependency better-sqlite3 to ^11.1.2 ([#736](https://github.com/homarr-labs/homarr/issues/736)) ([6aecd1a](https://github.com/homarr-labs/homarr/commit/6aecd1a713575374b49253e074e4c1d52db58b77)) -* **deps:** update dependency better-sqlite3 to ^11.2.0 ([#1004](https://github.com/homarr-labs/homarr/issues/1004)) ([4e6437a](https://github.com/homarr-labs/homarr/commit/4e6437a180e3c25e6265803f2179d9caf119b64d)) -* **deps:** update dependency better-sqlite3 to ^11.2.1 ([#1006](https://github.com/homarr-labs/homarr/issues/1006)) ([051d57b](https://github.com/homarr-labs/homarr/commit/051d57bb399cea562f89b52a179d77c6bc90a3fc)) -* **deps:** update dependency better-sqlite3 to ^11.3.0 ([#1092](https://github.com/homarr-labs/homarr/issues/1092)) ([ed0c613](https://github.com/homarr-labs/homarr/commit/ed0c6136e61c46a9b90c5bbd1a85abbf4dfb68f5)) -* **deps:** update dependency better-sqlite3 to ^11.4.0 ([#1320](https://github.com/homarr-labs/homarr/issues/1320)) ([601af7a](https://github.com/homarr-labs/homarr/commit/601af7acd811a822a7d61d03094a61192e6947ed)) -* **deps:** update dependency better-sqlite3 to ^11.5.0 ([#1350](https://github.com/homarr-labs/homarr/issues/1350)) ([d599390](https://github.com/homarr-labs/homarr/commit/d599390512a169e15a4f9a1bff5f45eaf2e18834)) -* **deps:** update dependency better-sqlite3 to ^11.6.0 ([#1548](https://github.com/homarr-labs/homarr/issues/1548)) ([93aedd9](https://github.com/homarr-labs/homarr/commit/93aedd994f405a1e60913086900015c94a364962)) -* **deps:** update dependency better-sqlite3 to ^11.7.0 ([#1628](https://github.com/homarr-labs/homarr/issues/1628)) ([753e0ec](https://github.com/homarr-labs/homarr/commit/753e0ecad2f57ca1fa2202a9678ea7c2f1e67c5b)) -* **deps:** update dependency better-sqlite3 to ^9.4.0 ([#33](https://github.com/homarr-labs/homarr/issues/33)) ([00db901](https://github.com/homarr-labs/homarr/commit/00db9018339ae31f07edcd89a023f569aec0dbe5)) -* **deps:** update dependency better-sqlite3 to ^9.4.1 ([#83](https://github.com/homarr-labs/homarr/issues/83)) ([34f06e8](https://github.com/homarr-labs/homarr/commit/34f06e817db014e101e16543cdfc518485990a0d)) -* **deps:** update dependency better-sqlite3 to ^9.4.3 ([#118](https://github.com/homarr-labs/homarr/issues/118)) ([baa541a](https://github.com/homarr-labs/homarr/commit/baa541afa9c2f91bd56ec99bb24fc6cdb585991b)) -* **deps:** update dependency better-sqlite3 to ^9.4.5 ([#302](https://github.com/homarr-labs/homarr/issues/302)) ([7bff8e5](https://github.com/homarr-labs/homarr/commit/7bff8e5148875b72a5218e6856d10249f435b53b)) -* **deps:** update dependency better-sqlite3 to ^9.5.0 ([#335](https://github.com/homarr-labs/homarr/issues/335)) ([48a4b8b](https://github.com/homarr-labs/homarr/commit/48a4b8ba7e6b535fd1828713a0c4fadcbff89ec8)) -* **deps:** update dependency better-sqlite3 to ^9.6.0 ([#386](https://github.com/homarr-labs/homarr/issues/386)) ([45ffbad](https://github.com/homarr-labs/homarr/commit/45ffbadeece8a82dcb1e202e5934335a5d2d8832)) -* **deps:** update dependency better-sqlite3 to v10 ([#479](https://github.com/homarr-labs/homarr/issues/479)) ([f0da1d8](https://github.com/homarr-labs/homarr/commit/f0da1d81a6cd8b425919ffb9460b5f6bbb82ae2a)) -* **deps:** update dependency better-sqlite3 to v11 ([#587](https://github.com/homarr-labs/homarr/issues/587)) ([96150f8](https://github.com/homarr-labs/homarr/commit/96150f802d1c75ed6a10bf05a5f19c259ead581b)) -* **deps:** update dependency chroma-js to ^2.5.0 ([#890](https://github.com/homarr-labs/homarr/issues/890)) ([79cabe6](https://github.com/homarr-labs/homarr/commit/79cabe65801de1c180691f3413ef01939ede14be)) -* **deps:** update dependency chroma-js to ^2.6.0 ([#891](https://github.com/homarr-labs/homarr/issues/891)) ([15171dd](https://github.com/homarr-labs/homarr/commit/15171dd5afd12cbdc459442d2cab0164128381cb)) -* **deps:** update dependency chroma-js to ^3.1.0 ([#1081](https://github.com/homarr-labs/homarr/issues/1081)) ([4f42143](https://github.com/homarr-labs/homarr/commit/4f421433c2fa3918771f9138e45c3b526a6a9396)) -* **deps:** update dependency chroma-js to ^3.1.1 ([#1082](https://github.com/homarr-labs/homarr/issues/1082)) ([6bf0a53](https://github.com/homarr-labs/homarr/commit/6bf0a53d21a47542cceeec93eb90828206f2e81d)) -* **deps:** update dependency chroma-js to ^3.1.2 ([#1289](https://github.com/homarr-labs/homarr/issues/1289)) ([1bc470a](https://github.com/homarr-labs/homarr/commit/1bc470a39feae570a76dc210946ffc18b9bef6ea)) -* **deps:** update dependency chroma-js to v3 ([#992](https://github.com/homarr-labs/homarr/issues/992)) ([3eb9096](https://github.com/homarr-labs/homarr/commit/3eb90968ac8e5de059b3e14c0736433b005f5409)) -* **deps:** update dependency dayjs to ^1.11.11 ([#393](https://github.com/homarr-labs/homarr/issues/393)) ([03c2993](https://github.com/homarr-labs/homarr/commit/03c2993611e992cb24a142f050bdcd763c7813e2)) -* **deps:** update dependency dayjs to ^1.11.12 ([#832](https://github.com/homarr-labs/homarr/issues/832)) ([5c92f6a](https://github.com/homarr-labs/homarr/commit/5c92f6a3cc1febf9d96e394f54d2f5f94d9ab52e)) -* **deps:** update dependency dayjs to ^1.11.13 ([#1001](https://github.com/homarr-labs/homarr/issues/1001)) ([27d08ba](https://github.com/homarr-labs/homarr/commit/27d08baa2d6f82f521dc46a359ce3d24f1ac857a)) -* **deps:** update dependency dotenv to ^16.4.6 ([#1588](https://github.com/homarr-labs/homarr/issues/1588)) ([716a2ab](https://github.com/homarr-labs/homarr/commit/716a2ab9d1f949748a39858daa330e9df32597fa)) -* **deps:** update dependency dotenv to ^16.4.7 ([#1597](https://github.com/homarr-labs/homarr/issues/1597)) ([31cc1ab](https://github.com/homarr-labs/homarr/commit/31cc1abb51c8867f8f9934815f24de5e190f3142)) -* **deps:** update dependency drizzle-kit to ^0.20.16 ([#362](https://github.com/homarr-labs/homarr/issues/362)) ([f58d0dd](https://github.com/homarr-labs/homarr/commit/f58d0ddd94633468872ccd93f908e39f0ccc9337)) -* **deps:** update dependency drizzle-kit to ^0.20.17 ([#367](https://github.com/homarr-labs/homarr/issues/367)) ([04a3131](https://github.com/homarr-labs/homarr/commit/04a313186f63c4810fdc4f062a94aedf77bf526b)) -* **deps:** update dependency drizzle-kit to ^0.20.18 ([#449](https://github.com/homarr-labs/homarr/issues/449)) ([5eb1d71](https://github.com/homarr-labs/homarr/commit/5eb1d716ded4fb1529e35afa0741646874b74a43)) -* **deps:** update dependency drizzle-kit to ^0.21.1 ([#462](https://github.com/homarr-labs/homarr/issues/462)) ([1ce6fb0](https://github.com/homarr-labs/homarr/commit/1ce6fb0d0fd3f2770ea2a2f3dec7104b03e2e4ff)) -* **deps:** update dependency drizzle-kit to ^0.21.2 ([#495](https://github.com/homarr-labs/homarr/issues/495)) ([8166fdb](https://github.com/homarr-labs/homarr/commit/8166fdb8e22842125933e93325c27fd561f5df02)) -* **deps:** update dependency drizzle-kit to ^0.21.4 ([#535](https://github.com/homarr-labs/homarr/issues/535)) ([56b6d76](https://github.com/homarr-labs/homarr/commit/56b6d76f43e7cfaac080d029a68a55eb243970e7)) -* **deps:** update dependency drizzle-kit to ^0.22.0 ([#588](https://github.com/homarr-labs/homarr/issues/588)) ([d16281b](https://github.com/homarr-labs/homarr/commit/d16281bea7f71bb6ed3292bc47ed3b2d0103e814)) -* **deps:** update dependency drizzle-kit to ^0.22.1 ([#590](https://github.com/homarr-labs/homarr/issues/590)) ([51fb7cb](https://github.com/homarr-labs/homarr/commit/51fb7cb402e45ee9f9bebbc153ec1f37fc4d4158)) -* **deps:** update dependency drizzle-kit to ^0.22.2 ([#618](https://github.com/homarr-labs/homarr/issues/618)) ([f5aaf89](https://github.com/homarr-labs/homarr/commit/f5aaf89a3db6e10f2ac07d3ac29300ec81575e61)) -* **deps:** update dependency drizzle-kit to ^0.22.4 ([#625](https://github.com/homarr-labs/homarr/issues/625)) ([dda34e7](https://github.com/homarr-labs/homarr/commit/dda34e7764ace4f20ec9742289987dc43ee2573c)) -* **deps:** update dependency drizzle-kit to ^0.22.5 ([#631](https://github.com/homarr-labs/homarr/issues/631)) ([2462726](https://github.com/homarr-labs/homarr/commit/246272669e2cef242a7ddda2d6bbafe5313ca3ec)) -* **deps:** update dependency drizzle-kit to ^0.22.6 ([#636](https://github.com/homarr-labs/homarr/issues/636)) ([66ddb45](https://github.com/homarr-labs/homarr/commit/66ddb4597530479eac3d1e417d1fabac39ad6d8c)) -* **deps:** update dependency drizzle-kit to ^0.22.7 ([#652](https://github.com/homarr-labs/homarr/issues/652)) ([d985fbe](https://github.com/homarr-labs/homarr/commit/d985fbe69a0c1f57d574bd547567a3cd486174b4)) -* **deps:** update dependency drizzle-kit to ^0.22.8 ([#729](https://github.com/homarr-labs/homarr/issues/729)) ([be100b6](https://github.com/homarr-labs/homarr/commit/be100b610eabb3acbbbe0827dc07e012962c8ad8)) -* **deps:** update dependency drizzle-kit to ^0.23.0 ([#775](https://github.com/homarr-labs/homarr/issues/775)) ([f2c70a4](https://github.com/homarr-labs/homarr/commit/f2c70a4d0b6b827b54a7b12f53c01b1094548c2e)) -* **deps:** update dependency drizzle-kit to ^0.23.1 ([#888](https://github.com/homarr-labs/homarr/issues/888)) ([5f89d93](https://github.com/homarr-labs/homarr/commit/5f89d93db64c5033053da239b6e94c2731958924)) -* **deps:** update dependency drizzle-kit to ^0.23.2 ([#918](https://github.com/homarr-labs/homarr/issues/918)) ([d378ddb](https://github.com/homarr-labs/homarr/commit/d378ddb42bd43971d88b43cb90e24d83d69d9812)) -* **deps:** update dependency drizzle-kit to ^0.24.0 ([#939](https://github.com/homarr-labs/homarr/issues/939)) ([940a489](https://github.com/homarr-labs/homarr/commit/940a4890e26a0c080fb084e6026c0438d9df6914)) -* **deps:** update dependency drizzle-kit to ^0.24.1 ([#1012](https://github.com/homarr-labs/homarr/issues/1012)) ([cd0af7e](https://github.com/homarr-labs/homarr/commit/cd0af7e8f18d0e1b21f28bafd12aaf8bb06009c9)) -* **deps:** update dependency drizzle-kit to ^0.24.2 ([#1033](https://github.com/homarr-labs/homarr/issues/1033)) ([78b45c4](https://github.com/homarr-labs/homarr/commit/78b45c4a5bae9839990b12127fda9c7e15d07b25)) -* **deps:** update dependency drizzle-kit to ^0.25.0 ([#1261](https://github.com/homarr-labs/homarr/issues/1261)) ([635fadf](https://github.com/homarr-labs/homarr/commit/635fadfce9842f6e8bdc2e4757256e8bd27ae868)) -* **deps:** update dependency drizzle-kit to ^0.26.0 ([#1301](https://github.com/homarr-labs/homarr/issues/1301)) ([f2f31b5](https://github.com/homarr-labs/homarr/commit/f2f31b5ee08f1c50ccc125e0ace470c360984350)) -* **deps:** update dependency drizzle-kit to ^0.26.1 ([#1303](https://github.com/homarr-labs/homarr/issues/1303)) ([f50f46d](https://github.com/homarr-labs/homarr/commit/f50f46d4b7b32bbd89073433316f461cd475e367)) -* **deps:** update dependency drizzle-kit to ^0.26.2 ([#1305](https://github.com/homarr-labs/homarr/issues/1305)) ([da13d63](https://github.com/homarr-labs/homarr/commit/da13d6396967419466729b4abd5a839b14a17977)) -* **deps:** update dependency drizzle-kit to ^0.27.0 ([#1389](https://github.com/homarr-labs/homarr/issues/1389)) ([d3f9696](https://github.com/homarr-labs/homarr/commit/d3f9696127d21d75c16b52ed5a661909db54f705)) -* **deps:** update dependency drizzle-kit to ^0.27.1 ([#1395](https://github.com/homarr-labs/homarr/issues/1395)) ([3bfdc2d](https://github.com/homarr-labs/homarr/commit/3bfdc2ded499a465ce5cb078adc83ee71377bb5e)) -* **deps:** update dependency drizzle-kit to ^0.27.2 ([#1437](https://github.com/homarr-labs/homarr/issues/1437)) ([10cebff](https://github.com/homarr-labs/homarr/commit/10cebff4edb1ad9ff61f1a0ff27b6f360db7e05f)) -* **deps:** update dependency drizzle-kit to ^0.28.0 ([#1439](https://github.com/homarr-labs/homarr/issues/1439)) ([c6a1aee](https://github.com/homarr-labs/homarr/commit/c6a1aeef4d2e2939e262912eaa10018b5c1c4d60)) -* **deps:** update dependency drizzle-kit to ^0.28.1 ([#1480](https://github.com/homarr-labs/homarr/issues/1480)) ([acc440b](https://github.com/homarr-labs/homarr/commit/acc440bb8975fee8ce37e9290fbd4b993b6fddc6)) -* **deps:** update dependency drizzle-kit to ^0.29.0 ([#1591](https://github.com/homarr-labs/homarr/issues/1591)) ([a8e045b](https://github.com/homarr-labs/homarr/commit/a8e045b2239202d469c802b00cc4e4528932b8ee)) -* **deps:** update dependency drizzle-kit to ^0.29.1 ([#1603](https://github.com/homarr-labs/homarr/issues/1603)) ([2e23b3d](https://github.com/homarr-labs/homarr/commit/2e23b3dad84ff3eaa57ec26805b75fb271e12027)) -* **deps:** update dependency drizzle-kit to ^0.30.0 ([#1630](https://github.com/homarr-labs/homarr/issues/1630)) ([46ce061](https://github.com/homarr-labs/homarr/commit/46ce06155b4df45f3676998a813f3a7cecdba085)) -* **deps:** update dependency drizzle-kit to ^0.30.1 ([#1651](https://github.com/homarr-labs/homarr/issues/1651)) ([6418dfe](https://github.com/homarr-labs/homarr/commit/6418dfed382c88cdfe3ea0078ee18c5ae04ec721)) -* **deps:** update dependency drizzle-orm to ^0.29.4 ([#150](https://github.com/homarr-labs/homarr/issues/150)) ([4cf505f](https://github.com/homarr-labs/homarr/commit/4cf505f0c50faa74e699a29fd98eab88b20c14e1)) -* **deps:** update dependency drizzle-orm to ^0.29.5 ([#203](https://github.com/homarr-labs/homarr/issues/203)) ([4f41765](https://github.com/homarr-labs/homarr/commit/4f41765f1039daa2dcd8e9e0e26b3569539697f7)) -* **deps:** update dependency drizzle-orm to ^0.30.1 ([#210](https://github.com/homarr-labs/homarr/issues/210)) ([e34161f](https://github.com/homarr-labs/homarr/commit/e34161f33ecc7c58df4c26f383cf827fd663884b)) -* **deps:** update dependency drizzle-orm to ^0.30.10 ([#413](https://github.com/homarr-labs/homarr/issues/413)) ([14d941e](https://github.com/homarr-labs/homarr/commit/14d941e57ad70573954b276816d28e7d341df673)) -* **deps:** update dependency drizzle-orm to ^0.30.2 ([#232](https://github.com/homarr-labs/homarr/issues/232)) ([9046517](https://github.com/homarr-labs/homarr/commit/90465175f9cec9f95e14541e5c94e5eeadfc90a6)) -* **deps:** update dependency drizzle-orm to ^0.30.4 ([#250](https://github.com/homarr-labs/homarr/issues/250)) ([cdc4870](https://github.com/homarr-labs/homarr/commit/cdc4870925944317ff7f5f7ad8fee80433cd4e05)) -* **deps:** update dependency drizzle-orm to ^0.30.6 ([#282](https://github.com/homarr-labs/homarr/issues/282)) ([6ef58be](https://github.com/homarr-labs/homarr/commit/6ef58beead0137128cefe65d8119317572304b35)) -* **deps:** update dependency drizzle-orm to ^0.30.7 ([#303](https://github.com/homarr-labs/homarr/issues/303)) ([362257c](https://github.com/homarr-labs/homarr/commit/362257cf2b6b60027485f59df080bcdb83c3a85e)) -* **deps:** update dependency drizzle-orm to ^0.30.8 ([#339](https://github.com/homarr-labs/homarr/issues/339)) ([f50550b](https://github.com/homarr-labs/homarr/commit/f50550b3e135375e44b77ddc958f8ba3cf17d214)) -* **deps:** update dependency drizzle-orm to ^0.30.9 ([#370](https://github.com/homarr-labs/homarr/issues/370)) ([f5002c3](https://github.com/homarr-labs/homarr/commit/f5002c3265a9318770d9e6d41aa3583e84fc40d9)) -* **deps:** update dependency drizzle-orm to ^0.31.0 ([#589](https://github.com/homarr-labs/homarr/issues/589)) ([3b39e87](https://github.com/homarr-labs/homarr/commit/3b39e87212acedb8904584a3b3d55fbfd1434fd3)) -* **deps:** update dependency drizzle-orm to ^0.31.1 ([#619](https://github.com/homarr-labs/homarr/issues/619)) ([710197b](https://github.com/homarr-labs/homarr/commit/710197b3a02e06be6a60df71a180fd31b913858a)) -* **deps:** update dependency drizzle-orm to ^0.31.2 ([#632](https://github.com/homarr-labs/homarr/issues/632)) ([efd958d](https://github.com/homarr-labs/homarr/commit/efd958d6cbf5ec5dd0951ca33e87489aa5ec5c16)) -* **deps:** update dependency drizzle-orm to ^0.31.3 ([#758](https://github.com/homarr-labs/homarr/issues/758)) ([0a3d1e9](https://github.com/homarr-labs/homarr/commit/0a3d1e9e5e6682b438b5f3782bdaa305068e0cb7)) -* **deps:** update dependency drizzle-orm to ^0.31.4 ([#759](https://github.com/homarr-labs/homarr/issues/759)) ([8d42ca8](https://github.com/homarr-labs/homarr/commit/8d42ca8b5e63071ceaaf731198ee4633e77d96ac)) -* **deps:** update dependency drizzle-orm to ^0.32.0 ([#776](https://github.com/homarr-labs/homarr/issues/776)) ([3da5734](https://github.com/homarr-labs/homarr/commit/3da5734571de98ceaf2a915a56c177b564beedab)) -* **deps:** update dependency drizzle-orm to ^0.32.1 ([#859](https://github.com/homarr-labs/homarr/issues/859)) ([868b7b8](https://github.com/homarr-labs/homarr/commit/868b7b890e7affbb79935dc78eaac463d660e413)) -* **deps:** update dependency drizzle-orm to ^0.32.2 ([#919](https://github.com/homarr-labs/homarr/issues/919)) ([3f35163](https://github.com/homarr-labs/homarr/commit/3f35163481c85f434a60438ea7425a75b4b2285d)) -* **deps:** update dependency drizzle-orm to ^0.33.0 ([#938](https://github.com/homarr-labs/homarr/issues/938)) ([c399d83](https://github.com/homarr-labs/homarr/commit/c399d832e58edce29b5bc657ff10970c50123a85)) -* **deps:** update dependency drizzle-orm to ^0.34.0 ([#1262](https://github.com/homarr-labs/homarr/issues/1262)) ([23ee229](https://github.com/homarr-labs/homarr/commit/23ee229906b3dab7f7b93e93f76c11aa4ca89392)) -* **deps:** update dependency drizzle-orm to ^0.34.1 ([#1268](https://github.com/homarr-labs/homarr/issues/1268)) ([14d1ce8](https://github.com/homarr-labs/homarr/commit/14d1ce842a011dbe84259ba3509d9edfcdf573e0)) -* **deps:** update dependency drizzle-orm to ^0.35.0 ([#1302](https://github.com/homarr-labs/homarr/issues/1302)) ([c6daccb](https://github.com/homarr-labs/homarr/commit/c6daccbdf0b6a531274c0ab86779ec3f946ebf38)) -* **deps:** update dependency drizzle-orm to ^0.35.1 ([#1306](https://github.com/homarr-labs/homarr/issues/1306)) ([c053a37](https://github.com/homarr-labs/homarr/commit/c053a373b48ed6cc2f877c581e03264288bbe751)) -* **deps:** update dependency drizzle-orm to ^0.35.2 ([#1321](https://github.com/homarr-labs/homarr/issues/1321)) ([c8b1bb8](https://github.com/homarr-labs/homarr/commit/c8b1bb8d62e5c608e37cd28a85c0e7fc12eaf102)) -* **deps:** update dependency drizzle-orm to ^0.35.3 ([#1348](https://github.com/homarr-labs/homarr/issues/1348)) ([85a5ebd](https://github.com/homarr-labs/homarr/commit/85a5ebd288807373f38552d09392be184c3a8caf)) -* **deps:** update dependency drizzle-orm to ^0.36.0 ([#1390](https://github.com/homarr-labs/homarr/issues/1390)) ([3c3dbf5](https://github.com/homarr-labs/homarr/commit/3c3dbf51dc2e702a5eb302dac88986d61aba5881)) -* **deps:** update dependency drizzle-orm to ^0.36.1 ([#1440](https://github.com/homarr-labs/homarr/issues/1440)) ([7966476](https://github.com/homarr-labs/homarr/commit/7966476cad956b20940fd4d7d9df004dd886f7ff)) -* **deps:** update dependency drizzle-orm to ^0.36.2 ([#1481](https://github.com/homarr-labs/homarr/issues/1481)) ([9bc5856](https://github.com/homarr-labs/homarr/commit/9bc585648c8926123c718a3c922ad25c2cd7b897)) -* **deps:** update dependency drizzle-orm to ^0.36.3 ([#1487](https://github.com/homarr-labs/homarr/issues/1487)) ([2fb014f](https://github.com/homarr-labs/homarr/commit/2fb014f2df295cc16a01cc613db6d04fc483793c)) -* **deps:** update dependency drizzle-orm to ^0.36.4 ([#1522](https://github.com/homarr-labs/homarr/issues/1522)) ([50c9683](https://github.com/homarr-labs/homarr/commit/50c96833a697b09cadb8a7c64b2340e2c7b4d292)) -* **deps:** update dependency drizzle-orm to ^0.37.0 ([#1592](https://github.com/homarr-labs/homarr/issues/1592)) ([16cf818](https://github.com/homarr-labs/homarr/commit/16cf818449cd10f14e5235d5afdefaf0f8f01336)) -* **deps:** update dependency drizzle-orm to ^0.38.0 ([#1631](https://github.com/homarr-labs/homarr/issues/1631)) ([2825c9b](https://github.com/homarr-labs/homarr/commit/2825c9bf45c52cf7ec0785774038d9c01ac80cf9)) -* **deps:** update dependency drizzle-orm to ^0.38.1 ([#1646](https://github.com/homarr-labs/homarr/issues/1646)) ([7d0a224](https://github.com/homarr-labs/homarr/commit/7d0a224a3fe70c941ecea6dce9e376c395d8c5bb)) -* **deps:** update dependency drizzle-orm to ^0.38.2 ([#1652](https://github.com/homarr-labs/homarr/issues/1652)) ([da63d8e](https://github.com/homarr-labs/homarr/commit/da63d8ebf4b56caa34896d3b41d4784cd333123c)) -* **deps:** update dependency drizzle-zod to ^0.6.0 ([#1629](https://github.com/homarr-labs/homarr/issues/1629)) ([51c87c1](https://github.com/homarr-labs/homarr/commit/51c87c1a33ca5fc2e583e27c33dd8828ac134e41)) -* **deps:** update dependency eslint-config-turbo to ^1.12.2 ([#34](https://github.com/homarr-labs/homarr/issues/34)) ([837e390](https://github.com/homarr-labs/homarr/commit/837e3900fa905e3d96d1b7693a889eb99ac71c1f)) -* **deps:** update dependency eslint-config-turbo to ^2.0.13 ([#978](https://github.com/homarr-labs/homarr/issues/978)) ([497363b](https://github.com/homarr-labs/homarr/commit/497363b4912a1b0d42abd9414b7ff827223220a0)) -* **deps:** update dependency eslint-config-turbo to ^2.0.14 ([#984](https://github.com/homarr-labs/homarr/issues/984)) ([5e7ee1b](https://github.com/homarr-labs/homarr/commit/5e7ee1b657cb55826518841e1dcb25cce4050bad)) -* **deps:** update dependency eslint-plugin-import to ^2.29.1 ([#23](https://github.com/homarr-labs/homarr/issues/23)) ([f3bb990](https://github.com/homarr-labs/homarr/commit/f3bb990c4dcd40f367cf59a120cf8f6fd2658309)) -* **deps:** update dependency eslint-plugin-import to ^2.30.0 ([#1061](https://github.com/homarr-labs/homarr/issues/1061)) ([0f34bf8](https://github.com/homarr-labs/homarr/commit/0f34bf85a8476b73140c2b6b8baad87fa924ebdb)) -* **deps:** update dependency eslint-plugin-import to ^2.31.0 ([#1226](https://github.com/homarr-labs/homarr/issues/1226)) ([9d20362](https://github.com/homarr-labs/homarr/commit/9d20362cf1323c57e7ed7dc9ba4e234c51ccc1d0)) -* **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.0 ([#1066](https://github.com/homarr-labs/homarr/issues/1066)) ([bef5832](https://github.com/homarr-labs/homarr/commit/bef5832470012ff8eeddd2e95822800f4c349491)) -* **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.1 ([#1343](https://github.com/homarr-labs/homarr/issues/1343)) ([564096e](https://github.com/homarr-labs/homarr/commit/564096e463b25c243c7f2adb2c9b059c940365fe)) -* **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.2 ([#1374](https://github.com/homarr-labs/homarr/issues/1374)) ([3127182](https://github.com/homarr-labs/homarr/commit/3127182f5c16a6c792557c9f458b7e20511cdf8f)) -* **deps:** update dependency eslint-plugin-jsx-a11y to ^6.9.0 ([#695](https://github.com/homarr-labs/homarr/issues/695)) ([d78b581](https://github.com/homarr-labs/homarr/commit/d78b581104009d92a835d99978e935059682b7e2)) -* **deps:** update dependency eslint-plugin-react to ^7.34.0 ([#189](https://github.com/homarr-labs/homarr/issues/189)) ([4cd897d](https://github.com/homarr-labs/homarr/commit/4cd897d521ba11a69cc5f7960746dfbb5d10bd44)) -* **deps:** update dependency eslint-plugin-react to ^7.34.1 ([#240](https://github.com/homarr-labs/homarr/issues/240)) ([404f294](https://github.com/homarr-labs/homarr/commit/404f2945dc0db083ad4adb941f436b7cbd04ce6d)) -* **deps:** update dependency eslint-plugin-react to ^7.34.2 ([#567](https://github.com/homarr-labs/homarr/issues/567)) ([9e499bd](https://github.com/homarr-labs/homarr/commit/9e499bd30ba5a8d22f15ef7e4e467090268125e7)) -* **deps:** update dependency eslint-plugin-react to ^7.34.3 ([#688](https://github.com/homarr-labs/homarr/issues/688)) ([fdcf3a8](https://github.com/homarr-labs/homarr/commit/fdcf3a89c929de9d441898f31bfeb141613fe9ff)) -* **deps:** update dependency eslint-plugin-react to ^7.34.4 ([#809](https://github.com/homarr-labs/homarr/issues/809)) ([fd64201](https://github.com/homarr-labs/homarr/commit/fd642011ba8bd11e03de46e35de387da819d5c98)) -* **deps:** update dependency eslint-plugin-react to ^7.35.0 ([#835](https://github.com/homarr-labs/homarr/issues/835)) ([37a8a0f](https://github.com/homarr-labs/homarr/commit/37a8a0fe5aebe813ba9be05643b1333485e20d5f)) -* **deps:** update dependency eslint-plugin-react to ^7.35.1 ([#1059](https://github.com/homarr-labs/homarr/issues/1059)) ([4c52cc3](https://github.com/homarr-labs/homarr/commit/4c52cc338e0bca1d9a80d23a3b409526109206b5)) -* **deps:** update dependency eslint-plugin-react to ^7.35.2 ([#1062](https://github.com/homarr-labs/homarr/issues/1062)) ([1249fb9](https://github.com/homarr-labs/homarr/commit/1249fb96122597f2d40cc5719d687354b7c1411c)) -* **deps:** update dependency eslint-plugin-react to ^7.36.0 ([#1111](https://github.com/homarr-labs/homarr/issues/1111)) ([cd43253](https://github.com/homarr-labs/homarr/commit/cd43253061c4162d1c1835b3cbb843250d0d5b51)) -* **deps:** update dependency eslint-plugin-react to ^7.36.1 ([#1115](https://github.com/homarr-labs/homarr/issues/1115)) ([2351617](https://github.com/homarr-labs/homarr/commit/2351617177d334467e26c08c378da4994f21f581)) -* **deps:** update dependency eslint-plugin-react to ^7.37.0 ([#1189](https://github.com/homarr-labs/homarr/issues/1189)) ([2245e7a](https://github.com/homarr-labs/homarr/commit/2245e7aae8fa75730706d2e73c30870ac6d0ec77)) -* **deps:** update dependency eslint-plugin-react to ^7.37.1 ([#1213](https://github.com/homarr-labs/homarr/issues/1213)) ([4a8ed13](https://github.com/homarr-labs/homarr/commit/4a8ed13a87ff44aed89754fbc171db0641cf78d8)) -* **deps:** update dependency eslint-plugin-react to ^7.37.2 ([#1354](https://github.com/homarr-labs/homarr/issues/1354)) ([1a2f0ad](https://github.com/homarr-labs/homarr/commit/1a2f0adfc8d22eade925409aac63ccb9d8885c08)) -* **deps:** update dependency eslint-plugin-react-hooks to ^5.1.0 ([#1614](https://github.com/homarr-labs/homarr/issues/1614)) ([6d6840f](https://github.com/homarr-labs/homarr/commit/6d6840f85e5f38b2f7ec990cf7402de86ea84166)) -* **deps:** update dependency eslint-plugin-react-hooks to v5 ([#1280](https://github.com/homarr-labs/homarr/issues/1280)) ([a87c937](https://github.com/homarr-labs/homarr/commit/a87c937b69550160cc10e9991256c032245fcbfc)) -* **deps:** update dependency flag-icons to ^7.2.2 ([#533](https://github.com/homarr-labs/homarr/issues/533)) ([f45fa50](https://github.com/homarr-labs/homarr/commit/f45fa500248d810aadb05cf2ad8ecd247bcae60b)) -* **deps:** update dependency flag-icons to ^7.2.3 ([#575](https://github.com/homarr-labs/homarr/issues/575)) ([fe43e74](https://github.com/homarr-labs/homarr/commit/fe43e74c5399942c6cb099352fc1098fe1261fc4)) -* **deps:** update dependency glob to ^10.3.14 ([#461](https://github.com/homarr-labs/homarr/issues/461)) ([8bd08d3](https://github.com/homarr-labs/homarr/commit/8bd08d39ca106b225aee123278b1387d037feedc)) -* **deps:** update dependency glob to ^10.3.15 ([#478](https://github.com/homarr-labs/homarr/issues/478)) ([333b124](https://github.com/homarr-labs/homarr/commit/333b124f678818b346816bbd29f6bc78f20e175d)) -* **deps:** update dependency glob to ^10.4.1 ([#531](https://github.com/homarr-labs/homarr/issues/531)) ([a0322bf](https://github.com/homarr-labs/homarr/commit/a0322bfd994c9fae57f7d8f7e219d0ac70d7868c)) -* **deps:** update dependency glob to ^10.4.2 ([#689](https://github.com/homarr-labs/homarr/issues/689)) ([0bfc0c5](https://github.com/homarr-labs/homarr/commit/0bfc0c5d2543677b7efe6fcec1af7c72e178af1b)) -* **deps:** update dependency glob to ^10.4.3 ([#751](https://github.com/homarr-labs/homarr/issues/751)) ([61cbb74](https://github.com/homarr-labs/homarr/commit/61cbb74d14b93ee9e52a2170a4ff01c93dcd09c1)) -* **deps:** update dependency glob to ^10.4.4 ([#765](https://github.com/homarr-labs/homarr/issues/765)) ([74b017d](https://github.com/homarr-labs/homarr/commit/74b017d9f4b39b9d6de0d76f180fcf5c6f145215)) -* **deps:** update dependency glob to ^10.4.5 ([#768](https://github.com/homarr-labs/homarr/issues/768)) ([4cee3df](https://github.com/homarr-labs/homarr/commit/4cee3dfbe00cd984e31a732e88bc581606ab37e9)) -* **deps:** update dependency glob to v10.4.1 ([#544](https://github.com/homarr-labs/homarr/issues/544)) ([7b46d92](https://github.com/homarr-labs/homarr/commit/7b46d92d4f992584c813cc2d7e99813f53a8b72e)) -* **deps:** update dependency glob to v11 ([#766](https://github.com/homarr-labs/homarr/issues/766)) ([0169501](https://github.com/homarr-labs/homarr/commit/0169501676aa8d1170ee44aa0bb8134d994d472e)) -* **deps:** update dependency ioredis to v5.4.1 ([#357](https://github.com/homarr-labs/homarr/issues/357)) ([20f44d3](https://github.com/homarr-labs/homarr/commit/20f44d3494ffbe76994e6d541d31ced2cfd8abd3)) -* **deps:** update dependency jotai to ^2.10.0 ([#1155](https://github.com/homarr-labs/homarr/issues/1155)) ([dd9080f](https://github.com/homarr-labs/homarr/commit/dd9080f781b782a1a112c53f1af1e987fde22e32)) -* **deps:** update dependency jotai to ^2.10.1 ([#1295](https://github.com/homarr-labs/homarr/issues/1295)) ([ba81e5e](https://github.com/homarr-labs/homarr/commit/ba81e5e35a046e8dda1c2660beff1e1644d4d32a)) -* **deps:** update dependency jotai to ^2.10.2 ([#1464](https://github.com/homarr-labs/homarr/issues/1464)) ([75d764b](https://github.com/homarr-labs/homarr/commit/75d764bca83e41bc932a4aed5244bf6922d2d070)) -* **deps:** update dependency jotai to ^2.10.3 ([#1509](https://github.com/homarr-labs/homarr/issues/1509)) ([ae61377](https://github.com/homarr-labs/homarr/commit/ae6137710f51c3f53127a779793ce2d1566e7e0d)) -* **deps:** update dependency jotai to ^2.10.4 ([#1672](https://github.com/homarr-labs/homarr/issues/1672)) ([b7b5da6](https://github.com/homarr-labs/homarr/commit/b7b5da654bee37f1aceda2718bb92646fc4f472e)) -* **deps:** update dependency jotai to ^2.6.4 ([#24](https://github.com/homarr-labs/homarr/issues/24)) ([a7d5c36](https://github.com/homarr-labs/homarr/commit/a7d5c36aa798ea9cf03579b752fa3640fb4f79cf)) -* **deps:** update dependency jotai to ^2.6.5 ([#106](https://github.com/homarr-labs/homarr/issues/106)) ([fc8d907](https://github.com/homarr-labs/homarr/commit/fc8d9071aa91afdb00b17b1de13a61241aa93705)) -* **deps:** update dependency jotai to ^2.7.0 ([#162](https://github.com/homarr-labs/homarr/issues/162)) ([af203e1](https://github.com/homarr-labs/homarr/commit/af203e19e76450e990384443e9d9de1e1df7748f)) -* **deps:** update dependency jotai to ^2.7.1 ([#238](https://github.com/homarr-labs/homarr/issues/238)) ([75ab823](https://github.com/homarr-labs/homarr/commit/75ab8230196272e2c713b948a614b3ac0ce62f09)) -* **deps:** update dependency jotai to ^2.7.2 ([#284](https://github.com/homarr-labs/homarr/issues/284)) ([d06528f](https://github.com/homarr-labs/homarr/commit/d06528f3119e18ddf09ab210fa2dd7ed1570bd5f)) -* **deps:** update dependency jotai to ^2.8.0 ([#326](https://github.com/homarr-labs/homarr/issues/326)) ([27c858d](https://github.com/homarr-labs/homarr/commit/27c858dc815f8d450310a219d2ec44093f33b293)) -* **deps:** update dependency jotai to ^2.8.1 ([#534](https://github.com/homarr-labs/homarr/issues/534)) ([c668d0a](https://github.com/homarr-labs/homarr/commit/c668d0a76502ce082990e7e64b7e7c801f33134f)) -* **deps:** update dependency jotai to ^2.8.2 ([#561](https://github.com/homarr-labs/homarr/issues/561)) ([6f47adf](https://github.com/homarr-labs/homarr/commit/6f47adff8abfdd1e94207a73fa6638e9aa11d396)) -* **deps:** update dependency jotai to ^2.8.3 ([#615](https://github.com/homarr-labs/homarr/issues/615)) ([d993e8d](https://github.com/homarr-labs/homarr/commit/d993e8d81136f8fb42a27b082d41b00bd5c2668a)) -* **deps:** update dependency jotai to ^2.8.4 ([#721](https://github.com/homarr-labs/homarr/issues/721)) ([e46bfd9](https://github.com/homarr-labs/homarr/commit/e46bfd9146929421434ce847352ce8b7a08106f7)) -* **deps:** update dependency jotai to ^2.9.0 ([#767](https://github.com/homarr-labs/homarr/issues/767)) ([5e3dc1e](https://github.com/homarr-labs/homarr/commit/5e3dc1e44dbe229870637c58188c6b6057092a95)) -* **deps:** update dependency jotai to ^2.9.1 ([#858](https://github.com/homarr-labs/homarr/issues/858)) ([fc5f02b](https://github.com/homarr-labs/homarr/commit/fc5f02b022786e7ec75c900d33c2386c71a77e53)) -* **deps:** update dependency jotai to ^2.9.2 ([#933](https://github.com/homarr-labs/homarr/issues/933)) ([c2bf677](https://github.com/homarr-labs/homarr/commit/c2bf6779c0664720a180192813ed4bfab02bf0e1)) -* **deps:** update dependency jotai to ^2.9.3 ([#969](https://github.com/homarr-labs/homarr/issues/969)) ([9d62fb4](https://github.com/homarr-labs/homarr/commit/9d62fb42c470d09c8891bdb8997af75926f3d03d)) -* **deps:** update dependency ldapts to v7.1.0 ([#839](https://github.com/homarr-labs/homarr/issues/839)) ([c33086d](https://github.com/homarr-labs/homarr/commit/c33086d8b55be9ba605c1f2c7429e44bd6ddada1)) -* **deps:** update dependency ldapts to v7.1.1 ([#1038](https://github.com/homarr-labs/homarr/issues/1038)) ([b507bf2](https://github.com/homarr-labs/homarr/commit/b507bf2ae67120ab7089297d53ce41c26314ca30)) -* **deps:** update dependency ldapts to v7.2.0 ([#1097](https://github.com/homarr-labs/homarr/issues/1097)) ([9d5007c](https://github.com/homarr-labs/homarr/commit/9d5007c05cb3216c9acbb1233326be1cd8d1cbb8)) -* **deps:** update dependency ldapts to v7.2.1 ([#1211](https://github.com/homarr-labs/homarr/issues/1211)) ([1b0d927](https://github.com/homarr-labs/homarr/commit/1b0d927e8866376f2f6851f78f9ef5ab67eb5ad2)) -* **deps:** update dependency ldapts to v7.2.2 ([#1574](https://github.com/homarr-labs/homarr/issues/1574)) ([d5f7621](https://github.com/homarr-labs/homarr/commit/d5f76218cd314769fb312e60de824acc1f90914e)) -* **deps:** update dependency mantine-modal-manager to ^7.5.2 ([#72](https://github.com/homarr-labs/homarr/issues/72)) ([f704bad](https://github.com/homarr-labs/homarr/commit/f704bad36e103fc349b0303d9f79440d076c1e88)) -* **deps:** update dependency mantine-modal-manager to ^7.5.3 ([#132](https://github.com/homarr-labs/homarr/issues/132)) ([4565f38](https://github.com/homarr-labs/homarr/commit/4565f38bef6e940c2856b7213dae92cfff659a7b)) -* **deps:** update dependency mantine-modal-manager to ^7.6.1 ([#171](https://github.com/homarr-labs/homarr/issues/171)) ([acf9d18](https://github.com/homarr-labs/homarr/commit/acf9d1803f7112520a87fe854ef65d7f67dd5cb9)) -* **deps:** update dependency mantine-modal-manager to ^7.6.2 ([#222](https://github.com/homarr-labs/homarr/issues/222)) ([b63b2c8](https://github.com/homarr-labs/homarr/commit/b63b2c8e9021d8e789789471a061f1f40320a135)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.0 ([#149](https://github.com/homarr-labs/homarr/issues/149)) ([f211ffb](https://github.com/homarr-labs/homarr/commit/f211ffbf78d9039fc5e68a8219cef134ad3a5fa5)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.1 ([#277](https://github.com/homarr-labs/homarr/issues/277)) ([e1b62ec](https://github.com/homarr-labs/homarr/commit/e1b62ecd5300b54523e9c9672b53b9ac49a3996e)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.2 ([#466](https://github.com/homarr-labs/homarr/issues/466)) ([627f895](https://github.com/homarr-labs/homarr/commit/627f8957e546a37520f0122b62664704f9d286c3)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.3 ([#488](https://github.com/homarr-labs/homarr/issues/488)) ([8b84695](https://github.com/homarr-labs/homarr/commit/8b84695079220228e99317d9cd12d613e6af4043)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.4 ([#593](https://github.com/homarr-labs/homarr/issues/593)) ([fef070c](https://github.com/homarr-labs/homarr/commit/fef070c42cbff79e8301fdbe5623482d2ed01521)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.5 ([#661](https://github.com/homarr-labs/homarr/issues/661)) ([37ebcfe](https://github.com/homarr-labs/homarr/commit/37ebcfe318540e6941ea62a40a001aaed19e0abf)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.6 ([#837](https://github.com/homarr-labs/homarr/issues/837)) ([5da74ca](https://github.com/homarr-labs/homarr/commit/5da74ca7e057632b9f693061c3855e1fb348c5bb)) -* **deps:** update dependency mantine-react-table to v2.0.0-beta.7 ([#1287](https://github.com/homarr-labs/homarr/issues/1287)) ([6f97741](https://github.com/homarr-labs/homarr/commit/6f97741862ad2d25d852858e509f78d0ff0a7e01)) -* **deps:** update dependency mysql2 to ^3.9.3 ([#273](https://github.com/homarr-labs/homarr/issues/273)) ([b0bba14](https://github.com/homarr-labs/homarr/commit/b0bba1418b802b238eb8724987ce6bbb1a27f195)) -* **deps:** update dependency mysql2 to v3.10.0 ([#585](https://github.com/homarr-labs/homarr/issues/585)) ([ff84c2b](https://github.com/homarr-labs/homarr/commit/ff84c2bdb77db1e825fd3a6c7be303f2c450edbe)) -* **deps:** update dependency mysql2 to v3.10.1 ([#665](https://github.com/homarr-labs/homarr/issues/665)) ([10acb2b](https://github.com/homarr-labs/homarr/commit/10acb2bc7645048c8265a78075eef6ac6f0b1fe0)) -* **deps:** update dependency mysql2 to v3.10.2 ([#731](https://github.com/homarr-labs/homarr/issues/731)) ([663eb0b](https://github.com/homarr-labs/homarr/commit/663eb0bf5b986a71c36a36f86e5011835112d2b7)) -* **deps:** update dependency mysql2 to v3.10.3 ([#816](https://github.com/homarr-labs/homarr/issues/816)) ([636d3c6](https://github.com/homarr-labs/homarr/commit/636d3c670cc387a26112d58a33576cdcd1e5b5d2)) -* **deps:** update dependency mysql2 to v3.11.0 ([#874](https://github.com/homarr-labs/homarr/issues/874)) ([c973a3b](https://github.com/homarr-labs/homarr/commit/c973a3bfa540397b6882e0b4bdd5ce6c2a193e2f)) -* **deps:** update dependency mysql2 to v3.11.1 ([#1094](https://github.com/homarr-labs/homarr/issues/1094)) ([40af170](https://github.com/homarr-labs/homarr/commit/40af17083aba37c2e02f81f295c1192f70d0a691)) -* **deps:** update dependency mysql2 to v3.11.2 ([#1098](https://github.com/homarr-labs/homarr/issues/1098)) ([d2a30db](https://github.com/homarr-labs/homarr/commit/d2a30db3c1bd21decba0624c13635b092afabf4f)) -* **deps:** update dependency mysql2 to v3.11.3 ([#1132](https://github.com/homarr-labs/homarr/issues/1132)) ([6c39612](https://github.com/homarr-labs/homarr/commit/6c39612c0731c0728b62057eb240543ae4a1ec15)) -* **deps:** update dependency mysql2 to v3.11.4 ([#1430](https://github.com/homarr-labs/homarr/issues/1430)) ([7e1305c](https://github.com/homarr-labs/homarr/commit/7e1305c6a99e96900b447591ebeb48393186483d)) -* **deps:** update dependency mysql2 to v3.11.5 ([#1567](https://github.com/homarr-labs/homarr/issues/1567)) ([cebc925](https://github.com/homarr-labs/homarr/commit/cebc925b879d22a662be326c6b8b5048907dd92c)) -* **deps:** update dependency mysql2 to v3.9.6 ([#311](https://github.com/homarr-labs/homarr/issues/311)) ([a6d65fd](https://github.com/homarr-labs/homarr/commit/a6d65fda6b9ed31a08a420e51718dbd36f8da7ae)) -* **deps:** update dependency mysql2 to v3.9.7 ([#369](https://github.com/homarr-labs/homarr/issues/369)) ([51ea67f](https://github.com/homarr-labs/homarr/commit/51ea67fc883a6b2e2164f46a6a3e1e41a961a834)) -* **deps:** update dependency mysql2 to v3.9.8 ([#558](https://github.com/homarr-labs/homarr/issues/558)) ([3f364ca](https://github.com/homarr-labs/homarr/commit/3f364cacedb556cb58c8b15c1a81cecca7cb22e7)) -* **deps:** update dependency mysql2 to v3.9.9 ([#576](https://github.com/homarr-labs/homarr/issues/576)) ([612b8d8](https://github.com/homarr-labs/homarr/commit/612b8d8c6eff4adaec8e359b4733af31c69e10ae)) -* **deps:** update dependency next to ^14.1.1-canary.59 ([#121](https://github.com/homarr-labs/homarr/issues/121)) ([4f911c4](https://github.com/homarr-labs/homarr/commit/4f911c4f56be487726359eb00e7d34bff426b596)) -* **deps:** update dependency next to ^14.1.1-canary.61 ([#138](https://github.com/homarr-labs/homarr/issues/138)) ([6a02afb](https://github.com/homarr-labs/homarr/commit/6a02afbfe2daded6a86ee13423ae4fdeb7ed14a5)) -* **deps:** update dependency next to ^14.1.1-canary.62 ([#140](https://github.com/homarr-labs/homarr/issues/140)) ([fde634d](https://github.com/homarr-labs/homarr/commit/fde634d834c58501435ccab7409693fd9f5fecbc)) -* **deps:** update dependency next to ^14.1.1-canary.63 ([#146](https://github.com/homarr-labs/homarr/issues/146)) ([4d01136](https://github.com/homarr-labs/homarr/commit/4d011364bf61971392b541d6758585eb25f5c68c)) -* **deps:** update dependency next-auth to v5.0.0-beta.11 ([#91](https://github.com/homarr-labs/homarr/issues/91)) ([336dc38](https://github.com/homarr-labs/homarr/commit/336dc38b2d0f6932eaacee354640ffa5ec92729e)) -* **deps:** update dependency next-auth to v5.0.0-beta.13 ([#108](https://github.com/homarr-labs/homarr/issues/108)) ([64194c5](https://github.com/homarr-labs/homarr/commit/64194c51edbca639193d9865fc6d4c7e07a1b3bf)) -* **deps:** update dependency next-auth to v5.0.0-beta.15 ([#167](https://github.com/homarr-labs/homarr/issues/167)) ([70f34ef](https://github.com/homarr-labs/homarr/commit/70f34efd5385e641bf5f9f043cbd18e6e9bf2cce)) -* **deps:** update dependency next-auth to v5.0.0-beta.16 ([#268](https://github.com/homarr-labs/homarr/issues/268)) ([ba27871](https://github.com/homarr-labs/homarr/commit/ba278717650a20381912070624aa390594410578)) -* **deps:** update dependency next-auth to v5.0.0-beta.17 ([#383](https://github.com/homarr-labs/homarr/issues/383)) ([bfdc8d5](https://github.com/homarr-labs/homarr/commit/bfdc8d584b9abef5bf3b417ad8eba951404856ce)) -* **deps:** update dependency next-auth to v5.0.0-beta.19 ([#605](https://github.com/homarr-labs/homarr/issues/605)) ([20874cb](https://github.com/homarr-labs/homarr/commit/20874cb96d7b45ca33bd86e3670d81dc71688390)) -* **deps:** update dependency next-auth to v5.0.0-beta.20 ([#878](https://github.com/homarr-labs/homarr/issues/878)) ([a0c5545](https://github.com/homarr-labs/homarr/commit/a0c55459d1e3dbec93329ca9c99acf652683a08b)) -* **deps:** update dependency next-auth to v5.0.0-beta.21 ([#1131](https://github.com/homarr-labs/homarr/issues/1131)) ([5a73700](https://github.com/homarr-labs/homarr/commit/5a73700f571b6628161b55380fd08da93cede0a8)) -* **deps:** update dependency next-auth to v5.0.0-beta.22 ([#1195](https://github.com/homarr-labs/homarr/issues/1195)) ([c3e1ce3](https://github.com/homarr-labs/homarr/commit/c3e1ce30fa15ff7cee29d842a2f6c8688f9639ba)) -* **deps:** update dependency next-auth to v5.0.0-beta.23 ([#1325](https://github.com/homarr-labs/homarr/issues/1325)) ([c52fd97](https://github.com/homarr-labs/homarr/commit/c52fd972b7157d6132923cff5c2c350ca32d8229)) -* **deps:** update dependency next-auth to v5.0.0-beta.25 ([#1341](https://github.com/homarr-labs/homarr/issues/1341)) ([278107a](https://github.com/homarr-labs/homarr/commit/278107a1a4b6c5f6b391a25704314c613212fbab)) -* **deps:** update dependency next-auth to v5.0.0-beta.8 ([#60](https://github.com/homarr-labs/homarr/issues/60)) ([544a6d9](https://github.com/homarr-labs/homarr/commit/544a6d992691c6ba398b236fdd4f59111fa64e5a)) -* **deps:** update dependency next-auth to v5.0.0-beta.9 ([#68](https://github.com/homarr-labs/homarr/issues/68)) ([cc52c2b](https://github.com/homarr-labs/homarr/commit/cc52c2ba785e78f251bc6cfac637bc4285b77f0f)) -* **deps:** update dependency next-international to ^1.2.3 ([#35](https://github.com/homarr-labs/homarr/issues/35)) ([b8fe041](https://github.com/homarr-labs/homarr/commit/b8fe04144fea31a934a59094c52d7c6fc4cfffbb)) -* **deps:** update dependency next-international to ^1.2.4 ([#76](https://github.com/homarr-labs/homarr/issues/76)) ([60d5ebb](https://github.com/homarr-labs/homarr/commit/60d5ebbc11fd8a8f5494e303335e2bd46ec09a3d)) -* **deps:** update dependency next-intl to v3.23.5 ([#1376](https://github.com/homarr-labs/homarr/issues/1376)) ([a4ae38b](https://github.com/homarr-labs/homarr/commit/a4ae38b5e4bf09303e659f4eacac0c81ea3bea07)) -* **deps:** update dependency next-intl to v3.24.0 ([#1392](https://github.com/homarr-labs/homarr/issues/1392)) ([4e9b0af](https://github.com/homarr-labs/homarr/commit/4e9b0af54c2f3bc5a23b9cecfc570b74787af478)) -* **deps:** update dependency next-intl to v3.25.0 ([#1448](https://github.com/homarr-labs/homarr/issues/1448)) ([8722109](https://github.com/homarr-labs/homarr/commit/87221093d25df689472ed86184d528eb815e10d1)) -* **deps:** update dependency next-intl to v3.25.1 ([#1473](https://github.com/homarr-labs/homarr/issues/1473)) ([7a9e9a1](https://github.com/homarr-labs/homarr/commit/7a9e9a1e0de02a678787c2509e09c748d7a0042b)) -* **deps:** update dependency next-intl to v3.25.2 ([#1545](https://github.com/homarr-labs/homarr/issues/1545)) ([b6c28da](https://github.com/homarr-labs/homarr/commit/b6c28da32b0cdcfe181db8e698e9f28997cebc52)) -* **deps:** update dependency next-intl to v3.25.3 ([#1551](https://github.com/homarr-labs/homarr/issues/1551)) ([907c28c](https://github.com/homarr-labs/homarr/commit/907c28c945bc7e7ac2c600f7c7a04750ff7465d6)) -* **deps:** update dependency next-intl to v3.26.0 ([#1619](https://github.com/homarr-labs/homarr/issues/1619)) ([58008c1](https://github.com/homarr-labs/homarr/commit/58008c1e2fc9a20401f45288f3beedb80a466351)) -* **deps:** update dependency next-intl to v3.26.1 ([#1644](https://github.com/homarr-labs/homarr/issues/1644)) ([5194867](https://github.com/homarr-labs/homarr/commit/51948677fa1fd0b6ea7410cdbb6f6f77a1f87db0)) -* **deps:** update dependency node-cron to ^3.0.3 ([#309](https://github.com/homarr-labs/homarr/issues/309)) ([48f45d7](https://github.com/homarr-labs/homarr/commit/48f45d73775f0b872613e01edc3499a2a2f7c924)) -* **deps:** update dependency postcss-preset-mantine to ^1.13.0 ([#36](https://github.com/homarr-labs/homarr/issues/36)) ([d73e7a3](https://github.com/homarr-labs/homarr/commit/d73e7a3c3fc278e30f723a5d2b4bdedf667cc5ce)) -* **deps:** update dependency postcss-preset-mantine to ^1.14.4 ([#336](https://github.com/homarr-labs/homarr/issues/336)) ([49e45e8](https://github.com/homarr-labs/homarr/commit/49e45e8122147b2eeebc5ee025bdfd91e7cb4836)) -* **deps:** update dependency postcss-preset-mantine to ^1.15.0 ([#387](https://github.com/homarr-labs/homarr/issues/387)) ([84175e6](https://github.com/homarr-labs/homarr/commit/84175e6a7e4fb8ce3cbcb89ee4d713b6531d3ac0)) -* **deps:** update dependency postcss-preset-mantine to ^1.16.0 ([#827](https://github.com/homarr-labs/homarr/issues/827)) ([002d011](https://github.com/homarr-labs/homarr/commit/002d011b18ffa74f29d06a6bef3d08d6e997735d)) -* **deps:** update dependency postcss-preset-mantine to ^1.17.0 ([#843](https://github.com/homarr-labs/homarr/issues/843)) ([41e5760](https://github.com/homarr-labs/homarr/commit/41e576039f8400e671dd52362a6b2ba9ce605a9f)) -* **deps:** update dependency prettier to ^3.2.4 ([#37](https://github.com/homarr-labs/homarr/issues/37)) ([9aaec54](https://github.com/homarr-labs/homarr/commit/9aaec5495dfacbbf2a313d142e23394bf8c78d43)) -* **deps:** update dependency prettier to ^3.2.5 ([#53](https://github.com/homarr-labs/homarr/issues/53)) ([15f0801](https://github.com/homarr-labs/homarr/commit/15f08011a6c2e7fd7274bc28b9d559269cb03f7e)) -* **deps:** update dependency prettier to ^3.3.0 ([#594](https://github.com/homarr-labs/homarr/issues/594)) ([b1b839f](https://github.com/homarr-labs/homarr/commit/b1b839fcd866f0c157e14d59a47e0cdbeb1ff444)) -* **deps:** update dependency prettier to ^3.3.1 ([#623](https://github.com/homarr-labs/homarr/issues/623)) ([8f551aa](https://github.com/homarr-labs/homarr/commit/8f551aa4856065c3a7e1e7e763781863ed2db972)) -* **deps:** update dependency prettier to ^3.3.2 ([#656](https://github.com/homarr-labs/homarr/issues/656)) ([d69cda0](https://github.com/homarr-labs/homarr/commit/d69cda03136f29744b4935e28bdfc4dcb24424fb)) -* **deps:** update dependency prettier to ^3.3.3 ([#805](https://github.com/homarr-labs/homarr/issues/805)) ([66036b0](https://github.com/homarr-labs/homarr/commit/66036b08bcfecb5fb4e2e588bd74e935a387a34c)) -* **deps:** update dependency prettier to ^3.4.0 ([#1550](https://github.com/homarr-labs/homarr/issues/1550)) ([2e9b99d](https://github.com/homarr-labs/homarr/commit/2e9b99dff76e675a5e28ca22dddc467fe94a5f6d)) -* **deps:** update dependency prettier to ^3.4.1 ([#1554](https://github.com/homarr-labs/homarr/issues/1554)) ([27b8f65](https://github.com/homarr-labs/homarr/commit/27b8f65238eca00e6f51f681c4689199cae22728)) -* **deps:** update dependency prettier to ^3.4.2 ([#1602](https://github.com/homarr-labs/homarr/issues/1602)) ([bbec013](https://github.com/homarr-labs/homarr/commit/bbec01385f8ba609efe83712c61df4c0b483badb)) -* **deps:** update dependency react-error-boundary to ^4.1.0 ([#1304](https://github.com/homarr-labs/homarr/issues/1304)) ([9fa4bef](https://github.com/homarr-labs/homarr/commit/9fa4bef2a4a9edf68299f3095a60d4eaaf144f65)) -* **deps:** update dependency react-error-boundary to ^4.1.1 ([#1315](https://github.com/homarr-labs/homarr/issues/1315)) ([3b5082c](https://github.com/homarr-labs/homarr/commit/3b5082c107771ade24917da61b87321bfc40995d)) -* **deps:** update dependency react-error-boundary to ^4.1.2 ([#1334](https://github.com/homarr-labs/homarr/issues/1334)) ([98f1c33](https://github.com/homarr-labs/homarr/commit/98f1c333186c44f5f1e4bfc6452451edb990cbaa)) -* **deps:** update dependency react-simple-code-editor to ^0.14.0 ([#738](https://github.com/homarr-labs/homarr/issues/738)) ([d32075d](https://github.com/homarr-labs/homarr/commit/d32075d410af5111e4e33c09be7facdd0d44d196)) -* **deps:** update dependency react-simple-code-editor to ^0.14.1 ([#746](https://github.com/homarr-labs/homarr/issues/746)) ([9375738](https://github.com/homarr-labs/homarr/commit/9375738e0552357f53b52c1637732494f568f5a0)) -* **deps:** update dependency reflect-metadata to ^0.2.1 ([#182](https://github.com/homarr-labs/homarr/issues/182)) ([9ee96a1](https://github.com/homarr-labs/homarr/commit/9ee96a14628b3b450d45b07ad45863375b899cde)) -* **deps:** update dependency rimraf to v5 ([#186](https://github.com/homarr-labs/homarr/issues/186)) ([f4b93d1](https://github.com/homarr-labs/homarr/commit/f4b93d1eae4b28cb5929b30ea2a55c57bdac84be)) -* **deps:** update dependency rxjs to ^7.8.1 ([#181](https://github.com/homarr-labs/homarr/issues/181)) ([e1a98f7](https://github.com/homarr-labs/homarr/commit/e1a98f7fc05881c3b161f22463afbcf3b0b306b0)) -* **deps:** update dependency sass to ^1.71.0 ([#96](https://github.com/homarr-labs/homarr/issues/96)) ([9a60588](https://github.com/homarr-labs/homarr/commit/9a60588a031b262a06d4048804960bf7966ba1b5)) -* **deps:** update dependency sass to ^1.71.1 ([#148](https://github.com/homarr-labs/homarr/issues/148)) ([abc4a9a](https://github.com/homarr-labs/homarr/commit/abc4a9afbc7b61266907826da1f20077e98176f2)) -* **deps:** update dependency sass to ^1.72.0 ([#230](https://github.com/homarr-labs/homarr/issues/230)) ([4bab91f](https://github.com/homarr-labs/homarr/commit/4bab91f8deeb65678009edcbff31abe843269d44)) -* **deps:** update dependency sass to ^1.74.1 ([#306](https://github.com/homarr-labs/homarr/issues/306)) ([e68a2e5](https://github.com/homarr-labs/homarr/commit/e68a2e5813d857f1da8bd1ae15129fd323d98f52)) -* **deps:** update dependency sass to ^1.75.0 ([#347](https://github.com/homarr-labs/homarr/issues/347)) ([0cc5225](https://github.com/homarr-labs/homarr/commit/0cc5225e32b18cf02378836bc4142663c68aa82d)) -* **deps:** update dependency sass to ^1.76.0 ([#410](https://github.com/homarr-labs/homarr/issues/410)) ([e556bf3](https://github.com/homarr-labs/homarr/commit/e556bf3e6617df664897037cfe6d223e56a8262a)) -* **deps:** update dependency sass to ^1.77.0 ([#451](https://github.com/homarr-labs/homarr/issues/451)) ([3ae96d9](https://github.com/homarr-labs/homarr/commit/3ae96d94a20797f0b4ec5ff22e4649a0fd497748)) -* **deps:** update dependency sass to ^1.77.1 ([#469](https://github.com/homarr-labs/homarr/issues/469)) ([cb6f754](https://github.com/homarr-labs/homarr/commit/cb6f754492b737b70f3db614efd2dfaea49daca9)) -* **deps:** update dependency sass to ^1.77.2 ([#506](https://github.com/homarr-labs/homarr/issues/506)) ([7664b00](https://github.com/homarr-labs/homarr/commit/7664b00be00dd134c130bbb6ffb438155d333553)) -* **deps:** update dependency sass to ^1.77.3 ([#579](https://github.com/homarr-labs/homarr/issues/579)) ([169feca](https://github.com/homarr-labs/homarr/commit/169fecaba1645f0313e730de0e0caff0793cd4c4)) -* **deps:** update dependency sass to ^1.77.4 ([#586](https://github.com/homarr-labs/homarr/issues/586)) ([79d977c](https://github.com/homarr-labs/homarr/commit/79d977c0085e8fc600d1806a566ac17e763dfc48)) -* **deps:** update dependency sass to ^1.77.5 ([#659](https://github.com/homarr-labs/homarr/issues/659)) ([f5f6388](https://github.com/homarr-labs/homarr/commit/f5f63883612c320d4a73cb5bf9435b30c6071537)) -* **deps:** update dependency sass to ^1.77.6 ([#683](https://github.com/homarr-labs/homarr/issues/683)) ([4526fa6](https://github.com/homarr-labs/homarr/commit/4526fa6fc488aad0b54093e47e9064d771473d30)) -* **deps:** update dependency sass to ^1.77.7 ([#773](https://github.com/homarr-labs/homarr/issues/773)) ([dcb9cfa](https://github.com/homarr-labs/homarr/commit/dcb9cfaf295c3aeb30181ea5c7c7e404785e6763)) -* **deps:** update dependency sass to ^1.77.8 ([#783](https://github.com/homarr-labs/homarr/issues/783)) ([ec4b3a6](https://github.com/homarr-labs/homarr/commit/ec4b3a64081bd5d94d4e728dcd7562f708cf0c5f)) -* **deps:** update dependency sass to ^1.78.0 ([#1064](https://github.com/homarr-labs/homarr/issues/1064)) ([3d1b626](https://github.com/homarr-labs/homarr/commit/3d1b626baa736a6a41b4b35f32ef44d948b2f309)) -* **deps:** update dependency sass to ^1.79.0 ([#1147](https://github.com/homarr-labs/homarr/issues/1147)) ([f1d5dd0](https://github.com/homarr-labs/homarr/commit/f1d5dd03cbea8ea569d21f94b95e31d66cb03adc)) -* **deps:** update dependency sass to ^1.79.1 ([#1148](https://github.com/homarr-labs/homarr/issues/1148)) ([3cb1221](https://github.com/homarr-labs/homarr/commit/3cb1221038715ae8d771c3a6622f666ae9493aef)) -* **deps:** update dependency sass to ^1.79.2 ([#1153](https://github.com/homarr-labs/homarr/issues/1153)) ([a028251](https://github.com/homarr-labs/homarr/commit/a02825113a17aa3142ced5a726058bd6168beee1)) -* **deps:** update dependency sass to ^1.79.3 ([#1159](https://github.com/homarr-labs/homarr/issues/1159)) ([612a158](https://github.com/homarr-labs/homarr/commit/612a15810b671cedeb9fefd7902692a466394e3a)) -* **deps:** update dependency sass to ^1.79.4 ([#1198](https://github.com/homarr-labs/homarr/issues/1198)) ([9af01bb](https://github.com/homarr-labs/homarr/commit/9af01bb68006af39f009e4a0605cc0a7f42bcba5)) -* **deps:** update dependency sass to ^1.79.5 ([#1279](https://github.com/homarr-labs/homarr/issues/1279)) ([99ddd92](https://github.com/homarr-labs/homarr/commit/99ddd9214edb8841a1c969af9c1d1f91643e6df8)) -* **deps:** update dependency sass to ^1.79.6 ([#1312](https://github.com/homarr-labs/homarr/issues/1312)) ([0c134dd](https://github.com/homarr-labs/homarr/commit/0c134dde6e9b472cd5cd32dfebdc9146e4fb64db)) -* **deps:** update dependency sass to ^1.80.1 ([#1314](https://github.com/homarr-labs/homarr/issues/1314)) ([a44c907](https://github.com/homarr-labs/homarr/commit/a44c90774547d9ad6c4911c12f21ffa98b3694e5)) -* **deps:** update dependency sass to ^1.80.2 ([#1319](https://github.com/homarr-labs/homarr/issues/1319)) ([3781fe5](https://github.com/homarr-labs/homarr/commit/3781fe5cf876d36aacc7bb4f373ea7973e4e57f7)) -* **deps:** update dependency sass to ^1.80.3 ([#1331](https://github.com/homarr-labs/homarr/issues/1331)) ([e46bf5d](https://github.com/homarr-labs/homarr/commit/e46bf5d24811aa9c8e8092d6635e67f665123721)) -* **deps:** update dependency sass to ^1.80.4 ([#1366](https://github.com/homarr-labs/homarr/issues/1366)) ([2bac28a](https://github.com/homarr-labs/homarr/commit/2bac28a50a843bdf2bdefdc9bad4a07af2fa92b9)) -* **deps:** update dependency sass to ^1.80.5 ([#1388](https://github.com/homarr-labs/homarr/issues/1388)) ([74a8495](https://github.com/homarr-labs/homarr/commit/74a84959034ba1383716e06a7ce73d2f6397e40f)) -* **deps:** update dependency sass to ^1.80.6 ([#1399](https://github.com/homarr-labs/homarr/issues/1399)) ([d908b3f](https://github.com/homarr-labs/homarr/commit/d908b3f6769fe5add91e605f16dc6c5f89d96373)) -* **deps:** update dependency sass to ^1.80.7 ([#1472](https://github.com/homarr-labs/homarr/issues/1472)) ([9bd0e0f](https://github.com/homarr-labs/homarr/commit/9bd0e0f4ee49a3e6ed5245312c5fb77ff8dc48a8)) -* **deps:** update dependency sass to ^1.81.0 ([#1486](https://github.com/homarr-labs/homarr/issues/1486)) ([908d0bb](https://github.com/homarr-labs/homarr/commit/908d0bbc5066e3ee312c89025e3bd60c224094f3)) -* **deps:** update dependency sass to ^1.81.1 ([#1589](https://github.com/homarr-labs/homarr/issues/1589)) ([57bbd43](https://github.com/homarr-labs/homarr/commit/57bbd43c74d29272ac0fa3667965fd78decc4e6b)) -* **deps:** update dependency sass to ^1.82.0 ([#1600](https://github.com/homarr-labs/homarr/issues/1600)) ([825b1a3](https://github.com/homarr-labs/homarr/commit/825b1a3643266049ddf5a6cd53defa47e78d8cc8)) -* **deps:** update dependency sass to ^1.83.0 ([#1650](https://github.com/homarr-labs/homarr/issues/1650)) ([0bd8e2c](https://github.com/homarr-labs/homarr/commit/0bd8e2c08516fabd9bd6c3d4649abb4f47d7bc13)) -* **deps:** update dependency sharp to ^0.33.3 ([#260](https://github.com/homarr-labs/homarr/issues/260)) ([87808c1](https://github.com/homarr-labs/homarr/commit/87808c1349f520a4d2160a11ef49c11a91665ea9)) -* **deps:** update dependency superjson to v2.2.2 ([#1618](https://github.com/homarr-labs/homarr/issues/1618)) ([aaa3e7c](https://github.com/homarr-labs/homarr/commit/aaa3e7ce0c58f644db283e5c256779b5c4fb09bb)) -* **deps:** update dependency swagger-ui-react to ^5.17.14 ([#1031](https://github.com/homarr-labs/homarr/issues/1031)) ([6351bf7](https://github.com/homarr-labs/homarr/commit/6351bf78ff902948218b50d568e7d7425a27b2ad)) -* **deps:** update dependency swagger-ui-react to ^5.18.0 ([#1428](https://github.com/homarr-labs/homarr/issues/1428)) ([4643c0f](https://github.com/homarr-labs/homarr/commit/4643c0f004425f54d96871755aec1e0a6cfa30b2)) -* **deps:** update dependency swagger-ui-react to ^5.18.1 ([#1432](https://github.com/homarr-labs/homarr/issues/1432)) ([0809d5a](https://github.com/homarr-labs/homarr/commit/0809d5aa747e4937ca1890ee04972b99e87f26bc)) -* **deps:** update dependency swagger-ui-react to ^5.18.2 ([#1442](https://github.com/homarr-labs/homarr/issues/1442)) ([2357435](https://github.com/homarr-labs/homarr/commit/23574359f0ed180d512810773b48bd046139ae66)) -* **deps:** update dependency tldts to ^6.1.38 ([#931](https://github.com/homarr-labs/homarr/issues/931)) ([a2be781](https://github.com/homarr-labs/homarr/commit/a2be781f81465b32543b28dee7df8f1b0290f12a)) -* **deps:** update dependency tldts to ^6.1.39 ([#966](https://github.com/homarr-labs/homarr/issues/966)) ([4b39c16](https://github.com/homarr-labs/homarr/commit/4b39c16d256656998ab817f58cdaf13fe81dc044)) -* **deps:** update dependency tldts to ^6.1.40 ([#996](https://github.com/homarr-labs/homarr/issues/996)) ([f5c380f](https://github.com/homarr-labs/homarr/commit/f5c380f75b30bc45573a4aaef7fe926c3a71011d)) -* **deps:** update dependency tldts to ^6.1.41 ([#1011](https://github.com/homarr-labs/homarr/issues/1011)) ([7742d5f](https://github.com/homarr-labs/homarr/commit/7742d5f5b4b37ab2fb1e6cdc6a5c25c5caca1a5d)) -* **deps:** update dependency tldts to ^6.1.42 ([#1069](https://github.com/homarr-labs/homarr/issues/1069)) ([247de55](https://github.com/homarr-labs/homarr/commit/247de555cec15ae8f6fac0fd5b2abc90382b1786)) -* **deps:** update dependency tldts to ^6.1.43 ([#1080](https://github.com/homarr-labs/homarr/issues/1080)) ([fc1bff2](https://github.com/homarr-labs/homarr/commit/fc1bff2110e1a4c1fa1d48ba4a42ee4d3ad5b469)) -* **deps:** update dependency tldts to ^6.1.44 ([#1095](https://github.com/homarr-labs/homarr/issues/1095)) ([18347fe](https://github.com/homarr-labs/homarr/commit/18347fef3bc355d42e902e76e0caf02ee855df9a)) -* **deps:** update dependency tldts to ^6.1.45 ([#1121](https://github.com/homarr-labs/homarr/issues/1121)) ([7059a3d](https://github.com/homarr-labs/homarr/commit/7059a3d88f73ddceb70d037bb0f362fe50bda225)) -* **deps:** update dependency tldts to ^6.1.46 ([#1128](https://github.com/homarr-labs/homarr/issues/1128)) ([aca5c27](https://github.com/homarr-labs/homarr/commit/aca5c279b5360fdacd3f5dc77fd58ce41c343e5f)) -* **deps:** update dependency tldts to ^6.1.47 ([#1152](https://github.com/homarr-labs/homarr/issues/1152)) ([aa2d440](https://github.com/homarr-labs/homarr/commit/aa2d440acbbe92d088b9ba9bdf2ebbc5b2b642c1)) -* **deps:** update dependency tldts to ^6.1.48 ([#1190](https://github.com/homarr-labs/homarr/issues/1190)) ([f6c7271](https://github.com/homarr-labs/homarr/commit/f6c7271fb43324f7e9eb0f8cc7ae5646f516b8b2)) -* **deps:** update dependency tldts to ^6.1.49 ([#1216](https://github.com/homarr-labs/homarr/issues/1216)) ([2f3619b](https://github.com/homarr-labs/homarr/commit/2f3619b68dc9f3c20a229b896f8b3c4b91e5c0a7)) -* **deps:** update dependency tldts to ^6.1.50 ([#1228](https://github.com/homarr-labs/homarr/issues/1228)) ([17572bc](https://github.com/homarr-labs/homarr/commit/17572bc602a7b1e42def413f1a7668cf1280170b)) -* **deps:** update dependency tldts to ^6.1.51 ([#1288](https://github.com/homarr-labs/homarr/issues/1288)) ([0fadc28](https://github.com/homarr-labs/homarr/commit/0fadc28a125aa68e6d6d96a17c7c86012d13a288)) -* **deps:** update dependency tldts to ^6.1.52 ([#1307](https://github.com/homarr-labs/homarr/issues/1307)) ([c4ec4f3](https://github.com/homarr-labs/homarr/commit/c4ec4f3c66078b0c94bb049334e32e31e41936ac)) -* **deps:** update dependency tldts to ^6.1.53 ([#1351](https://github.com/homarr-labs/homarr/issues/1351)) ([a8c36f3](https://github.com/homarr-labs/homarr/commit/a8c36f35c3e5a9342fe932832342f76855c8d4d4)) -* **deps:** update dependency tldts to ^6.1.54 ([#1353](https://github.com/homarr-labs/homarr/issues/1353)) ([e062ea1](https://github.com/homarr-labs/homarr/commit/e062ea150782b73d0a86748fef43355a46df2244)) -* **deps:** update dependency tldts to ^6.1.55 ([#1369](https://github.com/homarr-labs/homarr/issues/1369)) ([3a6e957](https://github.com/homarr-labs/homarr/commit/3a6e957710c08e64cc7b42ecca2bf5069cceb896)) -* **deps:** update dependency tldts to ^6.1.56 ([#1375](https://github.com/homarr-labs/homarr/issues/1375)) ([f8c21f6](https://github.com/homarr-labs/homarr/commit/f8c21f6000e8d8843e43afaf09713f958b318f0f)) -* **deps:** update dependency tldts to ^6.1.57 ([#1386](https://github.com/homarr-labs/homarr/issues/1386)) ([8da1dd0](https://github.com/homarr-labs/homarr/commit/8da1dd0d5f95e1d15f1115a8518992935e89059c)) -* **deps:** update dependency tldts to ^6.1.58 ([#1400](https://github.com/homarr-labs/homarr/issues/1400)) ([baabf71](https://github.com/homarr-labs/homarr/commit/baabf717078caba315f39a1d429fc0ba92f3d167)) -* **deps:** update dependency tldts to ^6.1.59 ([#1447](https://github.com/homarr-labs/homarr/issues/1447)) ([2a7d648](https://github.com/homarr-labs/homarr/commit/2a7d64804975797863b9a4a7b03d7ab10f4d8a2b)) -* **deps:** update dependency tldts to ^6.1.60 ([#1460](https://github.com/homarr-labs/homarr/issues/1460)) ([4ab40c6](https://github.com/homarr-labs/homarr/commit/4ab40c6fa8e13af66a0a3b14e3c03955ff98f2c7)) -* **deps:** update dependency tldts to ^6.1.61 ([#1474](https://github.com/homarr-labs/homarr/issues/1474)) ([3ca97fe](https://github.com/homarr-labs/homarr/commit/3ca97fef0b984e06461d92f16564bd787ff53150)) -* **deps:** update dependency tldts to ^6.1.62 ([#1514](https://github.com/homarr-labs/homarr/issues/1514)) ([a2a65ab](https://github.com/homarr-labs/homarr/commit/a2a65abd3d451104d59e8eb55ad74d83f6956784)) -* **deps:** update dependency tldts to ^6.1.63 ([#1519](https://github.com/homarr-labs/homarr/issues/1519)) ([86ae346](https://github.com/homarr-labs/homarr/commit/86ae3469795378f626a2b6aa5eaaf6cd38c874d9)) -* **deps:** update dependency tldts to ^6.1.64 ([#1529](https://github.com/homarr-labs/homarr/issues/1529)) ([cdfb61f](https://github.com/homarr-labs/homarr/commit/cdfb61fb28f6a9adc8658187a41e0cfb3fdc1a8f)) -* **deps:** update dependency tldts to ^6.1.65 ([#1575](https://github.com/homarr-labs/homarr/issues/1575)) ([fb4a19b](https://github.com/homarr-labs/homarr/commit/fb4a19bfe457d1d815e9b72a85c8ea742b950a69)) -* **deps:** update dependency tldts to ^6.1.66 ([#1625](https://github.com/homarr-labs/homarr/issues/1625)) ([6a79d01](https://github.com/homarr-labs/homarr/commit/6a79d01d79b613dccf2a3ffe39a7271bc1931812)) -* **deps:** update dependency tldts to ^6.1.67 ([#1648](https://github.com/homarr-labs/homarr/issues/1648)) ([75c0f70](https://github.com/homarr-labs/homarr/commit/75c0f70ef6159bbada6770a49cfba59f4470fcfc)) -* **deps:** update dependency tldts to ^6.1.68 ([#1656](https://github.com/homarr-labs/homarr/issues/1656)) ([3347886](https://github.com/homarr-labs/homarr/commit/3347886f1e6754f9dd0f8a9975c51bf61b0d3f59)) -* **deps:** update dependency trpc-swagger to ^1.2.6 ([#1032](https://github.com/homarr-labs/homarr/issues/1032)) ([e60e4a4](https://github.com/homarr-labs/homarr/commit/e60e4a49f84ec46f47bdaa830cea5ddeaf7ba8a3)) -* **deps:** update dependency trpc-to-openapi to ^2.0.3 ([#1576](https://github.com/homarr-labs/homarr/issues/1576)) ([0ab9d0b](https://github.com/homarr-labs/homarr/commit/0ab9d0bd694d2cb66de45bcfd0010ecc2b226cb7)) -* **deps:** update dependency trpc-to-openapi to ^2.0.4 ([#1578](https://github.com/homarr-labs/homarr/issues/1578)) ([3ffdc05](https://github.com/homarr-labs/homarr/commit/3ffdc054429a6ec6a3ddc14b9d1ac97602eb0f15)) -* **deps:** update dependency trpc-to-openapi to ^2.1.0 ([#1579](https://github.com/homarr-labs/homarr/issues/1579)) ([7343bdd](https://github.com/homarr-labs/homarr/commit/7343bdde1304f655149c257319996047ddd8a530)) -* **deps:** update dependency typescript-eslint to ^7.13.0 ([#653](https://github.com/homarr-labs/homarr/issues/653)) ([1949885](https://github.com/homarr-labs/homarr/commit/19498854fc1da6fdb9ec29f3ecb7a113a6b2a33e)) -* **deps:** update dependency typescript-eslint to ^7.13.1 ([#681](https://github.com/homarr-labs/homarr/issues/681)) ([e9d6120](https://github.com/homarr-labs/homarr/commit/e9d612051d043253d7c41bafdd4be82949564e43)) -* **deps:** update dependency typescript-eslint to ^7.14.1 ([#709](https://github.com/homarr-labs/homarr/issues/709)) ([196ac34](https://github.com/homarr-labs/homarr/commit/196ac340a16528196e1ca405147c83ed31f8337a)) -* **deps:** update dependency typescript-eslint to ^7.15.0 ([#732](https://github.com/homarr-labs/homarr/issues/732)) ([0990e4b](https://github.com/homarr-labs/homarr/commit/0990e4b552e3c65ee8802e11d2bd3adceab24009)) -* **deps:** update dependency typescript-eslint to ^7.16.0 ([#762](https://github.com/homarr-labs/homarr/issues/762)) ([2c197bc](https://github.com/homarr-labs/homarr/commit/2c197bc59bab428db4990a7c99b1dcdd8b372617)) -* **deps:** update dependency typescript-eslint to ^7.16.1 ([#814](https://github.com/homarr-labs/homarr/issues/814)) ([56c6be5](https://github.com/homarr-labs/homarr/commit/56c6be523db5219b97bafbc53d63360d019fefcc)) -* **deps:** update dependency typescript-eslint to ^7.17.0 ([#855](https://github.com/homarr-labs/homarr/issues/855)) ([b2860ff](https://github.com/homarr-labs/homarr/commit/b2860ffbd3e29ef21021b2416d0c26f0e3b6c54c)) -* **deps:** update dependency typescript-eslint to ^7.18.0 ([#886](https://github.com/homarr-labs/homarr/issues/886)) ([1a24ba6](https://github.com/homarr-labs/homarr/commit/1a24ba6ef73eb058f19f31140cff5198311eba08)) -* **deps:** update dependency typescript-eslint to ^8.0.1 ([#921](https://github.com/homarr-labs/homarr/issues/921)) ([c69483a](https://github.com/homarr-labs/homarr/commit/c69483a12c14ab284dd3cacd0e31d194dcc48cfc)) -* **deps:** update dependency typescript-eslint to ^8.1.0 ([#968](https://github.com/homarr-labs/homarr/issues/968)) ([b9f048c](https://github.com/homarr-labs/homarr/commit/b9f048c57d9f2618f8059862a800259246caa2f8)) -* **deps:** update dependency typescript-eslint to ^8.10.0 ([#1317](https://github.com/homarr-labs/homarr/issues/1317)) ([a231a2d](https://github.com/homarr-labs/homarr/commit/a231a2da6cd42e355fff52b9cf718f44c658cfff)) -* **deps:** update dependency typescript-eslint to ^8.11.0 ([#1346](https://github.com/homarr-labs/homarr/issues/1346)) ([a005ead](https://github.com/homarr-labs/homarr/commit/a005ead158ca1f058605b2a3198af438c7039109)) -* **deps:** update dependency typescript-eslint to ^8.12.2 ([#1381](https://github.com/homarr-labs/homarr/issues/1381)) ([17401d1](https://github.com/homarr-labs/homarr/commit/17401d1d7284088bc5fdc0e037dc72f75e8abd7e)) -* **deps:** update dependency typescript-eslint to ^8.13.0 ([#1420](https://github.com/homarr-labs/homarr/issues/1420)) ([97eb4c5](https://github.com/homarr-labs/homarr/commit/97eb4c54e2f7f9cfc0467b0236b4a2db87bc546c)) -* **deps:** update dependency typescript-eslint to ^8.14.0 ([#1465](https://github.com/homarr-labs/homarr/issues/1465)) ([53acff9](https://github.com/homarr-labs/homarr/commit/53acff91430b9889c90ab9e1a35bce792baa4dd9)) -* **deps:** update dependency typescript-eslint to ^8.15.0 ([#1497](https://github.com/homarr-labs/homarr/issues/1497)) ([b887713](https://github.com/homarr-labs/homarr/commit/b8877137ac05a08c5647d0ba785439d364d9bafb)) -* **deps:** update dependency typescript-eslint to ^8.16.0 ([#1544](https://github.com/homarr-labs/homarr/issues/1544)) ([4df6006](https://github.com/homarr-labs/homarr/commit/4df6006f0e487028fffc3f65d4fa20b2f252e612)) -* **deps:** update dependency typescript-eslint to ^8.17.0 ([#1582](https://github.com/homarr-labs/homarr/issues/1582)) ([5ecf93a](https://github.com/homarr-labs/homarr/commit/5ecf93a317f8face4d47d255c83c7f197eccdb92)) -* **deps:** update dependency typescript-eslint to ^8.18.0 ([#1634](https://github.com/homarr-labs/homarr/issues/1634)) ([3bee3fe](https://github.com/homarr-labs/homarr/commit/3bee3fe3f64c274c73f698cd5f8850f4496c35bd)) -* **deps:** update dependency typescript-eslint to ^8.18.1 ([#1673](https://github.com/homarr-labs/homarr/issues/1673)) ([613d1f9](https://github.com/homarr-labs/homarr/commit/613d1f966282886c6a85bc400dfedbc4bdac906c)) -* **deps:** update dependency typescript-eslint to ^8.2.0 ([#999](https://github.com/homarr-labs/homarr/issues/999)) ([0585187](https://github.com/homarr-labs/homarr/commit/058518710e02ea47bc6e221cab43604d70b16ab5)) -* **deps:** update dependency typescript-eslint to ^8.3.0 ([#1036](https://github.com/homarr-labs/homarr/issues/1036)) ([b0e2692](https://github.com/homarr-labs/homarr/commit/b0e269209e67db1569effd72d1560c0414574654)) -* **deps:** update dependency typescript-eslint to ^8.4.0 ([#1058](https://github.com/homarr-labs/homarr/issues/1058)) ([1d23667](https://github.com/homarr-labs/homarr/commit/1d236678b334c35358a3d95e75d81ad16657afca)) -* **deps:** update dependency typescript-eslint to ^8.5.0 ([#1089](https://github.com/homarr-labs/homarr/issues/1089)) ([c844eb2](https://github.com/homarr-labs/homarr/commit/c844eb2a224c473dd42df4a1ffc9a74bd533e0e2)) -* **deps:** update dependency typescript-eslint to ^8.6.0 ([#1136](https://github.com/homarr-labs/homarr/issues/1136)) ([3ef478c](https://github.com/homarr-labs/homarr/commit/3ef478c53ab56c50b1ee1d71eebfcc32a4b8828a)) -* **deps:** update dependency typescript-eslint to ^8.7.0 ([#1165](https://github.com/homarr-labs/homarr/issues/1165)) ([6aa5adf](https://github.com/homarr-labs/homarr/commit/6aa5adf5b0602dc3c7de75d9fc88c751d77ceed9)) -* **deps:** update dependency typescript-eslint to ^8.8.0 ([#1207](https://github.com/homarr-labs/homarr/issues/1207)) ([233033f](https://github.com/homarr-labs/homarr/commit/233033f1ce2c1348287fd4f37cf27e53ca317868)) -* **deps:** update dependency typescript-eslint to ^8.8.1 ([#1266](https://github.com/homarr-labs/homarr/issues/1266)) ([4d51e3b](https://github.com/homarr-labs/homarr/commit/4d51e3b3442860fa43ef2766681aaf2bce771d3f)) -* **deps:** update dependency typescript-eslint to ^8.9.0 ([#1292](https://github.com/homarr-labs/homarr/issues/1292)) ([65b1ae2](https://github.com/homarr-labs/homarr/commit/65b1ae26d15d29820f3feb097f6ccf43e89b5e22)) -* **deps:** update dependency typescript-eslint to v8 ([#896](https://github.com/homarr-labs/homarr/issues/896)) ([a9a4602](https://github.com/homarr-labs/homarr/commit/a9a46024e2a1a130bf0f2d9f87d1fa7caa35823b)) -* **deps:** update dependency undici to v6.19.2 ([#691](https://github.com/homarr-labs/homarr/issues/691)) ([541d745](https://github.com/homarr-labs/homarr/commit/541d745cea4d615d88f0af454e39de61cfa104cf)) -* **deps:** update dependency undici to v6.19.3 ([#850](https://github.com/homarr-labs/homarr/issues/850)) ([1098725](https://github.com/homarr-labs/homarr/commit/1098725bd1f010056e40eb00db40e19011ef158a)) -* **deps:** update dependency undici to v6.19.4 ([#854](https://github.com/homarr-labs/homarr/issues/854)) ([0c7264b](https://github.com/homarr-labs/homarr/commit/0c7264bc52c80794a74c9836ae9f9d56df6fc52c)) -* **deps:** update dependency undici to v6.19.5 ([#893](https://github.com/homarr-labs/homarr/issues/893)) ([5256853](https://github.com/homarr-labs/homarr/commit/525685335103289eb06606b04610dcec1ecbf0a1)) -* **deps:** update dependency undici to v6.19.7 ([#950](https://github.com/homarr-labs/homarr/issues/950)) ([3be1100](https://github.com/homarr-labs/homarr/commit/3be110097bcb500ef79d88b28b626bcf15329ed3)) -* **deps:** update dependency undici to v6.19.8 ([#998](https://github.com/homarr-labs/homarr/issues/998)) ([9666440](https://github.com/homarr-labs/homarr/commit/9666440e803ce2275ef3d90ebbc37c00592b8372)) -* **deps:** update dependency undici to v6.20.0 ([#1275](https://github.com/homarr-labs/homarr/issues/1275)) ([c7b2261](https://github.com/homarr-labs/homarr/commit/c7b226142feaa3fb0651cdf8473d714643e8144d)) -* **deps:** update dependency undici to v6.20.1 ([#1291](https://github.com/homarr-labs/homarr/issues/1291)) ([85cf101](https://github.com/homarr-labs/homarr/commit/85cf101043a7dbcd9b3a956eb8b7fffb6d3712e3)) -* **deps:** update dependency undici to v6.21.0 ([#1477](https://github.com/homarr-labs/homarr/issues/1477)) ([07f89af](https://github.com/homarr-labs/homarr/commit/07f89afea8eb47894c1ef94e8f62f8fb8c45ebe8)) -* **deps:** update dependency undici to v7 ([#1560](https://github.com/homarr-labs/homarr/issues/1560)) ([44e2105](https://github.com/homarr-labs/homarr/commit/44e2105a8c9d7cc746f0424bf1f718f426dbea93)) -* **deps:** update dependency undici to v7.1.0 ([#1593](https://github.com/homarr-labs/homarr/issues/1593)) ([fb1f000](https://github.com/homarr-labs/homarr/commit/fb1f0003e60d21713968bc6ff4ec1ce85bc54388)) -* **deps:** update dependency undici to v7.1.1 ([#1674](https://github.com/homarr-labs/homarr/issues/1674)) ([02777d1](https://github.com/homarr-labs/homarr/commit/02777d104c5da555337b3b1494a906488fcc7d64)) -* **deps:** update dependency video.js to ^8.12.0 ([#400](https://github.com/homarr-labs/homarr/issues/400)) ([fc1360d](https://github.com/homarr-labs/homarr/commit/fc1360d6bb9512be8ca1f91e8624d2b9b45d1175)) -* **deps:** update dependency video.js to ^8.16.1 ([#772](https://github.com/homarr-labs/homarr/issues/772)) ([8085e72](https://github.com/homarr-labs/homarr/commit/8085e72cf487a1a757bd07f85f46280f2e677f9f)) -* **deps:** update dependency video.js to ^8.17.1 ([#884](https://github.com/homarr-labs/homarr/issues/884)) ([bce73bc](https://github.com/homarr-labs/homarr/commit/bce73bc38f19b5382f0ab233eac667dd926c27a3)) -* **deps:** update dependency video.js to ^8.17.2 ([#917](https://github.com/homarr-labs/homarr/issues/917)) ([796261c](https://github.com/homarr-labs/homarr/commit/796261c5f5f1fa2b02ce3d9ef338a5196d90ec07)) -* **deps:** update dependency video.js to ^8.17.3 ([#971](https://github.com/homarr-labs/homarr/issues/971)) ([0472594](https://github.com/homarr-labs/homarr/commit/04725942eeca3e4c535c6773044eea1b2dc68a33)) -* **deps:** update dependency video.js to ^8.17.4 ([#1099](https://github.com/homarr-labs/homarr/issues/1099)) ([8c9bb6e](https://github.com/homarr-labs/homarr/commit/8c9bb6e5d5eb61f5f7d60aa38c44c94675ab8202)) -* **deps:** update dependency video.js to ^8.18.1 ([#1259](https://github.com/homarr-labs/homarr/issues/1259)) ([ea84b1c](https://github.com/homarr-labs/homarr/commit/ea84b1c372efc40c4c48bf18347c734291a95997)) -* **deps:** update dependency video.js to ^8.19.1 ([#1370](https://github.com/homarr-labs/homarr/issues/1370)) ([4985bd8](https://github.com/homarr-labs/homarr/commit/4985bd8f9123b629dc9bba3c6bb40eaeab96cf87)) -* **deps:** update dependency video.js to ^8.20.0 ([#1561](https://github.com/homarr-labs/homarr/issues/1561)) ([9f98290](https://github.com/homarr-labs/homarr/commit/9f982906f25b042443ac57e8a46ccf98aca5731d)) -* **deps:** update dependency video.js to ^8.21.0 ([#1617](https://github.com/homarr-labs/homarr/issues/1617)) ([5c11a95](https://github.com/homarr-labs/homarr/commit/5c11a95ddcb8e31fbb1c1156a24a89f04f7c22b1)) -* **deps:** update dependency vite to ^5.2.3 ([#253](https://github.com/homarr-labs/homarr/issues/253)) ([7214df3](https://github.com/homarr-labs/homarr/commit/7214df3e442bb8dfc588b1470ed5cef89636643e)) -* **deps:** update dependency vite to ^5.2.5 ([#259](https://github.com/homarr-labs/homarr/issues/259)) ([8d40f54](https://github.com/homarr-labs/homarr/commit/8d40f54d7d1e350f1cd274de493fbe003eee2641)) -* **deps:** update dependency vite to ^5.2.6 ([#262](https://github.com/homarr-labs/homarr/issues/262)) ([36073db](https://github.com/homarr-labs/homarr/commit/36073dbc5ee404379e8ad165a53c2f703642b07a)) -* **deps:** update dependency winston to v3.12.0 ([#188](https://github.com/homarr-labs/homarr/issues/188)) ([fde6d66](https://github.com/homarr-labs/homarr/commit/fde6d6601d8a19b95896ccd8cd9654c48b1f6c48)) -* **deps:** update dependency winston to v3.13.0 ([#263](https://github.com/homarr-labs/homarr/issues/263)) ([724b348](https://github.com/homarr-labs/homarr/commit/724b3481063c028465af08127fb419b0551bb455)) -* **deps:** update dependency winston to v3.13.1 ([#781](https://github.com/homarr-labs/homarr/issues/781)) ([5382b19](https://github.com/homarr-labs/homarr/commit/5382b1999fd3d6ec3e6e043fbde5bd68a93f0e2d)) -* **deps:** update dependency winston to v3.14.0 ([#935](https://github.com/homarr-labs/homarr/issues/935)) ([ac4b4ed](https://github.com/homarr-labs/homarr/commit/ac4b4ed9cf5fc815dd83dce5e3f9608b4aac07af)) -* **deps:** update dependency winston to v3.14.1 ([#941](https://github.com/homarr-labs/homarr/issues/941)) ([db9c200](https://github.com/homarr-labs/homarr/commit/db9c200f890c70be6163b451e30f8950b676c2a1)) -* **deps:** update dependency winston to v3.14.2 ([#979](https://github.com/homarr-labs/homarr/issues/979)) ([b9bcc1d](https://github.com/homarr-labs/homarr/commit/b9bcc1d23aa20bf665c0fb13ec14f8eed0f6516e)) -* **deps:** update dependency winston to v3.15.0 ([#1245](https://github.com/homarr-labs/homarr/issues/1245)) ([20e6399](https://github.com/homarr-labs/homarr/commit/20e6399d5e493158b7c0fb9370e9287075d315da)) -* **deps:** update dependency winston to v3.16.0 ([#1398](https://github.com/homarr-labs/homarr/issues/1398)) ([02ddb1c](https://github.com/homarr-labs/homarr/commit/02ddb1c9c6d15e4965c93935ff7887f90bff05a4)) -* **deps:** update dependency winston to v3.17.0 ([#1457](https://github.com/homarr-labs/homarr/issues/1457)) ([fc4cddc](https://github.com/homarr-labs/homarr/commit/fc4cddcbac74122e652d5409c875694ae11dc78a)) -* **deps:** update dependency ws to ^8.17.0 ([#392](https://github.com/homarr-labs/homarr/issues/392)) ([55822ee](https://github.com/homarr-labs/homarr/commit/55822ee7a51b4f907ed5be3b8202c60d07dce506)) -* **deps:** update dependency ws to ^8.17.1 ([#676](https://github.com/homarr-labs/homarr/issues/676)) ([0d14bad](https://github.com/homarr-labs/homarr/commit/0d14bad10bc45b50e0d3551c071f1ec62c9b7403)) -* **deps:** update dependency ws to ^8.18.0 ([#740](https://github.com/homarr-labs/homarr/issues/740)) ([1dd509a](https://github.com/homarr-labs/homarr/commit/1dd509a40fb9090ba88a0d8e1a67baf58b244cd9)) -* **deps:** update dependency zod to ^3.22.5 ([#361](https://github.com/homarr-labs/homarr/issues/361)) ([cb2b934](https://github.com/homarr-labs/homarr/commit/cb2b934c83c3464ff71bd9dff3be9742e975ef8c)) -* **deps:** update dependency zod to ^3.23.4 ([#373](https://github.com/homarr-labs/homarr/issues/373)) ([392a185](https://github.com/homarr-labs/homarr/commit/392a18564045ab2ea68c694192f771234e40b90c)) -* **deps:** update dependency zod to ^3.23.5 ([#399](https://github.com/homarr-labs/homarr/issues/399)) ([56388eb](https://github.com/homarr-labs/homarr/commit/56388eb8ef452e1dae0ca9c0c68ed6a2ff6fbbd1)) -* **deps:** update dependency zod to ^3.23.6 ([#424](https://github.com/homarr-labs/homarr/issues/424)) ([11c20ce](https://github.com/homarr-labs/homarr/commit/11c20ce711e564bc76d835ed839dbe7dfe332301)) -* **deps:** update dependency zod to ^3.23.7 ([#456](https://github.com/homarr-labs/homarr/issues/456)) ([cab3405](https://github.com/homarr-labs/homarr/commit/cab34052f905d22f5ee593a960895cc9c137292c)) -* **deps:** update dependency zod to ^3.23.8 ([#460](https://github.com/homarr-labs/homarr/issues/460)) ([687556a](https://github.com/homarr-labs/homarr/commit/687556ad96136a72dc720a38f4628d0ba5a1cbcb)) -* **deps:** update dependency zod to ^3.24.0 ([#1635](https://github.com/homarr-labs/homarr/issues/1635)) ([8a25467](https://github.com/homarr-labs/homarr/commit/8a2546704b56d35786681fa6924770b04f833dff)) -* **deps:** update dependency zod to ^3.24.1 ([#1642](https://github.com/homarr-labs/homarr/issues/1642)) ([5e466e8](https://github.com/homarr-labs/homarr/commit/5e466e80c54accbc303e44d2093518465ad5863e)) -* **deps:** update gridstack.js fork to v1.11.2 ([#1605](https://github.com/homarr-labs/homarr/issues/1605)) ([bf45860](https://github.com/homarr-labs/homarr/commit/bf45860966987be44c5eecf9add34173f5968194)) -* **deps:** update mantine monorepo to ^7.10.0 ([#538](https://github.com/homarr-labs/homarr/issues/538)) ([ad3ef4c](https://github.com/homarr-labs/homarr/commit/ad3ef4c313fceb40baaedb9bc3b0e17009eed5cb)) -* **deps:** update mantine monorepo to ^7.10.1 ([#581](https://github.com/homarr-labs/homarr/issues/581)) ([b12d109](https://github.com/homarr-labs/homarr/commit/b12d109f6dfa4f90fc9fe2fae216894d601d0594)) -* **deps:** update mantine monorepo to ^7.10.2 ([#662](https://github.com/homarr-labs/homarr/issues/662)) ([4e9593b](https://github.com/homarr-labs/homarr/commit/4e9593b859c2d16e89940de9abed418ae184f36f)) -* **deps:** update mantine monorepo to ^7.11.0 ([#719](https://github.com/homarr-labs/homarr/issues/719)) ([52e936f](https://github.com/homarr-labs/homarr/commit/52e936f979b9cb6968c6cfe3a66c2c652245c6d8)) -* **deps:** update mantine monorepo to ^7.11.1 ([#735](https://github.com/homarr-labs/homarr/issues/735)) ([60c0cfa](https://github.com/homarr-labs/homarr/commit/60c0cfa9119ae946ca232df00dcebf73c3259a00)) -* **deps:** update mantine monorepo to ^7.11.2 ([#808](https://github.com/homarr-labs/homarr/issues/808)) ([fe5af92](https://github.com/homarr-labs/homarr/commit/fe5af9231e0c8e604558056e28ddc0ad5d440ad8)) -* **deps:** update mantine monorepo to ^7.12.0 ([#920](https://github.com/homarr-labs/homarr/issues/920)) ([137ebf6](https://github.com/homarr-labs/homarr/commit/137ebf6d22bc1a420bab52444e2cd3df5fe31852)) -* **deps:** update mantine monorepo to ^7.12.1 ([#967](https://github.com/homarr-labs/homarr/issues/967)) ([5b651a7](https://github.com/homarr-labs/homarr/commit/5b651a782aef6ce6ecef58be0491642d4cf0c94f)) -* **deps:** update mantine monorepo to ^7.12.2 ([#1048](https://github.com/homarr-labs/homarr/issues/1048)) ([51be024](https://github.com/homarr-labs/homarr/commit/51be02477b63725f5052d478a6db59c48be1fdf0)) -* **deps:** update mantine monorepo to ^7.13.0 ([#1178](https://github.com/homarr-labs/homarr/issues/1178)) ([78230b1](https://github.com/homarr-labs/homarr/commit/78230b1fe9d4b5b071d80782f6ad177993903dd1)) -* **deps:** update mantine monorepo to ^7.13.1 ([#1205](https://github.com/homarr-labs/homarr/issues/1205)) ([6ce466d](https://github.com/homarr-labs/homarr/commit/6ce466d38ec8d3968c4f90583cdfd83d97a42154)) -* **deps:** update mantine monorepo to ^7.13.2 ([#1227](https://github.com/homarr-labs/homarr/issues/1227)) ([d383664](https://github.com/homarr-labs/homarr/commit/d3836648c288ca595ac7b43cc1a2089cd52b7cdd)) -* **deps:** update mantine monorepo to ^7.13.3 ([#1316](https://github.com/homarr-labs/homarr/issues/1316)) ([84bb1de](https://github.com/homarr-labs/homarr/commit/84bb1deae51982d5c7465b180198034c9f9b861a)) -* **deps:** update mantine monorepo to ^7.13.4 ([#1364](https://github.com/homarr-labs/homarr/issues/1364)) ([f55b813](https://github.com/homarr-labs/homarr/commit/f55b813aa1a1df8c1b5c0f29a9a302dab025a1aa)) -* **deps:** update mantine monorepo to ^7.13.5 ([#1449](https://github.com/homarr-labs/homarr/issues/1449)) ([2306ecd](https://github.com/homarr-labs/homarr/commit/2306ecda9f562e94ef21eae495eab4e7fc5a3fc2)) -* **deps:** update mantine monorepo to ^7.14.0 ([#1470](https://github.com/homarr-labs/homarr/issues/1470)) ([11ce6fa](https://github.com/homarr-labs/homarr/commit/11ce6faa37bcd6c54f348ed8c5d003ff4c061b40)) -* **deps:** update mantine monorepo to ^7.14.1 ([#1494](https://github.com/homarr-labs/homarr/issues/1494)) ([775d0a5](https://github.com/homarr-labs/homarr/commit/775d0a53decfbebdbab06936557adade378fd0c0)) -* **deps:** update mantine monorepo to ^7.14.2 ([#1537](https://github.com/homarr-labs/homarr/issues/1537)) ([2e28147](https://github.com/homarr-labs/homarr/commit/2e2814707e0a5c2c38ccefcf0387cc0dab195fb9)) -* **deps:** update mantine monorepo to ^7.14.3 ([#1563](https://github.com/homarr-labs/homarr/issues/1563)) ([09dae45](https://github.com/homarr-labs/homarr/commit/09dae45ae8c33cf9212b72b7b048bbb3866880eb)) -* **deps:** update mantine monorepo to ^7.15.0 ([#1636](https://github.com/homarr-labs/homarr/issues/1636)) ([99bb680](https://github.com/homarr-labs/homarr/commit/99bb68012faffa78e9eb279dcf57007250a7a343)) -* **deps:** update mantine monorepo to ^7.15.1 ([#1649](https://github.com/homarr-labs/homarr/issues/1649)) ([732f4d4](https://github.com/homarr-labs/homarr/commit/732f4d45bdc1a063640a4636de4b67f25927fe43)) -* **deps:** update mantine monorepo to ^7.5.2 ([#71](https://github.com/homarr-labs/homarr/issues/71)) ([81e61b4](https://github.com/homarr-labs/homarr/commit/81e61b4d6bea3f32822917c4cf03f4d5876397ca)) -* **deps:** update mantine monorepo to ^7.5.3 ([#97](https://github.com/homarr-labs/homarr/issues/97)) ([35edfc7](https://github.com/homarr-labs/homarr/commit/35edfc74c4000d59b72f58fb42a00093151d4f38)) -* **deps:** update mantine monorepo to ^7.6.1 ([#157](https://github.com/homarr-labs/homarr/issues/157)) ([8c0534f](https://github.com/homarr-labs/homarr/commit/8c0534f54c416af94743e1cf20d92a33e06c804c)) -* **deps:** update mantine monorepo to ^7.6.2 ([#221](https://github.com/homarr-labs/homarr/issues/221)) ([fc29db0](https://github.com/homarr-labs/homarr/commit/fc29db0151de2638d7550dad0a8328b87164a732)) -* **deps:** update mantine monorepo to ^7.7.1 ([#272](https://github.com/homarr-labs/homarr/issues/272)) ([c9e1580](https://github.com/homarr-labs/homarr/commit/c9e15805a9b4c845e5cc379ae8267c7c659c60a6)) -* **deps:** update mantine monorepo to ^7.8.0 ([#343](https://github.com/homarr-labs/homarr/issues/343)) ([3e3299a](https://github.com/homarr-labs/homarr/commit/3e3299a358b44f86c850b3b96edf14e503d92151)) -* **deps:** update mantine monorepo to ^7.8.1 ([#377](https://github.com/homarr-labs/homarr/issues/377)) ([92b417a](https://github.com/homarr-labs/homarr/commit/92b417a37e070352d4830ab6d907421a89440308)) -* **deps:** update mantine monorepo to ^7.9.0 ([#423](https://github.com/homarr-labs/homarr/issues/423)) ([90b9d56](https://github.com/homarr-labs/homarr/commit/90b9d5672959e68c551b2bd9190b8ad97fbec1d0)) -* **deps:** update mantine monorepo to ^7.9.1 ([#457](https://github.com/homarr-labs/homarr/issues/457)) ([48d7aaa](https://github.com/homarr-labs/homarr/commit/48d7aaaf1d0e59bd2573bbe01a3421d14cd64be1)) -* **deps:** update mantine monorepo to ^7.9.2 ([#510](https://github.com/homarr-labs/homarr/issues/510)) ([abffc86](https://github.com/homarr-labs/homarr/commit/abffc866c084c387a553395519c172becaec0618)) -* **deps:** update nest monorepo to ^10.3.5 ([#245](https://github.com/homarr-labs/homarr/issues/245)) ([0ffb3f1](https://github.com/homarr-labs/homarr/commit/0ffb3f18b9bd8c90f826bcb29c257d656dbb91f5)) -* **deps:** update nextjs monorepo to ^14.1.0 ([#38](https://github.com/homarr-labs/homarr/issues/38)) ([dadfc0c](https://github.com/homarr-labs/homarr/commit/dadfc0c5d73395d2c49afbc7c67d0755e102b719)) -* **deps:** update nextjs monorepo to ^14.1.1 ([#147](https://github.com/homarr-labs/homarr/issues/147)) ([b407f2a](https://github.com/homarr-labs/homarr/commit/b407f2a9ac02b3ea6bfa22388e8e1150d2c82d48)) -* **deps:** update nextjs monorepo to ^14.1.2 ([#193](https://github.com/homarr-labs/homarr/issues/193)) ([8df514d](https://github.com/homarr-labs/homarr/commit/8df514dec883a90b3fcee8ef69efed87608618df)) -* **deps:** update nextjs monorepo to ^14.1.3 ([#208](https://github.com/homarr-labs/homarr/issues/208)) ([56d5e70](https://github.com/homarr-labs/homarr/commit/56d5e709bccdff4d37c6964dd1420721fc6f0356)) -* **deps:** update nextjs monorepo to ^14.1.4 ([#252](https://github.com/homarr-labs/homarr/issues/252)) ([28f630f](https://github.com/homarr-labs/homarr/commit/28f630f58b60260cd48990f9edf04173db5bd01d)) -* **deps:** update nextjs monorepo to ^14.2.10 ([#1109](https://github.com/homarr-labs/homarr/issues/1109)) ([fb55f12](https://github.com/homarr-labs/homarr/commit/fb55f1272d890307452cf7c7f3a54eb454da736f)) -* **deps:** update nextjs monorepo to ^14.2.11 ([#1117](https://github.com/homarr-labs/homarr/issues/1117)) ([7a56006](https://github.com/homarr-labs/homarr/commit/7a56006533d0fce5b288e1efe658e026abd062e1)) -* **deps:** update nextjs monorepo to ^14.2.12 ([#1146](https://github.com/homarr-labs/homarr/issues/1146)) ([8f5d7f8](https://github.com/homarr-labs/homarr/commit/8f5d7f83879e68b73f20303fbd9d3f4f70f69e3d)) -* **deps:** update nextjs monorepo to ^14.2.13 ([#1154](https://github.com/homarr-labs/homarr/issues/1154)) ([2258dc3](https://github.com/homarr-labs/homarr/commit/2258dc3ec66fd6d2c0ca9d7d2a689174a806586d)) -* **deps:** update nextjs monorepo to ^14.2.14 ([#1215](https://github.com/homarr-labs/homarr/issues/1215)) ([6f5c993](https://github.com/homarr-labs/homarr/commit/6f5c9935108511783b16c1a8206088e4845f9529)) -* **deps:** update nextjs monorepo to ^14.2.15 ([#1270](https://github.com/homarr-labs/homarr/issues/1270)) ([2bbe594](https://github.com/homarr-labs/homarr/commit/2bbe594cd28decee8934fc7338cdda9b77a2040c)) -* **deps:** update nextjs monorepo to ^14.2.16 ([#1355](https://github.com/homarr-labs/homarr/issues/1355)) ([aea65ea](https://github.com/homarr-labs/homarr/commit/aea65eadcd180e892d823ddccc2657b3beeb8acb)) -* **deps:** update nextjs monorepo to ^14.2.17 ([#1435](https://github.com/homarr-labs/homarr/issues/1435)) ([cd18458](https://github.com/homarr-labs/homarr/commit/cd18458d0c8a91c9068f8fbbfa49b5c0191e8f63)) -* **deps:** update nextjs monorepo to ^14.2.18 ([#1479](https://github.com/homarr-labs/homarr/issues/1479)) ([ccee3dd](https://github.com/homarr-labs/homarr/commit/ccee3dd21732be7106bf04af802c528351d132be)) -* **deps:** update nextjs monorepo to ^14.2.19 ([#1594](https://github.com/homarr-labs/homarr/issues/1594)) ([b0d6230](https://github.com/homarr-labs/homarr/commit/b0d623047ed0aae68741a50345610d2bc65cf86b)) -* **deps:** update nextjs monorepo to ^14.2.2 ([#345](https://github.com/homarr-labs/homarr/issues/345)) ([b465b95](https://github.com/homarr-labs/homarr/commit/b465b95ca26c1b0bc9035c7d2bd72d8a657870b3)) -* **deps:** update nextjs monorepo to ^14.2.20 ([#1610](https://github.com/homarr-labs/homarr/issues/1610)) ([ef65270](https://github.com/homarr-labs/homarr/commit/ef652707788ab68eeadd43dff908387340784f04)) -* **deps:** update nextjs monorepo to ^14.2.3 ([#381](https://github.com/homarr-labs/homarr/issues/381)) ([75e4e81](https://github.com/homarr-labs/homarr/commit/75e4e8176e36a995ebcd25387cae6435a5723b49)) -* **deps:** update nextjs monorepo to ^14.2.4 ([#658](https://github.com/homarr-labs/homarr/issues/658)) ([476fa59](https://github.com/homarr-labs/homarr/commit/476fa59079a3026fb1ce3d3c1b87a4b99425dccf)) -* **deps:** update nextjs monorepo to ^14.2.5 ([#779](https://github.com/homarr-labs/homarr/issues/779)) ([99175fe](https://github.com/homarr-labs/homarr/commit/99175feda492ff0b0d2d9d07c75d2bd45f69fbb5)) -* **deps:** update nextjs monorepo to ^14.2.6 ([#1009](https://github.com/homarr-labs/homarr/issues/1009)) ([1311e72](https://github.com/homarr-labs/homarr/commit/1311e72ca0a9c16db207d088809debd020da1318)) -* **deps:** update nextjs monorepo to ^14.2.7 ([#1041](https://github.com/homarr-labs/homarr/issues/1041)) ([3771a61](https://github.com/homarr-labs/homarr/commit/3771a61c49ca92f8567bb0905a696236a1e473a0)) -* **deps:** update nextjs monorepo to ^14.2.8 ([#1067](https://github.com/homarr-labs/homarr/issues/1067)) ([ca83872](https://github.com/homarr-labs/homarr/commit/ca83872151a867a42b3504a3eafff585a386b02d)) -* **deps:** update nextjs monorepo to ^14.2.9 ([#1091](https://github.com/homarr-labs/homarr/issues/1091)) ([3f076fa](https://github.com/homarr-labs/homarr/commit/3f076fafcd505b0b18781fc485dec8b144c8051f)) -* **deps:** update react monorepo to v19 (major) ([#1615](https://github.com/homarr-labs/homarr/issues/1615)) ([6f874e8](https://github.com/homarr-labs/homarr/commit/6f874e87abbc20a6e95cfbeb7bb7188d13599672)) -* **deps:** update tanstack-query monorepo ([#126](https://github.com/homarr-labs/homarr/issues/126)) ([71521c0](https://github.com/homarr-labs/homarr/commit/71521c076809fa3041ebf0ce4c9b9365adcf167b)) -* **deps:** update tanstack-query monorepo ([#141](https://github.com/homarr-labs/homarr/issues/141)) ([5d68300](https://github.com/homarr-labs/homarr/commit/5d68300600f0bd890aa4413ada41559f10afcf51)) -* **deps:** update tanstack-query monorepo ([#216](https://github.com/homarr-labs/homarr/issues/216)) ([efbc4cf](https://github.com/homarr-labs/homarr/commit/efbc4cf8fe62c4dd39fa2191238e1d62e5e98f9c)) -* **deps:** update tanstack-query monorepo ([#280](https://github.com/homarr-labs/homarr/issues/280)) ([e74926d](https://github.com/homarr-labs/homarr/commit/e74926d3825a7a31008faf6ec4ef00b6ab5ce669)) -* **deps:** update tanstack-query monorepo to ^5.18.1 ([#39](https://github.com/homarr-labs/homarr/issues/39)) ([717e919](https://github.com/homarr-labs/homarr/commit/717e9194500ad875e2c57bc088a3fa7ec08faf68)) -* **deps:** update tanstack-query monorepo to ^5.20.1 ([#75](https://github.com/homarr-labs/homarr/issues/75)) ([00f4a28](https://github.com/homarr-labs/homarr/commit/00f4a288a413383b4c412a1165eeba8a4c973a67)) -* **deps:** update tanstack-query monorepo to ^5.20.5 ([#86](https://github.com/homarr-labs/homarr/issues/86)) ([b77e652](https://github.com/homarr-labs/homarr/commit/b77e6528225a54839c5b09ad2464c6ab266259c6)) -* **deps:** update tanstack-query monorepo to ^5.21.4 ([#128](https://github.com/homarr-labs/homarr/issues/128)) ([a9a3d98](https://github.com/homarr-labs/homarr/commit/a9a3d98248a9ba518d941f8e437784a98984895d)) -* **deps:** update tanstack-query monorepo to ^5.21.7 ([#133](https://github.com/homarr-labs/homarr/issues/133)) ([e150577](https://github.com/homarr-labs/homarr/commit/e150577c7eea55b3f837951eeaa8fef41468c6af)) -* **deps:** update tanstack-query monorepo to ^5.24.1 ([#156](https://github.com/homarr-labs/homarr/issues/156)) ([3022e7f](https://github.com/homarr-labs/homarr/commit/3022e7f0af1d319e87398e09df27bd5824f0f8b4)) -* **deps:** update tanstack-query monorepo to ^5.24.6 ([#168](https://github.com/homarr-labs/homarr/issues/168)) ([7f2ab7f](https://github.com/homarr-labs/homarr/commit/7f2ab7f192b55f970c6902cde71f85c06a5f67df)) -* **deps:** update tanstack-query monorepo to ^5.24.8 ([#187](https://github.com/homarr-labs/homarr/issues/187)) ([f98046d](https://github.com/homarr-labs/homarr/commit/f98046d9e207bd068fa1cea19c4be0cba61c14c0)) -* **deps:** update tanstack-query monorepo to ^5.25.0 ([#196](https://github.com/homarr-labs/homarr/issues/196)) ([8c9adb3](https://github.com/homarr-labs/homarr/commit/8c9adb31f34991117c18ded417bf13312a04244a)) -* **deps:** update tanstack-query monorepo to ^5.28.0 ([#225](https://github.com/homarr-labs/homarr/issues/225)) ([9a203e8](https://github.com/homarr-labs/homarr/commit/9a203e8fac4379a703ad0d13380bb1a827791cd2)) -* **deps:** update tanstack-query monorepo to ^5.28.14 ([#299](https://github.com/homarr-labs/homarr/issues/299)) ([a4f316f](https://github.com/homarr-labs/homarr/commit/a4f316f10fc11579527722263249523591762e8b)) -* **deps:** update tanstack-query monorepo to ^5.28.4 ([#235](https://github.com/homarr-labs/homarr/issues/235)) ([30278f3](https://github.com/homarr-labs/homarr/commit/30278f37d248f0222dcd86e67a3310961c804a25)) -* **deps:** update tanstack-query monorepo to ^5.28.6 ([#256](https://github.com/homarr-labs/homarr/issues/256)) ([e4e3463](https://github.com/homarr-labs/homarr/commit/e4e3463d0464c37c32da83000ae971006157d1b2)) -* **deps:** update tanstack-query monorepo to ^5.28.8 ([#265](https://github.com/homarr-labs/homarr/issues/265)) ([4783aae](https://github.com/homarr-labs/homarr/commit/4783aaea20c44d823cb01857ffd050f7539948af)) -* **deps:** update tanstack-query monorepo to ^5.29.0 ([#313](https://github.com/homarr-labs/homarr/issues/313)) ([fffefbb](https://github.com/homarr-labs/homarr/commit/fffefbb4c8767ae5803429363ecf323d2384a6a0)) -* **deps:** update tanstack-query monorepo to ^5.29.2 ([#340](https://github.com/homarr-labs/homarr/issues/340)) ([859fdf4](https://github.com/homarr-labs/homarr/commit/859fdf4c440af5176401bdee236b5e19973182ef)) -* **deps:** update tanstack-query monorepo to ^5.32.0 ([#374](https://github.com/homarr-labs/homarr/issues/374)) ([0cdf0b7](https://github.com/homarr-labs/homarr/commit/0cdf0b73bfc410c7457fe7b379a380fdf83a938b)) -* **deps:** update tanstack-query monorepo to ^5.32.1 ([#402](https://github.com/homarr-labs/homarr/issues/402)) ([c988f3d](https://github.com/homarr-labs/homarr/commit/c988f3d7f827dd3121582a69fe1219dedb1ae246)) -* **deps:** update tanstack-query monorepo to ^5.34.1 ([#427](https://github.com/homarr-labs/homarr/issues/427)) ([fb43fc6](https://github.com/homarr-labs/homarr/commit/fb43fc604657e0ee3361db5fb3df8bdf68a22a51)) -* **deps:** update tanstack-query monorepo to ^5.34.2 ([#439](https://github.com/homarr-labs/homarr/issues/439)) ([08d1b6c](https://github.com/homarr-labs/homarr/commit/08d1b6c638c008936d67e1fe720313deaae147cd)) -* **deps:** update tanstack-query monorepo to ^5.35.1 ([#446](https://github.com/homarr-labs/homarr/issues/446)) ([96158bc](https://github.com/homarr-labs/homarr/commit/96158bcb5e0818f698f04f107dab24b6285f32df)) -* **deps:** update tanstack-query monorepo to ^5.35.5 ([#465](https://github.com/homarr-labs/homarr/issues/465)) ([8e6d143](https://github.com/homarr-labs/homarr/commit/8e6d143edc6613766ea86d3c84ef392aea867a0a)) -* **deps:** update tanstack-query monorepo to ^5.36.0 ([#481](https://github.com/homarr-labs/homarr/issues/481)) ([1570faa](https://github.com/homarr-labs/homarr/commit/1570faa20af2c1b4173ade77565691176219c601)) -* **deps:** update tanstack-query monorepo to ^5.36.2 ([#496](https://github.com/homarr-labs/homarr/issues/496)) ([023feaf](https://github.com/homarr-labs/homarr/commit/023feafafe5f78b73870a48a06d037b563999d5d)) -* **deps:** update tanstack-query monorepo to ^5.37.1 ([#513](https://github.com/homarr-labs/homarr/issues/513)) ([b312032](https://github.com/homarr-labs/homarr/commit/b312032f02db6fac0e95456ef23cf84d4ab485b0)) -* **deps:** update tanstack-query monorepo to ^5.40.0 ([#552](https://github.com/homarr-labs/homarr/issues/552)) ([8f50def](https://github.com/homarr-labs/homarr/commit/8f50def4c931545fbe4b24a2c501c725e088ce9f)) -* **deps:** update tanstack-query monorepo to ^5.40.1 ([#617](https://github.com/homarr-labs/homarr/issues/617)) ([946ea87](https://github.com/homarr-labs/homarr/commit/946ea8753fd45582ba15b6fc69a434039d341b1d)) -* **deps:** update tanstack-query monorepo to ^5.44.0 ([#657](https://github.com/homarr-labs/homarr/issues/657)) ([8b3bc03](https://github.com/homarr-labs/homarr/commit/8b3bc03b9be9d70d11d982869250d575b24ca4b8)) -* **deps:** update tanstack-query monorepo to ^5.45.0 ([#660](https://github.com/homarr-labs/homarr/issues/660)) ([5547e52](https://github.com/homarr-labs/homarr/commit/5547e520016b92c0981899099cce1bf82f7d1a00)) -* **deps:** update tanstack-query monorepo to ^5.45.1 ([#677](https://github.com/homarr-labs/homarr/issues/677)) ([33e8cc7](https://github.com/homarr-labs/homarr/commit/33e8cc7412e2cc4541ae5e58ae45b20ffa74972a)) -* **deps:** update tanstack-query monorepo to ^5.47.0 ([#713](https://github.com/homarr-labs/homarr/issues/713)) ([75748df](https://github.com/homarr-labs/homarr/commit/75748dfbc35057b7f44e836fd2864c76c2705237)) -* **deps:** update tanstack-query monorepo to ^5.48.0 ([#714](https://github.com/homarr-labs/homarr/issues/714)) ([a76e941](https://github.com/homarr-labs/homarr/commit/a76e941378a2d8669a9b4484b8301f5557dda1a3)) -* **deps:** update tanstack-query monorepo to ^5.49.0 ([#728](https://github.com/homarr-labs/homarr/issues/728)) ([531cd0d](https://github.com/homarr-labs/homarr/commit/531cd0de2520429d3b3270e05fc5d8e9c5732163)) -* **deps:** update tanstack-query monorepo to ^5.49.2 ([#730](https://github.com/homarr-labs/homarr/issues/730)) ([8ee0d67](https://github.com/homarr-labs/homarr/commit/8ee0d67a36b30ae1e5f679a0c24014c3c79709ca)) -* **deps:** update tanstack-query monorepo to ^5.50.1 ([#747](https://github.com/homarr-labs/homarr/issues/747)) ([a67050e](https://github.com/homarr-labs/homarr/commit/a67050e77b14a0ad1e6b960dad24f4a35779f858)) -* **deps:** update tanstack-query monorepo to ^5.51.1 ([#782](https://github.com/homarr-labs/homarr/issues/782)) ([be4748b](https://github.com/homarr-labs/homarr/commit/be4748b8fa5cf2b7f17acd03753115b9562f3285)) -* **deps:** update tanstack-query monorepo to ^5.51.11 ([#836](https://github.com/homarr-labs/homarr/issues/836)) ([14d19fc](https://github.com/homarr-labs/homarr/commit/14d19fcd8bf9577cd483b6bb89e1cc3bbaf484b1)) -* **deps:** update tanstack-query monorepo to ^5.51.14 ([#866](https://github.com/homarr-labs/homarr/issues/866)) ([04a836e](https://github.com/homarr-labs/homarr/commit/04a836e824e607f48b876d6882aecb5de3b666ae)) -* **deps:** update tanstack-query monorepo to ^5.51.15 ([#868](https://github.com/homarr-labs/homarr/issues/868)) ([63b3c1b](https://github.com/homarr-labs/homarr/commit/63b3c1bff19d9265ef2c80dfbbc9058354a9acfb)) -* **deps:** update tanstack-query monorepo to ^5.51.16 ([#892](https://github.com/homarr-labs/homarr/issues/892)) ([3a5f818](https://github.com/homarr-labs/homarr/commit/3a5f818e7cbef6365f9ae89996657cdb418d7917)) -* **deps:** update tanstack-query monorepo to ^5.51.17 ([#899](https://github.com/homarr-labs/homarr/issues/899)) ([5c73b54](https://github.com/homarr-labs/homarr/commit/5c73b544285d1fca753168a796e1143da5ffc37d)) -* **deps:** update tanstack-query monorepo to ^5.51.18 ([#900](https://github.com/homarr-labs/homarr/issues/900)) ([26615d8](https://github.com/homarr-labs/homarr/commit/26615d80e795c050e2ac94ba133cbf23c74b2d27)) -* **deps:** update tanstack-query monorepo to ^5.51.21 ([#905](https://github.com/homarr-labs/homarr/issues/905)) ([2a459dd](https://github.com/homarr-labs/homarr/commit/2a459dda205448ebfa3d8451a5229a82fa850fbb)) -* **deps:** update tanstack-query monorepo to ^5.51.23 ([#936](https://github.com/homarr-labs/homarr/issues/936)) ([f9e2df0](https://github.com/homarr-labs/homarr/commit/f9e2df085b2ba737c2ef6375474865b34a3f43cf)) -* **deps:** update tanstack-query monorepo to ^5.51.24 ([#997](https://github.com/homarr-labs/homarr/issues/997)) ([2f77be8](https://github.com/homarr-labs/homarr/commit/2f77be8045ea67d1f5db20bd140c9e19af903571)) -* **deps:** update tanstack-query monorepo to ^5.51.3 ([#821](https://github.com/homarr-labs/homarr/issues/821)) ([05bbc19](https://github.com/homarr-labs/homarr/commit/05bbc19a15b8f8d7cdef4b9fee3174b28918bc9d)) -* **deps:** update tanstack-query monorepo to ^5.51.4 ([#824](https://github.com/homarr-labs/homarr/issues/824)) ([86c729a](https://github.com/homarr-labs/homarr/commit/86c729a83f01cb4a3ce5413b6b4117505b6b61f4)) -* **deps:** update tanstack-query monorepo to ^5.51.5 ([#829](https://github.com/homarr-labs/homarr/issues/829)) ([a4edda6](https://github.com/homarr-labs/homarr/commit/a4edda6932ed5008fe4609b55636232a7ca500ce)) -* **deps:** update tanstack-query monorepo to ^5.51.8 ([#830](https://github.com/homarr-labs/homarr/issues/830)) ([ee2703c](https://github.com/homarr-labs/homarr/commit/ee2703ca4be312e5e0f2b9964fa3fb1d0bd074c1)) -* **deps:** update tanstack-query monorepo to ^5.51.9 ([#831](https://github.com/homarr-labs/homarr/issues/831)) ([c8f3eb6](https://github.com/homarr-labs/homarr/commit/c8f3eb69e54a732274fd85841b1d1181fbc9a279)) -* **deps:** update tanstack-query monorepo to ^5.52.0 ([#1002](https://github.com/homarr-labs/homarr/issues/1002)) ([432af79](https://github.com/homarr-labs/homarr/commit/432af7905510283779aacf7331a82a3d53f0c899)) -* **deps:** update tanstack-query monorepo to ^5.52.1 ([#1013](https://github.com/homarr-labs/homarr/issues/1013)) ([8779b7d](https://github.com/homarr-labs/homarr/commit/8779b7d6073f41b52bf2fadda25ccab8d1ae1622)) -* **deps:** update tanstack-query monorepo to ^5.52.2 ([#1037](https://github.com/homarr-labs/homarr/issues/1037)) ([48d01e3](https://github.com/homarr-labs/homarr/commit/48d01e3c6ceb9fd4e60f0bd720374da53206d94e)) -* **deps:** update tanstack-query monorepo to ^5.52.3 ([#1043](https://github.com/homarr-labs/homarr/issues/1043)) ([afb6adf](https://github.com/homarr-labs/homarr/commit/afb6adf1e68f0f1b6b819a32a95d0a28855e88c4)) -* **deps:** update tanstack-query monorepo to ^5.53.1 ([#1045](https://github.com/homarr-labs/homarr/issues/1045)) ([775c359](https://github.com/homarr-labs/homarr/commit/775c3597dcd9008606446d066ddb46dc758b5689)) -* **deps:** update tanstack-query monorepo to ^5.53.2 ([#1055](https://github.com/homarr-labs/homarr/issues/1055)) ([d69fed6](https://github.com/homarr-labs/homarr/commit/d69fed6514bef0ee5cc235cca86888d040fae562)) -* **deps:** update tanstack-query monorepo to ^5.53.3 ([#1056](https://github.com/homarr-labs/homarr/issues/1056)) ([8fe162e](https://github.com/homarr-labs/homarr/commit/8fe162e16c4c06ca453437d0ee4e6491ecb2ed84)) -* **deps:** update tanstack-query monorepo to ^5.54.1 ([#1063](https://github.com/homarr-labs/homarr/issues/1063)) ([9e1faa0](https://github.com/homarr-labs/homarr/commit/9e1faa03b120a225114f7e8bf4cc683be243c4f6)) -* **deps:** update tanstack-query monorepo to ^5.55.0 ([#1070](https://github.com/homarr-labs/homarr/issues/1070)) ([00d5020](https://github.com/homarr-labs/homarr/commit/00d5020824f6661575d7201e2524151defc35585)) -* **deps:** update tanstack-query monorepo to ^5.55.2 ([#1084](https://github.com/homarr-labs/homarr/issues/1084)) ([930bc2d](https://github.com/homarr-labs/homarr/commit/930bc2d7d205e7883898fb15deefc3f5abfedced)) -* **deps:** update tanstack-query monorepo to ^5.55.4 ([#1086](https://github.com/homarr-labs/homarr/issues/1086)) ([36a7a18](https://github.com/homarr-labs/homarr/commit/36a7a18c35258f9e592755ef10583b603a5bb39e)) -* **deps:** update tanstack-query monorepo to ^5.56.0 ([#1112](https://github.com/homarr-labs/homarr/issues/1112)) ([703ecec](https://github.com/homarr-labs/homarr/commit/703ecece634a284070b15edbd4580ffbd3a58502)) -* **deps:** update tanstack-query monorepo to ^5.56.1 ([#1114](https://github.com/homarr-labs/homarr/issues/1114)) ([2d4681d](https://github.com/homarr-labs/homarr/commit/2d4681d07989bf8388152893a7e194ead1e4c59d)) -* **deps:** update tanstack-query monorepo to ^5.56.2 ([#1116](https://github.com/homarr-labs/homarr/issues/1116)) ([cae9a80](https://github.com/homarr-labs/homarr/commit/cae9a800c47e23b5ef674c19ba5a1eea127018a3)) -* **deps:** update tanstack-query monorepo to ^5.59.0 ([#1214](https://github.com/homarr-labs/homarr/issues/1214)) ([c3d54b4](https://github.com/homarr-labs/homarr/commit/c3d54b49a0ba0ae2c2a4cc3d1651cb01df2efdf7)) -* **deps:** update tanstack-query monorepo to ^5.59.14 ([#1282](https://github.com/homarr-labs/homarr/issues/1282)) ([df8f6d2](https://github.com/homarr-labs/homarr/commit/df8f6d25d4accd486274df15eb620b28fb545826)) -* **deps:** update tanstack-query monorepo to ^5.59.15 ([#1298](https://github.com/homarr-labs/homarr/issues/1298)) ([bb0026a](https://github.com/homarr-labs/homarr/commit/bb0026a9fd6093cf54dc5fdcf027ea1033ac8454)) -* **deps:** update tanstack-query monorepo to ^5.59.16 ([#1361](https://github.com/homarr-labs/homarr/issues/1361)) ([b542bad](https://github.com/homarr-labs/homarr/commit/b542bad939527d1de5a0eb0a8c384cf4f6267436)) -* **deps:** update tanstack-query monorepo to ^5.59.17 ([#1403](https://github.com/homarr-labs/homarr/issues/1403)) ([deb5a71](https://github.com/homarr-labs/homarr/commit/deb5a716db1312fcbafbd244d3399a35ab50c4e9)) -* **deps:** update tanstack-query monorepo to ^5.59.19 ([#1410](https://github.com/homarr-labs/homarr/issues/1410)) ([8983734](https://github.com/homarr-labs/homarr/commit/8983734408e9c5ea89bc3fb0e011e9030824a43c)) -* **deps:** update tanstack-query monorepo to ^5.59.20 ([#1438](https://github.com/homarr-labs/homarr/issues/1438)) ([e05567d](https://github.com/homarr-labs/homarr/commit/e05567d100e3ff99a1d41099ffe5b9333b0eb7a7)) -* **deps:** update tanstack-query monorepo to ^5.59.3 ([#1274](https://github.com/homarr-labs/homarr/issues/1274)) ([e3cd8a8](https://github.com/homarr-labs/homarr/commit/e3cd8a8b25c736e93dec8d4df4be368007785f61)) -* **deps:** update tanstack-query monorepo to ^5.59.6 ([#1276](https://github.com/homarr-labs/homarr/issues/1276)) ([efd06ea](https://github.com/homarr-labs/homarr/commit/efd06ea1079aca15b75f358916e20b13e39ac568)) -* **deps:** update tanstack-query monorepo to ^5.59.9 ([#1278](https://github.com/homarr-labs/homarr/issues/1278)) ([0ca140f](https://github.com/homarr-labs/homarr/commit/0ca140f4ff8f74a5eef496864d2bcd95e389f329)) -* **deps:** update tanstack-query monorepo to ^5.60.2 ([#1482](https://github.com/homarr-labs/homarr/issues/1482)) ([12c3bb9](https://github.com/homarr-labs/homarr/commit/12c3bb98485f3b38ba12d3fc84b7498b78fd1d8f)) -* **deps:** update tanstack-query monorepo to ^5.60.4 ([#1488](https://github.com/homarr-labs/homarr/issues/1488)) ([41f816b](https://github.com/homarr-labs/homarr/commit/41f816be5b9561398361153d3f9a07cd2e3cc6e1)) -* **deps:** update tanstack-query monorepo to ^5.60.5 ([#1489](https://github.com/homarr-labs/homarr/issues/1489)) ([6dcf1ad](https://github.com/homarr-labs/homarr/commit/6dcf1ad3446f0c564ec7c21c0fc8154e5cd1ce68)) -* **deps:** update tanstack-query monorepo to ^5.60.6 ([#1500](https://github.com/homarr-labs/homarr/issues/1500)) ([2f76e53](https://github.com/homarr-labs/homarr/commit/2f76e537b7a8a30b1a7801753b44cfd7a25dc2d6)) -* **deps:** update tanstack-query monorepo to ^5.61.0 ([#1510](https://github.com/homarr-labs/homarr/issues/1510)) ([ed10d63](https://github.com/homarr-labs/homarr/commit/ed10d63a04a2b5a8dad0ffb51fca35d8c0e88a34)) -* **deps:** update tanstack-query monorepo to ^5.61.3 ([#1536](https://github.com/homarr-labs/homarr/issues/1536)) ([24daba7](https://github.com/homarr-labs/homarr/commit/24daba743ed645e6a974bb212e28b745acdd34f7)) -* **deps:** update tanstack-query monorepo to ^5.61.4 ([#1555](https://github.com/homarr-labs/homarr/issues/1555)) ([91a199f](https://github.com/homarr-labs/homarr/commit/91a199f7d6014c97425b55f2a419b252b766b4c3)) -* **deps:** update tanstack-query monorepo to ^5.61.5 ([#1559](https://github.com/homarr-labs/homarr/issues/1559)) ([f2e7349](https://github.com/homarr-labs/homarr/commit/f2e7349cbdfc065b52951d3a54a22344dca6807b)) -* **deps:** update tanstack-query monorepo to ^5.62.0 ([#1569](https://github.com/homarr-labs/homarr/issues/1569)) ([6ad5fd5](https://github.com/homarr-labs/homarr/commit/6ad5fd55295622429035aa7f59e478ada19ec36a)) -* **deps:** update tanstack-query monorepo to ^5.62.1 ([#1584](https://github.com/homarr-labs/homarr/issues/1584)) ([0e01dd8](https://github.com/homarr-labs/homarr/commit/0e01dd86950beac24259ac1269f0159c7c33e35c)) -* **deps:** update tanstack-query monorepo to ^5.62.2 ([#1590](https://github.com/homarr-labs/homarr/issues/1590)) ([3b705f4](https://github.com/homarr-labs/homarr/commit/3b705f43b89b4c844522925c1d03a2822a2986a9)) -* **deps:** update tanstack-query monorepo to ^5.62.3 ([#1621](https://github.com/homarr-labs/homarr/issues/1621)) ([42ab783](https://github.com/homarr-labs/homarr/commit/42ab783085ab0a1998d62975aac796af1fc80a3c)) -* **deps:** update tanstack-query monorepo to ^5.62.7 ([#1638](https://github.com/homarr-labs/homarr/issues/1638)) ([e692cc8](https://github.com/homarr-labs/homarr/commit/e692cc891713802cdf8655eb54223ef8e30377ba)) -* **deps:** update tanstack-query monorepo to ^5.62.8 ([#1682](https://github.com/homarr-labs/homarr/issues/1682)) ([28667c5](https://github.com/homarr-labs/homarr/commit/28667c5e1aa5b9c9c640f251fcb4e9e1063fa922)) -* **deps:** update tanstack-query monorepo to v5.38.0 ([#551](https://github.com/homarr-labs/homarr/issues/551)) ([a029abe](https://github.com/homarr-labs/homarr/commit/a029abe6f3fa762e879717bd66bc4e8bbde3558b)) -* **deps:** update testcontainers-node monorepo to ^10.13.2 ([#1233](https://github.com/homarr-labs/homarr/issues/1233)) ([8ea8b2d](https://github.com/homarr-labs/homarr/commit/8ea8b2ded55e3d026d3d13b1baa09f740b2d3a54)) -* **deps:** update testcontainers-node monorepo to ^10.14.0 ([#1434](https://github.com/homarr-labs/homarr/issues/1434)) ([31c661b](https://github.com/homarr-labs/homarr/commit/31c661bc69c32403dd7eff262b62d86debef05bc)) -* **deps:** update testcontainers-node monorepo to ^10.15.0 ([#1521](https://github.com/homarr-labs/homarr/issues/1521)) ([6018b20](https://github.com/homarr-labs/homarr/commit/6018b20d4e2be0991c735ca690bd91062285b2bb)) -* **deps:** update testcontainers-node monorepo to ^10.16.0 ([#1604](https://github.com/homarr-labs/homarr/issues/1604)) ([feb93ef](https://github.com/homarr-labs/homarr/commit/feb93ef0c71089a005c31b4f0798a0b20dc0e36b)) -* **deps:** update tiptap monorepo to ^2.2.1 ([#40](https://github.com/homarr-labs/homarr/issues/40)) ([1e01312](https://github.com/homarr-labs/homarr/commit/1e01312fcd5e7e267db330dfdb72a8d8b83fadfd)) -* **deps:** update tiptap monorepo to ^2.2.2 ([#63](https://github.com/homarr-labs/homarr/issues/63)) ([593bc9c](https://github.com/homarr-labs/homarr/commit/593bc9ca1c05bfd69b35d6bb2b7c34d3dabe7303)) -* **deps:** update tiptap monorepo to ^2.2.3 ([#95](https://github.com/homarr-labs/homarr/issues/95)) ([3e44644](https://github.com/homarr-labs/homarr/commit/3e44644ef6e8f8e8b7d898f5794405d2e61eb3af)) -* **deps:** update tiptap monorepo to ^2.2.4 ([#153](https://github.com/homarr-labs/homarr/issues/153)) ([212063a](https://github.com/homarr-labs/homarr/commit/212063a51eb8f9a48fcfe39df9a79dca31116c08)) -* **deps:** update tiptap monorepo to ^2.2.5 ([#315](https://github.com/homarr-labs/homarr/issues/315)) ([75224e0](https://github.com/homarr-labs/homarr/commit/75224e05334361356d841c5878600709324fa3e8)) -* **deps:** update tiptap monorepo to v2.10.0 ([#1507](https://github.com/homarr-labs/homarr/issues/1507)) ([860d2e4](https://github.com/homarr-labs/homarr/commit/860d2e4f69bbdf9b3ffb37b26d514e86ceca378a)) -* **deps:** update tiptap monorepo to v2.10.1 ([#1516](https://github.com/homarr-labs/homarr/issues/1516)) ([85a69b1](https://github.com/homarr-labs/homarr/commit/85a69b13e38743d487e213012cf59b64ba52da67)) -* **deps:** update tiptap monorepo to v2.10.2 ([#1520](https://github.com/homarr-labs/homarr/issues/1520)) ([ba4c9a6](https://github.com/homarr-labs/homarr/commit/ba4c9a683ee533bd214faa8f834fb3fe8408b6bb)) -* **deps:** update tiptap monorepo to v2.10.3 ([#1556](https://github.com/homarr-labs/homarr/issues/1556)) ([c1fe655](https://github.com/homarr-labs/homarr/commit/c1fe6551ce46c00304f1a9c1e6d2d7f301f47dcb)) -* **deps:** update tiptap monorepo to v2.3.0 ([#317](https://github.com/homarr-labs/homarr/issues/317)) ([847adff](https://github.com/homarr-labs/homarr/commit/847adffe7b32310924d0e317fbc4379ed84bbca1)) -* **deps:** update tiptap monorepo to v2.3.1 ([#403](https://github.com/homarr-labs/homarr/issues/403)) ([876f21a](https://github.com/homarr-labs/homarr/commit/876f21a26dba4a2bf58a087d9d954c61baf30d07)) -* **deps:** update tiptap monorepo to v2.3.2 ([#459](https://github.com/homarr-labs/homarr/issues/459)) ([382be49](https://github.com/homarr-labs/homarr/commit/382be496ffb51bf16ff2b50689707503e610243c)) -* **deps:** update tiptap monorepo to v2.4.0 ([#494](https://github.com/homarr-labs/homarr/issues/494)) ([b18b364](https://github.com/homarr-labs/homarr/commit/b18b3642708dd36b6d269c78e8f0ce6efa6e1d17)) -* **deps:** update tiptap monorepo to v2.5.0 ([#811](https://github.com/homarr-labs/homarr/issues/811)) ([7f341ef](https://github.com/homarr-labs/homarr/commit/7f341efdb304cb9479bcce75b02f3d48ed99a8ad)) -* **deps:** update tiptap monorepo to v2.5.1 ([#813](https://github.com/homarr-labs/homarr/issues/813)) ([08ba282](https://github.com/homarr-labs/homarr/commit/08ba28252872455d960b63d688b13fffbca8edde)) -* **deps:** update tiptap monorepo to v2.5.2 ([#822](https://github.com/homarr-labs/homarr/issues/822)) ([b82128a](https://github.com/homarr-labs/homarr/commit/b82128a90cdef599b976625ab58bc20d30a78964)) -* **deps:** update tiptap monorepo to v2.5.3 ([#825](https://github.com/homarr-labs/homarr/issues/825)) ([015b42a](https://github.com/homarr-labs/homarr/commit/015b42aa61be681fc31359c00113f18331728a31)) -* **deps:** update tiptap monorepo to v2.5.4 ([#828](https://github.com/homarr-labs/homarr/issues/828)) ([baf552b](https://github.com/homarr-labs/homarr/commit/baf552bf52e35616c072e33d26014b0c181b6d46)) -* **deps:** update tiptap monorepo to v2.5.5 ([#853](https://github.com/homarr-labs/homarr/issues/853)) ([c512ddb](https://github.com/homarr-labs/homarr/commit/c512ddba493994f1b5a15dde58c32b704697fa1b)) -* **deps:** update tiptap monorepo to v2.5.6 ([#863](https://github.com/homarr-labs/homarr/issues/863)) ([d70e99c](https://github.com/homarr-labs/homarr/commit/d70e99c9734d8997a1f8a97fdf54aea1da08cc05)) -* **deps:** update tiptap monorepo to v2.5.7 ([#869](https://github.com/homarr-labs/homarr/issues/869)) ([89ab1df](https://github.com/homarr-labs/homarr/commit/89ab1df2dbdb19f4079f98289eeaeff591314fef)) -* **deps:** update tiptap monorepo to v2.5.8 ([#887](https://github.com/homarr-labs/homarr/issues/887)) ([e0566df](https://github.com/homarr-labs/homarr/commit/e0566dfcfa56c50b744a872ee0623f374696efee)) -* **deps:** update tiptap monorepo to v2.5.9 ([#922](https://github.com/homarr-labs/homarr/issues/922)) ([c6bb272](https://github.com/homarr-labs/homarr/commit/c6bb272318eccc4cf9c2790513a89cec650526e5)) -* **deps:** update tiptap monorepo to v2.6.1 ([#970](https://github.com/homarr-labs/homarr/issues/970)) ([4a34ec9](https://github.com/homarr-labs/homarr/commit/4a34ec91e5041acf257a1049a7b0c29e509b1585)) -* **deps:** update tiptap monorepo to v2.6.2 ([#972](https://github.com/homarr-labs/homarr/issues/972)) ([81a13b0](https://github.com/homarr-labs/homarr/commit/81a13b0e59eb776ca55782320f4967993e564819)) -* **deps:** update tiptap monorepo to v2.6.3 ([#980](https://github.com/homarr-labs/homarr/issues/980)) ([cc61e27](https://github.com/homarr-labs/homarr/commit/cc61e27fad4c058df6da8bdf49b2bf44d5fc0206)) -* **deps:** update tiptap monorepo to v2.6.4 ([#981](https://github.com/homarr-labs/homarr/issues/981)) ([0ba647a](https://github.com/homarr-labs/homarr/commit/0ba647ad511f45ad2fb1d35bc05f1876547602d0)) -* **deps:** update tiptap monorepo to v2.6.5 ([#1005](https://github.com/homarr-labs/homarr/issues/1005)) ([d401c8f](https://github.com/homarr-labs/homarr/commit/d401c8fa0ff47caef8e6f17aba39cf52310f6d7e)) -* **deps:** update tiptap monorepo to v2.6.6 ([#1015](https://github.com/homarr-labs/homarr/issues/1015)) ([cbf2ecf](https://github.com/homarr-labs/homarr/commit/cbf2ecfb9d3036e4077968c6ffb6c676b1e46308)) -* **deps:** update tiptap monorepo to v2.7.1 ([#1139](https://github.com/homarr-labs/homarr/issues/1139)) ([657c2ee](https://github.com/homarr-labs/homarr/commit/657c2eef80a6562c45c7d2a3b63fb03edff8eb3e)) -* **deps:** update tiptap monorepo to v2.7.2 ([#1150](https://github.com/homarr-labs/homarr/issues/1150)) ([d0e9e0f](https://github.com/homarr-labs/homarr/commit/d0e9e0f09da9afebf714c201b97528b743cc8915)) -* **deps:** update tiptap monorepo to v2.7.3 ([#1182](https://github.com/homarr-labs/homarr/issues/1182)) ([b2143ed](https://github.com/homarr-labs/homarr/commit/b2143eddeba787670d749a0f1e440936be7136d7)) -* **deps:** update tiptap monorepo to v2.7.4 ([#1186](https://github.com/homarr-labs/homarr/issues/1186)) ([4795c8c](https://github.com/homarr-labs/homarr/commit/4795c8c557f80e0019779f00afc58f053f9d6f40)) -* **deps:** update tiptap monorepo to v2.8.0 ([#1206](https://github.com/homarr-labs/homarr/issues/1206)) ([7dd4d4e](https://github.com/homarr-labs/homarr/commit/7dd4d4ec7be610c510caca1f8aa93e67095d05ed)) -* **deps:** update tiptap monorepo to v2.9.0 ([#1352](https://github.com/homarr-labs/homarr/issues/1352)) ([c3b9d98](https://github.com/homarr-labs/homarr/commit/c3b9d981f78b8131f269ec8b6b43f774196005ab)) -* **deps:** update tiptap monorepo to v2.9.1 ([#1360](https://github.com/homarr-labs/homarr/issues/1360)) ([d4919dc](https://github.com/homarr-labs/homarr/commit/d4919dc908748f61320e24f529a881547a124e7b)) -* **deps:** update typescript-eslint monorepo to ^6.20.0 ([#41](https://github.com/homarr-labs/homarr/issues/41)) ([4815230](https://github.com/homarr-labs/homarr/commit/4815230f8b0d3f9b88e72bbb4fb5f4e87daf81c1)) -* **deps:** update typescript-eslint monorepo to ^6.21.0 ([#58](https://github.com/homarr-labs/homarr/issues/58)) ([e683d61](https://github.com/homarr-labs/homarr/commit/e683d61568b61268dd04c50a31b18028b63a0a1b)) -* **deps:** update typescript-eslint monorepo to ^7.0.2 ([#122](https://github.com/homarr-labs/homarr/issues/122)) ([859eeed](https://github.com/homarr-labs/homarr/commit/859eeed32963f41b906d6dac5f16b9d9cd6ffd9e)) -* **deps:** update typescript-eslint monorepo to ^7.1.0 ([#159](https://github.com/homarr-labs/homarr/issues/159)) ([8e53792](https://github.com/homarr-labs/homarr/commit/8e5379225ad1df796a9f4829f4f8af7a41cae9d8)) -* **deps:** update typescript-eslint monorepo to ^7.1.1 ([#192](https://github.com/homarr-labs/homarr/issues/192)) ([27a63db](https://github.com/homarr-labs/homarr/commit/27a63dbf7a276d615c6de01b47e35830daff5cc9)) -* **deps:** update typescript-eslint monorepo to ^7.10.0 ([#562](https://github.com/homarr-labs/homarr/issues/562)) ([2bc0431](https://github.com/homarr-labs/homarr/commit/2bc0431e4e533476f8f7ecff2114b43759c33d9a)) -* **deps:** update typescript-eslint monorepo to ^7.11.0 ([#565](https://github.com/homarr-labs/homarr/issues/565)) ([c20f7a6](https://github.com/homarr-labs/homarr/commit/c20f7a64a0e47e2604645cc494b9d5cded15219a)) -* **deps:** update typescript-eslint monorepo to ^7.12.0 ([#616](https://github.com/homarr-labs/homarr/issues/616)) ([2623708](https://github.com/homarr-labs/homarr/commit/2623708c6dcf4ccd6c291a2548d68a918220dbed)) -* **deps:** update typescript-eslint monorepo to ^7.2.0 ([#218](https://github.com/homarr-labs/homarr/issues/218)) ([ea79953](https://github.com/homarr-labs/homarr/commit/ea79953353f0645849acbad2613f72d45f3894ea)) -* **deps:** update typescript-eslint monorepo to ^7.3.1 ([#247](https://github.com/homarr-labs/homarr/issues/247)) ([36e509a](https://github.com/homarr-labs/homarr/commit/36e509a474bc38a3b6c012bd566b73054f170f84)) -* **deps:** update typescript-eslint monorepo to ^7.5.0 ([#298](https://github.com/homarr-labs/homarr/issues/298)) ([54a7d1f](https://github.com/homarr-labs/homarr/commit/54a7d1f4ae2e470924d578bd507335e54d6c517a)) -* **deps:** update typescript-eslint monorepo to ^7.6.0 ([#329](https://github.com/homarr-labs/homarr/issues/329)) ([2ccb7d1](https://github.com/homarr-labs/homarr/commit/2ccb7d17655d3b9af67f30aa21a93764eeb81ac4)) -* **deps:** update typescript-eslint monorepo to ^7.7.1 ([#354](https://github.com/homarr-labs/homarr/issues/354)) ([0342a17](https://github.com/homarr-labs/homarr/commit/0342a177bb4a5cb642f79411a6003eca3a3a3e6d)) -* **deps:** update typescript-eslint monorepo to ^7.8.0 ([#395](https://github.com/homarr-labs/homarr/issues/395)) ([584483a](https://github.com/homarr-labs/homarr/commit/584483aa9cf309e3efa83f00ab735797638210ee)) -* **deps:** update typescript-eslint monorepo to ^7.9.0 ([#491](https://github.com/homarr-labs/homarr/issues/491)) ([a702f7d](https://github.com/homarr-labs/homarr/commit/a702f7dc67a3b63667ae019b4d807d54dc925ae0)) -* **deps:** update typescript-eslint monorepo to v7 ([#87](https://github.com/homarr-labs/homarr/issues/87)) ([f913384](https://github.com/homarr-labs/homarr/commit/f91338446df1eafce92842fa0ce9ebdabea7f629)) -* **deps:** update typescript-eslint monorepo to v7.10.0 ([#529](https://github.com/homarr-labs/homarr/issues/529)) ([30fe9fe](https://github.com/homarr-labs/homarr/commit/30fe9fef844e7cac5a59185926643baeb5e5ed2e)) -* **deps:** update xterm monorepo ([#312](https://github.com/homarr-labs/homarr/issues/312)) ([a5b8fdb](https://github.com/homarr-labs/homarr/commit/a5b8fdb3977c6613cfe592b20f57c0388e0c6229)) -* disable env validation in ci ([d7a30cd](https://github.com/homarr-labs/homarr/commit/d7a30cd0dd2dfd0e7db86d0c22780cf4c1e6423e)) -* disable env validation in ci ([c84fb63](https://github.com/homarr-labs/homarr/commit/c84fb63b25b199466cf1ba6f34ec5fd31d2a434c)) -* dispatch request-logger hides negative numbers, dates and date times ([#1506](https://github.com/homarr-labs/homarr/issues/1506)) ([2ffa9d0](https://github.com/homarr-labs/homarr/commit/2ffa9d0e712233b19ade71ec62fcf34de2128340)) -* display on safari ([#1071](https://github.com/homarr-labs/homarr/issues/1071)) ([753d091](https://github.com/homarr-labs/homarr/commit/753d091dbbc5665276461f5e1d79224ea1c0deb7)) -* DnsHole controls timer ([#953](https://github.com/homarr-labs/homarr/issues/953)) ([69e69ee](https://github.com/homarr-labs/homarr/commit/69e69ee315535555a8fd4cb43273357c9a4ce24b)) -* docker build ([#777](https://github.com/homarr-labs/homarr/issues/777)) ([01eb846](https://github.com/homarr-labs/homarr/commit/01eb84654d57afc2164ae8b7912752ecb6631f43)) -* docker build not working ([#1365](https://github.com/homarr-labs/homarr/issues/1365)) ([041006c](https://github.com/homarr-labs/homarr/commit/041006c181d7a1599400ce6d296d773c13f396b0)) -* docker development path in package.json ([#416](https://github.com/homarr-labs/homarr/issues/416)) ([48c2473](https://github.com/homarr-labs/homarr/commit/48c2473ab31354a492b86aa5d2d3319cbcadccea)) -* docker platforms ([f0d6676](https://github.com/homarr-labs/homarr/commit/f0d6676917c06a068aa432f49e5d74fc2ad45631)) -* docker push flag ([eab5c10](https://github.com/homarr-labs/homarr/commit/eab5c10fa6b36c22ee4bf1526d1000bc5137ac7b)) -* docker push flag ([1128110](https://github.com/homarr-labs/homarr/commit/1128110be386297ef0e128da477c1d9572336cad)) -* email verified check is in a newline in users table ([#1218](https://github.com/homarr-labs/homarr/issues/1218)) ([8b5ea3c](https://github.com/homarr-labs/homarr/commit/8b5ea3c5d3af5e904467591b9e066488b6a4abc1)) -* empty wrappers without items should not be visible in view mode ([#1026](https://github.com/homarr-labs/homarr/issues/1026)) ([022fad9](https://github.com/homarr-labs/homarr/commit/022fad92a9aa74c132c91c6e0a942c7d520eac88)) -* everyone group page throws error ([#1450](https://github.com/homarr-labs/homarr/issues/1450)) ([f3ebd6c](https://github.com/homarr-labs/homarr/commit/f3ebd6ccdf2d5964daf50f4b9221d2231a91855d)) -* external users can be added to groups manually ([#1540](https://github.com/homarr-labs/homarr/issues/1540)) ([32e6b8e](https://github.com/homarr-labs/homarr/commit/32e6b8ee45cac46cf71fd5c6cd71558c352b4097)) -* fetch timeout for external requests to small ([#881](https://github.com/homarr-labs/homarr/issues/881)) ([67dad45](https://github.com/homarr-labs/homarr/commit/67dad45214a0dcda9d79abb4c731b7705ceb7f2d)) -* fix binary conflicts for linux ([#1583](https://github.com/homarr-labs/homarr/issues/1583)) ([70ab294](https://github.com/homarr-labs/homarr/commit/70ab29454a53958676de33bb39b9be1ea613e135)) -* fix i18n-ally extension config ([#1462](https://github.com/homarr-labs/homarr/issues/1462)) ([4ba9e94](https://github.com/homarr-labs/homarr/commit/4ba9e94dd6f632492ed250ccc267f5ac72805290)) -* Fix typecheck, lint issues and errors brought to dnshole summary. ([#916](https://github.com/homarr-labs/homarr/issues/916)) ([0cec1db](https://github.com/homarr-labs/homarr/commit/0cec1dbb1743bbe2af03a006c24d3588d5a55d83)) -* github actor name for automatic approval wrong ([#943](https://github.com/homarr-labs/homarr/issues/943)) ([c833f2c](https://github.com/homarr-labs/homarr/commit/c833f2cbf2560919f5e2381678a46d2d8d649854)) -* gridstack not working ([#642](https://github.com/homarr-labs/homarr/issues/642)) ([2c1b52a](https://github.com/homarr-labs/homarr/commit/2c1b52aff95af95b2732c4e86af87fffdcbd6896)) -* groups can be created with empty names ([#1267](https://github.com/homarr-labs/homarr/issues/1267)) ([98cf214](https://github.com/homarr-labs/homarr/commit/98cf214aed9423dbf4e13982641d9e167de4171d)) -* Handle existing user when editing profile ([6e2bd0c](https://github.com/homarr-labs/homarr/commit/6e2bd0ce11697cdfd59500d506e68ac22ed38273)) -* hard to move iframe widget [#1075](https://github.com/homarr-labs/homarr/issues/1075) ([#1101](https://github.com/homarr-labs/homarr/issues/1101)) ([5e77221](https://github.com/homarr-labs/homarr/commit/5e772215a9a26f04fec25d3d983a86e8c53faf7c)) -* health-check widget sorting & last seen ([#1363](https://github.com/homarr-labs/homarr/issues/1363)) ([c37a0e3](https://github.com/homarr-labs/homarr/commit/c37a0e38d950ec24bd33a174a229ee20434fa6f9)) -* icon picker keyboard interactions ([#1666](https://github.com/homarr-labs/homarr/issues/1666)) ([82ec77d](https://github.com/homarr-labs/homarr/commit/82ec77d2dac9764d44417a4e486a099f89b5e39c)) -* icon picker suspense issue ([#1533](https://github.com/homarr-labs/homarr/issues/1533)) ([ecf299e](https://github.com/homarr-labs/homarr/commit/ecf299e03b5906a7f006397ef1df463a2c531468)) -* icon selector is a select not an autocomplete [#515](https://github.com/homarr-labs/homarr/issues/515) ([#675](https://github.com/homarr-labs/homarr/issues/675)) ([e957c6b](https://github.com/homarr-labs/homarr/commit/e957c6b601b1ed1172df8ee998a50a56e4b83f1f)) -* improve ping performance ([#1020](https://github.com/homarr-labs/homarr/issues/1020)) ([b81f5a2](https://github.com/homarr-labs/homarr/commit/b81f5a2ee349f1b8205a86d72d00c4a2e3470d1f)) -* inconsistent session cookie ([#1310](https://github.com/homarr-labs/homarr/issues/1310)) ([12105b3](https://github.com/homarr-labs/homarr/commit/12105b3b2935afec4f43aed05e4e5700986430ea)) -* indexer manager UI behaviour + class naming ([#1134](https://github.com/homarr-labs/homarr/issues/1134)) ([6d4d6ef](https://github.com/homarr-labs/homarr/commit/6d4d6efe3f575830d10e8d04d71b14dcda82223b)) -* insert limit of sqlite is smaller than amount of icons ([#1161](https://github.com/homarr-labs/homarr/issues/1161)) ([9eea8d4](https://github.com/homarr-labs/homarr/commit/9eea8d48e8bc0776d6074840a47c4b4c2ba38347)) -* integration actions hidden for full access users ([#1300](https://github.com/homarr-labs/homarr/issues/1300)) ([476fda2](https://github.com/homarr-labs/homarr/commit/476fda279db3a501a376b5b77eff2ae99b8a0225)) -* integration links in manage section do not work ([#441](https://github.com/homarr-labs/homarr/issues/441)) ([4b80b16](https://github.com/homarr-labs/homarr/commit/4b80b16b530af17649ef71ab9481574b3e9a0159)) -* issue with category removal and ready state ([#129](https://github.com/homarr-labs/homarr/issues/129)) ([1e414af](https://github.com/homarr-labs/homarr/commit/1e414af57c604770118a3fac59941bfaff0ab6db)) -* issue with color scheme in layout ([#1168](https://github.com/homarr-labs/homarr/issues/1168)) ([8f7ed05](https://github.com/homarr-labs/homarr/commit/8f7ed056c435a66d095cdfd43b6e893dfc7e6da3)) -* issues found in security audit ([#1668](https://github.com/homarr-labs/homarr/issues/1668)) ([922101d](https://github.com/homarr-labs/homarr/commit/922101dcbd0c512815b2cbb354cbab0fe80028c0)) -* it was possible to go to the create user page when credentials login disabled ([#1217](https://github.com/homarr-labs/homarr/issues/1217)) ([d63f6d2](https://github.com/homarr-labs/homarr/commit/d63f6d270f496053ae52bc3b9bfe484372c5b9d3)) -* items can not be placed in newly created dynamic section without saving ([#1513](https://github.com/homarr-labs/homarr/issues/1513)) ([73cb0b9](https://github.com/homarr-labs/homarr/commit/73cb0b99accfeb05c63c78ff227db1d5f23b99b2)) -* job translations ([#846](https://github.com/homarr-labs/homarr/issues/846)) ([43e4801](https://github.com/homarr-labs/homarr/commit/43e48010e5f1d7cf65ad779c8684a7b468e43688)) -* local websocket url wrong ([#1328](https://github.com/homarr-labs/homarr/issues/1328)) ([7572634](https://github.com/homarr-labs/homarr/commit/757263478036d01d8fdbabf3857bb6ebd59ba9af)) -* login before pushing image ([4836801](https://github.com/homarr-labs/homarr/commit/4836801004301375220e8181c5f14e56020312d2)) -* login with revalidate path and wrong preferences link ([#654](https://github.com/homarr-labs/homarr/issues/654)) ([8e4ba37](https://github.com/homarr-labs/homarr/commit/8e4ba37f94294577926ae6e668d50b2e151b2d35)) -* make oldmarr app schema less restrictive ([#1495](https://github.com/homarr-labs/homarr/issues/1495)) ([879aa11](https://github.com/homarr-labs/homarr/commit/879aa1152f8e9182c14775672cf371fdc639e223)) -* Manage banner animation hitch fix ([#826](https://github.com/homarr-labs/homarr/issues/826)) ([4e03e7f](https://github.com/homarr-labs/homarr/commit/4e03e7f49d931090636dea7ebed4a0bea9659177)) -* manage links wrong ([#754](https://github.com/homarr-labs/homarr/issues/754)) ([be71114](https://github.com/homarr-labs/homarr/commit/be711149f7d1ef82ab30e43209d6173f2520de57)) -* mantine react table style issue ([#508](https://github.com/homarr-labs/homarr/issues/508)) ([5723295](https://github.com/homarr-labs/homarr/commit/5723295856ae557a25db3b5782e6c4bea6b6c301)) -* mantine-react-table not localized [#333](https://github.com/homarr-labs/homarr/issues/333) ([#873](https://github.com/homarr-labs/homarr/issues/873)) ([4380aa9](https://github.com/homarr-labs/homarr/commit/4380aa9b3e8659bbb95f8d91e35bffc87c8e65c5)) -* matcher for translation middleware only supports en and de ([#1528](https://github.com/homarr-labs/homarr/issues/1528)) ([38143b6](https://github.com/homarr-labs/homarr/commit/38143b679e389633dbd27a2fede866c3696c583c)) -* memory leak caused by many unclosed redis subscriptions ([#750](https://github.com/homarr-labs/homarr/issues/750)) ([998615f](https://github.com/homarr-labs/homarr/commit/998615fc11cfcca1d1a51464550d599addb8e49f)) -* middleware fetch failed for docker container ([#1424](https://github.com/homarr-labs/homarr/issues/1424)) ([b7fc1ae](https://github.com/homarr-labs/homarr/commit/b7fc1ae4bb0aa03595d849d909b997c307dce26c)) -* missing breadcrumb translation, wrong spacing in user layout ([#872](https://github.com/homarr-labs/homarr/issues/872)) ([55a000a](https://github.com/homarr-labs/homarr/commit/55a000a7fc2b2c977af3f25d5196a464c6890745)) -* missing migration for default colorscheme change ([#1335](https://github.com/homarr-labs/homarr/issues/1335)) ([9c5972f](https://github.com/homarr-labs/homarr/commit/9c5972faf45a31ec379fe7a2fdd19548755d27ed)) -* missing translations for apps / integrations [#438](https://github.com/homarr-labs/homarr/issues/438) ([#674](https://github.com/homarr-labs/homarr/issues/674)) ([f358c33](https://github.com/homarr-labs/homarr/commit/f358c33bd37e581d7a3ce02f527eb499f8ae4b85)) -* modal transition not working ([#433](https://github.com/homarr-labs/homarr/issues/433)) ([b888fad](https://github.com/homarr-labs/homarr/commit/b888fad1fc288961f0582464392e3f12751e9146)) -* moving categories up and down is not working ([#1542](https://github.com/homarr-labs/homarr/issues/1542)) ([52d2a88](https://github.com/homarr-labs/homarr/commit/52d2a88b61a6ef8513560e8810bce6fa0867f0a6)) -* mysql migration not working ([#1138](https://github.com/homarr-labs/homarr/issues/1138)) ([003cc51](https://github.com/homarr-labs/homarr/commit/003cc5160c68d73e3cfbc3e933099a9275782b5b)) -* new sections without add and change listeners ([#1230](https://github.com/homarr-labs/homarr/issues/1230)) ([665df53](https://github.com/homarr-labs/homarr/commit/665df53a39cc90d4155b3c8436a88986aa7a5b23)) -* next auth host not trusted ([#144](https://github.com/homarr-labs/homarr/issues/144)) ([b2cee8f](https://github.com/homarr-labs/homarr/commit/b2cee8f6936d526072dd65a59a494081cfb81c16)) -* nextjs is slow dev server ([#364](https://github.com/homarr-labs/homarr/issues/364)) ([b78d32b](https://github.com/homarr-labs/homarr/commit/b78d32b81c6075a3d04abf0e8e7631e8ce6ef49c)) -* node cache cleanup error ([#1124](https://github.com/homarr-labs/homarr/issues/1124)) ([16a5b43](https://github.com/homarr-labs/homarr/commit/16a5b43695f5e8c8d3ba5ac9d1bfe2dec83f3bf1)) -* notebook save button on align buttons ([#1456](https://github.com/homarr-labs/homarr/issues/1456)) ([15abfbb](https://github.com/homarr-labs/homarr/commit/15abfbbdf722b9f996c69072b57105ecfdc647ad)) -* **notebook:** default-content image path ([#1244](https://github.com/homarr-labs/homarr/issues/1244)) ([b5bfe90](https://github.com/homarr-labs/homarr/commit/b5bfe90453b8ad5028b52b856631ec30f3f80afd)) -* open navigation item by default ([#716](https://github.com/homarr-labs/homarr/issues/716)) ([c4b54ed](https://github.com/homarr-labs/homarr/commit/c4b54ed36c2da54457ac58496e62e13856bc0c98)) -* open-api doc generation failing, post patch and delete not exported ([#1565](https://github.com/homarr-labs/homarr/issues/1565)) ([2d7efc3](https://github.com/homarr-labs/homarr/commit/2d7efc3ffacb16c27219c26f20fd0682304927e0)) -* overview in series of sonarr schema is optional ([#880](https://github.com/homarr-labs/homarr/issues/880)) ([406ed16](https://github.com/homarr-labs/homarr/commit/406ed16ce45683d04e7f0293037d1eeae269795d)) -* pass token to cli ([653f42b](https://github.com/homarr-labs/homarr/commit/653f42bccb8a5893eb64d66c4963068b37011cd7)) -* permissions not restricted for certain management pages / actions ([#1219](https://github.com/homarr-labs/homarr/issues/1219)) ([1421ccc](https://github.com/homarr-labs/homarr/commit/1421ccc917fc54a8afcf6ba700d4b0590fa90ed5)) -* ping urls are not reset when restarting ([#924](https://github.com/homarr-labs/homarr/issues/924)) ([365e267](https://github.com/homarr-labs/homarr/commit/365e267b8d7ba75e47af974dec6f427592095185)) -* pnpm dev did not work caused by tsx update ([#638](https://github.com/homarr-labs/homarr/issues/638)) ([fb92c3e](https://github.com/homarr-labs/homarr/commit/fb92c3e95c164b4297c74bbe18461cd08b003112)) -* prevent flickering by removing auto color scheme and default background color ([#1299](https://github.com/homarr-labs/homarr/issues/1299)) ([cd77acd](https://github.com/homarr-labs/homarr/commit/cd77acdfabf6f58aa1973e8db9408379801a8085)) -* rdb files can not be saved because of permission issues bug: redis can not save RDB files [#318](https://github.com/homarr-labs/homarr/issues/318) ([#472](https://github.com/homarr-labs/homarr/issues/472)) ([fd44ee4](https://github.com/homarr-labs/homarr/commit/fd44ee48f4dbd67a1f86a6a3fe7c7c986b87443a)) -* redirect url from login not working ([#952](https://github.com/homarr-labs/homarr/issues/952)) ([349c494](https://github.com/homarr-labs/homarr/commit/349c49462fdf29741910e036e4494909c13b6124)) -* remove unnecessary complex copy and build steps in dockerfile ([#1595](https://github.com/homarr-labs/homarr/issues/1595)) ([2686dad](https://github.com/homarr-labs/homarr/commit/2686dad63017cd3b8e45818bfcb27fa3618f1a15)) -* remove unused properties in SabNZBd schema ([#1415](https://github.com/homarr-labs/homarr/issues/1415)) ([ceafd37](https://github.com/homarr-labs/homarr/commit/ceafd3747b3a56531ca3357f68fd33350cf5c896)) -* Remove version override ([#67](https://github.com/homarr-labs/homarr/issues/67)) ([55ec600](https://github.com/homarr-labs/homarr/commit/55ec60041ac5fd38861220f42e6b6daba1fb3eb3)) -* rename default to home board ([#1538](https://github.com/homarr-labs/homarr/issues/1538)) ([1c4d4f4](https://github.com/homarr-labs/homarr/commit/1c4d4f4e9d39d52d6a8e69f06c1d6246c774ed79)) -* renovate approval run for all pull requests on every pull request change ([#942](https://github.com/homarr-labs/homarr/issues/942)) ([017c378](https://github.com/homarr-labs/homarr/commit/017c378582cca20688acac171bab803597d825b4)) -* renovate approval workflow not running ([#948](https://github.com/homarr-labs/homarr/issues/948)) ([ab7d3f8](https://github.com/homarr-labs/homarr/commit/ab7d3f8e4c82fcee9af6f79c70943633fec9af95)) -* renovate automatic approval typo no file extension ([#572](https://github.com/homarr-labs/homarr/issues/572)) ([c2185e3](https://github.com/homarr-labs/homarr/commit/c2185e34890b028eac7486a52d04967037be2183)) -* renovate config with json does not support comments ([#641](https://github.com/homarr-labs/homarr/issues/641)) ([e46ea71](https://github.com/homarr-labs/homarr/commit/e46ea71bc2f89f02403e8a9597dc02474181776d)) -* restrict access to docker containers page to admins ([#912](https://github.com/homarr-labs/homarr/issues/912)) ([b8b084c](https://github.com/homarr-labs/homarr/commit/b8b084c188b28ba8fb317156433e694e7d37dfbb)) -* revert mysql2 to version 3.9.2 as with 3.9.3 nextjs build fails ([1fc2df1](https://github.com/homarr-labs/homarr/commit/1fc2df19ec6e707f7dc9ca11e60f021dd03fc5aa)) -* rtl common translation unnecessary ([#1246](https://github.com/homarr-labs/homarr/issues/1246)) ([770768e](https://github.com/homarr-labs/homarr/commit/770768eb211259848437522615b7b78ecfca8ee5)) -* sensitive data can be leaked through query parameters ([#1208](https://github.com/homarr-labs/homarr/issues/1208)) ([f24c068](https://github.com/homarr-labs/homarr/commit/f24c06852e0bf6d672b58b784ce34d96581c2c03)) -* server data is loaded on settings page [#363](https://github.com/homarr-labs/homarr/issues/363) ([#414](https://github.com/homarr-labs/homarr/issues/414)) ([7c98b65](https://github.com/homarr-labs/homarr/commit/7c98b65401778a61a4af4206612fa62dd95ba9a5)) -* sessions from inactive providers can still be used ([#1458](https://github.com/homarr-labs/homarr/issues/1458)) ([1105f00](https://github.com/homarr-labs/homarr/commit/1105f0029fd1479e3ab6d8dae8524233c264ca21)) -* sharp is not installed ([#397](https://github.com/homarr-labs/homarr/issues/397)) ([5f24797](https://github.com/homarr-labs/homarr/commit/5f247977fa50405d5daed9f628d1170d15be412d)), closes [#320](https://github.com/homarr-labs/homarr/issues/320) -* specify step image version ([fa2c448](https://github.com/homarr-labs/homarr/commit/fa2c448bac9734662295cb8ebd62f733d3153be2)) -* **spotlight:** x button not clickable, help links open in current tab, bad screen usage on mobile ([#1199](https://github.com/homarr-labs/homarr/issues/1199)) ([42a49e6](https://github.com/homarr-labs/homarr/commit/42a49e6461f1834a1e54563e908fe75457de6d96)) -* styles for light mode ([#1645](https://github.com/homarr-labs/homarr/issues/1645)) ([cf9656d](https://github.com/homarr-labs/homarr/commit/cf9656d91eedc73224e9cfc8871c977988994425)) -* testConnectionAsync url ([#1024](https://github.com/homarr-labs/homarr/issues/1024)) ([e34af86](https://github.com/homarr-labs/homarr/commit/e34af8659b6562e1ec3ebc502eff52ef3c699654)) -* trailing slash integration url issues ([#1571](https://github.com/homarr-labs/homarr/issues/1571)) ([b277f44](https://github.com/homarr-labs/homarr/commit/b277f444b2c01e251b53069c17674eb4188b5f8d)) -* transfer group not invalidating path ([#1539](https://github.com/homarr-labs/homarr/issues/1539)) ([74e1b6b](https://github.com/homarr-labs/homarr/commit/74e1b6b54494455fecc37f673569482c3fad1ce4)) -* trpc error at least one integration ([#1660](https://github.com/homarr-labs/homarr/issues/1660)) ([f857105](https://github.com/homarr-labs/homarr/commit/f8571059941a4c13b9b8bca24b399ca06a8aa13f)) -* try using other variable ([5c68ac9](https://github.com/homarr-labs/homarr/commit/5c68ac9e2eda1c28befd25a14cc3c2b6e3965c34)) -* tsx not working ([#434](https://github.com/homarr-labs/homarr/issues/434)) ([5abd438](https://github.com/homarr-labs/homarr/commit/5abd438a494048738017a976faa35e1c79c7fd96)) -* typo in automatic release commit message ([#726](https://github.com/homarr-labs/homarr/issues/726)) ([8fc2884](https://github.com/homarr-labs/homarr/commit/8fc28844bbedb4edbdc504aba6330bad06d34e93)) -* typo in renovate config name ([#557](https://github.com/homarr-labs/homarr/issues/557)) ([4d1e4d5](https://github.com/homarr-labs/homarr/commit/4d1e4d55bc56a567aa5ae70a1c2d6bd7ed738954)) -* unable to select integration on board page ([#450](https://github.com/homarr-labs/homarr/issues/450)) ([c884644](https://github.com/homarr-labs/homarr/commit/c88464498fcca95232e87b684b20e932891b939c)) -* Update check for user existence ([65025a5](https://github.com/homarr-labs/homarr/commit/65025a5dda4414aa98ac042b64b22f15ddc8bff8)) -* use correct branch for tag compare ([0c7f479](https://github.com/homarr-labs/homarr/commit/0c7f47995211f31fa81d0f27b9a0d901dd2e422c)) -* user is undefined when using use-suspense-query ([#1498](https://github.com/homarr-labs/homarr/issues/1498)) ([18b579e](https://github.com/homarr-labs/homarr/commit/18b579eb5f2ce77ac19a2bd9fee9c99025ab1c2d)) -* various issues with docker image workflow ([#1172](https://github.com/homarr-labs/homarr/issues/1172)) ([d029f48](https://github.com/homarr-labs/homarr/commit/d029f48f799bc9ff7e01c4b85194b58e050f0c5b)) -* videos not playing automatically on iOS / mobile ([#875](https://github.com/homarr-labs/homarr/issues/875)) ([8e10c48](https://github.com/homarr-labs/homarr/commit/8e10c48d2f182b1f11baac8747a0701019a4387c)) -* websockets on https do not work ([#1444](https://github.com/homarr-labs/homarr/issues/1444)) ([0aa72d1](https://github.com/homarr-labs/homarr/commit/0aa72d118c6c61798cff3406256e4253d0ad5aab)) -* wevbsocket url is always localhost ([#1072](https://github.com/homarr-labs/homarr/issues/1072)) ([8c20553](https://github.com/homarr-labs/homarr/commit/8c205535eb2d2e3a6efb26696460f1c60c58170e)) -* when no dead icons, all icons are removed ([#516](https://github.com/homarr-labs/homarr/issues/516)) ([8e8f908](https://github.com/homarr-labs/homarr/commit/8e8f9081b029e8a01e4dcfcc14e6cd259732c519)) -* when removing one item and then adding another one that newly added one can not be moved ([#1025](https://github.com/homarr-labs/homarr/issues/1025)) ([2738f40](https://github.com/homarr-labs/homarr/commit/2738f40c5e3028822c4586556fddc16af5aa7d58)) -* workflow inputs and docker push ([#1123](https://github.com/homarr-labs/homarr/issues/1123)) ([c8dfbc8](https://github.com/homarr-labs/homarr/commit/c8dfbc8e2d3fd50958b124bdc4e1ad6b0af8f7ca)) -* wrong id for renovate auto approval ([#957](https://github.com/homarr-labs/homarr/issues/957)) ([67195c6](https://github.com/homarr-labs/homarr/commit/67195c605139dfd4b3cd1e7d7e627752e71a7f1f)) -* xterm-addon-fit deprecated ([#321](https://github.com/homarr-labs/homarr/issues/321)) ([e6e6e4e](https://github.com/homarr-labs/homarr/commit/e6e6e4e7d639277c6b23d389721de81f7abd68d0)) +- actions user has no permission to are shown in spotlight ([#1452](https://github.com/homarr-labs/homarr/issues/1452)) ([04895da](https://github.com/homarr-labs/homarr/commit/04895da08a72864a55d6bb09524588ba0d9a06c1)) +- add beforeunload logic for board in edit mode ([#1531](https://github.com/homarr-labs/homarr/issues/1531)) ([225356c](https://github.com/homarr-labs/homarr/commit/225356cc4f49a8a8178f9d7dffc3283bc641b3d0)) +- add missing tags ([f23831b](https://github.com/homarr-labs/homarr/commit/f23831be5ec257775ca9ce116a50f025cac65c2d)) +- add persists credentials false to checkout of release pipeline ([#1691](https://github.com/homarr-labs/homarr/issues/1691)) ([daf7ea5](https://github.com/homarr-labs/homarr/commit/daf7ea56c5ce05803efc475ad64c5abb6a0784ea)) +- add rtl compliance for symbols [#366](https://github.com/homarr-labs/homarr/issues/366) ([#406](https://github.com/homarr-labs/homarr/issues/406)) ([0278e3a](https://github.com/homarr-labs/homarr/commit/0278e3a854455a48c53ab394d4c4e65734f535ca)) +- add sharp ([#241](https://github.com/homarr-labs/homarr/issues/241)) ([0440af3](https://github.com/homarr-labs/homarr/commit/0440af3566ce7e57eaedd6921c16143943647bd4)) +- add subscription to health monitoring widget ([#1210](https://github.com/homarr-labs/homarr/issues/1210)) ([ce67fcd](https://github.com/homarr-labs/homarr/commit/ce67fcd57cd56fe68105c269a9f2377bbc89e61b)) +- adding volume /appdata removes created directories ([#1445](https://github.com/homarr-labs/homarr/issues/1445)) ([fe4dfc4](https://github.com/homarr-labs/homarr/commit/fe4dfc484bcc5da8d3901d042adc5d3cf3ea9fbc)) +- alert that certain fields in user settings are disabled is always shown ([#928](https://github.com/homarr-labs/homarr/issues/928)) ([9258c39](https://github.com/homarr-labs/homarr/commit/9258c397e0689bf46969614f3c634b5af20a2d8c)) +- Allow username to be capitalized on basic credentials login ([#1585](https://github.com/homarr-labs/homarr/issues/1585)) ([a1a6dc9](https://github.com/homarr-labs/homarr/commit/a1a6dc9d6e345ff102d69164d4bf2d7020db0ea4)) +- api keys authentication does not work [#1511](https://github.com/homarr-labs/homarr/issues/1511) ([#1512](https://github.com/homarr-labs/homarr/issues/1512)) ([72eda1f](https://github.com/homarr-labs/homarr/commit/72eda1f225cece3d317c66b4b98a481328962d63)) +- auth broken cause of consistent table column rename ([#1532](https://github.com/homarr-labs/homarr/issues/1532)) ([4a94d60](https://github.com/homarr-labs/homarr/commit/4a94d602c0cce7796cde7c08a5670e045452c2c5)) +- auto-merge crowdin pr not working ([#1664](https://github.com/homarr-labs/homarr/issues/1664)) ([f330c7e](https://github.com/homarr-labs/homarr/commit/f330c7e4f1a8e097e2f594c47061f98c7c9e0034)) +- auto-merge for crowdin download pull request not working ([#1661](https://github.com/homarr-labs/homarr/issues/1661)) ([5bdc669](https://github.com/homarr-labs/homarr/commit/5bdc669e07c788f3b47009a4f5c3c2c785dda111)) +- base branch for semver ([a8748fa](https://github.com/homarr-labs/homarr/commit/a8748fa439c481d7238a32b99184e9fce667a709)) +- cache is not exportet from react ([#417](https://github.com/homarr-labs/homarr/issues/417)) ([fba767b](https://github.com/homarr-labs/homarr/commit/fba767bde3d17c09d563ccea352cd8e4171e84f8)) +- change docker concurrency group to allow multiple deployments to different branches ([#1687](https://github.com/homarr-labs/homarr/issues/1687)) ([93abe8f](https://github.com/homarr-labs/homarr/commit/93abe8f6a2bfe012b6c03c7994e5334f22b6e5e8)) +- change node-version for composite setup action to 22, remove unnecessary installation of node from docker deployment ([#1429](https://github.com/homarr-labs/homarr/issues/1429)) ([319fb47](https://github.com/homarr-labs/homarr/commit/319fb477444bae5cd4c847af9ebf9e35359fbb03)) +- change permission for github action to contents write ([#1689](https://github.com/homarr-labs/homarr/issues/1689)) ([0f029b3](https://github.com/homarr-labs/homarr/commit/0f029b384d1699ea8ee784651b97b88fd64613c6)) +- color scheme manager should use cookie and not session value ([#1329](https://github.com/homarr-labs/homarr/issues/1329)) ([799d6c5](https://github.com/homarr-labs/homarr/commit/799d6c5d4a59c65d3e2f902843dfc86910b8496f)) +- confirm not selected by default in confirm modal ([#1232](https://github.com/homarr-labs/homarr/issues/1232)) ([ac07504](https://github.com/homarr-labs/homarr/commit/ac0750452cd4788cba48d3af720240e063080fba)) +- container image always being on AMD64 arch ([#1173](https://github.com/homarr-labs/homarr/issues/1173)) ([65f2611](https://github.com/homarr-labs/homarr/commit/65f26117fc491958922cd863801cc049479766af)) +- controller is already closed trpc subscription observable error ([#743](https://github.com/homarr-labs/homarr/issues/743)) ([41dba7b](https://github.com/homarr-labs/homarr/commit/41dba7b516880098ae923d45f2065875cb6c70da)) +- correctly set pr description ([#778](https://github.com/homarr-labs/homarr/issues/778)) ([f58c38a](https://github.com/homarr-labs/homarr/commit/f58c38a1aa654acc474b492610452a9c38d20f42)) +- crash with no user in session ([547f75d](https://github.com/homarr-labs/homarr/commit/547f75d19cb08cd0eac6978cb9a6eb107a563edd)) +- create board submit button inverted ([0ee8c5a](https://github.com/homarr-labs/homarr/commit/0ee8c5ad91dfe70ef27af3fe9a47918bab23a665)) +- create user async is called twice ([7fa120c](https://github.com/homarr-labs/homarr/commit/7fa120c47490ab3e80fb8db0921d9afa3e12cfee)) +- credentials auth not working ([#1284](https://github.com/homarr-labs/homarr/issues/1284)) ([511c9a4](https://github.com/homarr-labs/homarr/commit/511c9a4dbbcaa3846bcd5a3dfe1827793e398ff4)) +- credentials login not working cause of cookie secure flag not possible for http ([#1421](https://github.com/homarr-labs/homarr/issues/1421)) ([cf5bcab](https://github.com/homarr-labs/homarr/commit/cf5bcab732924ef5b7a3eabf2d0a8760a59d6cb6)) +- db port validation for env variable wrong ([#1137](https://github.com/homarr-labs/homarr/issues/1137)) ([d01ddd6](https://github.com/homarr-labs/homarr/commit/d01ddd61b6fe3583412c7a553cfba8d32ae797a7)) +- default branch for tag compare ([#597](https://github.com/homarr-labs/homarr/issues/597)) ([7cc2736](https://github.com/homarr-labs/homarr/commit/7cc2736d68baaa5730e598b6c8e2cd55fa73711d)) +- defaultTitle invalid attribute on div ([#350](https://github.com/homarr-labs/homarr/issues/350)) ([4970c3a](https://github.com/homarr-labs/homarr/commit/4970c3a1b2545feb3bc20cc6605f8f16a28a8220)) +- deployment pipeline for docker not working ([#860](https://github.com/homarr-labs/homarr/issues/860)) ([90ef982](https://github.com/homarr-labs/homarr/commit/90ef982066b528e891bc3796256b2725ec1addf3)) +- **deps:** update dependency @auth/core to ^0.25.0 ([#29](https://github.com/homarr-labs/homarr/issues/29)) ([8bcbc45](https://github.com/homarr-labs/homarr/commit/8bcbc45943358d580712e0990ba2bb3c2c62d057)) +- **deps:** update dependency @auth/core to ^0.26.3 ([#54](https://github.com/homarr-labs/homarr/issues/54)) ([5cbd02b](https://github.com/homarr-labs/homarr/commit/5cbd02b142da68f067ef9831c6b47f117fbdc8e4)) +- **deps:** update dependency @auth/core to ^0.27.0 ([#89](https://github.com/homarr-labs/homarr/issues/89)) ([6c5e475](https://github.com/homarr-labs/homarr/commit/6c5e4752eaf7a07f9e80951541108643efb0faae)) +- **deps:** update dependency @auth/core to ^0.28.0 ([#169](https://github.com/homarr-labs/homarr/issues/169)) ([aa19139](https://github.com/homarr-labs/homarr/commit/aa19139cf7c4bb4ea6b57c3ca274fff533c2bb2a)) +- **deps:** update dependency @auth/core to ^0.28.1 ([#266](https://github.com/homarr-labs/homarr/issues/266)) ([c72f4bb](https://github.com/homarr-labs/homarr/commit/c72f4bb80de55c6a7dd94e142ce3b27c9073d33e)) +- **deps:** update dependency @auth/core to ^0.28.2 ([#292](https://github.com/homarr-labs/homarr/issues/292)) ([ba16ba1](https://github.com/homarr-labs/homarr/commit/ba16ba138209e843f1ee7304ebe1af138b6995fa)) +- **deps:** update dependency @auth/core to ^0.29.0 ([#327](https://github.com/homarr-labs/homarr/issues/327)) ([719d1cd](https://github.com/homarr-labs/homarr/commit/719d1cd845a3d6565c01d4f1846e9192038c1ce2)) +- **deps:** update dependency @auth/core to ^0.30.0 ([#358](https://github.com/homarr-labs/homarr/issues/358)) ([f6c0f3a](https://github.com/homarr-labs/homarr/commit/f6c0f3ab78f68cffc1ad2305c19f22b725b7a037)) +- **deps:** update dependency @auth/core to ^0.31.0 ([#473](https://github.com/homarr-labs/homarr/issues/473)) ([95ddd03](https://github.com/homarr-labs/homarr/commit/95ddd03763532658c620c50c698c14ed7cd01894)) +- **deps:** update dependency @auth/core to ^0.32.0 ([#603](https://github.com/homarr-labs/homarr/issues/603)) ([dc3b007](https://github.com/homarr-labs/homarr/commit/dc3b00736eabc4a65febb6ae9a8fd9779edb1cdf)) +- **deps:** update dependency @auth/core to ^0.33.0 ([#693](https://github.com/homarr-labs/homarr/issues/693)) ([171fe40](https://github.com/homarr-labs/homarr/commit/171fe40fd59ee1b21bf825a59b0f1792f627262f)) +- **deps:** update dependency @auth/core to ^0.34.0 ([#700](https://github.com/homarr-labs/homarr/issues/700)) ([9087f4b](https://github.com/homarr-labs/homarr/commit/9087f4bfdf263490b6d0e318e1af957dba493f09)) +- **deps:** update dependency @auth/core to ^0.34.1 ([#702](https://github.com/homarr-labs/homarr/issues/702)) ([05702be](https://github.com/homarr-labs/homarr/commit/05702bede88f86ef9014b8f7efa49b8d8a3ceca4)) +- **deps:** update dependency @auth/core to ^0.34.2 ([#876](https://github.com/homarr-labs/homarr/issues/876)) ([9181f11](https://github.com/homarr-labs/homarr/commit/9181f11b137f6327b558fabf6fe8b79de7ff345b)) +- **deps:** update dependency @auth/core to ^0.35.0 ([#1129](https://github.com/homarr-labs/homarr/issues/1129)) ([f9cc34c](https://github.com/homarr-labs/homarr/commit/f9cc34c12f1c8c3334f34a72322852a1e9e8e007)) +- **deps:** update dependency @auth/core to ^0.35.1 ([#1176](https://github.com/homarr-labs/homarr/issues/1176)) ([16e7f93](https://github.com/homarr-labs/homarr/commit/16e7f938bd2604cc2067466b56725ebe9f9743f9)) +- **deps:** update dependency @auth/core to ^0.35.2 ([#1180](https://github.com/homarr-labs/homarr/issues/1180)) ([f495383](https://github.com/homarr-labs/homarr/commit/f495383bcf2a725d82628067c19e763c84c8bdc1)) +- **deps:** update dependency @auth/core to ^0.35.3 ([#1193](https://github.com/homarr-labs/homarr/issues/1193)) ([1994a59](https://github.com/homarr-labs/homarr/commit/1994a5938d5cbb33a1e6cae0676d9350c9424f82)) +- **deps:** update dependency @auth/core to ^0.36.0 ([#1250](https://github.com/homarr-labs/homarr/issues/1250)) ([d0d2a82](https://github.com/homarr-labs/homarr/commit/d0d2a82a68f9155564d92ce925ac7d8cd80f42ee)) +- **deps:** update dependency @auth/core to ^0.37.0 ([#1272](https://github.com/homarr-labs/homarr/issues/1272)) ([8bcba35](https://github.com/homarr-labs/homarr/commit/8bcba350d58564b03cb2ff3296f8ddf2c77d0dae)) +- **deps:** update dependency @auth/core to ^0.37.1 ([#1323](https://github.com/homarr-labs/homarr/issues/1323)) ([dac2b50](https://github.com/homarr-labs/homarr/commit/dac2b5063bb892cdc5079a9957eb9199b6d62738)) +- **deps:** update dependency @auth/core to ^0.37.2 ([#1338](https://github.com/homarr-labs/homarr/issues/1338)) ([aa2d2f8](https://github.com/homarr-labs/homarr/commit/aa2d2f8c4b1b50e07cb68fb1bd76d6561fedb716)) +- **deps:** update dependency @auth/core to ^0.37.3 ([#1416](https://github.com/homarr-labs/homarr/issues/1416)) ([7a07f57](https://github.com/homarr-labs/homarr/commit/7a07f57d0c34fb2c5e98680b351254ab32e9a593)) +- **deps:** update dependency @auth/core to ^0.37.4 ([#1492](https://github.com/homarr-labs/homarr/issues/1492)) ([d4f0aa7](https://github.com/homarr-labs/homarr/commit/d4f0aa761d95cb2b7f72787b95b0033faba072c3)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.5.0 ([#30](https://github.com/homarr-labs/homarr/issues/30)) ([191d773](https://github.com/homarr-labs/homarr/commit/191d773aaf55209d67be841e4f24f24e6439ca85)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.6.3 ([#52](https://github.com/homarr-labs/homarr/issues/52)) ([6797cca](https://github.com/homarr-labs/homarr/commit/6797cca25945da5944966622c0cba5a9e0a263fa)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.7.0 ([#90](https://github.com/homarr-labs/homarr/issues/90)) ([1139352](https://github.com/homarr-labs/homarr/commit/11393525d9bfc192818c1ef2d80c3d41f56fcca3)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.8.0 ([#170](https://github.com/homarr-labs/homarr/issues/170)) ([50fd4c1](https://github.com/homarr-labs/homarr/commit/50fd4c17adfac217d7908d612fe10ee97171edac)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.8.1 ([#267](https://github.com/homarr-labs/homarr/issues/267)) ([98a8eaa](https://github.com/homarr-labs/homarr/commit/98a8eaac0950e53864cb87ee722f353df6c56c56)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.8.2 ([#293](https://github.com/homarr-labs/homarr/issues/293)) ([fbc69f6](https://github.com/homarr-labs/homarr/commit/fbc69f6078ddae657646247db77c425773ab5170)) +- **deps:** update dependency @auth/drizzle-adapter to ^0.9.0 ([#328](https://github.com/homarr-labs/homarr/issues/328)) ([7fb0dec](https://github.com/homarr-labs/homarr/commit/7fb0decd5bde0855a191c69f52f426d104bf7151)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.1.0 ([#474](https://github.com/homarr-labs/homarr/issues/474)) ([82d41ab](https://github.com/homarr-labs/homarr/commit/82d41abf460556ce62f04a700d47208201bdd595)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.2.0 ([#604](https://github.com/homarr-labs/homarr/issues/604)) ([2e044ac](https://github.com/homarr-labs/homarr/commit/2e044ac871fb451160b0619ee430eba3f962c668)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.3.0 ([#694](https://github.com/homarr-labs/homarr/issues/694)) ([4291bde](https://github.com/homarr-labs/homarr/commit/4291bde94f6017c92d44dce50cb795d46f54f9c6)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.4.1 ([#701](https://github.com/homarr-labs/homarr/issues/701)) ([324a643](https://github.com/homarr-labs/homarr/commit/324a643fd1abad4b98bcd14934e4bd23f04e8260)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.4.2 ([#877](https://github.com/homarr-labs/homarr/issues/877)) ([37309e0](https://github.com/homarr-labs/homarr/commit/37309e07279ad46cb3e9e4a29033966d5a34d00a)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.5.0 ([#1130](https://github.com/homarr-labs/homarr/issues/1130)) ([929054d](https://github.com/homarr-labs/homarr/commit/929054d5bddd9863671227c2bc71e07ff4b197be)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.5.1 ([#1177](https://github.com/homarr-labs/homarr/issues/1177)) ([4e431b4](https://github.com/homarr-labs/homarr/commit/4e431b4f8971f18387f84553d1e644980733b383)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.5.2 ([#1181](https://github.com/homarr-labs/homarr/issues/1181)) ([17d6229](https://github.com/homarr-labs/homarr/commit/17d6229a0fadb56f2522256a03e15cca3fb7948e)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.5.3 ([#1194](https://github.com/homarr-labs/homarr/issues/1194)) ([adb59b2](https://github.com/homarr-labs/homarr/commit/adb59b292bd5b6df50c60eac17b2a77d3d28696c)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.6.0 ([#1251](https://github.com/homarr-labs/homarr/issues/1251)) ([9c5ca6f](https://github.com/homarr-labs/homarr/commit/9c5ca6f9069f8b6089212638009d098b3d76298c)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.6.1 ([#1258](https://github.com/homarr-labs/homarr/issues/1258)) ([dea6254](https://github.com/homarr-labs/homarr/commit/dea62547e0f51b6607eef5d278202081e6100509)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.0 ([#1273](https://github.com/homarr-labs/homarr/issues/1273)) ([a44ead0](https://github.com/homarr-labs/homarr/commit/a44ead09a39ff3d83d646622f29b4c236d078dc4)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.1 ([#1324](https://github.com/homarr-labs/homarr/issues/1324)) ([b1393fa](https://github.com/homarr-labs/homarr/commit/b1393fa59b35d84968fd5d6ecddb29e3c22b4aa3)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.2 ([#1339](https://github.com/homarr-labs/homarr/issues/1339)) ([c5cc21a](https://github.com/homarr-labs/homarr/commit/c5cc21a4b0537d2396ba8fe79eaeff0a008a5e75)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.3 ([#1417](https://github.com/homarr-labs/homarr/issues/1417)) ([b45eeb9](https://github.com/homarr-labs/homarr/commit/b45eeb95e94b1288bb97b45b1dd6eca3728cde72)) +- **deps:** update dependency @auth/drizzle-adapter to ^1.7.4 ([#1493](https://github.com/homarr-labs/homarr/issues/1493)) ([e9a74a0](https://github.com/homarr-labs/homarr/commit/e9a74a01b900f083143b93c8df73fcaa98009ea0)) +- **deps:** update dependency @auth/drizzle-adapter to v1 ([#359](https://github.com/homarr-labs/homarr/issues/359)) ([ea528ea](https://github.com/homarr-labs/homarr/commit/ea528ea076fec672d7ee57a23ee66244d987f103)) +- **deps:** update dependency @ctrl/deluge to v7 ([#1468](https://github.com/homarr-labs/homarr/issues/1468)) ([70f9dc5](https://github.com/homarr-labs/homarr/commit/70f9dc54606d2518afdd5cef84f6623cfdfa8fd3)) +- **deps:** update dependency @ctrl/qbittorrent to ^9.1.0 ([#1466](https://github.com/homarr-labs/homarr/issues/1466)) ([27931be](https://github.com/homarr-labs/homarr/commit/27931be9825a0ee1a4942abb560127c4e2286aa4)) +- **deps:** update dependency @ctrl/transmission to ^7.1.0 ([#1467](https://github.com/homarr-labs/homarr/issues/1467)) ([f220bb6](https://github.com/homarr-labs/homarr/commit/f220bb62445219f9d010e9a28bcb78789a63d368)) +- **deps:** update dependency @ctrl/transmission to v7 ([#1103](https://github.com/homarr-labs/homarr/issues/1103)) ([5986160](https://github.com/homarr-labs/homarr/commit/59861602652a5717e74a342059cd403151d8a6fd)) +- **deps:** update dependency @dnd-kit/core to ^6.2.0 ([#1534](https://github.com/homarr-labs/homarr/issues/1534)) ([5a3d974](https://github.com/homarr-labs/homarr/commit/5a3d9745d985cccca69f9bbfdf0d0ee922de8cbc)) +- **deps:** update dependency @dnd-kit/core to ^6.3.0 ([#1608](https://github.com/homarr-labs/homarr/issues/1608)) ([6c7cdb3](https://github.com/homarr-labs/homarr/commit/6c7cdb3adb6178888e4e3a5e328433f19803cd29)) +- **deps:** update dependency @dnd-kit/core to ^6.3.1 ([#1613](https://github.com/homarr-labs/homarr/issues/1613)) ([79d52b6](https://github.com/homarr-labs/homarr/commit/79d52b690533973e8ff00a1b4920c3f2cbcd417b)) +- **deps:** update dependency @dnd-kit/sortable to v10 ([#1609](https://github.com/homarr-labs/homarr/issues/1609)) ([1037a74](https://github.com/homarr-labs/homarr/commit/1037a747ea0c6e59fc2efb6562c49d4a3bca7465)) +- **deps:** update dependency @dnd-kit/sortable to v9 ([#1535](https://github.com/homarr-labs/homarr/issues/1535)) ([b68977c](https://github.com/homarr-labs/homarr/commit/b68977c52c84ae9742fd52b554d4838409ab76a6)) +- **deps:** update dependency @drizzle-team/brocli to ^0.10.0 ([#937](https://github.com/homarr-labs/homarr/issues/937)) ([a80b49a](https://github.com/homarr-labs/homarr/commit/a80b49a03e8174a1c4ae7e7abc8c9d32939946b6)) +- **deps:** update dependency @drizzle-team/brocli to ^0.10.1 ([#974](https://github.com/homarr-labs/homarr/issues/974)) ([ba3f173](https://github.com/homarr-labs/homarr/commit/ba3f1739f4be88b84f7c782936fc5c91bfa49fae)) +- **deps:** update dependency @drizzle-team/brocli to ^0.10.2 ([#1380](https://github.com/homarr-labs/homarr/issues/1380)) ([8d2d151](https://github.com/homarr-labs/homarr/commit/8d2d151787b4596e2af79e00345fc1ba40884535)) +- **deps:** update dependency @drizzle-team/brocli to ^0.11.0 ([#1427](https://github.com/homarr-labs/homarr/issues/1427)) ([e332a6f](https://github.com/homarr-labs/homarr/commit/e332a6fcbe719defc29f0ba7ada88fb3434784d9)) +- **deps:** update dependency @homarr/gridstack to v1.0.2 ([#542](https://github.com/homarr-labs/homarr/issues/542)) ([1569862](https://github.com/homarr-labs/homarr/commit/1569862baf77b3a8475c4aacc6f7ae5774be09cd)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.2.0 ([#227](https://github.com/homarr-labs/homarr/issues/227)) ([179ceae](https://github.com/homarr-labs/homarr/commit/179ceaebf05f53c434e245d1eb7b95a5be3c4d96)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.2.1 ([#243](https://github.com/homarr-labs/homarr/issues/243)) ([c5428ef](https://github.com/homarr-labs/homarr/commit/c5428efd60fa5217c7191bc3404cac420e9539be)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.3.0 ([#718](https://github.com/homarr-labs/homarr/issues/718)) ([7a14c25](https://github.com/homarr-labs/homarr/commit/7a14c255be48b9b8e92f7918f6af68a211e2666e)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.3.1 ([#784](https://github.com/homarr-labs/homarr/issues/784)) ([0a4ff4b](https://github.com/homarr-labs/homarr/commit/0a4ff4b883a40970e4d4b733aa096929ae6ec11a)) +- **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.4.0 ([#1441](https://github.com/homarr-labs/homarr/issues/1441)) ([7cd3156](https://github.com/homarr-labs/homarr/commit/7cd3156bd627b983ebe7eba4ace82535b8a5e913)) +- **deps:** update dependency @jellyfin/sdk to ^0.11.0 ([#1384](https://github.com/homarr-labs/homarr/issues/1384)) ([7a4c9a9](https://github.com/homarr-labs/homarr/commit/7a4c9a9b2e72247577a61285546b0f74f5055d53)) +- **deps:** update dependency @million/lint to v1.0.0 ([#1212](https://github.com/homarr-labs/homarr/issues/1212)) ([b3f6645](https://github.com/homarr-labs/homarr/commit/b3f6645783bc4132480669113dfddac0939c5aeb)) +- **deps:** update dependency @million/lint to v1.0.10 ([#1293](https://github.com/homarr-labs/homarr/issues/1293)) ([ed52b26](https://github.com/homarr-labs/homarr/commit/ed52b26f6d6938d653527af94f341c3b5a69e093)) +- **deps:** update dependency @million/lint to v1.0.11 ([#1294](https://github.com/homarr-labs/homarr/issues/1294)) ([c707b4b](https://github.com/homarr-labs/homarr/commit/c707b4b10ff38e6cf299a503bd8176313d47f3ff)) +- **deps:** update dependency @million/lint to v1.0.12 ([#1459](https://github.com/homarr-labs/homarr/issues/1459)) ([ce32b48](https://github.com/homarr-labs/homarr/commit/ce32b4839d5074a38922c8bff389524d3e4619f4)) +- **deps:** update dependency @million/lint to v1.0.13 ([#1557](https://github.com/homarr-labs/homarr/issues/1557)) ([f2268c8](https://github.com/homarr-labs/homarr/commit/f2268c8041955c39206b1b8373278f170f76eae0)) +- **deps:** update dependency @million/lint to v1.0.14 ([#1647](https://github.com/homarr-labs/homarr/issues/1647)) ([4c7058b](https://github.com/homarr-labs/homarr/commit/4c7058b159858f3873aaf5dd95d5581696b3f30f)) +- **deps:** update dependency @million/lint to v1.0.7 ([#1225](https://github.com/homarr-labs/homarr/issues/1225)) ([770a0d6](https://github.com/homarr-labs/homarr/commit/770a0d63f9bab2f06e859bebe525ab9b222a5351)) +- **deps:** update dependency @million/lint to v1.0.8 ([#1231](https://github.com/homarr-labs/homarr/issues/1231)) ([547287d](https://github.com/homarr-labs/homarr/commit/547287dba1d37858f5406011bcbed20cbce08c9a)) +- **deps:** update dependency @million/lint to v1.0.9 ([#1255](https://github.com/homarr-labs/homarr/issues/1255)) ([1d281c0](https://github.com/homarr-labs/homarr/commit/1d281c0cc947612b21f65a1beca41e37a81403b0)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.10.1 ([#375](https://github.com/homarr-labs/homarr/issues/375)) ([73a72dc](https://github.com/homarr-labs/homarr/commit/73a72dc6755ee39fb1282ddde347a84d6aa8419f)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.11.0 ([#851](https://github.com/homarr-labs/homarr/issues/851)) ([88e5ac2](https://github.com/homarr-labs/homarr/commit/88e5ac2f71ed21e9a99969210b293e51d34b5106)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.11.1 ([#1029](https://github.com/homarr-labs/homarr/issues/1029)) ([e193c1c](https://github.com/homarr-labs/homarr/commit/e193c1c6f52c3a3e0072262227af82481d71b088)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.8.0 ([#31](https://github.com/homarr-labs/homarr/issues/31)) ([f8a3aae](https://github.com/homarr-labs/homarr/commit/f8a3aae1163d1b5d645e7e9fe0228846a856d4e6)) +- **deps:** update dependency @t3-oss/env-nextjs to ^0.9.2 ([#69](https://github.com/homarr-labs/homarr/issues/69)) ([11d1568](https://github.com/homarr-labs/homarr/commit/11d15687149f2bf55aba1999f368436b15b4a9ce)) +- **deps:** update dependency @tabler/icons-react to ^2.47.0 ([#32](https://github.com/homarr-labs/homarr/issues/32)) ([6a892e0](https://github.com/homarr-labs/homarr/commit/6a892e02c8aadcbfb192a65b56543ee27a3dc966)) +- **deps:** update dependency @tabler/icons-react to ^3.0.3 ([#229](https://github.com/homarr-labs/homarr/issues/229)) ([64354e4](https://github.com/homarr-labs/homarr/commit/64354e4b43ce4c7e9e2f1c816e2af8e3c15d905b)) +- **deps:** update dependency @tabler/icons-react to ^3.1.0 ([#236](https://github.com/homarr-labs/homarr/issues/236)) ([333aaf3](https://github.com/homarr-labs/homarr/commit/333aaf34dc85d24b9f7cf6451d65f566369ffa21)) +- **deps:** update dependency @tabler/icons-react to ^3.10.0 ([#769](https://github.com/homarr-labs/homarr/issues/769)) ([bf70143](https://github.com/homarr-labs/homarr/commit/bf70143ccab2ef6a35d739279af91c51e0be72e4)) +- **deps:** update dependency @tabler/icons-react to ^3.11.0 ([#818](https://github.com/homarr-labs/homarr/issues/818)) ([30669d2](https://github.com/homarr-labs/homarr/commit/30669d23e32974cbea3881fe2a0712985f59394d)) +- **deps:** update dependency @tabler/icons-react to ^3.12.0 ([#944](https://github.com/homarr-labs/homarr/issues/944)) ([21c0e4b](https://github.com/homarr-labs/homarr/commit/21c0e4b35471071cd73472a116f42550a4b7a509)) +- **deps:** update dependency @tabler/icons-react to ^3.13.0 ([#1034](https://github.com/homarr-labs/homarr/issues/1034)) ([2ea0d04](https://github.com/homarr-labs/homarr/commit/2ea0d04c71087bf56fd85c36955ba62ccf78e94b)) +- **deps:** update dependency @tabler/icons-react to ^3.14.0 ([#1039](https://github.com/homarr-labs/homarr/issues/1039)) ([961fca0](https://github.com/homarr-labs/homarr/commit/961fca0f647e569ee87a787d58e36c3c5f4fdedb)) +- **deps:** update dependency @tabler/icons-react to ^3.15.0 ([#1085](https://github.com/homarr-labs/homarr/issues/1085)) ([7b6301e](https://github.com/homarr-labs/homarr/commit/7b6301e498d608099f462b30177e8067bb0647b3)) +- **deps:** update dependency @tabler/icons-react to ^3.16.0 ([#1096](https://github.com/homarr-labs/homarr/issues/1096)) ([18c1da4](https://github.com/homarr-labs/homarr/commit/18c1da4a6296aadda9e9ecd88f112c1302b3e3ee)) +- **deps:** update dependency @tabler/icons-react to ^3.17.0 ([#1126](https://github.com/homarr-labs/homarr/issues/1126)) ([6685f4c](https://github.com/homarr-labs/homarr/commit/6685f4c8060867ec32e28c8ddfa351791feeaa53)) +- **deps:** update dependency @tabler/icons-react to ^3.18.0 ([#1188](https://github.com/homarr-labs/homarr/issues/1188)) ([1bce7a3](https://github.com/homarr-labs/homarr/commit/1bce7a300d616ad05dcf191a859af2bb665a41dd)) +- **deps:** update dependency @tabler/icons-react to ^3.19.0 ([#1197](https://github.com/homarr-labs/homarr/issues/1197)) ([8aaa4f5](https://github.com/homarr-labs/homarr/commit/8aaa4f5856ccac86ddd0e1e5ce3fc0178fda9597)) +- **deps:** update dependency @tabler/icons-react to ^3.2.0 ([#342](https://github.com/homarr-labs/homarr/issues/342)) ([c40533e](https://github.com/homarr-labs/homarr/commit/c40533e758ee60709a42b54e41345583cab40e51)) +- **deps:** update dependency @tabler/icons-react to ^3.20.0 ([#1359](https://github.com/homarr-labs/homarr/issues/1359)) ([30d4464](https://github.com/homarr-labs/homarr/commit/30d4464067583632bd9549b703dd886cac61a3f2)) +- **deps:** update dependency @tabler/icons-react to ^3.21.0 ([#1382](https://github.com/homarr-labs/homarr/issues/1382)) ([958c62c](https://github.com/homarr-labs/homarr/commit/958c62c92689ccdb466f7760dd053ca5f51099dc)) +- **deps:** update dependency @tabler/icons-react to ^3.22.0 ([#1471](https://github.com/homarr-labs/homarr/issues/1471)) ([a1fddaa](https://github.com/homarr-labs/homarr/commit/a1fddaa6a61fdcbc892e704bea8a0a0b73ab1e1e)) +- **deps:** update dependency @tabler/icons-react to ^3.23.0 ([#1566](https://github.com/homarr-labs/homarr/issues/1566)) ([fd42bde](https://github.com/homarr-labs/homarr/commit/fd42bde76ddf46f51f787cab832636f33187b006)) +- **deps:** update dependency @tabler/icons-react to ^3.24.0 ([#1587](https://github.com/homarr-labs/homarr/issues/1587)) ([23cc465](https://github.com/homarr-labs/homarr/commit/23cc4659c4cd14e7f95253e56fddd3a010d908c1)) +- **deps:** update dependency @tabler/icons-react to ^3.26.0 ([#1667](https://github.com/homarr-labs/homarr/issues/1667)) ([8c596bf](https://github.com/homarr-labs/homarr/commit/8c596bf5fa9119bd22375f2fc8408ebac8eb0bcb)) +- **deps:** update dependency @tabler/icons-react to ^3.3.0 ([#405](https://github.com/homarr-labs/homarr/issues/405)) ([46bb3ee](https://github.com/homarr-labs/homarr/commit/46bb3ee0c98f1a0c24ef1111d5ffd86b0446c9f1)) +- **deps:** update dependency @tabler/icons-react to ^3.4.0 ([#501](https://github.com/homarr-labs/homarr/issues/501)) ([3fe1a19](https://github.com/homarr-labs/homarr/commit/3fe1a19e378810c86f4526d218758becd71bbe9f)) +- **deps:** update dependency @tabler/icons-react to ^3.5.0 ([#532](https://github.com/homarr-labs/homarr/issues/532)) ([63f7431](https://github.com/homarr-labs/homarr/commit/63f743175edbc2d46c6eb0cb7f7a41e8007cd038)) +- **deps:** update dependency @tabler/icons-react to ^3.6.0 ([#664](https://github.com/homarr-labs/homarr/issues/664)) ([e4c6864](https://github.com/homarr-labs/homarr/commit/e4c6864a94fc0dc0449249043b2cf8037783c99f)) +- **deps:** update dependency @tabler/icons-react to ^3.7.0 ([#715](https://github.com/homarr-labs/homarr/issues/715)) ([6a3a846](https://github.com/homarr-labs/homarr/commit/6a3a8465e701aa4449d9993151ebace0f71542b2)) +- **deps:** update dependency @tabler/icons-react to ^3.8.0 ([#737](https://github.com/homarr-labs/homarr/issues/737)) ([e12531c](https://github.com/homarr-labs/homarr/commit/e12531ccccfdfafd21c6cb62533b1c4752a13e80)) +- **deps:** update dependency @tabler/icons-react to ^3.9.0 ([#745](https://github.com/homarr-labs/homarr/issues/745)) ([75e5a6c](https://github.com/homarr-labs/homarr/commit/75e5a6c42ff41b72b1d86fcac61f7d8c89ac337d)) +- **deps:** update dependency @tabler/icons-react to v3 ([#215](https://github.com/homarr-labs/homarr/issues/215)) ([1c222ed](https://github.com/homarr-labs/homarr/commit/1c222ed89cd53dccc41445631f777424705a444a)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.21.0 ([#101](https://github.com/homarr-labs/homarr/issues/101)) ([4ea1d14](https://github.com/homarr-labs/homarr/commit/4ea1d14966aebf7477fdfebce0e1bf3833ac70c2)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.21.5 ([#130](https://github.com/homarr-labs/homarr/issues/130)) ([dbf02c6](https://github.com/homarr-labs/homarr/commit/dbf02c62641e541682a39ebd5bba4a4cc87d94ab)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.54.0 ([#1060](https://github.com/homarr-labs/homarr/issues/1060)) ([6ea4a74](https://github.com/homarr-labs/homarr/commit/6ea4a74675b271573e25fb88d8ecd62f9f83be12)) +- **deps:** update dependency @tanstack/react-query-devtools to ^5.58.0 ([#1175](https://github.com/homarr-labs/homarr/issues/1175)) ([e2414f5](https://github.com/homarr-labs/homarr/commit/e2414f5e9f6cca92e43a7c8e551cd84d73925db6)) +- **deps:** update dependency @tanstack/react-query-next-experimental to v5.41.0 ([#639](https://github.com/homarr-labs/homarr/issues/639)) ([38c32cb](https://github.com/homarr-labs/homarr/commit/38c32cbece6e400482d1fd69c7b6bcf971224848)) +- **deps:** update dependency @tanstack/react-query-next-experimental to v5.46.0 ([#699](https://github.com/homarr-labs/homarr/issues/699)) ([8d7a7bc](https://github.com/homarr-labs/homarr/commit/8d7a7bc9b1d8051be6a879cecb405934e508fc21)) +- **deps:** update dependency @trpc/client to v11.0.0-next-beta.318 ([#234](https://github.com/homarr-labs/homarr/issues/234)) ([ab55a13](https://github.com/homarr-labs/homarr/commit/ab55a1357dec7bbd8b9ce68d635f89078954d091)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.330 ([#288](https://github.com/homarr-labs/homarr/issues/288)) ([d8d25d5](https://github.com/homarr-labs/homarr/commit/d8d25d50379aa4b4514e61418a8bdf0430063256)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.332 ([#308](https://github.com/homarr-labs/homarr/issues/308)) ([50c1624](https://github.com/homarr-labs/homarr/commit/50c162444c45c954755fcca22bed6e3d1443f950)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.334 ([#334](https://github.com/homarr-labs/homarr/issues/334)) ([ed5e5d1](https://github.com/homarr-labs/homarr/commit/ed5e5d1edcbd5d0d8cefa9664ebe0f3d08ae1499)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.345 ([#351](https://github.com/homarr-labs/homarr/issues/351)) ([0ba6455](https://github.com/homarr-labs/homarr/commit/0ba64559829f2257d3ce59493e9ed9d012f88bce)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.354 ([#368](https://github.com/homarr-labs/homarr/issues/368)) ([d88b6de](https://github.com/homarr-labs/homarr/commit/d88b6def759bf8a4980aa67e7fa652be7def8c95)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.359 ([#394](https://github.com/homarr-labs/homarr/issues/394)) ([47accae](https://github.com/homarr-labs/homarr/commit/47accae90d7d56c5aa1ea33d74350addd2038a10)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.361 ([#404](https://github.com/homarr-labs/homarr/issues/404)) ([6dff7c4](https://github.com/homarr-labs/homarr/commit/6dff7c48e2622a1e0df1c3f8ab86450a0899d395)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.362 ([#407](https://github.com/homarr-labs/homarr/issues/407)) ([0020680](https://github.com/homarr-labs/homarr/commit/0020680ca097b82ade46fc7e82c83d0da60d6e1c)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.364 ([#409](https://github.com/homarr-labs/homarr/issues/409)) ([7bc7bd6](https://github.com/homarr-labs/homarr/commit/7bc7bd6bf9dbdeaeb6b62d35cb7fb3db6074245f)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.366 ([#454](https://github.com/homarr-labs/homarr/issues/454)) ([1172d84](https://github.com/homarr-labs/homarr/commit/1172d842235cf8e01279dc2ee44360b0773b3b20)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.373 ([#493](https://github.com/homarr-labs/homarr/issues/493)) ([1abf441](https://github.com/homarr-labs/homarr/commit/1abf441cdba8a8f3a32600c197d1e414fb41f655)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.374 ([#522](https://github.com/homarr-labs/homarr/issues/522)) ([eb0db3e](https://github.com/homarr-labs/homarr/commit/eb0db3ec4efc7d07bdb24dac6299d61b3164f666)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.377 ([#553](https://github.com/homarr-labs/homarr/issues/553)) ([abdf9bc](https://github.com/homarr-labs/homarr/commit/abdf9bc122cddb7b97ec48a8aacca27b382c02a3)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.382 ([#568](https://github.com/homarr-labs/homarr/issues/568)) ([e448eeb](https://github.com/homarr-labs/homarr/commit/e448eeb0a62a91aeab31547055cc7b94b5de9bcb)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.383 ([#608](https://github.com/homarr-labs/homarr/issues/608)) ([869efbc](https://github.com/homarr-labs/homarr/commit/869efbc6388bcd48b49d6f2b27f7e2609855ceab)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.390 ([#609](https://github.com/homarr-labs/homarr/issues/609)) ([812b8d8](https://github.com/homarr-labs/homarr/commit/812b8d8306672b99d2bfe5f0284bc92a585f8284)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.394 ([#626](https://github.com/homarr-labs/homarr/issues/626)) ([5bf1ddd](https://github.com/homarr-labs/homarr/commit/5bf1ddde4b509373a641f29c480b60598ada7bd9)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.396 ([#634](https://github.com/homarr-labs/homarr/issues/634)) ([475f472](https://github.com/homarr-labs/homarr/commit/475f472cb0885bf70133e08f3bde08830476ce39)) +- **deps:** update dependency @trpc/client to v11.0.0-rc.401 ([#648](https://github.com/homarr-labs/homarr/issues/648)) ([84851db](https://github.com/homarr-labs/homarr/commit/84851db333a08ecc7d7255e0a2300e45d50a446b)) +- **deps:** update dependency @typescript-eslint/eslint-plugin to ^7.4.0 ([#271](https://github.com/homarr-labs/homarr/issues/271)) ([dd7f04e](https://github.com/homarr-labs/homarr/commit/dd7f04e3955644dcac7acf4446b454aaaa7ee387)) +- **deps:** update dependency @typescript-eslint/parser to ^7.4.0 ([#270](https://github.com/homarr-labs/homarr/issues/270)) ([c4a4452](https://github.com/homarr-labs/homarr/commit/c4a445283901128a738af553f54a912a48661f1d)) +- **deps:** update dependency @umami/node to ^0.4.0 ([#1000](https://github.com/homarr-labs/homarr/issues/1000)) ([72aed22](https://github.com/homarr-labs/homarr/commit/72aed221254b3bcfdaad3f26b2984ddbf7e4e152)) +- **deps:** update dependency better-sqlite3 to ^10.1.0 ([#584](https://github.com/homarr-labs/homarr/issues/584)) ([6d46e91](https://github.com/homarr-labs/homarr/commit/6d46e91a7cbbe6a892453c040da8b7b841d9ad2c)) +- **deps:** update dependency better-sqlite3 to ^11.1.1 ([#720](https://github.com/homarr-labs/homarr/issues/720)) ([c8d4461](https://github.com/homarr-labs/homarr/commit/c8d4461ab82b57c4719fcc805d75caac7db381ee)) +- **deps:** update dependency better-sqlite3 to ^11.1.2 ([#736](https://github.com/homarr-labs/homarr/issues/736)) ([6aecd1a](https://github.com/homarr-labs/homarr/commit/6aecd1a713575374b49253e074e4c1d52db58b77)) +- **deps:** update dependency better-sqlite3 to ^11.2.0 ([#1004](https://github.com/homarr-labs/homarr/issues/1004)) ([4e6437a](https://github.com/homarr-labs/homarr/commit/4e6437a180e3c25e6265803f2179d9caf119b64d)) +- **deps:** update dependency better-sqlite3 to ^11.2.1 ([#1006](https://github.com/homarr-labs/homarr/issues/1006)) ([051d57b](https://github.com/homarr-labs/homarr/commit/051d57bb399cea562f89b52a179d77c6bc90a3fc)) +- **deps:** update dependency better-sqlite3 to ^11.3.0 ([#1092](https://github.com/homarr-labs/homarr/issues/1092)) ([ed0c613](https://github.com/homarr-labs/homarr/commit/ed0c6136e61c46a9b90c5bbd1a85abbf4dfb68f5)) +- **deps:** update dependency better-sqlite3 to ^11.4.0 ([#1320](https://github.com/homarr-labs/homarr/issues/1320)) ([601af7a](https://github.com/homarr-labs/homarr/commit/601af7acd811a822a7d61d03094a61192e6947ed)) +- **deps:** update dependency better-sqlite3 to ^11.5.0 ([#1350](https://github.com/homarr-labs/homarr/issues/1350)) ([d599390](https://github.com/homarr-labs/homarr/commit/d599390512a169e15a4f9a1bff5f45eaf2e18834)) +- **deps:** update dependency better-sqlite3 to ^11.6.0 ([#1548](https://github.com/homarr-labs/homarr/issues/1548)) ([93aedd9](https://github.com/homarr-labs/homarr/commit/93aedd994f405a1e60913086900015c94a364962)) +- **deps:** update dependency better-sqlite3 to ^11.7.0 ([#1628](https://github.com/homarr-labs/homarr/issues/1628)) ([753e0ec](https://github.com/homarr-labs/homarr/commit/753e0ecad2f57ca1fa2202a9678ea7c2f1e67c5b)) +- **deps:** update dependency better-sqlite3 to ^9.4.0 ([#33](https://github.com/homarr-labs/homarr/issues/33)) ([00db901](https://github.com/homarr-labs/homarr/commit/00db9018339ae31f07edcd89a023f569aec0dbe5)) +- **deps:** update dependency better-sqlite3 to ^9.4.1 ([#83](https://github.com/homarr-labs/homarr/issues/83)) ([34f06e8](https://github.com/homarr-labs/homarr/commit/34f06e817db014e101e16543cdfc518485990a0d)) +- **deps:** update dependency better-sqlite3 to ^9.4.3 ([#118](https://github.com/homarr-labs/homarr/issues/118)) ([baa541a](https://github.com/homarr-labs/homarr/commit/baa541afa9c2f91bd56ec99bb24fc6cdb585991b)) +- **deps:** update dependency better-sqlite3 to ^9.4.5 ([#302](https://github.com/homarr-labs/homarr/issues/302)) ([7bff8e5](https://github.com/homarr-labs/homarr/commit/7bff8e5148875b72a5218e6856d10249f435b53b)) +- **deps:** update dependency better-sqlite3 to ^9.5.0 ([#335](https://github.com/homarr-labs/homarr/issues/335)) ([48a4b8b](https://github.com/homarr-labs/homarr/commit/48a4b8ba7e6b535fd1828713a0c4fadcbff89ec8)) +- **deps:** update dependency better-sqlite3 to ^9.6.0 ([#386](https://github.com/homarr-labs/homarr/issues/386)) ([45ffbad](https://github.com/homarr-labs/homarr/commit/45ffbadeece8a82dcb1e202e5934335a5d2d8832)) +- **deps:** update dependency better-sqlite3 to v10 ([#479](https://github.com/homarr-labs/homarr/issues/479)) ([f0da1d8](https://github.com/homarr-labs/homarr/commit/f0da1d81a6cd8b425919ffb9460b5f6bbb82ae2a)) +- **deps:** update dependency better-sqlite3 to v11 ([#587](https://github.com/homarr-labs/homarr/issues/587)) ([96150f8](https://github.com/homarr-labs/homarr/commit/96150f802d1c75ed6a10bf05a5f19c259ead581b)) +- **deps:** update dependency chroma-js to ^2.5.0 ([#890](https://github.com/homarr-labs/homarr/issues/890)) ([79cabe6](https://github.com/homarr-labs/homarr/commit/79cabe65801de1c180691f3413ef01939ede14be)) +- **deps:** update dependency chroma-js to ^2.6.0 ([#891](https://github.com/homarr-labs/homarr/issues/891)) ([15171dd](https://github.com/homarr-labs/homarr/commit/15171dd5afd12cbdc459442d2cab0164128381cb)) +- **deps:** update dependency chroma-js to ^3.1.0 ([#1081](https://github.com/homarr-labs/homarr/issues/1081)) ([4f42143](https://github.com/homarr-labs/homarr/commit/4f421433c2fa3918771f9138e45c3b526a6a9396)) +- **deps:** update dependency chroma-js to ^3.1.1 ([#1082](https://github.com/homarr-labs/homarr/issues/1082)) ([6bf0a53](https://github.com/homarr-labs/homarr/commit/6bf0a53d21a47542cceeec93eb90828206f2e81d)) +- **deps:** update dependency chroma-js to ^3.1.2 ([#1289](https://github.com/homarr-labs/homarr/issues/1289)) ([1bc470a](https://github.com/homarr-labs/homarr/commit/1bc470a39feae570a76dc210946ffc18b9bef6ea)) +- **deps:** update dependency chroma-js to v3 ([#992](https://github.com/homarr-labs/homarr/issues/992)) ([3eb9096](https://github.com/homarr-labs/homarr/commit/3eb90968ac8e5de059b3e14c0736433b005f5409)) +- **deps:** update dependency dayjs to ^1.11.11 ([#393](https://github.com/homarr-labs/homarr/issues/393)) ([03c2993](https://github.com/homarr-labs/homarr/commit/03c2993611e992cb24a142f050bdcd763c7813e2)) +- **deps:** update dependency dayjs to ^1.11.12 ([#832](https://github.com/homarr-labs/homarr/issues/832)) ([5c92f6a](https://github.com/homarr-labs/homarr/commit/5c92f6a3cc1febf9d96e394f54d2f5f94d9ab52e)) +- **deps:** update dependency dayjs to ^1.11.13 ([#1001](https://github.com/homarr-labs/homarr/issues/1001)) ([27d08ba](https://github.com/homarr-labs/homarr/commit/27d08baa2d6f82f521dc46a359ce3d24f1ac857a)) +- **deps:** update dependency dotenv to ^16.4.6 ([#1588](https://github.com/homarr-labs/homarr/issues/1588)) ([716a2ab](https://github.com/homarr-labs/homarr/commit/716a2ab9d1f949748a39858daa330e9df32597fa)) +- **deps:** update dependency dotenv to ^16.4.7 ([#1597](https://github.com/homarr-labs/homarr/issues/1597)) ([31cc1ab](https://github.com/homarr-labs/homarr/commit/31cc1abb51c8867f8f9934815f24de5e190f3142)) +- **deps:** update dependency drizzle-kit to ^0.20.16 ([#362](https://github.com/homarr-labs/homarr/issues/362)) ([f58d0dd](https://github.com/homarr-labs/homarr/commit/f58d0ddd94633468872ccd93f908e39f0ccc9337)) +- **deps:** update dependency drizzle-kit to ^0.20.17 ([#367](https://github.com/homarr-labs/homarr/issues/367)) ([04a3131](https://github.com/homarr-labs/homarr/commit/04a313186f63c4810fdc4f062a94aedf77bf526b)) +- **deps:** update dependency drizzle-kit to ^0.20.18 ([#449](https://github.com/homarr-labs/homarr/issues/449)) ([5eb1d71](https://github.com/homarr-labs/homarr/commit/5eb1d716ded4fb1529e35afa0741646874b74a43)) +- **deps:** update dependency drizzle-kit to ^0.21.1 ([#462](https://github.com/homarr-labs/homarr/issues/462)) ([1ce6fb0](https://github.com/homarr-labs/homarr/commit/1ce6fb0d0fd3f2770ea2a2f3dec7104b03e2e4ff)) +- **deps:** update dependency drizzle-kit to ^0.21.2 ([#495](https://github.com/homarr-labs/homarr/issues/495)) ([8166fdb](https://github.com/homarr-labs/homarr/commit/8166fdb8e22842125933e93325c27fd561f5df02)) +- **deps:** update dependency drizzle-kit to ^0.21.4 ([#535](https://github.com/homarr-labs/homarr/issues/535)) ([56b6d76](https://github.com/homarr-labs/homarr/commit/56b6d76f43e7cfaac080d029a68a55eb243970e7)) +- **deps:** update dependency drizzle-kit to ^0.22.0 ([#588](https://github.com/homarr-labs/homarr/issues/588)) ([d16281b](https://github.com/homarr-labs/homarr/commit/d16281bea7f71bb6ed3292bc47ed3b2d0103e814)) +- **deps:** update dependency drizzle-kit to ^0.22.1 ([#590](https://github.com/homarr-labs/homarr/issues/590)) ([51fb7cb](https://github.com/homarr-labs/homarr/commit/51fb7cb402e45ee9f9bebbc153ec1f37fc4d4158)) +- **deps:** update dependency drizzle-kit to ^0.22.2 ([#618](https://github.com/homarr-labs/homarr/issues/618)) ([f5aaf89](https://github.com/homarr-labs/homarr/commit/f5aaf89a3db6e10f2ac07d3ac29300ec81575e61)) +- **deps:** update dependency drizzle-kit to ^0.22.4 ([#625](https://github.com/homarr-labs/homarr/issues/625)) ([dda34e7](https://github.com/homarr-labs/homarr/commit/dda34e7764ace4f20ec9742289987dc43ee2573c)) +- **deps:** update dependency drizzle-kit to ^0.22.5 ([#631](https://github.com/homarr-labs/homarr/issues/631)) ([2462726](https://github.com/homarr-labs/homarr/commit/246272669e2cef242a7ddda2d6bbafe5313ca3ec)) +- **deps:** update dependency drizzle-kit to ^0.22.6 ([#636](https://github.com/homarr-labs/homarr/issues/636)) ([66ddb45](https://github.com/homarr-labs/homarr/commit/66ddb4597530479eac3d1e417d1fabac39ad6d8c)) +- **deps:** update dependency drizzle-kit to ^0.22.7 ([#652](https://github.com/homarr-labs/homarr/issues/652)) ([d985fbe](https://github.com/homarr-labs/homarr/commit/d985fbe69a0c1f57d574bd547567a3cd486174b4)) +- **deps:** update dependency drizzle-kit to ^0.22.8 ([#729](https://github.com/homarr-labs/homarr/issues/729)) ([be100b6](https://github.com/homarr-labs/homarr/commit/be100b610eabb3acbbbe0827dc07e012962c8ad8)) +- **deps:** update dependency drizzle-kit to ^0.23.0 ([#775](https://github.com/homarr-labs/homarr/issues/775)) ([f2c70a4](https://github.com/homarr-labs/homarr/commit/f2c70a4d0b6b827b54a7b12f53c01b1094548c2e)) +- **deps:** update dependency drizzle-kit to ^0.23.1 ([#888](https://github.com/homarr-labs/homarr/issues/888)) ([5f89d93](https://github.com/homarr-labs/homarr/commit/5f89d93db64c5033053da239b6e94c2731958924)) +- **deps:** update dependency drizzle-kit to ^0.23.2 ([#918](https://github.com/homarr-labs/homarr/issues/918)) ([d378ddb](https://github.com/homarr-labs/homarr/commit/d378ddb42bd43971d88b43cb90e24d83d69d9812)) +- **deps:** update dependency drizzle-kit to ^0.24.0 ([#939](https://github.com/homarr-labs/homarr/issues/939)) ([940a489](https://github.com/homarr-labs/homarr/commit/940a4890e26a0c080fb084e6026c0438d9df6914)) +- **deps:** update dependency drizzle-kit to ^0.24.1 ([#1012](https://github.com/homarr-labs/homarr/issues/1012)) ([cd0af7e](https://github.com/homarr-labs/homarr/commit/cd0af7e8f18d0e1b21f28bafd12aaf8bb06009c9)) +- **deps:** update dependency drizzle-kit to ^0.24.2 ([#1033](https://github.com/homarr-labs/homarr/issues/1033)) ([78b45c4](https://github.com/homarr-labs/homarr/commit/78b45c4a5bae9839990b12127fda9c7e15d07b25)) +- **deps:** update dependency drizzle-kit to ^0.25.0 ([#1261](https://github.com/homarr-labs/homarr/issues/1261)) ([635fadf](https://github.com/homarr-labs/homarr/commit/635fadfce9842f6e8bdc2e4757256e8bd27ae868)) +- **deps:** update dependency drizzle-kit to ^0.26.0 ([#1301](https://github.com/homarr-labs/homarr/issues/1301)) ([f2f31b5](https://github.com/homarr-labs/homarr/commit/f2f31b5ee08f1c50ccc125e0ace470c360984350)) +- **deps:** update dependency drizzle-kit to ^0.26.1 ([#1303](https://github.com/homarr-labs/homarr/issues/1303)) ([f50f46d](https://github.com/homarr-labs/homarr/commit/f50f46d4b7b32bbd89073433316f461cd475e367)) +- **deps:** update dependency drizzle-kit to ^0.26.2 ([#1305](https://github.com/homarr-labs/homarr/issues/1305)) ([da13d63](https://github.com/homarr-labs/homarr/commit/da13d6396967419466729b4abd5a839b14a17977)) +- **deps:** update dependency drizzle-kit to ^0.27.0 ([#1389](https://github.com/homarr-labs/homarr/issues/1389)) ([d3f9696](https://github.com/homarr-labs/homarr/commit/d3f9696127d21d75c16b52ed5a661909db54f705)) +- **deps:** update dependency drizzle-kit to ^0.27.1 ([#1395](https://github.com/homarr-labs/homarr/issues/1395)) ([3bfdc2d](https://github.com/homarr-labs/homarr/commit/3bfdc2ded499a465ce5cb078adc83ee71377bb5e)) +- **deps:** update dependency drizzle-kit to ^0.27.2 ([#1437](https://github.com/homarr-labs/homarr/issues/1437)) ([10cebff](https://github.com/homarr-labs/homarr/commit/10cebff4edb1ad9ff61f1a0ff27b6f360db7e05f)) +- **deps:** update dependency drizzle-kit to ^0.28.0 ([#1439](https://github.com/homarr-labs/homarr/issues/1439)) ([c6a1aee](https://github.com/homarr-labs/homarr/commit/c6a1aeef4d2e2939e262912eaa10018b5c1c4d60)) +- **deps:** update dependency drizzle-kit to ^0.28.1 ([#1480](https://github.com/homarr-labs/homarr/issues/1480)) ([acc440b](https://github.com/homarr-labs/homarr/commit/acc440bb8975fee8ce37e9290fbd4b993b6fddc6)) +- **deps:** update dependency drizzle-kit to ^0.29.0 ([#1591](https://github.com/homarr-labs/homarr/issues/1591)) ([a8e045b](https://github.com/homarr-labs/homarr/commit/a8e045b2239202d469c802b00cc4e4528932b8ee)) +- **deps:** update dependency drizzle-kit to ^0.29.1 ([#1603](https://github.com/homarr-labs/homarr/issues/1603)) ([2e23b3d](https://github.com/homarr-labs/homarr/commit/2e23b3dad84ff3eaa57ec26805b75fb271e12027)) +- **deps:** update dependency drizzle-kit to ^0.30.0 ([#1630](https://github.com/homarr-labs/homarr/issues/1630)) ([46ce061](https://github.com/homarr-labs/homarr/commit/46ce06155b4df45f3676998a813f3a7cecdba085)) +- **deps:** update dependency drizzle-kit to ^0.30.1 ([#1651](https://github.com/homarr-labs/homarr/issues/1651)) ([6418dfe](https://github.com/homarr-labs/homarr/commit/6418dfed382c88cdfe3ea0078ee18c5ae04ec721)) +- **deps:** update dependency drizzle-orm to ^0.29.4 ([#150](https://github.com/homarr-labs/homarr/issues/150)) ([4cf505f](https://github.com/homarr-labs/homarr/commit/4cf505f0c50faa74e699a29fd98eab88b20c14e1)) +- **deps:** update dependency drizzle-orm to ^0.29.5 ([#203](https://github.com/homarr-labs/homarr/issues/203)) ([4f41765](https://github.com/homarr-labs/homarr/commit/4f41765f1039daa2dcd8e9e0e26b3569539697f7)) +- **deps:** update dependency drizzle-orm to ^0.30.1 ([#210](https://github.com/homarr-labs/homarr/issues/210)) ([e34161f](https://github.com/homarr-labs/homarr/commit/e34161f33ecc7c58df4c26f383cf827fd663884b)) +- **deps:** update dependency drizzle-orm to ^0.30.10 ([#413](https://github.com/homarr-labs/homarr/issues/413)) ([14d941e](https://github.com/homarr-labs/homarr/commit/14d941e57ad70573954b276816d28e7d341df673)) +- **deps:** update dependency drizzle-orm to ^0.30.2 ([#232](https://github.com/homarr-labs/homarr/issues/232)) ([9046517](https://github.com/homarr-labs/homarr/commit/90465175f9cec9f95e14541e5c94e5eeadfc90a6)) +- **deps:** update dependency drizzle-orm to ^0.30.4 ([#250](https://github.com/homarr-labs/homarr/issues/250)) ([cdc4870](https://github.com/homarr-labs/homarr/commit/cdc4870925944317ff7f5f7ad8fee80433cd4e05)) +- **deps:** update dependency drizzle-orm to ^0.30.6 ([#282](https://github.com/homarr-labs/homarr/issues/282)) ([6ef58be](https://github.com/homarr-labs/homarr/commit/6ef58beead0137128cefe65d8119317572304b35)) +- **deps:** update dependency drizzle-orm to ^0.30.7 ([#303](https://github.com/homarr-labs/homarr/issues/303)) ([362257c](https://github.com/homarr-labs/homarr/commit/362257cf2b6b60027485f59df080bcdb83c3a85e)) +- **deps:** update dependency drizzle-orm to ^0.30.8 ([#339](https://github.com/homarr-labs/homarr/issues/339)) ([f50550b](https://github.com/homarr-labs/homarr/commit/f50550b3e135375e44b77ddc958f8ba3cf17d214)) +- **deps:** update dependency drizzle-orm to ^0.30.9 ([#370](https://github.com/homarr-labs/homarr/issues/370)) ([f5002c3](https://github.com/homarr-labs/homarr/commit/f5002c3265a9318770d9e6d41aa3583e84fc40d9)) +- **deps:** update dependency drizzle-orm to ^0.31.0 ([#589](https://github.com/homarr-labs/homarr/issues/589)) ([3b39e87](https://github.com/homarr-labs/homarr/commit/3b39e87212acedb8904584a3b3d55fbfd1434fd3)) +- **deps:** update dependency drizzle-orm to ^0.31.1 ([#619](https://github.com/homarr-labs/homarr/issues/619)) ([710197b](https://github.com/homarr-labs/homarr/commit/710197b3a02e06be6a60df71a180fd31b913858a)) +- **deps:** update dependency drizzle-orm to ^0.31.2 ([#632](https://github.com/homarr-labs/homarr/issues/632)) ([efd958d](https://github.com/homarr-labs/homarr/commit/efd958d6cbf5ec5dd0951ca33e87489aa5ec5c16)) +- **deps:** update dependency drizzle-orm to ^0.31.3 ([#758](https://github.com/homarr-labs/homarr/issues/758)) ([0a3d1e9](https://github.com/homarr-labs/homarr/commit/0a3d1e9e5e6682b438b5f3782bdaa305068e0cb7)) +- **deps:** update dependency drizzle-orm to ^0.31.4 ([#759](https://github.com/homarr-labs/homarr/issues/759)) ([8d42ca8](https://github.com/homarr-labs/homarr/commit/8d42ca8b5e63071ceaaf731198ee4633e77d96ac)) +- **deps:** update dependency drizzle-orm to ^0.32.0 ([#776](https://github.com/homarr-labs/homarr/issues/776)) ([3da5734](https://github.com/homarr-labs/homarr/commit/3da5734571de98ceaf2a915a56c177b564beedab)) +- **deps:** update dependency drizzle-orm to ^0.32.1 ([#859](https://github.com/homarr-labs/homarr/issues/859)) ([868b7b8](https://github.com/homarr-labs/homarr/commit/868b7b890e7affbb79935dc78eaac463d660e413)) +- **deps:** update dependency drizzle-orm to ^0.32.2 ([#919](https://github.com/homarr-labs/homarr/issues/919)) ([3f35163](https://github.com/homarr-labs/homarr/commit/3f35163481c85f434a60438ea7425a75b4b2285d)) +- **deps:** update dependency drizzle-orm to ^0.33.0 ([#938](https://github.com/homarr-labs/homarr/issues/938)) ([c399d83](https://github.com/homarr-labs/homarr/commit/c399d832e58edce29b5bc657ff10970c50123a85)) +- **deps:** update dependency drizzle-orm to ^0.34.0 ([#1262](https://github.com/homarr-labs/homarr/issues/1262)) ([23ee229](https://github.com/homarr-labs/homarr/commit/23ee229906b3dab7f7b93e93f76c11aa4ca89392)) +- **deps:** update dependency drizzle-orm to ^0.34.1 ([#1268](https://github.com/homarr-labs/homarr/issues/1268)) ([14d1ce8](https://github.com/homarr-labs/homarr/commit/14d1ce842a011dbe84259ba3509d9edfcdf573e0)) +- **deps:** update dependency drizzle-orm to ^0.35.0 ([#1302](https://github.com/homarr-labs/homarr/issues/1302)) ([c6daccb](https://github.com/homarr-labs/homarr/commit/c6daccbdf0b6a531274c0ab86779ec3f946ebf38)) +- **deps:** update dependency drizzle-orm to ^0.35.1 ([#1306](https://github.com/homarr-labs/homarr/issues/1306)) ([c053a37](https://github.com/homarr-labs/homarr/commit/c053a373b48ed6cc2f877c581e03264288bbe751)) +- **deps:** update dependency drizzle-orm to ^0.35.2 ([#1321](https://github.com/homarr-labs/homarr/issues/1321)) ([c8b1bb8](https://github.com/homarr-labs/homarr/commit/c8b1bb8d62e5c608e37cd28a85c0e7fc12eaf102)) +- **deps:** update dependency drizzle-orm to ^0.35.3 ([#1348](https://github.com/homarr-labs/homarr/issues/1348)) ([85a5ebd](https://github.com/homarr-labs/homarr/commit/85a5ebd288807373f38552d09392be184c3a8caf)) +- **deps:** update dependency drizzle-orm to ^0.36.0 ([#1390](https://github.com/homarr-labs/homarr/issues/1390)) ([3c3dbf5](https://github.com/homarr-labs/homarr/commit/3c3dbf51dc2e702a5eb302dac88986d61aba5881)) +- **deps:** update dependency drizzle-orm to ^0.36.1 ([#1440](https://github.com/homarr-labs/homarr/issues/1440)) ([7966476](https://github.com/homarr-labs/homarr/commit/7966476cad956b20940fd4d7d9df004dd886f7ff)) +- **deps:** update dependency drizzle-orm to ^0.36.2 ([#1481](https://github.com/homarr-labs/homarr/issues/1481)) ([9bc5856](https://github.com/homarr-labs/homarr/commit/9bc585648c8926123c718a3c922ad25c2cd7b897)) +- **deps:** update dependency drizzle-orm to ^0.36.3 ([#1487](https://github.com/homarr-labs/homarr/issues/1487)) ([2fb014f](https://github.com/homarr-labs/homarr/commit/2fb014f2df295cc16a01cc613db6d04fc483793c)) +- **deps:** update dependency drizzle-orm to ^0.36.4 ([#1522](https://github.com/homarr-labs/homarr/issues/1522)) ([50c9683](https://github.com/homarr-labs/homarr/commit/50c96833a697b09cadb8a7c64b2340e2c7b4d292)) +- **deps:** update dependency drizzle-orm to ^0.37.0 ([#1592](https://github.com/homarr-labs/homarr/issues/1592)) ([16cf818](https://github.com/homarr-labs/homarr/commit/16cf818449cd10f14e5235d5afdefaf0f8f01336)) +- **deps:** update dependency drizzle-orm to ^0.38.0 ([#1631](https://github.com/homarr-labs/homarr/issues/1631)) ([2825c9b](https://github.com/homarr-labs/homarr/commit/2825c9bf45c52cf7ec0785774038d9c01ac80cf9)) +- **deps:** update dependency drizzle-orm to ^0.38.1 ([#1646](https://github.com/homarr-labs/homarr/issues/1646)) ([7d0a224](https://github.com/homarr-labs/homarr/commit/7d0a224a3fe70c941ecea6dce9e376c395d8c5bb)) +- **deps:** update dependency drizzle-orm to ^0.38.2 ([#1652](https://github.com/homarr-labs/homarr/issues/1652)) ([da63d8e](https://github.com/homarr-labs/homarr/commit/da63d8ebf4b56caa34896d3b41d4784cd333123c)) +- **deps:** update dependency drizzle-zod to ^0.6.0 ([#1629](https://github.com/homarr-labs/homarr/issues/1629)) ([51c87c1](https://github.com/homarr-labs/homarr/commit/51c87c1a33ca5fc2e583e27c33dd8828ac134e41)) +- **deps:** update dependency eslint-config-turbo to ^1.12.2 ([#34](https://github.com/homarr-labs/homarr/issues/34)) ([837e390](https://github.com/homarr-labs/homarr/commit/837e3900fa905e3d96d1b7693a889eb99ac71c1f)) +- **deps:** update dependency eslint-config-turbo to ^2.0.13 ([#978](https://github.com/homarr-labs/homarr/issues/978)) ([497363b](https://github.com/homarr-labs/homarr/commit/497363b4912a1b0d42abd9414b7ff827223220a0)) +- **deps:** update dependency eslint-config-turbo to ^2.0.14 ([#984](https://github.com/homarr-labs/homarr/issues/984)) ([5e7ee1b](https://github.com/homarr-labs/homarr/commit/5e7ee1b657cb55826518841e1dcb25cce4050bad)) +- **deps:** update dependency eslint-plugin-import to ^2.29.1 ([#23](https://github.com/homarr-labs/homarr/issues/23)) ([f3bb990](https://github.com/homarr-labs/homarr/commit/f3bb990c4dcd40f367cf59a120cf8f6fd2658309)) +- **deps:** update dependency eslint-plugin-import to ^2.30.0 ([#1061](https://github.com/homarr-labs/homarr/issues/1061)) ([0f34bf8](https://github.com/homarr-labs/homarr/commit/0f34bf85a8476b73140c2b6b8baad87fa924ebdb)) +- **deps:** update dependency eslint-plugin-import to ^2.31.0 ([#1226](https://github.com/homarr-labs/homarr/issues/1226)) ([9d20362](https://github.com/homarr-labs/homarr/commit/9d20362cf1323c57e7ed7dc9ba4e234c51ccc1d0)) +- **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.0 ([#1066](https://github.com/homarr-labs/homarr/issues/1066)) ([bef5832](https://github.com/homarr-labs/homarr/commit/bef5832470012ff8eeddd2e95822800f4c349491)) +- **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.1 ([#1343](https://github.com/homarr-labs/homarr/issues/1343)) ([564096e](https://github.com/homarr-labs/homarr/commit/564096e463b25c243c7f2adb2c9b059c940365fe)) +- **deps:** update dependency eslint-plugin-jsx-a11y to ^6.10.2 ([#1374](https://github.com/homarr-labs/homarr/issues/1374)) ([3127182](https://github.com/homarr-labs/homarr/commit/3127182f5c16a6c792557c9f458b7e20511cdf8f)) +- **deps:** update dependency eslint-plugin-jsx-a11y to ^6.9.0 ([#695](https://github.com/homarr-labs/homarr/issues/695)) ([d78b581](https://github.com/homarr-labs/homarr/commit/d78b581104009d92a835d99978e935059682b7e2)) +- **deps:** update dependency eslint-plugin-react to ^7.34.0 ([#189](https://github.com/homarr-labs/homarr/issues/189)) ([4cd897d](https://github.com/homarr-labs/homarr/commit/4cd897d521ba11a69cc5f7960746dfbb5d10bd44)) +- **deps:** update dependency eslint-plugin-react to ^7.34.1 ([#240](https://github.com/homarr-labs/homarr/issues/240)) ([404f294](https://github.com/homarr-labs/homarr/commit/404f2945dc0db083ad4adb941f436b7cbd04ce6d)) +- **deps:** update dependency eslint-plugin-react to ^7.34.2 ([#567](https://github.com/homarr-labs/homarr/issues/567)) ([9e499bd](https://github.com/homarr-labs/homarr/commit/9e499bd30ba5a8d22f15ef7e4e467090268125e7)) +- **deps:** update dependency eslint-plugin-react to ^7.34.3 ([#688](https://github.com/homarr-labs/homarr/issues/688)) ([fdcf3a8](https://github.com/homarr-labs/homarr/commit/fdcf3a89c929de9d441898f31bfeb141613fe9ff)) +- **deps:** update dependency eslint-plugin-react to ^7.34.4 ([#809](https://github.com/homarr-labs/homarr/issues/809)) ([fd64201](https://github.com/homarr-labs/homarr/commit/fd642011ba8bd11e03de46e35de387da819d5c98)) +- **deps:** update dependency eslint-plugin-react to ^7.35.0 ([#835](https://github.com/homarr-labs/homarr/issues/835)) ([37a8a0f](https://github.com/homarr-labs/homarr/commit/37a8a0fe5aebe813ba9be05643b1333485e20d5f)) +- **deps:** update dependency eslint-plugin-react to ^7.35.1 ([#1059](https://github.com/homarr-labs/homarr/issues/1059)) ([4c52cc3](https://github.com/homarr-labs/homarr/commit/4c52cc338e0bca1d9a80d23a3b409526109206b5)) +- **deps:** update dependency eslint-plugin-react to ^7.35.2 ([#1062](https://github.com/homarr-labs/homarr/issues/1062)) ([1249fb9](https://github.com/homarr-labs/homarr/commit/1249fb96122597f2d40cc5719d687354b7c1411c)) +- **deps:** update dependency eslint-plugin-react to ^7.36.0 ([#1111](https://github.com/homarr-labs/homarr/issues/1111)) ([cd43253](https://github.com/homarr-labs/homarr/commit/cd43253061c4162d1c1835b3cbb843250d0d5b51)) +- **deps:** update dependency eslint-plugin-react to ^7.36.1 ([#1115](https://github.com/homarr-labs/homarr/issues/1115)) ([2351617](https://github.com/homarr-labs/homarr/commit/2351617177d334467e26c08c378da4994f21f581)) +- **deps:** update dependency eslint-plugin-react to ^7.37.0 ([#1189](https://github.com/homarr-labs/homarr/issues/1189)) ([2245e7a](https://github.com/homarr-labs/homarr/commit/2245e7aae8fa75730706d2e73c30870ac6d0ec77)) +- **deps:** update dependency eslint-plugin-react to ^7.37.1 ([#1213](https://github.com/homarr-labs/homarr/issues/1213)) ([4a8ed13](https://github.com/homarr-labs/homarr/commit/4a8ed13a87ff44aed89754fbc171db0641cf78d8)) +- **deps:** update dependency eslint-plugin-react to ^7.37.2 ([#1354](https://github.com/homarr-labs/homarr/issues/1354)) ([1a2f0ad](https://github.com/homarr-labs/homarr/commit/1a2f0adfc8d22eade925409aac63ccb9d8885c08)) +- **deps:** update dependency eslint-plugin-react-hooks to ^5.1.0 ([#1614](https://github.com/homarr-labs/homarr/issues/1614)) ([6d6840f](https://github.com/homarr-labs/homarr/commit/6d6840f85e5f38b2f7ec990cf7402de86ea84166)) +- **deps:** update dependency eslint-plugin-react-hooks to v5 ([#1280](https://github.com/homarr-labs/homarr/issues/1280)) ([a87c937](https://github.com/homarr-labs/homarr/commit/a87c937b69550160cc10e9991256c032245fcbfc)) +- **deps:** update dependency flag-icons to ^7.2.2 ([#533](https://github.com/homarr-labs/homarr/issues/533)) ([f45fa50](https://github.com/homarr-labs/homarr/commit/f45fa500248d810aadb05cf2ad8ecd247bcae60b)) +- **deps:** update dependency flag-icons to ^7.2.3 ([#575](https://github.com/homarr-labs/homarr/issues/575)) ([fe43e74](https://github.com/homarr-labs/homarr/commit/fe43e74c5399942c6cb099352fc1098fe1261fc4)) +- **deps:** update dependency glob to ^10.3.14 ([#461](https://github.com/homarr-labs/homarr/issues/461)) ([8bd08d3](https://github.com/homarr-labs/homarr/commit/8bd08d39ca106b225aee123278b1387d037feedc)) +- **deps:** update dependency glob to ^10.3.15 ([#478](https://github.com/homarr-labs/homarr/issues/478)) ([333b124](https://github.com/homarr-labs/homarr/commit/333b124f678818b346816bbd29f6bc78f20e175d)) +- **deps:** update dependency glob to ^10.4.1 ([#531](https://github.com/homarr-labs/homarr/issues/531)) ([a0322bf](https://github.com/homarr-labs/homarr/commit/a0322bfd994c9fae57f7d8f7e219d0ac70d7868c)) +- **deps:** update dependency glob to ^10.4.2 ([#689](https://github.com/homarr-labs/homarr/issues/689)) ([0bfc0c5](https://github.com/homarr-labs/homarr/commit/0bfc0c5d2543677b7efe6fcec1af7c72e178af1b)) +- **deps:** update dependency glob to ^10.4.3 ([#751](https://github.com/homarr-labs/homarr/issues/751)) ([61cbb74](https://github.com/homarr-labs/homarr/commit/61cbb74d14b93ee9e52a2170a4ff01c93dcd09c1)) +- **deps:** update dependency glob to ^10.4.4 ([#765](https://github.com/homarr-labs/homarr/issues/765)) ([74b017d](https://github.com/homarr-labs/homarr/commit/74b017d9f4b39b9d6de0d76f180fcf5c6f145215)) +- **deps:** update dependency glob to ^10.4.5 ([#768](https://github.com/homarr-labs/homarr/issues/768)) ([4cee3df](https://github.com/homarr-labs/homarr/commit/4cee3dfbe00cd984e31a732e88bc581606ab37e9)) +- **deps:** update dependency glob to v10.4.1 ([#544](https://github.com/homarr-labs/homarr/issues/544)) ([7b46d92](https://github.com/homarr-labs/homarr/commit/7b46d92d4f992584c813cc2d7e99813f53a8b72e)) +- **deps:** update dependency glob to v11 ([#766](https://github.com/homarr-labs/homarr/issues/766)) ([0169501](https://github.com/homarr-labs/homarr/commit/0169501676aa8d1170ee44aa0bb8134d994d472e)) +- **deps:** update dependency ioredis to v5.4.1 ([#357](https://github.com/homarr-labs/homarr/issues/357)) ([20f44d3](https://github.com/homarr-labs/homarr/commit/20f44d3494ffbe76994e6d541d31ced2cfd8abd3)) +- **deps:** update dependency jotai to ^2.10.0 ([#1155](https://github.com/homarr-labs/homarr/issues/1155)) ([dd9080f](https://github.com/homarr-labs/homarr/commit/dd9080f781b782a1a112c53f1af1e987fde22e32)) +- **deps:** update dependency jotai to ^2.10.1 ([#1295](https://github.com/homarr-labs/homarr/issues/1295)) ([ba81e5e](https://github.com/homarr-labs/homarr/commit/ba81e5e35a046e8dda1c2660beff1e1644d4d32a)) +- **deps:** update dependency jotai to ^2.10.2 ([#1464](https://github.com/homarr-labs/homarr/issues/1464)) ([75d764b](https://github.com/homarr-labs/homarr/commit/75d764bca83e41bc932a4aed5244bf6922d2d070)) +- **deps:** update dependency jotai to ^2.10.3 ([#1509](https://github.com/homarr-labs/homarr/issues/1509)) ([ae61377](https://github.com/homarr-labs/homarr/commit/ae6137710f51c3f53127a779793ce2d1566e7e0d)) +- **deps:** update dependency jotai to ^2.10.4 ([#1672](https://github.com/homarr-labs/homarr/issues/1672)) ([b7b5da6](https://github.com/homarr-labs/homarr/commit/b7b5da654bee37f1aceda2718bb92646fc4f472e)) +- **deps:** update dependency jotai to ^2.6.4 ([#24](https://github.com/homarr-labs/homarr/issues/24)) ([a7d5c36](https://github.com/homarr-labs/homarr/commit/a7d5c36aa798ea9cf03579b752fa3640fb4f79cf)) +- **deps:** update dependency jotai to ^2.6.5 ([#106](https://github.com/homarr-labs/homarr/issues/106)) ([fc8d907](https://github.com/homarr-labs/homarr/commit/fc8d9071aa91afdb00b17b1de13a61241aa93705)) +- **deps:** update dependency jotai to ^2.7.0 ([#162](https://github.com/homarr-labs/homarr/issues/162)) ([af203e1](https://github.com/homarr-labs/homarr/commit/af203e19e76450e990384443e9d9de1e1df7748f)) +- **deps:** update dependency jotai to ^2.7.1 ([#238](https://github.com/homarr-labs/homarr/issues/238)) ([75ab823](https://github.com/homarr-labs/homarr/commit/75ab8230196272e2c713b948a614b3ac0ce62f09)) +- **deps:** update dependency jotai to ^2.7.2 ([#284](https://github.com/homarr-labs/homarr/issues/284)) ([d06528f](https://github.com/homarr-labs/homarr/commit/d06528f3119e18ddf09ab210fa2dd7ed1570bd5f)) +- **deps:** update dependency jotai to ^2.8.0 ([#326](https://github.com/homarr-labs/homarr/issues/326)) ([27c858d](https://github.com/homarr-labs/homarr/commit/27c858dc815f8d450310a219d2ec44093f33b293)) +- **deps:** update dependency jotai to ^2.8.1 ([#534](https://github.com/homarr-labs/homarr/issues/534)) ([c668d0a](https://github.com/homarr-labs/homarr/commit/c668d0a76502ce082990e7e64b7e7c801f33134f)) +- **deps:** update dependency jotai to ^2.8.2 ([#561](https://github.com/homarr-labs/homarr/issues/561)) ([6f47adf](https://github.com/homarr-labs/homarr/commit/6f47adff8abfdd1e94207a73fa6638e9aa11d396)) +- **deps:** update dependency jotai to ^2.8.3 ([#615](https://github.com/homarr-labs/homarr/issues/615)) ([d993e8d](https://github.com/homarr-labs/homarr/commit/d993e8d81136f8fb42a27b082d41b00bd5c2668a)) +- **deps:** update dependency jotai to ^2.8.4 ([#721](https://github.com/homarr-labs/homarr/issues/721)) ([e46bfd9](https://github.com/homarr-labs/homarr/commit/e46bfd9146929421434ce847352ce8b7a08106f7)) +- **deps:** update dependency jotai to ^2.9.0 ([#767](https://github.com/homarr-labs/homarr/issues/767)) ([5e3dc1e](https://github.com/homarr-labs/homarr/commit/5e3dc1e44dbe229870637c58188c6b6057092a95)) +- **deps:** update dependency jotai to ^2.9.1 ([#858](https://github.com/homarr-labs/homarr/issues/858)) ([fc5f02b](https://github.com/homarr-labs/homarr/commit/fc5f02b022786e7ec75c900d33c2386c71a77e53)) +- **deps:** update dependency jotai to ^2.9.2 ([#933](https://github.com/homarr-labs/homarr/issues/933)) ([c2bf677](https://github.com/homarr-labs/homarr/commit/c2bf6779c0664720a180192813ed4bfab02bf0e1)) +- **deps:** update dependency jotai to ^2.9.3 ([#969](https://github.com/homarr-labs/homarr/issues/969)) ([9d62fb4](https://github.com/homarr-labs/homarr/commit/9d62fb42c470d09c8891bdb8997af75926f3d03d)) +- **deps:** update dependency ldapts to v7.1.0 ([#839](https://github.com/homarr-labs/homarr/issues/839)) ([c33086d](https://github.com/homarr-labs/homarr/commit/c33086d8b55be9ba605c1f2c7429e44bd6ddada1)) +- **deps:** update dependency ldapts to v7.1.1 ([#1038](https://github.com/homarr-labs/homarr/issues/1038)) ([b507bf2](https://github.com/homarr-labs/homarr/commit/b507bf2ae67120ab7089297d53ce41c26314ca30)) +- **deps:** update dependency ldapts to v7.2.0 ([#1097](https://github.com/homarr-labs/homarr/issues/1097)) ([9d5007c](https://github.com/homarr-labs/homarr/commit/9d5007c05cb3216c9acbb1233326be1cd8d1cbb8)) +- **deps:** update dependency ldapts to v7.2.1 ([#1211](https://github.com/homarr-labs/homarr/issues/1211)) ([1b0d927](https://github.com/homarr-labs/homarr/commit/1b0d927e8866376f2f6851f78f9ef5ab67eb5ad2)) +- **deps:** update dependency ldapts to v7.2.2 ([#1574](https://github.com/homarr-labs/homarr/issues/1574)) ([d5f7621](https://github.com/homarr-labs/homarr/commit/d5f76218cd314769fb312e60de824acc1f90914e)) +- **deps:** update dependency mantine-modal-manager to ^7.5.2 ([#72](https://github.com/homarr-labs/homarr/issues/72)) ([f704bad](https://github.com/homarr-labs/homarr/commit/f704bad36e103fc349b0303d9f79440d076c1e88)) +- **deps:** update dependency mantine-modal-manager to ^7.5.3 ([#132](https://github.com/homarr-labs/homarr/issues/132)) ([4565f38](https://github.com/homarr-labs/homarr/commit/4565f38bef6e940c2856b7213dae92cfff659a7b)) +- **deps:** update dependency mantine-modal-manager to ^7.6.1 ([#171](https://github.com/homarr-labs/homarr/issues/171)) ([acf9d18](https://github.com/homarr-labs/homarr/commit/acf9d1803f7112520a87fe854ef65d7f67dd5cb9)) +- **deps:** update dependency mantine-modal-manager to ^7.6.2 ([#222](https://github.com/homarr-labs/homarr/issues/222)) ([b63b2c8](https://github.com/homarr-labs/homarr/commit/b63b2c8e9021d8e789789471a061f1f40320a135)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.0 ([#149](https://github.com/homarr-labs/homarr/issues/149)) ([f211ffb](https://github.com/homarr-labs/homarr/commit/f211ffbf78d9039fc5e68a8219cef134ad3a5fa5)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.1 ([#277](https://github.com/homarr-labs/homarr/issues/277)) ([e1b62ec](https://github.com/homarr-labs/homarr/commit/e1b62ecd5300b54523e9c9672b53b9ac49a3996e)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.2 ([#466](https://github.com/homarr-labs/homarr/issues/466)) ([627f895](https://github.com/homarr-labs/homarr/commit/627f8957e546a37520f0122b62664704f9d286c3)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.3 ([#488](https://github.com/homarr-labs/homarr/issues/488)) ([8b84695](https://github.com/homarr-labs/homarr/commit/8b84695079220228e99317d9cd12d613e6af4043)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.4 ([#593](https://github.com/homarr-labs/homarr/issues/593)) ([fef070c](https://github.com/homarr-labs/homarr/commit/fef070c42cbff79e8301fdbe5623482d2ed01521)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.5 ([#661](https://github.com/homarr-labs/homarr/issues/661)) ([37ebcfe](https://github.com/homarr-labs/homarr/commit/37ebcfe318540e6941ea62a40a001aaed19e0abf)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.6 ([#837](https://github.com/homarr-labs/homarr/issues/837)) ([5da74ca](https://github.com/homarr-labs/homarr/commit/5da74ca7e057632b9f693061c3855e1fb348c5bb)) +- **deps:** update dependency mantine-react-table to v2.0.0-beta.7 ([#1287](https://github.com/homarr-labs/homarr/issues/1287)) ([6f97741](https://github.com/homarr-labs/homarr/commit/6f97741862ad2d25d852858e509f78d0ff0a7e01)) +- **deps:** update dependency mysql2 to ^3.9.3 ([#273](https://github.com/homarr-labs/homarr/issues/273)) ([b0bba14](https://github.com/homarr-labs/homarr/commit/b0bba1418b802b238eb8724987ce6bbb1a27f195)) +- **deps:** update dependency mysql2 to v3.10.0 ([#585](https://github.com/homarr-labs/homarr/issues/585)) ([ff84c2b](https://github.com/homarr-labs/homarr/commit/ff84c2bdb77db1e825fd3a6c7be303f2c450edbe)) +- **deps:** update dependency mysql2 to v3.10.1 ([#665](https://github.com/homarr-labs/homarr/issues/665)) ([10acb2b](https://github.com/homarr-labs/homarr/commit/10acb2bc7645048c8265a78075eef6ac6f0b1fe0)) +- **deps:** update dependency mysql2 to v3.10.2 ([#731](https://github.com/homarr-labs/homarr/issues/731)) ([663eb0b](https://github.com/homarr-labs/homarr/commit/663eb0bf5b986a71c36a36f86e5011835112d2b7)) +- **deps:** update dependency mysql2 to v3.10.3 ([#816](https://github.com/homarr-labs/homarr/issues/816)) ([636d3c6](https://github.com/homarr-labs/homarr/commit/636d3c670cc387a26112d58a33576cdcd1e5b5d2)) +- **deps:** update dependency mysql2 to v3.11.0 ([#874](https://github.com/homarr-labs/homarr/issues/874)) ([c973a3b](https://github.com/homarr-labs/homarr/commit/c973a3bfa540397b6882e0b4bdd5ce6c2a193e2f)) +- **deps:** update dependency mysql2 to v3.11.1 ([#1094](https://github.com/homarr-labs/homarr/issues/1094)) ([40af170](https://github.com/homarr-labs/homarr/commit/40af17083aba37c2e02f81f295c1192f70d0a691)) +- **deps:** update dependency mysql2 to v3.11.2 ([#1098](https://github.com/homarr-labs/homarr/issues/1098)) ([d2a30db](https://github.com/homarr-labs/homarr/commit/d2a30db3c1bd21decba0624c13635b092afabf4f)) +- **deps:** update dependency mysql2 to v3.11.3 ([#1132](https://github.com/homarr-labs/homarr/issues/1132)) ([6c39612](https://github.com/homarr-labs/homarr/commit/6c39612c0731c0728b62057eb240543ae4a1ec15)) +- **deps:** update dependency mysql2 to v3.11.4 ([#1430](https://github.com/homarr-labs/homarr/issues/1430)) ([7e1305c](https://github.com/homarr-labs/homarr/commit/7e1305c6a99e96900b447591ebeb48393186483d)) +- **deps:** update dependency mysql2 to v3.11.5 ([#1567](https://github.com/homarr-labs/homarr/issues/1567)) ([cebc925](https://github.com/homarr-labs/homarr/commit/cebc925b879d22a662be326c6b8b5048907dd92c)) +- **deps:** update dependency mysql2 to v3.9.6 ([#311](https://github.com/homarr-labs/homarr/issues/311)) ([a6d65fd](https://github.com/homarr-labs/homarr/commit/a6d65fda6b9ed31a08a420e51718dbd36f8da7ae)) +- **deps:** update dependency mysql2 to v3.9.7 ([#369](https://github.com/homarr-labs/homarr/issues/369)) ([51ea67f](https://github.com/homarr-labs/homarr/commit/51ea67fc883a6b2e2164f46a6a3e1e41a961a834)) +- **deps:** update dependency mysql2 to v3.9.8 ([#558](https://github.com/homarr-labs/homarr/issues/558)) ([3f364ca](https://github.com/homarr-labs/homarr/commit/3f364cacedb556cb58c8b15c1a81cecca7cb22e7)) +- **deps:** update dependency mysql2 to v3.9.9 ([#576](https://github.com/homarr-labs/homarr/issues/576)) ([612b8d8](https://github.com/homarr-labs/homarr/commit/612b8d8c6eff4adaec8e359b4733af31c69e10ae)) +- **deps:** update dependency next to ^14.1.1-canary.59 ([#121](https://github.com/homarr-labs/homarr/issues/121)) ([4f911c4](https://github.com/homarr-labs/homarr/commit/4f911c4f56be487726359eb00e7d34bff426b596)) +- **deps:** update dependency next to ^14.1.1-canary.61 ([#138](https://github.com/homarr-labs/homarr/issues/138)) ([6a02afb](https://github.com/homarr-labs/homarr/commit/6a02afbfe2daded6a86ee13423ae4fdeb7ed14a5)) +- **deps:** update dependency next to ^14.1.1-canary.62 ([#140](https://github.com/homarr-labs/homarr/issues/140)) ([fde634d](https://github.com/homarr-labs/homarr/commit/fde634d834c58501435ccab7409693fd9f5fecbc)) +- **deps:** update dependency next to ^14.1.1-canary.63 ([#146](https://github.com/homarr-labs/homarr/issues/146)) ([4d01136](https://github.com/homarr-labs/homarr/commit/4d011364bf61971392b541d6758585eb25f5c68c)) +- **deps:** update dependency next-auth to v5.0.0-beta.11 ([#91](https://github.com/homarr-labs/homarr/issues/91)) ([336dc38](https://github.com/homarr-labs/homarr/commit/336dc38b2d0f6932eaacee354640ffa5ec92729e)) +- **deps:** update dependency next-auth to v5.0.0-beta.13 ([#108](https://github.com/homarr-labs/homarr/issues/108)) ([64194c5](https://github.com/homarr-labs/homarr/commit/64194c51edbca639193d9865fc6d4c7e07a1b3bf)) +- **deps:** update dependency next-auth to v5.0.0-beta.15 ([#167](https://github.com/homarr-labs/homarr/issues/167)) ([70f34ef](https://github.com/homarr-labs/homarr/commit/70f34efd5385e641bf5f9f043cbd18e6e9bf2cce)) +- **deps:** update dependency next-auth to v5.0.0-beta.16 ([#268](https://github.com/homarr-labs/homarr/issues/268)) ([ba27871](https://github.com/homarr-labs/homarr/commit/ba278717650a20381912070624aa390594410578)) +- **deps:** update dependency next-auth to v5.0.0-beta.17 ([#383](https://github.com/homarr-labs/homarr/issues/383)) ([bfdc8d5](https://github.com/homarr-labs/homarr/commit/bfdc8d584b9abef5bf3b417ad8eba951404856ce)) +- **deps:** update dependency next-auth to v5.0.0-beta.19 ([#605](https://github.com/homarr-labs/homarr/issues/605)) ([20874cb](https://github.com/homarr-labs/homarr/commit/20874cb96d7b45ca33bd86e3670d81dc71688390)) +- **deps:** update dependency next-auth to v5.0.0-beta.20 ([#878](https://github.com/homarr-labs/homarr/issues/878)) ([a0c5545](https://github.com/homarr-labs/homarr/commit/a0c55459d1e3dbec93329ca9c99acf652683a08b)) +- **deps:** update dependency next-auth to v5.0.0-beta.21 ([#1131](https://github.com/homarr-labs/homarr/issues/1131)) ([5a73700](https://github.com/homarr-labs/homarr/commit/5a73700f571b6628161b55380fd08da93cede0a8)) +- **deps:** update dependency next-auth to v5.0.0-beta.22 ([#1195](https://github.com/homarr-labs/homarr/issues/1195)) ([c3e1ce3](https://github.com/homarr-labs/homarr/commit/c3e1ce30fa15ff7cee29d842a2f6c8688f9639ba)) +- **deps:** update dependency next-auth to v5.0.0-beta.23 ([#1325](https://github.com/homarr-labs/homarr/issues/1325)) ([c52fd97](https://github.com/homarr-labs/homarr/commit/c52fd972b7157d6132923cff5c2c350ca32d8229)) +- **deps:** update dependency next-auth to v5.0.0-beta.25 ([#1341](https://github.com/homarr-labs/homarr/issues/1341)) ([278107a](https://github.com/homarr-labs/homarr/commit/278107a1a4b6c5f6b391a25704314c613212fbab)) +- **deps:** update dependency next-auth to v5.0.0-beta.8 ([#60](https://github.com/homarr-labs/homarr/issues/60)) ([544a6d9](https://github.com/homarr-labs/homarr/commit/544a6d992691c6ba398b236fdd4f59111fa64e5a)) +- **deps:** update dependency next-auth to v5.0.0-beta.9 ([#68](https://github.com/homarr-labs/homarr/issues/68)) ([cc52c2b](https://github.com/homarr-labs/homarr/commit/cc52c2ba785e78f251bc6cfac637bc4285b77f0f)) +- **deps:** update dependency next-international to ^1.2.3 ([#35](https://github.com/homarr-labs/homarr/issues/35)) ([b8fe041](https://github.com/homarr-labs/homarr/commit/b8fe04144fea31a934a59094c52d7c6fc4cfffbb)) +- **deps:** update dependency next-international to ^1.2.4 ([#76](https://github.com/homarr-labs/homarr/issues/76)) ([60d5ebb](https://github.com/homarr-labs/homarr/commit/60d5ebbc11fd8a8f5494e303335e2bd46ec09a3d)) +- **deps:** update dependency next-intl to v3.23.5 ([#1376](https://github.com/homarr-labs/homarr/issues/1376)) ([a4ae38b](https://github.com/homarr-labs/homarr/commit/a4ae38b5e4bf09303e659f4eacac0c81ea3bea07)) +- **deps:** update dependency next-intl to v3.24.0 ([#1392](https://github.com/homarr-labs/homarr/issues/1392)) ([4e9b0af](https://github.com/homarr-labs/homarr/commit/4e9b0af54c2f3bc5a23b9cecfc570b74787af478)) +- **deps:** update dependency next-intl to v3.25.0 ([#1448](https://github.com/homarr-labs/homarr/issues/1448)) ([8722109](https://github.com/homarr-labs/homarr/commit/87221093d25df689472ed86184d528eb815e10d1)) +- **deps:** update dependency next-intl to v3.25.1 ([#1473](https://github.com/homarr-labs/homarr/issues/1473)) ([7a9e9a1](https://github.com/homarr-labs/homarr/commit/7a9e9a1e0de02a678787c2509e09c748d7a0042b)) +- **deps:** update dependency next-intl to v3.25.2 ([#1545](https://github.com/homarr-labs/homarr/issues/1545)) ([b6c28da](https://github.com/homarr-labs/homarr/commit/b6c28da32b0cdcfe181db8e698e9f28997cebc52)) +- **deps:** update dependency next-intl to v3.25.3 ([#1551](https://github.com/homarr-labs/homarr/issues/1551)) ([907c28c](https://github.com/homarr-labs/homarr/commit/907c28c945bc7e7ac2c600f7c7a04750ff7465d6)) +- **deps:** update dependency next-intl to v3.26.0 ([#1619](https://github.com/homarr-labs/homarr/issues/1619)) ([58008c1](https://github.com/homarr-labs/homarr/commit/58008c1e2fc9a20401f45288f3beedb80a466351)) +- **deps:** update dependency next-intl to v3.26.1 ([#1644](https://github.com/homarr-labs/homarr/issues/1644)) ([5194867](https://github.com/homarr-labs/homarr/commit/51948677fa1fd0b6ea7410cdbb6f6f77a1f87db0)) +- **deps:** update dependency node-cron to ^3.0.3 ([#309](https://github.com/homarr-labs/homarr/issues/309)) ([48f45d7](https://github.com/homarr-labs/homarr/commit/48f45d73775f0b872613e01edc3499a2a2f7c924)) +- **deps:** update dependency postcss-preset-mantine to ^1.13.0 ([#36](https://github.com/homarr-labs/homarr/issues/36)) ([d73e7a3](https://github.com/homarr-labs/homarr/commit/d73e7a3c3fc278e30f723a5d2b4bdedf667cc5ce)) +- **deps:** update dependency postcss-preset-mantine to ^1.14.4 ([#336](https://github.com/homarr-labs/homarr/issues/336)) ([49e45e8](https://github.com/homarr-labs/homarr/commit/49e45e8122147b2eeebc5ee025bdfd91e7cb4836)) +- **deps:** update dependency postcss-preset-mantine to ^1.15.0 ([#387](https://github.com/homarr-labs/homarr/issues/387)) ([84175e6](https://github.com/homarr-labs/homarr/commit/84175e6a7e4fb8ce3cbcb89ee4d713b6531d3ac0)) +- **deps:** update dependency postcss-preset-mantine to ^1.16.0 ([#827](https://github.com/homarr-labs/homarr/issues/827)) ([002d011](https://github.com/homarr-labs/homarr/commit/002d011b18ffa74f29d06a6bef3d08d6e997735d)) +- **deps:** update dependency postcss-preset-mantine to ^1.17.0 ([#843](https://github.com/homarr-labs/homarr/issues/843)) ([41e5760](https://github.com/homarr-labs/homarr/commit/41e576039f8400e671dd52362a6b2ba9ce605a9f)) +- **deps:** update dependency prettier to ^3.2.4 ([#37](https://github.com/homarr-labs/homarr/issues/37)) ([9aaec54](https://github.com/homarr-labs/homarr/commit/9aaec5495dfacbbf2a313d142e23394bf8c78d43)) +- **deps:** update dependency prettier to ^3.2.5 ([#53](https://github.com/homarr-labs/homarr/issues/53)) ([15f0801](https://github.com/homarr-labs/homarr/commit/15f08011a6c2e7fd7274bc28b9d559269cb03f7e)) +- **deps:** update dependency prettier to ^3.3.0 ([#594](https://github.com/homarr-labs/homarr/issues/594)) ([b1b839f](https://github.com/homarr-labs/homarr/commit/b1b839fcd866f0c157e14d59a47e0cdbeb1ff444)) +- **deps:** update dependency prettier to ^3.3.1 ([#623](https://github.com/homarr-labs/homarr/issues/623)) ([8f551aa](https://github.com/homarr-labs/homarr/commit/8f551aa4856065c3a7e1e7e763781863ed2db972)) +- **deps:** update dependency prettier to ^3.3.2 ([#656](https://github.com/homarr-labs/homarr/issues/656)) ([d69cda0](https://github.com/homarr-labs/homarr/commit/d69cda03136f29744b4935e28bdfc4dcb24424fb)) +- **deps:** update dependency prettier to ^3.3.3 ([#805](https://github.com/homarr-labs/homarr/issues/805)) ([66036b0](https://github.com/homarr-labs/homarr/commit/66036b08bcfecb5fb4e2e588bd74e935a387a34c)) +- **deps:** update dependency prettier to ^3.4.0 ([#1550](https://github.com/homarr-labs/homarr/issues/1550)) ([2e9b99d](https://github.com/homarr-labs/homarr/commit/2e9b99dff76e675a5e28ca22dddc467fe94a5f6d)) +- **deps:** update dependency prettier to ^3.4.1 ([#1554](https://github.com/homarr-labs/homarr/issues/1554)) ([27b8f65](https://github.com/homarr-labs/homarr/commit/27b8f65238eca00e6f51f681c4689199cae22728)) +- **deps:** update dependency prettier to ^3.4.2 ([#1602](https://github.com/homarr-labs/homarr/issues/1602)) ([bbec013](https://github.com/homarr-labs/homarr/commit/bbec01385f8ba609efe83712c61df4c0b483badb)) +- **deps:** update dependency react-error-boundary to ^4.1.0 ([#1304](https://github.com/homarr-labs/homarr/issues/1304)) ([9fa4bef](https://github.com/homarr-labs/homarr/commit/9fa4bef2a4a9edf68299f3095a60d4eaaf144f65)) +- **deps:** update dependency react-error-boundary to ^4.1.1 ([#1315](https://github.com/homarr-labs/homarr/issues/1315)) ([3b5082c](https://github.com/homarr-labs/homarr/commit/3b5082c107771ade24917da61b87321bfc40995d)) +- **deps:** update dependency react-error-boundary to ^4.1.2 ([#1334](https://github.com/homarr-labs/homarr/issues/1334)) ([98f1c33](https://github.com/homarr-labs/homarr/commit/98f1c333186c44f5f1e4bfc6452451edb990cbaa)) +- **deps:** update dependency react-simple-code-editor to ^0.14.0 ([#738](https://github.com/homarr-labs/homarr/issues/738)) ([d32075d](https://github.com/homarr-labs/homarr/commit/d32075d410af5111e4e33c09be7facdd0d44d196)) +- **deps:** update dependency react-simple-code-editor to ^0.14.1 ([#746](https://github.com/homarr-labs/homarr/issues/746)) ([9375738](https://github.com/homarr-labs/homarr/commit/9375738e0552357f53b52c1637732494f568f5a0)) +- **deps:** update dependency reflect-metadata to ^0.2.1 ([#182](https://github.com/homarr-labs/homarr/issues/182)) ([9ee96a1](https://github.com/homarr-labs/homarr/commit/9ee96a14628b3b450d45b07ad45863375b899cde)) +- **deps:** update dependency rimraf to v5 ([#186](https://github.com/homarr-labs/homarr/issues/186)) ([f4b93d1](https://github.com/homarr-labs/homarr/commit/f4b93d1eae4b28cb5929b30ea2a55c57bdac84be)) +- **deps:** update dependency rxjs to ^7.8.1 ([#181](https://github.com/homarr-labs/homarr/issues/181)) ([e1a98f7](https://github.com/homarr-labs/homarr/commit/e1a98f7fc05881c3b161f22463afbcf3b0b306b0)) +- **deps:** update dependency sass to ^1.71.0 ([#96](https://github.com/homarr-labs/homarr/issues/96)) ([9a60588](https://github.com/homarr-labs/homarr/commit/9a60588a031b262a06d4048804960bf7966ba1b5)) +- **deps:** update dependency sass to ^1.71.1 ([#148](https://github.com/homarr-labs/homarr/issues/148)) ([abc4a9a](https://github.com/homarr-labs/homarr/commit/abc4a9afbc7b61266907826da1f20077e98176f2)) +- **deps:** update dependency sass to ^1.72.0 ([#230](https://github.com/homarr-labs/homarr/issues/230)) ([4bab91f](https://github.com/homarr-labs/homarr/commit/4bab91f8deeb65678009edcbff31abe843269d44)) +- **deps:** update dependency sass to ^1.74.1 ([#306](https://github.com/homarr-labs/homarr/issues/306)) ([e68a2e5](https://github.com/homarr-labs/homarr/commit/e68a2e5813d857f1da8bd1ae15129fd323d98f52)) +- **deps:** update dependency sass to ^1.75.0 ([#347](https://github.com/homarr-labs/homarr/issues/347)) ([0cc5225](https://github.com/homarr-labs/homarr/commit/0cc5225e32b18cf02378836bc4142663c68aa82d)) +- **deps:** update dependency sass to ^1.76.0 ([#410](https://github.com/homarr-labs/homarr/issues/410)) ([e556bf3](https://github.com/homarr-labs/homarr/commit/e556bf3e6617df664897037cfe6d223e56a8262a)) +- **deps:** update dependency sass to ^1.77.0 ([#451](https://github.com/homarr-labs/homarr/issues/451)) ([3ae96d9](https://github.com/homarr-labs/homarr/commit/3ae96d94a20797f0b4ec5ff22e4649a0fd497748)) +- **deps:** update dependency sass to ^1.77.1 ([#469](https://github.com/homarr-labs/homarr/issues/469)) ([cb6f754](https://github.com/homarr-labs/homarr/commit/cb6f754492b737b70f3db614efd2dfaea49daca9)) +- **deps:** update dependency sass to ^1.77.2 ([#506](https://github.com/homarr-labs/homarr/issues/506)) ([7664b00](https://github.com/homarr-labs/homarr/commit/7664b00be00dd134c130bbb6ffb438155d333553)) +- **deps:** update dependency sass to ^1.77.3 ([#579](https://github.com/homarr-labs/homarr/issues/579)) ([169feca](https://github.com/homarr-labs/homarr/commit/169fecaba1645f0313e730de0e0caff0793cd4c4)) +- **deps:** update dependency sass to ^1.77.4 ([#586](https://github.com/homarr-labs/homarr/issues/586)) ([79d977c](https://github.com/homarr-labs/homarr/commit/79d977c0085e8fc600d1806a566ac17e763dfc48)) +- **deps:** update dependency sass to ^1.77.5 ([#659](https://github.com/homarr-labs/homarr/issues/659)) ([f5f6388](https://github.com/homarr-labs/homarr/commit/f5f63883612c320d4a73cb5bf9435b30c6071537)) +- **deps:** update dependency sass to ^1.77.6 ([#683](https://github.com/homarr-labs/homarr/issues/683)) ([4526fa6](https://github.com/homarr-labs/homarr/commit/4526fa6fc488aad0b54093e47e9064d771473d30)) +- **deps:** update dependency sass to ^1.77.7 ([#773](https://github.com/homarr-labs/homarr/issues/773)) ([dcb9cfa](https://github.com/homarr-labs/homarr/commit/dcb9cfaf295c3aeb30181ea5c7c7e404785e6763)) +- **deps:** update dependency sass to ^1.77.8 ([#783](https://github.com/homarr-labs/homarr/issues/783)) ([ec4b3a6](https://github.com/homarr-labs/homarr/commit/ec4b3a64081bd5d94d4e728dcd7562f708cf0c5f)) +- **deps:** update dependency sass to ^1.78.0 ([#1064](https://github.com/homarr-labs/homarr/issues/1064)) ([3d1b626](https://github.com/homarr-labs/homarr/commit/3d1b626baa736a6a41b4b35f32ef44d948b2f309)) +- **deps:** update dependency sass to ^1.79.0 ([#1147](https://github.com/homarr-labs/homarr/issues/1147)) ([f1d5dd0](https://github.com/homarr-labs/homarr/commit/f1d5dd03cbea8ea569d21f94b95e31d66cb03adc)) +- **deps:** update dependency sass to ^1.79.1 ([#1148](https://github.com/homarr-labs/homarr/issues/1148)) ([3cb1221](https://github.com/homarr-labs/homarr/commit/3cb1221038715ae8d771c3a6622f666ae9493aef)) +- **deps:** update dependency sass to ^1.79.2 ([#1153](https://github.com/homarr-labs/homarr/issues/1153)) ([a028251](https://github.com/homarr-labs/homarr/commit/a02825113a17aa3142ced5a726058bd6168beee1)) +- **deps:** update dependency sass to ^1.79.3 ([#1159](https://github.com/homarr-labs/homarr/issues/1159)) ([612a158](https://github.com/homarr-labs/homarr/commit/612a15810b671cedeb9fefd7902692a466394e3a)) +- **deps:** update dependency sass to ^1.79.4 ([#1198](https://github.com/homarr-labs/homarr/issues/1198)) ([9af01bb](https://github.com/homarr-labs/homarr/commit/9af01bb68006af39f009e4a0605cc0a7f42bcba5)) +- **deps:** update dependency sass to ^1.79.5 ([#1279](https://github.com/homarr-labs/homarr/issues/1279)) ([99ddd92](https://github.com/homarr-labs/homarr/commit/99ddd9214edb8841a1c969af9c1d1f91643e6df8)) +- **deps:** update dependency sass to ^1.79.6 ([#1312](https://github.com/homarr-labs/homarr/issues/1312)) ([0c134dd](https://github.com/homarr-labs/homarr/commit/0c134dde6e9b472cd5cd32dfebdc9146e4fb64db)) +- **deps:** update dependency sass to ^1.80.1 ([#1314](https://github.com/homarr-labs/homarr/issues/1314)) ([a44c907](https://github.com/homarr-labs/homarr/commit/a44c90774547d9ad6c4911c12f21ffa98b3694e5)) +- **deps:** update dependency sass to ^1.80.2 ([#1319](https://github.com/homarr-labs/homarr/issues/1319)) ([3781fe5](https://github.com/homarr-labs/homarr/commit/3781fe5cf876d36aacc7bb4f373ea7973e4e57f7)) +- **deps:** update dependency sass to ^1.80.3 ([#1331](https://github.com/homarr-labs/homarr/issues/1331)) ([e46bf5d](https://github.com/homarr-labs/homarr/commit/e46bf5d24811aa9c8e8092d6635e67f665123721)) +- **deps:** update dependency sass to ^1.80.4 ([#1366](https://github.com/homarr-labs/homarr/issues/1366)) ([2bac28a](https://github.com/homarr-labs/homarr/commit/2bac28a50a843bdf2bdefdc9bad4a07af2fa92b9)) +- **deps:** update dependency sass to ^1.80.5 ([#1388](https://github.com/homarr-labs/homarr/issues/1388)) ([74a8495](https://github.com/homarr-labs/homarr/commit/74a84959034ba1383716e06a7ce73d2f6397e40f)) +- **deps:** update dependency sass to ^1.80.6 ([#1399](https://github.com/homarr-labs/homarr/issues/1399)) ([d908b3f](https://github.com/homarr-labs/homarr/commit/d908b3f6769fe5add91e605f16dc6c5f89d96373)) +- **deps:** update dependency sass to ^1.80.7 ([#1472](https://github.com/homarr-labs/homarr/issues/1472)) ([9bd0e0f](https://github.com/homarr-labs/homarr/commit/9bd0e0f4ee49a3e6ed5245312c5fb77ff8dc48a8)) +- **deps:** update dependency sass to ^1.81.0 ([#1486](https://github.com/homarr-labs/homarr/issues/1486)) ([908d0bb](https://github.com/homarr-labs/homarr/commit/908d0bbc5066e3ee312c89025e3bd60c224094f3)) +- **deps:** update dependency sass to ^1.81.1 ([#1589](https://github.com/homarr-labs/homarr/issues/1589)) ([57bbd43](https://github.com/homarr-labs/homarr/commit/57bbd43c74d29272ac0fa3667965fd78decc4e6b)) +- **deps:** update dependency sass to ^1.82.0 ([#1600](https://github.com/homarr-labs/homarr/issues/1600)) ([825b1a3](https://github.com/homarr-labs/homarr/commit/825b1a3643266049ddf5a6cd53defa47e78d8cc8)) +- **deps:** update dependency sass to ^1.83.0 ([#1650](https://github.com/homarr-labs/homarr/issues/1650)) ([0bd8e2c](https://github.com/homarr-labs/homarr/commit/0bd8e2c08516fabd9bd6c3d4649abb4f47d7bc13)) +- **deps:** update dependency sharp to ^0.33.3 ([#260](https://github.com/homarr-labs/homarr/issues/260)) ([87808c1](https://github.com/homarr-labs/homarr/commit/87808c1349f520a4d2160a11ef49c11a91665ea9)) +- **deps:** update dependency superjson to v2.2.2 ([#1618](https://github.com/homarr-labs/homarr/issues/1618)) ([aaa3e7c](https://github.com/homarr-labs/homarr/commit/aaa3e7ce0c58f644db283e5c256779b5c4fb09bb)) +- **deps:** update dependency swagger-ui-react to ^5.17.14 ([#1031](https://github.com/homarr-labs/homarr/issues/1031)) ([6351bf7](https://github.com/homarr-labs/homarr/commit/6351bf78ff902948218b50d568e7d7425a27b2ad)) +- **deps:** update dependency swagger-ui-react to ^5.18.0 ([#1428](https://github.com/homarr-labs/homarr/issues/1428)) ([4643c0f](https://github.com/homarr-labs/homarr/commit/4643c0f004425f54d96871755aec1e0a6cfa30b2)) +- **deps:** update dependency swagger-ui-react to ^5.18.1 ([#1432](https://github.com/homarr-labs/homarr/issues/1432)) ([0809d5a](https://github.com/homarr-labs/homarr/commit/0809d5aa747e4937ca1890ee04972b99e87f26bc)) +- **deps:** update dependency swagger-ui-react to ^5.18.2 ([#1442](https://github.com/homarr-labs/homarr/issues/1442)) ([2357435](https://github.com/homarr-labs/homarr/commit/23574359f0ed180d512810773b48bd046139ae66)) +- **deps:** update dependency tldts to ^6.1.38 ([#931](https://github.com/homarr-labs/homarr/issues/931)) ([a2be781](https://github.com/homarr-labs/homarr/commit/a2be781f81465b32543b28dee7df8f1b0290f12a)) +- **deps:** update dependency tldts to ^6.1.39 ([#966](https://github.com/homarr-labs/homarr/issues/966)) ([4b39c16](https://github.com/homarr-labs/homarr/commit/4b39c16d256656998ab817f58cdaf13fe81dc044)) +- **deps:** update dependency tldts to ^6.1.40 ([#996](https://github.com/homarr-labs/homarr/issues/996)) ([f5c380f](https://github.com/homarr-labs/homarr/commit/f5c380f75b30bc45573a4aaef7fe926c3a71011d)) +- **deps:** update dependency tldts to ^6.1.41 ([#1011](https://github.com/homarr-labs/homarr/issues/1011)) ([7742d5f](https://github.com/homarr-labs/homarr/commit/7742d5f5b4b37ab2fb1e6cdc6a5c25c5caca1a5d)) +- **deps:** update dependency tldts to ^6.1.42 ([#1069](https://github.com/homarr-labs/homarr/issues/1069)) ([247de55](https://github.com/homarr-labs/homarr/commit/247de555cec15ae8f6fac0fd5b2abc90382b1786)) +- **deps:** update dependency tldts to ^6.1.43 ([#1080](https://github.com/homarr-labs/homarr/issues/1080)) ([fc1bff2](https://github.com/homarr-labs/homarr/commit/fc1bff2110e1a4c1fa1d48ba4a42ee4d3ad5b469)) +- **deps:** update dependency tldts to ^6.1.44 ([#1095](https://github.com/homarr-labs/homarr/issues/1095)) ([18347fe](https://github.com/homarr-labs/homarr/commit/18347fef3bc355d42e902e76e0caf02ee855df9a)) +- **deps:** update dependency tldts to ^6.1.45 ([#1121](https://github.com/homarr-labs/homarr/issues/1121)) ([7059a3d](https://github.com/homarr-labs/homarr/commit/7059a3d88f73ddceb70d037bb0f362fe50bda225)) +- **deps:** update dependency tldts to ^6.1.46 ([#1128](https://github.com/homarr-labs/homarr/issues/1128)) ([aca5c27](https://github.com/homarr-labs/homarr/commit/aca5c279b5360fdacd3f5dc77fd58ce41c343e5f)) +- **deps:** update dependency tldts to ^6.1.47 ([#1152](https://github.com/homarr-labs/homarr/issues/1152)) ([aa2d440](https://github.com/homarr-labs/homarr/commit/aa2d440acbbe92d088b9ba9bdf2ebbc5b2b642c1)) +- **deps:** update dependency tldts to ^6.1.48 ([#1190](https://github.com/homarr-labs/homarr/issues/1190)) ([f6c7271](https://github.com/homarr-labs/homarr/commit/f6c7271fb43324f7e9eb0f8cc7ae5646f516b8b2)) +- **deps:** update dependency tldts to ^6.1.49 ([#1216](https://github.com/homarr-labs/homarr/issues/1216)) ([2f3619b](https://github.com/homarr-labs/homarr/commit/2f3619b68dc9f3c20a229b896f8b3c4b91e5c0a7)) +- **deps:** update dependency tldts to ^6.1.50 ([#1228](https://github.com/homarr-labs/homarr/issues/1228)) ([17572bc](https://github.com/homarr-labs/homarr/commit/17572bc602a7b1e42def413f1a7668cf1280170b)) +- **deps:** update dependency tldts to ^6.1.51 ([#1288](https://github.com/homarr-labs/homarr/issues/1288)) ([0fadc28](https://github.com/homarr-labs/homarr/commit/0fadc28a125aa68e6d6d96a17c7c86012d13a288)) +- **deps:** update dependency tldts to ^6.1.52 ([#1307](https://github.com/homarr-labs/homarr/issues/1307)) ([c4ec4f3](https://github.com/homarr-labs/homarr/commit/c4ec4f3c66078b0c94bb049334e32e31e41936ac)) +- **deps:** update dependency tldts to ^6.1.53 ([#1351](https://github.com/homarr-labs/homarr/issues/1351)) ([a8c36f3](https://github.com/homarr-labs/homarr/commit/a8c36f35c3e5a9342fe932832342f76855c8d4d4)) +- **deps:** update dependency tldts to ^6.1.54 ([#1353](https://github.com/homarr-labs/homarr/issues/1353)) ([e062ea1](https://github.com/homarr-labs/homarr/commit/e062ea150782b73d0a86748fef43355a46df2244)) +- **deps:** update dependency tldts to ^6.1.55 ([#1369](https://github.com/homarr-labs/homarr/issues/1369)) ([3a6e957](https://github.com/homarr-labs/homarr/commit/3a6e957710c08e64cc7b42ecca2bf5069cceb896)) +- **deps:** update dependency tldts to ^6.1.56 ([#1375](https://github.com/homarr-labs/homarr/issues/1375)) ([f8c21f6](https://github.com/homarr-labs/homarr/commit/f8c21f6000e8d8843e43afaf09713f958b318f0f)) +- **deps:** update dependency tldts to ^6.1.57 ([#1386](https://github.com/homarr-labs/homarr/issues/1386)) ([8da1dd0](https://github.com/homarr-labs/homarr/commit/8da1dd0d5f95e1d15f1115a8518992935e89059c)) +- **deps:** update dependency tldts to ^6.1.58 ([#1400](https://github.com/homarr-labs/homarr/issues/1400)) ([baabf71](https://github.com/homarr-labs/homarr/commit/baabf717078caba315f39a1d429fc0ba92f3d167)) +- **deps:** update dependency tldts to ^6.1.59 ([#1447](https://github.com/homarr-labs/homarr/issues/1447)) ([2a7d648](https://github.com/homarr-labs/homarr/commit/2a7d64804975797863b9a4a7b03d7ab10f4d8a2b)) +- **deps:** update dependency tldts to ^6.1.60 ([#1460](https://github.com/homarr-labs/homarr/issues/1460)) ([4ab40c6](https://github.com/homarr-labs/homarr/commit/4ab40c6fa8e13af66a0a3b14e3c03955ff98f2c7)) +- **deps:** update dependency tldts to ^6.1.61 ([#1474](https://github.com/homarr-labs/homarr/issues/1474)) ([3ca97fe](https://github.com/homarr-labs/homarr/commit/3ca97fef0b984e06461d92f16564bd787ff53150)) +- **deps:** update dependency tldts to ^6.1.62 ([#1514](https://github.com/homarr-labs/homarr/issues/1514)) ([a2a65ab](https://github.com/homarr-labs/homarr/commit/a2a65abd3d451104d59e8eb55ad74d83f6956784)) +- **deps:** update dependency tldts to ^6.1.63 ([#1519](https://github.com/homarr-labs/homarr/issues/1519)) ([86ae346](https://github.com/homarr-labs/homarr/commit/86ae3469795378f626a2b6aa5eaaf6cd38c874d9)) +- **deps:** update dependency tldts to ^6.1.64 ([#1529](https://github.com/homarr-labs/homarr/issues/1529)) ([cdfb61f](https://github.com/homarr-labs/homarr/commit/cdfb61fb28f6a9adc8658187a41e0cfb3fdc1a8f)) +- **deps:** update dependency tldts to ^6.1.65 ([#1575](https://github.com/homarr-labs/homarr/issues/1575)) ([fb4a19b](https://github.com/homarr-labs/homarr/commit/fb4a19bfe457d1d815e9b72a85c8ea742b950a69)) +- **deps:** update dependency tldts to ^6.1.66 ([#1625](https://github.com/homarr-labs/homarr/issues/1625)) ([6a79d01](https://github.com/homarr-labs/homarr/commit/6a79d01d79b613dccf2a3ffe39a7271bc1931812)) +- **deps:** update dependency tldts to ^6.1.67 ([#1648](https://github.com/homarr-labs/homarr/issues/1648)) ([75c0f70](https://github.com/homarr-labs/homarr/commit/75c0f70ef6159bbada6770a49cfba59f4470fcfc)) +- **deps:** update dependency tldts to ^6.1.68 ([#1656](https://github.com/homarr-labs/homarr/issues/1656)) ([3347886](https://github.com/homarr-labs/homarr/commit/3347886f1e6754f9dd0f8a9975c51bf61b0d3f59)) +- **deps:** update dependency trpc-swagger to ^1.2.6 ([#1032](https://github.com/homarr-labs/homarr/issues/1032)) ([e60e4a4](https://github.com/homarr-labs/homarr/commit/e60e4a49f84ec46f47bdaa830cea5ddeaf7ba8a3)) +- **deps:** update dependency trpc-to-openapi to ^2.0.3 ([#1576](https://github.com/homarr-labs/homarr/issues/1576)) ([0ab9d0b](https://github.com/homarr-labs/homarr/commit/0ab9d0bd694d2cb66de45bcfd0010ecc2b226cb7)) +- **deps:** update dependency trpc-to-openapi to ^2.0.4 ([#1578](https://github.com/homarr-labs/homarr/issues/1578)) ([3ffdc05](https://github.com/homarr-labs/homarr/commit/3ffdc054429a6ec6a3ddc14b9d1ac97602eb0f15)) +- **deps:** update dependency trpc-to-openapi to ^2.1.0 ([#1579](https://github.com/homarr-labs/homarr/issues/1579)) ([7343bdd](https://github.com/homarr-labs/homarr/commit/7343bdde1304f655149c257319996047ddd8a530)) +- **deps:** update dependency typescript-eslint to ^7.13.0 ([#653](https://github.com/homarr-labs/homarr/issues/653)) ([1949885](https://github.com/homarr-labs/homarr/commit/19498854fc1da6fdb9ec29f3ecb7a113a6b2a33e)) +- **deps:** update dependency typescript-eslint to ^7.13.1 ([#681](https://github.com/homarr-labs/homarr/issues/681)) ([e9d6120](https://github.com/homarr-labs/homarr/commit/e9d612051d043253d7c41bafdd4be82949564e43)) +- **deps:** update dependency typescript-eslint to ^7.14.1 ([#709](https://github.com/homarr-labs/homarr/issues/709)) ([196ac34](https://github.com/homarr-labs/homarr/commit/196ac340a16528196e1ca405147c83ed31f8337a)) +- **deps:** update dependency typescript-eslint to ^7.15.0 ([#732](https://github.com/homarr-labs/homarr/issues/732)) ([0990e4b](https://github.com/homarr-labs/homarr/commit/0990e4b552e3c65ee8802e11d2bd3adceab24009)) +- **deps:** update dependency typescript-eslint to ^7.16.0 ([#762](https://github.com/homarr-labs/homarr/issues/762)) ([2c197bc](https://github.com/homarr-labs/homarr/commit/2c197bc59bab428db4990a7c99b1dcdd8b372617)) +- **deps:** update dependency typescript-eslint to ^7.16.1 ([#814](https://github.com/homarr-labs/homarr/issues/814)) ([56c6be5](https://github.com/homarr-labs/homarr/commit/56c6be523db5219b97bafbc53d63360d019fefcc)) +- **deps:** update dependency typescript-eslint to ^7.17.0 ([#855](https://github.com/homarr-labs/homarr/issues/855)) ([b2860ff](https://github.com/homarr-labs/homarr/commit/b2860ffbd3e29ef21021b2416d0c26f0e3b6c54c)) +- **deps:** update dependency typescript-eslint to ^7.18.0 ([#886](https://github.com/homarr-labs/homarr/issues/886)) ([1a24ba6](https://github.com/homarr-labs/homarr/commit/1a24ba6ef73eb058f19f31140cff5198311eba08)) +- **deps:** update dependency typescript-eslint to ^8.0.1 ([#921](https://github.com/homarr-labs/homarr/issues/921)) ([c69483a](https://github.com/homarr-labs/homarr/commit/c69483a12c14ab284dd3cacd0e31d194dcc48cfc)) +- **deps:** update dependency typescript-eslint to ^8.1.0 ([#968](https://github.com/homarr-labs/homarr/issues/968)) ([b9f048c](https://github.com/homarr-labs/homarr/commit/b9f048c57d9f2618f8059862a800259246caa2f8)) +- **deps:** update dependency typescript-eslint to ^8.10.0 ([#1317](https://github.com/homarr-labs/homarr/issues/1317)) ([a231a2d](https://github.com/homarr-labs/homarr/commit/a231a2da6cd42e355fff52b9cf718f44c658cfff)) +- **deps:** update dependency typescript-eslint to ^8.11.0 ([#1346](https://github.com/homarr-labs/homarr/issues/1346)) ([a005ead](https://github.com/homarr-labs/homarr/commit/a005ead158ca1f058605b2a3198af438c7039109)) +- **deps:** update dependency typescript-eslint to ^8.12.2 ([#1381](https://github.com/homarr-labs/homarr/issues/1381)) ([17401d1](https://github.com/homarr-labs/homarr/commit/17401d1d7284088bc5fdc0e037dc72f75e8abd7e)) +- **deps:** update dependency typescript-eslint to ^8.13.0 ([#1420](https://github.com/homarr-labs/homarr/issues/1420)) ([97eb4c5](https://github.com/homarr-labs/homarr/commit/97eb4c54e2f7f9cfc0467b0236b4a2db87bc546c)) +- **deps:** update dependency typescript-eslint to ^8.14.0 ([#1465](https://github.com/homarr-labs/homarr/issues/1465)) ([53acff9](https://github.com/homarr-labs/homarr/commit/53acff91430b9889c90ab9e1a35bce792baa4dd9)) +- **deps:** update dependency typescript-eslint to ^8.15.0 ([#1497](https://github.com/homarr-labs/homarr/issues/1497)) ([b887713](https://github.com/homarr-labs/homarr/commit/b8877137ac05a08c5647d0ba785439d364d9bafb)) +- **deps:** update dependency typescript-eslint to ^8.16.0 ([#1544](https://github.com/homarr-labs/homarr/issues/1544)) ([4df6006](https://github.com/homarr-labs/homarr/commit/4df6006f0e487028fffc3f65d4fa20b2f252e612)) +- **deps:** update dependency typescript-eslint to ^8.17.0 ([#1582](https://github.com/homarr-labs/homarr/issues/1582)) ([5ecf93a](https://github.com/homarr-labs/homarr/commit/5ecf93a317f8face4d47d255c83c7f197eccdb92)) +- **deps:** update dependency typescript-eslint to ^8.18.0 ([#1634](https://github.com/homarr-labs/homarr/issues/1634)) ([3bee3fe](https://github.com/homarr-labs/homarr/commit/3bee3fe3f64c274c73f698cd5f8850f4496c35bd)) +- **deps:** update dependency typescript-eslint to ^8.18.1 ([#1673](https://github.com/homarr-labs/homarr/issues/1673)) ([613d1f9](https://github.com/homarr-labs/homarr/commit/613d1f966282886c6a85bc400dfedbc4bdac906c)) +- **deps:** update dependency typescript-eslint to ^8.2.0 ([#999](https://github.com/homarr-labs/homarr/issues/999)) ([0585187](https://github.com/homarr-labs/homarr/commit/058518710e02ea47bc6e221cab43604d70b16ab5)) +- **deps:** update dependency typescript-eslint to ^8.3.0 ([#1036](https://github.com/homarr-labs/homarr/issues/1036)) ([b0e2692](https://github.com/homarr-labs/homarr/commit/b0e269209e67db1569effd72d1560c0414574654)) +- **deps:** update dependency typescript-eslint to ^8.4.0 ([#1058](https://github.com/homarr-labs/homarr/issues/1058)) ([1d23667](https://github.com/homarr-labs/homarr/commit/1d236678b334c35358a3d95e75d81ad16657afca)) +- **deps:** update dependency typescript-eslint to ^8.5.0 ([#1089](https://github.com/homarr-labs/homarr/issues/1089)) ([c844eb2](https://github.com/homarr-labs/homarr/commit/c844eb2a224c473dd42df4a1ffc9a74bd533e0e2)) +- **deps:** update dependency typescript-eslint to ^8.6.0 ([#1136](https://github.com/homarr-labs/homarr/issues/1136)) ([3ef478c](https://github.com/homarr-labs/homarr/commit/3ef478c53ab56c50b1ee1d71eebfcc32a4b8828a)) +- **deps:** update dependency typescript-eslint to ^8.7.0 ([#1165](https://github.com/homarr-labs/homarr/issues/1165)) ([6aa5adf](https://github.com/homarr-labs/homarr/commit/6aa5adf5b0602dc3c7de75d9fc88c751d77ceed9)) +- **deps:** update dependency typescript-eslint to ^8.8.0 ([#1207](https://github.com/homarr-labs/homarr/issues/1207)) ([233033f](https://github.com/homarr-labs/homarr/commit/233033f1ce2c1348287fd4f37cf27e53ca317868)) +- **deps:** update dependency typescript-eslint to ^8.8.1 ([#1266](https://github.com/homarr-labs/homarr/issues/1266)) ([4d51e3b](https://github.com/homarr-labs/homarr/commit/4d51e3b3442860fa43ef2766681aaf2bce771d3f)) +- **deps:** update dependency typescript-eslint to ^8.9.0 ([#1292](https://github.com/homarr-labs/homarr/issues/1292)) ([65b1ae2](https://github.com/homarr-labs/homarr/commit/65b1ae26d15d29820f3feb097f6ccf43e89b5e22)) +- **deps:** update dependency typescript-eslint to v8 ([#896](https://github.com/homarr-labs/homarr/issues/896)) ([a9a4602](https://github.com/homarr-labs/homarr/commit/a9a46024e2a1a130bf0f2d9f87d1fa7caa35823b)) +- **deps:** update dependency undici to v6.19.2 ([#691](https://github.com/homarr-labs/homarr/issues/691)) ([541d745](https://github.com/homarr-labs/homarr/commit/541d745cea4d615d88f0af454e39de61cfa104cf)) +- **deps:** update dependency undici to v6.19.3 ([#850](https://github.com/homarr-labs/homarr/issues/850)) ([1098725](https://github.com/homarr-labs/homarr/commit/1098725bd1f010056e40eb00db40e19011ef158a)) +- **deps:** update dependency undici to v6.19.4 ([#854](https://github.com/homarr-labs/homarr/issues/854)) ([0c7264b](https://github.com/homarr-labs/homarr/commit/0c7264bc52c80794a74c9836ae9f9d56df6fc52c)) +- **deps:** update dependency undici to v6.19.5 ([#893](https://github.com/homarr-labs/homarr/issues/893)) ([5256853](https://github.com/homarr-labs/homarr/commit/525685335103289eb06606b04610dcec1ecbf0a1)) +- **deps:** update dependency undici to v6.19.7 ([#950](https://github.com/homarr-labs/homarr/issues/950)) ([3be1100](https://github.com/homarr-labs/homarr/commit/3be110097bcb500ef79d88b28b626bcf15329ed3)) +- **deps:** update dependency undici to v6.19.8 ([#998](https://github.com/homarr-labs/homarr/issues/998)) ([9666440](https://github.com/homarr-labs/homarr/commit/9666440e803ce2275ef3d90ebbc37c00592b8372)) +- **deps:** update dependency undici to v6.20.0 ([#1275](https://github.com/homarr-labs/homarr/issues/1275)) ([c7b2261](https://github.com/homarr-labs/homarr/commit/c7b226142feaa3fb0651cdf8473d714643e8144d)) +- **deps:** update dependency undici to v6.20.1 ([#1291](https://github.com/homarr-labs/homarr/issues/1291)) ([85cf101](https://github.com/homarr-labs/homarr/commit/85cf101043a7dbcd9b3a956eb8b7fffb6d3712e3)) +- **deps:** update dependency undici to v6.21.0 ([#1477](https://github.com/homarr-labs/homarr/issues/1477)) ([07f89af](https://github.com/homarr-labs/homarr/commit/07f89afea8eb47894c1ef94e8f62f8fb8c45ebe8)) +- **deps:** update dependency undici to v7 ([#1560](https://github.com/homarr-labs/homarr/issues/1560)) ([44e2105](https://github.com/homarr-labs/homarr/commit/44e2105a8c9d7cc746f0424bf1f718f426dbea93)) +- **deps:** update dependency undici to v7.1.0 ([#1593](https://github.com/homarr-labs/homarr/issues/1593)) ([fb1f000](https://github.com/homarr-labs/homarr/commit/fb1f0003e60d21713968bc6ff4ec1ce85bc54388)) +- **deps:** update dependency undici to v7.1.1 ([#1674](https://github.com/homarr-labs/homarr/issues/1674)) ([02777d1](https://github.com/homarr-labs/homarr/commit/02777d104c5da555337b3b1494a906488fcc7d64)) +- **deps:** update dependency video.js to ^8.12.0 ([#400](https://github.com/homarr-labs/homarr/issues/400)) ([fc1360d](https://github.com/homarr-labs/homarr/commit/fc1360d6bb9512be8ca1f91e8624d2b9b45d1175)) +- **deps:** update dependency video.js to ^8.16.1 ([#772](https://github.com/homarr-labs/homarr/issues/772)) ([8085e72](https://github.com/homarr-labs/homarr/commit/8085e72cf487a1a757bd07f85f46280f2e677f9f)) +- **deps:** update dependency video.js to ^8.17.1 ([#884](https://github.com/homarr-labs/homarr/issues/884)) ([bce73bc](https://github.com/homarr-labs/homarr/commit/bce73bc38f19b5382f0ab233eac667dd926c27a3)) +- **deps:** update dependency video.js to ^8.17.2 ([#917](https://github.com/homarr-labs/homarr/issues/917)) ([796261c](https://github.com/homarr-labs/homarr/commit/796261c5f5f1fa2b02ce3d9ef338a5196d90ec07)) +- **deps:** update dependency video.js to ^8.17.3 ([#971](https://github.com/homarr-labs/homarr/issues/971)) ([0472594](https://github.com/homarr-labs/homarr/commit/04725942eeca3e4c535c6773044eea1b2dc68a33)) +- **deps:** update dependency video.js to ^8.17.4 ([#1099](https://github.com/homarr-labs/homarr/issues/1099)) ([8c9bb6e](https://github.com/homarr-labs/homarr/commit/8c9bb6e5d5eb61f5f7d60aa38c44c94675ab8202)) +- **deps:** update dependency video.js to ^8.18.1 ([#1259](https://github.com/homarr-labs/homarr/issues/1259)) ([ea84b1c](https://github.com/homarr-labs/homarr/commit/ea84b1c372efc40c4c48bf18347c734291a95997)) +- **deps:** update dependency video.js to ^8.19.1 ([#1370](https://github.com/homarr-labs/homarr/issues/1370)) ([4985bd8](https://github.com/homarr-labs/homarr/commit/4985bd8f9123b629dc9bba3c6bb40eaeab96cf87)) +- **deps:** update dependency video.js to ^8.20.0 ([#1561](https://github.com/homarr-labs/homarr/issues/1561)) ([9f98290](https://github.com/homarr-labs/homarr/commit/9f982906f25b042443ac57e8a46ccf98aca5731d)) +- **deps:** update dependency video.js to ^8.21.0 ([#1617](https://github.com/homarr-labs/homarr/issues/1617)) ([5c11a95](https://github.com/homarr-labs/homarr/commit/5c11a95ddcb8e31fbb1c1156a24a89f04f7c22b1)) +- **deps:** update dependency vite to ^5.2.3 ([#253](https://github.com/homarr-labs/homarr/issues/253)) ([7214df3](https://github.com/homarr-labs/homarr/commit/7214df3e442bb8dfc588b1470ed5cef89636643e)) +- **deps:** update dependency vite to ^5.2.5 ([#259](https://github.com/homarr-labs/homarr/issues/259)) ([8d40f54](https://github.com/homarr-labs/homarr/commit/8d40f54d7d1e350f1cd274de493fbe003eee2641)) +- **deps:** update dependency vite to ^5.2.6 ([#262](https://github.com/homarr-labs/homarr/issues/262)) ([36073db](https://github.com/homarr-labs/homarr/commit/36073dbc5ee404379e8ad165a53c2f703642b07a)) +- **deps:** update dependency winston to v3.12.0 ([#188](https://github.com/homarr-labs/homarr/issues/188)) ([fde6d66](https://github.com/homarr-labs/homarr/commit/fde6d6601d8a19b95896ccd8cd9654c48b1f6c48)) +- **deps:** update dependency winston to v3.13.0 ([#263](https://github.com/homarr-labs/homarr/issues/263)) ([724b348](https://github.com/homarr-labs/homarr/commit/724b3481063c028465af08127fb419b0551bb455)) +- **deps:** update dependency winston to v3.13.1 ([#781](https://github.com/homarr-labs/homarr/issues/781)) ([5382b19](https://github.com/homarr-labs/homarr/commit/5382b1999fd3d6ec3e6e043fbde5bd68a93f0e2d)) +- **deps:** update dependency winston to v3.14.0 ([#935](https://github.com/homarr-labs/homarr/issues/935)) ([ac4b4ed](https://github.com/homarr-labs/homarr/commit/ac4b4ed9cf5fc815dd83dce5e3f9608b4aac07af)) +- **deps:** update dependency winston to v3.14.1 ([#941](https://github.com/homarr-labs/homarr/issues/941)) ([db9c200](https://github.com/homarr-labs/homarr/commit/db9c200f890c70be6163b451e30f8950b676c2a1)) +- **deps:** update dependency winston to v3.14.2 ([#979](https://github.com/homarr-labs/homarr/issues/979)) ([b9bcc1d](https://github.com/homarr-labs/homarr/commit/b9bcc1d23aa20bf665c0fb13ec14f8eed0f6516e)) +- **deps:** update dependency winston to v3.15.0 ([#1245](https://github.com/homarr-labs/homarr/issues/1245)) ([20e6399](https://github.com/homarr-labs/homarr/commit/20e6399d5e493158b7c0fb9370e9287075d315da)) +- **deps:** update dependency winston to v3.16.0 ([#1398](https://github.com/homarr-labs/homarr/issues/1398)) ([02ddb1c](https://github.com/homarr-labs/homarr/commit/02ddb1c9c6d15e4965c93935ff7887f90bff05a4)) +- **deps:** update dependency winston to v3.17.0 ([#1457](https://github.com/homarr-labs/homarr/issues/1457)) ([fc4cddc](https://github.com/homarr-labs/homarr/commit/fc4cddcbac74122e652d5409c875694ae11dc78a)) +- **deps:** update dependency ws to ^8.17.0 ([#392](https://github.com/homarr-labs/homarr/issues/392)) ([55822ee](https://github.com/homarr-labs/homarr/commit/55822ee7a51b4f907ed5be3b8202c60d07dce506)) +- **deps:** update dependency ws to ^8.17.1 ([#676](https://github.com/homarr-labs/homarr/issues/676)) ([0d14bad](https://github.com/homarr-labs/homarr/commit/0d14bad10bc45b50e0d3551c071f1ec62c9b7403)) +- **deps:** update dependency ws to ^8.18.0 ([#740](https://github.com/homarr-labs/homarr/issues/740)) ([1dd509a](https://github.com/homarr-labs/homarr/commit/1dd509a40fb9090ba88a0d8e1a67baf58b244cd9)) +- **deps:** update dependency zod to ^3.22.5 ([#361](https://github.com/homarr-labs/homarr/issues/361)) ([cb2b934](https://github.com/homarr-labs/homarr/commit/cb2b934c83c3464ff71bd9dff3be9742e975ef8c)) +- **deps:** update dependency zod to ^3.23.4 ([#373](https://github.com/homarr-labs/homarr/issues/373)) ([392a185](https://github.com/homarr-labs/homarr/commit/392a18564045ab2ea68c694192f771234e40b90c)) +- **deps:** update dependency zod to ^3.23.5 ([#399](https://github.com/homarr-labs/homarr/issues/399)) ([56388eb](https://github.com/homarr-labs/homarr/commit/56388eb8ef452e1dae0ca9c0c68ed6a2ff6fbbd1)) +- **deps:** update dependency zod to ^3.23.6 ([#424](https://github.com/homarr-labs/homarr/issues/424)) ([11c20ce](https://github.com/homarr-labs/homarr/commit/11c20ce711e564bc76d835ed839dbe7dfe332301)) +- **deps:** update dependency zod to ^3.23.7 ([#456](https://github.com/homarr-labs/homarr/issues/456)) ([cab3405](https://github.com/homarr-labs/homarr/commit/cab34052f905d22f5ee593a960895cc9c137292c)) +- **deps:** update dependency zod to ^3.23.8 ([#460](https://github.com/homarr-labs/homarr/issues/460)) ([687556a](https://github.com/homarr-labs/homarr/commit/687556ad96136a72dc720a38f4628d0ba5a1cbcb)) +- **deps:** update dependency zod to ^3.24.0 ([#1635](https://github.com/homarr-labs/homarr/issues/1635)) ([8a25467](https://github.com/homarr-labs/homarr/commit/8a2546704b56d35786681fa6924770b04f833dff)) +- **deps:** update dependency zod to ^3.24.1 ([#1642](https://github.com/homarr-labs/homarr/issues/1642)) ([5e466e8](https://github.com/homarr-labs/homarr/commit/5e466e80c54accbc303e44d2093518465ad5863e)) +- **deps:** update gridstack.js fork to v1.11.2 ([#1605](https://github.com/homarr-labs/homarr/issues/1605)) ([bf45860](https://github.com/homarr-labs/homarr/commit/bf45860966987be44c5eecf9add34173f5968194)) +- **deps:** update mantine monorepo to ^7.10.0 ([#538](https://github.com/homarr-labs/homarr/issues/538)) ([ad3ef4c](https://github.com/homarr-labs/homarr/commit/ad3ef4c313fceb40baaedb9bc3b0e17009eed5cb)) +- **deps:** update mantine monorepo to ^7.10.1 ([#581](https://github.com/homarr-labs/homarr/issues/581)) ([b12d109](https://github.com/homarr-labs/homarr/commit/b12d109f6dfa4f90fc9fe2fae216894d601d0594)) +- **deps:** update mantine monorepo to ^7.10.2 ([#662](https://github.com/homarr-labs/homarr/issues/662)) ([4e9593b](https://github.com/homarr-labs/homarr/commit/4e9593b859c2d16e89940de9abed418ae184f36f)) +- **deps:** update mantine monorepo to ^7.11.0 ([#719](https://github.com/homarr-labs/homarr/issues/719)) ([52e936f](https://github.com/homarr-labs/homarr/commit/52e936f979b9cb6968c6cfe3a66c2c652245c6d8)) +- **deps:** update mantine monorepo to ^7.11.1 ([#735](https://github.com/homarr-labs/homarr/issues/735)) ([60c0cfa](https://github.com/homarr-labs/homarr/commit/60c0cfa9119ae946ca232df00dcebf73c3259a00)) +- **deps:** update mantine monorepo to ^7.11.2 ([#808](https://github.com/homarr-labs/homarr/issues/808)) ([fe5af92](https://github.com/homarr-labs/homarr/commit/fe5af9231e0c8e604558056e28ddc0ad5d440ad8)) +- **deps:** update mantine monorepo to ^7.12.0 ([#920](https://github.com/homarr-labs/homarr/issues/920)) ([137ebf6](https://github.com/homarr-labs/homarr/commit/137ebf6d22bc1a420bab52444e2cd3df5fe31852)) +- **deps:** update mantine monorepo to ^7.12.1 ([#967](https://github.com/homarr-labs/homarr/issues/967)) ([5b651a7](https://github.com/homarr-labs/homarr/commit/5b651a782aef6ce6ecef58be0491642d4cf0c94f)) +- **deps:** update mantine monorepo to ^7.12.2 ([#1048](https://github.com/homarr-labs/homarr/issues/1048)) ([51be024](https://github.com/homarr-labs/homarr/commit/51be02477b63725f5052d478a6db59c48be1fdf0)) +- **deps:** update mantine monorepo to ^7.13.0 ([#1178](https://github.com/homarr-labs/homarr/issues/1178)) ([78230b1](https://github.com/homarr-labs/homarr/commit/78230b1fe9d4b5b071d80782f6ad177993903dd1)) +- **deps:** update mantine monorepo to ^7.13.1 ([#1205](https://github.com/homarr-labs/homarr/issues/1205)) ([6ce466d](https://github.com/homarr-labs/homarr/commit/6ce466d38ec8d3968c4f90583cdfd83d97a42154)) +- **deps:** update mantine monorepo to ^7.13.2 ([#1227](https://github.com/homarr-labs/homarr/issues/1227)) ([d383664](https://github.com/homarr-labs/homarr/commit/d3836648c288ca595ac7b43cc1a2089cd52b7cdd)) +- **deps:** update mantine monorepo to ^7.13.3 ([#1316](https://github.com/homarr-labs/homarr/issues/1316)) ([84bb1de](https://github.com/homarr-labs/homarr/commit/84bb1deae51982d5c7465b180198034c9f9b861a)) +- **deps:** update mantine monorepo to ^7.13.4 ([#1364](https://github.com/homarr-labs/homarr/issues/1364)) ([f55b813](https://github.com/homarr-labs/homarr/commit/f55b813aa1a1df8c1b5c0f29a9a302dab025a1aa)) +- **deps:** update mantine monorepo to ^7.13.5 ([#1449](https://github.com/homarr-labs/homarr/issues/1449)) ([2306ecd](https://github.com/homarr-labs/homarr/commit/2306ecda9f562e94ef21eae495eab4e7fc5a3fc2)) +- **deps:** update mantine monorepo to ^7.14.0 ([#1470](https://github.com/homarr-labs/homarr/issues/1470)) ([11ce6fa](https://github.com/homarr-labs/homarr/commit/11ce6faa37bcd6c54f348ed8c5d003ff4c061b40)) +- **deps:** update mantine monorepo to ^7.14.1 ([#1494](https://github.com/homarr-labs/homarr/issues/1494)) ([775d0a5](https://github.com/homarr-labs/homarr/commit/775d0a53decfbebdbab06936557adade378fd0c0)) +- **deps:** update mantine monorepo to ^7.14.2 ([#1537](https://github.com/homarr-labs/homarr/issues/1537)) ([2e28147](https://github.com/homarr-labs/homarr/commit/2e2814707e0a5c2c38ccefcf0387cc0dab195fb9)) +- **deps:** update mantine monorepo to ^7.14.3 ([#1563](https://github.com/homarr-labs/homarr/issues/1563)) ([09dae45](https://github.com/homarr-labs/homarr/commit/09dae45ae8c33cf9212b72b7b048bbb3866880eb)) +- **deps:** update mantine monorepo to ^7.15.0 ([#1636](https://github.com/homarr-labs/homarr/issues/1636)) ([99bb680](https://github.com/homarr-labs/homarr/commit/99bb68012faffa78e9eb279dcf57007250a7a343)) +- **deps:** update mantine monorepo to ^7.15.1 ([#1649](https://github.com/homarr-labs/homarr/issues/1649)) ([732f4d4](https://github.com/homarr-labs/homarr/commit/732f4d45bdc1a063640a4636de4b67f25927fe43)) +- **deps:** update mantine monorepo to ^7.5.2 ([#71](https://github.com/homarr-labs/homarr/issues/71)) ([81e61b4](https://github.com/homarr-labs/homarr/commit/81e61b4d6bea3f32822917c4cf03f4d5876397ca)) +- **deps:** update mantine monorepo to ^7.5.3 ([#97](https://github.com/homarr-labs/homarr/issues/97)) ([35edfc7](https://github.com/homarr-labs/homarr/commit/35edfc74c4000d59b72f58fb42a00093151d4f38)) +- **deps:** update mantine monorepo to ^7.6.1 ([#157](https://github.com/homarr-labs/homarr/issues/157)) ([8c0534f](https://github.com/homarr-labs/homarr/commit/8c0534f54c416af94743e1cf20d92a33e06c804c)) +- **deps:** update mantine monorepo to ^7.6.2 ([#221](https://github.com/homarr-labs/homarr/issues/221)) ([fc29db0](https://github.com/homarr-labs/homarr/commit/fc29db0151de2638d7550dad0a8328b87164a732)) +- **deps:** update mantine monorepo to ^7.7.1 ([#272](https://github.com/homarr-labs/homarr/issues/272)) ([c9e1580](https://github.com/homarr-labs/homarr/commit/c9e15805a9b4c845e5cc379ae8267c7c659c60a6)) +- **deps:** update mantine monorepo to ^7.8.0 ([#343](https://github.com/homarr-labs/homarr/issues/343)) ([3e3299a](https://github.com/homarr-labs/homarr/commit/3e3299a358b44f86c850b3b96edf14e503d92151)) +- **deps:** update mantine monorepo to ^7.8.1 ([#377](https://github.com/homarr-labs/homarr/issues/377)) ([92b417a](https://github.com/homarr-labs/homarr/commit/92b417a37e070352d4830ab6d907421a89440308)) +- **deps:** update mantine monorepo to ^7.9.0 ([#423](https://github.com/homarr-labs/homarr/issues/423)) ([90b9d56](https://github.com/homarr-labs/homarr/commit/90b9d5672959e68c551b2bd9190b8ad97fbec1d0)) +- **deps:** update mantine monorepo to ^7.9.1 ([#457](https://github.com/homarr-labs/homarr/issues/457)) ([48d7aaa](https://github.com/homarr-labs/homarr/commit/48d7aaaf1d0e59bd2573bbe01a3421d14cd64be1)) +- **deps:** update mantine monorepo to ^7.9.2 ([#510](https://github.com/homarr-labs/homarr/issues/510)) ([abffc86](https://github.com/homarr-labs/homarr/commit/abffc866c084c387a553395519c172becaec0618)) +- **deps:** update nest monorepo to ^10.3.5 ([#245](https://github.com/homarr-labs/homarr/issues/245)) ([0ffb3f1](https://github.com/homarr-labs/homarr/commit/0ffb3f18b9bd8c90f826bcb29c257d656dbb91f5)) +- **deps:** update nextjs monorepo to ^14.1.0 ([#38](https://github.com/homarr-labs/homarr/issues/38)) ([dadfc0c](https://github.com/homarr-labs/homarr/commit/dadfc0c5d73395d2c49afbc7c67d0755e102b719)) +- **deps:** update nextjs monorepo to ^14.1.1 ([#147](https://github.com/homarr-labs/homarr/issues/147)) ([b407f2a](https://github.com/homarr-labs/homarr/commit/b407f2a9ac02b3ea6bfa22388e8e1150d2c82d48)) +- **deps:** update nextjs monorepo to ^14.1.2 ([#193](https://github.com/homarr-labs/homarr/issues/193)) ([8df514d](https://github.com/homarr-labs/homarr/commit/8df514dec883a90b3fcee8ef69efed87608618df)) +- **deps:** update nextjs monorepo to ^14.1.3 ([#208](https://github.com/homarr-labs/homarr/issues/208)) ([56d5e70](https://github.com/homarr-labs/homarr/commit/56d5e709bccdff4d37c6964dd1420721fc6f0356)) +- **deps:** update nextjs monorepo to ^14.1.4 ([#252](https://github.com/homarr-labs/homarr/issues/252)) ([28f630f](https://github.com/homarr-labs/homarr/commit/28f630f58b60260cd48990f9edf04173db5bd01d)) +- **deps:** update nextjs monorepo to ^14.2.10 ([#1109](https://github.com/homarr-labs/homarr/issues/1109)) ([fb55f12](https://github.com/homarr-labs/homarr/commit/fb55f1272d890307452cf7c7f3a54eb454da736f)) +- **deps:** update nextjs monorepo to ^14.2.11 ([#1117](https://github.com/homarr-labs/homarr/issues/1117)) ([7a56006](https://github.com/homarr-labs/homarr/commit/7a56006533d0fce5b288e1efe658e026abd062e1)) +- **deps:** update nextjs monorepo to ^14.2.12 ([#1146](https://github.com/homarr-labs/homarr/issues/1146)) ([8f5d7f8](https://github.com/homarr-labs/homarr/commit/8f5d7f83879e68b73f20303fbd9d3f4f70f69e3d)) +- **deps:** update nextjs monorepo to ^14.2.13 ([#1154](https://github.com/homarr-labs/homarr/issues/1154)) ([2258dc3](https://github.com/homarr-labs/homarr/commit/2258dc3ec66fd6d2c0ca9d7d2a689174a806586d)) +- **deps:** update nextjs monorepo to ^14.2.14 ([#1215](https://github.com/homarr-labs/homarr/issues/1215)) ([6f5c993](https://github.com/homarr-labs/homarr/commit/6f5c9935108511783b16c1a8206088e4845f9529)) +- **deps:** update nextjs monorepo to ^14.2.15 ([#1270](https://github.com/homarr-labs/homarr/issues/1270)) ([2bbe594](https://github.com/homarr-labs/homarr/commit/2bbe594cd28decee8934fc7338cdda9b77a2040c)) +- **deps:** update nextjs monorepo to ^14.2.16 ([#1355](https://github.com/homarr-labs/homarr/issues/1355)) ([aea65ea](https://github.com/homarr-labs/homarr/commit/aea65eadcd180e892d823ddccc2657b3beeb8acb)) +- **deps:** update nextjs monorepo to ^14.2.17 ([#1435](https://github.com/homarr-labs/homarr/issues/1435)) ([cd18458](https://github.com/homarr-labs/homarr/commit/cd18458d0c8a91c9068f8fbbfa49b5c0191e8f63)) +- **deps:** update nextjs monorepo to ^14.2.18 ([#1479](https://github.com/homarr-labs/homarr/issues/1479)) ([ccee3dd](https://github.com/homarr-labs/homarr/commit/ccee3dd21732be7106bf04af802c528351d132be)) +- **deps:** update nextjs monorepo to ^14.2.19 ([#1594](https://github.com/homarr-labs/homarr/issues/1594)) ([b0d6230](https://github.com/homarr-labs/homarr/commit/b0d623047ed0aae68741a50345610d2bc65cf86b)) +- **deps:** update nextjs monorepo to ^14.2.2 ([#345](https://github.com/homarr-labs/homarr/issues/345)) ([b465b95](https://github.com/homarr-labs/homarr/commit/b465b95ca26c1b0bc9035c7d2bd72d8a657870b3)) +- **deps:** update nextjs monorepo to ^14.2.20 ([#1610](https://github.com/homarr-labs/homarr/issues/1610)) ([ef65270](https://github.com/homarr-labs/homarr/commit/ef652707788ab68eeadd43dff908387340784f04)) +- **deps:** update nextjs monorepo to ^14.2.3 ([#381](https://github.com/homarr-labs/homarr/issues/381)) ([75e4e81](https://github.com/homarr-labs/homarr/commit/75e4e8176e36a995ebcd25387cae6435a5723b49)) +- **deps:** update nextjs monorepo to ^14.2.4 ([#658](https://github.com/homarr-labs/homarr/issues/658)) ([476fa59](https://github.com/homarr-labs/homarr/commit/476fa59079a3026fb1ce3d3c1b87a4b99425dccf)) +- **deps:** update nextjs monorepo to ^14.2.5 ([#779](https://github.com/homarr-labs/homarr/issues/779)) ([99175fe](https://github.com/homarr-labs/homarr/commit/99175feda492ff0b0d2d9d07c75d2bd45f69fbb5)) +- **deps:** update nextjs monorepo to ^14.2.6 ([#1009](https://github.com/homarr-labs/homarr/issues/1009)) ([1311e72](https://github.com/homarr-labs/homarr/commit/1311e72ca0a9c16db207d088809debd020da1318)) +- **deps:** update nextjs monorepo to ^14.2.7 ([#1041](https://github.com/homarr-labs/homarr/issues/1041)) ([3771a61](https://github.com/homarr-labs/homarr/commit/3771a61c49ca92f8567bb0905a696236a1e473a0)) +- **deps:** update nextjs monorepo to ^14.2.8 ([#1067](https://github.com/homarr-labs/homarr/issues/1067)) ([ca83872](https://github.com/homarr-labs/homarr/commit/ca83872151a867a42b3504a3eafff585a386b02d)) +- **deps:** update nextjs monorepo to ^14.2.9 ([#1091](https://github.com/homarr-labs/homarr/issues/1091)) ([3f076fa](https://github.com/homarr-labs/homarr/commit/3f076fafcd505b0b18781fc485dec8b144c8051f)) +- **deps:** update react monorepo to v19 (major) ([#1615](https://github.com/homarr-labs/homarr/issues/1615)) ([6f874e8](https://github.com/homarr-labs/homarr/commit/6f874e87abbc20a6e95cfbeb7bb7188d13599672)) +- **deps:** update tanstack-query monorepo ([#126](https://github.com/homarr-labs/homarr/issues/126)) ([71521c0](https://github.com/homarr-labs/homarr/commit/71521c076809fa3041ebf0ce4c9b9365adcf167b)) +- **deps:** update tanstack-query monorepo ([#141](https://github.com/homarr-labs/homarr/issues/141)) ([5d68300](https://github.com/homarr-labs/homarr/commit/5d68300600f0bd890aa4413ada41559f10afcf51)) +- **deps:** update tanstack-query monorepo ([#216](https://github.com/homarr-labs/homarr/issues/216)) ([efbc4cf](https://github.com/homarr-labs/homarr/commit/efbc4cf8fe62c4dd39fa2191238e1d62e5e98f9c)) +- **deps:** update tanstack-query monorepo ([#280](https://github.com/homarr-labs/homarr/issues/280)) ([e74926d](https://github.com/homarr-labs/homarr/commit/e74926d3825a7a31008faf6ec4ef00b6ab5ce669)) +- **deps:** update tanstack-query monorepo to ^5.18.1 ([#39](https://github.com/homarr-labs/homarr/issues/39)) ([717e919](https://github.com/homarr-labs/homarr/commit/717e9194500ad875e2c57bc088a3fa7ec08faf68)) +- **deps:** update tanstack-query monorepo to ^5.20.1 ([#75](https://github.com/homarr-labs/homarr/issues/75)) ([00f4a28](https://github.com/homarr-labs/homarr/commit/00f4a288a413383b4c412a1165eeba8a4c973a67)) +- **deps:** update tanstack-query monorepo to ^5.20.5 ([#86](https://github.com/homarr-labs/homarr/issues/86)) ([b77e652](https://github.com/homarr-labs/homarr/commit/b77e6528225a54839c5b09ad2464c6ab266259c6)) +- **deps:** update tanstack-query monorepo to ^5.21.4 ([#128](https://github.com/homarr-labs/homarr/issues/128)) ([a9a3d98](https://github.com/homarr-labs/homarr/commit/a9a3d98248a9ba518d941f8e437784a98984895d)) +- **deps:** update tanstack-query monorepo to ^5.21.7 ([#133](https://github.com/homarr-labs/homarr/issues/133)) ([e150577](https://github.com/homarr-labs/homarr/commit/e150577c7eea55b3f837951eeaa8fef41468c6af)) +- **deps:** update tanstack-query monorepo to ^5.24.1 ([#156](https://github.com/homarr-labs/homarr/issues/156)) ([3022e7f](https://github.com/homarr-labs/homarr/commit/3022e7f0af1d319e87398e09df27bd5824f0f8b4)) +- **deps:** update tanstack-query monorepo to ^5.24.6 ([#168](https://github.com/homarr-labs/homarr/issues/168)) ([7f2ab7f](https://github.com/homarr-labs/homarr/commit/7f2ab7f192b55f970c6902cde71f85c06a5f67df)) +- **deps:** update tanstack-query monorepo to ^5.24.8 ([#187](https://github.com/homarr-labs/homarr/issues/187)) ([f98046d](https://github.com/homarr-labs/homarr/commit/f98046d9e207bd068fa1cea19c4be0cba61c14c0)) +- **deps:** update tanstack-query monorepo to ^5.25.0 ([#196](https://github.com/homarr-labs/homarr/issues/196)) ([8c9adb3](https://github.com/homarr-labs/homarr/commit/8c9adb31f34991117c18ded417bf13312a04244a)) +- **deps:** update tanstack-query monorepo to ^5.28.0 ([#225](https://github.com/homarr-labs/homarr/issues/225)) ([9a203e8](https://github.com/homarr-labs/homarr/commit/9a203e8fac4379a703ad0d13380bb1a827791cd2)) +- **deps:** update tanstack-query monorepo to ^5.28.14 ([#299](https://github.com/homarr-labs/homarr/issues/299)) ([a4f316f](https://github.com/homarr-labs/homarr/commit/a4f316f10fc11579527722263249523591762e8b)) +- **deps:** update tanstack-query monorepo to ^5.28.4 ([#235](https://github.com/homarr-labs/homarr/issues/235)) ([30278f3](https://github.com/homarr-labs/homarr/commit/30278f37d248f0222dcd86e67a3310961c804a25)) +- **deps:** update tanstack-query monorepo to ^5.28.6 ([#256](https://github.com/homarr-labs/homarr/issues/256)) ([e4e3463](https://github.com/homarr-labs/homarr/commit/e4e3463d0464c37c32da83000ae971006157d1b2)) +- **deps:** update tanstack-query monorepo to ^5.28.8 ([#265](https://github.com/homarr-labs/homarr/issues/265)) ([4783aae](https://github.com/homarr-labs/homarr/commit/4783aaea20c44d823cb01857ffd050f7539948af)) +- **deps:** update tanstack-query monorepo to ^5.29.0 ([#313](https://github.com/homarr-labs/homarr/issues/313)) ([fffefbb](https://github.com/homarr-labs/homarr/commit/fffefbb4c8767ae5803429363ecf323d2384a6a0)) +- **deps:** update tanstack-query monorepo to ^5.29.2 ([#340](https://github.com/homarr-labs/homarr/issues/340)) ([859fdf4](https://github.com/homarr-labs/homarr/commit/859fdf4c440af5176401bdee236b5e19973182ef)) +- **deps:** update tanstack-query monorepo to ^5.32.0 ([#374](https://github.com/homarr-labs/homarr/issues/374)) ([0cdf0b7](https://github.com/homarr-labs/homarr/commit/0cdf0b73bfc410c7457fe7b379a380fdf83a938b)) +- **deps:** update tanstack-query monorepo to ^5.32.1 ([#402](https://github.com/homarr-labs/homarr/issues/402)) ([c988f3d](https://github.com/homarr-labs/homarr/commit/c988f3d7f827dd3121582a69fe1219dedb1ae246)) +- **deps:** update tanstack-query monorepo to ^5.34.1 ([#427](https://github.com/homarr-labs/homarr/issues/427)) ([fb43fc6](https://github.com/homarr-labs/homarr/commit/fb43fc604657e0ee3361db5fb3df8bdf68a22a51)) +- **deps:** update tanstack-query monorepo to ^5.34.2 ([#439](https://github.com/homarr-labs/homarr/issues/439)) ([08d1b6c](https://github.com/homarr-labs/homarr/commit/08d1b6c638c008936d67e1fe720313deaae147cd)) +- **deps:** update tanstack-query monorepo to ^5.35.1 ([#446](https://github.com/homarr-labs/homarr/issues/446)) ([96158bc](https://github.com/homarr-labs/homarr/commit/96158bcb5e0818f698f04f107dab24b6285f32df)) +- **deps:** update tanstack-query monorepo to ^5.35.5 ([#465](https://github.com/homarr-labs/homarr/issues/465)) ([8e6d143](https://github.com/homarr-labs/homarr/commit/8e6d143edc6613766ea86d3c84ef392aea867a0a)) +- **deps:** update tanstack-query monorepo to ^5.36.0 ([#481](https://github.com/homarr-labs/homarr/issues/481)) ([1570faa](https://github.com/homarr-labs/homarr/commit/1570faa20af2c1b4173ade77565691176219c601)) +- **deps:** update tanstack-query monorepo to ^5.36.2 ([#496](https://github.com/homarr-labs/homarr/issues/496)) ([023feaf](https://github.com/homarr-labs/homarr/commit/023feafafe5f78b73870a48a06d037b563999d5d)) +- **deps:** update tanstack-query monorepo to ^5.37.1 ([#513](https://github.com/homarr-labs/homarr/issues/513)) ([b312032](https://github.com/homarr-labs/homarr/commit/b312032f02db6fac0e95456ef23cf84d4ab485b0)) +- **deps:** update tanstack-query monorepo to ^5.40.0 ([#552](https://github.com/homarr-labs/homarr/issues/552)) ([8f50def](https://github.com/homarr-labs/homarr/commit/8f50def4c931545fbe4b24a2c501c725e088ce9f)) +- **deps:** update tanstack-query monorepo to ^5.40.1 ([#617](https://github.com/homarr-labs/homarr/issues/617)) ([946ea87](https://github.com/homarr-labs/homarr/commit/946ea8753fd45582ba15b6fc69a434039d341b1d)) +- **deps:** update tanstack-query monorepo to ^5.44.0 ([#657](https://github.com/homarr-labs/homarr/issues/657)) ([8b3bc03](https://github.com/homarr-labs/homarr/commit/8b3bc03b9be9d70d11d982869250d575b24ca4b8)) +- **deps:** update tanstack-query monorepo to ^5.45.0 ([#660](https://github.com/homarr-labs/homarr/issues/660)) ([5547e52](https://github.com/homarr-labs/homarr/commit/5547e520016b92c0981899099cce1bf82f7d1a00)) +- **deps:** update tanstack-query monorepo to ^5.45.1 ([#677](https://github.com/homarr-labs/homarr/issues/677)) ([33e8cc7](https://github.com/homarr-labs/homarr/commit/33e8cc7412e2cc4541ae5e58ae45b20ffa74972a)) +- **deps:** update tanstack-query monorepo to ^5.47.0 ([#713](https://github.com/homarr-labs/homarr/issues/713)) ([75748df](https://github.com/homarr-labs/homarr/commit/75748dfbc35057b7f44e836fd2864c76c2705237)) +- **deps:** update tanstack-query monorepo to ^5.48.0 ([#714](https://github.com/homarr-labs/homarr/issues/714)) ([a76e941](https://github.com/homarr-labs/homarr/commit/a76e941378a2d8669a9b4484b8301f5557dda1a3)) +- **deps:** update tanstack-query monorepo to ^5.49.0 ([#728](https://github.com/homarr-labs/homarr/issues/728)) ([531cd0d](https://github.com/homarr-labs/homarr/commit/531cd0de2520429d3b3270e05fc5d8e9c5732163)) +- **deps:** update tanstack-query monorepo to ^5.49.2 ([#730](https://github.com/homarr-labs/homarr/issues/730)) ([8ee0d67](https://github.com/homarr-labs/homarr/commit/8ee0d67a36b30ae1e5f679a0c24014c3c79709ca)) +- **deps:** update tanstack-query monorepo to ^5.50.1 ([#747](https://github.com/homarr-labs/homarr/issues/747)) ([a67050e](https://github.com/homarr-labs/homarr/commit/a67050e77b14a0ad1e6b960dad24f4a35779f858)) +- **deps:** update tanstack-query monorepo to ^5.51.1 ([#782](https://github.com/homarr-labs/homarr/issues/782)) ([be4748b](https://github.com/homarr-labs/homarr/commit/be4748b8fa5cf2b7f17acd03753115b9562f3285)) +- **deps:** update tanstack-query monorepo to ^5.51.11 ([#836](https://github.com/homarr-labs/homarr/issues/836)) ([14d19fc](https://github.com/homarr-labs/homarr/commit/14d19fcd8bf9577cd483b6bb89e1cc3bbaf484b1)) +- **deps:** update tanstack-query monorepo to ^5.51.14 ([#866](https://github.com/homarr-labs/homarr/issues/866)) ([04a836e](https://github.com/homarr-labs/homarr/commit/04a836e824e607f48b876d6882aecb5de3b666ae)) +- **deps:** update tanstack-query monorepo to ^5.51.15 ([#868](https://github.com/homarr-labs/homarr/issues/868)) ([63b3c1b](https://github.com/homarr-labs/homarr/commit/63b3c1bff19d9265ef2c80dfbbc9058354a9acfb)) +- **deps:** update tanstack-query monorepo to ^5.51.16 ([#892](https://github.com/homarr-labs/homarr/issues/892)) ([3a5f818](https://github.com/homarr-labs/homarr/commit/3a5f818e7cbef6365f9ae89996657cdb418d7917)) +- **deps:** update tanstack-query monorepo to ^5.51.17 ([#899](https://github.com/homarr-labs/homarr/issues/899)) ([5c73b54](https://github.com/homarr-labs/homarr/commit/5c73b544285d1fca753168a796e1143da5ffc37d)) +- **deps:** update tanstack-query monorepo to ^5.51.18 ([#900](https://github.com/homarr-labs/homarr/issues/900)) ([26615d8](https://github.com/homarr-labs/homarr/commit/26615d80e795c050e2ac94ba133cbf23c74b2d27)) +- **deps:** update tanstack-query monorepo to ^5.51.21 ([#905](https://github.com/homarr-labs/homarr/issues/905)) ([2a459dd](https://github.com/homarr-labs/homarr/commit/2a459dda205448ebfa3d8451a5229a82fa850fbb)) +- **deps:** update tanstack-query monorepo to ^5.51.23 ([#936](https://github.com/homarr-labs/homarr/issues/936)) ([f9e2df0](https://github.com/homarr-labs/homarr/commit/f9e2df085b2ba737c2ef6375474865b34a3f43cf)) +- **deps:** update tanstack-query monorepo to ^5.51.24 ([#997](https://github.com/homarr-labs/homarr/issues/997)) ([2f77be8](https://github.com/homarr-labs/homarr/commit/2f77be8045ea67d1f5db20bd140c9e19af903571)) +- **deps:** update tanstack-query monorepo to ^5.51.3 ([#821](https://github.com/homarr-labs/homarr/issues/821)) ([05bbc19](https://github.com/homarr-labs/homarr/commit/05bbc19a15b8f8d7cdef4b9fee3174b28918bc9d)) +- **deps:** update tanstack-query monorepo to ^5.51.4 ([#824](https://github.com/homarr-labs/homarr/issues/824)) ([86c729a](https://github.com/homarr-labs/homarr/commit/86c729a83f01cb4a3ce5413b6b4117505b6b61f4)) +- **deps:** update tanstack-query monorepo to ^5.51.5 ([#829](https://github.com/homarr-labs/homarr/issues/829)) ([a4edda6](https://github.com/homarr-labs/homarr/commit/a4edda6932ed5008fe4609b55636232a7ca500ce)) +- **deps:** update tanstack-query monorepo to ^5.51.8 ([#830](https://github.com/homarr-labs/homarr/issues/830)) ([ee2703c](https://github.com/homarr-labs/homarr/commit/ee2703ca4be312e5e0f2b9964fa3fb1d0bd074c1)) +- **deps:** update tanstack-query monorepo to ^5.51.9 ([#831](https://github.com/homarr-labs/homarr/issues/831)) ([c8f3eb6](https://github.com/homarr-labs/homarr/commit/c8f3eb69e54a732274fd85841b1d1181fbc9a279)) +- **deps:** update tanstack-query monorepo to ^5.52.0 ([#1002](https://github.com/homarr-labs/homarr/issues/1002)) ([432af79](https://github.com/homarr-labs/homarr/commit/432af7905510283779aacf7331a82a3d53f0c899)) +- **deps:** update tanstack-query monorepo to ^5.52.1 ([#1013](https://github.com/homarr-labs/homarr/issues/1013)) ([8779b7d](https://github.com/homarr-labs/homarr/commit/8779b7d6073f41b52bf2fadda25ccab8d1ae1622)) +- **deps:** update tanstack-query monorepo to ^5.52.2 ([#1037](https://github.com/homarr-labs/homarr/issues/1037)) ([48d01e3](https://github.com/homarr-labs/homarr/commit/48d01e3c6ceb9fd4e60f0bd720374da53206d94e)) +- **deps:** update tanstack-query monorepo to ^5.52.3 ([#1043](https://github.com/homarr-labs/homarr/issues/1043)) ([afb6adf](https://github.com/homarr-labs/homarr/commit/afb6adf1e68f0f1b6b819a32a95d0a28855e88c4)) +- **deps:** update tanstack-query monorepo to ^5.53.1 ([#1045](https://github.com/homarr-labs/homarr/issues/1045)) ([775c359](https://github.com/homarr-labs/homarr/commit/775c3597dcd9008606446d066ddb46dc758b5689)) +- **deps:** update tanstack-query monorepo to ^5.53.2 ([#1055](https://github.com/homarr-labs/homarr/issues/1055)) ([d69fed6](https://github.com/homarr-labs/homarr/commit/d69fed6514bef0ee5cc235cca86888d040fae562)) +- **deps:** update tanstack-query monorepo to ^5.53.3 ([#1056](https://github.com/homarr-labs/homarr/issues/1056)) ([8fe162e](https://github.com/homarr-labs/homarr/commit/8fe162e16c4c06ca453437d0ee4e6491ecb2ed84)) +- **deps:** update tanstack-query monorepo to ^5.54.1 ([#1063](https://github.com/homarr-labs/homarr/issues/1063)) ([9e1faa0](https://github.com/homarr-labs/homarr/commit/9e1faa03b120a225114f7e8bf4cc683be243c4f6)) +- **deps:** update tanstack-query monorepo to ^5.55.0 ([#1070](https://github.com/homarr-labs/homarr/issues/1070)) ([00d5020](https://github.com/homarr-labs/homarr/commit/00d5020824f6661575d7201e2524151defc35585)) +- **deps:** update tanstack-query monorepo to ^5.55.2 ([#1084](https://github.com/homarr-labs/homarr/issues/1084)) ([930bc2d](https://github.com/homarr-labs/homarr/commit/930bc2d7d205e7883898fb15deefc3f5abfedced)) +- **deps:** update tanstack-query monorepo to ^5.55.4 ([#1086](https://github.com/homarr-labs/homarr/issues/1086)) ([36a7a18](https://github.com/homarr-labs/homarr/commit/36a7a18c35258f9e592755ef10583b603a5bb39e)) +- **deps:** update tanstack-query monorepo to ^5.56.0 ([#1112](https://github.com/homarr-labs/homarr/issues/1112)) ([703ecec](https://github.com/homarr-labs/homarr/commit/703ecece634a284070b15edbd4580ffbd3a58502)) +- **deps:** update tanstack-query monorepo to ^5.56.1 ([#1114](https://github.com/homarr-labs/homarr/issues/1114)) ([2d4681d](https://github.com/homarr-labs/homarr/commit/2d4681d07989bf8388152893a7e194ead1e4c59d)) +- **deps:** update tanstack-query monorepo to ^5.56.2 ([#1116](https://github.com/homarr-labs/homarr/issues/1116)) ([cae9a80](https://github.com/homarr-labs/homarr/commit/cae9a800c47e23b5ef674c19ba5a1eea127018a3)) +- **deps:** update tanstack-query monorepo to ^5.59.0 ([#1214](https://github.com/homarr-labs/homarr/issues/1214)) ([c3d54b4](https://github.com/homarr-labs/homarr/commit/c3d54b49a0ba0ae2c2a4cc3d1651cb01df2efdf7)) +- **deps:** update tanstack-query monorepo to ^5.59.14 ([#1282](https://github.com/homarr-labs/homarr/issues/1282)) ([df8f6d2](https://github.com/homarr-labs/homarr/commit/df8f6d25d4accd486274df15eb620b28fb545826)) +- **deps:** update tanstack-query monorepo to ^5.59.15 ([#1298](https://github.com/homarr-labs/homarr/issues/1298)) ([bb0026a](https://github.com/homarr-labs/homarr/commit/bb0026a9fd6093cf54dc5fdcf027ea1033ac8454)) +- **deps:** update tanstack-query monorepo to ^5.59.16 ([#1361](https://github.com/homarr-labs/homarr/issues/1361)) ([b542bad](https://github.com/homarr-labs/homarr/commit/b542bad939527d1de5a0eb0a8c384cf4f6267436)) +- **deps:** update tanstack-query monorepo to ^5.59.17 ([#1403](https://github.com/homarr-labs/homarr/issues/1403)) ([deb5a71](https://github.com/homarr-labs/homarr/commit/deb5a716db1312fcbafbd244d3399a35ab50c4e9)) +- **deps:** update tanstack-query monorepo to ^5.59.19 ([#1410](https://github.com/homarr-labs/homarr/issues/1410)) ([8983734](https://github.com/homarr-labs/homarr/commit/8983734408e9c5ea89bc3fb0e011e9030824a43c)) +- **deps:** update tanstack-query monorepo to ^5.59.20 ([#1438](https://github.com/homarr-labs/homarr/issues/1438)) ([e05567d](https://github.com/homarr-labs/homarr/commit/e05567d100e3ff99a1d41099ffe5b9333b0eb7a7)) +- **deps:** update tanstack-query monorepo to ^5.59.3 ([#1274](https://github.com/homarr-labs/homarr/issues/1274)) ([e3cd8a8](https://github.com/homarr-labs/homarr/commit/e3cd8a8b25c736e93dec8d4df4be368007785f61)) +- **deps:** update tanstack-query monorepo to ^5.59.6 ([#1276](https://github.com/homarr-labs/homarr/issues/1276)) ([efd06ea](https://github.com/homarr-labs/homarr/commit/efd06ea1079aca15b75f358916e20b13e39ac568)) +- **deps:** update tanstack-query monorepo to ^5.59.9 ([#1278](https://github.com/homarr-labs/homarr/issues/1278)) ([0ca140f](https://github.com/homarr-labs/homarr/commit/0ca140f4ff8f74a5eef496864d2bcd95e389f329)) +- **deps:** update tanstack-query monorepo to ^5.60.2 ([#1482](https://github.com/homarr-labs/homarr/issues/1482)) ([12c3bb9](https://github.com/homarr-labs/homarr/commit/12c3bb98485f3b38ba12d3fc84b7498b78fd1d8f)) +- **deps:** update tanstack-query monorepo to ^5.60.4 ([#1488](https://github.com/homarr-labs/homarr/issues/1488)) ([41f816b](https://github.com/homarr-labs/homarr/commit/41f816be5b9561398361153d3f9a07cd2e3cc6e1)) +- **deps:** update tanstack-query monorepo to ^5.60.5 ([#1489](https://github.com/homarr-labs/homarr/issues/1489)) ([6dcf1ad](https://github.com/homarr-labs/homarr/commit/6dcf1ad3446f0c564ec7c21c0fc8154e5cd1ce68)) +- **deps:** update tanstack-query monorepo to ^5.60.6 ([#1500](https://github.com/homarr-labs/homarr/issues/1500)) ([2f76e53](https://github.com/homarr-labs/homarr/commit/2f76e537b7a8a30b1a7801753b44cfd7a25dc2d6)) +- **deps:** update tanstack-query monorepo to ^5.61.0 ([#1510](https://github.com/homarr-labs/homarr/issues/1510)) ([ed10d63](https://github.com/homarr-labs/homarr/commit/ed10d63a04a2b5a8dad0ffb51fca35d8c0e88a34)) +- **deps:** update tanstack-query monorepo to ^5.61.3 ([#1536](https://github.com/homarr-labs/homarr/issues/1536)) ([24daba7](https://github.com/homarr-labs/homarr/commit/24daba743ed645e6a974bb212e28b745acdd34f7)) +- **deps:** update tanstack-query monorepo to ^5.61.4 ([#1555](https://github.com/homarr-labs/homarr/issues/1555)) ([91a199f](https://github.com/homarr-labs/homarr/commit/91a199f7d6014c97425b55f2a419b252b766b4c3)) +- **deps:** update tanstack-query monorepo to ^5.61.5 ([#1559](https://github.com/homarr-labs/homarr/issues/1559)) ([f2e7349](https://github.com/homarr-labs/homarr/commit/f2e7349cbdfc065b52951d3a54a22344dca6807b)) +- **deps:** update tanstack-query monorepo to ^5.62.0 ([#1569](https://github.com/homarr-labs/homarr/issues/1569)) ([6ad5fd5](https://github.com/homarr-labs/homarr/commit/6ad5fd55295622429035aa7f59e478ada19ec36a)) +- **deps:** update tanstack-query monorepo to ^5.62.1 ([#1584](https://github.com/homarr-labs/homarr/issues/1584)) ([0e01dd8](https://github.com/homarr-labs/homarr/commit/0e01dd86950beac24259ac1269f0159c7c33e35c)) +- **deps:** update tanstack-query monorepo to ^5.62.2 ([#1590](https://github.com/homarr-labs/homarr/issues/1590)) ([3b705f4](https://github.com/homarr-labs/homarr/commit/3b705f43b89b4c844522925c1d03a2822a2986a9)) +- **deps:** update tanstack-query monorepo to ^5.62.3 ([#1621](https://github.com/homarr-labs/homarr/issues/1621)) ([42ab783](https://github.com/homarr-labs/homarr/commit/42ab783085ab0a1998d62975aac796af1fc80a3c)) +- **deps:** update tanstack-query monorepo to ^5.62.7 ([#1638](https://github.com/homarr-labs/homarr/issues/1638)) ([e692cc8](https://github.com/homarr-labs/homarr/commit/e692cc891713802cdf8655eb54223ef8e30377ba)) +- **deps:** update tanstack-query monorepo to ^5.62.8 ([#1682](https://github.com/homarr-labs/homarr/issues/1682)) ([28667c5](https://github.com/homarr-labs/homarr/commit/28667c5e1aa5b9c9c640f251fcb4e9e1063fa922)) +- **deps:** update tanstack-query monorepo to v5.38.0 ([#551](https://github.com/homarr-labs/homarr/issues/551)) ([a029abe](https://github.com/homarr-labs/homarr/commit/a029abe6f3fa762e879717bd66bc4e8bbde3558b)) +- **deps:** update testcontainers-node monorepo to ^10.13.2 ([#1233](https://github.com/homarr-labs/homarr/issues/1233)) ([8ea8b2d](https://github.com/homarr-labs/homarr/commit/8ea8b2ded55e3d026d3d13b1baa09f740b2d3a54)) +- **deps:** update testcontainers-node monorepo to ^10.14.0 ([#1434](https://github.com/homarr-labs/homarr/issues/1434)) ([31c661b](https://github.com/homarr-labs/homarr/commit/31c661bc69c32403dd7eff262b62d86debef05bc)) +- **deps:** update testcontainers-node monorepo to ^10.15.0 ([#1521](https://github.com/homarr-labs/homarr/issues/1521)) ([6018b20](https://github.com/homarr-labs/homarr/commit/6018b20d4e2be0991c735ca690bd91062285b2bb)) +- **deps:** update testcontainers-node monorepo to ^10.16.0 ([#1604](https://github.com/homarr-labs/homarr/issues/1604)) ([feb93ef](https://github.com/homarr-labs/homarr/commit/feb93ef0c71089a005c31b4f0798a0b20dc0e36b)) +- **deps:** update tiptap monorepo to ^2.2.1 ([#40](https://github.com/homarr-labs/homarr/issues/40)) ([1e01312](https://github.com/homarr-labs/homarr/commit/1e01312fcd5e7e267db330dfdb72a8d8b83fadfd)) +- **deps:** update tiptap monorepo to ^2.2.2 ([#63](https://github.com/homarr-labs/homarr/issues/63)) ([593bc9c](https://github.com/homarr-labs/homarr/commit/593bc9ca1c05bfd69b35d6bb2b7c34d3dabe7303)) +- **deps:** update tiptap monorepo to ^2.2.3 ([#95](https://github.com/homarr-labs/homarr/issues/95)) ([3e44644](https://github.com/homarr-labs/homarr/commit/3e44644ef6e8f8e8b7d898f5794405d2e61eb3af)) +- **deps:** update tiptap monorepo to ^2.2.4 ([#153](https://github.com/homarr-labs/homarr/issues/153)) ([212063a](https://github.com/homarr-labs/homarr/commit/212063a51eb8f9a48fcfe39df9a79dca31116c08)) +- **deps:** update tiptap monorepo to ^2.2.5 ([#315](https://github.com/homarr-labs/homarr/issues/315)) ([75224e0](https://github.com/homarr-labs/homarr/commit/75224e05334361356d841c5878600709324fa3e8)) +- **deps:** update tiptap monorepo to v2.10.0 ([#1507](https://github.com/homarr-labs/homarr/issues/1507)) ([860d2e4](https://github.com/homarr-labs/homarr/commit/860d2e4f69bbdf9b3ffb37b26d514e86ceca378a)) +- **deps:** update tiptap monorepo to v2.10.1 ([#1516](https://github.com/homarr-labs/homarr/issues/1516)) ([85a69b1](https://github.com/homarr-labs/homarr/commit/85a69b13e38743d487e213012cf59b64ba52da67)) +- **deps:** update tiptap monorepo to v2.10.2 ([#1520](https://github.com/homarr-labs/homarr/issues/1520)) ([ba4c9a6](https://github.com/homarr-labs/homarr/commit/ba4c9a683ee533bd214faa8f834fb3fe8408b6bb)) +- **deps:** update tiptap monorepo to v2.10.3 ([#1556](https://github.com/homarr-labs/homarr/issues/1556)) ([c1fe655](https://github.com/homarr-labs/homarr/commit/c1fe6551ce46c00304f1a9c1e6d2d7f301f47dcb)) +- **deps:** update tiptap monorepo to v2.3.0 ([#317](https://github.com/homarr-labs/homarr/issues/317)) ([847adff](https://github.com/homarr-labs/homarr/commit/847adffe7b32310924d0e317fbc4379ed84bbca1)) +- **deps:** update tiptap monorepo to v2.3.1 ([#403](https://github.com/homarr-labs/homarr/issues/403)) ([876f21a](https://github.com/homarr-labs/homarr/commit/876f21a26dba4a2bf58a087d9d954c61baf30d07)) +- **deps:** update tiptap monorepo to v2.3.2 ([#459](https://github.com/homarr-labs/homarr/issues/459)) ([382be49](https://github.com/homarr-labs/homarr/commit/382be496ffb51bf16ff2b50689707503e610243c)) +- **deps:** update tiptap monorepo to v2.4.0 ([#494](https://github.com/homarr-labs/homarr/issues/494)) ([b18b364](https://github.com/homarr-labs/homarr/commit/b18b3642708dd36b6d269c78e8f0ce6efa6e1d17)) +- **deps:** update tiptap monorepo to v2.5.0 ([#811](https://github.com/homarr-labs/homarr/issues/811)) ([7f341ef](https://github.com/homarr-labs/homarr/commit/7f341efdb304cb9479bcce75b02f3d48ed99a8ad)) +- **deps:** update tiptap monorepo to v2.5.1 ([#813](https://github.com/homarr-labs/homarr/issues/813)) ([08ba282](https://github.com/homarr-labs/homarr/commit/08ba28252872455d960b63d688b13fffbca8edde)) +- **deps:** update tiptap monorepo to v2.5.2 ([#822](https://github.com/homarr-labs/homarr/issues/822)) ([b82128a](https://github.com/homarr-labs/homarr/commit/b82128a90cdef599b976625ab58bc20d30a78964)) +- **deps:** update tiptap monorepo to v2.5.3 ([#825](https://github.com/homarr-labs/homarr/issues/825)) ([015b42a](https://github.com/homarr-labs/homarr/commit/015b42aa61be681fc31359c00113f18331728a31)) +- **deps:** update tiptap monorepo to v2.5.4 ([#828](https://github.com/homarr-labs/homarr/issues/828)) ([baf552b](https://github.com/homarr-labs/homarr/commit/baf552bf52e35616c072e33d26014b0c181b6d46)) +- **deps:** update tiptap monorepo to v2.5.5 ([#853](https://github.com/homarr-labs/homarr/issues/853)) ([c512ddb](https://github.com/homarr-labs/homarr/commit/c512ddba493994f1b5a15dde58c32b704697fa1b)) +- **deps:** update tiptap monorepo to v2.5.6 ([#863](https://github.com/homarr-labs/homarr/issues/863)) ([d70e99c](https://github.com/homarr-labs/homarr/commit/d70e99c9734d8997a1f8a97fdf54aea1da08cc05)) +- **deps:** update tiptap monorepo to v2.5.7 ([#869](https://github.com/homarr-labs/homarr/issues/869)) ([89ab1df](https://github.com/homarr-labs/homarr/commit/89ab1df2dbdb19f4079f98289eeaeff591314fef)) +- **deps:** update tiptap monorepo to v2.5.8 ([#887](https://github.com/homarr-labs/homarr/issues/887)) ([e0566df](https://github.com/homarr-labs/homarr/commit/e0566dfcfa56c50b744a872ee0623f374696efee)) +- **deps:** update tiptap monorepo to v2.5.9 ([#922](https://github.com/homarr-labs/homarr/issues/922)) ([c6bb272](https://github.com/homarr-labs/homarr/commit/c6bb272318eccc4cf9c2790513a89cec650526e5)) +- **deps:** update tiptap monorepo to v2.6.1 ([#970](https://github.com/homarr-labs/homarr/issues/970)) ([4a34ec9](https://github.com/homarr-labs/homarr/commit/4a34ec91e5041acf257a1049a7b0c29e509b1585)) +- **deps:** update tiptap monorepo to v2.6.2 ([#972](https://github.com/homarr-labs/homarr/issues/972)) ([81a13b0](https://github.com/homarr-labs/homarr/commit/81a13b0e59eb776ca55782320f4967993e564819)) +- **deps:** update tiptap monorepo to v2.6.3 ([#980](https://github.com/homarr-labs/homarr/issues/980)) ([cc61e27](https://github.com/homarr-labs/homarr/commit/cc61e27fad4c058df6da8bdf49b2bf44d5fc0206)) +- **deps:** update tiptap monorepo to v2.6.4 ([#981](https://github.com/homarr-labs/homarr/issues/981)) ([0ba647a](https://github.com/homarr-labs/homarr/commit/0ba647ad511f45ad2fb1d35bc05f1876547602d0)) +- **deps:** update tiptap monorepo to v2.6.5 ([#1005](https://github.com/homarr-labs/homarr/issues/1005)) ([d401c8f](https://github.com/homarr-labs/homarr/commit/d401c8fa0ff47caef8e6f17aba39cf52310f6d7e)) +- **deps:** update tiptap monorepo to v2.6.6 ([#1015](https://github.com/homarr-labs/homarr/issues/1015)) ([cbf2ecf](https://github.com/homarr-labs/homarr/commit/cbf2ecfb9d3036e4077968c6ffb6c676b1e46308)) +- **deps:** update tiptap monorepo to v2.7.1 ([#1139](https://github.com/homarr-labs/homarr/issues/1139)) ([657c2ee](https://github.com/homarr-labs/homarr/commit/657c2eef80a6562c45c7d2a3b63fb03edff8eb3e)) +- **deps:** update tiptap monorepo to v2.7.2 ([#1150](https://github.com/homarr-labs/homarr/issues/1150)) ([d0e9e0f](https://github.com/homarr-labs/homarr/commit/d0e9e0f09da9afebf714c201b97528b743cc8915)) +- **deps:** update tiptap monorepo to v2.7.3 ([#1182](https://github.com/homarr-labs/homarr/issues/1182)) ([b2143ed](https://github.com/homarr-labs/homarr/commit/b2143eddeba787670d749a0f1e440936be7136d7)) +- **deps:** update tiptap monorepo to v2.7.4 ([#1186](https://github.com/homarr-labs/homarr/issues/1186)) ([4795c8c](https://github.com/homarr-labs/homarr/commit/4795c8c557f80e0019779f00afc58f053f9d6f40)) +- **deps:** update tiptap monorepo to v2.8.0 ([#1206](https://github.com/homarr-labs/homarr/issues/1206)) ([7dd4d4e](https://github.com/homarr-labs/homarr/commit/7dd4d4ec7be610c510caca1f8aa93e67095d05ed)) +- **deps:** update tiptap monorepo to v2.9.0 ([#1352](https://github.com/homarr-labs/homarr/issues/1352)) ([c3b9d98](https://github.com/homarr-labs/homarr/commit/c3b9d981f78b8131f269ec8b6b43f774196005ab)) +- **deps:** update tiptap monorepo to v2.9.1 ([#1360](https://github.com/homarr-labs/homarr/issues/1360)) ([d4919dc](https://github.com/homarr-labs/homarr/commit/d4919dc908748f61320e24f529a881547a124e7b)) +- **deps:** update typescript-eslint monorepo to ^6.20.0 ([#41](https://github.com/homarr-labs/homarr/issues/41)) ([4815230](https://github.com/homarr-labs/homarr/commit/4815230f8b0d3f9b88e72bbb4fb5f4e87daf81c1)) +- **deps:** update typescript-eslint monorepo to ^6.21.0 ([#58](https://github.com/homarr-labs/homarr/issues/58)) ([e683d61](https://github.com/homarr-labs/homarr/commit/e683d61568b61268dd04c50a31b18028b63a0a1b)) +- **deps:** update typescript-eslint monorepo to ^7.0.2 ([#122](https://github.com/homarr-labs/homarr/issues/122)) ([859eeed](https://github.com/homarr-labs/homarr/commit/859eeed32963f41b906d6dac5f16b9d9cd6ffd9e)) +- **deps:** update typescript-eslint monorepo to ^7.1.0 ([#159](https://github.com/homarr-labs/homarr/issues/159)) ([8e53792](https://github.com/homarr-labs/homarr/commit/8e5379225ad1df796a9f4829f4f8af7a41cae9d8)) +- **deps:** update typescript-eslint monorepo to ^7.1.1 ([#192](https://github.com/homarr-labs/homarr/issues/192)) ([27a63db](https://github.com/homarr-labs/homarr/commit/27a63dbf7a276d615c6de01b47e35830daff5cc9)) +- **deps:** update typescript-eslint monorepo to ^7.10.0 ([#562](https://github.com/homarr-labs/homarr/issues/562)) ([2bc0431](https://github.com/homarr-labs/homarr/commit/2bc0431e4e533476f8f7ecff2114b43759c33d9a)) +- **deps:** update typescript-eslint monorepo to ^7.11.0 ([#565](https://github.com/homarr-labs/homarr/issues/565)) ([c20f7a6](https://github.com/homarr-labs/homarr/commit/c20f7a64a0e47e2604645cc494b9d5cded15219a)) +- **deps:** update typescript-eslint monorepo to ^7.12.0 ([#616](https://github.com/homarr-labs/homarr/issues/616)) ([2623708](https://github.com/homarr-labs/homarr/commit/2623708c6dcf4ccd6c291a2548d68a918220dbed)) +- **deps:** update typescript-eslint monorepo to ^7.2.0 ([#218](https://github.com/homarr-labs/homarr/issues/218)) ([ea79953](https://github.com/homarr-labs/homarr/commit/ea79953353f0645849acbad2613f72d45f3894ea)) +- **deps:** update typescript-eslint monorepo to ^7.3.1 ([#247](https://github.com/homarr-labs/homarr/issues/247)) ([36e509a](https://github.com/homarr-labs/homarr/commit/36e509a474bc38a3b6c012bd566b73054f170f84)) +- **deps:** update typescript-eslint monorepo to ^7.5.0 ([#298](https://github.com/homarr-labs/homarr/issues/298)) ([54a7d1f](https://github.com/homarr-labs/homarr/commit/54a7d1f4ae2e470924d578bd507335e54d6c517a)) +- **deps:** update typescript-eslint monorepo to ^7.6.0 ([#329](https://github.com/homarr-labs/homarr/issues/329)) ([2ccb7d1](https://github.com/homarr-labs/homarr/commit/2ccb7d17655d3b9af67f30aa21a93764eeb81ac4)) +- **deps:** update typescript-eslint monorepo to ^7.7.1 ([#354](https://github.com/homarr-labs/homarr/issues/354)) ([0342a17](https://github.com/homarr-labs/homarr/commit/0342a177bb4a5cb642f79411a6003eca3a3a3e6d)) +- **deps:** update typescript-eslint monorepo to ^7.8.0 ([#395](https://github.com/homarr-labs/homarr/issues/395)) ([584483a](https://github.com/homarr-labs/homarr/commit/584483aa9cf309e3efa83f00ab735797638210ee)) +- **deps:** update typescript-eslint monorepo to ^7.9.0 ([#491](https://github.com/homarr-labs/homarr/issues/491)) ([a702f7d](https://github.com/homarr-labs/homarr/commit/a702f7dc67a3b63667ae019b4d807d54dc925ae0)) +- **deps:** update typescript-eslint monorepo to v7 ([#87](https://github.com/homarr-labs/homarr/issues/87)) ([f913384](https://github.com/homarr-labs/homarr/commit/f91338446df1eafce92842fa0ce9ebdabea7f629)) +- **deps:** update typescript-eslint monorepo to v7.10.0 ([#529](https://github.com/homarr-labs/homarr/issues/529)) ([30fe9fe](https://github.com/homarr-labs/homarr/commit/30fe9fef844e7cac5a59185926643baeb5e5ed2e)) +- **deps:** update xterm monorepo ([#312](https://github.com/homarr-labs/homarr/issues/312)) ([a5b8fdb](https://github.com/homarr-labs/homarr/commit/a5b8fdb3977c6613cfe592b20f57c0388e0c6229)) +- disable env validation in ci ([d7a30cd](https://github.com/homarr-labs/homarr/commit/d7a30cd0dd2dfd0e7db86d0c22780cf4c1e6423e)) +- disable env validation in ci ([c84fb63](https://github.com/homarr-labs/homarr/commit/c84fb63b25b199466cf1ba6f34ec5fd31d2a434c)) +- dispatch request-logger hides negative numbers, dates and date times ([#1506](https://github.com/homarr-labs/homarr/issues/1506)) ([2ffa9d0](https://github.com/homarr-labs/homarr/commit/2ffa9d0e712233b19ade71ec62fcf34de2128340)) +- display on safari ([#1071](https://github.com/homarr-labs/homarr/issues/1071)) ([753d091](https://github.com/homarr-labs/homarr/commit/753d091dbbc5665276461f5e1d79224ea1c0deb7)) +- DnsHole controls timer ([#953](https://github.com/homarr-labs/homarr/issues/953)) ([69e69ee](https://github.com/homarr-labs/homarr/commit/69e69ee315535555a8fd4cb43273357c9a4ce24b)) +- docker build ([#777](https://github.com/homarr-labs/homarr/issues/777)) ([01eb846](https://github.com/homarr-labs/homarr/commit/01eb84654d57afc2164ae8b7912752ecb6631f43)) +- docker build not working ([#1365](https://github.com/homarr-labs/homarr/issues/1365)) ([041006c](https://github.com/homarr-labs/homarr/commit/041006c181d7a1599400ce6d296d773c13f396b0)) +- docker development path in package.json ([#416](https://github.com/homarr-labs/homarr/issues/416)) ([48c2473](https://github.com/homarr-labs/homarr/commit/48c2473ab31354a492b86aa5d2d3319cbcadccea)) +- docker platforms ([f0d6676](https://github.com/homarr-labs/homarr/commit/f0d6676917c06a068aa432f49e5d74fc2ad45631)) +- docker push flag ([eab5c10](https://github.com/homarr-labs/homarr/commit/eab5c10fa6b36c22ee4bf1526d1000bc5137ac7b)) +- docker push flag ([1128110](https://github.com/homarr-labs/homarr/commit/1128110be386297ef0e128da477c1d9572336cad)) +- email verified check is in a newline in users table ([#1218](https://github.com/homarr-labs/homarr/issues/1218)) ([8b5ea3c](https://github.com/homarr-labs/homarr/commit/8b5ea3c5d3af5e904467591b9e066488b6a4abc1)) +- empty wrappers without items should not be visible in view mode ([#1026](https://github.com/homarr-labs/homarr/issues/1026)) ([022fad9](https://github.com/homarr-labs/homarr/commit/022fad92a9aa74c132c91c6e0a942c7d520eac88)) +- everyone group page throws error ([#1450](https://github.com/homarr-labs/homarr/issues/1450)) ([f3ebd6c](https://github.com/homarr-labs/homarr/commit/f3ebd6ccdf2d5964daf50f4b9221d2231a91855d)) +- external users can be added to groups manually ([#1540](https://github.com/homarr-labs/homarr/issues/1540)) ([32e6b8e](https://github.com/homarr-labs/homarr/commit/32e6b8ee45cac46cf71fd5c6cd71558c352b4097)) +- fetch timeout for external requests to small ([#881](https://github.com/homarr-labs/homarr/issues/881)) ([67dad45](https://github.com/homarr-labs/homarr/commit/67dad45214a0dcda9d79abb4c731b7705ceb7f2d)) +- fix binary conflicts for linux ([#1583](https://github.com/homarr-labs/homarr/issues/1583)) ([70ab294](https://github.com/homarr-labs/homarr/commit/70ab29454a53958676de33bb39b9be1ea613e135)) +- fix i18n-ally extension config ([#1462](https://github.com/homarr-labs/homarr/issues/1462)) ([4ba9e94](https://github.com/homarr-labs/homarr/commit/4ba9e94dd6f632492ed250ccc267f5ac72805290)) +- Fix typecheck, lint issues and errors brought to dnshole summary. ([#916](https://github.com/homarr-labs/homarr/issues/916)) ([0cec1db](https://github.com/homarr-labs/homarr/commit/0cec1dbb1743bbe2af03a006c24d3588d5a55d83)) +- github actor name for automatic approval wrong ([#943](https://github.com/homarr-labs/homarr/issues/943)) ([c833f2c](https://github.com/homarr-labs/homarr/commit/c833f2cbf2560919f5e2381678a46d2d8d649854)) +- gridstack not working ([#642](https://github.com/homarr-labs/homarr/issues/642)) ([2c1b52a](https://github.com/homarr-labs/homarr/commit/2c1b52aff95af95b2732c4e86af87fffdcbd6896)) +- groups can be created with empty names ([#1267](https://github.com/homarr-labs/homarr/issues/1267)) ([98cf214](https://github.com/homarr-labs/homarr/commit/98cf214aed9423dbf4e13982641d9e167de4171d)) +- Handle existing user when editing profile ([6e2bd0c](https://github.com/homarr-labs/homarr/commit/6e2bd0ce11697cdfd59500d506e68ac22ed38273)) +- hard to move iframe widget [#1075](https://github.com/homarr-labs/homarr/issues/1075) ([#1101](https://github.com/homarr-labs/homarr/issues/1101)) ([5e77221](https://github.com/homarr-labs/homarr/commit/5e772215a9a26f04fec25d3d983a86e8c53faf7c)) +- health-check widget sorting & last seen ([#1363](https://github.com/homarr-labs/homarr/issues/1363)) ([c37a0e3](https://github.com/homarr-labs/homarr/commit/c37a0e38d950ec24bd33a174a229ee20434fa6f9)) +- icon picker keyboard interactions ([#1666](https://github.com/homarr-labs/homarr/issues/1666)) ([82ec77d](https://github.com/homarr-labs/homarr/commit/82ec77d2dac9764d44417a4e486a099f89b5e39c)) +- icon picker suspense issue ([#1533](https://github.com/homarr-labs/homarr/issues/1533)) ([ecf299e](https://github.com/homarr-labs/homarr/commit/ecf299e03b5906a7f006397ef1df463a2c531468)) +- icon selector is a select not an autocomplete [#515](https://github.com/homarr-labs/homarr/issues/515) ([#675](https://github.com/homarr-labs/homarr/issues/675)) ([e957c6b](https://github.com/homarr-labs/homarr/commit/e957c6b601b1ed1172df8ee998a50a56e4b83f1f)) +- improve ping performance ([#1020](https://github.com/homarr-labs/homarr/issues/1020)) ([b81f5a2](https://github.com/homarr-labs/homarr/commit/b81f5a2ee349f1b8205a86d72d00c4a2e3470d1f)) +- inconsistent session cookie ([#1310](https://github.com/homarr-labs/homarr/issues/1310)) ([12105b3](https://github.com/homarr-labs/homarr/commit/12105b3b2935afec4f43aed05e4e5700986430ea)) +- indexer manager UI behaviour + class naming ([#1134](https://github.com/homarr-labs/homarr/issues/1134)) ([6d4d6ef](https://github.com/homarr-labs/homarr/commit/6d4d6efe3f575830d10e8d04d71b14dcda82223b)) +- insert limit of sqlite is smaller than amount of icons ([#1161](https://github.com/homarr-labs/homarr/issues/1161)) ([9eea8d4](https://github.com/homarr-labs/homarr/commit/9eea8d48e8bc0776d6074840a47c4b4c2ba38347)) +- integration actions hidden for full access users ([#1300](https://github.com/homarr-labs/homarr/issues/1300)) ([476fda2](https://github.com/homarr-labs/homarr/commit/476fda279db3a501a376b5b77eff2ae99b8a0225)) +- integration links in manage section do not work ([#441](https://github.com/homarr-labs/homarr/issues/441)) ([4b80b16](https://github.com/homarr-labs/homarr/commit/4b80b16b530af17649ef71ab9481574b3e9a0159)) +- issue with category removal and ready state ([#129](https://github.com/homarr-labs/homarr/issues/129)) ([1e414af](https://github.com/homarr-labs/homarr/commit/1e414af57c604770118a3fac59941bfaff0ab6db)) +- issue with color scheme in layout ([#1168](https://github.com/homarr-labs/homarr/issues/1168)) ([8f7ed05](https://github.com/homarr-labs/homarr/commit/8f7ed056c435a66d095cdfd43b6e893dfc7e6da3)) +- issues found in security audit ([#1668](https://github.com/homarr-labs/homarr/issues/1668)) ([922101d](https://github.com/homarr-labs/homarr/commit/922101dcbd0c512815b2cbb354cbab0fe80028c0)) +- it was possible to go to the create user page when credentials login disabled ([#1217](https://github.com/homarr-labs/homarr/issues/1217)) ([d63f6d2](https://github.com/homarr-labs/homarr/commit/d63f6d270f496053ae52bc3b9bfe484372c5b9d3)) +- items can not be placed in newly created dynamic section without saving ([#1513](https://github.com/homarr-labs/homarr/issues/1513)) ([73cb0b9](https://github.com/homarr-labs/homarr/commit/73cb0b99accfeb05c63c78ff227db1d5f23b99b2)) +- job translations ([#846](https://github.com/homarr-labs/homarr/issues/846)) ([43e4801](https://github.com/homarr-labs/homarr/commit/43e48010e5f1d7cf65ad779c8684a7b468e43688)) +- local websocket url wrong ([#1328](https://github.com/homarr-labs/homarr/issues/1328)) ([7572634](https://github.com/homarr-labs/homarr/commit/757263478036d01d8fdbabf3857bb6ebd59ba9af)) +- login before pushing image ([4836801](https://github.com/homarr-labs/homarr/commit/4836801004301375220e8181c5f14e56020312d2)) +- login with revalidate path and wrong preferences link ([#654](https://github.com/homarr-labs/homarr/issues/654)) ([8e4ba37](https://github.com/homarr-labs/homarr/commit/8e4ba37f94294577926ae6e668d50b2e151b2d35)) +- make oldmarr app schema less restrictive ([#1495](https://github.com/homarr-labs/homarr/issues/1495)) ([879aa11](https://github.com/homarr-labs/homarr/commit/879aa1152f8e9182c14775672cf371fdc639e223)) +- Manage banner animation hitch fix ([#826](https://github.com/homarr-labs/homarr/issues/826)) ([4e03e7f](https://github.com/homarr-labs/homarr/commit/4e03e7f49d931090636dea7ebed4a0bea9659177)) +- manage links wrong ([#754](https://github.com/homarr-labs/homarr/issues/754)) ([be71114](https://github.com/homarr-labs/homarr/commit/be711149f7d1ef82ab30e43209d6173f2520de57)) +- mantine react table style issue ([#508](https://github.com/homarr-labs/homarr/issues/508)) ([5723295](https://github.com/homarr-labs/homarr/commit/5723295856ae557a25db3b5782e6c4bea6b6c301)) +- mantine-react-table not localized [#333](https://github.com/homarr-labs/homarr/issues/333) ([#873](https://github.com/homarr-labs/homarr/issues/873)) ([4380aa9](https://github.com/homarr-labs/homarr/commit/4380aa9b3e8659bbb95f8d91e35bffc87c8e65c5)) +- matcher for translation middleware only supports en and de ([#1528](https://github.com/homarr-labs/homarr/issues/1528)) ([38143b6](https://github.com/homarr-labs/homarr/commit/38143b679e389633dbd27a2fede866c3696c583c)) +- memory leak caused by many unclosed redis subscriptions ([#750](https://github.com/homarr-labs/homarr/issues/750)) ([998615f](https://github.com/homarr-labs/homarr/commit/998615fc11cfcca1d1a51464550d599addb8e49f)) +- middleware fetch failed for docker container ([#1424](https://github.com/homarr-labs/homarr/issues/1424)) ([b7fc1ae](https://github.com/homarr-labs/homarr/commit/b7fc1ae4bb0aa03595d849d909b997c307dce26c)) +- missing breadcrumb translation, wrong spacing in user layout ([#872](https://github.com/homarr-labs/homarr/issues/872)) ([55a000a](https://github.com/homarr-labs/homarr/commit/55a000a7fc2b2c977af3f25d5196a464c6890745)) +- missing migration for default colorscheme change ([#1335](https://github.com/homarr-labs/homarr/issues/1335)) ([9c5972f](https://github.com/homarr-labs/homarr/commit/9c5972faf45a31ec379fe7a2fdd19548755d27ed)) +- missing translations for apps / integrations [#438](https://github.com/homarr-labs/homarr/issues/438) ([#674](https://github.com/homarr-labs/homarr/issues/674)) ([f358c33](https://github.com/homarr-labs/homarr/commit/f358c33bd37e581d7a3ce02f527eb499f8ae4b85)) +- modal transition not working ([#433](https://github.com/homarr-labs/homarr/issues/433)) ([b888fad](https://github.com/homarr-labs/homarr/commit/b888fad1fc288961f0582464392e3f12751e9146)) +- moving categories up and down is not working ([#1542](https://github.com/homarr-labs/homarr/issues/1542)) ([52d2a88](https://github.com/homarr-labs/homarr/commit/52d2a88b61a6ef8513560e8810bce6fa0867f0a6)) +- mysql migration not working ([#1138](https://github.com/homarr-labs/homarr/issues/1138)) ([003cc51](https://github.com/homarr-labs/homarr/commit/003cc5160c68d73e3cfbc3e933099a9275782b5b)) +- new sections without add and change listeners ([#1230](https://github.com/homarr-labs/homarr/issues/1230)) ([665df53](https://github.com/homarr-labs/homarr/commit/665df53a39cc90d4155b3c8436a88986aa7a5b23)) +- next auth host not trusted ([#144](https://github.com/homarr-labs/homarr/issues/144)) ([b2cee8f](https://github.com/homarr-labs/homarr/commit/b2cee8f6936d526072dd65a59a494081cfb81c16)) +- nextjs is slow dev server ([#364](https://github.com/homarr-labs/homarr/issues/364)) ([b78d32b](https://github.com/homarr-labs/homarr/commit/b78d32b81c6075a3d04abf0e8e7631e8ce6ef49c)) +- node cache cleanup error ([#1124](https://github.com/homarr-labs/homarr/issues/1124)) ([16a5b43](https://github.com/homarr-labs/homarr/commit/16a5b43695f5e8c8d3ba5ac9d1bfe2dec83f3bf1)) +- notebook save button on align buttons ([#1456](https://github.com/homarr-labs/homarr/issues/1456)) ([15abfbb](https://github.com/homarr-labs/homarr/commit/15abfbbdf722b9f996c69072b57105ecfdc647ad)) +- **notebook:** default-content image path ([#1244](https://github.com/homarr-labs/homarr/issues/1244)) ([b5bfe90](https://github.com/homarr-labs/homarr/commit/b5bfe90453b8ad5028b52b856631ec30f3f80afd)) +- open navigation item by default ([#716](https://github.com/homarr-labs/homarr/issues/716)) ([c4b54ed](https://github.com/homarr-labs/homarr/commit/c4b54ed36c2da54457ac58496e62e13856bc0c98)) +- open-api doc generation failing, post patch and delete not exported ([#1565](https://github.com/homarr-labs/homarr/issues/1565)) ([2d7efc3](https://github.com/homarr-labs/homarr/commit/2d7efc3ffacb16c27219c26f20fd0682304927e0)) +- overview in series of sonarr schema is optional ([#880](https://github.com/homarr-labs/homarr/issues/880)) ([406ed16](https://github.com/homarr-labs/homarr/commit/406ed16ce45683d04e7f0293037d1eeae269795d)) +- pass token to cli ([653f42b](https://github.com/homarr-labs/homarr/commit/653f42bccb8a5893eb64d66c4963068b37011cd7)) +- permissions not restricted for certain management pages / actions ([#1219](https://github.com/homarr-labs/homarr/issues/1219)) ([1421ccc](https://github.com/homarr-labs/homarr/commit/1421ccc917fc54a8afcf6ba700d4b0590fa90ed5)) +- ping urls are not reset when restarting ([#924](https://github.com/homarr-labs/homarr/issues/924)) ([365e267](https://github.com/homarr-labs/homarr/commit/365e267b8d7ba75e47af974dec6f427592095185)) +- pnpm dev did not work caused by tsx update ([#638](https://github.com/homarr-labs/homarr/issues/638)) ([fb92c3e](https://github.com/homarr-labs/homarr/commit/fb92c3e95c164b4297c74bbe18461cd08b003112)) +- prevent flickering by removing auto color scheme and default background color ([#1299](https://github.com/homarr-labs/homarr/issues/1299)) ([cd77acd](https://github.com/homarr-labs/homarr/commit/cd77acdfabf6f58aa1973e8db9408379801a8085)) +- rdb files can not be saved because of permission issues bug: redis can not save RDB files [#318](https://github.com/homarr-labs/homarr/issues/318) ([#472](https://github.com/homarr-labs/homarr/issues/472)) ([fd44ee4](https://github.com/homarr-labs/homarr/commit/fd44ee48f4dbd67a1f86a6a3fe7c7c986b87443a)) +- redirect url from login not working ([#952](https://github.com/homarr-labs/homarr/issues/952)) ([349c494](https://github.com/homarr-labs/homarr/commit/349c49462fdf29741910e036e4494909c13b6124)) +- remove unnecessary complex copy and build steps in dockerfile ([#1595](https://github.com/homarr-labs/homarr/issues/1595)) ([2686dad](https://github.com/homarr-labs/homarr/commit/2686dad63017cd3b8e45818bfcb27fa3618f1a15)) +- remove unused properties in SabNZBd schema ([#1415](https://github.com/homarr-labs/homarr/issues/1415)) ([ceafd37](https://github.com/homarr-labs/homarr/commit/ceafd3747b3a56531ca3357f68fd33350cf5c896)) +- Remove version override ([#67](https://github.com/homarr-labs/homarr/issues/67)) ([55ec600](https://github.com/homarr-labs/homarr/commit/55ec60041ac5fd38861220f42e6b6daba1fb3eb3)) +- rename default to home board ([#1538](https://github.com/homarr-labs/homarr/issues/1538)) ([1c4d4f4](https://github.com/homarr-labs/homarr/commit/1c4d4f4e9d39d52d6a8e69f06c1d6246c774ed79)) +- renovate approval run for all pull requests on every pull request change ([#942](https://github.com/homarr-labs/homarr/issues/942)) ([017c378](https://github.com/homarr-labs/homarr/commit/017c378582cca20688acac171bab803597d825b4)) +- renovate approval workflow not running ([#948](https://github.com/homarr-labs/homarr/issues/948)) ([ab7d3f8](https://github.com/homarr-labs/homarr/commit/ab7d3f8e4c82fcee9af6f79c70943633fec9af95)) +- renovate automatic approval typo no file extension ([#572](https://github.com/homarr-labs/homarr/issues/572)) ([c2185e3](https://github.com/homarr-labs/homarr/commit/c2185e34890b028eac7486a52d04967037be2183)) +- renovate config with json does not support comments ([#641](https://github.com/homarr-labs/homarr/issues/641)) ([e46ea71](https://github.com/homarr-labs/homarr/commit/e46ea71bc2f89f02403e8a9597dc02474181776d)) +- restrict access to docker containers page to admins ([#912](https://github.com/homarr-labs/homarr/issues/912)) ([b8b084c](https://github.com/homarr-labs/homarr/commit/b8b084c188b28ba8fb317156433e694e7d37dfbb)) +- revert mysql2 to version 3.9.2 as with 3.9.3 nextjs build fails ([1fc2df1](https://github.com/homarr-labs/homarr/commit/1fc2df19ec6e707f7dc9ca11e60f021dd03fc5aa)) +- rtl common translation unnecessary ([#1246](https://github.com/homarr-labs/homarr/issues/1246)) ([770768e](https://github.com/homarr-labs/homarr/commit/770768eb211259848437522615b7b78ecfca8ee5)) +- sensitive data can be leaked through query parameters ([#1208](https://github.com/homarr-labs/homarr/issues/1208)) ([f24c068](https://github.com/homarr-labs/homarr/commit/f24c06852e0bf6d672b58b784ce34d96581c2c03)) +- server data is loaded on settings page [#363](https://github.com/homarr-labs/homarr/issues/363) ([#414](https://github.com/homarr-labs/homarr/issues/414)) ([7c98b65](https://github.com/homarr-labs/homarr/commit/7c98b65401778a61a4af4206612fa62dd95ba9a5)) +- sessions from inactive providers can still be used ([#1458](https://github.com/homarr-labs/homarr/issues/1458)) ([1105f00](https://github.com/homarr-labs/homarr/commit/1105f0029fd1479e3ab6d8dae8524233c264ca21)) +- sharp is not installed ([#397](https://github.com/homarr-labs/homarr/issues/397)) ([5f24797](https://github.com/homarr-labs/homarr/commit/5f247977fa50405d5daed9f628d1170d15be412d)), closes [#320](https://github.com/homarr-labs/homarr/issues/320) +- specify step image version ([fa2c448](https://github.com/homarr-labs/homarr/commit/fa2c448bac9734662295cb8ebd62f733d3153be2)) +- **spotlight:** x button not clickable, help links open in current tab, bad screen usage on mobile ([#1199](https://github.com/homarr-labs/homarr/issues/1199)) ([42a49e6](https://github.com/homarr-labs/homarr/commit/42a49e6461f1834a1e54563e908fe75457de6d96)) +- styles for light mode ([#1645](https://github.com/homarr-labs/homarr/issues/1645)) ([cf9656d](https://github.com/homarr-labs/homarr/commit/cf9656d91eedc73224e9cfc8871c977988994425)) +- testConnectionAsync url ([#1024](https://github.com/homarr-labs/homarr/issues/1024)) ([e34af86](https://github.com/homarr-labs/homarr/commit/e34af8659b6562e1ec3ebc502eff52ef3c699654)) +- trailing slash integration url issues ([#1571](https://github.com/homarr-labs/homarr/issues/1571)) ([b277f44](https://github.com/homarr-labs/homarr/commit/b277f444b2c01e251b53069c17674eb4188b5f8d)) +- transfer group not invalidating path ([#1539](https://github.com/homarr-labs/homarr/issues/1539)) ([74e1b6b](https://github.com/homarr-labs/homarr/commit/74e1b6b54494455fecc37f673569482c3fad1ce4)) +- trpc error at least one integration ([#1660](https://github.com/homarr-labs/homarr/issues/1660)) ([f857105](https://github.com/homarr-labs/homarr/commit/f8571059941a4c13b9b8bca24b399ca06a8aa13f)) +- try using other variable ([5c68ac9](https://github.com/homarr-labs/homarr/commit/5c68ac9e2eda1c28befd25a14cc3c2b6e3965c34)) +- tsx not working ([#434](https://github.com/homarr-labs/homarr/issues/434)) ([5abd438](https://github.com/homarr-labs/homarr/commit/5abd438a494048738017a976faa35e1c79c7fd96)) +- typo in automatic release commit message ([#726](https://github.com/homarr-labs/homarr/issues/726)) ([8fc2884](https://github.com/homarr-labs/homarr/commit/8fc28844bbedb4edbdc504aba6330bad06d34e93)) +- typo in renovate config name ([#557](https://github.com/homarr-labs/homarr/issues/557)) ([4d1e4d5](https://github.com/homarr-labs/homarr/commit/4d1e4d55bc56a567aa5ae70a1c2d6bd7ed738954)) +- unable to select integration on board page ([#450](https://github.com/homarr-labs/homarr/issues/450)) ([c884644](https://github.com/homarr-labs/homarr/commit/c88464498fcca95232e87b684b20e932891b939c)) +- Update check for user existence ([65025a5](https://github.com/homarr-labs/homarr/commit/65025a5dda4414aa98ac042b64b22f15ddc8bff8)) +- use correct branch for tag compare ([0c7f479](https://github.com/homarr-labs/homarr/commit/0c7f47995211f31fa81d0f27b9a0d901dd2e422c)) +- user is undefined when using use-suspense-query ([#1498](https://github.com/homarr-labs/homarr/issues/1498)) ([18b579e](https://github.com/homarr-labs/homarr/commit/18b579eb5f2ce77ac19a2bd9fee9c99025ab1c2d)) +- various issues with docker image workflow ([#1172](https://github.com/homarr-labs/homarr/issues/1172)) ([d029f48](https://github.com/homarr-labs/homarr/commit/d029f48f799bc9ff7e01c4b85194b58e050f0c5b)) +- videos not playing automatically on iOS / mobile ([#875](https://github.com/homarr-labs/homarr/issues/875)) ([8e10c48](https://github.com/homarr-labs/homarr/commit/8e10c48d2f182b1f11baac8747a0701019a4387c)) +- websockets on https do not work ([#1444](https://github.com/homarr-labs/homarr/issues/1444)) ([0aa72d1](https://github.com/homarr-labs/homarr/commit/0aa72d118c6c61798cff3406256e4253d0ad5aab)) +- wevbsocket url is always localhost ([#1072](https://github.com/homarr-labs/homarr/issues/1072)) ([8c20553](https://github.com/homarr-labs/homarr/commit/8c205535eb2d2e3a6efb26696460f1c60c58170e)) +- when no dead icons, all icons are removed ([#516](https://github.com/homarr-labs/homarr/issues/516)) ([8e8f908](https://github.com/homarr-labs/homarr/commit/8e8f9081b029e8a01e4dcfcc14e6cd259732c519)) +- when removing one item and then adding another one that newly added one can not be moved ([#1025](https://github.com/homarr-labs/homarr/issues/1025)) ([2738f40](https://github.com/homarr-labs/homarr/commit/2738f40c5e3028822c4586556fddc16af5aa7d58)) +- workflow inputs and docker push ([#1123](https://github.com/homarr-labs/homarr/issues/1123)) ([c8dfbc8](https://github.com/homarr-labs/homarr/commit/c8dfbc8e2d3fd50958b124bdc4e1ad6b0af8f7ca)) +- wrong id for renovate auto approval ([#957](https://github.com/homarr-labs/homarr/issues/957)) ([67195c6](https://github.com/homarr-labs/homarr/commit/67195c605139dfd4b3cd1e7d7e627752e71a7f1f)) +- xterm-addon-fit deprecated ([#321](https://github.com/homarr-labs/homarr/issues/321)) ([e6e6e4e](https://github.com/homarr-labs/homarr/commit/e6e6e4e7d639277c6b23d389721de81f7abd68d0)) ### Performance Improvements -* improve performance of icon updater from 10s to 300ms ([#502](https://github.com/homarr-labs/homarr/issues/502)) ([333dc57](https://github.com/homarr-labs/homarr/commit/333dc571fa32e9aad988f91b2547cebd99388fb4)) -* improve typescript performance ([#523](https://github.com/homarr-labs/homarr/issues/523)) ([d9f5158](https://github.com/homarr-labs/homarr/commit/d9f5158662e55bcfcb8a33018f3826286df8ff8c)) +- improve performance of icon updater from 10s to 300ms ([#502](https://github.com/homarr-labs/homarr/issues/502)) ([333dc57](https://github.com/homarr-labs/homarr/commit/333dc571fa32e9aad988f91b2547cebd99388fb4)) +- improve typescript performance ([#523](https://github.com/homarr-labs/homarr/issues/523)) ([d9f5158](https://github.com/homarr-labs/homarr/commit/d9f5158662e55bcfcb8a33018f3826286df8ff8c)) diff --git a/CODEOWNERS b/CODEOWNERS index ed482fd41..b798cfada 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -3,7 +3,11 @@ # Exempt Renovate‑managed files (no owners) package.json +**/package.json package-lock.json +**/package-lock.json pnpm-lock.yaml +**/pnpm-lock.yaml +pnpm-workspace.yaml Dockerfile docker-compose.yml diff --git a/Dockerfile b/Dockerfile index 4cf6a8533..51b562f7d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:24.12.0-alpine AS base +FROM node:24.15.0-alpine AS base FROM base AS builder RUN apk add --no-cache libc6-compat @@ -43,8 +43,6 @@ RUN mkdir -p /var/cache/nginx && \ COPY --from=builder /app/apps/nextjs/next.config.ts . COPY --from=builder /app/apps/nextjs/package.json . -COPY --from=builder /app/apps/tasks/tasks.cjs ./apps/tasks/tasks.cjs -COPY --from=builder /app/apps/websocket/wssServer.cjs ./apps/websocket/wssServer.cjs COPY --from=builder /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node /app/build/better_sqlite3.node COPY --from=builder /app/packages/db/migrations ./db/migrations diff --git a/apps/nextjs/eslint.config.js b/apps/nextjs/eslint.config.js index c131bab90..3d593e34e 100644 --- a/apps/nextjs/eslint.config.js +++ b/apps/nextjs/eslint.config.js @@ -10,4 +10,21 @@ export default [ ...baseConfig, ...reactConfig, ...nextjsConfig, + { + files: ["public/sw.js"], + languageOptions: { + globals: { + self: "readonly", + clients: "readonly", + skipWaiting: "readonly", + importScripts: "readonly", + caches: "readonly", + fetch: "readonly", + }, + }, + rules: { + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off", + }, + }, ]; diff --git a/apps/nextjs/next.config.ts b/apps/nextjs/next.config.ts index a3dabe151..bcce78519 100644 --- a/apps/nextjs/next.config.ts +++ b/apps/nextjs/next.config.ts @@ -6,7 +6,6 @@ import "@homarr/core/infrastructure/logs/env"; import "@homarr/docker/env"; import type { NextConfig } from "next"; -import MillionLint from "@million/lint"; import createNextIntlPlugin from "next-intl/plugin"; // Package path does not work... so we need to use relative path @@ -32,6 +31,8 @@ const nextConfig: NextConfig = { experimental: { optimizePackageImports: ["@mantine/core", "@mantine/hooks", "@tabler/icons-react"], turbopackFileSystemCacheForDev: true, + preloadEntriesOnStart: false, + webpackMemoryOptimizations: true, }, transpilePackages: ["@homarr/ui", "@homarr/notifications", "@homarr/modals", "@homarr/spotlight", "@homarr/widgets"], images: { @@ -42,9 +43,18 @@ const nextConfig: NextConfig = { }, ], }, + // skipcq: JS-0116 // eslint-disable-next-line @typescript-eslint/require-await,no-restricted-syntax async headers() { return [ + { + source: "/sw.js", + headers: [ + { key: "Content-Type", value: "application/javascript; charset=utf-8" }, + { key: "Cache-Control", value: "no-cache, no-store, must-revalidate" }, + { key: "Content-Security-Policy", value: "default-src 'self'; script-src 'self'" }, + ], + }, { source: "/(.*)", // Apply CSP to all routes headers: [ @@ -74,8 +84,4 @@ const nextConfig: NextConfig = { }, }; -// Skip transform is used because of webpack loader, without it for example 'Tooltip.Floating' will not work and show an error -// eslint-disable-next-line @typescript-eslint/no-unused-vars -const withMillionLint = MillionLint.next({ rsc: true, skipTransform: true, telemetry: false }); - export default withNextIntl(nextConfig); diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index c23a033d8..409845f4e 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -15,10 +15,10 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@dnd-kit/core": "^6.3.1", - "@dnd-kit/modifiers": "^9.0.0", - "@dnd-kit/sortable": "^10.0.0", - "@dnd-kit/utilities": "^3.2.2", + "@dnd-kit/core": "catalog:", + "@dnd-kit/modifiers": "catalog:", + "@dnd-kit/sortable": "catalog:", + "@dnd-kit/utilities": "catalog:", "@homarr/analytics": "workspace:^0.1.0", "@homarr/api": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0", @@ -31,7 +31,7 @@ "@homarr/docker": "workspace:^0.1.0", "@homarr/form": "workspace:^0.1.0", "@homarr/forms-collection": "workspace:^0.1.0", - "@homarr/gridstack": "^1.12.0", + "@homarr/gridstack": "catalog:", "@homarr/icons": "workspace:^0.1.0", "@homarr/image-proxy": "workspace:^0.1.0", "@homarr/integrations": "workspace:^0.1.0", @@ -44,65 +44,67 @@ "@homarr/server-settings": "workspace:^0.1.0", "@homarr/settings": "workspace:^0.1.0", "@homarr/spotlight": "workspace:^0.1.0", + "@homarr/tasks": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", + "@homarr/websocket": "workspace:^0.1.0", "@homarr/widgets": "workspace:^0.1.0", - "@mantine/colors-generator": "^8.3.12", - "@mantine/core": "^8.3.12", - "@mantine/dropzone": "^8.3.12", - "@mantine/hooks": "^8.3.12", - "@mantine/modals": "^8.3.12", - "@mantine/tiptap": "^8.3.12", - "@million/lint": "1.0.14", - "@tabler/icons-react": "^3.36.1", - "@tanstack/react-query": "^5.90.16", - "@tanstack/react-query-devtools": "^5.91.2", - "@tanstack/react-query-next-experimental": "^5.91.0", - "@trpc/client": "^11.8.1", - "@trpc/next": "^11.8.1", - "@trpc/react-query": "^11.8.1", - "@trpc/server": "^11.8.1", - "@xterm/addon-canvas": "^0.7.0", - "@xterm/addon-fit": "0.11.0", - "@xterm/xterm": "^6.0.0", - "babel-plugin-react-compiler": "^1.0.0", - "chroma-js": "^3.2.0", - "clsx": "^2.1.1", - "dayjs": "^1.11.19", - "dotenv": "^17.2.3", - "flag-icons": "^7.5.0", - "glob": "^13.0.0", - "isomorphic-dompurify": "^2.35.0", - "jotai": "^2.16.1", - "mantine-react-table": "2.0.0-beta.9", - "next": "16.1.1", - "postcss-preset-mantine": "^1.18.0", - "prismjs": "^1.30.0", - "react": "19.2.3", - "react-dom": "19.2.3", - "react-error-boundary": "^6.0.3", - "react-simple-code-editor": "^0.14.1", - "sass": "^1.97.2", - "superjson": "2.2.6", - "swagger-ui-react": "^5.31.0", - "use-deep-compare-effect": "^1.8.1", - "zod": "^4.2.1" + "@mantine/colors-generator": "catalog:", + "@mantine/core": "catalog:", + "@mantine/dropzone": "catalog:", + "@mantine/hooks": "catalog:", + "@mantine/modals": "catalog:", + "@mantine/tiptap": "catalog:", + "@tabler/icons-react": "catalog:", + "@tanstack/react-query": "catalog:", + "@tanstack/react-query-devtools": "catalog:", + "@tanstack/react-query-next-experimental": "catalog:", + "@trpc/client": "catalog:", + "@trpc/next": "catalog:", + "@trpc/react-query": "catalog:", + "@trpc/server": "catalog:", + "@xterm/addon-canvas": "catalog:", + "@xterm/addon-fit": "catalog:", + "@xterm/xterm": "catalog:", + "babel-plugin-react-compiler": "catalog:", + "chroma-js": "catalog:", + "clsx": "catalog:", + "dayjs": "catalog:", + "dotenv": "catalog:", + "flag-icons": "catalog:", + "glob": "catalog:", + "isomorphic-dompurify": "catalog:", + "jotai": "catalog:", + "mantine-react-table": "catalog:", + "next": "catalog:", + "postcss-preset-mantine": "catalog:", + "prismjs": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "react-error-boundary": "catalog:", + "react-simple-code-editor": "catalog:", + "sass": "catalog:", + "superjson": "catalog:", + "swagger-ui-react": "catalog:", + "use-deep-compare-effect": "catalog:", + "yaml": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/chroma-js": "3.1.2", - "@types/node": "^24.10.7", - "@types/prismjs": "^1.26.5", - "@types/react": "19.2.8", - "@types/react-dom": "19.2.3", - "@types/swagger-ui-react": "^5.18.0", - "concurrently": "^9.2.1", - "eslint": "^9.39.2", - "node-loader": "^2.1.0", - "prettier": "^3.7.4", - "typescript": "^5.9.3" + "@types/chroma-js": "catalog:", + "@types/node": "catalog:", + "@types/prismjs": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "@types/swagger-ui-react": "catalog:", + "concurrently": "catalog:", + "eslint": "catalog:", + "node-loader": "catalog:", + "prettier": "catalog:", + "typescript": "catalog:" } } diff --git a/apps/nextjs/public/sw.js b/apps/nextjs/public/sw.js new file mode 100644 index 000000000..dbb12ebbb --- /dev/null +++ b/apps/nextjs/public/sw.js @@ -0,0 +1,7 @@ +self.addEventListener("install", () => { + self.skipWaiting(); +}); + +self.addEventListener("activate", (event) => { + event.waitUntil(self.clients.claim()); +}); diff --git a/apps/nextjs/src/app/[locale]/_client-providers/mantine.tsx b/apps/nextjs/src/app/[locale]/_client-providers/mantine.tsx index e24c08b98..d81b828f3 100644 --- a/apps/nextjs/src/app/[locale]/_client-providers/mantine.tsx +++ b/apps/nextjs/src/app/[locale]/_client-providers/mantine.tsx @@ -8,13 +8,12 @@ import dayjs from "dayjs"; import { clientApi } from "@homarr/api/client"; import { useSession } from "@homarr/auth/client"; import { parseCookies, setClientCookie } from "@homarr/common"; -import type { ColorScheme } from "@homarr/definitions"; import { colorSchemeCookieKey } from "@homarr/definitions"; export const CustomMantineProvider = ({ children, defaultColorScheme, -}: PropsWithChildren<{ defaultColorScheme: ColorScheme }>) => { +}: PropsWithChildren<{ defaultColorScheme: MantineColorScheme }>) => { const manager = useColorSchemeManager(); return ( @@ -35,7 +34,7 @@ export const CustomMantineProvider = ({ export function useColorSchemeManager(): MantineColorSchemeManager { const { data: session } = useSession(); - const updateCookieValue = (value: Exclude) => { + const updateCookieValue = (value: MantineColorScheme) => { setClientCookie(colorSchemeCookieKey, value, { expires: dayjs().add(1, "year").toDate(), path: "/" }); }; @@ -60,7 +59,6 @@ export function useColorSchemeManager(): MantineColorSchemeManager { }, set: (value) => { - if (value === "auto") return; try { if (session) { mutateColorScheme({ colorScheme: value }); diff --git a/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx b/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx index 411055756..71d249cf5 100644 --- a/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx +++ b/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx @@ -13,6 +13,7 @@ import type { useForm } from "@homarr/form"; import { useZodForm } from "@homarr/form"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useScopedI18n } from "@homarr/translation/client"; +import { sanitizeRedirectionUrl } from "@homarr/validation/redirection-url"; import { userSignInSchema } from "@homarr/validation/user"; type Provider = "credentials" | "ldap" | "oidc"; @@ -70,7 +71,7 @@ export const LoginForm = ({ providers, oidcClientName, isOidcAutoLoginEnabled, c // Redirect to the callback URL if the response is defined and comes from a credentials provider (ldap or credentials). oidc is redirected automatically. await revalidatePathActionAsync("/"); - router.push(callbackUrl); + router.push(sanitizeRedirectionUrl(callbackUrl)); }, [t, router, callbackUrl], ); diff --git a/apps/nextjs/src/app/[locale]/auth/login/page.tsx b/apps/nextjs/src/app/[locale]/auth/login/page.tsx index c9d913c08..22adf3b87 100644 --- a/apps/nextjs/src/app/[locale]/auth/login/page.tsx +++ b/apps/nextjs/src/app/[locale]/auth/login/page.tsx @@ -4,6 +4,7 @@ import { Card, Center, Stack, Text, Title } from "@mantine/core"; import { env } from "@homarr/auth/env"; import { auth } from "@homarr/auth/next"; import { getScopedI18n } from "@homarr/translation/server"; +import { sanitizeRedirectionUrl } from "@homarr/validation/redirection-url"; import { HomarrLogoWithTitle } from "~/components/layout/logo/homarr-logo"; import { LoginForm } from "./_login-form"; @@ -19,7 +20,7 @@ export default async function Login(props: LoginProps) { const session = await auth(); if (session) { - redirect(searchParams.callbackUrl ?? "/"); + redirect(sanitizeRedirectionUrl(searchParams.callbackUrl)); } const t = await getScopedI18n("user.page.login"); diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx index ce6866ef3..f1185430c 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx @@ -264,6 +264,5 @@ const usePreventLeaveWithDirty = (isDirty: boolean) => { window.removeEventListener("popstate", handlePopState); window.removeEventListener("beforeunload", handleBeforeUnload); }; - // eslint-disable-next-line react-hooks/exhaustive-deps }, [isDirty]); }; diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_ready-context.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_ready-context.tsx index dcd07a311..606a296ea 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_ready-context.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_ready-context.tsx @@ -27,7 +27,6 @@ export const BoardReadyProvider = ({ children }: PropsWithChildren) => { useEffect(() => { setReadySections((previous) => previous.filter((id) => board.sections.some((section) => section.id === id))); - // eslint-disable-next-line react-hooks/exhaustive-deps }, [board.sections.length, setReadySections]); const markAsReady = useCallback((id: string) => { diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx index 51be38157..0bfc79173 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx @@ -2,7 +2,7 @@ import { useEffect, useRef } from "react"; import { Button, Grid, Group, Loader, Stack, TextInput } from "@mantine/core"; -import { useDebouncedValue, useDocumentTitle, useFavicon } from "@mantine/hooks"; +import { useDebouncedValue, useDocumentTitle } from "@mantine/hooks"; import { useUpdateBoard } from "@homarr/boards/updater"; import { useZodForm } from "@homarr/form"; @@ -10,6 +10,7 @@ import { IconPicker } from "@homarr/forms-collection"; import { useI18n } from "@homarr/translation/client"; import { boardSavePartialSettingsSchema } from "@homarr/validation/board"; +import { homarrLogoPath } from "~/components/layout/logo/homarr-logo"; import { createMetaTitle } from "~/metadata"; import type { Board } from "../../_types"; import { useSavePartialSettingsMutation } from "./_shared"; @@ -53,7 +54,6 @@ export const GeneralSettingsContent = ({ board }: Props) => { ); useLogoPreview(form.values.logoImageUrl); - useFaviconPreview(form.values.faviconImageUrl); const metaTitleStatus = useMetaTitlePreview(form.values.metaTitle); // Cleanup for not applied changes of the page title and logo image URL @@ -75,6 +75,7 @@ export const GeneralSettingsContent = ({ board }: Props) => { pageTitle: values.pageTitle, logoImageUrl: values.logoImageUrl, }; + updateFavicon(values.faviconImageUrl ?? homarrLogoPath); savePartialSettings({ id: board.id, ...values, @@ -146,7 +147,13 @@ const useMetaTitlePreview = (title: string | null) => { }; }; -const useFaviconPreview = (url: string | null) => { - const [faviconDebounced] = useDebouncedValue(url ?? "", 500); - useFavicon(faviconDebounced); +// Previously we used the useFavicon hook from Mantine +// However if the user tried to click on a link to a different page +// it caused an error "Cannot read properties of null (reading 'removeChild')" +// Probably because the head element was null (https://github.com/mantinedev/mantine/blob/b90d9b81031f45f5d15e75f25138ed6477f65bce/packages/%40mantine/hooks/src/use-favicon/use-favicon.ts#L21) +// See https://github.com/homarr-labs/homarr/issues/4905 +const updateFavicon = (url: string) => { + const link: HTMLLinkElement | null = document.querySelector('link[rel="icon"]'); + if (!link) return; + link.href = url; }; diff --git a/apps/nextjs/src/app/[locale]/init/_steps/settings/init-settings.tsx b/apps/nextjs/src/app/[locale]/init/_steps/settings/init-settings.tsx index 08e3e0c2d..3badc014e 100644 --- a/apps/nextjs/src/app/[locale]/init/_steps/settings/init-settings.tsx +++ b/apps/nextjs/src/app/[locale]/init/_steps/settings/init-settings.tsx @@ -1,6 +1,5 @@ "use client"; -import { startTransition } from "react"; import { Button, Card, Group, Stack, Switch, Text } from "@mantine/core"; import { IconArrowRight } from "@tabler/icons-react"; import type { z } from "zod/v4"; @@ -24,16 +23,6 @@ export const InitSettings = () => { }); const form = useZodForm(settingsInitSchema, { initialValues: defaultServerSettings }); - form.watch("analytics.enableGeneral", ({ value }) => { - if (!value) { - startTransition(() => { - form.setFieldValue("analytics.enableWidgetData", false); - form.setFieldValue("analytics.enableIntegrationData", false); - form.setFieldValue("analytics.enableUserData", false); - }); - } - }); - const handleSubmitAsync = async (values: z.infer) => { await mutateAsync(values); }; @@ -47,24 +36,6 @@ export const InitSettings = () => { - - - - - - diff --git a/apps/nextjs/src/app/[locale]/layout.tsx b/apps/nextjs/src/app/[locale]/layout.tsx index 708699bf8..5449e1252 100644 --- a/apps/nextjs/src/app/[locale]/layout.tsx +++ b/apps/nextjs/src/app/[locale]/layout.tsx @@ -4,6 +4,7 @@ import { Inter } from "next/font/google"; import "@homarr/notifications/styles.css"; import "@homarr/spotlight/styles.css"; import "@homarr/ui/styles.css"; +import "~/styles/color-scheme.scss"; import "~/styles/scroll-area.scss"; import { notFound } from "next/navigation"; @@ -25,6 +26,7 @@ import { isLocaleRTL, isLocaleSupported } from "@homarr/translation"; import { Analytics } from "~/components/layout/analytics"; import { CrowdinLiveTranslation } from "~/components/layout/crowdin-live-translation"; import { SearchEngineOptimization } from "~/components/layout/search-engine-optimization"; +import { ServiceWorkerRegistration } from "~/components/layout/service-worker-registration"; import { getCurrentColorSchemeAsync } from "~/theme/color-scheme"; import { DayJsLoader } from "./_client-providers/dayjs-loader"; import { JotaiProvider } from "./_client-providers/jotai"; @@ -129,7 +131,7 @@ export default async function Layout(props: { dir={direction} data-mantine-color-scheme={colorScheme} style={{ - backgroundColor: colorScheme === "dark" ? "#242424" : "#fff", + backgroundColor: colorScheme === "dark" ? "#242424" : colorScheme === "auto" ? undefined : "#fff", }} suppressHydrationWarning > @@ -141,6 +143,7 @@ export default async function Layout(props: { + {props.children} diff --git a/apps/nextjs/src/app/[locale]/manage/about/about.module.css b/apps/nextjs/src/app/[locale]/manage/about/about.module.css index c1d362c48..457d36526 100644 --- a/apps/nextjs/src/app/[locale]/manage/about/about.module.css +++ b/apps/nextjs/src/app/[locale]/manage/about/about.module.css @@ -1,3 +1,7 @@ .contributorCard { background-color: light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-5)); } + +.dependencyCard:hover { + background-color: light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-5)); +} diff --git a/apps/nextjs/src/app/[locale]/manage/about/page.tsx b/apps/nextjs/src/app/[locale]/manage/about/page.tsx index 8e336449d..0be4d5687 100644 --- a/apps/nextjs/src/app/[locale]/manage/about/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/about/page.tsx @@ -12,8 +12,7 @@ import { Flex, Group, Kbd, - List, - ListItem, + SimpleGrid, Stack, Table, TableTbody, @@ -22,9 +21,18 @@ import { TableThead, TableTr, Text, + ThemeIcon, Title, + UnstyledButton, } from "@mantine/core"; -import { IconKeyboard, IconLanguage, IconLibrary, IconUsers } from "@tabler/icons-react"; +import { + IconKeyboard, + IconLanguage, + IconLibrary, + IconMoneybagHeart, + IconPackage, + IconUsers, +} from "@tabler/icons-react"; import { capitalize, objectEntries } from "@homarr/common"; import { hotkeys } from "@homarr/definitions"; @@ -33,8 +41,10 @@ import { getScopedI18n } from "@homarr/translation/server"; import { homarrLogoPath } from "~/components/layout/logo/homarr-logo"; import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb"; import { createMetaTitle } from "~/metadata"; -import { getPackageAttributesAsync } from "~/versions/package-reader"; +import type { PackageJsonDependencies } from "~/versions/package-reader"; +import { getPackageVersion } from "~/versions/package-reader"; import type githubContributorsJson from "../../../../../../../static-data/contributors.json"; +import type openCollectiveContributorsJson from "../../../../../../../static-data/opencollective-contributors.json"; import type crowdinContributorsJson from "../../../../../../../static-data/translators.json"; import classes from "./about.module.css"; @@ -57,7 +67,10 @@ const getHostAsync = async () => { export default async function AboutPage() { const baseServerUrl = `http://${await getHostAsync()}`; const t = await getScopedI18n("management.page.about"); - const attributes = await getPackageAttributesAsync(); + const version = getPackageVersion(); + const dependencies = (await fetch(`${baseServerUrl}/api/about/dependencies`).then((res) => + res.json(), + )) as PackageJsonDependencies; const githubContributors = (await fetch(`${baseServerUrl}/api/about/contributors/github`).then((res) => res.json(), )) as typeof githubContributorsJson; @@ -66,6 +79,10 @@ export default async function AboutPage() { res.json(), )) as typeof crowdinContributorsJson; + const openCollectiveContributors = (await fetch(`${baseServerUrl}/api/about/contributors/opencollective`).then( + (res) => res.json(), + )) as typeof openCollectiveContributorsJson; + return (

@@ -76,7 +93,7 @@ export default async function AboutPage() { Homarr - {t("version", { version: attributes.version })} + {t("version", { version })} @@ -131,31 +148,72 @@ export default async function AboutPage() { + + }> + + {t("accordion.sponsors.title")} + + {t("accordion.sponsors.subtitle", { + count: String(openCollectiveContributors.length), + })} + + + + + + {openCollectiveContributors.map((sponsor) => ( + + ))} + + + }> {t("accordion.libraries.title")} {t("accordion.libraries.subtitle", { - count: String(Object.keys(attributes.dependencies).length), + count: String(Object.keys(dependencies).length), })} - - {Object.entries(attributes.dependencies) + + {Object.entries(dependencies) + .filter(([, value]) => !value.includes("workspace:")) .sort(([key1], [key2]) => key1.localeCompare(key2)) - .map(([key, value]) => ( - - {value.includes("workspace:") ? ( - {key} - ) : ( - {key} - )} - + .map(([name, version]) => ( + + + + + + + + + + {name} + + + v{version.replace("^", "").replace("~", "")} + + + + + ))} - + diff --git a/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx b/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx index 21215e6d0..568ab93a7 100644 --- a/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx +++ b/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx @@ -24,15 +24,6 @@ export const AnalyticsSettings = ({ initialData }: AnalyticsSettingsProps) => { return; } - if ( - !updatedValues.enableGeneral && - (updatedValues.enableWidgetData || updatedValues.enableIntegrationData || updatedValues.enableUserData) - ) { - updatedValues.enableIntegrationData = false; - updatedValues.enableUserData = false; - updatedValues.enableWidgetData = false; - } - void mutateAsync({ settingsKey: "analytics", value: updatedValues, @@ -54,30 +45,6 @@ export const AnalyticsSettings = ({ initialData }: AnalyticsSettingsProps) => { - - - diff --git a/apps/nextjs/src/app/[locale]/manage/settings/_components/appearance-settings-form.tsx b/apps/nextjs/src/app/[locale]/manage/settings/_components/appearance-settings-form.tsx index 2ca25ac4d..900caf0e4 100644 --- a/apps/nextjs/src/app/[locale]/manage/settings/_components/appearance-settings-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/settings/_components/appearance-settings-form.tsx @@ -1,7 +1,7 @@ "use client"; import { Group, Text } from "@mantine/core"; -import { IconMoon, IconSun } from "@tabler/icons-react"; +import { IconDeviceDesktop, IconMoon, IconSun } from "@tabler/icons-react"; import type { ColorScheme } from "@homarr/definitions"; import { colorSchemes } from "@homarr/definitions"; @@ -34,6 +34,7 @@ export const AppearanceSettingsForm = ({ defaultValues }: { defaultValues: Serve }; const appearanceIcons = { + auto: IconDeviceDesktop, light: IconSun, dark: IconMoon, }; diff --git a/apps/nextjs/src/app/[locale]/manage/tools/api/page.tsx b/apps/nextjs/src/app/[locale]/manage/tools/api/page.tsx index adfa1648a..f3fe3b825 100644 --- a/apps/nextjs/src/app/[locale]/manage/tools/api/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/tools/api/page.tsx @@ -2,7 +2,7 @@ import { headers } from "next/headers"; import { notFound } from "next/navigation"; import { Stack, Tabs, TabsList, TabsPanel, TabsTab } from "@mantine/core"; -import { openApiDocument } from "@homarr/api"; +import { openApiDocument } from "@homarr/api/open-api"; import { api } from "@homarr/api/server"; import { auth } from "@homarr/auth/next"; import { extractBaseUrlFromHeaders } from "@homarr/common"; @@ -14,7 +14,7 @@ import { ApiKeysManagement } from "./components/api-keys"; export async function generateMetadata() { const session = await auth(); - if (!session?.user || !session.user.permissions.includes("admin")) { + if (!session?.user.permissions.includes("admin")) { return {}; } @@ -27,7 +27,7 @@ export async function generateMetadata() { export default async function ApiPage() { const session = await auth(); - if (!session?.user || !session.user.permissions.includes("admin")) { + if (!session?.user.permissions.includes("admin")) { notFound(); } const document = openApiDocument(extractBaseUrlFromHeaders(await headers())); diff --git a/apps/nextjs/src/app/[locale]/manage/tools/docker/docker-table.tsx b/apps/nextjs/src/app/[locale]/manage/tools/docker/docker-table.tsx index 6d2c9fb04..f6aa2fddc 100644 --- a/apps/nextjs/src/app/[locale]/manage/tools/docker/docker-table.tsx +++ b/apps/nextjs/src/app/[locale]/manage/tools/docker/docker-table.tsx @@ -65,6 +65,18 @@ const createColumns = (t: TranslationFunction): MRT_ColumnDef[] return ; }, }, + { + accessorKey: "host", + header: t("docker.field.host.label"), + size: 140, + Cell({ row }) { + return ( + + {row.original.host} + + ); + }, + }, { accessorKey: "image", header: t("docker.field.containerImage.label"), @@ -83,6 +95,7 @@ const createColumns = (t: TranslationFunction): MRT_ColumnDef[] accessorKey: "ports", header: t("docker.field.ports.label"), Cell({ cell }) { + if (!cell.row.original.ports) return null; if (!cell.row.original.ports.length) return null; return ( port.PrivatePort.toString())} /> diff --git a/apps/nextjs/src/app/[locale]/manage/tools/logs/page.tsx b/apps/nextjs/src/app/[locale]/manage/tools/logs/page.tsx index d672947e4..b6901934c 100644 --- a/apps/nextjs/src/app/[locale]/manage/tools/logs/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/tools/logs/page.tsx @@ -18,7 +18,7 @@ import { LogContextProvider } from "./log-context"; export async function generateMetadata() { const session = await auth(); - if (!session?.user || !session.user.permissions.includes("admin")) { + if (!session?.user.permissions.includes("admin")) { return {}; } const t = await getScopedI18n("management"); @@ -30,7 +30,7 @@ export async function generateMetadata() { export default async function LogsManagementPage() { const session = await auth(); - if (!session?.user || !session.user.permissions.includes("other-view-logs")) { + if (!session?.user.permissions.includes("other-view-logs")) { notFound(); } diff --git a/apps/nextjs/src/app/[locale]/manage/tools/tasks/_components/tasks-table.tsx b/apps/nextjs/src/app/[locale]/manage/tools/tasks/_components/tasks-table.tsx index ceb27aa81..273f1e9ec 100644 --- a/apps/nextjs/src/app/[locale]/manage/tools/tasks/_components/tasks-table.tsx +++ b/apps/nextjs/src/app/[locale]/manage/tools/tasks/_components/tasks-table.tsx @@ -117,6 +117,8 @@ const createColumns = ( header: tTasks("field.interval.label"), size: 200, Cell({ row }) { + if (row.original.preventCustomInterval) return null; + const handleIntervalChange = (newCron: string | null) => { if (!newCron || newCron === row.original.cron) return; diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_change-search-preferences.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_change-search-preferences.tsx index 5bf23a5fb..afae60dc1 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_change-search-preferences.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_change-search-preferences.tsx @@ -26,6 +26,7 @@ export const ChangeSearchPreferencesForm = ({ user, searchEnginesData }: ChangeS form.setInitialValues({ defaultSearchEngineId: variables.defaultSearchEngineId, openInNewTab: variables.openInNewTab, + ddgBangsEnabled: variables.ddgBangsEnabled, }); showSuccessNotification({ message: t("user.action.changeSearchPreferences.notification.success.message"), @@ -41,6 +42,7 @@ export const ChangeSearchPreferencesForm = ({ user, searchEnginesData }: ChangeS initialValues: { defaultSearchEngineId: user.defaultSearchEngineId, openInNewTab: user.openSearchInNewTab, + ddgBangsEnabled: user.ddgBangs, }, }); @@ -64,6 +66,10 @@ export const ChangeSearchPreferencesForm = ({ user, searchEnginesData }: ChangeS label={t("user.field.openSearchInNewTab.label")} {...form.getInputProps("openInNewTab", { type: "checkbox" })} /> + @@ -105,3 +112,48 @@ const WidgetItem = ({ ); }; + +interface SupportedIntegrationsProps { + integrations: IntegrationKind[]; + mt: string; +} + +const SupportedIntegrations = ({ integrations, mt }: SupportedIntegrationsProps) => { + if (integrations.length === 0) { + return null; + } + + // When there are 8 or more integrations, we show 6 and a "+X" avatar. Otherwise, we show all integrations. + const countToShow = integrations.length >= 8 ? 6 : 7; + const moreCount = integrations.length - countToShow; + + return ( +
+ + + {integrations.slice(0, countToShow).map((integration) => ( + + + + ))} + {moreCount > 0 && ( + + {integrations.slice(countToShow).map((integration) => ( +
{getIntegrationName(integration)}
+ ))} + + } + > + + +{moreCount} + +
+ )} +
+
+
+ ); +}; diff --git a/apps/nextjs/src/components/board/sections/category/category-actions.ts b/apps/nextjs/src/components/board/sections/category/category-actions.ts index 8f6009494..1d7d24e24 100644 --- a/apps/nextjs/src/components/board/sections/category/category-actions.ts +++ b/apps/nextjs/src/components/board/sections/category/category-actions.ts @@ -58,6 +58,7 @@ export const useCategoryActions = () => { ...section, yOffset: section.yOffset + 2, })), + ...previous.sections.filter((section) => section.kind !== "category" && section.kind !== "empty"), ] satisfies Section[], })); }, diff --git a/apps/nextjs/src/components/board/sections/gridstack/use-gridstack.ts b/apps/nextjs/src/components/board/sections/gridstack/use-gridstack.ts index 4f2fef067..eda89a8e6 100644 --- a/apps/nextjs/src/components/board/sections/gridstack/use-gridstack.ts +++ b/apps/nextjs/src/components/board/sections/gridstack/use-gridstack.ts @@ -206,7 +206,6 @@ export const useGridstack = (section: Omit, itemIds: string[]) } // Only run this effect when the section items change - // eslint-disable-next-line react-hooks/exhaustive-deps }, [itemIds.length, columnCount]); /** diff --git a/apps/nextjs/src/components/color-scheme/color-scheme-combobox.tsx b/apps/nextjs/src/components/color-scheme/color-scheme-combobox.tsx new file mode 100644 index 000000000..207dcb913 --- /dev/null +++ b/apps/nextjs/src/components/color-scheme/color-scheme-combobox.tsx @@ -0,0 +1,94 @@ +"use client"; + +import React from "react"; +import { Combobox, Group, InputBase, Text, useCombobox } from "@mantine/core"; +import { IconCheck, IconDeviceDesktop, IconMoon, IconSun } from "@tabler/icons-react"; + +import type { ColorScheme } from "@homarr/definitions"; +import { colorSchemes } from "@homarr/definitions"; +import { useScopedI18n } from "@homarr/translation/client"; + +const schemeIcons: Record = { + auto: IconDeviceDesktop, + light: IconSun, + dark: IconMoon, +}; + +interface ColorSchemeComboboxProps { + value: ColorScheme; + onChange: (value: ColorScheme) => void; + width?: string; +} + +export const ColorSchemeCombobox = ({ value, onChange, width }: ColorSchemeComboboxProps) => { + const tOptions = useScopedI18n("common.colorScheme.options"); + + const combobox = useCombobox({ + onDropdownClose: () => combobox.resetSelectedOption(), + }); + + const handleOnOptionSubmit = React.useCallback( + (val: string) => { + if (!val) return; + onChange(val as ColorScheme); + combobox.closeDropdown(); + }, + [onChange, combobox], + ); + + const handleOnClick = React.useCallback(() => { + combobox.toggleDropdown(); + }, [combobox]); + + return ( + + + } + rightSectionPointerEvents="none" + onClick={handleOnClick} + variant="filled" + w={width} + > + + + + + + {colorSchemes.map((scheme) => ( + + + + ))} + + + + ); +}; + +const OptionItem = ({ + scheme, + currentScheme, + tOptions, + showCheck, +}: { + scheme: ColorScheme; + currentScheme: ColorScheme; + tOptions: (key: ColorScheme) => string; + showCheck?: boolean; +}) => { + const Icon = schemeIcons[scheme]; + + return ( + + + + {tOptions(scheme)} + + {showCheck && scheme === currentScheme && } + + ); +}; diff --git a/apps/nextjs/src/components/color-scheme/current-color-scheme-combobox.tsx b/apps/nextjs/src/components/color-scheme/current-color-scheme-combobox.tsx index b3534c3aa..232df979d 100644 --- a/apps/nextjs/src/components/color-scheme/current-color-scheme-combobox.tsx +++ b/apps/nextjs/src/components/color-scheme/current-color-scheme-combobox.tsx @@ -1,49 +1,17 @@ "use client"; -import { Group, Text, useMantineColorScheme } from "@mantine/core"; -import { IconMoon, IconSun } from "@tabler/icons-react"; +import { useMantineColorScheme } from "@mantine/core"; import type { ColorScheme } from "@homarr/definitions"; -import { colorSchemes } from "@homarr/definitions"; -import { useScopedI18n } from "@homarr/translation/client"; -import { SelectWithCustomItems } from "@homarr/ui"; + +import { ColorSchemeCombobox } from "./color-scheme-combobox"; interface CurrentColorSchemeComboboxProps { w?: string; } export const CurrentColorSchemeCombobox = ({ w }: CurrentColorSchemeComboboxProps) => { - const tOptions = useScopedI18n("common.colorScheme.options"); const { colorScheme, setColorScheme } = useMantineColorScheme(); - return ( - setColorScheme((value as ColorScheme | null) ?? "light")} - data={colorSchemes.map((scheme) => ({ - value: scheme, - label: tOptions(scheme), - }))} - SelectOption={ColorSchemeCustomOption} - w={w} - /> - ); -}; - -const appearanceIcons = { - light: IconSun, - dark: IconMoon, -}; - -const ColorSchemeCustomOption = ({ value, label }: { value: ColorScheme; label: string }) => { - const Icon = appearanceIcons[value]; - - return ( - - - - {label} - - - ); + return ; }; diff --git a/apps/nextjs/src/components/layout/service-worker-registration.tsx b/apps/nextjs/src/components/layout/service-worker-registration.tsx new file mode 100644 index 000000000..ef7fd1de1 --- /dev/null +++ b/apps/nextjs/src/components/layout/service-worker-registration.tsx @@ -0,0 +1,14 @@ +"use client"; + +import { useEffect } from "react"; + +export const ServiceWorkerRegistration = () => { + useEffect(() => { + if (!("serviceWorker" in navigator)) return; + navigator.serviceWorker.register("/sw.js", { scope: "/", updateViaCache: "none" }).catch((error) => { + console.error("Service worker registration failed", error); + }); + }, []); + + return null; +}; diff --git a/apps/nextjs/src/components/user-avatar-menu.tsx b/apps/nextjs/src/components/user-avatar-menu.tsx index 4a45a14d7..454ecca78 100644 --- a/apps/nextjs/src/components/user-avatar-menu.tsx +++ b/apps/nextjs/src/components/user-avatar-menu.tsx @@ -5,16 +5,7 @@ import { useCallback, useEffect } from "react"; import { useRouter } from "next/navigation"; import { Center, Menu, Stack, Text, useMantineColorScheme } from "@mantine/core"; import { useHotkeys, useTimeout } from "@mantine/hooks"; -import { - IconCheck, - IconHome, - IconLogin, - IconLogout, - IconMoon, - IconSettings, - IconSun, - IconTool, -} from "@tabler/icons-react"; +import { IconCheck, IconHome, IconLogin, IconLogout, IconSettings, IconTool } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { signOut, useSession } from "@homarr/auth/client"; @@ -24,6 +15,7 @@ import { useScopedI18n } from "@homarr/translation/client"; import { Link } from "@homarr/ui"; import { useAuthContext } from "~/app/[locale]/_client-providers/session"; +import { CurrentColorSchemeCombobox } from "./color-scheme/current-color-scheme-combobox"; import { CurrentLanguageCombobox } from "./language/current-language-combobox"; import { AvailableUpdatesMenuItem } from "./layout/header/update"; @@ -34,13 +26,9 @@ interface UserAvatarMenuProps { export const UserAvatarMenu = ({ children, availableUpdatesPromise }: UserAvatarMenuProps) => { const t = useScopedI18n("common.userAvatar.menu"); - const { colorScheme, toggleColorScheme } = useMantineColorScheme(); + const { toggleColorScheme } = useMantineColorScheme(); useHotkeys([[hotkeys.toggleColorScheme, toggleColorScheme]]); - const ColorSchemeIcon = colorScheme === "dark" ? IconSun : IconMoon; - - const colorSchemeText = colorScheme === "dark" ? t("switchToLightMode") : t("switchToDarkMode"); - const session = useSession(); const router = useRouter(); @@ -67,14 +55,14 @@ export const UserAvatarMenu = ({ children, availableUpdatesPromise }: UserAvatar - }> - {colorSchemeText} - }> {t("homeBoard")} + + + diff --git a/apps/nextjs/src/instrumentation.ts b/apps/nextjs/src/instrumentation.ts new file mode 100644 index 000000000..19a2865b7 --- /dev/null +++ b/apps/nextjs/src/instrumentation.ts @@ -0,0 +1,6 @@ +export async function register() { + if (process.env.NEXT_RUNTIME === "nodejs") { + await import("@homarr/tasks"); + await import("@homarr/websocket"); + } +} diff --git a/apps/nextjs/src/styles/color-scheme.scss b/apps/nextjs/src/styles/color-scheme.scss new file mode 100644 index 000000000..ecfb4c780 --- /dev/null +++ b/apps/nextjs/src/styles/color-scheme.scss @@ -0,0 +1,12 @@ +// Prevent flash of white background when color scheme is "auto" and OS prefers dark. +// CSS media queries are evaluated synchronously during the browser's initial paint, +// before any JavaScript executes, so this eliminates the white→dark flicker. +html[data-mantine-color-scheme="auto"] { + background-color: #fff; +} + +@media (prefers-color-scheme: dark) { + html[data-mantine-color-scheme="auto"] { + background-color: #242424; + } +} diff --git a/apps/nextjs/src/versions/package-reader.ts b/apps/nextjs/src/versions/package-reader.ts index a7da5b029..d62c97b20 100644 --- a/apps/nextjs/src/versions/package-reader.ts +++ b/apps/nextjs/src/versions/package-reader.ts @@ -1,12 +1,16 @@ import fsPromises from "fs/promises"; +import path from "path"; +import { fileURLToPath } from "url"; import { glob } from "glob"; +import { parse as parseYaml } from "yaml"; +import z from "zod"; import packageJson from "../../../../package.json"; -const getPackageVersion = () => packageJson.version; -const getDependenciesAsync = async (): Promise => { +export const getPackageVersion = () => packageJson.version; +export const getDependenciesAsync = async (): Promise => { const pathNames = await glob("**/package.json", { - ignore: "node_modules/**", + ignore: "**/node_modules/**", cwd: "../../", absolute: true, }); @@ -15,21 +19,37 @@ const getDependenciesAsync = async (): Promise => { .map((packageContent) => (JSON.parse(packageContent) as PackageJson).dependencies) .filter((dependencies) => dependencies !== undefined); + const catalog = await parseDependencyCatalogsAsync(); + let dependencies = {}; for (const dependenciesOfPackage of packageDependencies) { - dependencies = { ...dependencies, ...dependenciesOfPackage }; + const resolvedDependencies = Object.entries(dependenciesOfPackage).map(([name, version]) => { + const catalogVersion = catalog.get(name); + return [name, catalogVersion ?? version] as const; + }); + dependencies = { ...dependencies, ...Object.fromEntries(resolvedDependencies) }; } return dependencies; }; -export const getPackageAttributesAsync = async () => { - return { - version: getPackageVersion(), - dependencies: await getDependenciesAsync(), - }; +type DependencyCatalog = Map; +const parseDependencyCatalogsAsync = async (): Promise => { + const currentDir = path.dirname(fileURLToPath(import.meta.url)); + const workspaceConfigContent = await fsPromises.readFile( + path.join(currentDir, "..", "..", "..", "..", "pnpm-workspace.yaml"), + "utf-8", + ); + const workspaceConfig: unknown = parseYaml(workspaceConfigContent); + const parseResult = workspaceConfigCatalogSchema.parse(workspaceConfig); + + return new Map(Object.entries(parseResult.catalog ?? {})); }; -type PackageJsonDependencies = Record; +const workspaceConfigCatalogSchema = z.object({ + catalog: z.record(z.string(), z.string()).optional(), +}); + +export type PackageJsonDependencies = Record; interface PackageJson { dependencies: PackageJsonDependencies | undefined; } diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 5e78458ef..28e34be63 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -5,12 +5,11 @@ "license": "Apache-2.0", "type": "module", "exports": { - ".": "./src/index.ts" + ".": "./src/main.ts" }, "main": "./src/main.ts", "types": "./src/main.ts", "scripts": { - "build": "esbuild src/main.ts --bundle --platform=node --loader:.scss=text --external:*.node --external:@opentelemetry/api --external:deasync --external:bcrypt --outfile=tasks.cjs", "clean": "rm -rf .turbo node_modules", "dev": "pnpm with-env tsx ./src/main.ts", "format": "prettier --check . --ignore-path ../../.gitignore", @@ -24,7 +23,6 @@ "@homarr/auth": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^", - "@homarr/cron-job-api": "workspace:^0.1.0", "@homarr/cron-jobs": "workspace:^0.1.0", "@homarr/cron-jobs-core": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", @@ -37,22 +35,23 @@ "@homarr/server-settings": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@homarr/widgets": "workspace:^0.1.0", - "dayjs": "^1.11.19", - "dotenv": "^17.2.3", - "fastify": "^5.6.2", - "superjson": "2.2.6", - "undici": "7.18.2" + "croner": "catalog:", + "dayjs": "catalog:", + "dotenv": "catalog:", + "fastify": "catalog:", + "superjson": "catalog:", + "undici": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node": "^24.10.7", - "dotenv-cli": "^11.0.0", - "esbuild": "^0.27.2", - "eslint": "^9.39.2", - "prettier": "^3.7.4", - "tsx": "4.20.4", - "typescript": "^5.9.3" + "@types/node": "catalog:", + "dotenv-cli": "catalog:", + "esbuild": "catalog:", + "eslint": "catalog:", + "prettier": "catalog:", + "tsx": "catalog:", + "typescript": "catalog:" } } diff --git a/apps/tasks/src/main.ts b/apps/tasks/src/main.ts index 4c60f1646..55416e689 100644 --- a/apps/tasks/src/main.ts +++ b/apps/tasks/src/main.ts @@ -1,52 +1,12 @@ // This import has to be the first import in the file so that the agent is overridden before any other modules are imported. import "./overrides"; -import type { FastifyTRPCPluginOptions } from "@trpc/server/adapters/fastify"; -import { fastifyTRPCPlugin } from "@trpc/server/adapters/fastify"; -import fastify from "fastify"; - -import { createLogger } from "@homarr/core/infrastructure/logs"; -import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; -import type { JobRouter } from "@homarr/cron-job-api"; -import { jobRouter } from "@homarr/cron-job-api"; -import { CRON_JOB_API_KEY_HEADER, CRON_JOB_API_PATH, CRON_JOB_API_PORT } from "@homarr/cron-job-api/constants"; import { jobGroup } from "@homarr/cron-jobs"; -import { db } from "@homarr/db"; -import { JobManager } from "./job-manager"; import { onStartAsync } from "./on-start"; -const logger = createLogger({ module: "tasksMain" }); - -const server = fastify({ - maxParamLength: 5000, -}); -server.register(fastifyTRPCPlugin, { - prefix: CRON_JOB_API_PATH, - trpcOptions: { - router: jobRouter, - createContext: ({ req }) => ({ - manager: new JobManager(db, jobGroup), - apiKey: req.headers[CRON_JOB_API_KEY_HEADER] as string | undefined, - }), - onError({ path, error }) { - logger.error(new ErrorWithMetadata("Error in tasks tRPC handler", { path }, { cause: error })); - }, - } satisfies FastifyTRPCPluginOptions["trpcOptions"], -}); - void (async () => { await onStartAsync(); await jobGroup.initializeAsync(); await jobGroup.startAllAsync(); - - try { - await server.listen({ port: CRON_JOB_API_PORT }); - logger.info("Tasks web server started successfully", { port: CRON_JOB_API_PORT }); - } catch (err) { - logger.error( - new ErrorWithMetadata("Failed to start tasks web server", { port: CRON_JOB_API_PORT }, { cause: err }), - ); - process.exit(1); - } })(); diff --git a/apps/tasks/tsconfig.json b/apps/tasks/tsconfig.json index 51e14eb17..a7d26c2c3 100644 --- a/apps/tasks/tsconfig.json +++ b/apps/tasks/tsconfig.json @@ -9,5 +9,5 @@ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" }, "include": ["."], - "exclude": ["node_modules"] + "exclude": ["node_modules", "*.cjs", "*.css"] } diff --git a/apps/websocket/package.json b/apps/websocket/package.json index 49f41e1b4..c4a9cf9d0 100644 --- a/apps/websocket/package.json +++ b/apps/websocket/package.json @@ -4,10 +4,12 @@ "private": true, "license": "Apache-2.0", "type": "module", + "exports": { + ".": "./src/main.ts" + }, "main": "./src/main.ts", "types": "./src/main.ts", "scripts": { - "build": "esbuild src/main.ts --bundle --platform=node --outfile=wssServer.cjs --external:bcrypt --external:@opentelemetry/api --external:deasync --external:cpu-features --loader:.html=text --loader:.scss=text --loader:.node=text", "clean": "rm -rf .turbo node_modules", "dev": "pnpm with-env tsx ./src/main.ts", "format": "prettier --check . --ignore-path ../../.gitignore", @@ -25,18 +27,18 @@ "@homarr/definitions": "workspace:^0.1.0", "@homarr/redis": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "dotenv": "^17.2.3", - "tsx": "4.20.4", - "ws": "^8.19.0" + "dotenv": "catalog:", + "tsx": "catalog:", + "ws": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/ws": "^8.18.1", - "esbuild": "^0.27.2", - "eslint": "^9.39.2", - "prettier": "^3.7.4", - "typescript": "^5.9.3" + "@types/ws": "catalog:", + "esbuild": "catalog:", + "eslint": "catalog:", + "prettier": "catalog:", + "typescript": "catalog:" } } diff --git a/apps/websocket/tsconfig.json b/apps/websocket/tsconfig.json index 51e14eb17..a7d26c2c3 100644 --- a/apps/websocket/tsconfig.json +++ b/apps/websocket/tsconfig.json @@ -9,5 +9,5 @@ "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" }, "include": ["."], - "exclude": ["node_modules"] + "exclude": ["node_modules", "*.cjs", "*.css"] } diff --git a/deployments/prebuilt-debian/Dockerfile b/deployments/prebuilt-debian/Dockerfile index 414af691c..8ac61693e 100644 --- a/deployments/prebuilt-debian/Dockerfile +++ b/deployments/prebuilt-debian/Dockerfile @@ -1,4 +1,4 @@ -FROM node:24.12.0-trixie AS base +FROM node:24.15.0-trixie AS base WORKDIR /app COPY package.json . COPY pnpm-lock.yaml . diff --git a/deployments/prebuilt-debian/package.json b/deployments/prebuilt-debian/package.json index 6fcca1cbd..d39018275 100644 --- a/deployments/prebuilt-debian/package.json +++ b/deployments/prebuilt-debian/package.json @@ -2,12 +2,12 @@ "name": "homarr-prebuilt-debian", "private": true, "dependencies": { - "better-sqlite3": "^12.5.0" + "better-sqlite3": "^12.10.0" }, - "packageManager": "pnpm@10.28.0", + "packageManager": "pnpm@10.33.4", "engines": { - "node": ">=24.12.0", - "pnpm": ">=10.28.0" + "node": ">=24.15.0", + "pnpm": ">=10.33.4" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/deployments/prebuilt-debian/pnpm-lock.yaml b/deployments/prebuilt-debian/pnpm-lock.yaml index 1868baaa2..0b2a172df 100644 --- a/deployments/prebuilt-debian/pnpm-lock.yaml +++ b/deployments/prebuilt-debian/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: dependencies: better-sqlite3: - specifier: ^12.5.0 - version: 12.5.0 + specifier: ^12.10.0 + version: 12.10.0 packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - better-sqlite3@12.5.0: - resolution: {integrity: sha512-WwCZ/5Diz7rsF29o27o0Gcc1Du+l7Zsv7SYtVPG0X3G/uUI1LqdxrQI7c9Hs2FWpqXXERjW9hp6g3/tH7DlVKg==} - engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} + better-sqlite3@12.10.0: + resolution: {integrity: sha512-CyzaZRQKyHkB2ZInfTTl2nvT33EbDpjkLEbE8/Zck3Ll6O0qqvuGdrJ45HgtH+HykRg88ITY3AdreBGN70aBSQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x || 26.x} bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -93,6 +93,7 @@ packages: prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true pump@3.0.3: @@ -147,7 +148,7 @@ snapshots: base64-js@1.5.1: {} - better-sqlite3@12.5.0: + better-sqlite3@12.10.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.3 diff --git a/docs/README.md b/docs/README.md index 127ef95f8..e7aeef585 100644 --- a/docs/README.md +++ b/docs/README.md @@ -64,6 +64,13 @@ + + Anchor +
+

Anchor

+
+ + Aria2
@@ -78,6 +85,13 @@
+ + Coolify +
+

Coolify

+
+ + Dash.
@@ -90,8 +104,8 @@

Deluge

- - + + Docker Hub
@@ -104,8 +118,8 @@

Emby

- - + + Github
@@ -127,13 +141,20 @@
+ + Glances +
+

Glances

+
+ + Home Assistant

Home
Assistant

- - + + iCal
@@ -141,6 +162,13 @@
+ + Immich +
+

Immich

+
+ + Jellyfin
@@ -153,8 +181,8 @@

Jellyseerr

- - + + Lidarr
@@ -174,8 +202,8 @@

Nextcloud

- - + + NPM
@@ -202,8 +230,8 @@

OpenMediaVault

- - + + OPNsense
@@ -223,8 +251,8 @@

Pi-hole

- - + + Plex
@@ -251,8 +279,8 @@

qBittorrent

- - + + Quay
@@ -272,8 +300,8 @@

Readarr

- - + + SABnzbd
@@ -281,6 +309,27 @@
+ + Search.ch +
+

Search.ch

+
+ + + + Seerr +
+

Seerr

+
+ + + + Slskd +
+

Slskd

+
+ + Sonarr
@@ -288,11 +337,25 @@
+ + Speedtest Tracker +
+

Speedtest
Tracker

+
+ + Tdarr

Tdarr

+ + + + Tracearr +
+

Tracearr

+
@@ -300,8 +363,8 @@

Transmission

- - + + TrueNAS
@@ -309,6 +372,13 @@
+ + Umami +
+

Umami

+
+ + Unifi Controller
diff --git a/e2e/health-checks.spec.ts b/e2e/health-checks.spec.ts index 03d175525..b280fcc56 100644 --- a/e2e/health-checks.spec.ts +++ b/e2e/health-checks.spec.ts @@ -15,7 +15,7 @@ describe("Health checks", () => { // Assert expect(readyResponse.status).toBe(200); expect(liveResponse.status).toBe(200); - }, 20_000); + }, 60_000); test("ready and live should return 200 OK with external redis", async () => { // Arrange @@ -42,5 +42,5 @@ describe("Health checks", () => { liveResponse.status, `Expected live to return OK statusCode=${liveResponse.status} content=${await liveResponse.text()}`, ).toBe(200); - }, 20_000); + }, 60_000); }); diff --git a/e2e/home.spec.ts b/e2e/home.spec.ts index e8550a3eb..2d79d7247 100644 --- a/e2e/home.spec.ts +++ b/e2e/home.spec.ts @@ -12,5 +12,5 @@ describe("Home", () => { // Assert expect(homeResponse.status).toBe(200); - }, 20_000); + }, 60_000); }); diff --git a/e2e/lldap.spec.ts b/e2e/lldap.spec.ts index f9015af55..a7fb2a7ef 100644 --- a/e2e/lldap.spec.ts +++ b/e2e/lldap.spec.ts @@ -1,4 +1,4 @@ -import { chromium } from "playwright"; +import { chromium } from "@playwright/test"; import { GenericContainer } from "testcontainers"; import { describe, expect, test } from "vitest"; diff --git a/e2e/onboarding.spec.ts b/e2e/onboarding.spec.ts index d2731853a..7e709f425 100644 --- a/e2e/onboarding.spec.ts +++ b/e2e/onboarding.spec.ts @@ -1,4 +1,4 @@ -import { chromium } from "playwright"; +import { chromium } from "@playwright/test"; import { describe, test } from "vitest"; import { OnboardingActions } from "./shared/actions/onboarding-actions"; diff --git a/e2e/shared/actions/onboarding-actions.ts b/e2e/shared/actions/onboarding-actions.ts index 182203fcf..6bdb1d2a5 100644 --- a/e2e/shared/actions/onboarding-actions.ts +++ b/e2e/shared/actions/onboarding-actions.ts @@ -1,5 +1,5 @@ import { createId } from "@paralleldrive/cuid2"; -import type { Page } from "playwright"; +import type { Page } from "@playwright/test"; import * as sqliteSchema from "../../../packages/db/schema/sqlite"; import type { SqliteDatabase } from "../e2e-db"; diff --git a/e2e/shared/assertions/onboarding-assertions.ts b/e2e/shared/assertions/onboarding-assertions.ts index a2f9ccb2f..63d18ea7c 100644 --- a/e2e/shared/assertions/onboarding-assertions.ts +++ b/e2e/shared/assertions/onboarding-assertions.ts @@ -1,5 +1,5 @@ +import type { Page } from "@playwright/test"; import { eq } from "drizzle-orm"; -import type { Page } from "playwright"; import { expect } from "vitest"; import * as sqliteSchema from "../../../packages/db/schema/sqlite"; diff --git a/e2e/shared/create-homarr-container.ts b/e2e/shared/create-homarr-container.ts index 7e5bcd5c4..e69562593 100644 --- a/e2e/shared/create-homarr-container.ts +++ b/e2e/shared/create-homarr-container.ts @@ -18,6 +18,11 @@ export const createHomarrContainer = ( .withExposedPorts(7575) .withEnvironment({ ...options.environment, + // We disable external connections due to the following reasons: + // - No icons have to be downloaded (11k) + // - No analytics data is sent + // - It is just faster and makes the tests more reliable (better performance) + NO_EXTERNAL_CONNECTION: true.toString(), SECRET_ENCRYPTION_KEY: "0".repeat(64), }) .withBindMounts( diff --git a/package.json b/package.json index 94eadbacb..e2be5ba4d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homarr", - "version": "1.50.0", + "version": "1.61.1-beta.1", "private": true, "scripts": { "build": "cross-env CI=true turbo build", @@ -15,7 +15,7 @@ "db:migration:sqlite:run": "pnpm -F db migration:sqlite:run", "db:push": "pnpm -F db push:sqlite", "db:studio": "pnpm -F db studio", - "dev": "turbo dev --parallel", + "dev": "pnpm -F nextjs dev", "docker:dev": "docker compose -f ./development/development.docker-compose.yml up", "format": "turbo format --continue -- --cache --cache-location node_modules/.cache/.prettiercache", "format:fix": "turbo format --continue -- --write --cache --cache-location node_modules/.cache/.prettiercache", @@ -36,33 +36,34 @@ "prettier": "@homarr/prettier-config", "devDependencies": { "@homarr/prettier-config": "workspace:^0.1.0", - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/commit-analyzer": "^13.0.1", - "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^12.0.2", - "@semantic-release/npm": "^13.1.3", - "@semantic-release/release-notes-generator": "^14.1.0", - "@testcontainers/redis": "^11.11.0", - "@turbo/gen": "^2.7.3", - "@vitejs/plugin-react": "^5.1.2", - "@vitest/coverage-v8": "^4.0.16", - "@vitest/ui": "^4.0.16", - "conventional-changelog-conventionalcommits": "^9.1.0", - "cross-env": "^10.1.0", - "jsdom": "^27.4.0", - "json5": "^2.2.3", - "prettier": "^3.7.4", - "semantic-release": "^25.0.2", - "testcontainers": "^11.11.0", - "turbo": "^2.7.3", - "typescript": "^5.9.3", - "vite-tsconfig-paths": "^6.0.4", - "vitest": "^4.0.16" + "@playwright/test": "catalog:", + "@semantic-release/changelog": "catalog:", + "@semantic-release/commit-analyzer": "catalog:", + "@semantic-release/git": "catalog:", + "@semantic-release/github": "catalog:", + "@semantic-release/npm": "catalog:", + "@semantic-release/release-notes-generator": "catalog:", + "@testcontainers/redis": "catalog:", + "@turbo/gen": "catalog:", + "@vitejs/plugin-react": "catalog:", + "@vitest/coverage-v8": "catalog:", + "@vitest/ui": "catalog:", + "conventional-changelog-conventionalcommits": "catalog:", + "cross-env": "catalog:", + "jsdom": "catalog:", + "json5": "catalog:", + "prettier": "catalog:", + "semantic-release": "catalog:", + "testcontainers": "catalog:", + "turbo": "catalog:", + "typescript": "catalog:", + "vite-tsconfig-paths": "catalog:", + "vitest": "catalog:" }, - "packageManager": "pnpm@10.28.0", + "packageManager": "pnpm@10.33.4", "engines": { - "node": ">=24.12.0", - "pnpm": ">=10.28.0" + "node": ">=24.15.0", + "pnpm": ">=10.33.4" }, "pnpm": { "onlyBuiltDependencies": [ @@ -77,25 +78,25 @@ "tree-sitter-json" ], "overrides": { - "@babel/helpers@<7.26.10": ">=7.28.4", - "@babel/runtime@<7.26.10": ">=7.28.4", - "axios@>=1.0.0 <1.8.2": ">=1.13.2", - "brace-expansion@>=2.0.0 <=2.0.1": ">=4.0.1", - "brace-expansion@>=1.0.0 <=1.1.11": ">=4.0.1", - "esbuild@<=0.24.2": ">=0.27.2", + "@babel/helpers@<7.26.10": ">=7.29.2", + "@babel/runtime@<7.26.10": ">=7.29.2", + "axios@>=1.0.0 <1.8.2": ">=1.16.1", + "brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.6", + "brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.6", + "esbuild@<=0.24.2": ">=0.28.0", "form-data@>=4.0.0 <4.0.4": ">=4.0.5", - "hono@<4.6.5": ">=4.11.3", - "linkifyjs@<4.3.2": ">=4.3.2", - "nanoid@>=4.0.0 <5.0.9": ">=5.1.6", + "hono@<4.6.5": ">=4.12.19", + "linkifyjs@<4.3.2": ">=4.3.3", + "nanoid@>=4.0.0 <5.0.9": ">=5.1.11", "prismjs@<1.30.0": ">=1.30.0", - "proxmox-api>undici": "7.18.2", - "react-is": "^19.2.3", - "rollup@>=4.0.0 <4.22.4": ">=4.55.1", + "proxmox-api>undici": "7.24.6", + "react-is": "^19.2.6", + "rollup@>=4.0.0 <4.22.4": ">=4.60.4", "sha.js@<=2.4.11": ">=2.4.12", - "tar-fs@>=3.0.0 <3.0.9": ">=3.1.1", - "tar-fs@>=2.0.0 <2.1.3": ">=3.1.1", + "tar-fs@>=3.0.0 <3.0.9": ">=3.1.2", + "tar-fs@>=2.0.0 <2.1.3": ">=3.1.2", "tmp@<=0.2.3": ">=0.2.5", - "vite@>=5.0.0 <=5.4.18": ">=7.3.1" + "vite@>=5.0.0 <=5.4.18": ">=8.0.13" }, "patchedDependencies": { "@types/node-unifi": "patches/@types__node-unifi.patch", @@ -104,6 +105,7 @@ "allowUnusedPatches": true, "ignoredBuiltDependencies": [ "@scarf/scarf", + "@swc/core", "core-js-pure", "protobufjs" ] diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 18324242c..ed0ea2331 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -22,17 +22,20 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { + "@homarr/auth": "workspace:^0.1.0", + "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", + "@homarr/docker": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", - "@umami/node": "^0.4.0", - "superjson": "2.2.6" + "@umami/node": "catalog:", + "superjson": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/analytics/src/send-server-analytics.ts b/packages/analytics/src/send-server-analytics.ts index 27f1ae3d8..2557e3ca6 100644 --- a/packages/analytics/src/send-server-analytics.ts +++ b/packages/analytics/src/send-server-analytics.ts @@ -1,17 +1,52 @@ import type { UmamiEventData } from "@umami/node"; import { Umami } from "@umami/node"; +import { isProviderEnabled } from "@homarr/auth/server"; +import { Stopwatch } from "@homarr/common"; import { createLogger } from "@homarr/core/infrastructure/logs"; import { count, db } from "@homarr/db"; +import { isMysql, isPostgresql } from "@homarr/db/collection"; import { getServerSettingByKeyAsync } from "@homarr/db/queries"; -import { integrations, items, users } from "@homarr/db/schema"; -import type { defaultServerSettings } from "@homarr/server-settings"; +import { + apiKeys, + apps, + boards, + cronJobConfigurations, + groups, + iconRepositories, + icons, + integrations, + invites, + itemLayouts, + items, + layouts, + medias, + searchEngines, + sectionLayouts, + sections, + users, +} from "@homarr/db/schema"; +import { env as dockerEnv } from "@homarr/docker/env"; -import { Stopwatch } from "../../common/src"; +import packageJson from "../../../package.json"; import { UMAMI_HOST_URL, UMAMI_WEBSITE_ID } from "./constants"; const logger = createLogger({ module: "analytics" }); +const getDatabaseType = (): "mysql" | "postgresql" | "sqlite" => { + if (isMysql()) return "mysql"; + if (isPostgresql()) return "postgresql"; + return "sqlite"; +}; + +const getEnabledAuthProviders = (): string[] => { + const providers: string[] = []; + if (isProviderEnabled("credentials")) providers.push("credentials"); + if (isProviderEnabled("oidc")) providers.push("oidc"); + if (isProviderEnabled("ldap")) providers.push("ldap"); + return providers; +}; + export const sendServerAnalyticsAsync = async () => { const stopWatch = new Stopwatch(); const analyticsSettings = await getServerSettingByKeyAsync(db, "analytics"); @@ -27,67 +62,48 @@ export const sendServerAnalyticsAsync = async () => { websiteId: UMAMI_WEBSITE_ID, }); - await sendIntegrationDataAsync(umamiInstance, analyticsSettings); - await sendWidgetDataAsync(umamiInstance, analyticsSettings); - await sendUserDataAsync(umamiInstance, analyticsSettings); + const enabledAuthProviders = getEnabledAuthProviders(); - logger.info(`Sent all analytics in ${stopWatch.getElapsedInHumanWords()}`); -}; + const analyticsData: UmamiEventData = { + homarrVersion: packageJson.version, + databaseType: getDatabaseType(), + dockerEnabled: dockerEnv.ENABLE_DOCKER ? 1 : 0, + kubernetesEnabled: dockerEnv.ENABLE_KUBERNETES ? 1 : 0, + authCredentials: enabledAuthProviders.includes("credentials") ? 1 : 0, + authOidc: enabledAuthProviders.includes("oidc") ? 1 : 0, + authLdap: enabledAuthProviders.includes("ldap") ? 1 : 0, + countUsers: await db.$count(users), + countBoards: await db.$count(boards), + countGroups: await db.$count(groups), + countApps: await db.$count(apps), + countWidgets: await db.$count(items), + countSections: await db.$count(sections), + countIntegrations: await db.$count(integrations), + countSearchEngines: await db.$count(searchEngines), + countIconRepositories: await db.$count(iconRepositories), + countIcons: await db.$count(icons), + countApiKeys: await db.$count(apiKeys), + countInvites: await db.$count(invites), + countMedias: await db.$count(medias), + countLayouts: await db.$count(layouts), + countItemLayouts: await db.$count(itemLayouts), + countSectionLayouts: await db.$count(sectionLayouts), + countCronJobConfigs: await db.$count(cronJobConfigurations), + }; -const sendWidgetDataAsync = async (umamiInstance: Umami, analyticsSettings: typeof defaultServerSettings.analytics) => { - if (!analyticsSettings.enableWidgetData) { - return; - } - const widgetCount = await db.$count(items); - - const response = await umamiInstance.track("server-widget-data", { - countWidgets: widgetCount, - }); - if (response.ok) { - return; - } - - logger.warn("Unable to send track event data to Umami instance"); -}; - -const sendUserDataAsync = async (umamiInstance: Umami, analyticsSettings: typeof defaultServerSettings.analytics) => { - if (!analyticsSettings.enableUserData) { - return; - } - const userCount = await db.$count(users); - - const response = await umamiInstance.track("server-user-data", { - countUsers: userCount, - }); - if (response.ok) { - return; - } - - logger.warn("Unable to send track event data to Umami instance"); -}; - -const sendIntegrationDataAsync = async ( - umamiInstance: Umami, - analyticsSettings: typeof defaultServerSettings.analytics, -) => { - if (!analyticsSettings.enableIntegrationData) { - return; - } const integrationKinds = await db .select({ kind: integrations.kind, count: count(integrations.id) }) .from(integrations) .groupBy(integrations.kind); - const map: UmamiEventData = {}; - integrationKinds.forEach((integrationKind) => { - map[integrationKind.kind] = integrationKind.count; + analyticsData[`integration_${integrationKind.kind}`] = integrationKind.count; }); - const response = await umamiInstance.track("server-integration-data-kind", map); - if (response.ok) { - return; + const response = await umamiInstance.track("server-analytics-v2", analyticsData); + if (!response.ok) { + logger.warn("Unable to send analytics to Umami instance"); } - logger.warn("Unable to send track event data to Umami instance"); + logger.info(`Sent analytics in ${stopWatch.getElapsedInHumanWords()}`); }; diff --git a/packages/api/package.json b/packages/api/package.json index a1543085c..1c137c154 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -9,7 +9,8 @@ "./client": "./src/client.ts", "./server": "./src/server.ts", "./websocket": "./src/websocket.ts", - "./shared": "./src/shared.ts" + "./shared": "./src/shared.ts", + "./open-api": "./src/open-api.ts" }, "main": "./index.ts", "types": "./index.ts", @@ -24,7 +25,6 @@ "@homarr/auth": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", - "@homarr/cron-job-api": "workspace:^0.1.0", "@homarr/cron-job-status": "workspace:^0.1.0", "@homarr/cron-jobs": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", @@ -40,26 +40,26 @@ "@homarr/server-settings": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@kubernetes/client-node": "^1.4.0", - "@tanstack/react-query": "^5.90.16", - "@trpc/client": "^11.8.1", - "@trpc/react-query": "^11.8.1", - "@trpc/server": "^11.8.1", - "@trpc/tanstack-react-query": "^11.8.1", - "lodash.clonedeep": "^4.5.0", - "next": "16.1.1", - "react": "19.2.3", - "react-dom": "19.2.3", - "superjson": "2.2.6", - "trpc-to-openapi": "^3.1.0", - "zod": "^4.2.1" + "@kubernetes/client-node": "catalog:", + "@tanstack/react-query": "catalog:", + "@trpc/client": "catalog:", + "@trpc/react-query": "catalog:", + "@trpc/server": "catalog:", + "@trpc/tanstack-react-query": "catalog:", + "lodash.clonedeep": "catalog:", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "superjson": "catalog:", + "trpc-to-openapi": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "prettier": "^3.7.4", - "typescript": "^5.9.3" + "eslint": "catalog:", + "prettier": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index d339d177f..1cbe6fdd7 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -1,6 +1,5 @@ import type { inferRouterInputs, inferRouterOutputs } from "@trpc/server"; -import { openApiDocument } from "./open-api"; import type { AppRouter } from "./root"; import { appRouter } from "./root"; import { createCallerFactory, createTRPCContext } from "./trpc"; @@ -30,5 +29,5 @@ type RouterInputs = inferRouterInputs; **/ type RouterOutputs = inferRouterOutputs; -export { createTRPCContext, appRouter, createCaller, openApiDocument }; +export { createTRPCContext, appRouter, createCaller }; export type { AppRouter, RouterInputs, RouterOutputs }; diff --git a/packages/api/src/open-api.ts b/packages/api/src/open-api.ts index b4827871c..d789582df 100644 --- a/packages/api/src/open-api.ts +++ b/packages/api/src/open-api.ts @@ -2,10 +2,21 @@ import { generateOpenApiDocument } from "trpc-to-openapi"; import { API_KEY_HEADER_NAME } from "@homarr/auth/api-key"; -import { appRouter } from "./root"; +import { appRouter } from "./router/app"; +import { infoRouter } from "./router/info"; +import { inviteRouter } from "./router/invite"; +import { userRouter } from "./router/user"; +import { createTRPCRouter } from "./trpc"; + +export const openApiRouter = createTRPCRouter({ + appRouter, + infoRouter, + inviteRouter, + userRouter, +}); export const openApiDocument = (base: string) => - generateOpenApiDocument(appRouter, { + generateOpenApiDocument(openApiRouter, { title: "Homarr API documentation", version: "1.0.0", baseUrl: base, diff --git a/packages/api/src/root.ts b/packages/api/src/root.ts index 6efc10ca5..a014b4b75 100644 --- a/packages/api/src/root.ts +++ b/packages/api/src/root.ts @@ -1,54 +1,33 @@ -import { apiKeysRouter } from "./router/apiKeys"; -import { appRouter as innerAppRouter } from "./router/app"; -import { boardRouter } from "./router/board"; -import { certificateRouter } from "./router/certificates/certificate-router"; -import { cronJobsRouter } from "./router/cron-jobs"; -import { dockerRouter } from "./router/docker/docker-router"; -import { groupRouter } from "./router/group"; -import { homeRouter } from "./router/home"; -import { iconsRouter } from "./router/icons"; -import { importRouter } from "./router/import/import-router"; -import { infoRouter } from "./router/info"; -import { integrationRouter } from "./router/integration/integration-router"; -import { inviteRouter } from "./router/invite"; -import { kubernetesRouter } from "./router/kubernetes/router/kubernetes-router"; -import { locationRouter } from "./router/location"; -import { logRouter } from "./router/log"; -import { mediaRouter } from "./router/medias/media-router"; -import { onboardRouter } from "./router/onboard/onboard-router"; -import { searchEngineRouter } from "./router/search-engine/search-engine-router"; -import { sectionRouter } from "./router/section/section-router"; -import { serverSettingsRouter } from "./router/serverSettings"; -import { updateCheckerRouter } from "./router/update-checker"; -import { userRouter } from "./router/user"; -import { widgetRouter } from "./router/widgets"; +import { lazy } from "@trpc/server"; + import { createTRPCRouter } from "./trpc"; export const appRouter = createTRPCRouter({ - user: userRouter, - group: groupRouter, - invite: inviteRouter, - integration: integrationRouter, - board: boardRouter, - section: sectionRouter, - app: innerAppRouter, - searchEngine: searchEngineRouter, - widget: widgetRouter, - location: locationRouter, - log: logRouter, - icon: iconsRouter, - import: importRouter, - onboard: onboardRouter, - home: homeRouter, - docker: dockerRouter, - kubernetes: kubernetesRouter, - serverSettings: serverSettingsRouter, - cronJobs: cronJobsRouter, - apiKeys: apiKeysRouter, - media: mediaRouter, - updateChecker: updateCheckerRouter, - certificates: certificateRouter, - info: infoRouter, + user: lazy(() => import("./router/user").then((mod) => mod.userRouter)), + group: lazy(() => import("./router/group").then((mod) => mod.groupRouter)), + invite: lazy(() => import("./router/invite").then((mod) => mod.inviteRouter)), + integration: lazy(() => import("./router/integration/integration-router").then((mod) => mod.integrationRouter)), + board: lazy(() => import("./router/board").then((mod) => mod.boardRouter)), + section: lazy(() => import("./router/section/section-router").then((mod) => mod.sectionRouter)), + app: lazy(() => import("./router/app").then((mod) => mod.appRouter)), + searchEngine: lazy(() => import("./router/search-engine/search-engine-router").then((mod) => mod.searchEngineRouter)), + widget: lazy(() => import("./router/widgets").then((mod) => mod.widgetRouter)), + location: lazy(() => import("./router/location").then((mod) => mod.locationRouter)), + log: lazy(() => import("./router/log").then((mod) => mod.logRouter)), + icon: lazy(() => import("./router/icons").then((mod) => mod.iconsRouter)), + import: lazy(() => import("./router/import/import-router").then((mod) => mod.importRouter)), + onboard: lazy(() => import("./router/onboard/onboard-router").then((mod) => mod.onboardRouter)), + home: lazy(() => import("./router/home").then((mod) => mod.homeRouter)), + docker: lazy(() => import("./router/docker/docker-router").then((mod) => mod.dockerRouter)), + kubernetes: lazy(() => import("./router/kubernetes/router/kubernetes-router").then((mod) => mod.kubernetesRouter)), + serverSettings: lazy(() => import("./router/serverSettings").then((mod) => mod.serverSettingsRouter)), + cronJobs: lazy(() => import("./router/cron-jobs").then((mod) => mod.cronJobsRouter)), + apiKeys: lazy(() => import("./router/apiKeys").then((mod) => mod.apiKeysRouter)), + media: lazy(() => import("./router/medias/media-router").then((mod) => mod.mediaRouter)), + updateChecker: lazy(() => import("./router/update-checker").then((mod) => mod.updateCheckerRouter)), + certificates: lazy(() => import("./router/certificates/certificate-router").then((mod) => mod.certificateRouter)), + bangs: lazy(() => import("./router/bangs/bangs-router").then((mod) => mod.bangsRouter)), + info: lazy(() => import("./router/info").then((mod) => mod.infoRouter)), }); // export type definition of API diff --git a/packages/api/src/router/apiKeys.ts b/packages/api/src/router/apiKeys.ts index 9c0117085..71efd98ca 100644 --- a/packages/api/src/router/apiKeys.ts +++ b/packages/api/src/router/apiKeys.ts @@ -1,6 +1,6 @@ import { z } from "zod/v4"; -import { createSaltAsync, hashPasswordAsync } from "@homarr/auth"; +import { hashPasswordAsync } from "@homarr/auth"; import { createId } from "@homarr/common"; import { generateSecureRandomToken } from "@homarr/common/server"; import { db, eq } from "@homarr/db"; @@ -14,7 +14,6 @@ export const apiKeysRouter = createTRPCRouter({ columns: { id: true, apiKey: false, - salt: false, }, with: { user: { @@ -29,14 +28,12 @@ export const apiKeysRouter = createTRPCRouter({ }); }), create: permissionRequiredProcedure.requiresPermission("admin").mutation(async ({ ctx }) => { - const salt = await createSaltAsync(); const randomToken = generateSecureRandomToken(64); - const hashedRandomToken = await hashPasswordAsync(randomToken, salt); + const hashedRandomToken = await hashPasswordAsync(randomToken); const id = createId(); await db.insert(apiKeys).values({ id, apiKey: hashedRandomToken, - salt, userId: ctx.session.user.id, }); return { diff --git a/packages/api/src/router/app.ts b/packages/api/src/router/app.ts index 32c607951..2f2445330 100644 --- a/packages/api/src/router/app.ts +++ b/packages/api/src/router/app.ts @@ -1,7 +1,9 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod/v4"; +import type { Session } from "@homarr/auth"; import { createId } from "@homarr/common"; +import type { Database, InferSelectModel } from "@homarr/db"; import { asc, eq, inArray, like } from "@homarr/db"; import { apps } from "@homarr/db/schema"; import { selectAppSchema } from "@homarr/db/validationSchemas"; @@ -11,7 +13,7 @@ import { byIdSchema, paginatedSchema } from "@homarr/validation/common"; import { convertIntersectionToZodObject } from "../schema-merger"; import { createTRPCRouter, permissionRequiredProcedure, protectedProcedure, publicProcedure } from "../trpc"; -import { canUserSeeAppAsync } from "./app/app-access-control"; +import { AppAccessControl } from "./app/app-access-control"; const defaultIcon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/homarr.svg"; @@ -89,9 +91,8 @@ export const appRouter = createTRPCRouter({ .output(selectAppSchema) .meta({ openapi: { method: "GET", path: "/api/apps/{id}", tags: ["apps"], protect: true } }) .query(async ({ ctx, input }) => { - const app = await ctx.db.query.apps.findFirst({ - where: eq(apps.id, input.id), - }); + const repository = new AppRepository(ctx.db, ctx.session?.user ?? null); + const app = await repository.getByIdAsync(input.id); if (!app) { throw new TRPCError({ @@ -100,20 +101,11 @@ export const appRouter = createTRPCRouter({ }); } - const canUserSeeApp = await canUserSeeAppAsync(ctx.session?.user ?? null, app.id); - if (!canUserSeeApp) { - throw new TRPCError({ - code: "NOT_FOUND", - message: "App not found", - }); - } - return app; }), byIds: publicProcedure.input(z.array(z.string())).query(async ({ ctx, input }) => { - return await ctx.db.query.apps.findMany({ - where: inArray(apps.id, input), - }); + const repository = new AppRepository(ctx.db, ctx.session?.user ?? null); + return await repository.getByIdsAsync(input); }), create: permissionRequiredProcedure .requiresPermission("app-create") @@ -187,3 +179,30 @@ export const appRouter = createTRPCRouter({ await ctx.db.delete(apps).where(eq(apps.id, input.id)); }), }); + +type App = InferSelectModel; + +export class AppRepository { + private readonly accessControl: AppAccessControl; + + constructor( + private db: Database, + user: Session["user"] | null, + ) { + this.accessControl = new AppAccessControl(db, user); + } + + public async getByIdAsync(id: string): Promise { + const apps = await this.getByIdsAsync([id]); + return apps[0] ?? null; + } + + public async getByIdsAsync(ids: string[]): Promise { + const canUserSeeApps = await this.accessControl.canUserSeeAppsAsync(ids); + const dbApps = await this.db.query.apps.findMany({ + where: inArray(apps.id, ids), + }); + + return canUserSeeApps ? dbApps : []; + } +} diff --git a/packages/api/src/router/app/app-access-control.ts b/packages/api/src/router/app/app-access-control.ts index 0f5a0a478..10ee934cc 100644 --- a/packages/api/src/router/app/app-access-control.ts +++ b/packages/api/src/router/app/app-access-control.ts @@ -1,45 +1,52 @@ import SuperJSON from "superjson"; import type { Session } from "@homarr/auth"; -import { db, eq, or } from "@homarr/db"; +import type { Database } from "@homarr/db"; +import { eq, or } from "@homarr/db"; import { items } from "@homarr/db/schema"; import type { WidgetComponentProps } from "../../../../widgets/src"; -export const canUserSeeAppAsync = async (user: Session["user"] | null, appId: string) => { - return await canUserSeeAppsAsync(user, [appId]); -}; +export class AppAccessControl { + constructor( + private db: Database, + private user: Session["user"] | null, + ) {} -export const canUserSeeAppsAsync = async (user: Session["user"] | null, appIds: string[]) => { - if (user) return true; + async canUserSeeAppAsync(appId: string) { + return await this.canUserSeeAppsAsync([appId]); + } - const appIdsOnPublicBoards = await getAllAppIdsOnPublicBoardsAsync(); - return appIds.every((appId) => appIdsOnPublicBoards.includes(appId)); -}; + async canUserSeeAppsAsync(appIds: string[]) { + // Currently any user can see all apps if they are logged in + if (this.user) return true; -const getAllAppIdsOnPublicBoardsAsync = async () => { - const itemsWithApps = await db.query.items.findMany({ - where: or(eq(items.kind, "app"), eq(items.kind, "bookmarks")), - with: { - board: { - columns: { - isPublic: true, + const appIdsOnPublicBoards = await this.getAllAppIdsOnPublicBoardsAsync(); + return appIds.every((appId) => appIdsOnPublicBoards.includes(appId)); + } + + private async getAllAppIdsOnPublicBoardsAsync() { + const itemsWithApps = await this.db.query.items.findMany({ + where: or(eq(items.kind, "app"), eq(items.kind, "bookmarks")), + with: { + board: { + columns: { + isPublic: true, + }, }, }, - }, - }); + }); + + return itemsWithApps + .filter((item) => item.board.isPublic) + .flatMap((item) => { + if (item.kind === "app") { + const parsedOptions = SuperJSON.parse["options"]>(item.options); + return [parsedOptions.appId]; + } - return itemsWithApps - .filter((item) => item.board.isPublic) - .flatMap((item) => { - if (item.kind === "app") { - const parsedOptions = SuperJSON.parse["options"]>(item.options); - return [parsedOptions.appId]; - } else if (item.kind === "bookmarks") { const parsedOptions = SuperJSON.parse["options"]>(item.options); return parsedOptions.items; - } - - throw new Error("Failed to get app ids from board. Invalid item kind: 'test'"); - }); -}; + }); + } +} diff --git a/packages/api/src/router/bangs/bangs-router.ts b/packages/api/src/router/bangs/bangs-router.ts new file mode 100644 index 000000000..ae3a3f214 --- /dev/null +++ b/packages/api/src/router/bangs/bangs-router.ts @@ -0,0 +1,17 @@ +import { z } from "zod/v4"; + +import { searchDuckDuckGoBangsAsync } from "../../services/duckduckgo-bangs"; +import { createTRPCRouter, publicProcedure } from "../../trpc"; + +export const bangsRouter = createTRPCRouter({ + search: publicProcedure + .input( + z.object({ + query: z.string(), + limit: z.number().int().min(1).max(50).default(20), + }), + ) + .query(async ({ input }) => { + return await searchDuckDuckGoBangsAsync({ query: input.query, limit: input.limit }); + }), +}); diff --git a/packages/api/src/router/board.ts b/packages/api/src/router/board.ts index bbb7c0c66..495d410c7 100644 --- a/packages/api/src/router/board.ts +++ b/packages/api/src/router/board.ts @@ -442,7 +442,7 @@ export const boardRouter = createTRPCRouter({ await handleTransactionsAsync(ctx.db, { async handleAsync(db, schema) { await db.transaction(async (transaction) => { - transaction.insert(schema.boards).values({ + await transaction.insert(schema.boards).values({ ...boardProps, id: newBoardId, name: input.name, diff --git a/packages/api/src/router/cron-jobs.ts b/packages/api/src/router/cron-jobs.ts index 5428ac374..05611191b 100644 --- a/packages/api/src/router/cron-jobs.ts +++ b/packages/api/src/router/cron-jobs.ts @@ -2,59 +2,62 @@ import { observable } from "@trpc/server/observable"; import z from "zod/v4"; import { createLogger } from "@homarr/core/infrastructure/logs"; -import { cronExpressionSchema, jobGroupKeys, jobNameSchema } from "@homarr/cron-job-api"; -import { cronJobApi } from "@homarr/cron-job-api/client"; import type { TaskStatus } from "@homarr/cron-job-status"; import { createCronJobStatusChannel } from "@homarr/cron-job-status"; +import { jobGroup } from "@homarr/cron-jobs"; +import { JobManager } from "@homarr/cron-jobs/job-manager"; import { createTRPCRouter, permissionRequiredProcedure } from "../trpc"; +const jobGroupKeys = jobGroup.getKeys(); +const jobNameSchema = z.enum(jobGroup.getKeys()); + const logger = createLogger({ module: "cronJobsRouter" }); export const cronJobsRouter = createTRPCRouter({ triggerJob: permissionRequiredProcedure .requiresPermission("admin") .input(jobNameSchema) - .mutation(async ({ input }) => { - await cronJobApi.trigger.mutate(input); + .mutation(async ({ input, ctx }) => { + await new JobManager(ctx.db, jobGroup).triggerAsync(input); }), startJob: permissionRequiredProcedure .requiresPermission("admin") .input(jobNameSchema) - .mutation(async ({ input }) => { - await cronJobApi.start.mutate(input); + .mutation(async ({ input, ctx }) => { + await new JobManager(ctx.db, jobGroup).startAsync(input); }), stopJob: permissionRequiredProcedure .requiresPermission("admin") .input(jobNameSchema) - .mutation(async ({ input }) => { - await cronJobApi.stop.mutate(input); + .mutation(({ input, ctx }) => { + new JobManager(ctx.db, jobGroup).stop(input); }), updateJobInterval: permissionRequiredProcedure .requiresPermission("admin") .input( z.object({ name: jobNameSchema, - cron: cronExpressionSchema, + cron: z.string(), }), ) - .mutation(async ({ input }) => { - await cronJobApi.updateInterval.mutate(input); + .mutation(async ({ input, ctx }) => { + await new JobManager(ctx.db, jobGroup).updateIntervalAsync(input.name, input.cron); }), disableJob: permissionRequiredProcedure .requiresPermission("admin") .input(jobNameSchema) - .mutation(async ({ input }) => { - await cronJobApi.disable.mutate(input); + .mutation(async ({ input, ctx }) => { + await new JobManager(ctx.db, jobGroup).disableAsync(input); }), enableJob: permissionRequiredProcedure .requiresPermission("admin") .input(jobNameSchema) - .mutation(async ({ input }) => { - await cronJobApi.enable.mutate(input); + .mutation(async ({ input, ctx }) => { + await new JobManager(ctx.db, jobGroup).enableAsync(input); }), - getJobs: permissionRequiredProcedure.requiresPermission("admin").query(async () => { - return await cronJobApi.getAll.query(); + getJobs: permissionRequiredProcedure.requiresPermission("admin").query(async ({ ctx }) => { + return await new JobManager(ctx.db, jobGroup).getAllAsync(); }), subscribeToStatusUpdates: permissionRequiredProcedure.requiresPermission("admin").subscription(() => { return observable((emit) => { diff --git a/packages/api/src/router/docker/docker-router.ts b/packages/api/src/router/docker/docker-router.ts index 2af05cad1..884998749 100644 --- a/packages/api/src/router/docker/docker-router.ts +++ b/packages/api/src/router/docker/docker-router.ts @@ -220,9 +220,10 @@ const getContainerOrThrowAsync = async (id: string) => { interface DockerContainer { name: string; id: string; + host: string; state: ContainerState; image: string; - ports: Port[]; + ports: Port[] | undefined; iconUrl: string | null; cpuUsage: number; memoryUsage: number; diff --git a/packages/api/src/router/integration/integration-router.ts b/packages/api/src/router/integration/integration-router.ts index 77a98515b..5591b74ed 100644 --- a/packages/api/src/router/integration/integration-router.ts +++ b/packages/api/src/router/integration/integration-router.ts @@ -43,15 +43,15 @@ import { mapTestConnectionError } from "./map-test-connection-error"; const logger = createLogger({ module: "integrationRouter" }); export const integrationRouter = createTRPCRouter({ - all: publicProcedure.query(async ({ ctx }) => { + all: protectedProcedure.query(async ({ ctx }) => { const groupsOfCurrentUser = await ctx.db.query.groupMembers.findMany({ - where: eq(groupMembers.userId, ctx.session?.user.id ?? ""), + where: eq(groupMembers.userId, ctx.session.user.id), }); const integrations = await ctx.db.query.integrations.findMany({ with: { userPermissions: { - where: eq(integrationUserPermissions.userId, ctx.session?.user.id ?? ""), + where: eq(integrationUserPermissions.userId, ctx.session.user.id), }, groupPermissions: { where: inArray( @@ -85,15 +85,15 @@ export const integrationRouter = createTRPCRouter({ integrationKinds.indexOf(integrationA.kind) - integrationKinds.indexOf(integrationB.kind), ); }), - allThatSupportSearch: publicProcedure.query(async ({ ctx }) => { + allThatSupportSearch: protectedProcedure.query(async ({ ctx }) => { const groupsOfCurrentUser = await ctx.db.query.groupMembers.findMany({ - where: eq(groupMembers.userId, ctx.session?.user.id ?? ""), + where: eq(groupMembers.userId, ctx.session.user.id), }); const integrationsFromDb = await ctx.db.query.integrations.findMany({ with: { userPermissions: { - where: eq(integrationUserPermissions.userId, ctx.session?.user.id ?? ""), + where: eq(integrationUserPermissions.userId, ctx.session.user.id), }, groupPermissions: { where: inArray( @@ -133,7 +133,7 @@ export const integrationRouter = createTRPCRouter({ integrationKinds.indexOf(integrationA.kind) - integrationKinds.indexOf(integrationB.kind), ); }), - allOfGivenCategory: publicProcedure + allOfGivenCategory: protectedProcedure .input( z.object({ category: z.enum(integrationCategories), @@ -141,7 +141,7 @@ export const integrationRouter = createTRPCRouter({ ) .query(async ({ ctx, input }) => { const groupsOfCurrentUser = await ctx.db.query.groupMembers.findMany({ - where: eq(groupMembers.userId, ctx.session?.user.id ?? ""), + where: eq(groupMembers.userId, ctx.session.user.id), }); const intergrationKinds = getIntegrationKindsByCategory(input.category); @@ -149,7 +149,7 @@ export const integrationRouter = createTRPCRouter({ const integrationsFromDb = await ctx.db.query.integrations.findMany({ with: { userPermissions: { - where: eq(integrationUserPermissions.userId, ctx.session?.user.id ?? ""), + where: eq(integrationUserPermissions.userId, ctx.session.user.id), }, groupPermissions: { where: inArray( diff --git a/packages/api/src/router/kubernetes/router/kubernetes-router.ts b/packages/api/src/router/kubernetes/router/kubernetes-router.ts index ad9667c69..57644c13d 100644 --- a/packages/api/src/router/kubernetes/router/kubernetes-router.ts +++ b/packages/api/src/router/kubernetes/router/kubernetes-router.ts @@ -1,22 +1,15 @@ +import { lazy } from "@trpc/server"; + import { createTRPCRouter } from "../../../trpc"; -import { clusterRouter } from "./cluster"; -import { configMapsRouter } from "./configMaps"; -import { ingressesRouter } from "./ingresses"; -import { namespacesRouter } from "./namespaces"; -import { nodesRouter } from "./nodes"; -import { podsRouter } from "./pods"; -import { secretsRouter } from "./secrets"; -import { servicesRouter } from "./services"; -import { volumesRouter } from "./volumes"; export const kubernetesRouter = createTRPCRouter({ - nodes: nodesRouter, - cluster: clusterRouter, - namespaces: namespacesRouter, - ingresses: ingressesRouter, - services: servicesRouter, - pods: podsRouter, - secrets: secretsRouter, - configMaps: configMapsRouter, - volumes: volumesRouter, + nodes: lazy(() => import("./nodes").then((mod) => mod.nodesRouter)), + cluster: lazy(() => import("./cluster").then((mod) => mod.clusterRouter)), + namespaces: lazy(() => import("./namespaces").then((mod) => mod.namespacesRouter)), + ingresses: lazy(() => import("./ingresses").then((mod) => mod.ingressesRouter)), + services: lazy(() => import("./services").then((mod) => mod.servicesRouter)), + pods: lazy(() => import("./pods").then((mod) => mod.podsRouter)), + secrets: lazy(() => import("./secrets").then((mod) => mod.secretsRouter)), + configMaps: lazy(() => import("./configMaps").then((mod) => mod.configMapsRouter)), + volumes: lazy(() => import("./volumes").then((mod) => mod.volumesRouter)), }); diff --git a/packages/api/src/router/test/app.spec.ts b/packages/api/src/router/test/app.spec.ts index f8877a403..3002ef1a9 100644 --- a/packages/api/src/router/test/app.spec.ts +++ b/packages/api/src/router/test/app.spec.ts @@ -13,6 +13,14 @@ import * as appAccessControl from "../app/app-access-control"; // Mock the auth module to return an empty session vi.mock("@homarr/auth", () => ({ auth: () => ({}) as Session })); +const createFakeAccessControl = (canAccess: boolean) => + vi.fn( + class { + canUserSeeAppAsync = async (_: string) => await Promise.resolve(canAccess); + canUserSeeAppsAsync = async (_: string[]) => await Promise.resolve(canAccess); + } as unknown as typeof appAccessControl.AppAccessControl, + ); + const createDefaultSession = (permissions: GroupPermissionKey[] = []): Session => ({ user: { id: createId(), permissions, colorScheme: "light" }, expires: new Date().toISOString(), @@ -77,7 +85,7 @@ describe("byId should return an app by id", () => { deviceType: undefined, session: null, }); - vi.spyOn(appAccessControl, "canUserSeeAppAsync").mockReturnValue(Promise.resolve(true)); + vi.spyOn(appAccessControl, "AppAccessControl").mockImplementation(createFakeAccessControl(true)); await db.insert(apps).values([ { @@ -118,7 +126,7 @@ describe("byId should return an app by id", () => { href: "https://mantine.dev", }, ]); - vi.spyOn(appAccessControl, "canUserSeeAppAsync").mockReturnValue(Promise.resolve(false)); + vi.spyOn(appAccessControl, "AppAccessControl").mockImplementation(createFakeAccessControl(false)); // Act const actAsync = async () => await caller.byId({ id: "2" }); diff --git a/packages/api/src/router/test/widgets/app.spec.ts b/packages/api/src/router/test/widgets/app.spec.ts index bd5265ff6..0a14c7c96 100644 --- a/packages/api/src/router/test/widgets/app.spec.ts +++ b/packages/api/src/router/test/widgets/app.spec.ts @@ -1,6 +1,9 @@ import { describe, expect, test, vi } from "vitest"; import type { Session } from "@homarr/auth"; +import { createId } from "@homarr/common"; +import type { InferInsertModel } from "@homarr/db"; +import { apps } from "@homarr/db/schema"; import { createDb } from "@homarr/db/test"; import * as ping from "@homarr/ping"; @@ -9,22 +12,31 @@ import { appRouter } from "../../widgets/app"; // Mock the auth module to return an empty session vi.mock("@homarr/auth", () => ({ auth: () => ({}) as Session })); vi.mock("@homarr/ping", () => ({ sendPingRequestAsync: async () => await Promise.resolve(null) })); +vi.mock("../../app/app-access-control", () => ({ + AppAccessControl: vi.fn( + class { + canUserSeeAppAsync = async (_: string) => await Promise.resolve(true); + canUserSeeAppsAsync = async (_: string[]) => await Promise.resolve(true); + }, + ), +})); describe("ping should call sendPingRequestAsync with url and return result", () => { test("ping with error response should return error and url", async () => { // Arrange - const spy = vi.spyOn(ping, "sendPingRequestAsync"); + vi.spyOn(ping, "sendPingRequestAsync").mockImplementation(() => Promise.resolve({ error: "error" })); const url = "http://localhost"; const db = createDb(); + const app = createApp({ url }); + await db.insert(apps).values(app); const caller = appRouter.createCaller({ db, deviceType: undefined, session: null, }); - spy.mockImplementation(() => Promise.resolve({ error: "error" })); // Act - const result = await caller.ping({ url }); + const result = await caller.ping({ id: app.id }); // Assert expect(result.url).toBe(url); @@ -33,21 +45,32 @@ describe("ping should call sendPingRequestAsync with url and return result", () test("ping with success response should return statusCode and url", async () => { // Arrange - const spy = vi.spyOn(ping, "sendPingRequestAsync"); + vi.spyOn(ping, "sendPingRequestAsync").mockImplementation(() => + Promise.resolve({ statusCode: 200, durationMs: 123 }), + ); const url = "http://localhost"; const db = createDb(); + const app = createApp({ url }); + await db.insert(apps).values(app); const caller = appRouter.createCaller({ db, deviceType: undefined, session: null, }); - spy.mockImplementation(() => Promise.resolve({ statusCode: 200, durationMs: 123 })); // Act - const result = await caller.ping({ url }); + const result = await caller.ping({ id: app.id }); // Assert expect(result.url).toBe(url); expect("statusCode" in result).toBe(true); }); }); + +const createApp = ({ url }: { url: string }) => + ({ + id: createId(), + iconUrl: "", + name: "Test App", + href: url, + }) satisfies InferInsertModel; diff --git a/packages/api/src/router/test/widgets/rssFeed.spec.ts b/packages/api/src/router/test/widgets/rssFeed.spec.ts new file mode 100644 index 000000000..4773fa149 --- /dev/null +++ b/packages/api/src/router/test/widgets/rssFeed.spec.ts @@ -0,0 +1,222 @@ +import SuperJSON from "superjson"; +import { describe, expect, test } from "vitest"; + +import type { Session } from "@homarr/auth"; +import { createId } from "@homarr/common"; +import type { InferInsertModel } from "@homarr/db"; +import { + boardGroupPermissions, + boards, + boardUserPermissions, + groupMembers, + groups, + items, + users, +} from "@homarr/db/schema"; +import { createDb } from "@homarr/db/test"; +import type { GroupPermissionKey } from "@homarr/definitions"; + +import type { WidgetComponentProps } from "../../../../../widgets/src/definition"; +import { canAccessAllFeedsAsync, restrictUrlsAsync } from "../../widgets/rssFeed"; + +const createSession = (permissions: GroupPermissionKey[] = []): Session => ({ + user: { + id: "user-id", + colorScheme: "light", + permissions, + }, + expires: new Date().toISOString(), +}); + +describe("rssFeedRouter", () => { + describe("canAccessAllFeedsAsync", () => { + test("should return false for unauthenticated users", async () => { + // Arrange + const { callback } = setupAccessCheck(); + + // Act + const result = await callback(/* session: */ null); + + // Assert + expect(result).toBe(false); + }); + test.each([["board-create" as const], ["board-modify-all" as const]])( + "should return true for users with %s permission", + async (permission) => { + // Arrange + const { callback } = setupAccessCheck(); + const session = createSession([permission]); + + // Act + const result = await callback(session); + + // Assert + expect(result).toBe(true); + }, + ); + test("should return false for authenticated users without any boards or permissions", async () => { + // Arrange + const { callback, db } = setupAccessCheck(); + const session = createSession(); + await db.insert(users).values({ + id: session.user.id, + }); + + // Act + const result = await callback(session); + + // Assert + expect(result).toBe(false); + }); + test("should return true for authenticated users that own at least one board", async () => { + // Arrange + const { callback, db } = setupAccessCheck(); + const session = createSession(); + await db.insert(users).values({ + id: session.user.id, + }); + await db.insert(boards).values({ + id: createId(), + name: "test", + creatorId: session.user.id, + }); + + // Act + const result = await callback(session); + + // Assert + expect(result).toBe(true); + }); + test.each([["modify" as const], ["full" as const]])( + "should return true for authenticated users that have %s permissions on at least one board", + async (permission) => { + // Arrange + const { callback, db } = setupAccessCheck(); + const session = createSession(); + await db.insert(users).values({ + id: session.user.id, + }); + const boardId = createId(); + await db.insert(boards).values({ + id: boardId, + name: "test", + }); + await db.insert(boardUserPermissions).values({ + boardId, + permission, + userId: session.user.id, + }); + + // Act + const result = await callback(session); + + // Assert + expect(result).toBe(true); + }, + ); + test.each([["modify" as const], ["full" as const]])( + "should return true for authenticated users that have %s permissions through group on at least one board", + async (permission) => { + // Arrange + const { callback, db } = setupAccessCheck(); + const session = createSession(); + await db.insert(users).values({ + id: session.user.id, + }); + const boardId = createId(); + await db.insert(boards).values({ + id: boardId, + name: "test", + }); + const groupId = createId(); + await db.insert(groups).values({ + id: groupId, + name: "test-group", + position: 0, + }); + await db.insert(groupMembers).values({ + groupId, + userId: session.user.id, + }); + await db.insert(boardGroupPermissions).values({ + boardId, + groupId, + permission, + }); + + // Act + const result = await callback(session); + + // Assert + expect(result).toBe(true); + }, + ); + }); + + describe("restrictUrlsAsync", () => { + test("should return empty array if there are no rss feed items in the database", async () => { + // Arrange + const { callback } = await setupUrlRestrictionAsync([]); + + // Act + const result = await callback(["http://example.com/feed"]); + + // Assert + expect(result).toEqual([]); + }); + + test("should return only the URLs that are present in the database", async () => { + // Arrange + const { callback } = await setupUrlRestrictionAsync(["http://example.com/feed"]); + + // Act + const result = await callback(["http://example.com/feed", "http://not-in-db.com/feed"]); + + // Assert + expect(result).toEqual(["http://example.com/feed"]); + }); + }); +}); + +function setupAccessCheck() { + const db = createDb(); + + return { + callback: (session: Session | null) => canAccessAllFeedsAsync(db, session), + db, + }; +} + +async function setupUrlRestrictionAsync(dbUrls: string[]) { + const db = createDb(); + const boardId = createId(); + await db.insert(boards).values({ + id: boardId, + name: "test", + }); + if (dbUrls.length >= 1) { + await db.insert(items).values( + dbUrls.map( + (url) => + ({ + id: createId(), + kind: "rssFeed", + boardId, + options: SuperJSON.stringify({ + feedUrls: [url], + enableRtl: false, + hideDescription: false, + textLinesClamp: 3, + maximumAmountPosts: 5, + showPosterImage: true, + } satisfies WidgetComponentProps<"rssFeed">["options"]), + }) satisfies InferInsertModel, + ), + ); + } + + return { + callback: (urls: string[]) => restrictUrlsAsync(db, urls), + db, + }; +} diff --git a/packages/api/src/router/user.ts b/packages/api/src/router/user.ts index f7ed6deb6..9c4f16c80 100644 --- a/packages/api/src/router/user.ts +++ b/packages/api/src/router/user.ts @@ -1,16 +1,18 @@ import { TRPCError } from "@trpc/server"; +import type { MySqlRawQueryResult } from "drizzle-orm/mysql2"; +import type { QueryResult } from "pg"; import { z } from "zod/v4"; -import { createSaltAsync, hashPasswordAsync } from "@homarr/auth"; +import { comparePasswordsAsync, hashPasswordAsync } from "@homarr/auth"; import { createId } from "@homarr/common"; import { createLogger } from "@homarr/core/infrastructure/logs"; import type { Database } from "@homarr/db"; -import { and, eq, like } from "@homarr/db"; +import { and, eq, handleTransactionsAsync, like } from "@homarr/db"; import { getMaxGroupPositionAsync } from "@homarr/db/queries"; import { boards, groupMembers, groupPermissions, groups, invites, users } from "@homarr/db/schema"; import { selectUserSchema } from "@homarr/db/validationSchemas"; -import { credentialsAdminGroup } from "@homarr/definitions"; import type { SupportedAuthProvider } from "@homarr/definitions"; +import { credentialsAdminGroup } from "@homarr/definitions"; import { byIdSchema } from "@homarr/validation/common"; import type { userBaseCreateSchema } from "@homarr/validation/user"; import { @@ -19,6 +21,7 @@ import { userChangePasswordApiSchema, userChangeSearchPreferencesSchema, userCreateSchema, + userDdgBangsSchema, userEditProfileSchema, userFirstDayOfWeekSchema, userInitSchema, @@ -90,15 +93,58 @@ export const userRouter = createTRPCRouter({ await checkUsernameAlreadyTakenAndThrowAsync(ctx.db, "credentials", input.username); - await createUserAsync(ctx.db, input); + const hashedPassword = await hashPasswordAsync(input.password); - // Delete invite as it's used - await ctx.db.delete(invites).where(inviteWhere); + const userId = createId(); + const user = { + id: userId, + name: input.username, + password: hashedPassword, + }; + + await handleTransactionsAsync(ctx.db, { + async handleAsync(db, schema) { + await db.transaction(async (trx) => { + await trx.insert(schema.users).values(user); + + // Delete invite as it's used + const queryResult = (await trx.delete(schema.invites).where(inviteWhere)) as + | QueryResult + | MySqlRawQueryResult; + let count: number; + if (Array.isArray(queryResult)) { + count = queryResult[0].affectedRows; + } else { + count = queryResult.rowCount ?? 0; + } + if (count === 0) { + throw new TRPCError({ + code: "FORBIDDEN", + message: "Invalid invite", + }); + } + }); + }, + handleSync(db) { + db.transaction((trx) => { + trx.insert(users).values(user).run(); + // Delete invite as it's used + const result = trx.delete(invites).where(inviteWhere).run(); + + if (result.changes === 0) { + throw new TRPCError({ + code: "FORBIDDEN", + message: "Invalid invite", + }); + } + }); + }, + }); }), create: permissionRequiredProcedure .requiresPermission("admin") .meta({ openapi: { method: "POST", path: "/api/users", tags: ["users"], protect: true } }) - .input(userCreateSchema) + .input(convertIntersectionToZodObject(userCreateSchema)) .output(z.void()) .mutation(async ({ ctx, input }) => { throwIfCredentialsDisabled(); @@ -231,6 +277,7 @@ export const userRouter = createTRPCRouter({ pingIconsEnabled: true, defaultSearchEngineId: true, openSearchInNewTab: true, + ddgBangs: true, }), ) .meta({ openapi: { method: "GET", path: "/api/users/{userId}", tags: ["users"], protect: true } }) @@ -256,6 +303,7 @@ export const userRouter = createTRPCRouter({ pingIconsEnabled: true, defaultSearchEngineId: true, openSearchInNewTab: true, + ddgBangs: true, }, where: eq(users.id, input.userId), }); @@ -329,7 +377,7 @@ export const userRouter = createTRPCRouter({ await ctx.db.delete(users).where(eq(users.id, input.userId)); }), changePassword: protectedProcedure - .input(userChangePasswordApiSchema) + .input(convertIntersectionToZodObject(userChangePasswordApiSchema)) .output(z.void()) .meta({ openapi: { method: "PATCH", path: "/api/users/{userId}/changePassword", tags: ["users"], protect: true } }) .mutation(async ({ ctx, input }) => { @@ -346,7 +394,6 @@ export const userRouter = createTRPCRouter({ columns: { id: true, password: true, - salt: true, provider: true, }, where: eq(users.id, input.userId), @@ -376,8 +423,7 @@ export const userRouter = createTRPCRouter({ }); if (isPreviousPasswordRequired) { - const previousPasswordHash = await hashPasswordAsync(input.previousPassword, dbUser.salt ?? ""); - const isValid = previousPasswordHash === dbUser.password; + const isValid = await comparePasswordsAsync(input.previousPassword, dbUser.password ?? ""); if (!isValid) { throw new TRPCError({ @@ -387,8 +433,7 @@ export const userRouter = createTRPCRouter({ } } - const salt = await createSaltAsync(); - const hashedPassword = await hashPasswordAsync(input.password, salt); + const hashedPassword = await hashPasswordAsync(input.password); await ctx.db .update(users) .set({ @@ -499,6 +544,33 @@ export const userRouter = createTRPCRouter({ }) .where(eq(users.id, ctx.session.user.id)); }), + changeDdgBangs: protectedProcedure + .input(convertIntersectionToZodObject(userDdgBangsSchema.and(byIdSchema))) + .output(z.void()) + .meta({ + openapi: { + method: "PATCH", + path: "/api/users/ddg-bangs", + tags: ["users"], + protect: true, + deprecated: true, + }, + }) + .mutation(async ({ input, ctx }) => { + if (!ctx.session.user.permissions.includes("admin") && ctx.session.user.id !== input.id) { + throw new TRPCError({ + code: "NOT_FOUND", + message: "User not found", + }); + } + + await ctx.db + .update(users) + .set({ + ddgBangs: input.ddgBangs, + }) + .where(eq(users.id, input.id)); + }), changeFirstDayOfWeek: protectedProcedure .input(convertIntersectionToZodObject(userFirstDayOfWeekSchema.and(byIdSchema))) .output(z.void()) @@ -536,8 +608,7 @@ export const userRouter = createTRPCRouter({ }); const createUserAsync = async (db: Database, input: Omit, "groupIds">) => { - const salt = await createSaltAsync(); - const hashedPassword = await hashPasswordAsync(input.password, salt); + const hashedPassword = await hashPasswordAsync(input.password); const userId = createId(); await db.insert(users).values({ @@ -545,7 +616,6 @@ const createUserAsync = async (db: Database, input: Omit, { openInNewTab: boolean | undefined }>, + input: Modify< + z.infer, + { openInNewTab: boolean | undefined; ddgBangsEnabled: boolean | undefined } + >, ) => { const user = session.user; - // Only admins can change other users passwords + // Only admins can change other users search preferences if (!user.permissions.includes("admin") && user.id !== input.userId) { throw new TRPCError({ code: "NOT_FOUND", @@ -45,6 +48,7 @@ export const changeSearchPreferencesAsync = async ( .set({ defaultSearchEngineId: input.defaultSearchEngineId, openSearchInNewTab: input.openInNewTab, + ddgBangs: input.ddgBangsEnabled, }) .where(eq(users.id, input.userId)); }; diff --git a/packages/api/src/router/widgets/anchor-notes.ts b/packages/api/src/router/widgets/anchor-notes.ts new file mode 100644 index 000000000..7e5b7043c --- /dev/null +++ b/packages/api/src/router/widgets/anchor-notes.ts @@ -0,0 +1,114 @@ +import { TRPCError } from "@trpc/server"; +import { z } from "zod/v4"; + +import { ResponseError } from "@homarr/common/server"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { anchorNotesListInputSchema, anchorNoteUpdateInputSchema, createIntegrationAsync } from "@homarr/integrations"; +import { anchorNoteRequestHandler, anchorNotesListRequestHandler } from "@homarr/request-handler/anchor-notes"; + +import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc"; + +const noteIdInput = z.object({ + noteId: z.string(), +}); + +const logger = createLogger({ module: "anchorNotesRouter" }); + +const isJsonDeltaString = (value: string) => { + try { + const parsed: unknown = JSON.parse(value); + return typeof parsed === "object" && parsed !== null && Array.isArray((parsed as { ops?: unknown }).ops); + } catch { + return false; + } +}; + +const normalizeAnchorContent = (content: string | undefined) => { + if (content === undefined) return undefined; + + const trimmed = content.trim(); + if (!trimmed) { + return JSON.stringify({ ops: [{ insert: "\n" }] }); + } + + if (isJsonDeltaString(content)) return content; + + const normalizedText = content.endsWith("\n") ? content : `${content}\n`; + return JSON.stringify({ ops: [{ insert: normalizedText }] }); +}; + +export const anchorNotesRouter = createTRPCRouter({ + listNotes: publicProcedure + .concat(createOneIntegrationMiddleware("query", "anchor")) + .input(anchorNotesListInputSchema) + .query(async ({ ctx, input }) => { + const handler = anchorNotesListRequestHandler.handler(ctx.integration, { ...input, limit: input.limit ?? 50 }); + + const { data } = await handler.getCachedOrUpdatedDataAsync({ + forceUpdate: false, + }); + + return data; + }), + getNote: publicProcedure + .concat(createOneIntegrationMiddleware("query", "anchor")) + .input(noteIdInput) + .query(async ({ ctx, input }) => { + const handler = anchorNoteRequestHandler.handler(ctx.integration, { noteId: input.noteId }); + + const { data } = await handler.getCachedOrUpdatedDataAsync({ + forceUpdate: false, + }); + + return data; + }), + updateNote: protectedProcedure + .concat(createOneIntegrationMiddleware("interact", "anchor")) + .input(anchorNoteUpdateInputSchema) + .mutation(async ({ ctx, input }) => { + const integrationInstance = await createIntegrationAsync(ctx.integration); + const normalizedContent = normalizeAnchorContent(input.content); + const isContentNormalized = + input.content !== undefined && normalizedContent !== undefined && input.content !== normalizedContent; + + try { + const updatedNote = await integrationInstance.updateNoteAsync({ + noteId: input.noteId, + ...(input.title !== undefined ? { title: input.title } : {}), + ...(normalizedContent !== undefined ? { content: normalizedContent } : {}), + }); + + const noteHandler = anchorNoteRequestHandler.handler(ctx.integration, { noteId: input.noteId }); + await noteHandler.invalidateAsync(); + + return updatedNote; + } catch (error) { + if (error instanceof ResponseError && error.statusCode === 400) { + logger.warn("Anchor update note failed validation", { + noteId: input.noteId, + integrationId: ctx.integration.id, + contentLength: input.content?.length ?? 0, + contentIsJsonDelta: input.content ? isJsonDeltaString(input.content) : false, + contentNormalized: isContentNormalized, + }); + } + + if (error instanceof ResponseError && error.statusCode === 403) { + throw new TRPCError({ + code: "FORBIDDEN", + message: "You do not have permission to edit this note", + }); + } + + if (error instanceof ResponseError && error.statusCode === 404) { + throw new TRPCError({ + code: "NOT_FOUND", + message: "Note not found", + }); + } + + throw error; + } + }), +}); diff --git a/packages/api/src/router/widgets/app.ts b/packages/api/src/router/widgets/app.ts index 7a65225a6..d07241725 100644 --- a/packages/api/src/router/widgets/app.ts +++ b/packages/api/src/router/widgets/app.ts @@ -1,43 +1,97 @@ +import { TRPCError } from "@trpc/server"; import { observable } from "@trpc/server/observable"; import { z } from "zod/v4"; +import { getServerSettingByKeyAsync } from "@homarr/db/queries"; import { sendPingRequestAsync } from "@homarr/ping"; import { pingChannel, pingUrlChannel } from "@homarr/redis"; import { createTRPCRouter, publicProcedure } from "../../trpc"; +import { AppRepository } from "../app"; export const appRouter = createTRPCRouter({ - ping: publicProcedure.input(z.object({ url: z.string() })).query(async ({ input }) => { - const pingResult = await sendPingRequestAsync(input.url); + ping: publicProcedure.input(z.object({ id: z.string() })).query(async ({ ctx, input }) => { + const boardSettings = await getServerSettingByKeyAsync(ctx.db, "board"); + if (boardSettings.forceDisableStatus) { + throw new TRPCError({ + code: "FORBIDDEN", + message: "Ping functionality is disabled by server settings", + }); + } + + const repository = new AppRepository(ctx.db, ctx.session?.user ?? null); + const app = await repository.getByIdAsync(input.id); + + if (!app) { + throw new TRPCError({ + code: "NOT_FOUND", + message: "App not found", + }); + } + + const pingUrl = app.pingUrl ?? app.href; + + if (!pingUrl) { + throw new TRPCError({ + code: "CONFLICT", + message: "No URL to ping configured for this app", + }); + } + + const pingResult = await sendPingRequestAsync(pingUrl); return { - url: input.url, + url: pingUrl, ...pingResult, }; }), updatedPing: publicProcedure .input( z.object({ - url: z.string(), + id: z.string(), }), ) - .subscription(async ({ input }) => { - await pingUrlChannel.addAsync(input.url); + .subscription(async ({ ctx, input }) => { + const boardSettings = await getServerSettingByKeyAsync(ctx.db, "board"); + if (boardSettings.forceDisableStatus) { + throw new TRPCError({ + code: "FORBIDDEN", + message: "Ping functionality is disabled by server settings", + }); + } - const pingResult = await sendPingRequestAsync(input.url); + const repository = new AppRepository(ctx.db, ctx.session?.user ?? null); + const app = await repository.getByIdAsync(input.id); + + if (!app) { + throw new TRPCError({ + code: "NOT_FOUND", + message: "App not found", + }); + } + + const pingUrl = app.pingUrl ?? app.href; + + if (!pingUrl) { + throw new TRPCError({ + code: "CONFLICT", + message: "No URL to ping configured for this app", + }); + } + + await pingUrlChannel.addAsync(pingUrl); return observable<{ url: string; statusCode: number; durationMs: number } | { url: string; error: string }>( (emit) => { - emit.next({ url: input.url, ...pingResult }); const unsubscribe = pingChannel.subscribe((message) => { // Only emit if same url - if (message.url !== input.url) return; + if (message.url !== pingUrl) return; emit.next(message); }); return () => { unsubscribe(); - void pingUrlChannel.removeAsync(input.url); + void pingUrlChannel.removeAsync(pingUrl); }; }, ); diff --git a/packages/api/src/router/widgets/calendar.ts b/packages/api/src/router/widgets/calendar.ts index 5c8322299..5119cfc36 100644 --- a/packages/api/src/router/widgets/calendar.ts +++ b/packages/api/src/router/widgets/calendar.ts @@ -2,6 +2,8 @@ import { observable } from "@trpc/server/observable"; import { z } from "zod/v4"; import type { Modify } from "@homarr/common/types"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import type { Integration } from "@homarr/db/schema"; import type { IntegrationKindByCategory } from "@homarr/definitions"; import { getIntegrationKindsByCategory } from "@homarr/definitions"; @@ -12,6 +14,8 @@ import { calendarMonthRequestHandler } from "@homarr/request-handler/calendar"; import { createManyIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; +const logger = createLogger({ module: "calendarRouter" }); + export const calendarRouter = createTRPCRouter({ findAllEvents: publicProcedure .input( @@ -24,7 +28,7 @@ export const calendarRouter = createTRPCRouter({ ) .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("calendar"))) .query(async ({ ctx, input }) => { - return await Promise.all( + const settled = await Promise.allSettled( ctx.integrations.map(async (integration) => { const { integrationIds: _integrationIds, ...handlerInput } = input; const innerHandler = calendarMonthRequestHandler.handler(integration, handlerInput); @@ -40,6 +44,24 @@ export const calendarRouter = createTRPCRouter({ }; }), ); + + return settled.flatMap((result, index) => { + if (result.status === "fulfilled") { + return [result.value]; + } + const integration = ctx.integrations[index]; + logger.warn( + new ErrorWithMetadata( + "Calendar integration request failed; skipping events for this integration", + { + integrationId: integration?.id, + integrationKind: integration?.kind, + }, + { cause: result.reason }, + ), + ); + return []; + }); }), subscribeToEvents: publicProcedure .input( diff --git a/packages/api/src/router/widgets/coolify.ts b/packages/api/src/router/widgets/coolify.ts new file mode 100644 index 000000000..8bdaa6f3e --- /dev/null +++ b/packages/api/src/router/widgets/coolify.ts @@ -0,0 +1,50 @@ +import { observable } from "@trpc/server/observable"; + +import type { CoolifyInstanceInfo } from "@homarr/integrations/types"; +import { coolifyRequestHandler } from "@homarr/request-handler/coolify"; + +import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createTRPCRouter, publicProcedure } from "../../trpc"; + +export const coolifyRouter = createTRPCRouter({ + getInstancesInfo: publicProcedure + .concat(createManyIntegrationMiddleware("query", "coolify")) + .query(async ({ ctx }) => { + const results = await Promise.all( + ctx.integrations.map(async (integration) => { + const innerHandler = coolifyRequestHandler.handler(integration, {}); + const { data, timestamp } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + + return { + integrationId: integration.id, + integrationName: integration.name, + integrationUrl: integration.url, + instanceInfo: data, + updatedAt: timestamp, + }; + }), + ); + + return results; + }), + subscribeInstancesInfo: publicProcedure + .concat(createManyIntegrationMiddleware("query", "coolify")) + .subscription(({ ctx }) => { + return observable<{ integrationId: string; instanceInfo: CoolifyInstanceInfo; timestamp: Date }>((emit) => { + const unsubscribes = ctx.integrations.map((integration) => { + const innerHandler = coolifyRequestHandler.handler(integration, {}); + return innerHandler.subscribe((instanceInfo) => { + emit.next({ + integrationId: integration.id, + instanceInfo, + timestamp: new Date(), + }); + }); + }); + + return () => { + unsubscribes.forEach((unsubscribe) => unsubscribe()); + }; + }); + }), +}); diff --git a/packages/api/src/router/widgets/health-monitoring.ts b/packages/api/src/router/widgets/health-monitoring.ts index 14ab160f7..46741ae1c 100644 --- a/packages/api/src/router/widgets/health-monitoring.ts +++ b/packages/api/src/router/widgets/health-monitoring.ts @@ -9,7 +9,9 @@ import { createTRPCRouter, publicProcedure } from "../../trpc"; export const healthMonitoringRouter = createTRPCRouter({ getSystemHealthStatus: publicProcedure - .concat(createManyIntegrationMiddleware("query", "openmediavault", "dashDot", "truenas", "unraid", "mock")) + .concat( + createManyIntegrationMiddleware("query", "openmediavault", "dashDot", "truenas", "unraid", "glances", "mock"), + ) .query(async ({ ctx }) => { return await Promise.all( ctx.integrations.map(async (integration) => { @@ -26,7 +28,9 @@ export const healthMonitoringRouter = createTRPCRouter({ ); }), subscribeSystemHealthStatus: publicProcedure - .concat(createManyIntegrationMiddleware("query", "openmediavault", "dashDot", "truenas", "unraid", "mock")) + .concat( + createManyIntegrationMiddleware("query", "openmediavault", "dashDot", "truenas", "unraid", "glances", "mock"), + ) .subscription(({ ctx }) => { return observable<{ integrationId: string; healthInfo: SystemHealthMonitoring; timestamp: Date }>((emit) => { const unsubscribes: (() => void)[] = []; diff --git a/packages/api/src/router/widgets/immich.ts b/packages/api/src/router/widgets/immich.ts new file mode 100644 index 000000000..f1428a80c --- /dev/null +++ b/packages/api/src/router/widgets/immich.ts @@ -0,0 +1,42 @@ +import { z } from "zod/v4"; + +import { getIntegrationKindsByCategory } from "@homarr/definitions"; +import { + immichAlbumRequestHandler, + immichAlbumsRequestHandler, + immichStatsRequestHandler, +} from "@homarr/request-handler/immich"; + +import type { IntegrationAction } from "../../middlewares/integration"; +import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createTRPCRouter, publicProcedure } from "../../trpc"; + +const createImmichIntegrationMiddleware = (action: IntegrationAction) => + createOneIntegrationMiddleware(action, ...getIntegrationKindsByCategory("photoService")); + +export const immichRouter = createTRPCRouter({ + getServerStats: publicProcedure.concat(createImmichIntegrationMiddleware("query")).query(async ({ ctx }) => { + const innerHandler = immichStatsRequestHandler.handler(ctx.integration, {}); + const data = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + return data.data; + }), + + getAlbum: publicProcedure + .concat(createImmichIntegrationMiddleware("query")) + .input( + z.object({ + albumId: z.string(), + }), + ) + .query(async ({ ctx, input }) => { + const innerHandler = immichAlbumRequestHandler.handler(ctx.integration, { albumId: input.albumId }); + const data = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + return data.data; + }), + + getAlbums: publicProcedure.concat(createImmichIntegrationMiddleware("query")).query(async ({ ctx }) => { + const innerHandler = immichAlbumsRequestHandler.handler(ctx.integration, {}); + const data = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + return data.data; + }), +}); diff --git a/packages/api/src/router/widgets/index.ts b/packages/api/src/router/widgets/index.ts index 8175aaab3..e40c3f000 100644 --- a/packages/api/src/router/widgets/index.ts +++ b/packages/api/src/router/widgets/index.ts @@ -1,46 +1,34 @@ +import { lazy } from "@trpc/server"; + import { createTRPCRouter } from "../../trpc"; -import { appRouter } from "./app"; -import { calendarRouter } from "./calendar"; -import { dnsHoleRouter } from "./dns-hole"; -import { downloadsRouter } from "./downloads"; -import { firewallRouter } from "./firewall"; -import { healthMonitoringRouter } from "./health-monitoring"; -import { indexerManagerRouter } from "./indexer-manager"; -import { mediaReleaseRouter } from "./media-release"; -import { mediaRequestsRouter } from "./media-requests"; -import { mediaServerRouter } from "./media-server"; -import { mediaTranscodingRouter } from "./media-transcoding"; -import { minecraftRouter } from "./minecraft"; -import { networkControllerRouter } from "./network-controller"; -import { notebookRouter } from "./notebook"; -import { notificationsRouter } from "./notifications"; -import { optionsRouter } from "./options"; -import { releasesRouter } from "./releases"; -import { rssFeedRouter } from "./rssFeed"; -import { smartHomeRouter } from "./smart-home"; -import { stockPriceRouter } from "./stocks"; -import { weatherRouter } from "./weather"; export const widgetRouter = createTRPCRouter({ - notebook: notebookRouter, - weather: weatherRouter, - app: appRouter, - dnsHole: dnsHoleRouter, - smartHome: smartHomeRouter, - stockPrice: stockPriceRouter, - mediaServer: mediaServerRouter, - mediaRelease: mediaReleaseRouter, - calendar: calendarRouter, - downloads: downloadsRouter, - mediaRequests: mediaRequestsRouter, - rssFeed: rssFeedRouter, - indexerManager: indexerManagerRouter, - healthMonitoring: healthMonitoringRouter, - mediaTranscoding: mediaTranscodingRouter, - minecraft: minecraftRouter, - options: optionsRouter, - releases: releasesRouter, - networkController: networkControllerRouter, - firewall: firewallRouter, - notifications: notificationsRouter, + anchorNotes: lazy(() => import("./anchor-notes").then((mod) => mod.anchorNotesRouter)), + coolify: lazy(() => import("./coolify").then((mod) => mod.coolifyRouter)), + immich: lazy(() => import("./immich").then((mod) => mod.immichRouter)), + notebook: lazy(() => import("./notebook").then((mod) => mod.notebookRouter)), + weather: lazy(() => import("./weather").then((mod) => mod.weatherRouter)), + app: lazy(() => import("./app").then((mod) => mod.appRouter)), + dnsHole: lazy(() => import("./dns-hole").then((mod) => mod.dnsHoleRouter)), + smartHome: lazy(() => import("./smart-home").then((mod) => mod.smartHomeRouter)), + stockPrice: lazy(() => import("./stocks").then((mod) => mod.stockPriceRouter)), + mediaServer: lazy(() => import("./media-server").then((mod) => mod.mediaServerRouter)), + mediaRelease: lazy(() => import("./media-release").then((mod) => mod.mediaReleaseRouter)), + calendar: lazy(() => import("./calendar").then((mod) => mod.calendarRouter)), + downloads: lazy(() => import("./downloads").then((mod) => mod.downloadsRouter)), + mediaRequests: lazy(() => import("./media-requests").then((mod) => mod.mediaRequestsRouter)), + rssFeed: lazy(() => import("./rssFeed").then((mod) => mod.rssFeedRouter)), + indexerManager: lazy(() => import("./indexer-manager").then((mod) => mod.indexerManagerRouter)), + healthMonitoring: lazy(() => import("./health-monitoring").then((mod) => mod.healthMonitoringRouter)), + mediaTranscoding: lazy(() => import("./media-transcoding").then((mod) => mod.mediaTranscodingRouter)), + minecraft: lazy(() => import("./minecraft").then((mod) => mod.minecraftRouter)), + options: lazy(() => import("./options").then((mod) => mod.optionsRouter)), + releases: lazy(() => import("./releases").then((mod) => mod.releasesRouter)), + networkController: lazy(() => import("./network-controller").then((mod) => mod.networkControllerRouter)), + firewall: lazy(() => import("./firewall").then((mod) => mod.firewallRouter)), + notifications: lazy(() => import("./notifications").then((mod) => mod.notificationsRouter)), + timetable: lazy(() => import("./timetable").then((mod) => mod.timetableRouter)), + tracearr: lazy(() => import("./tracearr").then((mod) => mod.tracearrRouter)), + speedtestTracker: lazy(() => import("./speedtest-tracker").then((mod) => mod.speedtestTrackerRouter)), + umami: lazy(() => import("./umami").then((mod) => mod.umamiRouter)), }); diff --git a/packages/api/src/router/widgets/rssFeed.ts b/packages/api/src/router/widgets/rssFeed.ts index b66662c2e..ec9c223e0 100644 --- a/packages/api/src/router/widgets/rssFeed.ts +++ b/packages/api/src/router/widgets/rssFeed.ts @@ -1,37 +1,122 @@ +import { observable } from "@trpc/server/observable"; +import SuperJSON from "superjson"; import { z } from "zod/v4"; +import type { Session } from "@homarr/auth"; +import type { Database } from "@homarr/db"; +import { eq } from "@homarr/db"; +import { items, users } from "@homarr/db/schema"; +import type { ExtendedFeedEntry } from "@homarr/request-handler/rss-feeds"; import { rssFeedsRequestHandler } from "@homarr/request-handler/rss-feeds"; +import type { WidgetComponentProps } from "../../../../widgets/src"; import { createTRPCRouter, publicProcedure } from "../../trpc"; -export const rssFeedRouter = createTRPCRouter({ - getFeeds: publicProcedure - .input( - z.object({ - urls: z.array(z.string()), - maximumAmountPosts: z.number(), - }), - ) - .query(async ({ input }) => { - const rssFeeds = await Promise.all( - input.urls.map(async (url) => { - const innerHandler = rssFeedsRequestHandler.handler({ - url, - count: input.maximumAmountPosts, - }); - return await innerHandler.getCachedOrUpdatedDataAsync({ - forceUpdate: false, - }); - }), - ); - - return rssFeeds - .flatMap((rssFeed) => rssFeed.data.entries) - .slice(0, input.maximumAmountPosts) - .sort((entryA, entryB) => { - return entryA.published && entryB.published - ? new Date(entryB.published).getTime() - new Date(entryA.published).getTime() - : 0; - }); - }), +const feedsInput = z.object({ + urls: z.array(z.string()).max(100), + maximumAmountPosts: z.number(), }); + +export const rssFeedRouter = createTRPCRouter({ + getFeeds: publicProcedure.input(feedsInput).query(async ({ ctx, input }) => { + const urls = (await canAccessAllFeedsAsync(ctx.db, ctx.session)) + ? input.urls + : await restrictUrlsAsync(ctx.db, input.urls); + + const rssFeeds = await Promise.all( + urls.map(async (url) => { + const innerHandler = rssFeedsRequestHandler.handler({ + url, + count: input.maximumAmountPosts, + }); + return await innerHandler.getCachedOrUpdatedDataAsync({ + forceUpdate: false, + }); + }), + ); + + return rssFeeds + .flatMap((rssFeed) => rssFeed.data.entries) + .slice(0, input.maximumAmountPosts) + .sort((entryA, entryB) => { + return entryA.published && entryB.published + ? new Date(entryB.published).getTime() - new Date(entryA.published).getTime() + : 0; + }); + }), + subscribeFeeds: publicProcedure.input(feedsInput).subscription(({ input }) => { + // It is not necessary to check access to all feeds here, as the client will only subscribe to feeds which already exist + return observable<{ url: string; entries: ExtendedFeedEntry[] }>((emit) => { + const unsubscribes = input.urls.map((url) => { + const innerHandler = rssFeedsRequestHandler.handler({ url, count: input.maximumAmountPosts }); + return innerHandler.subscribe((data) => { + emit.next({ url, entries: data.entries }); + }); + }); + + return () => { + unsubscribes.forEach((unsubscribe) => unsubscribe()); + }; + }); + }), +}); + +export async function canAccessAllFeedsAsync(db: Database, session: Session | null) { + // Unauthenticated users can never access all feeds + if (!session) return false; + // Users with those permissions can modify a board and therefore add a rss feed widget with any feed url + if (session.user.permissions.includes("board-create") || session.user.permissions.includes("board-modify-all")) { + return true; + } + + const user = await db.query.users.findFirst({ + where: eq(users.id, session.user.id), + with: { + boards: { + columns: { id: true }, + }, + boardPermissions: true, + groups: { + with: { + group: { + with: { boardPermissions: true }, + }, + }, + }, + }, + }); + + // Should never happen as the user is authenticated, but just in case + if (!user) return false; + + // If user is owner of any board he has full access and can therefore create widgets with any feed url + if (user.boards.length >= 1) return true; + + // If user has direct permissions on any board that allow modifying it, he can add a rss feed widget with any feed url + if (user.boardPermissions.some(({ permission }) => permission === "modify" || permission === "full")) { + return true; + } + + // If user is in a group that has permissions on any board that allow modifying it, he can add a rss feed widget with any feed url + if ( + user.groups.some(({ group }) => + group.boardPermissions.some(({ permission }) => permission === "modify" || permission === "full"), + ) + ) { + return true; + } + + // Fallback to not allowing access to all feeds + return false; +} + +export async function restrictUrlsAsync(db: Database, urls: string[]) { + const rssFeedItems = await db.query.items.findMany({ + where: eq(items.kind, "rssFeed"), + }); + + const configuredUrls = rssFeedItems + .map((item) => SuperJSON.parse["options"]>(item.options)) + .flatMap((options) => options.feedUrls); + return urls.filter((url) => configuredUrls.includes(url)); +} diff --git a/packages/api/src/router/widgets/speedtest-tracker.ts b/packages/api/src/router/widgets/speedtest-tracker.ts new file mode 100644 index 000000000..be4245921 --- /dev/null +++ b/packages/api/src/router/widgets/speedtest-tracker.ts @@ -0,0 +1,55 @@ +import { observable } from "@trpc/server/observable"; + +import type { SpeedtestTrackerDashboardData } from "@homarr/integrations/types"; +import { speedtestTrackerRequestHandler } from "@homarr/request-handler/speedtest-tracker"; + +import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createTRPCRouter, publicProcedure } from "../../trpc"; + +export const speedtestTrackerRouter = createTRPCRouter({ + getDashboard: publicProcedure + .concat(createManyIntegrationMiddleware("query", "speedtestTracker")) + .query(async ({ ctx }) => { + const results = await Promise.all( + ctx.integrations.map(async (integration) => { + const innerHandler = speedtestTrackerRequestHandler.handler(integration, {}); + const { data, timestamp } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + + return { + integrationId: integration.id, + integrationName: integration.name, + integrationUrl: integration.url, + dashboard: data, + updatedAt: timestamp, + }; + }), + ); + + return results; + }), + + subscribeToDashboard: publicProcedure + .concat(createManyIntegrationMiddleware("query", "speedtestTracker")) + .subscription(({ ctx }) => { + return observable<{ + integrationId: string; + dashboard: SpeedtestTrackerDashboardData; + timestamp: Date; + }>((emit) => { + const unsubscribes = ctx.integrations.map((integration) => { + const innerHandler = speedtestTrackerRequestHandler.handler(integration, {}); + return innerHandler.subscribe((dashboard) => { + emit.next({ + integrationId: integration.id, + dashboard, + timestamp: new Date(), + }); + }); + }); + + return () => { + unsubscribes.forEach((unsubscribe) => unsubscribe()); + }; + }); + }), +}); diff --git a/packages/api/src/router/widgets/timetable.ts b/packages/api/src/router/widgets/timetable.ts new file mode 100644 index 000000000..787be4c37 --- /dev/null +++ b/packages/api/src/router/widgets/timetable.ts @@ -0,0 +1,43 @@ +import z from "zod"; + +import { getIntegrationKindsByCategory } from "@homarr/definitions"; +import { timetableOptionsSchema } from "@homarr/integrations/types"; +import { + timetableGetTimetableRequestHandler, + timetableSearchStationsRequestHandler, +} from "@homarr/request-handler/timetable"; + +import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createTRPCRouter, publicProcedure } from "../../trpc"; + +export const timetableRouter = createTRPCRouter({ + getTimetable: publicProcedure + .concat(createOneIntegrationMiddleware("query", ...getIntegrationKindsByCategory("timetable"))) + .input(timetableOptionsSchema) + .query(async ({ input, ctx }) => { + const innerHandler = timetableGetTimetableRequestHandler.handler(ctx.integration, { + stationId: input.stationId, + limit: input.limit, + }); + + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + + return data; + }), + searchStations: publicProcedure + .concat(createOneIntegrationMiddleware("query", ...getIntegrationKindsByCategory("timetable"))) + .input( + z.object({ + query: z.string(), + }), + ) + .query(async ({ input, ctx }) => { + const innerHandler = timetableSearchStationsRequestHandler.handler(ctx.integration, { + query: input.query, + }); + + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + + return data; + }), +}); diff --git a/packages/api/src/router/widgets/tracearr.ts b/packages/api/src/router/widgets/tracearr.ts new file mode 100644 index 000000000..d46c80c66 --- /dev/null +++ b/packages/api/src/router/widgets/tracearr.ts @@ -0,0 +1,48 @@ +import { observable } from "@trpc/server/observable"; + +import type { TracearrDashboardData } from "@homarr/integrations/types"; +import { tracearrRequestHandler } from "@homarr/request-handler/tracearr"; + +import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createTRPCRouter, publicProcedure } from "../../trpc"; + +export const tracearrRouter = createTRPCRouter({ + getDashboard: publicProcedure.concat(createManyIntegrationMiddleware("query", "tracearr")).query(async ({ ctx }) => { + const results = await Promise.all( + ctx.integrations.map(async (integration) => { + const innerHandler = tracearrRequestHandler.handler(integration, {}); + const { data, timestamp } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + + return { + integrationId: integration.id, + integrationName: integration.name, + integrationUrl: integration.url, + dashboard: data, + updatedAt: timestamp, + }; + }), + ); + + return results; + }), + subscribeToDashboard: publicProcedure + .concat(createManyIntegrationMiddleware("query", "tracearr")) + .subscription(({ ctx }) => { + return observable<{ integrationId: string; dashboard: TracearrDashboardData; timestamp: Date }>((emit) => { + const unsubscribes = ctx.integrations.map((integration) => { + const innerHandler = tracearrRequestHandler.handler(integration, {}); + return innerHandler.subscribe((dashboard) => { + emit.next({ + integrationId: integration.id, + dashboard, + timestamp: new Date(), + }); + }); + }); + + return () => { + unsubscribes.forEach((unsubscribe) => unsubscribe()); + }; + }); + }), +}); diff --git a/packages/api/src/router/widgets/umami.ts b/packages/api/src/router/widgets/umami.ts new file mode 100644 index 000000000..2c240f4bb --- /dev/null +++ b/packages/api/src/router/widgets/umami.ts @@ -0,0 +1,205 @@ +import { observable } from "@trpc/server/observable"; +import { z } from "zod/v4"; + +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; +import { createIntegrationAsync } from "@homarr/integrations"; +import { + umamiActiveVisitorsRequestHandler, + umamiEventNamesRequestHandler, + umamiMultiEventRequestHandler, + umamiRequestHandler, + umamiTopPagesRequestHandler, + umamiTopReferrersRequestHandler, +} from "@homarr/request-handler/umami"; + +import { createManyIntegrationMiddleware, createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createTRPCRouter, publicProcedure } from "../../trpc"; + +const logger = createLogger({ module: "umami-router" }); + +export const umamiRouter = createTRPCRouter({ + getWebsites: publicProcedure.concat(createOneIntegrationMiddleware("query", "umami")).query(async ({ ctx }) => { + try { + const instance = await createIntegrationAsync(ctx.integration); + return await instance.getWebsitesAsync(); + } catch (error) { + logger.warn(new Error("Failed to load websites", { cause: error })); + return []; + } + }), + + getVisitorStats: publicProcedure + .input( + z.object({ + websiteId: z.string(), + timeFrame: z.string(), + eventName: z.string().optional(), + }), + ) + .concat(createManyIntegrationMiddleware("query", "umami")) + .query(async ({ ctx, input }) => { + const results = await Promise.all( + ctx.integrations.map(async (integration) => { + const innerHandler = umamiRequestHandler.handler(integration, { + websiteId: input.websiteId, + timeFrame: input.timeFrame, + eventName: input.eventName, + }); + const { data, timestamp } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + + return { + integrationId: integration.id, + integrationName: integration.name, + integrationUrl: integration.url, + visitorStats: data, + updatedAt: timestamp, + }; + }), + ); + + return results; + }), + + getEventNames: publicProcedure + .input(z.object({ websiteId: z.string() })) + .concat(createOneIntegrationMiddleware("query", "umami")) + .query(async ({ ctx, input }) => { + try { + const innerHandler = umamiEventNamesRequestHandler.handler(ctx.integration, { websiteId: input.websiteId }); + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + return data; + } catch (error) { + logger.warn( + new ErrorWithMetadata("Failed to load event names", { websiteId: input.websiteId }, { cause: error }), + ); + return []; + } + }), + + getTopPages: publicProcedure + .input( + z.object({ + websiteId: z.string(), + timeFrame: z.string(), + limit: z.number().int().min(1).max(500), + }), + ) + .concat(createOneIntegrationMiddleware("query", "umami")) + .query(async ({ ctx, input }) => { + try { + const innerHandler = umamiTopPagesRequestHandler.handler(ctx.integration, { + websiteId: input.websiteId, + timeFrame: input.timeFrame, + limit: input.limit, + }); + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + return data; + } catch (error) { + logger.warn( + new ErrorWithMetadata( + "Failed to load top pages", + { websiteId: input.websiteId, timeFrame: input.timeFrame, limit: input.limit }, + { cause: error }, + ), + ); + return []; + } + }), + + getTopReferrers: publicProcedure + .input( + z.object({ + websiteId: z.string(), + timeFrame: z.string(), + limit: z.number().int().min(1).max(500), + }), + ) + .concat(createOneIntegrationMiddleware("query", "umami")) + .query(async ({ ctx, input }) => { + try { + const innerHandler = umamiTopReferrersRequestHandler.handler(ctx.integration, { + websiteId: input.websiteId, + timeFrame: input.timeFrame, + limit: input.limit, + }); + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + return data; + } catch (error) { + logger.warn( + new ErrorWithMetadata( + "Failed to load top referrers", + { websiteId: input.websiteId, timeFrame: input.timeFrame, limit: input.limit }, + { cause: error }, + ), + ); + return []; + } + }), + + getMultiEventTimeSeries: publicProcedure + .input( + z.object({ + websiteId: z.string(), + timeFrame: z.string(), + eventNames: z.array(z.string()), + }), + ) + .concat(createOneIntegrationMiddleware("query", "umami")) + .query(async ({ ctx, input }) => { + try { + const sortedNames = [...input.eventNames].sort(); + const innerHandler = umamiMultiEventRequestHandler.handler(ctx.integration, { + websiteId: input.websiteId, + timeFrame: input.timeFrame, + eventNames: sortedNames, + }); + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + return data; + } catch (error) { + logger.warn( + new ErrorWithMetadata( + "Failed to load multi-event time series", + { websiteId: input.websiteId, timeFrame: input.timeFrame, eventNames: JSON.stringify(input.eventNames) }, + { cause: error }, + ), + ); + return []; + } + }), + + getActiveVisitors: publicProcedure + .input(z.object({ websiteId: z.string() })) + .concat(createOneIntegrationMiddleware("query", "umami")) + .query(async ({ ctx, input }) => { + try { + const innerHandler = umamiActiveVisitorsRequestHandler.handler(ctx.integration, { + websiteId: input.websiteId, + }); + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + return data; + } catch (error) { + logger.warn( + new ErrorWithMetadata("Failed to load active visitors", { websiteId: input.websiteId }, { cause: error }), + ); + return 0; + } + }), + + subscribeActiveVisitors: publicProcedure + .input(z.object({ websiteId: z.string() })) + .concat(createOneIntegrationMiddleware("query", "umami")) + .subscription(({ ctx, input }) => { + return observable((emit) => { + const innerHandler = umamiActiveVisitorsRequestHandler.handler(ctx.integration, { + websiteId: input.websiteId, + }); + const unsubscribe = innerHandler.subscribe((count) => { + emit.next(count); + }); + return () => { + unsubscribe(); + }; + }); + }), +}); diff --git a/packages/api/src/services/duckduckgo-bangs.ts b/packages/api/src/services/duckduckgo-bangs.ts new file mode 100644 index 000000000..297f5c8ed --- /dev/null +++ b/packages/api/src/services/duckduckgo-bangs.ts @@ -0,0 +1,55 @@ +import { duckDuckGoBangsRequestHandler } from "@homarr/request-handler/duckduckgo-bangs"; +import type { DuckDuckGoBang } from "@homarr/request-handler/duckduckgo-bangs"; + +// DuckDuckGo bang keys are intentionally short: +// - `t`: token (e.g. "yt"), `s`: display name, `u`: URL template (contains `{{{s}}}`) +// - `d`: domain, `c`: category, `sc`: subcategory, `r`: rank (optional) + +const normalizeBangToken = (token: string) => token.toLowerCase().trim(); + +/** + * Binary search to find the first index where bang.t >= tokenPrefix. + * This is O(log n) vs O(n) for findIndex, which matters because DuckDuckGo + * has ~13,000+ bangs. Combined with the pre-sorted data, this allows + * efficient prefix matching by finding the start position and iterating + * only through consecutive matches. + */ +const lowerBound = (arr: DuckDuckGoBang[], tokenPrefix: string) => { + let low = 0; + let high = arr.length; + while (low < high) { + const mid = (low + high) >> 1; + const midBang = arr[mid]; + // Must use the same ordering as the source list sort (localeCompare), + // otherwise binary search can miss tokens with symbols like "&" or "_". + if (!midBang || midBang.t.localeCompare(tokenPrefix) >= 0) { + high = mid; + continue; + } + + low = mid + 1; + } + return low; +}; + +export const searchDuckDuckGoBangsAsync = async (input: { + query: string; + limit: number; +}): Promise => { + const queryTokenPrefix = normalizeBangToken(input.query); + if (!queryTokenPrefix) return []; + + const { data: allBangs } = await duckDuckGoBangsRequestHandler.handler({}).getCachedOrUpdatedDataAsync({}); + const startIndex = lowerBound(allBangs, queryTokenPrefix); + const matches: DuckDuckGoBang[] = []; + + for (let index = startIndex; index < allBangs.length; index++) { + const bang = allBangs[index]; + if (!bang) break; + if (!bang.t.startsWith(queryTokenPrefix)) break; + matches.push(bang); + if (matches.length >= input.limit) break; + } + + return matches; +}; diff --git a/packages/auth/api-key/get-api-key-session.ts b/packages/auth/api-key/get-api-key-session.ts index 6fbaec972..632271498 100644 --- a/packages/auth/api-key/get-api-key-session.ts +++ b/packages/auth/api-key/get-api-key-session.ts @@ -5,7 +5,7 @@ import type { Database } from "@homarr/db"; import { eq } from "@homarr/db"; import { apiKeys } from "@homarr/db/schema"; -import { hashPasswordAsync } from "../security"; +import { comparePasswordsAsync } from "../security"; import { createSessionAsync } from "../server"; const logger = createLogger({ module: "apiKeyAuth" }); @@ -41,7 +41,6 @@ export const getSessionFromApiKeyAsync = async ( columns: { id: true, apiKey: true, - salt: true, }, with: { user: { @@ -60,9 +59,9 @@ export const getSessionFromApiKeyAsync = async ( return null; } - const hashedApiKey = await hashPasswordAsync(apiKey, apiKeyFromDb.salt); + const isValid = await comparePasswordsAsync(apiKey, apiKeyFromDb.apiKey); - if (apiKeyFromDb.apiKey !== hashedApiKey) { + if (!isValid) { logger.warn("Failed to authenticate with api-key", { ipAddress, userAgent, reason: "API_KEY_MISMATCH" }); return null; } diff --git a/packages/auth/api-key/test/get-api-key-session.spec.ts b/packages/auth/api-key/test/get-api-key-session.spec.ts index 5040ea441..dac713bd8 100644 --- a/packages/auth/api-key/test/get-api-key-session.spec.ts +++ b/packages/auth/api-key/test/get-api-key-session.spec.ts @@ -5,7 +5,7 @@ import { createId } from "@homarr/common"; import { apiKeys, users } from "@homarr/db/schema"; import { createDb } from "@homarr/db/test"; -import { createSaltAsync, hashPasswordAsync } from "../../security"; +import { hashPasswordAsync } from "../../security"; import { getSessionFromApiKeyAsync } from "../get-api-key-session"; // Mock the logger to avoid console output during tests @@ -118,11 +118,9 @@ const setupAsync = async (options?: SetupOptions) => { }); if (options?.token) { - const salt = await createSaltAsync(); await db.insert(apiKeys).values({ id: defaultApiKeyId, - apiKey: await hashPasswordAsync(options.token, salt), - salt, + apiKey: await hashPasswordAsync(options.token), userId: defaultUserId, }); } diff --git a/packages/auth/callbacks.ts b/packages/auth/callbacks.ts index 8f1168ad8..51c9c83e5 100644 --- a/packages/auth/callbacks.ts +++ b/packages/auth/callbacks.ts @@ -36,7 +36,7 @@ export const createSessionAsync = async ( ...user, email: user.email ?? "", permissions: await getCurrentUserPermissionsAsync(db, user.id), - colorScheme: "dark", + colorScheme: "auto", }, } as Session; }; diff --git a/packages/auth/package.json b/packages/auth/package.json index 63b0db014..c0f98fdfc 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -24,30 +24,30 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@auth/core": "^0.41.1", - "@auth/drizzle-adapter": "^1.11.1", + "@auth/core": "catalog:", + "@auth/drizzle-adapter": "catalog:", "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "bcrypt": "^6.0.0", - "cookies": "^0.9.1", - "ldapts": "8.1.3", - "next": "16.1.1", - "next-auth": "5.0.0-beta.30", - "react": "19.2.3", - "react-dom": "19.2.3", - "zod": "^4.2.1" + "bcrypt": "catalog:", + "cookies": "catalog:", + "ldapts": "catalog:", + "next": "catalog:", + "next-auth": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/bcrypt": "6.0.0", - "@types/cookies": "0.9.2", - "eslint": "^9.39.2", - "prettier": "^3.7.4", - "typescript": "^5.9.3" + "@types/bcrypt": "catalog:", + "@types/cookies": "catalog:", + "eslint": "catalog:", + "prettier": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/auth/providers/credentials/authorization/basic-authorization.ts b/packages/auth/providers/credentials/authorization/basic-authorization.ts index 04253d837..2a6b96a31 100644 --- a/packages/auth/providers/credentials/authorization/basic-authorization.ts +++ b/packages/auth/providers/credentials/authorization/basic-authorization.ts @@ -1,4 +1,3 @@ -import bcrypt from "bcrypt"; import type { z } from "zod/v4"; import { createLogger } from "@homarr/core/infrastructure/logs"; @@ -7,6 +6,8 @@ import { and, eq } from "@homarr/db"; import { users } from "@homarr/db/schema"; import type { userSignInSchema } from "@homarr/validation/user"; +import { comparePasswordsAsync } from "../../../security"; + const logger = createLogger({ module: "basicAuthorization" }); export const authorizeWithBasicCredentialsAsync = async ( @@ -23,7 +24,7 @@ export const authorizeWithBasicCredentialsAsync = async ( } logger.info("User is trying to log in. Checking password...", { userName: user.name }); - const isValidPassword = await bcrypt.compare(credentials.password, user.password); + const isValidPassword = await comparePasswordsAsync(credentials.password, user.password); if (!isValidPassword) { logger.warn("Password for user was incorrect", { userName: user.name }); diff --git a/packages/auth/providers/test/basic-authorization.spec.ts b/packages/auth/providers/test/basic-authorization.spec.ts index 17d1d00e1..6188729c7 100644 --- a/packages/auth/providers/test/basic-authorization.spec.ts +++ b/packages/auth/providers/test/basic-authorization.spec.ts @@ -4,7 +4,7 @@ import { createId } from "@homarr/common"; import { users } from "@homarr/db/schema"; import { createDb } from "@homarr/db/test"; -import { createSaltAsync, hashPasswordAsync } from "../../security"; +import { hashPasswordAsync } from "../../security"; import { authorizeWithBasicCredentialsAsync } from "../credentials/authorization/basic-authorization"; const defaultUserId = createId(); @@ -13,12 +13,10 @@ describe("authorizeWithBasicCredentials", () => { test("should authorize user with correct credentials", async () => { // Arrange const db = createDb(); - const salt = await createSaltAsync(); await db.insert(users).values({ id: defaultUserId, name: "test", - salt, - password: await hashPasswordAsync("test", salt), + password: await hashPasswordAsync("test"), }); // Act @@ -34,12 +32,10 @@ describe("authorizeWithBasicCredentials", () => { test("should not authorize user with incorrect credentials", async () => { // Arrange const db = createDb(); - const salt = await createSaltAsync(); await db.insert(users).values({ id: defaultUserId, name: "test", - salt, - password: await hashPasswordAsync("test", salt), + password: await hashPasswordAsync("test"), }); // Act @@ -55,12 +51,10 @@ describe("authorizeWithBasicCredentials", () => { test("should not authorize user with incorrect username", async () => { // Arrange const db = createDb(); - const salt = await createSaltAsync(); await db.insert(users).values({ id: defaultUserId, name: "test", - salt, - password: await hashPasswordAsync("test", salt), + password: await hashPasswordAsync("test"), }); // Act diff --git a/packages/auth/security.ts b/packages/auth/security.ts index cc0c16c6b..de6c4523b 100644 --- a/packages/auth/security.ts +++ b/packages/auth/security.ts @@ -1,9 +1,15 @@ import bcrypt from "bcrypt"; -export const createSaltAsync = async () => { - return bcrypt.genSalt(10); +export const hashPasswordAsync = async (password: string) => { + return bcrypt.hash(password, 10); }; -export const hashPasswordAsync = async (password: string, salt: string) => { - return bcrypt.hash(password, salt); +/** + * Compares a plaintext password with a hashed password and returns whether they match. + * @param password plaintext password + * @param hash hashed password + * @returns wheter it is the same + */ +export const comparePasswordsAsync = async (password: string, hash: string) => { + return await bcrypt.compare(password, hash); }; diff --git a/packages/auth/test/security.spec.ts b/packages/auth/test/security.spec.ts index fed59513b..fee34ec7f 100644 --- a/packages/auth/test/security.spec.ts +++ b/packages/auth/test/security.spec.ts @@ -1,25 +1,11 @@ import { describe, expect, it } from "vitest"; -import { createSaltAsync, hashPasswordAsync } from "../security"; - -describe("createSalt should return a salt", () => { - it("should return a salt", async () => { - const result = await createSaltAsync(); - expect(result).toBeDefined(); - expect(result.length).toBeGreaterThan(25); - }); - it("should return a different salt each time", async () => { - const result1 = await createSaltAsync(); - const result2 = await createSaltAsync(); - expect(result1).not.toEqual(result2); - }); -}); +import { comparePasswordsAsync, hashPasswordAsync } from "../security"; describe("hashPassword should return a hash", () => { it("should return a hash", async () => { const password = "password"; - const salt = await createSaltAsync(); - const result = await hashPasswordAsync(password, salt); + const result = await hashPasswordAsync(password); expect(result).toBeDefined(); expect(result.length).toBeGreaterThan(55); expect(result).not.toEqual(password); @@ -27,21 +13,44 @@ describe("hashPassword should return a hash", () => { it("should return a different hash each time", async () => { const password = "password"; const password2 = "another password"; - const salt = await createSaltAsync(); - const result1 = await hashPasswordAsync(password, salt); - const result2 = await hashPasswordAsync(password2, salt); + const result1 = await hashPasswordAsync(password); + const result2 = await hashPasswordAsync(password2); expect(result1).not.toEqual(result2); }); it("should return a different hash for the same password with different salts", async () => { const password = "password"; - const salt1 = await createSaltAsync(); - const salt2 = await createSaltAsync(); - const result1 = await hashPasswordAsync(password, salt1); - const result2 = await hashPasswordAsync(password, salt2); + const result1 = await hashPasswordAsync(password); + const result2 = await hashPasswordAsync(password); expect(result1).not.toEqual(result2); }); }); + +describe("comparePasswordsAsync should compare passwords correctly", () => { + it("should return true for matching passwords", async () => { + // Arrange + const password = "password"; + const hash = await hashPasswordAsync(password); + + // Act + const result = await comparePasswordsAsync(password, hash); + + // Assert + expect(result).toBe(true); + }); + it("should return false for non-matching passwords", async () => { + // Arrange + const password = "password"; + const wrongPassword = "wrongpassword"; + const hash = await hashPasswordAsync(password); + + // Act + const result = await comparePasswordsAsync(wrongPassword, hash); + + // Assert + expect(result).toBe(false); + }); +}); diff --git a/packages/boards/package.json b/packages/boards/package.json index d3a033f63..b6dff9fca 100644 --- a/packages/boards/package.json +++ b/packages/boards/package.json @@ -25,14 +25,14 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/api": "workspace:^0.1.0", - "react": "19.2.3", - "react-dom": "19.2.3" + "react": "catalog:", + "react-dom": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/cli/package.json b/packages/cli/package.json index 78ff471a8..6811f7a37 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -19,23 +19,25 @@ "clean": "rm -rf .turbo node_modules", "format": "prettier --check . --ignore-path ../../.gitignore", "lint": "eslint", - "typecheck": "tsc --noEmit" + "run": "pnpm with-env node cli.cjs", + "typecheck": "tsc --noEmit", + "with-env": "dotenv -e .env --" }, "prettier": "@homarr/prettier-config", "dependencies": { - "@drizzle-team/brocli": "^0.11.0", + "@drizzle-team/brocli": "catalog:", "@homarr/auth": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "dotenv": "^17.2.3" + "dotenv": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "esbuild": "^0.27.2", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "esbuild": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/cli/src/commands/integrations-delete.ts b/packages/cli/src/commands/integrations-delete.ts new file mode 100644 index 000000000..47ff12c22 --- /dev/null +++ b/packages/cli/src/commands/integrations-delete.ts @@ -0,0 +1,39 @@ +import { command, string } from "@drizzle-team/brocli"; + +import { db, eq } from "@homarr/db"; +import { integrations } from "@homarr/db/schema"; + +export const integrationsDelete = command({ + name: "delete", + desc: "Delete an integration by id or name", + options: { + id: string("id").alias("i").desc("ID of the integration"), + name: string("name").alias("n").desc("Name of the integration"), + }, + // eslint-disable-next-line no-restricted-syntax + handler: async (options) => { + if (!options.id && !options.name) { + console.error("Either --id or --name must be provided"); + return; + } + + let entry; + if (options.id) { + entry = await db.query.integrations.findFirst({ + where: eq(integrations.id, options.id), + }); + } else if (options.name) { + entry = await db.query.integrations.findFirst({ + where: eq(integrations.name, options.name), + }); + } + + if (!entry) { + console.error("Integration not found"); + return; + } + + await db.delete(integrations).where(eq(integrations.id, entry.id)); + console.log(`Integration ${entry.name} (${entry.id}) deleted`); + }, +}); diff --git a/packages/cli/src/commands/integrations-list.ts b/packages/cli/src/commands/integrations-list.ts new file mode 100644 index 000000000..3899ba5b9 --- /dev/null +++ b/packages/cli/src/commands/integrations-list.ts @@ -0,0 +1,21 @@ +import { command } from "@drizzle-team/brocli"; + +import { db } from "@homarr/db"; + +export const integrationsList = command({ + name: "list", + desc: "List all integrations (id and name)", + // eslint-disable-next-line no-restricted-syntax + handler: async () => { + const all = await db.query.integrations.findMany(); + if (all.length === 0) { + console.log("No integrations found"); + return; + } + + console.log("ID\t\t\t\tName"); + for (const i of all) { + console.log(`${i.id}\t${i.name}`); + } + }, +}); diff --git a/packages/cli/src/commands/integrations.ts b/packages/cli/src/commands/integrations.ts new file mode 100644 index 000000000..cef6cd910 --- /dev/null +++ b/packages/cli/src/commands/integrations.ts @@ -0,0 +1,10 @@ +import { command } from "@drizzle-team/brocli"; + +import { integrationsDelete } from "./integrations-delete"; +import { integrationsList } from "./integrations-list"; + +export const integrationsRoot = command({ + name: "integrations", + desc: "Group of commands to manage integrations", + subcommands: [integrationsList, integrationsDelete], +}); diff --git a/packages/cli/src/commands/recreate-admin.ts b/packages/cli/src/commands/recreate-admin.ts index 8c2b9fd8d..5734d9c9d 100644 --- a/packages/cli/src/commands/recreate-admin.ts +++ b/packages/cli/src/commands/recreate-admin.ts @@ -1,6 +1,6 @@ import { command, string } from "@drizzle-team/brocli"; -import { createSaltAsync, hashPasswordAsync } from "@homarr/auth"; +import { hashPasswordAsync } from "@homarr/auth"; import { createId } from "@homarr/common"; import { generateSecureRandomToken } from "@homarr/common/server"; import { and, count, db, eq } from "@homarr/db"; @@ -67,9 +67,8 @@ export const recreateAdmin = command({ permission: "admin", }); - const salt = await createSaltAsync(); const password = generateSecureRandomToken(24); - const hashedPassword = await hashPasswordAsync(password, salt); + const hashedPassword = await hashPasswordAsync(password); const userId = createId(); await db.insert(users).values({ @@ -77,7 +76,6 @@ export const recreateAdmin = command({ name: result.data, provider: "credentials", password: hashedPassword, - salt, }); await db.insert(groupMembers).values({ diff --git a/packages/cli/src/commands/reset-password.ts b/packages/cli/src/commands/reset-password.ts index ee4383205..1c10734d7 100644 --- a/packages/cli/src/commands/reset-password.ts +++ b/packages/cli/src/commands/reset-password.ts @@ -22,7 +22,7 @@ export const resetPassword = command({ where: and(eq(users.name, options.username), eq(users.provider, "credentials")), }); - if (!user?.salt) { + if (!user?.password) { console.error(`User ${options.username} not found`); return; } @@ -33,7 +33,7 @@ export const resetPassword = command({ await db .update(users) .set({ - password: await hashPasswordAsync(newPassword, user.salt), + password: await hashPasswordAsync(newPassword), }) .where(eq(users.id, user.id)); diff --git a/packages/cli/src/commands/users-delete.ts b/packages/cli/src/commands/users-delete.ts new file mode 100644 index 000000000..8e0cc5799 --- /dev/null +++ b/packages/cli/src/commands/users-delete.ts @@ -0,0 +1,39 @@ +import { command, string } from "@drizzle-team/brocli"; + +import { db, eq } from "@homarr/db"; +import { users } from "@homarr/db/schema"; + +export const usersDelete = command({ + name: "delete", + desc: "Delete a user by id or username", + options: { + id: string("id").alias("i").desc("ID of the user"), + username: string("username").alias("u").desc("Name of the user"), + }, + // eslint-disable-next-line no-restricted-syntax + handler: async (options) => { + if (!options.id && !options.username) { + console.error("Either --id or --username must be provided"); + return; + } + + let user; + if (options.id) { + user = await db.query.users.findFirst({ + where: eq(users.id, options.id), + }); + } else if (options.username) { + user = await db.query.users.findFirst({ + where: eq(users.name, options.username), + }); + } + + if (!user) { + console.error("User not found"); + return; + } + + await db.delete(users).where(eq(users.id, user.id)); + console.log(`User ${user.name ?? user.id} (${user.id}) deleted`); + }, +}); diff --git a/packages/cli/src/commands/users-list.ts b/packages/cli/src/commands/users-list.ts new file mode 100644 index 000000000..74ac50c2b --- /dev/null +++ b/packages/cli/src/commands/users-list.ts @@ -0,0 +1,22 @@ +import { command } from "@drizzle-team/brocli"; + +import { db } from "@homarr/db"; + +export const usersList = command({ + name: "list", + desc: "List all users (id, username, email)", + // eslint-disable-next-line no-restricted-syntax + handler: async () => { + const allUsers = await db.query.users.findMany(); + + if (allUsers.length === 0) { + console.log("No users found"); + return; + } + + console.log("ID\t\t\t\tUsername\tEmail"); + for (const user of allUsers) { + console.log(`${user.id}\t${user.name ?? ""}\t${user.email ?? ""}`); + } + }, +}); diff --git a/packages/cli/src/commands/users-update-password.ts b/packages/cli/src/commands/users-update-password.ts new file mode 100644 index 000000000..2db3342b1 --- /dev/null +++ b/packages/cli/src/commands/users-update-password.ts @@ -0,0 +1,50 @@ +import { command, string } from "@drizzle-team/brocli"; + +import { hashPasswordAsync } from "@homarr/auth"; +import { db, eq } from "@homarr/db"; +import { sessions, users } from "@homarr/db/schema"; + +export const usersUpdatePassword = command({ + name: "update-password", + desc: "Update the password for a user (credentials provider only)", + options: { + id: string("id").alias("i").desc("ID of the user"), + username: string("username").alias("u").desc("Name of the user"), + password: string("password").alias("p").required().desc("New password"), + }, + // eslint-disable-next-line no-restricted-syntax + handler: async (options) => { + if (!process.env.AUTH_PROVIDERS?.toLowerCase().includes("credentials")) { + console.error("Credentials provider is not enabled"); + return; + } + + if (!options.id && !options.username) { + console.error("Either --id or --username must be provided"); + return; + } + + const user = await db.query.users.findFirst({ + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + where: options.id ? eq(users.id, options.id) : eq(users.name, options.username!), + }); + + if (!user?.password) { + console.error("User not found or has no credentials record"); + return; + } + + await db + .update(users) + .set({ + password: await hashPasswordAsync(options.password), + }) + .where(eq(users.id, user.id)); + + // invalidate existing sessions + await db.delete(sessions).where(eq(sessions.userId, user.id)); + console.log(`All sessions for user ${user.name ?? user.id} have been deleted`); + + console.log("Password updated successfully"); + }, +}); diff --git a/packages/cli/src/commands/users.ts b/packages/cli/src/commands/users.ts new file mode 100644 index 000000000..26655931f --- /dev/null +++ b/packages/cli/src/commands/users.ts @@ -0,0 +1,11 @@ +import { command } from "@drizzle-team/brocli"; + +import { usersDelete } from "./users-delete"; +import { usersList } from "./users-list"; +import { usersUpdatePassword } from "./users-update-password"; + +export const usersRoot = command({ + name: "users", + desc: "Group of commands to manage users", + subcommands: [usersList, usersDelete, usersUpdatePassword], +}); diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 0041651b5..f1b0c658d 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -1,10 +1,12 @@ import { run } from "@drizzle-team/brocli"; import { fixUsernames } from "./commands/fix-usernames"; +import { integrationsRoot } from "./commands/integrations"; import { recreateAdmin } from "./commands/recreate-admin"; import { resetPassword } from "./commands/reset-password"; +import { usersRoot } from "./commands/users"; -const commands = [resetPassword, fixUsernames, recreateAdmin]; +const commands = [usersRoot, integrationsRoot, resetPassword, fixUsernames, recreateAdmin]; void run(commands, { name: "homarr-cli", diff --git a/packages/common/package.json b/packages/common/package.json index 2ee751647..e96ff6047 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -27,21 +27,22 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/core": "workspace:^0.1.0", - "@paralleldrive/cuid2": "^3.1.0", - "dayjs": "^1.11.19", - "next": "16.1.1", - "octokit": "^5.0.5", - "react": "19.2.3", - "react-dom": "19.2.3", - "undici": "7.18.2", - "zod": "^4.2.1", - "zod-validation-error": "^5.0.0" + "@paralleldrive/cuid2": "catalog:", + "cookie": "catalog:", + "dayjs": "catalog:", + "next": "catalog:", + "octokit": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "undici": "catalog:", + "zod": "catalog:", + "zod-validation-error": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/common/src/cookie.ts b/packages/common/src/cookie.ts index 12685c55f..73dfb0c89 100644 --- a/packages/common/src/cookie.ts +++ b/packages/common/src/cookie.ts @@ -1,10 +1,10 @@ import type { SerializeOptions } from "cookie"; -import { parse, serialize } from "cookie"; +import { parseCookie, stringifySetCookie } from "cookie"; export function parseCookies(cookieString: string) { - return parse(cookieString); + return parseCookie(cookieString); } export function setClientCookie(name: string, value: string, options: SerializeOptions = {}) { - document.cookie = serialize(name, value, options); + document.cookie = stringifySetCookie(name, value, options); } diff --git a/packages/common/src/date.ts b/packages/common/src/date.ts index c7dc36913..de9ecadaf 100644 --- a/packages/common/src/date.ts +++ b/packages/common/src/date.ts @@ -6,6 +6,17 @@ dayjs.extend(isBetween); const validUnits = ["h", "d", "w", "M", "y"] as UnitTypeShort[]; +export function formatDuration(milliseconds: number) { + const totalSeconds = Math.floor(milliseconds / 1000); + const hours = Math.floor(totalSeconds / 3600); + const minutes = Math.floor((totalSeconds % 3600) / 60); + const seconds = totalSeconds % 60; + if (hours > 0) { + return `${hours}:${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}`; + } + return `${minutes}:${String(seconds).padStart(2, "0")}`; +} + export const isDateWithin = (date: Date, relativeDate: string): boolean => { if (relativeDate.length < 2) { throw new Error("Relative date must be at least 2 characters long"); diff --git a/packages/common/src/stopwatch.ts b/packages/common/src/stopwatch.ts index 33693631c..c58697083 100644 --- a/packages/common/src/stopwatch.ts +++ b/packages/common/src/stopwatch.ts @@ -41,6 +41,10 @@ export class Stopwatch { return dayjs().millisecond(this.startTime).fromNow(true); } + getElapsedInFormattedMilliseconds() { + return `${this.getElapsedInMilliseconds().toFixed(0)}ms`; + } + getElapsedInMilliseconds() { return performance.now() - this.startTime; } diff --git a/packages/common/src/string.ts b/packages/common/src/string.ts index 75f757a78..178cb9a47 100644 --- a/packages/common/src/string.ts +++ b/packages/common/src/string.ts @@ -5,3 +5,26 @@ export const capitalize = (str: T) => { export const isNullOrWhitespace = (value: string | null): value is null => { return value == null || value.trim() === ""; }; + +export const bestMatch = >( + search: string, + options: TItem[], + by: (item: TItem) => string, +) => { + if (options.length === 0) return null; + + const normalizedSearch = search.toLowerCase().trim(); + + return options.reduce((best, current) => { + const currentMatchIndex = by(current).toLowerCase().indexOf(normalizedSearch); + + if (currentMatchIndex === -1) return best; + if (best === null) return current; + + const bestMatchIndex = by(best).toLowerCase().indexOf(normalizedSearch); + + if (currentMatchIndex < bestMatchIndex) return current; + if (by(current).length < by(best).length && currentMatchIndex === bestMatchIndex) return current; + return best; + }, null); +}; diff --git a/packages/common/src/test/string.spec.ts b/packages/common/src/test/string.spec.ts index df8b4461a..d1bc1f9d0 100644 --- a/packages/common/src/test/string.spec.ts +++ b/packages/common/src/test/string.spec.ts @@ -1,6 +1,6 @@ -import { describe, expect, it } from "vitest"; +import { describe, expect, test } from "vitest"; -import { capitalize } from "../string"; +import { bestMatch, capitalize } from "../string"; const capitalizeTestCases = [ ["hello", "Hello"], @@ -12,8 +12,45 @@ const capitalizeTestCases = [ describe("capitalize should capitalize the first letter of a string", () => { capitalizeTestCases.forEach(([input, expected]) => { - it(`should capitalize ${input} to ${expected}`, () => { + test(`should capitalize ${input} to ${expected}`, () => { expect(capitalize(input)).toEqual(expected); }); }); }); + +describe("bestMatch should find the best match in an array of options", () => { + test("should find exact match for 'nginx'", () => { + const options = [ + { name: "my-nginx" }, + { name: "nginx-proxy" }, + { name: "nginx" }, + { name: "redis" }, + { name: "postgres" }, + ]; + + const result = bestMatch("nginx", options, ({ name }) => name); + + expect(result).toEqual({ name: "nginx" }); + }); + test("should find closest match for 'nginx' when exact match is not available", () => { + const options = [{ name: "redis" }, { name: "nginx-proxy" }, { name: "my-nginx" }, { name: "postgres" }]; + + const result = bestMatch("nginx", options, ({ name }) => name); + + expect(result).toEqual({ name: "nginx-proxy" }); + }); + test("should return null if no match is found", () => { + const options = [{ name: "redis" }, { name: "postgres" }]; + + const result = bestMatch("nginx", options, ({ name }) => name); + + expect(result).toBeNull(); + }); + test("should return null if options array is empty", () => { + const options: { name: string }[] = []; + + const result = bestMatch("nginx", options, ({ name }) => name); + + expect(result).toBeNull(); + }); +}); diff --git a/packages/common/src/test/url.spec.ts b/packages/common/src/test/url.spec.ts index eafee07dd..8b6600d93 100644 --- a/packages/common/src/test/url.spec.ts +++ b/packages/common/src/test/url.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from "vitest"; -import { getPortFromUrl } from "../url"; +import { getPortFromUrl, isAbsoluteUrl } from "../url.js"; describe("getPortFromUrl", () => { test.each([ @@ -38,3 +38,21 @@ describe("getPortFromUrl", () => { expect(act).toThrowError("Unsupported protocol: ftp:"); }); }); + +describe("isAbsoluteUrl", () => { + test.each([ + ["http://example.com", true], + ["https://example.com", true], + ["ftp://example.com", true], + ["file:///path/to/file", true], + ["mailto:johndoe@example.com", true], + ["/relative/path", false], + ["relative/path", false], + ])("should return %s for URL: %s", (urlString, expected) => { + // Act + const result = isAbsoluteUrl(urlString); + + // Assert + expect(result).toBe(expected); + }); +}); diff --git a/packages/common/src/url.ts b/packages/common/src/url.ts index 0bdf322fe..7550def44 100644 --- a/packages/common/src/url.ts +++ b/packages/common/src/url.ts @@ -38,3 +38,9 @@ export const getPortFromUrl = (url: URL): number => { throw new Error(`Unsupported protocol: ${url.protocol}`); }; + +const absoluteUrlRegex = /^[a-z]+:(\/\/)?/; + +export const isAbsoluteUrl = (urlOrPath: string): boolean => { + return absoluteUrlRegex.test(urlOrPath.toLowerCase()); +}; diff --git a/packages/core/package.json b/packages/core/package.json index 6d727881e..19e7f473b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -37,24 +37,24 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@t3-oss/env-nextjs": "^0.13.10", - "better-sqlite3": "^12.5.0", - "dns-caching": "^0.2.9", - "drizzle-orm": "^0.45.1", - "ioredis": "5.9.1", - "mysql2": "3.16.0", - "pg": "^8.16.3", - "superjson": "2.2.6", - "winston": "3.19.0", - "zod": "^4.2.1" + "@t3-oss/env-nextjs": "catalog:", + "better-sqlite3": "catalog:", + "dns-caching": "catalog:", + "drizzle-orm": "catalog:", + "ioredis": "catalog:", + "mysql2": "catalog:", + "pg": "catalog:", + "superjson": "catalog:", + "winston": "catalog:", + "zod": "catalog:" }, "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.13", - "@types/pg": "^8.16.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "@types/better-sqlite3": "catalog:", + "@types/pg": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/core/src/infrastructure/logs/format/metadata.ts b/packages/core/src/infrastructure/logs/format/metadata.ts index 057aa157d..515bea272 100644 --- a/packages/core/src/infrastructure/logs/format/metadata.ts +++ b/packages/core/src/infrastructure/logs/format/metadata.ts @@ -1,7 +1,10 @@ import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; export const formatMetadata = (metadata: Record | Error, ignoreKeys?: string[]) => { - const metadataObject = metadata instanceof ErrorWithMetadata ? metadata.metadata : metadata; + const metadataObject = + metadata instanceof ErrorWithMetadata || ("metadata" in metadata && typeof metadata.metadata === "object") + ? (metadata.metadata as Record) + : metadata; const filteredMetadata = Object.keys(metadataObject) .filter((key) => !ignoreKeys?.includes(key)) diff --git a/packages/cron-job-api/eslint.config.js b/packages/cron-job-api/eslint.config.js deleted file mode 100644 index 5b19b6f8a..000000000 --- a/packages/cron-job-api/eslint.config.js +++ /dev/null @@ -1,9 +0,0 @@ -import baseConfig from "@homarr/eslint-config/base"; - -/** @type {import('typescript-eslint').Config} */ -export default [ - { - ignores: [], - }, - ...baseConfig, -]; diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json deleted file mode 100644 index 3859d20d1..000000000 --- a/packages/cron-job-api/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "@homarr/cron-job-api", - "version": "0.1.0", - "private": true, - "license": "Apache-2.0", - "type": "module", - "exports": { - ".": "./src/index.ts", - "./env": "./src/env.ts", - "./constants": "./src/constants.ts", - "./client": "./src/client.ts" - }, - "typesVersions": { - "*": { - "*": [ - "src/*" - ] - } - }, - "scripts": { - "clean": "rm -rf .turbo node_modules", - "format": "prettier --check . --ignore-path ../../.gitignore", - "lint": "eslint", - "typecheck": "tsc --noEmit" - }, - "prettier": "@homarr/prettier-config", - "dependencies": { - "@homarr/common": "workspace:^0.1.0", - "@homarr/core": "workspace:^0.1.0", - "@homarr/cron-jobs": "workspace:^0.1.0", - "@tanstack/react-query": "^5.90.16", - "@trpc/client": "^11.8.1", - "@trpc/server": "^11.8.1", - "@trpc/tanstack-react-query": "^11.8.1", - "node-cron": "^4.2.1", - "react": "19.2.3", - "zod": "^4.2.1" - }, - "devDependencies": { - "@homarr/eslint-config": "workspace:^0.2.0", - "@homarr/prettier-config": "workspace:^0.1.0", - "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node-cron": "^3.0.11", - "@types/react": "19.2.8", - "eslint": "^9.39.2", - "typescript": "^5.9.3" - } -} diff --git a/packages/cron-job-api/src/client.ts b/packages/cron-job-api/src/client.ts deleted file mode 100644 index 0d376a328..000000000 --- a/packages/cron-job-api/src/client.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createTRPCClient, httpLink } from "@trpc/client"; - -import type { JobRouter } from "."; -import { CRON_JOB_API_KEY_HEADER, CRON_JOB_API_PATH, CRON_JOB_API_PORT } from "./constants"; -import { env } from "./env"; - -export const cronJobApi = createTRPCClient({ - links: [ - httpLink({ - url: `${getBaseUrl()}${CRON_JOB_API_PATH}`, - headers: { - [CRON_JOB_API_KEY_HEADER]: env.CRON_JOB_API_KEY, - }, - }), - ], -}); - -function getBaseUrl() { - return `http://localhost:${CRON_JOB_API_PORT}`; -} diff --git a/packages/cron-job-api/src/constants.ts b/packages/cron-job-api/src/constants.ts deleted file mode 100644 index 8ce789e72..000000000 --- a/packages/cron-job-api/src/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const CRON_JOB_API_PORT = 3002; -export const CRON_JOB_API_PATH = "/trpc"; -export const CRON_JOB_API_KEY_HEADER = "cron-job-api-key"; diff --git a/packages/cron-job-api/src/env.ts b/packages/cron-job-api/src/env.ts deleted file mode 100644 index 7efb3f6e2..000000000 --- a/packages/cron-job-api/src/env.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { z } from "zod/v4"; - -import { env as commonEnv } from "@homarr/common/env"; -import { createEnv } from "@homarr/core/infrastructure/env"; - -export const env = createEnv({ - server: { - CRON_JOB_API_KEY: commonEnv.NODE_ENV === "development" ? z.string().default("test") : z.string(), - }, - experimental__runtimeEnv: process.env, -}); diff --git a/packages/cron-job-api/src/index.ts b/packages/cron-job-api/src/index.ts deleted file mode 100644 index cc3afb0a6..000000000 --- a/packages/cron-job-api/src/index.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { initTRPC, TRPCError } from "@trpc/server"; -import { validate } from "node-cron"; -import { z } from "zod/v4"; - -import type { JobGroupKeys } from "@homarr/cron-jobs"; -import { jobGroup } from "@homarr/cron-jobs"; - -import { env } from "./env"; - -export const jobGroupKeys = jobGroup.getKeys(); -export const jobNameSchema = z.enum(jobGroup.getKeys()); - -export interface IJobManager { - startAsync(name: JobGroupKeys): Promise; - triggerAsync(name: JobGroupKeys): Promise; - stopAsync(name: JobGroupKeys): Promise; - updateIntervalAsync(name: JobGroupKeys, cron: string): Promise; - disableAsync(name: JobGroupKeys): Promise; - enableAsync(name: JobGroupKeys): Promise; - getAllAsync(): Promise<{ name: JobGroupKeys; cron: string; preventManualExecution: boolean; isEnabled: boolean }[]>; -} - -const t = initTRPC - .context<{ - manager: IJobManager; - apiKey?: string; - }>() - .create(); - -const createTrpcRouter = t.router; -const apiKeyProcedure = t.procedure.use(({ ctx, next }) => { - if (ctx.apiKey !== env.CRON_JOB_API_KEY) { - throw new TRPCError({ - code: "FORBIDDEN", - message: "Missing or invalid API key", - }); - } - - return next({ - ctx: { - ...ctx, - apiKey: undefined, // Clear the API key after checking - }, - }); -}); - -export const cronExpressionSchema = z.string().refine((expression) => validate(expression), { - error: "Invalid cron expression", -}); - -export const jobRouter = createTrpcRouter({ - start: apiKeyProcedure.input(jobNameSchema).mutation(async ({ input, ctx }) => { - await ctx.manager.startAsync(input); - }), - trigger: apiKeyProcedure.input(jobNameSchema).mutation(async ({ input, ctx }) => { - await ctx.manager.triggerAsync(input); - }), - stop: apiKeyProcedure.input(jobNameSchema).mutation(async ({ input, ctx }) => { - await ctx.manager.stopAsync(input); - }), - updateInterval: apiKeyProcedure - .input( - z.object({ - name: jobNameSchema, - cron: cronExpressionSchema, - }), - ) - .mutation(async ({ input, ctx }) => { - await ctx.manager.updateIntervalAsync(input.name, input.cron); - }), - disable: apiKeyProcedure.input(jobNameSchema).mutation(async ({ input, ctx }) => { - await ctx.manager.disableAsync(input); - }), - enable: apiKeyProcedure.input(jobNameSchema).mutation(async ({ input, ctx }) => { - await ctx.manager.enableAsync(input); - }), - getAll: apiKeyProcedure.query(({ ctx }) => { - return ctx.manager.getAllAsync(); - }), -}); - -export type JobRouter = typeof jobRouter; diff --git a/packages/cron-job-api/tsconfig.json b/packages/cron-job-api/tsconfig.json deleted file mode 100644 index cbe8483d9..000000000 --- a/packages/cron-job-api/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@homarr/tsconfig/base.json", - "compilerOptions": { - "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" - }, - "include": ["*.ts", "src"], - "exclude": ["node_modules"] -} diff --git a/packages/cron-job-status/package.json b/packages/cron-job-status/package.json index ffde92257..2bd53b9cb 100644 --- a/packages/cron-job-status/package.json +++ b/packages/cron-job-status/package.json @@ -29,7 +29,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/cron-jobs-core/package.json b/packages/cron-jobs-core/package.json index ea6e12305..71704bdfc 100644 --- a/packages/cron-jobs-core/package.json +++ b/packages/cron-jobs-core/package.json @@ -27,14 +27,13 @@ "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^", "@homarr/db": "workspace:^0.1.0", - "node-cron": "^4.2.1" + "croner": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node-cron": "^3.0.11", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/cron-jobs-core/src/creator.ts b/packages/cron-jobs-core/src/creator.ts index c22598295..f693a054e 100644 --- a/packages/cron-jobs-core/src/creator.ts +++ b/packages/cron-jobs-core/src/creator.ts @@ -1,4 +1,4 @@ -import { createTask, validate } from "node-cron"; +import { Cron } from "croner"; import { Stopwatch } from "@homarr/common"; import type { MaybePromise } from "@homarr/common/types"; @@ -19,6 +19,7 @@ export interface CreateCronJobCreatorOptions { interface CreateCronJobOptions { runOnStart?: boolean; preventManualExecution?: boolean; + preventCustomInterval?: boolean; expectedMaximumDurationInMillis?: number; beforeStart?: () => MaybePromise; } @@ -78,13 +79,18 @@ const createCallback = eq(cronJobConfigurations.name, name), }); - const scheduledTask = createTask( - configuration?.cronExpression ?? defaultCronExpression, - () => void catchingCallbackAsync(), + const cronExpression = options.preventCustomInterval + ? defaultCronExpression + : (configuration?.cronExpression ?? defaultCronExpression); + + const scheduledTask = new Cron( + cronExpression, { name, timezone: creatorOptions.timezone, + paused: true, }, + () => void catchingCallbackAsync(), ); creatorOptions.logger.logDebug("The scheduled task for cron job was created", { name, @@ -114,6 +120,8 @@ const createCallback = ( defaultCronExpression: TExpression, options: CreateCronJobOptions = { runOnStart: false }, ) => { - creatorOptions.logger.logDebug("Validating cron expression for cron job", { - name, - cronExpression: defaultCronExpression, - }); - if (!validate(defaultCronExpression)) { - throw new Error(`Invalid cron expression '${defaultCronExpression}' for job '${name}'`); - } creatorOptions.logger.logDebug("Cron job expression for cron job is valid", { name, cronExpression: defaultCronExpression, diff --git a/packages/cron-jobs-core/src/group.ts b/packages/cron-jobs-core/src/group.ts index 77cd6057d..cfb024a9a 100644 --- a/packages/cron-jobs-core/src/group.ts +++ b/packages/cron-jobs-core/src/group.ts @@ -1,4 +1,4 @@ -import type { ScheduledTask } from "node-cron"; +import type { Cron } from "croner"; import { objectEntries, objectKeys } from "@homarr/common"; import { db } from "@homarr/db"; @@ -34,7 +34,7 @@ export const createJobGroupCreator = ( }); } - const tasks = new Map(); + const tasks = new Map(); return { initializeAsync: async () => { @@ -62,7 +62,7 @@ export const createJobGroupCreator = ( name: job.name, }); await job.onStartAsync(); - await tasks.get(name as string)?.start(); + tasks.get(name as string)?.resume(); }, startAllAsync: async () => { for (const job of jobRegistry.values()) { @@ -74,7 +74,7 @@ export const createJobGroupCreator = ( name: job.name, }); await job.onStartAsync(); - await tasks.get(job.name)?.start(); + tasks.get(job.name)?.resume(); } }, runManuallyAsync: async (name: keyof TJobs) => { @@ -87,23 +87,23 @@ export const createJobGroupCreator = ( options.logger.logInfo("Running schedule cron job manually.", { name: job.name, }); - await tasks.get(name as string)?.execute(); + await tasks.get(name as string)?.trigger(); }, - stopAsync: async (name: keyof TJobs) => { + stop: (name: keyof TJobs) => { const job = jobRegistry.get(name as string); if (!job) return; options.logger.logInfo("Stopping schedule of cron job.", { name: job.name, }); - await tasks.get(name as string)?.stop(); + tasks.get(name as string)?.pause(); }, - stopAllAsync: async () => { + stopAll: () => { for (const job of jobRegistry.values()) { options.logger.logInfo("Stopping schedule of cron job.", { name: job.name, }); - await tasks.get(job.name)?.stop(); + tasks.get(job.name)?.pause(); } }, getJobRegistry() { @@ -112,8 +112,8 @@ export const createJobGroupCreator = ( getTask(name: keyof TJobs) { return tasks.get(name as string) ?? null; }, - setTask(name: keyof TJobs, task: ScheduledTask) { - tasks.set(name as string, task); + setTask(name: keyof TJobs, cron: Cron) { + tasks.set(name as string, cron); }, getKeys() { return objectKeys(jobs); diff --git a/packages/cron-jobs/package.json b/packages/cron-jobs/package.json index 1bf4e090e..f634d7078 100644 --- a/packages/cron-jobs/package.json +++ b/packages/cron-jobs/package.json @@ -5,7 +5,8 @@ "license": "Apache-2.0", "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./job-manager": "./src/job-manager.ts" }, "typesVersions": { "*": { @@ -38,13 +39,14 @@ "@homarr/server-settings": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "semver-parser": "^4.1.8" + "semver-parser": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/cron-jobs/src/index.ts b/packages/cron-jobs/src/index.ts index 7d1bc2023..576e001c9 100644 --- a/packages/cron-jobs/src/index.ts +++ b/packages/cron-jobs/src/index.ts @@ -18,6 +18,9 @@ import { mediaServerJob } from "./jobs/integrations/media-server"; import { mediaTranscodingJob } from "./jobs/integrations/media-transcoding"; import { networkControllerJob } from "./jobs/integrations/network-controller"; import { refreshNotificationsJob } from "./jobs/integrations/notifications"; +import { timetableJob } from "./jobs/integrations/timetable"; +import { tracearrJob } from "./jobs/integrations/tracearr"; +import { umamiActiveVisitorsJob } from "./jobs/integrations/umami"; import { minecraftServerStatusJob } from "./jobs/minecraft-server-status"; import { pingJob } from "./jobs/ping"; import { rssFeedsJob } from "./jobs/rss-feeds"; @@ -25,31 +28,45 @@ import { updateCheckerJob } from "./jobs/update-checker"; import { weatherJob } from "./jobs/weather"; import { createCronJobGroup } from "./lib"; -export const jobGroup = createCronJobGroup({ - analytics: analyticsJob, - iconsUpdater: iconsUpdaterJob, - ping: pingJob, - smartHomeEntityState: smartHomeEntityStateJob, - mediaServer: mediaServerJob, - mediaOrganizer: mediaOrganizerJob, - downloads: downloadsJob, - dnsHole: dnsHoleJob, - mediaRequestStats: mediaRequestStatsJob, - mediaRequestList: mediaRequestListJob, - rssFeeds: rssFeedsJob, - indexerManager: indexerManagerJob, - healthMonitoring: healthMonitoringJob, - updateChecker: updateCheckerJob, - mediaTranscoding: mediaTranscodingJob, - minecraftServerStatus: minecraftServerStatusJob, - dockerContainers: dockerContainersJob, - networkController: networkControllerJob, - firewallCpu: firewallCpuJob, - firewallMemory: firewallMemoryJob, - firewallVersion: firewallVersionJob, - firewallInterfaces: firewallInterfacesJob, - refreshNotifications: refreshNotificationsJob, - weather: weatherJob, -}); +const getJobGroup = () => { + return createCronJobGroup({ + analytics: analyticsJob, + iconsUpdater: iconsUpdaterJob, + ping: pingJob, + smartHomeEntityState: smartHomeEntityStateJob, + mediaServer: mediaServerJob, + mediaOrganizer: mediaOrganizerJob, + downloads: downloadsJob, + dnsHole: dnsHoleJob, + mediaRequestStats: mediaRequestStatsJob, + mediaRequestList: mediaRequestListJob, + rssFeeds: rssFeedsJob, + indexerManager: indexerManagerJob, + healthMonitoring: healthMonitoringJob, + updateChecker: updateCheckerJob, + mediaTranscoding: mediaTranscodingJob, + minecraftServerStatus: minecraftServerStatusJob, + dockerContainers: dockerContainersJob, + networkController: networkControllerJob, + firewallCpu: firewallCpuJob, + firewallMemory: firewallMemoryJob, + firewallVersion: firewallVersionJob, + firewallInterfaces: firewallInterfacesJob, + refreshNotifications: refreshNotificationsJob, + weather: weatherJob, + timetable: timetableJob, + tracearr: tracearrJob, + umamiActiveVisitors: umamiActiveVisitorsJob, + }); +}; + +// Add global type augmentation for homarr +declare global { + var cronJobs: ReturnType | undefined; +} + +global.cronJobs ??= getJobGroup(); + +export const jobGroup = global.cronJobs; export type JobGroupKeys = ReturnType<(typeof jobGroup)["getKeys"]>[number]; diff --git a/apps/tasks/src/job-manager.ts b/packages/cron-jobs/src/job-manager.ts similarity index 74% rename from apps/tasks/src/job-manager.ts rename to packages/cron-jobs/src/job-manager.ts index 9e23c7d36..82367a8b3 100644 --- a/apps/tasks/src/job-manager.ts +++ b/packages/cron-jobs/src/job-manager.ts @@ -1,7 +1,6 @@ -import { schedule, validate as validateCron } from "node-cron"; +import { Cron } from "croner"; import { createLogger } from "@homarr/core/infrastructure/logs"; -import type { IJobManager } from "@homarr/cron-job-api"; import type { jobGroup as cronJobGroup, JobGroupKeys } from "@homarr/cron-jobs"; import type { Database, InferInsertModel } from "@homarr/db"; import { eq } from "@homarr/db"; @@ -9,7 +8,7 @@ import { cronJobConfigurations } from "@homarr/db/schema"; const logger = createLogger({ module: "jobManager" }); -export class JobManager implements IJobManager { +export class JobManager { constructor( private db: Database, private jobGroup: typeof cronJobGroup, @@ -21,24 +20,31 @@ export class JobManager implements IJobManager { public async triggerAsync(name: JobGroupKeys): Promise { await this.jobGroup.runManuallyAsync(name); } - public async stopAsync(name: JobGroupKeys): Promise { - await this.jobGroup.stopAsync(name); + public stop(name: JobGroupKeys): void { + this.jobGroup.stop(name); } public async updateIntervalAsync(name: JobGroupKeys, cron: string): Promise { logger.info("Updating cron job interval", { name, expression: cron }); const job = this.jobGroup.getJobRegistry().get(name); if (!job) throw new Error(`Job ${name} not found`); - if (!validateCron(cron)) { - throw new Error(`Invalid cron expression: ${cron}`); + if (job.preventCustomInterval && cron !== job.cronExpression) { + throw new Error(`Custom cron expressions are not allowed for job ${name}`); } - await this.updateConfigurationAsync(name, { cronExpression: cron }); - await this.jobGroup.getTask(name)?.destroy(); + + const updatedConfig = await this.updateConfigurationAsync(name, { cronExpression: cron }); + this.jobGroup.getTask(name)?.stop(); this.jobGroup.setTask( name, - schedule(cron, () => void job.executeAsync(), { - name, - }), + new Cron( + cron, + { + name, + timezone: job.timezone, + paused: !updatedConfig.isEnabled, + }, + () => void job.executeAsync(), + ), ); logger.info("Cron job interval updated", { name, expression: cron }); } @@ -48,7 +54,7 @@ export class JobManager implements IJobManager { if (!job) throw new Error(`Job ${name} not found`); await this.updateConfigurationAsync(name, { isEnabled: false }); - await this.jobGroup.stopAsync(name); + this.jobGroup.stop(name); logger.info("Cron job disabled", { name }); } public async enableAsync(name: JobGroupKeys): Promise { @@ -82,25 +88,37 @@ export class JobManager implements IJobManager { name, configuration: JSON.stringify(configuration), }); - return; + return { + name, + cronExpression: configuration.cronExpression ?? existingConfig.cronExpression, + isEnabled: configuration.isEnabled ?? existingConfig.isEnabled, + }; } const job = this.jobGroup.getJobRegistry().get(name); if (!job) throw new Error(`Job ${name} not found`); - await this.db.insert(cronJobConfigurations).values({ + const updatedConfig = { name, cronExpression: configuration.cronExpression ?? job.cronExpression, isEnabled: configuration.isEnabled ?? true, - }); + }; + await this.db.insert(cronJobConfigurations).values(updatedConfig); logger.debug("Cron job configuration updated", { name, configuration: JSON.stringify(configuration), }); + return updatedConfig; } public async getAllAsync(): Promise< - { name: JobGroupKeys; cron: string; preventManualExecution: boolean; isEnabled: boolean }[] + { + name: JobGroupKeys; + cron: string; + preventManualExecution: boolean; + preventCustomInterval: boolean; + isEnabled: boolean; + }[] > { const configurations = await this.db.query.cronJobConfigurations.findMany(); @@ -110,6 +128,7 @@ export class JobManager implements IJobManager { name, cron: config?.cronExpression ?? job.cronExpression, preventManualExecution: job.preventManualExecution, + preventCustomInterval: job.preventCustomInterval, isEnabled: config?.isEnabled ?? true, }; }); diff --git a/packages/cron-jobs/src/jobs/analytics.ts b/packages/cron-jobs/src/jobs/analytics.ts index 128c4bc89..69cbe6467 100644 --- a/packages/cron-jobs/src/jobs/analytics.ts +++ b/packages/cron-jobs/src/jobs/analytics.ts @@ -9,6 +9,7 @@ import { createCronJob } from "../lib"; export const analyticsJob = createCronJob("analytics", EVERY_WEEK, { runOnStart: true, preventManualExecution: true, + preventCustomInterval: true, }).withCallback(async () => { if (env.NO_EXTERNAL_CONNECTION) return; const analyticSetting = await getServerSettingByKeyAsync(db, "analytics"); diff --git a/packages/cron-jobs/src/jobs/icons-updater.ts b/packages/cron-jobs/src/jobs/icons-updater.ts index b48c26ea6..cc33727b8 100644 --- a/packages/cron-jobs/src/jobs/icons-updater.ts +++ b/packages/cron-jobs/src/jobs/icons-updater.ts @@ -1,9 +1,12 @@ +import type { MySqlRawQueryResult } from "drizzle-orm/mysql2"; +import type { QueryResult } from "pg"; + import { createId, splitToNChunks, Stopwatch } from "@homarr/common"; import { env } from "@homarr/common/env"; import { createLogger } from "@homarr/core/infrastructure/logs"; import { EVERY_WEEK } from "@homarr/cron-jobs-core/expressions"; import type { InferInsertModel } from "@homarr/db"; -import { db, handleTransactionsAsync, inArray, sql } from "@homarr/db"; +import { and, db, eq, handleTransactionsAsync, inArray, notInArray, or } from "@homarr/db"; import { iconRepositories, icons } from "@homarr/db/schema"; import { fetchIconsAsync } from "@homarr/icons"; @@ -26,7 +29,7 @@ export const iconsUpdaterJob = createCronJob("iconsUpdater", EVERY_WEEK, { logger.info("Fetched icons from repositories", { repositoryCount: repositoryIconGroups.length, iconCount: countIcons, - duration: stopWatch.getElapsedInHumanWords(), + duration: stopWatch.getElapsedInFormattedMilliseconds(), }); const databaseIconRepositories = await db.query.iconRepositories.findMany({ @@ -35,7 +38,7 @@ export const iconsUpdaterJob = createCronJob("iconsUpdater", EVERY_WEEK, { }, }); - const skippedChecksums: `${string}.${string}`[] = []; + const skippedChecksums = new Map(); let countDeleted = 0; let countInserted = 0; @@ -50,6 +53,7 @@ export const iconsUpdaterJob = createCronJob("iconsUpdater", EVERY_WEEK, { if (!repositoryIconGroup.success) { continue; } + const localSkippedChecksums: string[] = []; const repositoryInDb = databaseIconRepositories.find( (dbIconGroup) => dbIconGroup.slug === repositoryIconGroup.slug, @@ -66,7 +70,7 @@ export const iconsUpdaterJob = createCronJob("iconsUpdater", EVERY_WEEK, { for (const icon of repositoryIconGroup.icons) { if (dbIconsInRepository.some((dbIcon) => dbIcon.checksum === icon.checksum)) { - skippedChecksums.push(`${iconRepositoryId}.${icon.checksum}`); + localSkippedChecksums.push(icon.checksum); continue; } @@ -79,38 +83,28 @@ export const iconsUpdaterJob = createCronJob("iconsUpdater", EVERY_WEEK, { }); countInserted++; } - } - const deadIcons = allDbIcons.filter( - (icon) => !skippedChecksums.includes(`${icon.iconRepositoryId}.${icon.checksum}`), - ); + skippedChecksums.set(iconRepositoryId, localSkippedChecksums); + } const deadIconRepositories = databaseIconRepositories.filter( (iconRepository) => !repositoryIconGroups.some((group) => group.slug === iconRepository.slug), ); + const deadIconsFilter = or( + ...[...skippedChecksums.entries()].map(([iconRepositoryId, checksums]) => + and(eq(icons.iconRepositoryId, iconRepositoryId), notInArray(icons.checksum, checksums)), + ), + ); + await handleTransactionsAsync(db, { async handleAsync(db, schema) { await db.transaction(async (transaction) => { - if (newIconRepositories.length >= 1) { - await transaction.insert(schema.iconRepositories).values(newIconRepositories); - } + const result = (await transaction.delete(schema.icons).where(deadIconsFilter)) as + | MySqlRawQueryResult + | QueryResult; - if (newIcons.length >= 1) { - // We only insert 5000 icons at a time to avoid SQLite limitations - for (const chunck of splitToNChunks(newIcons, Math.ceil(newIcons.length / 5000))) { - await transaction.insert(schema.icons).values(chunck); - } - } - if (deadIcons.length >= 1) { - await transaction.delete(schema.icons).where( - inArray( - // Combine iconRepositoryId and checksum to allow same icons on different repositories - sql`concat(${icons.iconRepositoryId}, '.', ${icons.checksum})`, - deadIcons.map((icon) => `${icon.iconRepositoryId}.${icon.checksum}`), - ), - ); - } + countDeleted += Array.isArray(result) ? result[0].affectedRows : (result.rowCount ?? 0); if (deadIconRepositories.length >= 1) { await transaction.delete(schema.iconRepositories).where( @@ -121,33 +115,22 @@ export const iconsUpdaterJob = createCronJob("iconsUpdater", EVERY_WEEK, { ); } - countDeleted += deadIcons.length; - }); - }, - handleSync() { - db.transaction((transaction) => { if (newIconRepositories.length >= 1) { - transaction.insert(iconRepositories).values(newIconRepositories).run(); + await transaction.insert(schema.iconRepositories).values(newIconRepositories); } if (newIcons.length >= 1) { // We only insert 5000 icons at a time to avoid SQLite limitations for (const chunck of splitToNChunks(newIcons, Math.ceil(newIcons.length / 5000))) { - transaction.insert(icons).values(chunck).run(); + await transaction.insert(schema.icons).values(chunck); } } - if (deadIcons.length >= 1) { - transaction - .delete(icons) - .where( - inArray( - // Combine iconRepositoryId and checksum to allow same icons on different repositories - sql`concat(${icons.iconRepositoryId}, '.', ${icons.checksum})`, - deadIcons.map((icon) => `${icon.iconRepositoryId}.${icon.checksum}`), - ), - ) - .run(); - } + }); + }, + handleSync() { + db.transaction((transaction) => { + const result = transaction.delete(icons).where(deadIconsFilter).run(); + countDeleted += result.changes; if (deadIconRepositories.length >= 1) { transaction @@ -161,13 +144,22 @@ export const iconsUpdaterJob = createCronJob("iconsUpdater", EVERY_WEEK, { .run(); } - countDeleted += deadIcons.length; + if (newIconRepositories.length >= 1) { + transaction.insert(iconRepositories).values(newIconRepositories).run(); + } + + if (newIcons.length >= 1) { + // We only insert 5000 icons at a time to avoid SQLite limitations + for (const chunck of splitToNChunks(newIcons, Math.ceil(newIcons.length / 5000))) { + transaction.insert(icons).values(chunck).run(); + } + } }); }, }); logger.info("Updated icons in database", { - duration: stopWatch.getElapsedInHumanWords(), + duration: stopWatch.getElapsedInFormattedMilliseconds(), added: countInserted, deleted: countDeleted, }); diff --git a/packages/cron-jobs/src/jobs/integrations/health-monitoring.ts b/packages/cron-jobs/src/jobs/integrations/health-monitoring.ts index e52db0d4e..197a61c8e 100644 --- a/packages/cron-jobs/src/jobs/integrations/health-monitoring.ts +++ b/packages/cron-jobs/src/jobs/integrations/health-monitoring.ts @@ -1,4 +1,5 @@ import { EVERY_5_SECONDS } from "@homarr/cron-jobs-core/expressions"; +import { coolifyRequestHandler } from "@homarr/request-handler/coolify"; import { clusterInfoRequestHandler, systemInfoRequestHandler } from "@homarr/request-handler/health-monitoring"; import { createRequestIntegrationJobHandler } from "@homarr/request-handler/lib/cached-request-integration-job-handler"; @@ -9,16 +10,20 @@ export const healthMonitoringJob = createCronJob("healthMonitoring", EVERY_5_SEC (integration, itemOptions: Record) => { const { kind } = integration; - if (kind !== "proxmox" && kind !== "mock") { + if (kind !== "proxmox" && kind !== "mock" && kind !== "coolify") { return systemInfoRequestHandler.handler({ ...integration, kind }, itemOptions); } + if (kind === "coolify") { + return coolifyRequestHandler.handler({ ...integration, kind }, itemOptions); + } return clusterInfoRequestHandler.handler({ ...integration, kind }, itemOptions); }, { - widgetKinds: ["healthMonitoring", "systemResources"], + widgetKinds: ["healthMonitoring", "systemResources", "coolify"], getInput: { healthMonitoring: () => ({}), systemResources: () => ({}), + coolify: () => ({}), }, }, ), diff --git a/packages/cron-jobs/src/jobs/integrations/timetable.ts b/packages/cron-jobs/src/jobs/integrations/timetable.ts new file mode 100644 index 000000000..b3964dc38 --- /dev/null +++ b/packages/cron-jobs/src/jobs/integrations/timetable.ts @@ -0,0 +1,20 @@ +import { EVERY_5_MINUTES } from "@homarr/cron-jobs-core/expressions"; +import { createRequestIntegrationJobHandler } from "@homarr/request-handler/lib/cached-request-integration-job-handler"; +import { timetableGetTimetableRequestHandler } from "@homarr/request-handler/timetable"; + +import { createCronJob } from "../../lib"; + +export const timetableJob = createCronJob("timetable", EVERY_5_MINUTES).withCallback( + createRequestIntegrationJobHandler(timetableGetTimetableRequestHandler.handler, { + widgetKinds: ["timetable"], + getInput: { + timetable: (options) => + options.station + ? { + stationId: options.station.value, + limit: 10, + } + : [], + }, + }), +); diff --git a/packages/cron-jobs/src/jobs/integrations/tracearr.ts b/packages/cron-jobs/src/jobs/integrations/tracearr.ts new file mode 100644 index 000000000..f80130374 --- /dev/null +++ b/packages/cron-jobs/src/jobs/integrations/tracearr.ts @@ -0,0 +1,14 @@ +import { EVERY_5_SECONDS } from "@homarr/cron-jobs-core/expressions"; +import { createRequestIntegrationJobHandler } from "@homarr/request-handler/lib/cached-request-integration-job-handler"; +import { tracearrRequestHandler } from "@homarr/request-handler/tracearr"; + +import { createCronJob } from "../../lib"; + +export const tracearrJob = createCronJob("tracearr", EVERY_5_SECONDS).withCallback( + createRequestIntegrationJobHandler(tracearrRequestHandler.handler, { + widgetKinds: ["tracearr"], + getInput: { + tracearr: () => ({}), + }, + }), +); diff --git a/packages/cron-jobs/src/jobs/integrations/umami.ts b/packages/cron-jobs/src/jobs/integrations/umami.ts new file mode 100644 index 000000000..c50a3c604 --- /dev/null +++ b/packages/cron-jobs/src/jobs/integrations/umami.ts @@ -0,0 +1,14 @@ +import { EVERY_30_SECONDS } from "@homarr/cron-jobs-core/expressions"; +import { createRequestIntegrationJobHandler } from "@homarr/request-handler/lib/cached-request-integration-job-handler"; +import { umamiActiveVisitorsRequestHandler } from "@homarr/request-handler/umami"; + +import { createCronJob } from "../../lib"; + +export const umamiActiveVisitorsJob = createCronJob("umamiActiveVisitors", EVERY_30_SECONDS).withCallback( + createRequestIntegrationJobHandler(umamiActiveVisitorsRequestHandler.handler, { + widgetKinds: ["umami"], + getInput: { + umami: (options) => (options.websiteId ? { websiteId: options.websiteId } : []), + }, + }), +); diff --git a/packages/cron-jobs/src/jobs/rss-feeds.ts b/packages/cron-jobs/src/jobs/rss-feeds.ts index 2dda83499..6a497a043 100644 --- a/packages/cron-jobs/src/jobs/rss-feeds.ts +++ b/packages/cron-jobs/src/jobs/rss-feeds.ts @@ -5,9 +5,9 @@ import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import { EVERY_10_MINUTES } from "@homarr/cron-jobs-core/expressions"; import { db, eq } from "@homarr/db"; import { items } from "@homarr/db/schema"; -// This import is done that way to avoid circular dependencies. import { rssFeedsRequestHandler } from "@homarr/request-handler/rss-feeds"; +// This import is done that way to avoid circular dependencies. import type { WidgetComponentProps } from "../../../widgets"; import { createCronJob } from "../lib"; diff --git a/packages/db/migrations/mysql/0037_remove_salt.sql b/packages/db/migrations/mysql/0037_remove_salt.sql new file mode 100644 index 000000000..20f6ed492 --- /dev/null +++ b/packages/db/migrations/mysql/0037_remove_salt.sql @@ -0,0 +1,2 @@ +ALTER TABLE `apiKey` DROP COLUMN `salt`;--> statement-breakpoint +ALTER TABLE `user` DROP COLUMN `salt`; \ No newline at end of file diff --git a/packages/db/migrations/mysql/0038_add_user_ddg_bangs.sql b/packages/db/migrations/mysql/0038_add_user_ddg_bangs.sql new file mode 100644 index 000000000..71bf79814 --- /dev/null +++ b/packages/db/migrations/mysql/0038_add_user_ddg_bangs.sql @@ -0,0 +1 @@ +ALTER TABLE `user` ADD `ddg_bangs` boolean DEFAULT true NOT NULL; \ No newline at end of file diff --git a/packages/db/migrations/mysql/meta/0037_snapshot.json b/packages/db/migrations/mysql/meta/0037_snapshot.json new file mode 100644 index 000000000..1ccd5e954 --- /dev/null +++ b/packages/db/migrations/mysql/meta/0037_snapshot.json @@ -0,0 +1,2096 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "730ee1c1-a35e-426f-a828-7ecde882f920", + "prevId": "90ea3b87-abde-433b-9cd4-0aaff72311a9", + "tables": { + "account": { + "name": "account", + "columns": { + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "userId_idx": { + "name": "userId_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "account_user_id_user_id_fk": { + "name": "account_user_id_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "account_provider_provider_account_id_pk": { + "name": "account_provider_provider_account_id_pk", + "columns": ["provider", "provider_account_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apiKey": { + "name": "apiKey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "apiKey_user_id_user_id_fk": { + "name": "apiKey_user_id_user_id_fk", + "tableFrom": "apiKey", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "apiKey_id": { + "name": "apiKey_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "app": { + "name": "app", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "href": { + "name": "href", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "ping_url": { + "name": "ping_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "app_id": { + "name": "app_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "boardGroupPermission": { + "name": "boardGroupPermission", + "columns": { + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "boardGroupPermission_board_id_board_id_fk": { + "name": "boardGroupPermission_board_id_board_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardGroupPermission_group_id_group_id_fk": { + "name": "boardGroupPermission_group_id_group_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardGroupPermission_board_id_group_id_permission_pk": { + "name": "boardGroupPermission_board_id_group_id_permission_pk", + "columns": ["board_id", "group_id", "permission"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "boardUserPermission": { + "name": "boardUserPermission", + "columns": { + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "boardUserPermission_board_id_board_id_fk": { + "name": "boardUserPermission_board_id_board_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardUserPermission_user_id_user_id_fk": { + "name": "boardUserPermission_user_id_user_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardUserPermission_board_id_user_id_permission_pk": { + "name": "boardUserPermission_board_id_user_id_permission_pk", + "columns": ["board_id", "user_id", "permission"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "board": { + "name": "board", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_public": { + "name": "is_public", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "page_title": { + "name": "page_title", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "meta_title": { + "name": "meta_title", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "logo_image_url": { + "name": "logo_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "favicon_image_url": { + "name": "favicon_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "background_image_url": { + "name": "background_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "background_image_attachment": { + "name": "background_image_attachment", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('fixed')" + }, + "background_image_repeat": { + "name": "background_image_repeat", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('no-repeat')" + }, + "background_image_size": { + "name": "background_image_size", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('cover')" + }, + "primary_color": { + "name": "primary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('#fa5252')" + }, + "secondary_color": { + "name": "secondary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('#fd7e14')" + }, + "opacity": { + "name": "opacity", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 100 + }, + "custom_css": { + "name": "custom_css", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon_color": { + "name": "icon_color", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "item_radius": { + "name": "item_radius", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('lg')" + }, + "disable_status": { + "name": "disable_status", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "board_creator_id_user_id_fk": { + "name": "board_creator_id_user_id_fk", + "tableFrom": "board", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "board_id": { + "name": "board_id", + "columns": ["id"] + } + }, + "uniqueConstraints": { + "board_name_unique": { + "name": "board_name_unique", + "columns": ["name"] + } + }, + "checkConstraint": {} + }, + "cron_job_configuration": { + "name": "cron_job_configuration", + "columns": { + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "cron_expression": { + "name": "cron_expression", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_enabled": { + "name": "is_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "cron_job_configuration_name": { + "name": "cron_job_configuration_name", + "columns": ["name"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "groupMember": { + "name": "groupMember", + "columns": { + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "groupMember_group_id_group_id_fk": { + "name": "groupMember_group_id_group_id_fk", + "tableFrom": "groupMember", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "groupMember_user_id_user_id_fk": { + "name": "groupMember_user_id_user_id_fk", + "tableFrom": "groupMember", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "groupMember_group_id_user_id_pk": { + "name": "groupMember_group_id_user_id_pk", + "columns": ["group_id", "user_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "groupPermission": { + "name": "groupPermission", + "columns": { + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "groupPermission_group_id_group_id_fk": { + "name": "groupPermission_group_id_group_id_fk", + "tableFrom": "groupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "group": { + "name": "group", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner_id": { + "name": "owner_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "home_board_id": { + "name": "home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "position": { + "name": "position", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "group_owner_id_user_id_fk": { + "name": "group_owner_id_user_id_fk", + "tableFrom": "group", + "tableTo": "user", + "columnsFrom": ["owner_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_home_board_id_board_id_fk": { + "name": "group_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_mobile_home_board_id_board_id_fk": { + "name": "group_mobile_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "group_id": { + "name": "group_id", + "columns": ["id"] + } + }, + "uniqueConstraints": { + "group_name_unique": { + "name": "group_name_unique", + "columns": ["name"] + } + }, + "checkConstraint": {} + }, + "iconRepository": { + "name": "iconRepository", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(150)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "iconRepository_id": { + "name": "iconRepository_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "icon": { + "name": "icon", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(250)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "checksum": { + "name": "checksum", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "icon_repository_id": { + "name": "icon_repository_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "icon_icon_repository_id_iconRepository_id_fk": { + "name": "icon_icon_repository_id_iconRepository_id_fk", + "tableFrom": "icon", + "tableTo": "iconRepository", + "columnsFrom": ["icon_repository_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "icon_id": { + "name": "icon_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integrationGroupPermissions": { + "name": "integrationGroupPermissions", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integrationGroupPermissions_integration_id_integration_id_fk": { + "name": "integrationGroupPermissions_integration_id_integration_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationGroupPermissions_group_id_group_id_fk": { + "name": "integrationGroupPermissions_group_id_group_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_group_permission__pk": { + "name": "integration_group_permission__pk", + "columns": ["integration_id", "group_id", "permission"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integration_item": { + "name": "integration_item", + "columns": { + "item_id": { + "name": "item_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integration_item_item_id_item_id_fk": { + "name": "integration_item_item_id_item_id_fk", + "tableFrom": "integration_item", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integration_item_integration_id_integration_id_fk": { + "name": "integration_item_integration_id_integration_id_fk", + "tableFrom": "integration_item", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_item_item_id_integration_id_pk": { + "name": "integration_item_item_id_integration_id_pk", + "columns": ["item_id", "integration_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integrationSecret": { + "name": "integrationSecret", + "columns": { + "kind": { + "name": "kind", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "integration_secret__kind_idx": { + "name": "integration_secret__kind_idx", + "columns": ["kind"], + "isUnique": false + }, + "integration_secret__updated_at_idx": { + "name": "integration_secret__updated_at_idx", + "columns": ["updated_at"], + "isUnique": false + } + }, + "foreignKeys": { + "integrationSecret_integration_id_integration_id_fk": { + "name": "integrationSecret_integration_id_integration_id_fk", + "tableFrom": "integrationSecret", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationSecret_integration_id_kind_pk": { + "name": "integrationSecret_integration_id_kind_pk", + "columns": ["integration_id", "kind"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integrationUserPermission": { + "name": "integrationUserPermission", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integrationUserPermission_integration_id_integration_id_fk": { + "name": "integrationUserPermission_integration_id_integration_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationUserPermission_user_id_user_id_fk": { + "name": "integrationUserPermission_user_id_user_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationUserPermission_integration_id_user_id_permission_pk": { + "name": "integrationUserPermission_integration_id_user_id_permission_pk", + "columns": ["integration_id", "user_id", "permission"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integration": { + "name": "integration", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "app_id": { + "name": "app_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "integration__kind_idx": { + "name": "integration__kind_idx", + "columns": ["kind"], + "isUnique": false + } + }, + "foreignKeys": { + "integration_app_id_app_id_fk": { + "name": "integration_app_id_app_id_fk", + "tableFrom": "integration", + "tableTo": "app", + "columnsFrom": ["app_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_id": { + "name": "integration_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invite": { + "name": "invite", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expiration_date": { + "name": "expiration_date", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "invite_creator_id_user_id_fk": { + "name": "invite_creator_id_user_id_fk", + "tableFrom": "invite", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "invite_id": { + "name": "invite_id", + "columns": ["id"] + } + }, + "uniqueConstraints": { + "invite_token_unique": { + "name": "invite_token_unique", + "columns": ["token"] + } + }, + "checkConstraint": {} + }, + "item_layout": { + "name": "item_layout", + "columns": { + "item_id": { + "name": "item_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "layout_id": { + "name": "layout_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "width": { + "name": "width", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "height": { + "name": "height", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "item_layout_item_id_item_id_fk": { + "name": "item_layout_item_id_item_id_fk", + "tableFrom": "item_layout", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_section_id_section_id_fk": { + "name": "item_layout_section_id_section_id_fk", + "tableFrom": "item_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_layout_id_layout_id_fk": { + "name": "item_layout_layout_id_layout_id_fk", + "tableFrom": "item_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "item_layout_item_id_section_id_layout_id_pk": { + "name": "item_layout_item_id_section_id_layout_id_pk", + "columns": ["item_id", "section_id", "layout_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "item": { + "name": "item", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('{\"json\": {}}')" + }, + "advanced_options": { + "name": "advanced_options", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('{\"json\": {}}')" + } + }, + "indexes": {}, + "foreignKeys": { + "item_board_id_board_id_fk": { + "name": "item_board_id_board_id_fk", + "tableFrom": "item", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "item_id": { + "name": "item_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "layout": { + "name": "layout", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "column_count": { + "name": "column_count", + "type": "tinyint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "breakpoint": { + "name": "breakpoint", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "layout_board_id_board_id_fk": { + "name": "layout_board_id_board_id_fk", + "tableFrom": "layout", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "layout_id": { + "name": "layout_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "media": { + "name": "media", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "content": { + "name": "content", + "type": "LONGBLOB", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "content_type": { + "name": "content_type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "size": { + "name": "size", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "media_creator_id_user_id_fk": { + "name": "media_creator_id_user_id_fk", + "tableFrom": "media", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "media_id": { + "name": "media_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "onboarding": { + "name": "onboarding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "step": { + "name": "step", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "previous_step": { + "name": "previous_step", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "onboarding_id": { + "name": "onboarding_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "search_engine": { + "name": "search_engine", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "short": { + "name": "short", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url_template": { + "name": "url_template", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'generic'" + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "search_engine_integration_id_integration_id_fk": { + "name": "search_engine_integration_id_integration_id_fk", + "tableFrom": "search_engine", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "search_engine_id": { + "name": "search_engine_id", + "columns": ["id"] + } + }, + "uniqueConstraints": { + "search_engine_short_unique": { + "name": "search_engine_short_unique", + "columns": ["short"] + } + }, + "checkConstraint": {} + }, + "section_collapse_state": { + "name": "section_collapse_state", + "columns": { + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "collapsed": { + "name": "collapsed", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_collapse_state_user_id_user_id_fk": { + "name": "section_collapse_state_user_id_user_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_collapse_state_section_id_section_id_fk": { + "name": "section_collapse_state_section_id_section_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_collapse_state_user_id_section_id_pk": { + "name": "section_collapse_state_user_id_section_id_pk", + "columns": ["user_id", "section_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "section_layout": { + "name": "section_layout", + "columns": { + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "layout_id": { + "name": "layout_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "parent_section_id": { + "name": "parent_section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "width": { + "name": "width", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "height": { + "name": "height", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_layout_section_id_section_id_fk": { + "name": "section_layout_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_layout_id_layout_id_fk": { + "name": "section_layout_layout_id_layout_id_fk", + "tableFrom": "section_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_parent_section_id_section_id_fk": { + "name": "section_layout_parent_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["parent_section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_layout_section_id_layout_id_pk": { + "name": "section_layout_section_id_layout_id_pk", + "columns": ["section_id", "layout_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "section": { + "name": "section", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "('{\"json\": {}}')" + } + }, + "indexes": {}, + "foreignKeys": { + "section_board_id_board_id_fk": { + "name": "section_board_id_board_id_fk", + "tableFrom": "section", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_id": { + "name": "section_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "serverSetting": { + "name": "serverSetting", + "columns": { + "setting_key": { + "name": "setting_key", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('{\"json\": {}}')" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "serverSetting_setting_key": { + "name": "serverSetting_setting_key", + "columns": ["setting_key"] + } + }, + "uniqueConstraints": { + "serverSetting_settingKey_unique": { + "name": "serverSetting_settingKey_unique", + "columns": ["setting_key"] + } + }, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "session_token": { + "name": "session_token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "session_user_id_user_id_fk": { + "name": "session_user_id_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "session_session_token": { + "name": "session_session_token", + "columns": ["session_token"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'credentials'" + }, + "home_board_id": { + "name": "home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_search_engine_id": { + "name": "default_search_engine_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "open_search_in_new_tab": { + "name": "open_search_in_new_tab", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "color_scheme": { + "name": "color_scheme", + "type": "varchar(5)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'dark'" + }, + "first_day_of_week": { + "name": "first_day_of_week", + "type": "tinyint", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "ping_icons_enabled": { + "name": "ping_icons_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_home_board_id_board_id_fk": { + "name": "user_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_mobile_home_board_id_board_id_fk": { + "name": "user_mobile_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_default_search_engine_id_search_engine_id_fk": { + "name": "user_default_search_engine_id_search_engine_id_fk", + "tableFrom": "user", + "tableTo": "search_engine", + "columnsFrom": ["default_search_engine_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verificationToken": { + "name": "verificationToken", + "columns": { + "identifier": { + "name": "identifier", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verificationToken_identifier_token_pk": { + "name": "verificationToken_identifier_token_pk", + "columns": ["identifier", "token"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "trusted_certificate_hostname": { + "name": "trusted_certificate_hostname", + "columns": { + "hostname": { + "name": "hostname", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "thumbprint": { + "name": "thumbprint", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "certificate": { + "name": "certificate", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "trusted_certificate_hostname_hostname_thumbprint_pk": { + "name": "trusted_certificate_hostname_hostname_thumbprint_pk", + "columns": ["hostname", "thumbprint"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} diff --git a/packages/db/migrations/mysql/meta/0038_snapshot.json b/packages/db/migrations/mysql/meta/0038_snapshot.json new file mode 100644 index 000000000..0da9e1447 --- /dev/null +++ b/packages/db/migrations/mysql/meta/0038_snapshot.json @@ -0,0 +1,2104 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "ddg-bangs-mysql-0038", + "prevId": "ddg-bangs-mysql-0038", + "tables": { + "account": { + "name": "account", + "columns": { + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "userId_idx": { + "name": "userId_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "account_user_id_user_id_fk": { + "name": "account_user_id_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "account_provider_provider_account_id_pk": { + "name": "account_provider_provider_account_id_pk", + "columns": ["provider", "provider_account_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apiKey": { + "name": "apiKey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "apiKey_user_id_user_id_fk": { + "name": "apiKey_user_id_user_id_fk", + "tableFrom": "apiKey", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "apiKey_id": { + "name": "apiKey_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "app": { + "name": "app", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "href": { + "name": "href", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "ping_url": { + "name": "ping_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "app_id": { + "name": "app_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "boardGroupPermission": { + "name": "boardGroupPermission", + "columns": { + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "boardGroupPermission_board_id_board_id_fk": { + "name": "boardGroupPermission_board_id_board_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardGroupPermission_group_id_group_id_fk": { + "name": "boardGroupPermission_group_id_group_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardGroupPermission_board_id_group_id_permission_pk": { + "name": "boardGroupPermission_board_id_group_id_permission_pk", + "columns": ["board_id", "group_id", "permission"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "boardUserPermission": { + "name": "boardUserPermission", + "columns": { + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "boardUserPermission_board_id_board_id_fk": { + "name": "boardUserPermission_board_id_board_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardUserPermission_user_id_user_id_fk": { + "name": "boardUserPermission_user_id_user_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardUserPermission_board_id_user_id_permission_pk": { + "name": "boardUserPermission_board_id_user_id_permission_pk", + "columns": ["board_id", "user_id", "permission"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "board": { + "name": "board", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_public": { + "name": "is_public", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "page_title": { + "name": "page_title", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "meta_title": { + "name": "meta_title", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "logo_image_url": { + "name": "logo_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "favicon_image_url": { + "name": "favicon_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "background_image_url": { + "name": "background_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "background_image_attachment": { + "name": "background_image_attachment", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('fixed')" + }, + "background_image_repeat": { + "name": "background_image_repeat", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('no-repeat')" + }, + "background_image_size": { + "name": "background_image_size", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('cover')" + }, + "primary_color": { + "name": "primary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('#fa5252')" + }, + "secondary_color": { + "name": "secondary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('#fd7e14')" + }, + "opacity": { + "name": "opacity", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 100 + }, + "custom_css": { + "name": "custom_css", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon_color": { + "name": "icon_color", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "item_radius": { + "name": "item_radius", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('lg')" + }, + "disable_status": { + "name": "disable_status", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "board_creator_id_user_id_fk": { + "name": "board_creator_id_user_id_fk", + "tableFrom": "board", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "board_id": { + "name": "board_id", + "columns": ["id"] + } + }, + "uniqueConstraints": { + "board_name_unique": { + "name": "board_name_unique", + "columns": ["name"] + } + }, + "checkConstraint": {} + }, + "cron_job_configuration": { + "name": "cron_job_configuration", + "columns": { + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "cron_expression": { + "name": "cron_expression", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_enabled": { + "name": "is_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "cron_job_configuration_name": { + "name": "cron_job_configuration_name", + "columns": ["name"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "groupMember": { + "name": "groupMember", + "columns": { + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "groupMember_group_id_group_id_fk": { + "name": "groupMember_group_id_group_id_fk", + "tableFrom": "groupMember", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "groupMember_user_id_user_id_fk": { + "name": "groupMember_user_id_user_id_fk", + "tableFrom": "groupMember", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "groupMember_group_id_user_id_pk": { + "name": "groupMember_group_id_user_id_pk", + "columns": ["group_id", "user_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "groupPermission": { + "name": "groupPermission", + "columns": { + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "groupPermission_group_id_group_id_fk": { + "name": "groupPermission_group_id_group_id_fk", + "tableFrom": "groupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "group": { + "name": "group", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner_id": { + "name": "owner_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "home_board_id": { + "name": "home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "position": { + "name": "position", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "group_owner_id_user_id_fk": { + "name": "group_owner_id_user_id_fk", + "tableFrom": "group", + "tableTo": "user", + "columnsFrom": ["owner_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_home_board_id_board_id_fk": { + "name": "group_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_mobile_home_board_id_board_id_fk": { + "name": "group_mobile_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "group_id": { + "name": "group_id", + "columns": ["id"] + } + }, + "uniqueConstraints": { + "group_name_unique": { + "name": "group_name_unique", + "columns": ["name"] + } + }, + "checkConstraint": {} + }, + "iconRepository": { + "name": "iconRepository", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(150)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "iconRepository_id": { + "name": "iconRepository_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "icon": { + "name": "icon", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(250)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "checksum": { + "name": "checksum", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "icon_repository_id": { + "name": "icon_repository_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "icon_icon_repository_id_iconRepository_id_fk": { + "name": "icon_icon_repository_id_iconRepository_id_fk", + "tableFrom": "icon", + "tableTo": "iconRepository", + "columnsFrom": ["icon_repository_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "icon_id": { + "name": "icon_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integrationGroupPermissions": { + "name": "integrationGroupPermissions", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integrationGroupPermissions_integration_id_integration_id_fk": { + "name": "integrationGroupPermissions_integration_id_integration_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationGroupPermissions_group_id_group_id_fk": { + "name": "integrationGroupPermissions_group_id_group_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_group_permission__pk": { + "name": "integration_group_permission__pk", + "columns": ["integration_id", "group_id", "permission"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integration_item": { + "name": "integration_item", + "columns": { + "item_id": { + "name": "item_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integration_item_item_id_item_id_fk": { + "name": "integration_item_item_id_item_id_fk", + "tableFrom": "integration_item", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integration_item_integration_id_integration_id_fk": { + "name": "integration_item_integration_id_integration_id_fk", + "tableFrom": "integration_item", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_item_item_id_integration_id_pk": { + "name": "integration_item_item_id_integration_id_pk", + "columns": ["item_id", "integration_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integrationSecret": { + "name": "integrationSecret", + "columns": { + "kind": { + "name": "kind", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "integration_secret__kind_idx": { + "name": "integration_secret__kind_idx", + "columns": ["kind"], + "isUnique": false + }, + "integration_secret__updated_at_idx": { + "name": "integration_secret__updated_at_idx", + "columns": ["updated_at"], + "isUnique": false + } + }, + "foreignKeys": { + "integrationSecret_integration_id_integration_id_fk": { + "name": "integrationSecret_integration_id_integration_id_fk", + "tableFrom": "integrationSecret", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationSecret_integration_id_kind_pk": { + "name": "integrationSecret_integration_id_kind_pk", + "columns": ["integration_id", "kind"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integrationUserPermission": { + "name": "integrationUserPermission", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integrationUserPermission_integration_id_integration_id_fk": { + "name": "integrationUserPermission_integration_id_integration_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationUserPermission_user_id_user_id_fk": { + "name": "integrationUserPermission_user_id_user_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationUserPermission_integration_id_user_id_permission_pk": { + "name": "integrationUserPermission_integration_id_user_id_permission_pk", + "columns": ["integration_id", "user_id", "permission"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "integration": { + "name": "integration", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "app_id": { + "name": "app_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "integration__kind_idx": { + "name": "integration__kind_idx", + "columns": ["kind"], + "isUnique": false + } + }, + "foreignKeys": { + "integration_app_id_app_id_fk": { + "name": "integration_app_id_app_id_fk", + "tableFrom": "integration", + "tableTo": "app", + "columnsFrom": ["app_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_id": { + "name": "integration_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invite": { + "name": "invite", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expiration_date": { + "name": "expiration_date", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "invite_creator_id_user_id_fk": { + "name": "invite_creator_id_user_id_fk", + "tableFrom": "invite", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "invite_id": { + "name": "invite_id", + "columns": ["id"] + } + }, + "uniqueConstraints": { + "invite_token_unique": { + "name": "invite_token_unique", + "columns": ["token"] + } + }, + "checkConstraint": {} + }, + "item_layout": { + "name": "item_layout", + "columns": { + "item_id": { + "name": "item_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "layout_id": { + "name": "layout_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "width": { + "name": "width", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "height": { + "name": "height", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "item_layout_item_id_item_id_fk": { + "name": "item_layout_item_id_item_id_fk", + "tableFrom": "item_layout", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_section_id_section_id_fk": { + "name": "item_layout_section_id_section_id_fk", + "tableFrom": "item_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_layout_id_layout_id_fk": { + "name": "item_layout_layout_id_layout_id_fk", + "tableFrom": "item_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "item_layout_item_id_section_id_layout_id_pk": { + "name": "item_layout_item_id_section_id_layout_id_pk", + "columns": ["item_id", "section_id", "layout_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "item": { + "name": "item", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('{\"json\": {}}')" + }, + "advanced_options": { + "name": "advanced_options", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('{\"json\": {}}')" + } + }, + "indexes": {}, + "foreignKeys": { + "item_board_id_board_id_fk": { + "name": "item_board_id_board_id_fk", + "tableFrom": "item", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "item_id": { + "name": "item_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "layout": { + "name": "layout", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "column_count": { + "name": "column_count", + "type": "tinyint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "breakpoint": { + "name": "breakpoint", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "layout_board_id_board_id_fk": { + "name": "layout_board_id_board_id_fk", + "tableFrom": "layout", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "layout_id": { + "name": "layout_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "media": { + "name": "media", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "content": { + "name": "content", + "type": "LONGBLOB", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "content_type": { + "name": "content_type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "size": { + "name": "size", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "media_creator_id_user_id_fk": { + "name": "media_creator_id_user_id_fk", + "tableFrom": "media", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "media_id": { + "name": "media_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "onboarding": { + "name": "onboarding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "step": { + "name": "step", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "previous_step": { + "name": "previous_step", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "onboarding_id": { + "name": "onboarding_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "search_engine": { + "name": "search_engine", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "short": { + "name": "short", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url_template": { + "name": "url_template", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'generic'" + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "search_engine_integration_id_integration_id_fk": { + "name": "search_engine_integration_id_integration_id_fk", + "tableFrom": "search_engine", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "search_engine_id": { + "name": "search_engine_id", + "columns": ["id"] + } + }, + "uniqueConstraints": { + "search_engine_short_unique": { + "name": "search_engine_short_unique", + "columns": ["short"] + } + }, + "checkConstraint": {} + }, + "section_collapse_state": { + "name": "section_collapse_state", + "columns": { + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "collapsed": { + "name": "collapsed", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_collapse_state_user_id_user_id_fk": { + "name": "section_collapse_state_user_id_user_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_collapse_state_section_id_section_id_fk": { + "name": "section_collapse_state_section_id_section_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_collapse_state_user_id_section_id_pk": { + "name": "section_collapse_state_user_id_section_id_pk", + "columns": ["user_id", "section_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "section_layout": { + "name": "section_layout", + "columns": { + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "layout_id": { + "name": "layout_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "parent_section_id": { + "name": "parent_section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "width": { + "name": "width", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "height": { + "name": "height", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_layout_section_id_section_id_fk": { + "name": "section_layout_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_layout_id_layout_id_fk": { + "name": "section_layout_layout_id_layout_id_fk", + "tableFrom": "section_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_parent_section_id_section_id_fk": { + "name": "section_layout_parent_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["parent_section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_layout_section_id_layout_id_pk": { + "name": "section_layout_section_id_layout_id_pk", + "columns": ["section_id", "layout_id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "section": { + "name": "section", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "('{\"json\": {}}')" + } + }, + "indexes": {}, + "foreignKeys": { + "section_board_id_board_id_fk": { + "name": "section_board_id_board_id_fk", + "tableFrom": "section", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_id": { + "name": "section_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "serverSetting": { + "name": "serverSetting", + "columns": { + "setting_key": { + "name": "setting_key", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "('{\"json\": {}}')" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "serverSetting_setting_key": { + "name": "serverSetting_setting_key", + "columns": ["setting_key"] + } + }, + "uniqueConstraints": { + "serverSetting_settingKey_unique": { + "name": "serverSetting_settingKey_unique", + "columns": ["setting_key"] + } + }, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "session_token": { + "name": "session_token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "session_user_id_user_id_fk": { + "name": "session_user_id_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "session_session_token": { + "name": "session_session_token", + "columns": ["session_token"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'credentials'" + }, + "home_board_id": { + "name": "home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_search_engine_id": { + "name": "default_search_engine_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "open_search_in_new_tab": { + "name": "open_search_in_new_tab", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "color_scheme": { + "name": "color_scheme", + "type": "varchar(5)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'dark'" + }, + "first_day_of_week": { + "name": "first_day_of_week", + "type": "tinyint", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "ping_icons_enabled": { + "name": "ping_icons_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "ddg_bangs": { + "name": "ddg_bangs", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + } + }, + "indexes": {}, + "foreignKeys": { + "user_home_board_id_board_id_fk": { + "name": "user_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_mobile_home_board_id_board_id_fk": { + "name": "user_mobile_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_default_search_engine_id_search_engine_id_fk": { + "name": "user_default_search_engine_id_search_engine_id_fk", + "tableFrom": "user", + "tableTo": "search_engine", + "columnsFrom": ["default_search_engine_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": ["id"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verificationToken": { + "name": "verificationToken", + "columns": { + "identifier": { + "name": "identifier", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verificationToken_identifier_token_pk": { + "name": "verificationToken_identifier_token_pk", + "columns": ["identifier", "token"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "trusted_certificate_hostname": { + "name": "trusted_certificate_hostname", + "columns": { + "hostname": { + "name": "hostname", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "thumbprint": { + "name": "thumbprint", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "certificate": { + "name": "certificate", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "trusted_certificate_hostname_hostname_thumbprint_pk": { + "name": "trusted_certificate_hostname_hostname_thumbprint_pk", + "columns": ["hostname", "thumbprint"] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} diff --git a/packages/db/migrations/mysql/meta/_journal.json b/packages/db/migrations/mysql/meta/_journal.json index 284af5f2a..421c81699 100644 --- a/packages/db/migrations/mysql/meta/_journal.json +++ b/packages/db/migrations/mysql/meta/_journal.json @@ -260,6 +260,20 @@ "when": 1760968518445, "tag": "0036_add_app_reference_to_integration", "breakpoints": true + }, + { + "idx": 37, + "version": "5", + "when": 1775399941430, + "tag": "0037_remove_salt", + "breakpoints": true + }, + { + "idx": 38, + "version": "5", + "when": 1775400000000, + "tag": "0038_add_user_ddg_bangs", + "breakpoints": true } ] } diff --git a/packages/db/migrations/postgresql/0003_remove_salt.sql b/packages/db/migrations/postgresql/0003_remove_salt.sql new file mode 100644 index 000000000..413cdb18e --- /dev/null +++ b/packages/db/migrations/postgresql/0003_remove_salt.sql @@ -0,0 +1,2 @@ +ALTER TABLE "apiKey" DROP COLUMN "salt";--> statement-breakpoint +ALTER TABLE "user" DROP COLUMN "salt"; \ No newline at end of file diff --git a/packages/db/migrations/postgresql/0004_add_user_ddg_bangs.sql b/packages/db/migrations/postgresql/0004_add_user_ddg_bangs.sql new file mode 100644 index 000000000..90755a9b3 --- /dev/null +++ b/packages/db/migrations/postgresql/0004_add_user_ddg_bangs.sql @@ -0,0 +1 @@ +ALTER TABLE "user" ADD COLUMN "ddg_bangs" boolean DEFAULT true NOT NULL; \ No newline at end of file diff --git a/packages/db/migrations/postgresql/meta/0003_snapshot.json b/packages/db/migrations/postgresql/meta/0003_snapshot.json new file mode 100644 index 000000000..8c2b80518 --- /dev/null +++ b/packages/db/migrations/postgresql/meta/0003_snapshot.json @@ -0,0 +1,1995 @@ +{ + "id": "259f3d62-93b1-4e4c-b201-38ee6d5a5db1", + "prevId": "66a8193e-c82f-4b41-99da-8d94f5737c62", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.account": { + "name": "account", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "userId_idx": { + "name": "userId_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "account_user_id_user_id_fk": { + "name": "account_user_id_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "account_provider_provider_account_id_pk": { + "name": "account_provider_provider_account_id_pk", + "columns": ["provider", "provider_account_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.apiKey": { + "name": "apiKey", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "apiKey_user_id_user_id_fk": { + "name": "apiKey_user_id_user_id_fk", + "tableFrom": "apiKey", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.app": { + "name": "app", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "href": { + "name": "href", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "ping_url": { + "name": "ping_url", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.boardGroupPermission": { + "name": "boardGroupPermission", + "schema": "", + "columns": { + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "boardGroupPermission_board_id_board_id_fk": { + "name": "boardGroupPermission_board_id_board_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardGroupPermission_group_id_group_id_fk": { + "name": "boardGroupPermission_group_id_group_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardGroupPermission_board_id_group_id_permission_pk": { + "name": "boardGroupPermission_board_id_group_id_permission_pk", + "columns": ["board_id", "group_id", "permission"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.boardUserPermission": { + "name": "boardUserPermission", + "schema": "", + "columns": { + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "boardUserPermission_board_id_board_id_fk": { + "name": "boardUserPermission_board_id_board_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardUserPermission_user_id_user_id_fk": { + "name": "boardUserPermission_user_id_user_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardUserPermission_board_id_user_id_permission_pk": { + "name": "boardUserPermission_board_id_user_id_permission_pk", + "columns": ["board_id", "user_id", "permission"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.board": { + "name": "board", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true + }, + "is_public": { + "name": "is_public", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "page_title": { + "name": "page_title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "meta_title": { + "name": "meta_title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "logo_image_url": { + "name": "logo_image_url", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "favicon_image_url": { + "name": "favicon_image_url", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "background_image_url": { + "name": "background_image_url", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "background_image_attachment": { + "name": "background_image_attachment", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'fixed'" + }, + "background_image_repeat": { + "name": "background_image_repeat", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'no-repeat'" + }, + "background_image_size": { + "name": "background_image_size", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'cover'" + }, + "primary_color": { + "name": "primary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'#fa5252'" + }, + "secondary_color": { + "name": "secondary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'#fd7e14'" + }, + "opacity": { + "name": "opacity", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 100 + }, + "custom_css": { + "name": "custom_css", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "icon_color": { + "name": "icon_color", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "item_radius": { + "name": "item_radius", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'lg'" + }, + "disable_status": { + "name": "disable_status", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "board_creator_id_user_id_fk": { + "name": "board_creator_id_user_id_fk", + "tableFrom": "board", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "board_name_unique": { + "name": "board_name_unique", + "nullsNotDistinct": false, + "columns": ["name"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.cron_job_configuration": { + "name": "cron_job_configuration", + "schema": "", + "columns": { + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": true, + "notNull": true + }, + "cron_expression": { + "name": "cron_expression", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true + }, + "is_enabled": { + "name": "is_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.groupMember": { + "name": "groupMember", + "schema": "", + "columns": { + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "groupMember_group_id_group_id_fk": { + "name": "groupMember_group_id_group_id_fk", + "tableFrom": "groupMember", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "groupMember_user_id_user_id_fk": { + "name": "groupMember_user_id_user_id_fk", + "tableFrom": "groupMember", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "groupMember_group_id_user_id_pk": { + "name": "groupMember_group_id_user_id_pk", + "columns": ["group_id", "user_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.groupPermission": { + "name": "groupPermission", + "schema": "", + "columns": { + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "groupPermission_group_id_group_id_fk": { + "name": "groupPermission_group_id_group_id_fk", + "tableFrom": "groupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group": { + "name": "group", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "owner_id": { + "name": "owner_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "home_board_id": { + "name": "home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "position": { + "name": "position", + "type": "smallint", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "group_owner_id_user_id_fk": { + "name": "group_owner_id_user_id_fk", + "tableFrom": "group", + "tableTo": "user", + "columnsFrom": ["owner_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_home_board_id_board_id_fk": { + "name": "group_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_mobile_home_board_id_board_id_fk": { + "name": "group_mobile_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "group_name_unique": { + "name": "group_name_unique", + "nullsNotDistinct": false, + "columns": ["name"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.iconRepository": { + "name": "iconRepository", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar(150)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.icon": { + "name": "icon", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(250)", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "checksum": { + "name": "checksum", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "icon_repository_id": { + "name": "icon_repository_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "icon_icon_repository_id_iconRepository_id_fk": { + "name": "icon_icon_repository_id_iconRepository_id_fk", + "tableFrom": "icon", + "tableTo": "iconRepository", + "columnsFrom": ["icon_repository_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integrationGroupPermissions": { + "name": "integrationGroupPermissions", + "schema": "", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "integrationGroupPermissions_integration_id_integration_id_fk": { + "name": "integrationGroupPermissions_integration_id_integration_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationGroupPermissions_group_id_group_id_fk": { + "name": "integrationGroupPermissions_group_id_group_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_group_permission__pk": { + "name": "integration_group_permission__pk", + "columns": ["integration_id", "group_id", "permission"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integration_item": { + "name": "integration_item", + "schema": "", + "columns": { + "item_id": { + "name": "item_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "integration_item_item_id_item_id_fk": { + "name": "integration_item_item_id_item_id_fk", + "tableFrom": "integration_item", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integration_item_integration_id_integration_id_fk": { + "name": "integration_item_integration_id_integration_id_fk", + "tableFrom": "integration_item", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_item_item_id_integration_id_pk": { + "name": "integration_item_item_id_integration_id_pk", + "columns": ["item_id", "integration_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integrationSecret": { + "name": "integrationSecret", + "schema": "", + "columns": { + "kind": { + "name": "kind", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "integration_secret__kind_idx": { + "name": "integration_secret__kind_idx", + "columns": [ + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "integration_secret__updated_at_idx": { + "name": "integration_secret__updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "integrationSecret_integration_id_integration_id_fk": { + "name": "integrationSecret_integration_id_integration_id_fk", + "tableFrom": "integrationSecret", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationSecret_integration_id_kind_pk": { + "name": "integrationSecret_integration_id_kind_pk", + "columns": ["integration_id", "kind"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integrationUserPermission": { + "name": "integrationUserPermission", + "schema": "", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "integrationUserPermission_integration_id_integration_id_fk": { + "name": "integrationUserPermission_integration_id_integration_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationUserPermission_user_id_user_id_fk": { + "name": "integrationUserPermission_user_id_user_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationUserPermission_integration_id_user_id_permission_pk": { + "name": "integrationUserPermission_integration_id_user_id_permission_pk", + "columns": ["integration_id", "user_id", "permission"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integration": { + "name": "integration", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + }, + "app_id": { + "name": "app_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "integration__kind_idx": { + "name": "integration__kind_idx", + "columns": [ + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "integration_app_id_app_id_fk": { + "name": "integration_app_id_app_id_fk", + "tableFrom": "integration", + "tableTo": "app", + "columnsFrom": ["app_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.invite": { + "name": "invite", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "token": { + "name": "token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "expiration_date": { + "name": "expiration_date", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "invite_creator_id_user_id_fk": { + "name": "invite_creator_id_user_id_fk", + "tableFrom": "invite", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "invite_token_unique": { + "name": "invite_token_unique", + "nullsNotDistinct": false, + "columns": ["token"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.item_layout": { + "name": "item_layout", + "schema": "", + "columns": { + "item_id": { + "name": "item_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "layout_id": { + "name": "layout_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "width": { + "name": "width", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "item_layout_item_id_item_id_fk": { + "name": "item_layout_item_id_item_id_fk", + "tableFrom": "item_layout", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_section_id_section_id_fk": { + "name": "item_layout_section_id_section_id_fk", + "tableFrom": "item_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_layout_id_layout_id_fk": { + "name": "item_layout_layout_id_layout_id_fk", + "tableFrom": "item_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "item_layout_item_id_section_id_layout_id_pk": { + "name": "item_layout_item_id_section_id_layout_id_pk", + "columns": ["item_id", "section_id", "layout_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.item": { + "name": "item", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'{\"json\": {}}'" + }, + "advanced_options": { + "name": "advanced_options", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": { + "item_board_id_board_id_fk": { + "name": "item_board_id_board_id_fk", + "tableFrom": "item", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.layout": { + "name": "layout", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "column_count": { + "name": "column_count", + "type": "smallint", + "primaryKey": false, + "notNull": true + }, + "breakpoint": { + "name": "breakpoint", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "layout_board_id_board_id_fk": { + "name": "layout_board_id_board_id_fk", + "tableFrom": "layout", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.media": { + "name": "media", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "bytea", + "primaryKey": false, + "notNull": true + }, + "content_type": { + "name": "content_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "size": { + "name": "size", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "media_creator_id_user_id_fk": { + "name": "media_creator_id_user_id_fk", + "tableFrom": "media", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.onboarding": { + "name": "onboarding", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "step": { + "name": "step", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "previous_step": { + "name": "previous_step", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.search_engine": { + "name": "search_engine", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "short": { + "name": "short", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "url_template": { + "name": "url_template", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "default": "'generic'" + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "search_engine_integration_id_integration_id_fk": { + "name": "search_engine_integration_id_integration_id_fk", + "tableFrom": "search_engine", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "search_engine_short_unique": { + "name": "search_engine_short_unique", + "nullsNotDistinct": false, + "columns": ["short"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.section_collapse_state": { + "name": "section_collapse_state", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "collapsed": { + "name": "collapsed", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_collapse_state_user_id_user_id_fk": { + "name": "section_collapse_state_user_id_user_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_collapse_state_section_id_section_id_fk": { + "name": "section_collapse_state_section_id_section_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_collapse_state_user_id_section_id_pk": { + "name": "section_collapse_state_user_id_section_id_pk", + "columns": ["user_id", "section_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.section_layout": { + "name": "section_layout", + "schema": "", + "columns": { + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "layout_id": { + "name": "layout_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "parent_section_id": { + "name": "parent_section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "width": { + "name": "width", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "section_layout_section_id_section_id_fk": { + "name": "section_layout_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_layout_id_layout_id_fk": { + "name": "section_layout_layout_id_layout_id_fk", + "tableFrom": "section_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_parent_section_id_section_id_fk": { + "name": "section_layout_parent_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["parent_section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_layout_section_id_layout_id_pk": { + "name": "section_layout_section_id_layout_id_pk", + "columns": ["section_id", "layout_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.section": { + "name": "section", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": { + "section_board_id_board_id_fk": { + "name": "section_board_id_board_id_fk", + "tableFrom": "section", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.serverSetting": { + "name": "serverSetting", + "schema": "", + "columns": { + "setting_key": { + "name": "setting_key", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "serverSetting_settingKey_unique": { + "name": "serverSetting_settingKey_unique", + "nullsNotDistinct": false, + "columns": ["setting_key"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.session": { + "name": "session", + "schema": "", + "columns": { + "session_token": { + "name": "session_token", + "type": "varchar(512)", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "session_user_id_user_id_fk": { + "name": "session_user_id_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user": { + "name": "user", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email_verified": { + "name": "email_verified", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "default": "'credentials'" + }, + "home_board_id": { + "name": "home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "default_search_engine_id": { + "name": "default_search_engine_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "open_search_in_new_tab": { + "name": "open_search_in_new_tab", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "color_scheme": { + "name": "color_scheme", + "type": "varchar(5)", + "primaryKey": false, + "notNull": true, + "default": "'dark'" + }, + "first_day_of_week": { + "name": "first_day_of_week", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 1 + }, + "ping_icons_enabled": { + "name": "ping_icons_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_home_board_id_board_id_fk": { + "name": "user_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_mobile_home_board_id_board_id_fk": { + "name": "user_mobile_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_default_search_engine_id_search_engine_id_fk": { + "name": "user_default_search_engine_id_search_engine_id_fk", + "tableFrom": "user", + "tableTo": "search_engine", + "columnsFrom": ["default_search_engine_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.verificationToken": { + "name": "verificationToken", + "schema": "", + "columns": { + "identifier": { + "name": "identifier", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "token": { + "name": "token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verificationToken_identifier_token_pk": { + "name": "verificationToken_identifier_token_pk", + "columns": ["identifier", "token"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.trusted_certificate_hostname": { + "name": "trusted_certificate_hostname", + "schema": "", + "columns": { + "hostname": { + "name": "hostname", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true + }, + "thumbprint": { + "name": "thumbprint", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + }, + "certificate": { + "name": "certificate", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "trusted_certificate_hostname_hostname_thumbprint_pk": { + "name": "trusted_certificate_hostname_hostname_thumbprint_pk", + "columns": ["hostname", "thumbprint"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": {}, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} diff --git a/packages/db/migrations/postgresql/meta/0004_snapshot.json b/packages/db/migrations/postgresql/meta/0004_snapshot.json new file mode 100644 index 000000000..8623ec78b --- /dev/null +++ b/packages/db/migrations/postgresql/meta/0004_snapshot.json @@ -0,0 +1,2002 @@ +{ + "id": "ddg-bangs-pg-0004", + "prevId": "259f3d62-93b1-4e4c-b201-38ee6d5a5db1", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.account": { + "name": "account", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "userId_idx": { + "name": "userId_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "account_user_id_user_id_fk": { + "name": "account_user_id_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "account_provider_provider_account_id_pk": { + "name": "account_provider_provider_account_id_pk", + "columns": ["provider", "provider_account_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.apiKey": { + "name": "apiKey", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "apiKey_user_id_user_id_fk": { + "name": "apiKey_user_id_user_id_fk", + "tableFrom": "apiKey", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.app": { + "name": "app", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "href": { + "name": "href", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "ping_url": { + "name": "ping_url", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.boardGroupPermission": { + "name": "boardGroupPermission", + "schema": "", + "columns": { + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "boardGroupPermission_board_id_board_id_fk": { + "name": "boardGroupPermission_board_id_board_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardGroupPermission_group_id_group_id_fk": { + "name": "boardGroupPermission_group_id_group_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardGroupPermission_board_id_group_id_permission_pk": { + "name": "boardGroupPermission_board_id_group_id_permission_pk", + "columns": ["board_id", "group_id", "permission"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.boardUserPermission": { + "name": "boardUserPermission", + "schema": "", + "columns": { + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "boardUserPermission_board_id_board_id_fk": { + "name": "boardUserPermission_board_id_board_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardUserPermission_user_id_user_id_fk": { + "name": "boardUserPermission_user_id_user_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardUserPermission_board_id_user_id_permission_pk": { + "name": "boardUserPermission_board_id_user_id_permission_pk", + "columns": ["board_id", "user_id", "permission"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.board": { + "name": "board", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true + }, + "is_public": { + "name": "is_public", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "page_title": { + "name": "page_title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "meta_title": { + "name": "meta_title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "logo_image_url": { + "name": "logo_image_url", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "favicon_image_url": { + "name": "favicon_image_url", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "background_image_url": { + "name": "background_image_url", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "background_image_attachment": { + "name": "background_image_attachment", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'fixed'" + }, + "background_image_repeat": { + "name": "background_image_repeat", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'no-repeat'" + }, + "background_image_size": { + "name": "background_image_size", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'cover'" + }, + "primary_color": { + "name": "primary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'#fa5252'" + }, + "secondary_color": { + "name": "secondary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'#fd7e14'" + }, + "opacity": { + "name": "opacity", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 100 + }, + "custom_css": { + "name": "custom_css", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "icon_color": { + "name": "icon_color", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "item_radius": { + "name": "item_radius", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'lg'" + }, + "disable_status": { + "name": "disable_status", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "board_creator_id_user_id_fk": { + "name": "board_creator_id_user_id_fk", + "tableFrom": "board", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "board_name_unique": { + "name": "board_name_unique", + "nullsNotDistinct": false, + "columns": ["name"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.cron_job_configuration": { + "name": "cron_job_configuration", + "schema": "", + "columns": { + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": true, + "notNull": true + }, + "cron_expression": { + "name": "cron_expression", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true + }, + "is_enabled": { + "name": "is_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.groupMember": { + "name": "groupMember", + "schema": "", + "columns": { + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "groupMember_group_id_group_id_fk": { + "name": "groupMember_group_id_group_id_fk", + "tableFrom": "groupMember", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "groupMember_user_id_user_id_fk": { + "name": "groupMember_user_id_user_id_fk", + "tableFrom": "groupMember", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "groupMember_group_id_user_id_pk": { + "name": "groupMember_group_id_user_id_pk", + "columns": ["group_id", "user_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.groupPermission": { + "name": "groupPermission", + "schema": "", + "columns": { + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "groupPermission_group_id_group_id_fk": { + "name": "groupPermission_group_id_group_id_fk", + "tableFrom": "groupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group": { + "name": "group", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "owner_id": { + "name": "owner_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "home_board_id": { + "name": "home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "position": { + "name": "position", + "type": "smallint", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "group_owner_id_user_id_fk": { + "name": "group_owner_id_user_id_fk", + "tableFrom": "group", + "tableTo": "user", + "columnsFrom": ["owner_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_home_board_id_board_id_fk": { + "name": "group_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_mobile_home_board_id_board_id_fk": { + "name": "group_mobile_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "group_name_unique": { + "name": "group_name_unique", + "nullsNotDistinct": false, + "columns": ["name"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.iconRepository": { + "name": "iconRepository", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar(150)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.icon": { + "name": "icon", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(250)", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "checksum": { + "name": "checksum", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "icon_repository_id": { + "name": "icon_repository_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "icon_icon_repository_id_iconRepository_id_fk": { + "name": "icon_icon_repository_id_iconRepository_id_fk", + "tableFrom": "icon", + "tableTo": "iconRepository", + "columnsFrom": ["icon_repository_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integrationGroupPermissions": { + "name": "integrationGroupPermissions", + "schema": "", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "group_id": { + "name": "group_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "integrationGroupPermissions_integration_id_integration_id_fk": { + "name": "integrationGroupPermissions_integration_id_integration_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationGroupPermissions_group_id_group_id_fk": { + "name": "integrationGroupPermissions_group_id_group_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_group_permission__pk": { + "name": "integration_group_permission__pk", + "columns": ["integration_id", "group_id", "permission"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integration_item": { + "name": "integration_item", + "schema": "", + "columns": { + "item_id": { + "name": "item_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "integration_item_item_id_item_id_fk": { + "name": "integration_item_item_id_item_id_fk", + "tableFrom": "integration_item", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integration_item_integration_id_integration_id_fk": { + "name": "integration_item_integration_id_integration_id_fk", + "tableFrom": "integration_item", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_item_item_id_integration_id_pk": { + "name": "integration_item_item_id_integration_id_pk", + "columns": ["item_id", "integration_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integrationSecret": { + "name": "integrationSecret", + "schema": "", + "columns": { + "kind": { + "name": "kind", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "integration_secret__kind_idx": { + "name": "integration_secret__kind_idx", + "columns": [ + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "integration_secret__updated_at_idx": { + "name": "integration_secret__updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "integrationSecret_integration_id_integration_id_fk": { + "name": "integrationSecret_integration_id_integration_id_fk", + "tableFrom": "integrationSecret", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationSecret_integration_id_kind_pk": { + "name": "integrationSecret_integration_id_kind_pk", + "columns": ["integration_id", "kind"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integrationUserPermission": { + "name": "integrationUserPermission", + "schema": "", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "integrationUserPermission_integration_id_integration_id_fk": { + "name": "integrationUserPermission_integration_id_integration_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationUserPermission_user_id_user_id_fk": { + "name": "integrationUserPermission_user_id_user_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationUserPermission_integration_id_user_id_permission_pk": { + "name": "integrationUserPermission_integration_id_user_id_permission_pk", + "columns": ["integration_id", "user_id", "permission"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.integration": { + "name": "integration", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + }, + "app_id": { + "name": "app_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "integration__kind_idx": { + "name": "integration__kind_idx", + "columns": [ + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "integration_app_id_app_id_fk": { + "name": "integration_app_id_app_id_fk", + "tableFrom": "integration", + "tableTo": "app", + "columnsFrom": ["app_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.invite": { + "name": "invite", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "token": { + "name": "token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "expiration_date": { + "name": "expiration_date", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "invite_creator_id_user_id_fk": { + "name": "invite_creator_id_user_id_fk", + "tableFrom": "invite", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "invite_token_unique": { + "name": "invite_token_unique", + "nullsNotDistinct": false, + "columns": ["token"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.item_layout": { + "name": "item_layout", + "schema": "", + "columns": { + "item_id": { + "name": "item_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "layout_id": { + "name": "layout_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "width": { + "name": "width", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "item_layout_item_id_item_id_fk": { + "name": "item_layout_item_id_item_id_fk", + "tableFrom": "item_layout", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_section_id_section_id_fk": { + "name": "item_layout_section_id_section_id_fk", + "tableFrom": "item_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_layout_id_layout_id_fk": { + "name": "item_layout_layout_id_layout_id_fk", + "tableFrom": "item_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "item_layout_item_id_section_id_layout_id_pk": { + "name": "item_layout_item_id_section_id_layout_id_pk", + "columns": ["item_id", "section_id", "layout_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.item": { + "name": "item", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'{\"json\": {}}'" + }, + "advanced_options": { + "name": "advanced_options", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": { + "item_board_id_board_id_fk": { + "name": "item_board_id_board_id_fk", + "tableFrom": "item", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.layout": { + "name": "layout", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "column_count": { + "name": "column_count", + "type": "smallint", + "primaryKey": false, + "notNull": true + }, + "breakpoint": { + "name": "breakpoint", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "layout_board_id_board_id_fk": { + "name": "layout_board_id_board_id_fk", + "tableFrom": "layout", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.media": { + "name": "media", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "bytea", + "primaryKey": false, + "notNull": true + }, + "content_type": { + "name": "content_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "size": { + "name": "size", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "creator_id": { + "name": "creator_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "media_creator_id_user_id_fk": { + "name": "media_creator_id_user_id_fk", + "tableFrom": "media", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.onboarding": { + "name": "onboarding", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "step": { + "name": "step", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "previous_step": { + "name": "previous_step", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.search_engine": { + "name": "search_engine", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "short": { + "name": "short", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "url_template": { + "name": "url_template", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "default": "'generic'" + }, + "integration_id": { + "name": "integration_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "search_engine_integration_id_integration_id_fk": { + "name": "search_engine_integration_id_integration_id_fk", + "tableFrom": "search_engine", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "search_engine_short_unique": { + "name": "search_engine_short_unique", + "nullsNotDistinct": false, + "columns": ["short"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.section_collapse_state": { + "name": "section_collapse_state", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "collapsed": { + "name": "collapsed", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_collapse_state_user_id_user_id_fk": { + "name": "section_collapse_state_user_id_user_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_collapse_state_section_id_section_id_fk": { + "name": "section_collapse_state_section_id_section_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_collapse_state_user_id_section_id_pk": { + "name": "section_collapse_state_user_id_section_id_pk", + "columns": ["user_id", "section_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.section_layout": { + "name": "section_layout", + "schema": "", + "columns": { + "section_id": { + "name": "section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "layout_id": { + "name": "layout_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "parent_section_id": { + "name": "parent_section_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "width": { + "name": "width", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "section_layout_section_id_section_id_fk": { + "name": "section_layout_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_layout_id_layout_id_fk": { + "name": "section_layout_layout_id_layout_id_fk", + "tableFrom": "section_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_parent_section_id_section_id_fk": { + "name": "section_layout_parent_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["parent_section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_layout_section_id_layout_id_pk": { + "name": "section_layout_section_id_layout_id_pk", + "columns": ["section_id", "layout_id"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.section": { + "name": "section", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "board_id": { + "name": "board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": { + "section_board_id_board_id_fk": { + "name": "section_board_id_board_id_fk", + "tableFrom": "section", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.serverSetting": { + "name": "serverSetting", + "schema": "", + "columns": { + "setting_key": { + "name": "setting_key", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "serverSetting_settingKey_unique": { + "name": "serverSetting_settingKey_unique", + "nullsNotDistinct": false, + "columns": ["setting_key"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.session": { + "name": "session", + "schema": "", + "columns": { + "session_token": { + "name": "session_token", + "type": "varchar(512)", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "session_user_id_user_id_fk": { + "name": "session_user_id_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user": { + "name": "user", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email_verified": { + "name": "email_verified", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "default": "'credentials'" + }, + "home_board_id": { + "name": "home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "default_search_engine_id": { + "name": "default_search_engine_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false + }, + "open_search_in_new_tab": { + "name": "open_search_in_new_tab", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "color_scheme": { + "name": "color_scheme", + "type": "varchar(5)", + "primaryKey": false, + "notNull": true, + "default": "'dark'" + }, + "first_day_of_week": { + "name": "first_day_of_week", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 1 + }, + "ping_icons_enabled": { + "name": "ping_icons_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "ddg_bangs": { + "name": "ddg_bangs", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + } + }, + "indexes": {}, + "foreignKeys": { + "user_home_board_id_board_id_fk": { + "name": "user_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_mobile_home_board_id_board_id_fk": { + "name": "user_mobile_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_default_search_engine_id_search_engine_id_fk": { + "name": "user_default_search_engine_id_search_engine_id_fk", + "tableFrom": "user", + "tableTo": "search_engine", + "columnsFrom": ["default_search_engine_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.verificationToken": { + "name": "verificationToken", + "schema": "", + "columns": { + "identifier": { + "name": "identifier", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true + }, + "token": { + "name": "token", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verificationToken_identifier_token_pk": { + "name": "verificationToken_identifier_token_pk", + "columns": ["identifier", "token"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.trusted_certificate_hostname": { + "name": "trusted_certificate_hostname", + "schema": "", + "columns": { + "hostname": { + "name": "hostname", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true + }, + "thumbprint": { + "name": "thumbprint", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + }, + "certificate": { + "name": "certificate", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "trusted_certificate_hostname_hostname_thumbprint_pk": { + "name": "trusted_certificate_hostname_hostname_thumbprint_pk", + "columns": ["hostname", "thumbprint"] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": {}, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} diff --git a/packages/db/migrations/postgresql/meta/_journal.json b/packages/db/migrations/postgresql/meta/_journal.json index 01f3a047c..d0a3f7683 100644 --- a/packages/db/migrations/postgresql/meta/_journal.json +++ b/packages/db/migrations/postgresql/meta/_journal.json @@ -22,6 +22,20 @@ "when": 1760968530084, "tag": "0002_add_app_reference_to_integration", "breakpoints": true + }, + { + "idx": 3, + "version": "7", + "when": 1775399963041, + "tag": "0003_remove_salt", + "breakpoints": true + }, + { + "idx": 4, + "version": "7", + "when": 1775400000000, + "tag": "0004_add_user_ddg_bangs", + "breakpoints": true } ] } diff --git a/packages/db/migrations/seed.ts b/packages/db/migrations/seed.ts index 407c03746..a436b19c0 100644 --- a/packages/db/migrations/seed.ts +++ b/packages/db/migrations/seed.ts @@ -4,6 +4,7 @@ import { everyoneGroup, getIntegrationDefaultUrl, getIntegrationName, + integrationDefs, integrationKinds, } from "@homarr/definitions"; import { defaultServerSettings, defaultServerSettingsKeys } from "@homarr/server-settings"; @@ -143,8 +144,9 @@ const seedDefaultIntegrationsAsync = async (db: Database) => { const defaultIntegrations = integrationKinds.reduce((acc, kind) => { const name = getIntegrationName(kind); const defaultUrl = getIntegrationDefaultUrl(kind); + const hasNoAuthOption = integrationDefs[kind].secretKinds.some((kinds) => kinds.length === 0); - if (defaultUrl !== undefined) { + if (defaultUrl !== undefined && hasNoAuthOption) { acc.push({ id: "new", name: `${name} Default`, diff --git a/packages/db/migrations/sqlite/0035_remove_salt.sql b/packages/db/migrations/sqlite/0035_remove_salt.sql new file mode 100644 index 000000000..20f6ed492 --- /dev/null +++ b/packages/db/migrations/sqlite/0035_remove_salt.sql @@ -0,0 +1,2 @@ +ALTER TABLE `apiKey` DROP COLUMN `salt`;--> statement-breakpoint +ALTER TABLE `user` DROP COLUMN `salt`; \ No newline at end of file diff --git a/packages/db/migrations/sqlite/0036_add_user_ddg_bangs.sql b/packages/db/migrations/sqlite/0036_add_user_ddg_bangs.sql new file mode 100644 index 000000000..e762ad58a --- /dev/null +++ b/packages/db/migrations/sqlite/0036_add_user_ddg_bangs.sql @@ -0,0 +1 @@ +ALTER TABLE `user` ADD `ddg_bangs` integer DEFAULT true NOT NULL; \ No newline at end of file diff --git a/packages/db/migrations/sqlite/meta/0035_snapshot.json b/packages/db/migrations/sqlite/meta/0035_snapshot.json new file mode 100644 index 000000000..6e987190d --- /dev/null +++ b/packages/db/migrations/sqlite/meta/0035_snapshot.json @@ -0,0 +1,2011 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "fc94243d-373c-4834-890e-560bbbd53f12", + "prevId": "26cc52b8-505b-44af-9cbd-6f70f6f3bb6b", + "tables": { + "account": { + "name": "account", + "columns": { + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "userId_idx": { + "name": "userId_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "account_user_id_user_id_fk": { + "name": "account_user_id_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "account_provider_provider_account_id_pk": { + "columns": ["provider", "provider_account_id"], + "name": "account_provider_provider_account_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "apiKey": { + "name": "apiKey", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "apiKey_user_id_user_id_fk": { + "name": "apiKey_user_id_user_id_fk", + "tableFrom": "apiKey", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "app": { + "name": "app", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "href": { + "name": "href", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "ping_url": { + "name": "ping_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "boardGroupPermission": { + "name": "boardGroupPermission", + "columns": { + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "group_id": { + "name": "group_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "boardGroupPermission_board_id_board_id_fk": { + "name": "boardGroupPermission_board_id_board_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardGroupPermission_group_id_group_id_fk": { + "name": "boardGroupPermission_group_id_group_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardGroupPermission_board_id_group_id_permission_pk": { + "columns": ["board_id", "group_id", "permission"], + "name": "boardGroupPermission_board_id_group_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "boardUserPermission": { + "name": "boardUserPermission", + "columns": { + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "boardUserPermission_board_id_board_id_fk": { + "name": "boardUserPermission_board_id_board_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardUserPermission_user_id_user_id_fk": { + "name": "boardUserPermission_user_id_user_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardUserPermission_board_id_user_id_permission_pk": { + "columns": ["board_id", "user_id", "permission"], + "name": "boardUserPermission_board_id_user_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "board": { + "name": "board", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_public": { + "name": "is_public", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "creator_id": { + "name": "creator_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "page_title": { + "name": "page_title", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "meta_title": { + "name": "meta_title", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "logo_image_url": { + "name": "logo_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "favicon_image_url": { + "name": "favicon_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "background_image_url": { + "name": "background_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "background_image_attachment": { + "name": "background_image_attachment", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'fixed'" + }, + "background_image_repeat": { + "name": "background_image_repeat", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'no-repeat'" + }, + "background_image_size": { + "name": "background_image_size", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'cover'" + }, + "primary_color": { + "name": "primary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'#fa5252'" + }, + "secondary_color": { + "name": "secondary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'#fd7e14'" + }, + "opacity": { + "name": "opacity", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 100 + }, + "custom_css": { + "name": "custom_css", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon_color": { + "name": "icon_color", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "item_radius": { + "name": "item_radius", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'lg'" + }, + "disable_status": { + "name": "disable_status", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": { + "board_name_unique": { + "name": "board_name_unique", + "columns": ["name"], + "isUnique": true + } + }, + "foreignKeys": { + "board_creator_id_user_id_fk": { + "name": "board_creator_id_user_id_fk", + "tableFrom": "board", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "cron_job_configuration": { + "name": "cron_job_configuration", + "columns": { + "name": { + "name": "name", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "cron_expression": { + "name": "cron_expression", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_enabled": { + "name": "is_enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "groupMember": { + "name": "groupMember", + "columns": { + "group_id": { + "name": "group_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "groupMember_group_id_group_id_fk": { + "name": "groupMember_group_id_group_id_fk", + "tableFrom": "groupMember", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "groupMember_user_id_user_id_fk": { + "name": "groupMember_user_id_user_id_fk", + "tableFrom": "groupMember", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "groupMember_group_id_user_id_pk": { + "columns": ["group_id", "user_id"], + "name": "groupMember_group_id_user_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "groupPermission": { + "name": "groupPermission", + "columns": { + "group_id": { + "name": "group_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "groupPermission_group_id_group_id_fk": { + "name": "groupPermission_group_id_group_id_fk", + "tableFrom": "groupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "group": { + "name": "group", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner_id": { + "name": "owner_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "home_board_id": { + "name": "home_board_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "position": { + "name": "position", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "group_name_unique": { + "name": "group_name_unique", + "columns": ["name"], + "isUnique": true + } + }, + "foreignKeys": { + "group_owner_id_user_id_fk": { + "name": "group_owner_id_user_id_fk", + "tableFrom": "group", + "tableTo": "user", + "columnsFrom": ["owner_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_home_board_id_board_id_fk": { + "name": "group_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_mobile_home_board_id_board_id_fk": { + "name": "group_mobile_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "iconRepository": { + "name": "iconRepository", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "icon": { + "name": "icon", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "checksum": { + "name": "checksum", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "icon_repository_id": { + "name": "icon_repository_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "icon_icon_repository_id_iconRepository_id_fk": { + "name": "icon_icon_repository_id_iconRepository_id_fk", + "tableFrom": "icon", + "tableTo": "iconRepository", + "columnsFrom": ["icon_repository_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integrationGroupPermissions": { + "name": "integrationGroupPermissions", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "group_id": { + "name": "group_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integrationGroupPermissions_integration_id_integration_id_fk": { + "name": "integrationGroupPermissions_integration_id_integration_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationGroupPermissions_group_id_group_id_fk": { + "name": "integrationGroupPermissions_group_id_group_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationGroupPermissions_integration_id_group_id_permission_pk": { + "columns": ["integration_id", "group_id", "permission"], + "name": "integrationGroupPermissions_integration_id_group_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integration_item": { + "name": "integration_item", + "columns": { + "item_id": { + "name": "item_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integration_item_item_id_item_id_fk": { + "name": "integration_item_item_id_item_id_fk", + "tableFrom": "integration_item", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integration_item_integration_id_integration_id_fk": { + "name": "integration_item_integration_id_integration_id_fk", + "tableFrom": "integration_item", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_item_item_id_integration_id_pk": { + "columns": ["item_id", "integration_id"], + "name": "integration_item_item_id_integration_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integrationSecret": { + "name": "integrationSecret", + "columns": { + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "integration_secret__kind_idx": { + "name": "integration_secret__kind_idx", + "columns": ["kind"], + "isUnique": false + }, + "integration_secret__updated_at_idx": { + "name": "integration_secret__updated_at_idx", + "columns": ["updated_at"], + "isUnique": false + } + }, + "foreignKeys": { + "integrationSecret_integration_id_integration_id_fk": { + "name": "integrationSecret_integration_id_integration_id_fk", + "tableFrom": "integrationSecret", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationSecret_integration_id_kind_pk": { + "columns": ["integration_id", "kind"], + "name": "integrationSecret_integration_id_kind_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integrationUserPermission": { + "name": "integrationUserPermission", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integrationUserPermission_integration_id_integration_id_fk": { + "name": "integrationUserPermission_integration_id_integration_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationUserPermission_user_id_user_id_fk": { + "name": "integrationUserPermission_user_id_user_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationUserPermission_integration_id_user_id_permission_pk": { + "columns": ["integration_id", "user_id", "permission"], + "name": "integrationUserPermission_integration_id_user_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integration": { + "name": "integration", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "app_id": { + "name": "app_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "integration__kind_idx": { + "name": "integration__kind_idx", + "columns": ["kind"], + "isUnique": false + } + }, + "foreignKeys": { + "integration_app_id_app_id_fk": { + "name": "integration_app_id_app_id_fk", + "tableFrom": "integration", + "tableTo": "app", + "columnsFrom": ["app_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "invite": { + "name": "invite", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expiration_date": { + "name": "expiration_date", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_id": { + "name": "creator_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "invite_token_unique": { + "name": "invite_token_unique", + "columns": ["token"], + "isUnique": true + } + }, + "foreignKeys": { + "invite_creator_id_user_id_fk": { + "name": "invite_creator_id_user_id_fk", + "tableFrom": "invite", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "item_layout": { + "name": "item_layout", + "columns": { + "item_id": { + "name": "item_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "section_id": { + "name": "section_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "layout_id": { + "name": "layout_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "width": { + "name": "width", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "item_layout_item_id_item_id_fk": { + "name": "item_layout_item_id_item_id_fk", + "tableFrom": "item_layout", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_section_id_section_id_fk": { + "name": "item_layout_section_id_section_id_fk", + "tableFrom": "item_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_layout_id_layout_id_fk": { + "name": "item_layout_layout_id_layout_id_fk", + "tableFrom": "item_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "item_layout_item_id_section_id_layout_id_pk": { + "columns": ["item_id", "section_id", "layout_id"], + "name": "item_layout_item_id_section_id_layout_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "item": { + "name": "item", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"json\": {}}'" + }, + "advanced_options": { + "name": "advanced_options", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": { + "item_board_id_board_id_fk": { + "name": "item_board_id_board_id_fk", + "tableFrom": "item", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "layout": { + "name": "layout", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "column_count": { + "name": "column_count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "breakpoint": { + "name": "breakpoint", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "layout_board_id_board_id_fk": { + "name": "layout_board_id_board_id_fk", + "tableFrom": "layout", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "media": { + "name": "media", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "content": { + "name": "content", + "type": "blob", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "content_type": { + "name": "content_type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "size": { + "name": "size", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "creator_id": { + "name": "creator_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "media_creator_id_user_id_fk": { + "name": "media_creator_id_user_id_fk", + "tableFrom": "media", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "onboarding": { + "name": "onboarding", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "step": { + "name": "step", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "previous_step": { + "name": "previous_step", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "search_engine": { + "name": "search_engine", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "short": { + "name": "short", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url_template": { + "name": "url_template", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'generic'" + }, + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "search_engine_short_unique": { + "name": "search_engine_short_unique", + "columns": ["short"], + "isUnique": true + } + }, + "foreignKeys": { + "search_engine_integration_id_integration_id_fk": { + "name": "search_engine_integration_id_integration_id_fk", + "tableFrom": "search_engine", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "section_collapse_state": { + "name": "section_collapse_state", + "columns": { + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "section_id": { + "name": "section_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "collapsed": { + "name": "collapsed", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_collapse_state_user_id_user_id_fk": { + "name": "section_collapse_state_user_id_user_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_collapse_state_section_id_section_id_fk": { + "name": "section_collapse_state_section_id_section_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_collapse_state_user_id_section_id_pk": { + "columns": ["user_id", "section_id"], + "name": "section_collapse_state_user_id_section_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "section_layout": { + "name": "section_layout", + "columns": { + "section_id": { + "name": "section_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "layout_id": { + "name": "layout_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "parent_section_id": { + "name": "parent_section_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "width": { + "name": "width", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_layout_section_id_section_id_fk": { + "name": "section_layout_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_layout_id_layout_id_fk": { + "name": "section_layout_layout_id_layout_id_fk", + "tableFrom": "section_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_parent_section_id_section_id_fk": { + "name": "section_layout_parent_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["parent_section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_layout_section_id_layout_id_pk": { + "columns": ["section_id", "layout_id"], + "name": "section_layout_section_id_layout_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "section": { + "name": "section", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": { + "section_board_id_board_id_fk": { + "name": "section_board_id_board_id_fk", + "tableFrom": "section", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "serverSetting": { + "name": "serverSetting", + "columns": { + "setting_key": { + "name": "setting_key", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"json\": {}}'" + } + }, + "indexes": { + "serverSetting_settingKey_unique": { + "name": "serverSetting_settingKey_unique", + "columns": ["setting_key"], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "session": { + "name": "session", + "columns": { + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "session_user_id_user_id_fk": { + "name": "session_user_id_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "trusted_certificate_hostname": { + "name": "trusted_certificate_hostname", + "columns": { + "hostname": { + "name": "hostname", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "thumbprint": { + "name": "thumbprint", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "certificate": { + "name": "certificate", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "trusted_certificate_hostname_hostname_thumbprint_pk": { + "columns": ["hostname", "thumbprint"], + "name": "trusted_certificate_hostname_hostname_thumbprint_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'credentials'" + }, + "home_board_id": { + "name": "home_board_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_search_engine_id": { + "name": "default_search_engine_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "open_search_in_new_tab": { + "name": "open_search_in_new_tab", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "color_scheme": { + "name": "color_scheme", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'dark'" + }, + "first_day_of_week": { + "name": "first_day_of_week", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "ping_icons_enabled": { + "name": "ping_icons_enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_home_board_id_board_id_fk": { + "name": "user_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_mobile_home_board_id_board_id_fk": { + "name": "user_mobile_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_default_search_engine_id_search_engine_id_fk": { + "name": "user_default_search_engine_id_search_engine_id_fk", + "tableFrom": "user", + "tableTo": "search_engine", + "columnsFrom": ["default_search_engine_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "verificationToken": { + "name": "verificationToken", + "columns": { + "identifier": { + "name": "identifier", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verificationToken_identifier_token_pk": { + "columns": ["identifier", "token"], + "name": "verificationToken_identifier_token_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} diff --git a/packages/db/migrations/sqlite/meta/0036_snapshot.json b/packages/db/migrations/sqlite/meta/0036_snapshot.json new file mode 100644 index 000000000..06c528110 --- /dev/null +++ b/packages/db/migrations/sqlite/meta/0036_snapshot.json @@ -0,0 +1,2019 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "ddg-bangs-sqlite-0036", + "prevId": "fc94243d-373c-4834-890e-560bbbd53f12", + "tables": { + "account": { + "name": "account", + "columns": { + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_account_id": { + "name": "provider_account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "userId_idx": { + "name": "userId_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "account_user_id_user_id_fk": { + "name": "account_user_id_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "account_provider_provider_account_id_pk": { + "columns": ["provider", "provider_account_id"], + "name": "account_provider_provider_account_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "apiKey": { + "name": "apiKey", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "apiKey_user_id_user_id_fk": { + "name": "apiKey_user_id_user_id_fk", + "tableFrom": "apiKey", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "app": { + "name": "app", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "href": { + "name": "href", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "ping_url": { + "name": "ping_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "boardGroupPermission": { + "name": "boardGroupPermission", + "columns": { + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "group_id": { + "name": "group_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "boardGroupPermission_board_id_board_id_fk": { + "name": "boardGroupPermission_board_id_board_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardGroupPermission_group_id_group_id_fk": { + "name": "boardGroupPermission_group_id_group_id_fk", + "tableFrom": "boardGroupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardGroupPermission_board_id_group_id_permission_pk": { + "columns": ["board_id", "group_id", "permission"], + "name": "boardGroupPermission_board_id_group_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "boardUserPermission": { + "name": "boardUserPermission", + "columns": { + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "boardUserPermission_board_id_board_id_fk": { + "name": "boardUserPermission_board_id_board_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "boardUserPermission_user_id_user_id_fk": { + "name": "boardUserPermission_user_id_user_id_fk", + "tableFrom": "boardUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "boardUserPermission_board_id_user_id_permission_pk": { + "columns": ["board_id", "user_id", "permission"], + "name": "boardUserPermission_board_id_user_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "board": { + "name": "board", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_public": { + "name": "is_public", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "creator_id": { + "name": "creator_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "page_title": { + "name": "page_title", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "meta_title": { + "name": "meta_title", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "logo_image_url": { + "name": "logo_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "favicon_image_url": { + "name": "favicon_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "background_image_url": { + "name": "background_image_url", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "background_image_attachment": { + "name": "background_image_attachment", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'fixed'" + }, + "background_image_repeat": { + "name": "background_image_repeat", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'no-repeat'" + }, + "background_image_size": { + "name": "background_image_size", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'cover'" + }, + "primary_color": { + "name": "primary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'#fa5252'" + }, + "secondary_color": { + "name": "secondary_color", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'#fd7e14'" + }, + "opacity": { + "name": "opacity", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 100 + }, + "custom_css": { + "name": "custom_css", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon_color": { + "name": "icon_color", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "item_radius": { + "name": "item_radius", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'lg'" + }, + "disable_status": { + "name": "disable_status", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": { + "board_name_unique": { + "name": "board_name_unique", + "columns": ["name"], + "isUnique": true + } + }, + "foreignKeys": { + "board_creator_id_user_id_fk": { + "name": "board_creator_id_user_id_fk", + "tableFrom": "board", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "cron_job_configuration": { + "name": "cron_job_configuration", + "columns": { + "name": { + "name": "name", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "cron_expression": { + "name": "cron_expression", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "is_enabled": { + "name": "is_enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "groupMember": { + "name": "groupMember", + "columns": { + "group_id": { + "name": "group_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "groupMember_group_id_group_id_fk": { + "name": "groupMember_group_id_group_id_fk", + "tableFrom": "groupMember", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "groupMember_user_id_user_id_fk": { + "name": "groupMember_user_id_user_id_fk", + "tableFrom": "groupMember", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "groupMember_group_id_user_id_pk": { + "columns": ["group_id", "user_id"], + "name": "groupMember_group_id_user_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "groupPermission": { + "name": "groupPermission", + "columns": { + "group_id": { + "name": "group_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "groupPermission_group_id_group_id_fk": { + "name": "groupPermission_group_id_group_id_fk", + "tableFrom": "groupPermission", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "group": { + "name": "group", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner_id": { + "name": "owner_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "home_board_id": { + "name": "home_board_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "position": { + "name": "position", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "group_name_unique": { + "name": "group_name_unique", + "columns": ["name"], + "isUnique": true + } + }, + "foreignKeys": { + "group_owner_id_user_id_fk": { + "name": "group_owner_id_user_id_fk", + "tableFrom": "group", + "tableTo": "user", + "columnsFrom": ["owner_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_home_board_id_board_id_fk": { + "name": "group_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_mobile_home_board_id_board_id_fk": { + "name": "group_mobile_home_board_id_board_id_fk", + "tableFrom": "group", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "iconRepository": { + "name": "iconRepository", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "icon": { + "name": "icon", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "checksum": { + "name": "checksum", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "icon_repository_id": { + "name": "icon_repository_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "icon_icon_repository_id_iconRepository_id_fk": { + "name": "icon_icon_repository_id_iconRepository_id_fk", + "tableFrom": "icon", + "tableTo": "iconRepository", + "columnsFrom": ["icon_repository_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integrationGroupPermissions": { + "name": "integrationGroupPermissions", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "group_id": { + "name": "group_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integrationGroupPermissions_integration_id_integration_id_fk": { + "name": "integrationGroupPermissions_integration_id_integration_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationGroupPermissions_group_id_group_id_fk": { + "name": "integrationGroupPermissions_group_id_group_id_fk", + "tableFrom": "integrationGroupPermissions", + "tableTo": "group", + "columnsFrom": ["group_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationGroupPermissions_integration_id_group_id_permission_pk": { + "columns": ["integration_id", "group_id", "permission"], + "name": "integrationGroupPermissions_integration_id_group_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integration_item": { + "name": "integration_item", + "columns": { + "item_id": { + "name": "item_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integration_item_item_id_item_id_fk": { + "name": "integration_item_item_id_item_id_fk", + "tableFrom": "integration_item", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integration_item_integration_id_integration_id_fk": { + "name": "integration_item_integration_id_integration_id_fk", + "tableFrom": "integration_item", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integration_item_item_id_integration_id_pk": { + "columns": ["item_id", "integration_id"], + "name": "integration_item_item_id_integration_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integrationSecret": { + "name": "integrationSecret", + "columns": { + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "integration_secret__kind_idx": { + "name": "integration_secret__kind_idx", + "columns": ["kind"], + "isUnique": false + }, + "integration_secret__updated_at_idx": { + "name": "integration_secret__updated_at_idx", + "columns": ["updated_at"], + "isUnique": false + } + }, + "foreignKeys": { + "integrationSecret_integration_id_integration_id_fk": { + "name": "integrationSecret_integration_id_integration_id_fk", + "tableFrom": "integrationSecret", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationSecret_integration_id_kind_pk": { + "columns": ["integration_id", "kind"], + "name": "integrationSecret_integration_id_kind_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integrationUserPermission": { + "name": "integrationUserPermission", + "columns": { + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "integrationUserPermission_integration_id_integration_id_fk": { + "name": "integrationUserPermission_integration_id_integration_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "integrationUserPermission_user_id_user_id_fk": { + "name": "integrationUserPermission_user_id_user_id_fk", + "tableFrom": "integrationUserPermission", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "integrationUserPermission_integration_id_user_id_permission_pk": { + "columns": ["integration_id", "user_id", "permission"], + "name": "integrationUserPermission_integration_id_user_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "integration": { + "name": "integration", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "app_id": { + "name": "app_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "integration__kind_idx": { + "name": "integration__kind_idx", + "columns": ["kind"], + "isUnique": false + } + }, + "foreignKeys": { + "integration_app_id_app_id_fk": { + "name": "integration_app_id_app_id_fk", + "tableFrom": "integration", + "tableTo": "app", + "columnsFrom": ["app_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "invite": { + "name": "invite", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expiration_date": { + "name": "expiration_date", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_id": { + "name": "creator_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "invite_token_unique": { + "name": "invite_token_unique", + "columns": ["token"], + "isUnique": true + } + }, + "foreignKeys": { + "invite_creator_id_user_id_fk": { + "name": "invite_creator_id_user_id_fk", + "tableFrom": "invite", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "item_layout": { + "name": "item_layout", + "columns": { + "item_id": { + "name": "item_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "section_id": { + "name": "section_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "layout_id": { + "name": "layout_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "width": { + "name": "width", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "item_layout_item_id_item_id_fk": { + "name": "item_layout_item_id_item_id_fk", + "tableFrom": "item_layout", + "tableTo": "item", + "columnsFrom": ["item_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_section_id_section_id_fk": { + "name": "item_layout_section_id_section_id_fk", + "tableFrom": "item_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "item_layout_layout_id_layout_id_fk": { + "name": "item_layout_layout_id_layout_id_fk", + "tableFrom": "item_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "item_layout_item_id_section_id_layout_id_pk": { + "columns": ["item_id", "section_id", "layout_id"], + "name": "item_layout_item_id_section_id_layout_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "item": { + "name": "item", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"json\": {}}'" + }, + "advanced_options": { + "name": "advanced_options", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": { + "item_board_id_board_id_fk": { + "name": "item_board_id_board_id_fk", + "tableFrom": "item", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "layout": { + "name": "layout", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "column_count": { + "name": "column_count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "breakpoint": { + "name": "breakpoint", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "layout_board_id_board_id_fk": { + "name": "layout_board_id_board_id_fk", + "tableFrom": "layout", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "media": { + "name": "media", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "content": { + "name": "content", + "type": "blob", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "content_type": { + "name": "content_type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "size": { + "name": "size", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())" + }, + "creator_id": { + "name": "creator_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "media_creator_id_user_id_fk": { + "name": "media_creator_id_user_id_fk", + "tableFrom": "media", + "tableTo": "user", + "columnsFrom": ["creator_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "onboarding": { + "name": "onboarding", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "step": { + "name": "step", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "previous_step": { + "name": "previous_step", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "search_engine": { + "name": "search_engine", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "icon_url": { + "name": "icon_url", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "short": { + "name": "short", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url_template": { + "name": "url_template", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'generic'" + }, + "integration_id": { + "name": "integration_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "search_engine_short_unique": { + "name": "search_engine_short_unique", + "columns": ["short"], + "isUnique": true + } + }, + "foreignKeys": { + "search_engine_integration_id_integration_id_fk": { + "name": "search_engine_integration_id_integration_id_fk", + "tableFrom": "search_engine", + "tableTo": "integration", + "columnsFrom": ["integration_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "section_collapse_state": { + "name": "section_collapse_state", + "columns": { + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "section_id": { + "name": "section_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "collapsed": { + "name": "collapsed", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_collapse_state_user_id_user_id_fk": { + "name": "section_collapse_state_user_id_user_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_collapse_state_section_id_section_id_fk": { + "name": "section_collapse_state_section_id_section_id_fk", + "tableFrom": "section_collapse_state", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_collapse_state_user_id_section_id_pk": { + "columns": ["user_id", "section_id"], + "name": "section_collapse_state_user_id_section_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "section_layout": { + "name": "section_layout", + "columns": { + "section_id": { + "name": "section_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "layout_id": { + "name": "layout_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "parent_section_id": { + "name": "parent_section_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "width": { + "name": "width", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "section_layout_section_id_section_id_fk": { + "name": "section_layout_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_layout_id_layout_id_fk": { + "name": "section_layout_layout_id_layout_id_fk", + "tableFrom": "section_layout", + "tableTo": "layout", + "columnsFrom": ["layout_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "section_layout_parent_section_id_section_id_fk": { + "name": "section_layout_parent_section_id_section_id_fk", + "tableFrom": "section_layout", + "tableTo": "section", + "columnsFrom": ["parent_section_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "section_layout_section_id_layout_id_pk": { + "columns": ["section_id", "layout_id"], + "name": "section_layout_section_id_layout_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "section": { + "name": "section", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "board_id": { + "name": "board_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "kind": { + "name": "kind", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "x_offset": { + "name": "x_offset", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "y_offset": { + "name": "y_offset", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "options": { + "name": "options", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "'{\"json\": {}}'" + } + }, + "indexes": {}, + "foreignKeys": { + "section_board_id_board_id_fk": { + "name": "section_board_id_board_id_fk", + "tableFrom": "section", + "tableTo": "board", + "columnsFrom": ["board_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "serverSetting": { + "name": "serverSetting", + "columns": { + "setting_key": { + "name": "setting_key", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"json\": {}}'" + } + }, + "indexes": { + "serverSetting_settingKey_unique": { + "name": "serverSetting_settingKey_unique", + "columns": ["setting_key"], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "session": { + "name": "session", + "columns": { + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": ["user_id"], + "isUnique": false + } + }, + "foreignKeys": { + "session_user_id_user_id_fk": { + "name": "session_user_id_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": ["user_id"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "trusted_certificate_hostname": { + "name": "trusted_certificate_hostname", + "columns": { + "hostname": { + "name": "hostname", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "thumbprint": { + "name": "thumbprint", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "certificate": { + "name": "certificate", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "trusted_certificate_hostname_hostname_thumbprint_pk": { + "columns": ["hostname", "thumbprint"], + "name": "trusted_certificate_hostname_hostname_thumbprint_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'credentials'" + }, + "home_board_id": { + "name": "home_board_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mobile_home_board_id": { + "name": "mobile_home_board_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_search_engine_id": { + "name": "default_search_engine_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "open_search_in_new_tab": { + "name": "open_search_in_new_tab", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "color_scheme": { + "name": "color_scheme", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'dark'" + }, + "first_day_of_week": { + "name": "first_day_of_week", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "ping_icons_enabled": { + "name": "ping_icons_enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "ddg_bangs": { + "name": "ddg_bangs", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + } + }, + "indexes": {}, + "foreignKeys": { + "user_home_board_id_board_id_fk": { + "name": "user_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_mobile_home_board_id_board_id_fk": { + "name": "user_mobile_home_board_id_board_id_fk", + "tableFrom": "user", + "tableTo": "board", + "columnsFrom": ["mobile_home_board_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + }, + "user_default_search_engine_id_search_engine_id_fk": { + "name": "user_default_search_engine_id_search_engine_id_fk", + "tableFrom": "user", + "tableTo": "search_engine", + "columnsFrom": ["default_search_engine_id"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "verificationToken": { + "name": "verificationToken", + "columns": { + "identifier": { + "name": "identifier", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires": { + "name": "expires", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verificationToken_identifier_token_pk": { + "columns": ["identifier", "token"], + "name": "verificationToken_identifier_token_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} diff --git a/packages/db/migrations/sqlite/meta/_journal.json b/packages/db/migrations/sqlite/meta/_journal.json index ef6bdbd49..5543bbde0 100644 --- a/packages/db/migrations/sqlite/meta/_journal.json +++ b/packages/db/migrations/sqlite/meta/_journal.json @@ -246,6 +246,20 @@ "when": 1760968503571, "tag": "0034_add_app_reference_to_integration", "breakpoints": true + }, + { + "idx": 35, + "version": "6", + "when": 1775399918831, + "tag": "0035_remove_salt", + "breakpoints": true + }, + { + "idx": 36, + "version": "6", + "when": 1775400000000, + "tag": "0036_add_user_ddg_bangs", + "breakpoints": true } ] } diff --git a/packages/db/package.json b/packages/db/package.json index c959fd117..6e6c4851d 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -37,40 +37,42 @@ "push:sqlite": "pnpm with-env drizzle-kit push --config ./configs/sqlite.config.ts", "seed": "pnpm with-env tsx ./migrations/run-seed.ts", "studio": "pnpm with-env drizzle-kit studio --config ./configs/sqlite.config.ts", + "studio:mysql": "pnpm with-env drizzle-kit studio --config ./configs/mysql.config.ts", + "studio:postgresql": "pnpm with-env drizzle-kit studio --config ./configs/postgresql.config.ts", "typecheck": "tsc --noEmit", "with-env": "dotenv -e ../../.env --" }, "prettier": "@homarr/prettier-config", "dependencies": { - "@auth/core": "^0.41.1", + "@auth/core": "catalog:", "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", - "@mantine/core": "^8.3.12", - "@paralleldrive/cuid2": "^3.1.0", - "@testcontainers/mysql": "^11.11.0", - "@testcontainers/postgresql": "^11.11.0", - "better-sqlite3": "^12.5.0", - "dotenv": "^17.2.3", - "drizzle-kit": "^0.31.8", - "drizzle-orm": "^0.45.1", - "drizzle-zod": "^0.8.3", - "mysql2": "3.16.0", - "pg": "^8.16.3", - "superjson": "2.2.6" + "@mantine/core": "catalog:", + "@paralleldrive/cuid2": "catalog:", + "@testcontainers/mysql": "catalog:", + "@testcontainers/postgresql": "catalog:", + "better-sqlite3": "catalog:", + "dotenv": "catalog:", + "drizzle-kit": "catalog:", + "drizzle-orm": "catalog:", + "drizzle-zod": "catalog:", + "mysql2": "catalog:", + "pg": "catalog:", + "superjson": "catalog:" }, "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.13", - "@types/pg": "^8.16.0", - "dotenv-cli": "^11.0.0", - "esbuild": "^0.27.2", - "eslint": "^9.39.2", - "prettier": "^3.7.4", - "tsx": "4.20.4", - "typescript": "^5.9.3" + "@types/better-sqlite3": "catalog:", + "@types/pg": "catalog:", + "dotenv-cli": "catalog:", + "esbuild": "catalog:", + "eslint": "catalog:", + "prettier": "catalog:", + "tsx": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/db/schema/mysql.ts b/packages/db/schema/mysql.ts index edbcec281..84c5325ed 100644 --- a/packages/db/schema/mysql.ts +++ b/packages/db/schema/mysql.ts @@ -51,7 +51,6 @@ export * from "@homarr/core/infrastructure/certificates/hostnames/db/mysql"; export const apiKeys = mysqlTable("apiKey", { id: varchar({ length: 64 }).notNull().primaryKey(), apiKey: text().notNull(), - salt: text().notNull(), userId: varchar({ length: 64 }) .notNull() .references((): AnyMySqlColumn => users.id, { @@ -66,7 +65,6 @@ export const users = mysqlTable("user", { emailVerified: timestamp(), image: text(), password: text(), - salt: text(), provider: varchar({ length: 64 }).$type().default("credentials").notNull(), homeBoardId: varchar({ length: 64 }).references((): AnyMySqlColumn => boards.id, { onDelete: "set null", @@ -78,6 +76,7 @@ export const users = mysqlTable("user", { onDelete: "set null", }), openSearchInNewTab: boolean().default(false).notNull(), + ddgBangs: boolean().default(true).notNull(), colorScheme: varchar({ length: 5 }).$type().default("dark").notNull(), firstDayOfWeek: tinyint().$type().default(1).notNull(), // Defaults to Monday pingIconsEnabled: boolean().default(false).notNull(), diff --git a/packages/db/schema/postgresql.ts b/packages/db/schema/postgresql.ts index e41d72f75..412916013 100644 --- a/packages/db/schema/postgresql.ts +++ b/packages/db/schema/postgresql.ts @@ -50,7 +50,6 @@ export * from "@homarr/core/infrastructure/certificates/hostnames/db/postgresql" export const apiKeys = pgTable("apiKey", { id: varchar({ length: 64 }).notNull().primaryKey(), apiKey: text().notNull(), - salt: text().notNull(), userId: varchar({ length: 64 }) .notNull() .references((): AnyPgColumn => users.id, { @@ -65,7 +64,6 @@ export const users = pgTable("user", { emailVerified: timestamp(), image: text(), password: text(), - salt: text(), provider: varchar({ length: 64 }).$type().default("credentials").notNull(), homeBoardId: varchar({ length: 64 }).references((): AnyPgColumn => boards.id, { onDelete: "set null", @@ -77,6 +75,7 @@ export const users = pgTable("user", { onDelete: "set null", }), openSearchInNewTab: boolean().default(false).notNull(), + ddgBangs: boolean().default(true).notNull(), colorScheme: varchar({ length: 5 }).$type().default("dark").notNull(), firstDayOfWeek: smallint().$type().default(1).notNull(), // Defaults to Monday pingIconsEnabled: boolean().default(false).notNull(), diff --git a/packages/db/schema/sqlite.ts b/packages/db/schema/sqlite.ts index 78ec4ac9c..50671db85 100644 --- a/packages/db/schema/sqlite.ts +++ b/packages/db/schema/sqlite.ts @@ -33,7 +33,6 @@ export * from "@homarr/core/infrastructure/certificates/hostnames/db/sqlite"; export const apiKeys = sqliteTable("apiKey", { id: text().notNull().primaryKey(), apiKey: text().notNull(), - salt: text().notNull(), userId: text() .notNull() .references((): AnySQLiteColumn => users.id, { @@ -48,7 +47,6 @@ export const users = sqliteTable("user", { emailVerified: int({ mode: "timestamp_ms" }), image: text(), password: text(), - salt: text(), provider: text().$type().default("credentials").notNull(), homeBoardId: text().references((): AnySQLiteColumn => boards.id, { onDelete: "set null", @@ -60,6 +58,7 @@ export const users = sqliteTable("user", { onDelete: "set null", }), openSearchInNewTab: int({ mode: "boolean" }).default(true).notNull(), + ddgBangs: int({ mode: "boolean" }).default(true).notNull(), colorScheme: text().$type().default("dark").notNull(), firstDayOfWeek: int().$type().default(1).notNull(), // Defaults to Monday pingIconsEnabled: int({ mode: "boolean" }).default(false).notNull(), diff --git a/packages/definitions/package.json b/packages/definitions/package.json index 3512f5d21..0dee78c65 100644 --- a/packages/definitions/package.json +++ b/packages/definitions/package.json @@ -24,15 +24,15 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", - "fast-xml-parser": "^5.3.3", - "zod": "^4.2.1" + "fast-xml-parser": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "tsx": "4.20.4", - "typescript": "^5.9.3" + "eslint": "catalog:", + "tsx": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/definitions/src/docs/homarr-docs-sitemap.ts b/packages/definitions/src/docs/homarr-docs-sitemap.ts index 4439c5dfe..b97a34937 100644 --- a/packages/definitions/src/docs/homarr-docs-sitemap.ts +++ b/packages/definitions/src/docs/homarr-docs-sitemap.ts @@ -36,6 +36,7 @@ export type HomarrDocumentationPath = | "/blog/tags/update" | "/blog/tags/version" | "/blog/translations" + | "/carbon-test" | "/search" | "/docs/tags" | "/docs/tags/active-directory" @@ -92,6 +93,7 @@ export type HomarrDocumentationPath = | "/docs/tags/roles" | "/docs/tags/search" | "/docs/tags/search-engines" + | "/docs/tags/secrets" | "/docs/tags/security" | "/docs/tags/self-signed" | "/docs/tags/seo" @@ -108,7 +110,9 @@ export type HomarrDocumentationPath = | "/docs/tags/variables" | "/docs/advanced/command-line" | "/docs/advanced/command-line/fix-usernames" + | "/docs/advanced/command-line/integrations" | "/docs/advanced/command-line/password-recovery" + | "/docs/advanced/command-line/users" | "/docs/advanced/development/getting-started" | "/docs/advanced/development/kubernetes" | "/docs/advanced/environment-variables" @@ -150,6 +154,7 @@ export type HomarrDocumentationPath = | "/docs/getting-started/installation/synology" | "/docs/getting-started/installation/unraid" | "/docs/integrations/adguard-home" + | "/docs/integrations/anchor" | "/docs/integrations/aria2" | "/docs/integrations/codeberg" | "/docs/integrations/dash-dot" @@ -160,8 +165,10 @@ export type HomarrDocumentationPath = | "/docs/integrations/github-containerregistry" | "/docs/integrations/github" | "/docs/integrations/gitlab" + | "/docs/integrations/glances" | "/docs/integrations/home-assistant" | "/docs/integrations/ical" + | "/docs/integrations/immich" | "/docs/integrations/jellyfin" | "/docs/integrations/jellyseerr" | "/docs/integrations/kubernetes" @@ -183,10 +190,16 @@ export type HomarrDocumentationPath = | "/docs/integrations/radarr" | "/docs/integrations/readarr" | "/docs/integrations/sabnzbd" + | "/docs/integrations/search-ch" + | "/docs/integrations/seerr" + | "/docs/integrations/slskd" | "/docs/integrations/sonarr" + | "/docs/integrations/speedtest-tracker" | "/docs/integrations/tdarr" + | "/docs/integrations/tracearr" | "/docs/integrations/transmission" | "/docs/integrations/truenas" + | "/docs/integrations/umami" | "/docs/integrations/unifi-controller" | "/docs/integrations/unraid" | "/docs/management/api" @@ -199,6 +212,7 @@ export type HomarrDocumentationPath = | "/docs/management/settings" | "/docs/management/tasks" | "/docs/management/users" + | "/docs/widgets/anchor-note" | "/docs/widgets/app" | "/docs/widgets/bookmarks" | "/docs/widgets/calendar" @@ -210,6 +224,8 @@ export type HomarrDocumentationPath = | "/docs/widgets/firewall" | "/docs/widgets/health-monitoring" | "/docs/widgets/iframe" + | "/docs/widgets/immich-album-carousel" + | "/docs/widgets/immich-server-stats" | "/docs/widgets/indexer-manager" | "/docs/widgets/media-releases" | "/docs/widgets/media-request-list" @@ -225,8 +241,12 @@ export type HomarrDocumentationPath = | "/docs/widgets/rss-feed" | "/docs/widgets/smart-home-entity-state" | "/docs/widgets/smart-home-execute-automation" + | "/docs/widgets/speedtest-tracker" | "/docs/widgets/stock-price" | "/docs/widgets/system-resources" + | "/docs/widgets/timetable" + | "/docs/widgets/tracearr" + | "/docs/widgets/umami" | "/docs/widgets/video" | "/docs/widgets/weather" | "" diff --git a/packages/definitions/src/integration.ts b/packages/definitions/src/integration.ts index e8518b016..f90f81a38 100644 --- a/packages/definitions/src/integration.ts +++ b/packages/definitions/src/integration.ts @@ -61,7 +61,7 @@ export const integrationDefs = { }, qBittorrent: { name: "qBittorrent", - secretKinds: [["username", "password"]], + secretKinds: [["apiKey"], ["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/qbittorrent.svg", category: ["downloadClient", "torrent"], documentationUrl: createDocumentationLink("/docs/integrations/q-bittorent"), @@ -73,6 +73,13 @@ export const integrationDefs = { category: ["downloadClient", "torrent", "miscellaneous"], documentationUrl: createDocumentationLink("/docs/integrations/aria2"), }, + slskd: { + name: "Slskd", + secretKinds: [["apiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/slskd.svg", + category: ["downloadClient", "miscellaneous"], + documentationUrl: createDocumentationLink("/docs/integrations/slskd"), + }, sonarr: { name: "Sonarr", secretKinds: [["apiKey"]], @@ -136,6 +143,13 @@ export const integrationDefs = { category: ["mediaSearch", "mediaRequest", "search"], documentationUrl: createDocumentationLink("/docs/integrations/jellyseerr"), }, + seerr: { + name: "Seerr", + secretKinds: [["apiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/seerr.svg", + category: ["mediaSearch", "mediaRequest", "search"], + documentationUrl: createDocumentationLink("/docs/integrations/seerr"), + }, overseerr: { name: "Overseerr", secretKinds: [["apiKey"]], @@ -178,6 +192,13 @@ export const integrationDefs = { category: ["healthMonitoring"], documentationUrl: createDocumentationLink("/docs/integrations/dash-dot"), }, + glances: { + name: "Glances", + secretKinds: [[]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/glances.svg", + category: ["healthMonitoring"], + documentationUrl: null, + }, tdarr: { name: "Tdarr", secretKinds: [[], ["apiKey"]], @@ -196,7 +217,7 @@ export const integrationDefs = { name: "Nextcloud", secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/nextcloud.svg", - category: ["calendar"], + category: ["calendar", "notifications"], documentationUrl: createDocumentationLink("/docs/integrations/nextcloud"), }, unifiController: { @@ -291,6 +312,13 @@ export const integrationDefs = { category: ["calendar"], documentationUrl: createDocumentationLink("/docs/integrations/ical"), }, + anchor: { + name: "Anchor", + secretKinds: [["apiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/anchor.svg", + category: ["notes"], + documentationUrl: createDocumentationLink("/docs/integrations/anchor"), + }, truenas: { name: "TrueNAS", secretKinds: [["username", "password"]], @@ -305,6 +333,51 @@ export const integrationDefs = { category: ["healthMonitoring"], documentationUrl: createDocumentationLink("/docs/integrations/unraid"), }, + coolify: { + name: "Coolify", + secretKinds: [["apiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/coolify.svg", + category: ["healthMonitoring"], + // @ts-expect-error - docs page will be created when integration is merged + documentationUrl: createDocumentationLink("/docs/integrations/coolify"), + }, + searchCh: { + name: "Search.ch", + secretKinds: [[]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/search-ch.png", + defaultUrl: "https://search.ch", + category: ["timetable"], + documentationUrl: createDocumentationLink("/docs/integrations/search-ch"), + }, + immich: { + name: "Immich", + secretKinds: [["apiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/immich.svg", + category: ["photoService"], + documentationUrl: createDocumentationLink("/docs/integrations/immich"), + }, + tracearr: { + name: "Tracearr", + secretKinds: [["apiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/tracearr.svg", + category: ["mediaMonitoring"], + documentationUrl: createDocumentationLink("/docs/integrations/tracearr"), + }, + speedtestTracker: { + name: "Speedtest Tracker", + secretKinds: [["apiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/speedtest-tracker.png", + category: ["speedtest"], + documentationUrl: createDocumentationLink("/docs/integrations/speedtest-tracker"), + }, + umami: { + name: "Umami", + secretKinds: [["username", "password"], ["apiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/umami.svg", + category: ["analytics"], + defaultUrl: "https://api.umami.is/v1", + documentationUrl: createDocumentationLink("/docs/integrations/umami"), + }, // This integration only returns mock data, it is used during development (but can also be used in production by directly going to the create page) mock: { name: "Mock", @@ -391,6 +464,12 @@ export const integrationCategories = [ "releasesProvider", "notifications", "firewall", + "timetable", + "photoService", + "notes", + "mediaMonitoring", + "speedtest", + "analytics", ] as const; export type IntegrationCategory = (typeof integrationCategories)[number]; diff --git a/packages/definitions/src/user.ts b/packages/definitions/src/user.ts index 77d8d4138..a25d44811 100644 --- a/packages/definitions/src/user.ts +++ b/packages/definitions/src/user.ts @@ -1,2 +1,2 @@ -export const colorSchemes = ["light", "dark"] as const; +export const colorSchemes = ["auto", "light", "dark"] as const; export type ColorScheme = (typeof colorSchemes)[number]; diff --git a/packages/definitions/src/widget.ts b/packages/definitions/src/widget.ts index ec0d2ff66..d6305a08e 100644 --- a/packages/definitions/src/widget.ts +++ b/packages/definitions/src/widget.ts @@ -5,6 +5,7 @@ export const widgetKinds = [ "iframe", "video", "notebook", + "anchorNote", "dnsHoleSummary", "dnsHoleControls", "smartHome-entityState", @@ -29,5 +30,13 @@ export const widgetKinds = [ "firewall", "notifications", "systemResources", + "coolify", + "systemDisks", + "timetable", + "immich-serverStats", + "immich-albumCarousel", + "tracearr", + "speedtestTracker", + "umami", ] as const; export type WidgetKind = (typeof widgetKinds)[number]; diff --git a/packages/docker/package.json b/packages/docker/package.json index bd7bc1727..f52507a38 100644 --- a/packages/docker/package.json +++ b/packages/docker/package.json @@ -26,14 +26,14 @@ "dependencies": { "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", - "dockerode": "^4.0.9" + "dockerode": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/dockerode": "^3.3.47", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "@types/dockerode": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/docker/src/env.ts b/packages/docker/src/env.ts index e858d3e69..003a9bfa6 100644 --- a/packages/docker/src/env.ts +++ b/packages/docker/src/env.ts @@ -4,9 +4,11 @@ import { createBooleanSchema, createEnv } from "@homarr/core/infrastructure/env" export const env = createEnv({ server: { - // Comma separated list of docker hostnames that can be used to connect to query the docker endpoints (localhost:2375,host.docker.internal:2375, ...) + // Comma separated list of docker hostnames that can be used to connect to query the docker endpoints (localhost,host.docker.internal, ...) DOCKER_HOSTNAMES: z.string().optional(), DOCKER_PORTS: z.string().optional(), + // Comma separated paths to Docker-compatible Unix sockets (e.g., /var/run/docker.sock,/run/user/1000/podman/podman.sock) + DOCKER_SOCKET_PATHS: z.string().optional(), ENABLE_DOCKER: createBooleanSchema(true), ENABLE_KUBERNETES: createBooleanSchema(false), }, diff --git a/packages/docker/src/singleton.ts b/packages/docker/src/singleton.ts index 86ce9661e..f24e8eb9c 100644 --- a/packages/docker/src/singleton.ts +++ b/packages/docker/src/singleton.ts @@ -11,31 +11,43 @@ export class DockerSingleton { private static instances: DockerInstance[] | null = null; private createInstances() { + const socketPaths = env.DOCKER_SOCKET_PATHS; const hostVariable = env.DOCKER_HOSTNAMES; const portVariable = env.DOCKER_PORTS; - if (hostVariable === undefined || portVariable === undefined) { + + // Socket instances from DOCKER_SOCKET_PATHS + const socketInstances: DockerInstance[] = socketPaths + ? socketPaths.split(",").map((socketPath) => ({ + host: socketPath, + instance: new Docker({ socketPath }), + })) + : []; + + // TCP instances from existing DOCKER_HOSTNAMES/DOCKER_PORTS + let tcpInstances: DockerInstance[] = []; + if (hostVariable !== undefined && portVariable !== undefined) { + const hostnames = hostVariable.split(","); + const ports = portVariable.split(","); + + if (hostnames.length !== ports.length) { + throw new Error("The number of hosts and ports must match"); + } + + tcpInstances = hostnames.map((host, i) => ({ + host: `${host}:${ports[i]}`, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + instance: new Docker({ host, port: parseInt(ports[i]!, 10) }), + })); + } + + const instances = [...socketInstances, ...tcpInstances]; + + // Default: local socket if nothing else configured + if (instances.length === 0) { return [{ host: "socket", instance: new Docker() }]; } - const hostnames = hostVariable.split(","); - const ports = portVariable.split(","); - if (hostnames.length !== ports.length) { - throw new Error("The number of hosts and ports must match"); - } - - return hostnames.map((host, i) => { - // Check above ensures that ports[i] is not undefined - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const port = ports[i]!; - - return { - host: `${host}:${port}`, - instance: new Docker({ - host, - port: parseInt(port, 10), - }), - }; - }); + return instances; } public static findInstance(host: string): DockerInstance | undefined { diff --git a/packages/docker/src/test/singleton.spec.ts b/packages/docker/src/test/singleton.spec.ts new file mode 100644 index 000000000..53af453af --- /dev/null +++ b/packages/docker/src/test/singleton.spec.ts @@ -0,0 +1,110 @@ +import { beforeEach, describe, expect, test, vi } from "vitest"; + +import { DockerSingleton } from "../singleton"; + +const mockEnv = vi.hoisted(() => ({ + DOCKER_SOCKET_PATHS: undefined as string | undefined, + DOCKER_HOSTNAMES: undefined as string | undefined, + DOCKER_PORTS: undefined as string | undefined, + ENABLE_DOCKER: true, + ENABLE_KUBERNETES: false, +})); + +vi.mock("dockerode", () => { + return { + default: class MockDocker { + constructor(public opts?: Record) {} + }, + }; +}); + +vi.mock("../env", () => ({ + env: mockEnv, +})); + +describe("DockerSingleton", () => { + beforeEach(() => { + // Reset singleton cache between tests + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access + (DockerSingleton as any).instances = null; + + // Reset env to defaults + mockEnv.DOCKER_SOCKET_PATHS = undefined; + mockEnv.DOCKER_HOSTNAMES = undefined; + mockEnv.DOCKER_PORTS = undefined; + }); + + test("should return default socket when no env vars set", () => { + const instances = DockerSingleton.getInstances(); + + expect(instances).toHaveLength(1); + expect(instances[0]?.host).toBe("socket"); + }); + + test("should return TCP instances only when DOCKER_HOSTNAMES and DOCKER_PORTS set", () => { + mockEnv.DOCKER_HOSTNAMES = "remote-host"; + mockEnv.DOCKER_PORTS = "2375"; + + const instances = DockerSingleton.getInstances(); + + expect(instances).toHaveLength(1); + expect(instances[0]?.host).toBe("remote-host:2375"); + }); + + test("should return multiple TCP instances", () => { + mockEnv.DOCKER_HOSTNAMES = "host1,host2"; + mockEnv.DOCKER_PORTS = "2375,2376"; + + const instances = DockerSingleton.getInstances(); + + expect(instances).toHaveLength(2); + expect(instances[0]?.host).toBe("host1:2375"); + expect(instances[1]?.host).toBe("host2:2376"); + }); + + test("should throw when hostname and port counts do not match", () => { + mockEnv.DOCKER_HOSTNAMES = "host1,host2"; + mockEnv.DOCKER_PORTS = "2375"; + + expect(() => DockerSingleton.getInstances()).toThrow("The number of hosts and ports must match"); + }); + + test("should return socket instances when DOCKER_SOCKET_PATHS set", () => { + mockEnv.DOCKER_SOCKET_PATHS = "/var/run/docker.sock"; + + const instances = DockerSingleton.getInstances(); + + expect(instances).toHaveLength(1); + expect(instances[0]?.host).toBe("/var/run/docker.sock"); + }); + + test("should return multiple socket instances", () => { + mockEnv.DOCKER_SOCKET_PATHS = "/var/run/docker.sock,/run/user/1000/podman/podman.sock"; + + const instances = DockerSingleton.getInstances(); + + expect(instances).toHaveLength(2); + expect(instances[0]?.host).toBe("/var/run/docker.sock"); + expect(instances[1]?.host).toBe("/run/user/1000/podman/podman.sock"); + }); + + test("should combine socket and TCP instances", () => { + mockEnv.DOCKER_SOCKET_PATHS = "/var/run/docker.sock,/run/user/1000/podman/podman.sock"; + mockEnv.DOCKER_HOSTNAMES = "remote-host"; + mockEnv.DOCKER_PORTS = "2375"; + + const instances = DockerSingleton.getInstances(); + + expect(instances).toHaveLength(3); + expect(instances[0]?.host).toBe("/var/run/docker.sock"); + expect(instances[1]?.host).toBe("/run/user/1000/podman/podman.sock"); + expect(instances[2]?.host).toBe("remote-host:2375"); + }); + + test("should cache instances on subsequent calls", () => { + const first = DockerSingleton.getInstances(); + const second = DockerSingleton.getInstances(); + + expect(first).toBe(second); + }); +}); diff --git a/packages/form/package.json b/packages/form/package.json index 0d98a9ee7..fcb7754ea 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -26,15 +26,15 @@ "@homarr/common": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/form": "^8.3.12", - "mantine-form-zod-resolver": "^1.3.0", - "zod": "^4.2.1" + "@mantine/form": "catalog:", + "mantine-form-zod-resolver": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/forms-collection/package.json b/packages/forms-collection/package.json index d3a7133af..720ec39c8 100644 --- a/packages/forms-collection/package.json +++ b/packages/forms-collection/package.json @@ -30,15 +30,15 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^8.3.12", - "react": "19.2.3", - "zod": "^4.2.1" + "@mantine/core": "catalog:", + "react": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/forms-collection/src/icon-picker/icon-picker.tsx b/packages/forms-collection/src/icon-picker/icon-picker.tsx index 1fdf3ee96..0ad036f81 100644 --- a/packages/forms-collection/src/icon-picker/icon-picker.tsx +++ b/packages/forms-collection/src/icon-picker/icon-picker.tsx @@ -22,6 +22,7 @@ import { IconUpload } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; import { useSession } from "@homarr/auth/client"; +import { supportedLanguages } from "@homarr/translation"; import { useScopedI18n } from "@homarr/translation/client"; import { UploadMedia } from "../upload-media/upload-media"; @@ -137,7 +138,9 @@ export const IconPicker = ({ } - leftSection={previewUrl ? : null} + leftSection={ + shouldShowPreview(previewUrl) ? : null + } value={search} onChange={(event) => { combobox.openDropdown(); @@ -204,3 +207,11 @@ export const IconPicker = ({ ); }; + +// This regex is used to prevent loading a preview like en or /en which would trigger a language change +// See https://github.com/homarr-labs/homarr/issues/3070 +const localizationPathRegex = new RegExp(`^/?(${supportedLanguages.join("|")})(/.*)?$`, "i" /* ignore casing */); +const shouldShowPreview = (value: string | null): value is string => { + if (!value) return false; + return !localizationPathRegex.test(value); +}; diff --git a/packages/icons/package.json b/packages/icons/package.json index 7460e3706..1025cb8bf 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -31,7 +31,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/image-proxy/package.json b/packages/image-proxy/package.json index f6ea7ccf6..2cebf6a02 100644 --- a/packages/image-proxy/package.json +++ b/packages/image-proxy/package.json @@ -25,14 +25,14 @@ "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/redis": "workspace:^0.1.0", - "bcrypt": "^6.0.0" + "bcrypt": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/bcrypt": "6.0.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "@types/bcrypt": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/image-proxy/src/index.ts b/packages/image-proxy/src/index.ts index 736a64dcb..3660064c3 100644 --- a/packages/image-proxy/src/index.ts +++ b/packages/image-proxy/src/index.ts @@ -1,6 +1,7 @@ -import bcrypt from "bcrypt"; +import { createHmac, hkdfSync } from "node:crypto"; import { createId } from "@homarr/common"; +import { env } from "@homarr/common/env"; import { decryptSecret, encryptSecret } from "@homarr/common/server"; import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; import { createLogger } from "@homarr/core/infrastructure/logs"; @@ -9,29 +10,22 @@ import { createGetSetChannel } from "@homarr/redis"; const logger = createLogger({ module: "imageProxy" }); -const createHashChannel = (hash: `${string}.${string}`) => createGetSetChannel(`image-proxy:hash:${hash}`); +const createHmacChannel = (hmac: `${string}.${string}`) => createGetSetChannel(`image-proxy:hmac:${hmac}`); const createUrlByIdChannel = (id: string) => createGetSetChannel<{ url: `${string}.${string}`; headers: `${string}.${string}`; }>(`image-proxy:url:${id}`); -const saltChannel = createGetSetChannel("image-proxy:salt"); export class ImageProxy { - private static salt: string | null = null; - private async getOrCreateSaltAsync(): Promise { - if (ImageProxy.salt) return ImageProxy.salt; - const existingSalt = await saltChannel.getAsync(); - if (existingSalt) { - ImageProxy.salt = existingSalt; - return existingSalt; - } + private static hmacKey: Buffer | null = null; - const salt = await bcrypt.genSalt(10); - logger.debug("Generated new salt for image proxy", { salt }); - ImageProxy.salt = salt; - await saltChannel.setAsync(salt); - return salt; + /** + * Generate secure key for image-proxy from encryption key + */ + private static getHmacKey(): Buffer { + this.hmacKey ??= Buffer.from(hkdfSync("sha256", env.SECRET_ENCRYPTION_KEY, "", "image-proxy", 32)); + return this.hmacKey; } public async createImageAsync(url: string, headers?: Record): Promise { @@ -106,20 +100,18 @@ export class ImageProxy { } private async getExistingIdAsync(url: string, headers: Record | undefined): Promise { - const salt = await this.getOrCreateSaltAsync(); - const urlHash = await bcrypt.hash(url, salt); - const headerHash = await bcrypt.hash(JSON.stringify(headers ?? null), salt); + const urlHash = this.hashSecret(url); + const headerHash = this.hashSecret(JSON.stringify(headers ?? null)); - const channel = createHashChannel(`${urlHash}.${headerHash}`); + const channel = createHmacChannel(`${urlHash}.${headerHash}`); return await channel.getAsync(); } private async storeImageAsync(id: string, url: string, headers: Record | undefined): Promise { - const salt = await this.getOrCreateSaltAsync(); - const urlHash = await bcrypt.hash(url, salt); - const headerHash = await bcrypt.hash(JSON.stringify(headers ?? null), salt); + const urlHash = this.hashSecret(url); + const headerHash = this.hashSecret(JSON.stringify(headers ?? null)); - const hashChannel = createHashChannel(`${urlHash}.${headerHash}`); + const hashChannel = createHmacChannel(`${urlHash}.${headerHash}`); const urlHeaderChannel = createUrlByIdChannel(id); await urlHeaderChannel.setAsync({ url: encryptSecret(url), @@ -134,6 +126,10 @@ export class ImageProxy { }); } + private hashSecret(value: string): string { + return createHmac("sha256", ImageProxy.getHmacKey()).update(value).digest("hex"); + } + private redactUrl(url: string): string { const urlObject = new URL(url); diff --git a/packages/integrations/package.json b/packages/integrations/package.json index dec7a26b3..9811d05da 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -25,38 +25,39 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@ctrl/deluge": "^7.5.0", - "@ctrl/qbittorrent": "^9.11.0", - "@ctrl/transmission": "^7.4.0", - "@gitbeaker/rest": "^43.8.0", + "@ctrl/deluge": "catalog:", + "@ctrl/qbittorrent": "catalog:", + "@ctrl/transmission": "catalog:", + "@gitbeaker/rest": "catalog:", "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", "@homarr/image-proxy": "workspace:^0.1.0", - "@homarr/node-unifi": "^2.6.0", + "@homarr/node-unifi": "catalog:", "@homarr/redis": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@jellyfin/sdk": "^0.13.0", - "@octokit/auth-app": "^8.1.2", - "ical.js": "^2.2.1", - "maria2": "^0.4.1", - "node-ical": "^0.22.1", - "octokit": "^5.0.5", - "proxmox-api": "1.1.1", - "tsdav": "^2.1.6", - "undici": "7.18.2", - "xml2js": "^0.6.2", - "zod": "^4.2.1" + "@immich/sdk": "catalog:", + "@jellyfin/sdk": "catalog:", + "@octokit/auth-app": "catalog:", + "ical.js": "catalog:", + "maria2": "catalog:", + "octokit": "catalog:", + "proxmox-api": "catalog:", + "timezones-ical-library": "catalog:", + "tsdav": "catalog:", + "undici": "catalog:", + "xml2js": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node-unifi": "^2.5.1", - "@types/xml2js": "^0.4.14", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "@types/node-unifi": "catalog:", + "@types/xml2js": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/integrations/src/anchor/anchor-integration.ts b/packages/integrations/src/anchor/anchor-integration.ts new file mode 100644 index 000000000..4c4931894 --- /dev/null +++ b/packages/integrations/src/anchor/anchor-integration.ts @@ -0,0 +1,118 @@ +import type { fetch as undiciFetch } from "undici"; + +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; +import { createLogger } from "@homarr/core/infrastructure/logs"; + +import type { IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import { TestConnectionError } from "../base/test-connection/test-connection-error"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; +import { anchorNoteSchema, anchorNoteSummaryListSchema } from "./anchor-types"; +import type { AnchorNote, AnchorNotesListInput, AnchorNoteSummary, AnchorNoteUpdateInput } from "./anchor-types"; + +const logger = createLogger({ module: "anchorIntegration" }); + +export class AnchorIntegration extends Integration { + protected async testingAsync(input: IntegrationTestingInput): Promise { + const response = await input.fetchAsync(this.url("/api/notes", { limit: 1 }), { + headers: { + Authorization: `Bearer ${this.getSecretValue("apiKey")}`, + }, + }); + + if (!response.ok) return TestConnectionError.StatusResult(response); + + anchorNoteSummaryListSchema.parse(await response.json()); + return { success: true }; + } + + public async listNotesAsync(input: AnchorNotesListInput = {}): Promise { + const queryParams = buildListQuery(input); + const response = await this.requestAsync(fetchWithTrustedCertificatesAsync, "/api/notes", { + queryParams, + }); + return anchorNoteSummaryListSchema.parse(response); + } + + public async getNoteAsync(noteId: string): Promise { + const response = await this.requestAsync(fetchWithTrustedCertificatesAsync, `/api/notes/${noteId}`); + return anchorNoteSchema.parse(response); + } + + public async updateNoteAsync(input: AnchorNoteUpdateInput): Promise { + const { noteId, ...updateData } = input; + const response = await this.requestAsync(fetchWithTrustedCertificatesAsync, `/api/notes/${noteId}`, { + method: "PATCH", + body: updateData, + }); + if (response === null) { + return this.getNoteAsync(noteId); + } + return anchorNoteSchema.parse(response); + } + + private async requestAsync( + fetchAsync: typeof undiciFetch, + path: `/${string}`, + options?: { + queryParams?: Record; + method?: string; + body?: unknown; + }, + ): Promise { + const url = this.url(path, options?.queryParams); + const headers: Record = { + Authorization: `Bearer ${this.getSecretValue("apiKey")}`, + }; + + if (options?.body !== undefined) { + headers["Content-Type"] = "application/json"; + } + + const response = await fetchAsync(url, { + method: options?.method ?? "GET", + headers, + body: options?.body !== undefined ? JSON.stringify(options.body) : undefined, + }); + + if (!response.ok) { + let errorBody: string | null; + try { + errorBody = await response.text(); + } catch { + errorBody = null; + } + logger.warn("Anchor request failed", { + statusCode: response.status, + url, + errorBody: errorBody ? errorBody.slice(0, 200) : null, + }); + throw new ResponseError(response); + } + + if (response.status === 204) { + return null; + } + + return await response.json(); + } +} + +const buildListQuery = (input: AnchorNotesListInput) => { + const queryParams: Record = {}; + + if (input.search?.trim()) { + queryParams.search = input.search.trim(); + } + + if (input.tagId?.trim()) { + queryParams.tagId = input.tagId.trim(); + } + + if (typeof input.limit === "number") { + queryParams.limit = input.limit.toString(); + } + + return Object.keys(queryParams).length > 0 ? queryParams : undefined; +}; diff --git a/packages/integrations/src/anchor/anchor-types.ts b/packages/integrations/src/anchor/anchor-types.ts new file mode 100644 index 000000000..547969cbb --- /dev/null +++ b/packages/integrations/src/anchor/anchor-types.ts @@ -0,0 +1,43 @@ +import { z } from "zod/v4"; + +export const anchorNotesListInputSchema = z.object({ + search: z.string().optional(), + tagId: z.string().optional(), + limit: z.number().min(1).max(200).optional(), +}); +export type AnchorNotesListInput = z.infer; + +export const anchorNotePermissionSchema = z.enum(["owner", "viewer", "editor"]); +export type AnchorNotePermission = z.infer; + +export const anchorNoteSummarySchema = z.object({ + id: z.string(), + title: z.string(), + updatedAt: z.string(), + isPinned: z.boolean(), + tagIds: z.array(z.string()), + permission: anchorNotePermissionSchema, +}); +export type AnchorNoteSummary = z.infer; + +export const anchorNoteSchema = anchorNoteSummarySchema.extend({ + content: z.string().nullable().optional(), + createdAt: z.string(), + isArchived: z.boolean(), + background: z.string().nullable().optional(), + userId: z.string(), +}); +export type AnchorNote = z.infer; + +export const anchorNoteSummaryListSchema = z.array(anchorNoteSummarySchema); + +export const anchorNoteUpdateInputSchema = z + .object({ + noteId: z.string(), + title: z.string().optional(), + content: z.string().optional(), + }) + .refine((value) => value.title !== undefined || value.content !== undefined, { + message: "At least one field to update must be provided", + }); +export type AnchorNoteUpdateInput = z.infer; diff --git a/packages/integrations/src/base/creator.ts b/packages/integrations/src/base/creator.ts index adca7fcb1..9e2466bea 100644 --- a/packages/integrations/src/base/creator.ts +++ b/packages/integrations/src/base/creator.ts @@ -1,7 +1,9 @@ import type { IntegrationKind } from "@homarr/definitions"; import { AdGuardHomeIntegration } from "../adguard-home/adguard-home-integration"; +import { AnchorIntegration } from "../anchor/anchor-integration"; import { CodebergIntegration } from "../codeberg/codeberg-integration"; +import { CoolifyIntegration } from "../coolify/coolify-integration"; import { DashDotIntegration } from "../dashdot/dashdot-integration"; import { DockerHubIntegration } from "../docker-hub/docker-hub-integration"; import { Aria2Integration } from "../download-client/aria2/aria2-integration"; @@ -9,13 +11,16 @@ import { DelugeIntegration } from "../download-client/deluge/deluge-integration" import { NzbGetIntegration } from "../download-client/nzbget/nzbget-integration"; import { QBitTorrentIntegration } from "../download-client/qbittorrent/qbittorrent-integration"; import { SabnzbdIntegration } from "../download-client/sabnzbd/sabnzbd-integration"; +import { SlskdIntegration } from "../download-client/slskd/slskd-integration"; import { TransmissionIntegration } from "../download-client/transmission/transmission-integration"; import { EmbyIntegration } from "../emby/emby-integration"; import { GitHubContainerRegistryIntegration } from "../github-container-registry/github-container-registry-integration"; import { GithubIntegration } from "../github/github-integration"; import { GitlabIntegration } from "../gitlab/gitlab-integration"; +import { GlancesIntegration } from "../glances/glances-integration"; import { HomeAssistantIntegration } from "../homeassistant/homeassistant-integration"; import { ICalIntegration } from "../ical/ical-integration"; +import { ImmichIntegration } from "../immich/immich-integration"; import { JellyfinIntegration } from "../jellyfin/jellyfin-integration"; import { JellyseerrIntegration } from "../jellyseerr/jellyseerr-integration"; import { LinuxServerIOIntegration } from "../linuxserverio/linuxserverio-integration"; @@ -36,7 +41,12 @@ import { PlexIntegration } from "../plex/plex-integration"; import { ProwlarrIntegration } from "../prowlarr/prowlarr-integration"; import { ProxmoxIntegration } from "../proxmox/proxmox-integration"; import { QuayIntegration } from "../quay/quay-integration"; +import { SearchChIntegration } from "../search-ch/search-ch-integration"; +import { SeerrIntegration } from "../seerr/seerr-integration"; +import { SpeedtestTrackerIntegration } from "../speedtest-tracker/speedtest-tracker-integration"; +import { TracearrIntegration } from "../tracearr/tracearr-integration"; import { TrueNasIntegration } from "../truenas/truenas-integration"; +import { UmamiIntegration } from "../umami/umami-integration"; import { UnifiControllerIntegration } from "../unifi-controller/unifi-controller-integration"; import { UnraidIntegration } from "../unraid/unraid-integration"; import type { Integration, IntegrationInput } from "./integration"; @@ -64,6 +74,7 @@ type IntegrationInstance = new (integration: IntegrationInput) => Integration; // factories are an array, to differentiate in js between class constructors and functions export const integrationCreators = { + anchor: AnchorIntegration, piHole: [createPiHoleIntegrationAsync], adGuardHome: AdGuardHomeIntegration, homeAssistant: HomeAssistantIntegration, @@ -76,8 +87,10 @@ export const integrationCreators = { qBittorrent: QBitTorrentIntegration, deluge: DelugeIntegration, transmission: TransmissionIntegration, + slskd: SlskdIntegration, aria2: Aria2Integration, jellyseerr: JellyseerrIntegration, + seerr: SeerrIntegration, overseerr: OverseerrIntegration, prowlarr: ProwlarrIntegration, openmediavault: OpenMediaVaultIntegration, @@ -103,6 +116,13 @@ export const integrationCreators = { mock: MockIntegration, truenas: TrueNasIntegration, unraid: UnraidIntegration, + coolify: CoolifyIntegration, + tracearr: TracearrIntegration, + glances: GlancesIntegration, + searchCh: SearchChIntegration, + immich: ImmichIntegration, + speedtestTracker: SpeedtestTrackerIntegration, + umami: UmamiIntegration, } satisfies Record Promise]>; type IntegrationInstanceOfKind = { diff --git a/packages/integrations/src/base/integration.ts b/packages/integrations/src/base/integration.ts index ec6c7e4b5..22ad8b1ea 100644 --- a/packages/integrations/src/base/integration.ts +++ b/packages/integrations/src/base/integration.ts @@ -58,24 +58,30 @@ export abstract class Integration { private createUrl( inputUrl: string, path: `/${string}`, - queryParams?: Record, + queryParams?: Record, ) { const baseUrl = removeTrailingSlash(inputUrl); const url = new URL(`${baseUrl}${path}`); if (queryParams) { for (const [key, value] of Object.entries(queryParams)) { + if (value === null || value === undefined) { + continue; + } url.searchParams.set(key, value instanceof Date ? value.toISOString() : value.toString()); } } return url; } - protected url(path: `/${string}`, queryParams?: Record) { + protected url(path: `/${string}`, queryParams?: Record) { return this.createUrl(this.integration.url, path, queryParams); } - protected externalUrl(path: `/${string}`, queryParams?: Record) { + protected externalUrl( + path: `/${string}`, + queryParams?: Record, + ) { return this.createUrl(this.integration.externalUrl ?? this.integration.url, path, queryParams); } diff --git a/packages/integrations/src/coolify/coolify-integration.ts b/packages/integrations/src/coolify/coolify-integration.ts new file mode 100644 index 000000000..fa7e50667 --- /dev/null +++ b/packages/integrations/src/coolify/coolify-integration.ts @@ -0,0 +1,351 @@ +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; + +import type { IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; +import type { + CoolifyApplication, + CoolifyApplicationWithContext, + CoolifyEnvironment, + CoolifyEnvironmentVariable, + CoolifyHealthcheck, + CoolifyInstanceInfo, + CoolifyProject, + CoolifyProjectWithEnvironments, + CoolifyResource, + CoolifyServer, + CoolifyService, + CoolifyServiceWithContext, +} from "./coolify-types"; +import { + coolifyApplicationLogSchema, + coolifyApplicationSchema, + coolifyEnvironmentSchema, + coolifyEnvironmentVariableSchema, + coolifyHealthcheckSchema, + coolifyProjectSchema, + coolifyProjectWithEnvironmentsSchema, + coolifyResourceSchema, + coolifyServerSchema, + coolifyServiceSchema, +} from "./coolify-types"; + +export class CoolifyIntegration extends Integration { + protected async testingAsync(input: IntegrationTestingInput): Promise { + const healthUrl = this.url("/api/health"); + const healthResponse = await input.fetchAsync(healthUrl, {}); + + if (!healthResponse.ok) { + throw new ResponseError(healthResponse); + } + + // Test API key authentication + const versionUrl = this.url("/api/v1/version"); + const versionResponse = await input.fetchAsync(versionUrl, { + headers: this.getAuthHeaders(), + }); + + if (!versionResponse.ok) { + throw new ResponseError(versionResponse); + } + + return { success: true }; + } + + /** + * Get Coolify version information + * https://coolify.io/docs/api-reference/api/operations/version + */ + public async getVersionAsync(): Promise { + const url = this.url("/api/v1/version"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + const version = await response.text(); + return version.trim(); + } + + /** + * Get Coolify healthcheck status + * https://coolify.io/docs/api-reference/api/operations/healthcheck + */ + public async getHealthcheckAsync(): Promise { + const url = this.url("/api/v1/healthcheck"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyHealthcheckSchema.parse(await response.json()); + } + + /** + * List all applications + * https://coolify.io/docs/api-reference/api/operations/list-applications + */ + public async listApplicationsAsync(): Promise { + const url = this.url("/api/v1/applications"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyApplicationSchema.array().parse(await response.json()); + } + + /** + * Get application by UUID + * https://coolify.io/docs/api-reference/api/operations/get-application-by-uuid + */ + public async getApplicationByUuidAsync(uuid: string): Promise { + const url = this.url(`/api/v1/applications/${uuid}`); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyApplicationSchema.parse(await response.json()); + } + + /** + * Get application logs by UUID + * https://coolify.io/docs/api-reference/api/operations/get-application-logs-by-uuid + */ + public async getApplicationLogsAsync(uuid: string): Promise { + const url = this.url(`/api/v1/applications/${uuid}/logs`); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + const result = coolifyApplicationLogSchema.parse(await response.json()); + return result.logs; + } + + /** + * List environment variables by application UUID + * https://coolify.io/docs/api-reference/api/operations/list-envs-by-application-uuid + */ + public async listEnvsByApplicationUuidAsync(uuid: string): Promise { + const url = this.url(`/api/v1/applications/${uuid}/envs`); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyEnvironmentVariableSchema.array().parse(await response.json()); + } + + /** + * List projects + * https://coolify.io/docs/api-reference/api/operations/list-projects + */ + public async listProjectsAsync(): Promise { + const url = this.url("/api/v1/projects"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyProjectSchema.array().parse(await response.json()); + } + + /** + * Get project by UUID (includes environments) + * https://coolify.io/docs/api-reference/api/operations/get-project-by-uuid + */ + public async getProjectByUuidAsync(uuid: string): Promise { + const url = this.url(`/api/v1/projects/${uuid}`); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyProjectWithEnvironmentsSchema.parse(await response.json()); + } + + /** + * Get environments + * https://coolify.io/docs/api-reference/api/operations/get-environments + */ + public async getEnvironmentsAsync(): Promise { + const url = this.url("/api/v1/environments"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyEnvironmentSchema.array().parse(await response.json()); + } + + /** + * Get environment by name or UUID + * https://coolify.io/docs/api-reference/api/operations/get-environment-by-name-or-uuid + */ + public async getEnvironmentByNameOrUuidAsync(nameOrUuid: string): Promise { + const url = this.url(`/api/v1/environments/${nameOrUuid}`); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyEnvironmentSchema.parse(await response.json()); + } + + /** + * List resources + * https://coolify.io/docs/api-reference/api/operations/list-resources + */ + public async listResourcesAsync(): Promise { + const url = this.url("/api/v1/resources"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyResourceSchema.array().parse(await response.json()); + } + + /** + * List servers + * https://coolify.io/docs/api-reference/api/operations/list-servers + */ + public async listServersAsync(): Promise { + const url = this.url("/api/v1/servers"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyServerSchema.array().parse(await response.json()); + } + + /** + * List services + * https://coolify.io/docs/api-reference/api/operations/list-services + */ + public async listServicesAsync(): Promise { + const url = this.url("/api/v1/services"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return coolifyServiceSchema.array().parse(await response.json()); + } + + public async getInstanceInfoAsync(): Promise { + const [version, applications, services, projectsWithEnvs, servers] = await Promise.all([ + this.getVersionAsync(), + this.listApplicationsAsync(), + this.listServicesAsync(), + this.listProjectsWithEnvironmentsAsync(), + this.listServersAsync(), + ]); + + const envToProjectMap = new Map< + number, + { projectName: string; projectUuid: string; environmentName: string; environmentUuid?: string } + >(); + for (const project of projectsWithEnvs) { + for (const env of project.environments ?? []) { + if (env.id != null) { + envToProjectMap.set(env.id, { + projectName: project.name, + projectUuid: project.uuid, + environmentName: env.name, + environmentUuid: env.uuid ?? undefined, + }); + } + } + } + + const applicationsWithContext: CoolifyApplicationWithContext[] = applications.map((app) => { + const context = app.environment_id ? envToProjectMap.get(app.environment_id) : undefined; + return { + ...app, + projectName: context?.projectName, + projectUuid: context?.projectUuid, + environmentName: context?.environmentName, + environmentUuid: context?.environmentUuid, + }; + }); + + const servicesWithContext: CoolifyServiceWithContext[] = services.map((service) => { + const context = service.environment_id ? envToProjectMap.get(service.environment_id) : undefined; + const fqdn = service.fqdn ?? service.applications?.find((app) => app.fqdn)?.fqdn ?? undefined; + return { + ...service, + fqdn, + projectName: context?.projectName, + projectUuid: context?.projectUuid, + environmentName: context?.environmentName, + environmentUuid: context?.environmentUuid, + }; + }); + + return { + version, + applications: applicationsWithContext, + services: servicesWithContext, + servers, + }; + } + + /** + * List all projects with their environments + */ + private async listProjectsWithEnvironmentsAsync(): Promise { + const projects = await this.listProjectsAsync(); + const projectsWithEnvs = await Promise.all(projects.map((project) => this.getProjectByUuidAsync(project.uuid))); + return projectsWithEnvs; + } + + private getAuthHeaders(): Record { + return { + Authorization: `Bearer ${this.getSecretValue("apiKey")}`, + }; + } +} diff --git a/packages/integrations/src/coolify/coolify-types.ts b/packages/integrations/src/coolify/coolify-types.ts new file mode 100644 index 000000000..a2995d23b --- /dev/null +++ b/packages/integrations/src/coolify/coolify-types.ts @@ -0,0 +1,154 @@ +// Coolify API Types and Schemas based on https://coolify.io/docs/api-reference/api +import { z } from "zod/v4"; + +// Health check schema +export const coolifyHealthcheckSchema = z.object({ + status: z.string(), +}); + +export type CoolifyHealthcheck = z.infer; + +// Application log schema +export const coolifyApplicationLogSchema = z.object({ + logs: z.string(), +}); + +export type CoolifyApplicationLog = z.infer; + +// Environment variable schema +export const coolifyEnvironmentVariableSchema = z.object({ + id: z.number().nullish(), + key: z.string(), + value: z.string(), + is_build_time: z.boolean().nullish(), + is_preview: z.boolean().nullish(), + application_id: z.number().nullish(), +}); + +export type CoolifyEnvironmentVariable = z.infer; + +// Application schema (only fields used in the widget) +export const coolifyApplicationSchema = z.object({ + id: z.number().nullish(), + uuid: z.string(), + name: z.string(), + status: z.string().nullish(), + fqdn: z.string().nullish(), + environment_id: z.number().nullish(), + server_id: z.number().nullish(), + destination_id: z.number().nullish(), + updated_at: z.string().nullish(), + last_online_at: z.string().nullish(), +}); + +export type CoolifyApplication = z.infer; + +// Project schema +export const coolifyProjectSchema = z.object({ + id: z.number().nullish(), + uuid: z.string(), + name: z.string(), +}); + +export type CoolifyProject = z.infer; + +// Environment schema +export const coolifyEnvironmentSchema = z.object({ + id: z.number().nullish(), + uuid: z.string().nullish(), + name: z.string(), + project_id: z.number().nullish(), +}); + +export type CoolifyEnvironment = z.infer; + +// Project with environments schema +export const coolifyProjectWithEnvironmentsSchema = coolifyProjectSchema.extend({ + environments: z.array(coolifyEnvironmentSchema).nullish(), +}); + +export type CoolifyProjectWithEnvironments = z.infer; + +// Resource schema +export const coolifyResourceSchema = z.object({ + id: z.number().nullish(), + uuid: z.string(), + name: z.string(), + type: z.string(), + status: z.string().nullish(), +}); + +export type CoolifyResource = z.infer; + +// Server settings schema +export const coolifyServerSettingsSchema = z.object({ + server_id: z.number().nullish(), + is_build_server: z.boolean().nullish(), + is_reachable: z.boolean().nullish(), + is_usable: z.boolean().nullish(), +}); + +export type CoolifyServerSettings = z.infer; + +// Server schema +export const coolifyServerSchema = z.object({ + id: z.number().nullish(), + uuid: z.string(), + name: z.string(), + ip: z.string().nullish(), + is_reachable: z.boolean().nullish(), + is_usable: z.boolean().nullish(), + settings: coolifyServerSettingsSchema.nullish(), +}); + +export type CoolifyServer = z.infer; + +// Service application schema (nested in services) +export const coolifyServiceApplicationSchema = z.object({ + id: z.number().nullish(), + uuid: z.string(), + name: z.string(), + fqdn: z.string().nullish(), + status: z.string().nullish(), +}); + +export type CoolifyServiceApplication = z.infer; + +// Service schema +export const coolifyServiceSchema = z.object({ + id: z.number().nullish(), + uuid: z.string(), + name: z.string(), + status: z.string().nullish(), + fqdn: z.string().nullish(), + environment_id: z.number().nullish(), + server_id: z.number().nullish(), + destination_id: z.number().nullish(), + updated_at: z.string().nullish(), + applications: z.array(coolifyServiceApplicationSchema).nullish(), +}); + +export type CoolifyService = z.infer; + +// Extended types with context (not from API, added by integration) +export interface CoolifyApplicationWithContext extends CoolifyApplication { + projectName?: string; + projectUuid?: string; + environmentName?: string; + environmentUuid?: string; +} + +export interface CoolifyServiceWithContext extends CoolifyService { + projectName?: string; + projectUuid?: string; + environmentName?: string; + environmentUuid?: string; +} + +// Aggregated information for the Coolify instance +export interface CoolifyInstanceInfo { + version: string; + applications: CoolifyApplicationWithContext[]; + services: CoolifyServiceWithContext[]; + servers: CoolifyServer[]; +} diff --git a/packages/integrations/src/coolify/test/coolify-integration.spec.ts b/packages/integrations/src/coolify/test/coolify-integration.spec.ts new file mode 100644 index 000000000..c551fd3dc --- /dev/null +++ b/packages/integrations/src/coolify/test/coolify-integration.spec.ts @@ -0,0 +1,313 @@ +import { Request, Response } from "undici"; +import { beforeEach, describe, expect, test, vi } from "vitest"; + +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; + +import { CoolifyIntegration } from "../coolify-integration"; +import type { + CoolifyApplication, + CoolifyProject, + CoolifyProjectWithEnvironments, + CoolifyServer, + CoolifyService, +} from "../coolify-types"; + +vi.mock("@homarr/core/infrastructure/http", () => ({ + fetchWithTrustedCertificatesAsync: vi.fn(), +})); + +const TEST_API_KEY = "test-api-key-12345"; +const TEST_URL = "https://coolify.example.com"; + +type MockResponseData = string | Record | unknown[]; + +const mockFetchWithTrustedCertificates = vi.mocked(fetchWithTrustedCertificatesAsync); + +const setupMockFetch = (responses: Record) => { + mockFetchWithTrustedCertificates.mockImplementation((url) => { + const urlString = typeof url === "string" ? url : url instanceof Request ? url.url : url.toString(); + const urlObj = new URL(urlString); + const path = urlObj.pathname; + + if (path in responses) { + const data = responses[path]; + const body = typeof data === "string" ? data : JSON.stringify(data); + return Promise.resolve( + new Response(body, { + status: 200, + headers: { "content-type": "application/json" }, + }) as unknown as Awaited>, + ); + } + + return Promise.resolve( + new Response(JSON.stringify({ error: "Not Found" }), { + status: 404, + headers: { "content-type": "application/json" }, + }) as unknown as Awaited>, + ); + }); +}; + +const createCoolifyIntegration = () => { + return new CoolifyIntegration({ + id: "test-coolify", + name: "Test Coolify", + url: TEST_URL, + externalUrl: null, + decryptedSecrets: [{ kind: "apiKey", value: TEST_API_KEY }], + }); +}; + +describe("CoolifyIntegration", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + describe("getVersionAsync", () => { + test("should return version string from Coolify API", async () => { + setupMockFetch({ + "/api/v1/version": "4.0.0-beta.460", + }); + + const integration = createCoolifyIntegration(); + const result = await integration.getVersionAsync(); + + expect(result).toBe("4.0.0-beta.460"); + expect(mockFetchWithTrustedCertificates).toHaveBeenCalled(); + }); + + test("should throw error when API returns error", async () => { + mockFetchWithTrustedCertificates.mockResolvedValue( + new Response("Unauthorized", { + status: 401, + headers: { "content-type": "text/plain" }, + }) as unknown as Awaited>, + ); + + const integration = createCoolifyIntegration(); + await expect(integration.getVersionAsync()).rejects.toThrow(); + }); + }); + + describe("listServersAsync", () => { + test("should return list of servers", async () => { + const servers: CoolifyServer[] = [ + { + id: 1, + uuid: "server-uuid-1", + name: "Production Server", + ip: "192.168.1.100", + is_reachable: true, + is_usable: true, + settings: { is_build_server: false }, + }, + { + id: 2, + uuid: "server-uuid-2", + name: "Build Server", + ip: "192.168.1.101", + is_reachable: true, + is_usable: true, + settings: { is_build_server: true }, + }, + ]; + + setupMockFetch({ + "/api/v1/servers": servers, + }); + + const integration = createCoolifyIntegration(); + const result = await integration.listServersAsync(); + + expect(result).toHaveLength(2); + expect(result[0]?.name).toBe("Production Server"); + expect(result[1]?.settings?.is_build_server).toBe(true); + }); + }); + + describe("listApplicationsAsync", () => { + test("should return list of applications", async () => { + const applications: CoolifyApplication[] = [ + { + id: 1, + uuid: "app-uuid-1", + name: "my-app", + fqdn: "https://myapp.example.com", + status: "running", + updated_at: "2024-01-01T00:00:00Z", + }, + { + id: 2, + uuid: "app-uuid-2", + name: "another-app", + fqdn: "https://another.example.com", + status: "stopped", + updated_at: "2024-01-01T00:00:00Z", + }, + ]; + + setupMockFetch({ + "/api/v1/applications": applications, + }); + + const integration = createCoolifyIntegration(); + const result = await integration.listApplicationsAsync(); + + expect(result).toHaveLength(2); + expect(result[0]?.status).toBe("running"); + expect(result[1]?.status).toBe("stopped"); + }); + }); + + describe("listServicesAsync", () => { + test("should return list of services", async () => { + const services: CoolifyService[] = [ + { + id: 1, + uuid: "service-uuid-1", + name: "postgresql", + updated_at: "2024-01-01T00:00:00Z", + }, + ]; + + setupMockFetch({ + "/api/v1/services": services, + }); + + const integration = createCoolifyIntegration(); + const result = await integration.listServicesAsync(); + + expect(result).toHaveLength(1); + expect(result[0]?.name).toBe("postgresql"); + }); + }); + + describe("listProjectsAsync", () => { + test("should return list of projects", async () => { + const projects: CoolifyProject[] = [ + { + id: 1, + uuid: "proj-uuid-1", + name: "Production", + }, + ]; + + setupMockFetch({ + "/api/v1/projects": projects, + }); + + const integration = createCoolifyIntegration(); + const result = await integration.listProjectsAsync(); + + expect(result).toHaveLength(1); + expect(result[0]?.name).toBe("Production"); + }); + }); + + describe("getInstanceInfoAsync", () => { + test("should aggregate all instance data with project context", async () => { + const projectWithEnvs: CoolifyProjectWithEnvironments = { + id: 1, + uuid: "proj-uuid-1", + name: "Production", + environments: [ + { + id: 1, + uuid: "env-uuid-1", + name: "production", + project_id: 1, + }, + ], + }; + + setupMockFetch({ + "/api/v1/version": "4.0.0-beta.460", + "/api/v1/applications": [ + { + id: 1, + uuid: "app-uuid-1", + name: "my-app", + status: "running", + environment_id: 1, + updated_at: "2024-01-01T00:00:00Z", + }, + ], + "/api/v1/services": [ + { + id: 1, + uuid: "service-uuid-1", + name: "postgres", + environment_id: 1, + updated_at: "2024-01-01T00:00:00Z", + }, + ], + "/api/v1/projects": [ + { + id: 1, + uuid: "proj-uuid-1", + name: "Production", + }, + ], + "/api/v1/servers": [ + { + id: 1, + uuid: "server-uuid-1", + name: "Server 1", + ip: "192.168.1.1", + is_reachable: true, + is_usable: true, + settings: { is_build_server: false }, + }, + ], + "/api/v1/projects/proj-uuid-1": projectWithEnvs, + }); + + const integration = createCoolifyIntegration(); + const result = await integration.getInstanceInfoAsync(); + + expect(result.version).toBe("4.0.0-beta.460"); + expect(result.applications).toHaveLength(1); + expect(result.services).toHaveLength(1); + expect(result.servers).toHaveLength(1); + expect(result.applications[0]?.projectName).toBe("Production"); + expect(result.applications[0]?.environmentName).toBe("production"); + }); + }); + + describe("getHealthcheckAsync", () => { + test("should return healthcheck status", async () => { + setupMockFetch({ + "/api/v1/healthcheck": { status: "healthy" }, + }); + + const integration = createCoolifyIntegration(); + const result = await integration.getHealthcheckAsync(); + + expect(result.status).toBe("healthy"); + }); + }); + + describe("getApplicationByUuidAsync", () => { + test("should return application details by UUID", async () => { + const application: CoolifyApplication = { + id: 1, + uuid: "app-uuid-1", + name: "my-app", + fqdn: "https://app.example.com", + status: "running", + updated_at: "2024-01-01T00:00:00Z", + }; + + setupMockFetch({ + "/api/v1/applications/app-uuid-1": application, + }); + + const integration = createCoolifyIntegration(); + const result = await integration.getApplicationByUuidAsync("app-uuid-1"); + + expect(result.uuid).toBe("app-uuid-1"); + expect(result.name).toBe("my-app"); + }); + }); +}); diff --git a/packages/integrations/src/dashdot/dashdot-integration.ts b/packages/integrations/src/dashdot/dashdot-integration.ts index 2efb47c16..3c835a302 100644 --- a/packages/integrations/src/dashdot/dashdot-integration.ts +++ b/packages/integrations/src/dashdot/dashdot-integration.ts @@ -33,6 +33,7 @@ export class DashDotIntegration extends Integration implements ISystemHealthMoni const memoryLoad = await this.getCurrentMemoryLoadAsync(); const storageLoad = await this.getCurrentStorageLoadAsync(); const networkLoad = await this.getCurrentNetworkLoadAsync(); + const gpuLoad = await this.getCurrentGpuLoadAsync(); const channel = this.getChannel(); const history = await channel.getSliceUntilTimeAsync(dayjs().subtract(15, "minutes").toDate()); @@ -55,7 +56,15 @@ export class DashDotIntegration extends Integration implements ISystemHealthMoni cpuTemp: cpuLoad.averageTemperature, availablePkgUpdates: 0, rebootRequired: false, - smart: [], + smart: [], // API endpoint does not provide S.M.A.R.T data. + gpu: gpuLoad.map((gpu, index) => ({ + gpuId: `gpu-${index}`, + name: info.gpuNames[index] ?? `GPU ${index}`, + memoryUtilization: gpu.memory ?? 0, + processorUtilization: gpu.load ?? 0, + temperature: null, + fanSpeed: null, + })), uptime: info.uptime, version: `${info.operatingSystemVersion}`, loadAverage: { @@ -76,6 +85,7 @@ export class DashDotIntegration extends Integration implements ISystemHealthMoni cpuModel: serverInfo.cpu.model, operatingSystemVersion: `${serverInfo.os.distro} ${serverInfo.os.release} (${serverInfo.os.kernel})`, uptime: serverInfo.os.uptime, + gpuNames: serverInfo.gpu.layout.map((gpu) => gpu.brand), }; } @@ -150,6 +160,17 @@ export class DashDotIntegration extends Integration implements ISystemHealthMoni return await networkLoadApi.parseAsync(JSON.parse(result)); } + private async getCurrentGpuLoadAsync() { + try { + const response = await fetchWithTrustedCertificatesAsync(this.url("/load/gpu")); + const result = await response.json(); + const data = await gpuLoadApi.parseAsync(result); + return data.layout; + } catch { + return []; + } + } + private getChannel() { return createChannelEventHistoryOld>( `integration:${this.integration.id}:history:cpu`, @@ -198,6 +219,25 @@ const internalServerInfoApi = z.object({ ), }), ), + gpu: z.object({ + layout: z + .array( + z.object({ + brand: z.string(), + model: z.string().optional(), + }), + ) + .default([]), + }), }); const cpuLoadPerCoreApiList = z.array(cpuLoadPerCoreApi); + +const gpuLoadApi = z.object({ + layout: z.array( + z.object({ + load: z.number().min(0).optional(), + memory: z.number().min(0).optional(), + }), + ), +}); diff --git a/packages/integrations/src/download-client/qbittorrent/qbittorrent-integration.ts b/packages/integrations/src/download-client/qbittorrent/qbittorrent-integration.ts index 1076bca5e..a142fb1a3 100644 --- a/packages/integrations/src/download-client/qbittorrent/qbittorrent-integration.ts +++ b/packages/integrations/src/download-client/qbittorrent/qbittorrent-integration.ts @@ -90,10 +90,18 @@ export class QBitTorrentIntegration extends Integration implements IDownloadClie } private async getClientAsync(dispatcher?: Dispatcher) { + const credentials = this.hasSecretValue("apiKey") + ? { + apiKey: this.getSecretValue("apiKey"), + } + : { + username: this.getSecretValue("username"), + password: this.getSecretValue("password"), + }; + return new QBittorrent({ + ...credentials, baseUrl: this.url("/").toString(), - username: this.getSecretValue("username"), - password: this.getSecretValue("password"), dispatcher: dispatcher ?? (await createCertificateAgentAsync()), }); } diff --git a/packages/integrations/src/download-client/slskd/slskd-integration.ts b/packages/integrations/src/download-client/slskd/slskd-integration.ts new file mode 100644 index 000000000..91c7b55ff --- /dev/null +++ b/packages/integrations/src/download-client/slskd/slskd-integration.ts @@ -0,0 +1,244 @@ +import dayjs from "dayjs"; +import type { RequestInit } from "undici"; + +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; + +import type { IntegrationTestingInput } from "../../base/integration"; +import { Integration } from "../../base/integration"; +import { TestConnectionError } from "../../base/test-connection/test-connection-error"; +import type { TestingResult } from "../../base/test-connection/test-connection-service"; +import type { DownloadClientJobsAndStatus } from "../../interfaces/downloads/download-client-data"; +import type { IDownloadClientIntegration } from "../../interfaces/downloads/download-client-integration"; +import type { DownloadClientItem } from "../../interfaces/downloads/download-client-items"; + +interface SlskdUserAndDownloads { + directories: { + files: { + id: string; + filename: string; + size: number; + percentComplete: number; + averageSpeed: number; + /** + * Time in hh:mm:ss format. + * Optional, undefined when aborted or errored. + */ + remainingTime?: string; + + /** + * A bit-wise combination of the state enums. + */ + state: string; + + /** + * ISO date when the file was requested at. + * "enqueued" and "started" are different things. + */ + requestedAt: string; + }[]; + }[]; +} + +const logger = createLogger({ module: "slskd-integration" }); + +/** + * Implementation of the Slskd application for Soulseek https://github.com/slskd/slskd + * Slskd integration cannot pause or stop downloads, it can only list downloads. + */ +export class SlskdIntegration extends Integration implements IDownloadClientIntegration { + // eslint-disable-next-line no-restricted-syntax + public pauseQueueAsync(): Promise { + return Promise.resolve(); + } + + // eslint-disable-next-line no-restricted-syntax + public pauseItemAsync(_: DownloadClientItem): Promise { + return Promise.resolve(); + } + + // eslint-disable-next-line no-restricted-syntax + public resumeQueueAsync(): Promise { + return Promise.resolve(); + } + + // eslint-disable-next-line no-restricted-syntax + public resumeItemAsync(_: DownloadClientItem): Promise { + return Promise.resolve(); + } + + // eslint-disable-next-line no-restricted-syntax,id-length + public deleteItemAsync(_: DownloadClientItem, _2: boolean): Promise { + return Promise.resolve(); + } + + protected async testingAsync(input: IntegrationTestingInput): Promise { + const response = await input.fetchAsync(this.url("/api/v0/server"), { + headers: { + "X-API-Key": this.getSecretValue("apiKey"), + }, + }); + + if (!response.ok) { + return TestConnectionError.StatusResult({ + status: response.status, + url: response.url, + }); + } + + await response.json(); + + return { + success: true, + }; + } + + public async getClientJobsAndStatusAsync(input: { limit: number }): Promise { + const downloads = await this.getDownloadsAsync(); + const flatFiles = downloads.flatMap((user) => user.directories).flatMap((directory) => directory.files); + + return { + status: { + paused: false, // slskd cannot be paused + rates: { + down: flatFiles.reduce((acc, file) => acc + file.averageSpeed, 0), + up: 0, // slskd does not upload except sharing which isn't what we want to show in downloads + }, + types: ["miscellaneous"], + }, + items: flatFiles.slice(0, input.limit).map((file, index) => { + const remainingTimeParts = file.remainingTime ? file.remainingTime.split(":") : null; + // The file name returned from API includes the full remote path, which is not relevant for Homarr. + // We remove everything before the last slash to beautify the file name. + const actualFileName = file.filename.split("\\").at(-1); + + return { + id: file.id, + name: actualFileName ?? file.filename, + size: file.size, + time: remainingTimeParts + ? dayjs + .duration({ + hours: Number(remainingTimeParts[0]), + minutes: Number(remainingTimeParts[1]), + seconds: Number(remainingTimeParts[2]), + }) + .as("milliseconds") + : 0, + progress: file.percentComplete / 100, + type: "miscellaneous", + state: this.getDownloadState(file), + added: dayjs(file.requestedAt).unix() * 1000, + index, + }; + }), + }; + } + + private async getDownloadsAsync(): Promise { + const response = await this.makeRequestAsync("/api/v0/transfers/downloads", { method: "GET" }); + return response as SlskdUserAndDownloads[]; + } + + private async makeRequestAsync( + path: `/${string}`, + options: RequestInit & { timeout?: number } = {}, + ): Promise { + const response = await fetchWithTrustedCertificatesAsync(this.url(path), { + ...options, + headers: { + "X-API-Key": this.getSecretValue("apiKey"), + }, + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + const contentType = response.headers.get("content-type"); + if (contentType?.includes("application/json")) { + return response.json(); + } + + return response.text(); + } + + private getDownloadState( + item: SlskdUserAndDownloads["directories"][number]["files"][number], + ): DownloadClientItem["state"] { + try { + const mappedStates = parseTransferStateArray(item.state); + + if (mappedStates.includes(TransferState.InProgress)) { + return "downloading"; + } + + if ( + mappedStates.includes(TransferState.Errored) || + mappedStates.includes(TransferState.Aborted) || + mappedStates.includes(TransferState.TimedOut) || + mappedStates.includes(TransferState.Rejected) || + mappedStates.includes(TransferState.Cancelled) + ) { + return "failed"; + } + + if (mappedStates.includes(TransferState.Queued) || mappedStates.includes(TransferState.Initializing)) { + return "processing"; + } + + // "completed" must come last, since above enums are bit-wise combined even if they failed + if (mappedStates.includes(TransferState.Completed) || mappedStates.includes(TransferState.Succeeded)) { + return "completed"; + } + + logger.warn( + `Unable to map the SLSKD transfer state enum '${mappedStates.join(",")}'. Will fall back to 'unknown'`, + ); + + return "unknown"; + } catch (error) { + logger.error( + new ErrorWithMetadata( + `Unable to map the SLSKD transfer states '${item.state}' due to an exception in the translation. Will fall back to 'unknown'. This is likely a bug.`, + undefined, + { + cause: error, + }, + ), + ); + return "unknown"; + } + } +} + +/** + * Copy of the transfer states of SLSKD, copied from the following file: + * https://github.com/slskd/slskd/blob/86dc6072a28876abfdeb1f5dbb7dfc99ea8e1805/src/slskd/Core/Data/Migrations/Z04012025_TransferStateMigration.cs#L217-L234 + */ +export enum TransferState { + None, + Requested, + Queued, + Initializing, + InProgress, + Completed, + Succeeded, + Cancelled, + TimedOut, + Errored, + Rejected, + Aborted, +} + +export function parseTransferStateArray(csv: string, separator = ","): TransferState[] { + const parts = csv + .split(separator) + .map((part) => part.trim()) + .filter(Boolean); + + // @ts-expect-error use string to index + return parts.map((part) => TransferState[part] as TransferState); +} diff --git a/packages/integrations/src/glances/glances-integration.ts b/packages/integrations/src/glances/glances-integration.ts new file mode 100644 index 000000000..7b6ae3b79 --- /dev/null +++ b/packages/integrations/src/glances/glances-integration.ts @@ -0,0 +1,173 @@ +import dayjs from "dayjs"; +import { z } from "zod/v4"; + +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; + +import type { IntegrationInput, IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import type { SessionStore } from "../base/session-store"; +import { createSessionStore } from "../base/session-store"; +import { TestConnectionError } from "../base/test-connection/test-connection-error"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; +import type { ISystemHealthMonitoringIntegration } from "../interfaces/health-monitoring/health-monitoring-integration"; +import type { SystemHealthMonitoring } from "../types"; + +export class GlancesIntegration extends Integration implements ISystemHealthMonitoringIntegration { + private readonly sessionStore: SessionStore<{ version: string }>; + + constructor(integration: IntegrationInput) { + super(integration); + this.sessionStore = createSessionStore(integration); + } + + public async getSystemInfoAsync(): Promise { + let session = await this.sessionStore.getAsync(); + + if (session == null) { + await this.sessionStore.setAsync({ + version: await this.getGlancesVersionAsync(), + }); + + // update the store to re-use the values below. + session = await this.sessionStore.getAsync(); + } + + if (session == null) throw new Error("Session was unexpectitly null"); + + const stats = await this.getAllStatsAsync(); + + return { + cpuUtilization: stats.cpu.total, + memUsedInBytes: stats.mem.used, + memAvailableInBytes: stats.mem.total - stats.mem.used, + network: { + down: stats.network.reduce((acc, net) => net.bytes_recv_rate_per_sec + acc, 0), + up: stats.network.reduce((acc, net) => net.bytes_sent_rate_per_sec + acc, 0), + }, + availablePkgUpdates: 0, + version: session.version, + fileSystem: stats.fs.map((fileSystem) => ({ + deviceName: fileSystem.device_name, + used: `${fileSystem.used}`, + available: `${fileSystem.free}`, + percentage: fileSystem.percent, + })), + uptime: stats.uptime.as("seconds"), + rebootRequired: false, + cpuModelName: stats.quicklook.cpu_name, + loadAverage: null, + smart: [], + cpuTemp: undefined, + gpu: stats.gpu.map((gpu) => ({ + gpuId: gpu.gpu_id, + name: gpu.name, + memoryUtilization: gpu.mem ?? 0, + processorUtilization: gpu.proc ?? 0, + temperature: gpu.temperature ?? null, + fanSpeed: gpu.fan_speed ?? null, + })), + }; + } + + private async getGlancesVersionAsync() { + const response = await fetchWithTrustedCertificatesAsync(this.url("/api/4/version")); + + if (!response.ok) { + throw new ResponseError(response); + } + + return await response.text(); + } + + private async getAllStatsAsync() { + const response = await fetchWithTrustedCertificatesAsync(this.url("/api/4/all")); + + if (!response.ok) { + throw new ResponseError(response); + } + + return allSchema.parseAsync(await response.json()); + } + + protected async testingAsync(_: IntegrationTestingInput): Promise { + const response = await fetchWithTrustedCertificatesAsync(this.url("/api/4/status"), { + headers: { "User-Agent": "Homarr" }, + }); + + if (!response.ok) { + return TestConnectionError.StatusResult(response); + } + + return { success: true }; + } +} + +// Glances is written in python and uses the following code to format uptime: +// from datetime import datetime +// uptime = datetime.now() - datetime.fromtimestamp(1773395580) +// str(uptime).split(".")[0] +// This results in one of the following formats: +// - 71 days, 9:51:35 +// - 1 day, 9:50:23 +// - 9:51:24 +// - 0:22:02 +// - 0:00:17 +// See https://github.com/nicolargo/glances/blob/4139b10c5c3a98afc67a19ae67d66d2d94d7db6a/glances/plugins/uptime/__init__.py#L58 +const regex = /^(?:(?\d+) days?, )?(?\d+):(?\d+):(?\d+)$/m; + +const allSchema = z.object({ + cpu: z.object({ + total: z.number().min(0).max(100), + }), + mem: z.object({ + total: z.number().min(0), + used: z.number().min(0), + free: z.number().min(0), + }), + network: z.array( + z.object({ + bytes_sent_rate_per_sec: z.number().min(0), + bytes_recv_rate_per_sec: z.number().min(0), + }), + ), + fs: z.array( + z.object({ + device_name: z.string(), + used: z.number().min(0), + free: z.number().min(0), + percent: z.number().min(0).max(100), + }), + ), + uptime: z + .string() + .regex(new RegExp(regex)) + .transform((uptime) => { + const match = regex.exec(uptime); + if (!match?.groups) { + throw new Error(`Unable to parse uptime value '${uptime}' with regex.`); + } + + const days = "days" in match.groups ? Number(match.groups.days) : undefined; + const hours = "hours" in match.groups ? Number(match.groups.hours) : undefined; + const minutes = "minutes" in match.groups ? Number(match.groups.minutes) : undefined; + const seconds = "seconds" in match.groups ? Number(match.groups.seconds) : undefined; + + return dayjs.duration({ days, hours, minutes, seconds }); + }), + quicklook: z.object({ + cpu_name: z.string(), + }), + gpu: z + .array( + z.object({ + gpu_id: z.string(), + name: z.string(), + mem: z.number().nullable().optional(), + proc: z.number().nullable().optional(), + temperature: z.number().nullable().optional(), + fan_speed: z.number().nullable().optional(), + }), + ) + .default([]), +}); diff --git a/packages/integrations/src/immich/immich-integration.ts b/packages/integrations/src/immich/immich-integration.ts new file mode 100644 index 000000000..9e13ff953 --- /dev/null +++ b/packages/integrations/src/immich/immich-integration.ts @@ -0,0 +1,122 @@ +import { getAlbumInfo, getAllAlbums, getMyUser, getServerStatistics, init, searchUsers } from "@immich/sdk"; + +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ImageProxy } from "@homarr/image-proxy"; + +import type { IntegrationInput, IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; + +export interface ImmichServerStats { + userCount: number; + photoCount: number; + videoCount: number; + totalLibraryUsageInBytes: number; +} + +export interface ImmichAlbum { + id: string; + albumName: string; + assets: ImmichAsset[]; +} + +export interface ImmichAsset { + id: string; + deviceAssetId: string; + originalPath: string; + thumbhash: string | null; + fileModifiedAt: string; + fileCreatedAt: string; + updatedAt: string; + type: "IMAGE" | "VIDEO" | "AUDIO" | "OTHER"; + publicLink: string; +} + +const logger = createLogger({ module: "immich-integration" }); + +export class ImmichIntegration extends Integration { + constructor(integration: IntegrationInput) { + super(integration); + } + + public async getServerStatsAsync(): Promise { + this.initClient(); + const [statistics, users] = await Promise.all([ + getServerStatistics(this.getRequestOptions()), + searchUsers(this.getRequestOptions()), + ]); + return { + photoCount: statistics.photos, + userCount: users.length, + totalLibraryUsageInBytes: statistics.usage, + videoCount: statistics.videos, + }; + } + + public async getAlbumAsync(albumId: string): Promise { + this.initClient(); + const album = await getAlbumInfo({ id: albumId }, this.getRequestOptions()); + const imageProxy = new ImageProxy(); + return { + albumName: album.albumName, + assets: await Promise.all( + album.assets.map(async (asset) => { + const publicLink = await imageProxy.createImageAsync( + this.url(`/api/assets/${asset.id}/original`).toString(), + { + "x-api-key": this.getSecretValue("apiKey"), + }, + ); + return { + id: asset.id, + type: asset.type, + deviceAssetId: asset.deviceAssetId, + thumbhash: asset.thumbhash, + fileCreatedAt: asset.fileCreatedAt, + fileModifiedAt: asset.fileModifiedAt, + originalPath: asset.originalPath, + updatedAt: asset.updatedAt, + publicLink, + }; + }), + ), + id: album.id, + }; + } + + public async getAlbumsAsync(): Promise< + { + id: string; + albumName: string; + assetCount: number; + }[] + > { + this.initClient(); + const albums = await getAllAlbums({}, this.getRequestOptions()); + return albums.map((album) => ({ id: album.id, albumName: album.albumName, assetCount: album.assetCount })); + } + + protected async testingAsync(input: IntegrationTestingInput): Promise { + this.initClient(); + const user = await getMyUser(this.getRequestOptions(input.fetchAsync)); + logger.debug(`Logged in as ${user.name} (${user.id})`); + return { success: true }; + } + + private getRequestOptions(fetchAsync = fetchWithTrustedCertificatesAsync) { + return { + // Undici and node types are not the same + fetch: fetchAsync as unknown as typeof fetch, + }; + } + + /** + * Sets the credentials and prepares the client for calls. + * Must be called before any other functions. + * @private + */ + private initClient() { + init({ baseUrl: this.url("/api").toString(), apiKey: this.getSecretValue("apiKey") }); + } +} diff --git a/packages/integrations/src/index.ts b/packages/integrations/src/index.ts index 45a37e476..c7451265c 100644 --- a/packages/integrations/src/index.ts +++ b/packages/integrations/src/index.ts @@ -1,10 +1,12 @@ // General integrations export { AdGuardHomeIntegration } from "./adguard-home/adguard-home-integration"; +export { AnchorIntegration } from "./anchor/anchor-integration"; export { Aria2Integration } from "./download-client/aria2/aria2-integration"; export { DelugeIntegration } from "./download-client/deluge/deluge-integration"; export { NzbGetIntegration } from "./download-client/nzbget/nzbget-integration"; export { QBitTorrentIntegration } from "./download-client/qbittorrent/qbittorrent-integration"; export { SabnzbdIntegration } from "./download-client/sabnzbd/sabnzbd-integration"; +export { SlskdIntegration } from "./download-client/slskd/slskd-integration"; export { TransmissionIntegration } from "./download-client/transmission/transmission-integration"; export { HomeAssistantIntegration } from "./homeassistant/homeassistant-integration"; export { JellyfinIntegration } from "./jellyfin/jellyfin-integration"; @@ -16,7 +18,9 @@ export { SonarrIntegration } from "./media-organizer/sonarr/sonarr-integration"; export { NextcloudIntegration } from "./nextcloud/nextcloud.integration"; export { NTFYIntegration } from "./ntfy/ntfy-integration"; export { OpenMediaVaultIntegration } from "./openmediavault/openmediavault-integration"; +export { GlancesIntegration } from "./glances/glances-integration"; export { OverseerrIntegration } from "./overseerr/overseerr-integration"; +export { SeerrIntegration } from "./seerr/seerr-integration"; export { PiHoleIntegrationV5 } from "./pi-hole/v5/pi-hole-integration-v5"; export { PiHoleIntegrationV6 } from "./pi-hole/v6/pi-hole-integration-v6"; export { PlexIntegration } from "./plex/plex-integration"; @@ -25,6 +29,11 @@ export { TrueNasIntegration } from "./truenas/truenas-integration"; export { UnraidIntegration } from "./unraid/unraid-integration"; export { OPNsenseIntegration } from "./opnsense/opnsense-integration"; export { ICalIntegration } from "./ical/ical-integration"; +export { CoolifyIntegration } from "./coolify/coolify-integration"; +export { ImmichIntegration } from "./immich/immich-integration"; +export { TracearrIntegration } from "./tracearr/tracearr-integration"; +export { SpeedtestTrackerIntegration } from "./speedtest-tracker/speedtest-tracker-integration"; +export { UmamiIntegration } from "./umami/umami-integration"; // Types export type { IntegrationInput } from "./base/integration"; @@ -50,8 +59,21 @@ export type { } from "./interfaces/media-transcoding/media-transcoding-types"; export type { ReleasesRepository, ReleaseResponse } from "./interfaces/releases-providers/releases-providers-types"; export type { Notification } from "./interfaces/notifications/notification-types"; +export type { ImmichServerStats, ImmichAlbum, ImmichAsset } from "./immich/immich-integration"; +export type { + AnchorNote, + AnchorNotePermission, + AnchorNoteUpdateInput, + AnchorNotesListInput, + AnchorNoteSummary, +} from "./anchor/anchor-types"; +export type { TracearrDashboardData } from "./tracearr/tracearr-types"; +export type { SpeedtestTrackerDashboardData } from "./speedtest-tracker/speedtest-tracker-types"; +export type { UmamiVisitorStats } from "./umami/umami-types"; // Schemas +export { anchorNotesListInputSchema } from "./anchor/anchor-types"; +export { anchorNoteUpdateInputSchema } from "./anchor/anchor-types"; export { downloadClientItemSchema } from "./interfaces/downloads/download-client-items"; // Helpers diff --git a/packages/integrations/src/interfaces/health-monitoring/health-monitoring-types.ts b/packages/integrations/src/interfaces/health-monitoring/health-monitoring-types.ts index 49d659fe1..731f1c577 100644 --- a/packages/integrations/src/interfaces/health-monitoring/health-monitoring-types.ts +++ b/packages/integrations/src/interfaces/health-monitoring/health-monitoring-types.ts @@ -29,6 +29,15 @@ export interface SystemHealthMonitoring { deviceName: string; temperature: number | null; overallStatus: string; + healthy: boolean; + }[]; + gpu: { + gpuId: string; + name: string; + memoryUtilization: number; + processorUtilization: number; + temperature: number | null; + fanSpeed: number | null; }[]; } diff --git a/packages/integrations/src/interfaces/timetable/timetable-integration.ts b/packages/integrations/src/interfaces/timetable/timetable-integration.ts new file mode 100644 index 000000000..74e9d3c02 --- /dev/null +++ b/packages/integrations/src/interfaces/timetable/timetable-integration.ts @@ -0,0 +1,6 @@ +import type { Station, Timetable, TimetableOptions } from "./timetable-types"; + +export interface TimetableIntegration { + searchStationsAsync(query: string): Promise; + getTimetableAsync(options: TimetableOptions): Promise; +} diff --git a/packages/integrations/src/interfaces/timetable/timetable-types.ts b/packages/integrations/src/interfaces/timetable/timetable-types.ts new file mode 100644 index 000000000..72350b5a3 --- /dev/null +++ b/packages/integrations/src/interfaces/timetable/timetable-types.ts @@ -0,0 +1,33 @@ +import z from "zod"; + +export interface Station { + id: string; + name: string; +} + +export const timetableOptionsSchema = z.object({ + stationId: z.string(), + limit: z.number().default(10), +}); + +export type TimetableOptions = z.infer; + +export interface TimetableEntry { + timestamp: Date; + delay: number; + line: { + name: string; + color: string | null; + } | null; + location: string; + platform: { + name: string; + hasChanged: boolean; + } | null; +} + +export interface Timetable { + stationId: string; + timestamp: Date; + entries: TimetableEntry[]; +} diff --git a/packages/integrations/src/mock/data/system-health-monitoring.ts b/packages/integrations/src/mock/data/system-health-monitoring.ts index ebc2ca010..e209ff8c7 100644 --- a/packages/integrations/src/mock/data/system-health-monitoring.ts +++ b/packages/integrations/src/mock/data/system-health-monitoring.ts @@ -33,6 +33,17 @@ export class SystemHealthMonitoringMockService implements ISystemHealthMonitorin deviceName: "Mock Device", temperature: Math.floor(Math.random() * 100), // Random temperature between 0 and 99 overallStatus: "OK", + healthy: true, + }, + ], + gpu: [ + { + gpuId: "mock0", + name: "Mock GPU RTX 4090", + memoryUtilization: Math.floor(Math.random() * 100), + processorUtilization: Math.floor(Math.random() * 100), + temperature: Math.floor(Math.random() * 90), + fanSpeed: Math.floor(Math.random() * 2000), }, ], }); diff --git a/packages/integrations/src/nextcloud/nextcloud.integration.ts b/packages/integrations/src/nextcloud/nextcloud.integration.ts index aa57f480f..f14bd11d7 100644 --- a/packages/integrations/src/nextcloud/nextcloud.integration.ts +++ b/packages/integrations/src/nextcloud/nextcloud.integration.ts @@ -2,11 +2,14 @@ import type { Agent } from "https"; import dayjs from "dayjs"; import timezone from "dayjs/plugin/timezone"; import utc from "dayjs/plugin/utc"; +import ICAL from "ical.js"; import type { RequestInit as NodeFetchRequestInit } from "node-fetch"; -import * as ical from "node-ical"; +import { tzlib_get_ical_block, tzlib_get_timezones } from "timezones-ical-library"; import { DAVClient } from "tsdav"; +import { z } from "zod"; -import { createHttpsAgentAsync } from "@homarr/core/infrastructure/http"; +import { ResponseError } from "@homarr/common/server"; +import { createHttpsAgentAsync, fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; import { createLogger } from "@homarr/core/infrastructure/logs"; import { HandleIntegrationErrors } from "../base/errors/decorator"; @@ -16,6 +19,35 @@ import { Integration } from "../base/integration"; import type { TestingResult } from "../base/test-connection/test-connection-service"; import type { ICalendarIntegration } from "../interfaces/calendar/calendar-integration"; import type { CalendarEvent } from "../interfaces/calendar/calendar-types"; +import type { Notification } from "../interfaces/notifications/notification-types"; +import type { INotificationsIntegration } from "../interfaces/notifications/notifications-integration"; + +// Register all existing timezones +if (ICAL.TimezoneService.count === 0) { + const timezones = tzlib_get_timezones() as string[]; + for (const tzid of timezones) { + ICAL.TimezoneService.register( + new ICAL.Timezone({ + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-non-null-assertion + component: new ICAL.Component(ICAL.parse((tzlib_get_ical_block(tzid) as string[])[0]!)), + tzid, + }), + ); + } +} + +const notificationSchema = z.object({ + ocs: z.object({ + data: z.array( + z.object({ + notification_id: z.number(), + datetime: z.string(), + subject: z.string(), + message: z.string(), + }), + ), + }), +}); const logger = createLogger({ module: "nextcloudIntegration" }); @@ -23,7 +55,7 @@ dayjs.extend(utc); dayjs.extend(timezone); @HandleIntegrationErrors([integrationTsdavHttpErrorHandler]) -export class NextcloudIntegration extends Integration implements ICalendarIntegration { +export class NextcloudIntegration extends Integration implements ICalendarIntegration, INotificationsIntegration { protected async testingAsync(input: IntegrationTestingInput): Promise { const client = await this.createCalendarClientAsync(await createHttpsAgentAsync(input.options)); await client.login(); @@ -51,42 +83,70 @@ export class NextcloudIntegration extends Integration implements ICalendarIntegr return calendarEvents .map((event) => { - // @ts-expect-error the typescript definitions for this package are wrong - // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access - const icalData = ical.default.parseICS(event.data) as ical.CalendarResponse; - const veventObject = Object.values(icalData).find((data) => data.type === "VEVENT"); - - if (!veventObject) { - throw new Error(`Invalid event data object: ${JSON.stringify(event.data)}. Unable to process the calendar.`); + if (typeof event.data !== "string") { + return []; } + const comp = ICAL.Component.fromString(event.data); + const veventComponent = comp.getFirstSubcomponent("vevent"); + + if (!veventComponent) { + return []; + } + + const veventObject = new ICAL.Event(veventComponent); logger.debug(`Converting VEVENT event to ${event.etag} from Nextcloud: ${JSON.stringify(veventObject)}`); const eventUrlWithoutHost = new URL(event.url).pathname; const eventSlug = Buffer.from(eventUrlWithoutHost).toString("base64url"); - const startDates = veventObject.rrule ? veventObject.rrule.between(start, end) : [veventObject.start]; + const durationMs = veventObject.duration.toSeconds() * 1000; - const durationMs = veventObject.end.getTime() - veventObject.start.getTime(); + // Handle recurring events + let startDates: Date[]; + if (veventObject.isRecurring()) { + const iterator = veventObject.iterator(); + startDates = []; + + // Iterate through occurrences within the time range + let next: ICAL.Time | undefined; + // next actually returns undefined when there are no more occurrences + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + while ((next = iterator.next())) { + const nextStartDate = next.isDate + ? next.toJSDate() + : next.convertToZone(ICAL.Timezone.utcTimezone).toJSDate(); + if (nextStartDate > end) break; + const nextEndDate = new Date(nextStartDate.getTime() + durationMs); + if (nextEndDate < start) continue; + + startDates.push(nextStartDate); + } + } else { + startDates = [ + veventObject.startDate.isDate + ? veventObject.startDate.toJSDate() + : veventObject.startDate.convertToZone(ICAL.Timezone.utcTimezone).toJSDate(), + ]; + } return startDates.map((startDate) => { - const timezoneOffsetMinutes = veventObject.rrule?.origOptions.tzid - ? dayjs(startDate).tz(veventObject.rrule.origOptions.tzid).utcOffset() - : 0; - const utcStartDate = new Date(startDate.getTime() - timezoneOffsetMinutes * 60 * 1000); - const endDate = new Date(utcStartDate.getTime() + durationMs); - const dateInMillis = utcStartDate.valueOf(); + const endDate = new Date(startDate.getTime() + durationMs); + const dateInMillis = startDate.valueOf(); + + // Get color property from the component + const colorProperty = veventComponent.getFirstProperty("color"); + const color = colorProperty?.getFirstValue() as string | undefined; return { title: veventObject.summary, subTitle: null, - description: veventObject.description, - startDate: utcStartDate, + description: veventObject.description || null, + startDate, endDate, image: null, location: veventObject.location || null, - indicatorColor: - "color" in veventObject && typeof veventObject.color === "string" ? veventObject.color : "#ff8600", + indicatorColor: color ?? "#ff8600", links: [ { href: this.externalUrl( @@ -104,6 +164,29 @@ export class NextcloudIntegration extends Integration implements ICalendarIntegr .flat(); } + public async getNotificationsAsync(): Promise { + const url = this.url("/ocs/v2.php/apps/notifications/api/v2/notifications", { format: "json" }); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: { + Authorization: `Basic ${Buffer.from( + `${this.getSecretValue("username")}:${this.getSecretValue("password")}`, + ).toString("base64")}`, + "OCS-APIRequest": "true", + }, + }); + + if (!response.ok) throw new ResponseError(response); + + const json = notificationSchema.parse(await response.json()); + + return json.ocs.data.map((notification) => ({ + id: String(notification.notification_id), + time: new Date(notification.datetime), + title: notification.subject, + body: notification.message, + })); + } + private async createCalendarClientAsync(agent?: Agent) { return new DAVClient({ serverUrl: this.integration.url, diff --git a/packages/integrations/src/openmediavault/openmediavault-integration.ts b/packages/integrations/src/openmediavault/openmediavault-integration.ts index 128e68a43..382f211e6 100644 --- a/packages/integrations/src/openmediavault/openmediavault-integration.ts +++ b/packages/integrations/src/openmediavault/openmediavault-integration.ts @@ -62,6 +62,8 @@ export class OpenMediaVaultIntegration extends Integration implements ISystemHea const smart = smartResult.data.response.map((smart) => ({ deviceName: smart.devicename, temperature: smart.temperature, + // https://github.com/openmediavault/openmediavault/blob/2eb871d05cec6ff49603134d3acead561da01e4d/deb/openmediavault/usr/share/php/openmediavault/system/storage/smartinformation.inc#L592-L605 + healthy: smart.overallstatus === "GOOD", overallStatus: smart.overallstatus, })); @@ -84,6 +86,7 @@ export class OpenMediaVaultIntegration extends Integration implements ISystemHea cpuTemp: cpuTempResult.success ? cpuTempResult.data.response.cputemp : undefined, fileSystem, smart, + gpu: [], // OpenMediaVault does not expose GPU monitoring via its RPC API. }; } diff --git a/packages/integrations/src/overseerr/overseerr-integration.ts b/packages/integrations/src/overseerr/overseerr-integration.ts index 042f2faab..619af2541 100644 --- a/packages/integrations/src/overseerr/overseerr-integration.ts +++ b/packages/integrations/src/overseerr/overseerr-integration.ts @@ -115,9 +115,8 @@ export class OverseerrIntegration } public async getRequestsAsync(): Promise { - //Ensure to get all pending request first const pendingRequests = await fetchWithTrustedCertificatesAsync( - this.url("/api/v1/request", { take: -1, filter: "pending" }), + this.url("/api/v1/request", { take: 20, filter: "pending" }), { headers: { "X-Api-Key": this.getSecretValue("apiKey"), @@ -125,7 +124,6 @@ export class OverseerrIntegration }, ); - //Change 20 to integration setting (set to -1 for all) const allRequests = await fetchWithTrustedCertificatesAsync(this.url("/api/v1/request", { take: 20 }), { headers: { "X-Api-Key": this.getSecretValue("apiKey"), @@ -223,7 +221,7 @@ export class OverseerrIntegration } public async getUsersAsync(): Promise { - const response = await fetchWithTrustedCertificatesAsync(this.url("/api/v1/user", { take: -1 }), { + const response = await fetchWithTrustedCertificatesAsync(this.url("/api/v1/user", { take: 10, sort: "requests" }), { headers: { "X-Api-Key": this.getSecretValue("apiKey"), }, diff --git a/packages/integrations/src/search-ch/search-ch-integration.ts b/packages/integrations/src/search-ch/search-ch-integration.ts new file mode 100644 index 000000000..cbaf8e80d --- /dev/null +++ b/packages/integrations/src/search-ch/search-ch-integration.ts @@ -0,0 +1,141 @@ +import z from "zod"; + +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; + +import type { IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import { TestConnectionError } from "../base/test-connection/test-connection-error"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; +import type { TimetableIntegration } from "../interfaces/timetable/timetable-integration"; +import type { Station, Timetable, TimetableOptions } from "../interfaces/timetable/timetable-types"; + +const supportedStationTypes = ["bus", "tram", "train", "ship", "cablecar", "funicular", "chairlift"]; + +export class SearchChIntegration extends Integration implements TimetableIntegration { + protected async testingAsync(input: IntegrationTestingInput): Promise { + const response = await input.fetchAsync(this.url("/timetable/api/completion.json", { term: "Zürich" })); + + if (!response.ok) { + return TestConnectionError.StatusResult(response); + } + + return { + success: true, + }; + } + + /** + * Searches for stations matching the given query. + * @param query The search query for station names. + * @returns A list of stations matching the search query. + * @docs https://search.ch/fahrplan/api/help + */ + public async searchStationsAsync(query: string): Promise { + const response = await fetchWithTrustedCertificatesAsync( + this.url("/timetable/api/completion.json", { + term: query, + show_ids: 1, + nofavorites: 1, + }), + ); + + if (!response.ok) { + throw new ResponseError(response); + } + + const data = await searchSchema.parseAsync(await response.json()); + + return ( + data + // Remove completions like addresses, we only want stations. + .filter((item) => supportedStationTypes.some((type) => item.iconclass.endsWith(type))) + .map((item) => (item.id !== undefined ? { id: item.id, name: item.label } : null)) + .filter((item) => item !== null) + ); + } + + /** + * Gets the departure timetable for a given station. + * @param options Timetable options including station ID and limit. + * @returns timetable for the given station. + * @docs https://search.ch/fahrplan/api/help + */ + public async getTimetableAsync(options: TimetableOptions): Promise { + const now = new Date(); + // The following format is used [01.01.2000, 23:59:00]. The API allows usage of DD.MM.YYYY format and HH:mm format + const [date, time] = now.toLocaleString("en-CH", { timeZone: "Europe/Zurich" }).split(", ") as [string, string]; + + const response = await fetchWithTrustedCertificatesAsync( + this.url("/timetable/api/stationboard.json", { + stop: options.stationId, + limit: options.limit, + show_delays: 1, + show_tracks: 1, + date, + time: time.substring(0, 5), // Only keep the HH:mm part of the time, as that's what the API expects + }), + ); + + if (!response.ok) { + throw new ResponseError(response); + } + + const data = await timetableSchema.parseAsync(await response.json()); + + return { + stationId: options.stationId, + timestamp: now, + entries: data.connections.map((connection) => { + // Color is in format A35~F10~ for foreground and background color. Some only have ~~ and therefore no color + const color = connection.color.split("~")[0]; + + return { + timestamp: connection.time, + line: connection.line + ? { + name: connection.line, + color: color && color.length >= 1 ? `#${color}` : null, + } + : null, + location: connection.terminal.name, + delay: connection.dep_delay, + platform: connection.track + ? { + // If the track name contains "!", it indicates a change in the track + // so we remove the "!" from the name and set hasChanged to true + name: connection.track.replace("!", ""), + hasChanged: connection.track.includes("!"), + } + : null, + }; + }), + }; + } +} + +const timetableSchema = z.object({ + connections: z.array( + z.object({ + time: z.string().transform((str) => new Date(str)), + line: z.string().optional(), + color: z.string(), + terminal: z.object({ + name: z.string(), + }), + track: z.string().optional(), + dep_delay: z + .string() + .optional() + .transform((str) => (str ? parseInt(str) : 0)), + }), + ), +}); + +const searchSchema = z.array( + z.object({ + id: z.string().optional(), + label: z.string(), + iconclass: z.string(), // This is in format sl-icon-type-{type} + }), +); diff --git a/packages/integrations/src/seerr/seerr-integration.ts b/packages/integrations/src/seerr/seerr-integration.ts new file mode 100644 index 000000000..30ed79d4e --- /dev/null +++ b/packages/integrations/src/seerr/seerr-integration.ts @@ -0,0 +1,4 @@ +import { OverseerrIntegration } from "../overseerr/overseerr-integration"; + +// Seerr is a fork of Overseerr, the API is compatible and no additional logic is required. +export class SeerrIntegration extends OverseerrIntegration {} diff --git a/packages/integrations/src/speedtest-tracker/speedtest-tracker-integration.ts b/packages/integrations/src/speedtest-tracker/speedtest-tracker-integration.ts new file mode 100644 index 000000000..80517c69e --- /dev/null +++ b/packages/integrations/src/speedtest-tracker/speedtest-tracker-integration.ts @@ -0,0 +1,98 @@ +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; + +import type { IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import { TestConnectionError } from "../base/test-connection/test-connection-error"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; +import { + speedtestTrackerLatestResultEnvelopeSchema, + speedtestTrackerResultsCollectionSchema, + speedtestTrackerStatsEnvelopeSchema, +} from "./speedtest-tracker-types"; +import type { + SpeedtestTrackerDashboardData, + SpeedtestTrackerResult, + SpeedtestTrackerResultsCollection, + SpeedtestTrackerStats, +} from "./speedtest-tracker-types"; + +export class SpeedtestTrackerIntegration extends Integration { + protected async testingAsync(input: IntegrationTestingInput): Promise { + const url = this.url("/api/v1/results/latest"); + const response = await input.fetchAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + return TestConnectionError.StatusResult(response); + } + + return { success: true }; + } + + public async getLatestResultAsync(): Promise { + const response = await this.getAsync("/api/v1/results/latest"); + + // Speedtest Tracker returns 404 when no tests have been run yet (fresh install) + if (response.status === 404) { + return null; + } + + if (!response.ok) { + throw new ResponseError(response); + } + + return speedtestTrackerLatestResultEnvelopeSchema.parse(await response.json()).data; + } + + public async getStatsAsync(): Promise { + const response = await this.getAsync("/api/v1/stats"); + + if (!response.ok) { + throw new ResponseError(response); + } + + return speedtestTrackerStatsEnvelopeSchema.parse(await response.json()).data; + } + + public async getRecentResultsAsync(perPage = 10): Promise { + const response = await this.getAsync("/api/v1/results", { + result_count: String(perPage), + sort: "-created_at", + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return speedtestTrackerResultsCollectionSchema.parse(await response.json()); + } + + public async getDashboardDataAsync(): Promise { + const [latestResult, stats, recentCollection] = await Promise.all([ + this.getLatestResultAsync(), + this.getStatsAsync(), + this.getRecentResultsAsync(30), + ]); + + return { + latestResult, + stats, + recentResults: recentCollection.data, + }; + } + + private async getAsync(path: `/api/v1/${string}`, queryParams?: Record) { + return await fetchWithTrustedCertificatesAsync(this.url(path, queryParams), { + headers: this.getAuthHeaders(), + }); + } + + private getAuthHeaders(): Record { + return { + Authorization: `Bearer ${this.getSecretValue("apiKey")}`, + Accept: "application/json", + }; + } +} diff --git a/packages/integrations/src/speedtest-tracker/speedtest-tracker-types.ts b/packages/integrations/src/speedtest-tracker/speedtest-tracker-types.ts new file mode 100644 index 000000000..83aa5bb24 --- /dev/null +++ b/packages/integrations/src/speedtest-tracker/speedtest-tracker-types.ts @@ -0,0 +1,58 @@ +import { z } from "zod/v4"; + +const createEnvelopeSchema = (dataSchema: T) => z.object({ data: dataSchema }); + +const parseTimestamp = (timestamp: string): Date => new Date(`${timestamp.replace(" ", "T")}Z`); + +export const speedtestTrackerResultSchema = z.object({ + id: z.number().int(), + ping: z.number().nullable(), + download_bits: z.number().int().nullish(), + upload_bits: z.number().int().nullish(), + healthy: z.boolean().nullable(), + created_at: z.string().transform(parseTimestamp), +}); + +export type SpeedtestTrackerResult = z.infer; + +export const speedtestTrackerLatestResultEnvelopeSchema = createEnvelopeSchema(speedtestTrackerResultSchema); + +export const speedtestTrackerStatsBandwidthSchema = z.object({ + avg: z.number(), + avg_bits: z.number().optional(), + min: z.number(), + max: z.number(), +}); + +export const speedtestTrackerStatsSchema = z.object({ + ping: z.object({ + avg: z.number(), + min: z.number(), + max: z.number(), + }), + download: speedtestTrackerStatsBandwidthSchema, + upload: speedtestTrackerStatsBandwidthSchema, + total_results: z.number().int(), +}); + +export type SpeedtestTrackerStats = z.infer; + +export const speedtestTrackerStatsEnvelopeSchema = createEnvelopeSchema(speedtestTrackerStatsSchema); + +export const speedtestTrackerResultsCollectionSchema = z.object({ + data: z.array(speedtestTrackerResultSchema), + meta: z.object({ + current_page: z.number().int(), + last_page: z.number().int(), + total: z.number().int(), + per_page: z.number().int().optional(), + }), +}); + +export type SpeedtestTrackerResultsCollection = z.infer; + +export interface SpeedtestTrackerDashboardData { + latestResult: SpeedtestTrackerResult | null; + stats: SpeedtestTrackerStats | null; + recentResults: SpeedtestTrackerResult[]; +} diff --git a/packages/integrations/src/tracearr/tracearr-integration.ts b/packages/integrations/src/tracearr/tracearr-integration.ts new file mode 100644 index 000000000..40f3b2618 --- /dev/null +++ b/packages/integrations/src/tracearr/tracearr-integration.ts @@ -0,0 +1,200 @@ +import { isAbsoluteUrl } from "@homarr/common"; +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; +import { ImageProxy } from "@homarr/image-proxy"; + +import type { IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; +import { tracearrHealthResponseSchema } from "./tracearr-types"; +import type { + TracearrDashboardData, + TracearrHealthResponse, + TracearrHistoryResponse, + TracearrStatsResponse, + TracearrStreamsResponse, + TracearrViolationsResponse, +} from "./tracearr-types"; + +export class TracearrIntegration extends Integration { + protected async testingAsync(input: IntegrationTestingInput): Promise { + const healthUrl = this.url("/api/v1/public/health"); + const healthResponse = await input.fetchAsync(healthUrl, { + headers: this.getAuthHeaders(), + }); + + if (!healthResponse.ok) { + throw new ResponseError(healthResponse); + } + + return { success: true }; + } + + /** + * GET /api/v1/public/health + * Check server connectivity and status + */ + public async getHealthAsync(): Promise { + const url = this.url("/api/v1/public/health"); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return tracearrHealthResponseSchema.parse(await response.json()); + } + + /** + * GET /api/v1/public/stats + * Dashboard statistics with optional server filter + */ + public async getStatsAsync(serverId?: string): Promise { + const url = this.url("/api/v1/public/stats", { serverId }); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return (await response.json()) as TracearrStatsResponse; + } + + /** + * GET /api/v1/public/streams + * Active playback sessions with codec and quality details + */ + public async getStreamsAsync(serverId?: string): Promise { + const url = this.url("/api/v1/public/streams", { serverId }); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + const json = (await response.json()) as TracearrStreamsResponse; + const imageProxy = new ImageProxy(); + + return { + ...json, + data: await Promise.all( + json.data.map(async (stream) => { + if (stream.userAvatarUrl) { + stream.userAvatarUrl = await this.proxyImageAsync(imageProxy, stream.userAvatarUrl); + } + if (stream.posterUrl) { + stream.posterUrl = await this.proxyImageAsync(imageProxy, stream.posterUrl); + } + return stream; + }), + ), + }; + } + + /** + * GET /api/v1/public/violations + * Recent rule violations with optional pagination + */ + public async getViolationsAsync(pageSize = 5): Promise { + const url = this.url("/api/v1/public/violations", { + page: "1", + pageSize: String(pageSize), + }); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + const json = (await response.json()) as TracearrViolationsResponse; + const imageProxy = new ImageProxy(); + + return { + ...json, + data: await Promise.all( + json.data.map(async (violation) => { + violation.user.avatarUrl = await this.proxyImageAsync(imageProxy, violation.user.avatarUrl); + return violation; + }), + ), + }; + } + + /** + * GET /api/v1/public/history + * Session history with optional pagination + */ + public async getHistoryAsync(pageSize = 10): Promise { + const url = this.url("/api/v1/public/history", { + page: "1", + pageSize: String(pageSize), + }); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: this.getAuthHeaders(), + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + const json = (await response.json()) as TracearrHistoryResponse; + const imageProxy = new ImageProxy(); + + return { + ...json, + data: await Promise.all( + json.data.map(async (session) => { + session.user.avatarUrl = await this.proxyImageAsync(imageProxy, session.user.avatarUrl); + return session; + }), + ), + }; + } + + /** + * Get combined dashboard data (stats + streams + violations + history) + * Uses Promise.allSettled for optional endpoints so failures don't break the dashboard. + */ + public async getDashboardDataAsync(): Promise { + const [stats, streams] = await Promise.all([this.getStatsAsync(), this.getStreamsAsync()]); + + const [violationsResult, historyResult] = await Promise.allSettled([ + this.getViolationsAsync(), + this.getHistoryAsync(), + ]); + + return { + stats, + streams, + violations: violationsResult.status === "fulfilled" ? violationsResult.value : null, + recentActivity: historyResult.status === "fulfilled" ? historyResult.value : null, + }; + } + + private getAuthHeaders(): Record { + return { + Authorization: `Bearer ${this.getSecretValue("apiKey")}`, + }; + } + + private async proxyImageAsync(imageProxy: ImageProxy, urlOrPath: string | null | undefined): Promise { + if (!urlOrPath) return null; + try { + // ImageProxy doesn't support fallback urls so we need to remove them + const cleanUrl = urlOrPath.replace(/&fallback=[^&]+/, "").replace(/\?fallback=[^&]+&?/, "?"); + const fullUrl = isAbsoluteUrl(urlOrPath) ? cleanUrl : this.url(cleanUrl as `/${string}`).toString(); + + return await imageProxy.createImageAsync(fullUrl, this.getAuthHeaders()); + } catch { + return null; + } + } +} diff --git a/packages/integrations/src/tracearr/tracearr-types.ts b/packages/integrations/src/tracearr/tracearr-types.ts new file mode 100644 index 000000000..099d584a9 --- /dev/null +++ b/packages/integrations/src/tracearr/tracearr-types.ts @@ -0,0 +1,233 @@ +import { z } from "zod"; + +export const tracearrServerStatusSchema = z.object({ + id: z.string(), + name: z.string(), + type: z.union([z.literal("plex"), z.literal("jellyfin"), z.literal("emby")]), + online: z.boolean(), + activeStreams: z.number(), +}); + +export type TracearrServerStatus = z.infer; + +export const tracearrHealthResponseSchema = z.object({ + status: z.literal("ok"), + timestamp: z.string(), + servers: z.array(tracearrServerStatusSchema), +}); + +export type TracearrHealthResponse = z.infer; + +export interface TracearrStatsResponse { + activeStreams: number; + totalUsers: number; + totalSessions: number; + recentViolations: number; + timestamp: string; +} + +export interface TracearrSourceVideoDetails { + bitrate?: number; + framerate?: string; + dynamicRange?: string; + aspectRatio?: number; + profile?: string; + level?: string; + colorSpace?: string; + colorDepth?: number; +} + +export interface TracearrSourceAudioDetails { + bitrate?: number; + channelLayout?: string; + language?: string; + sampleRate?: number; +} + +export interface TracearrStreamVideoDetails { + bitrate?: number; + width?: number; + height?: number; + framerate?: string; + dynamicRange?: string; +} + +export interface TracearrStreamAudioDetails { + bitrate?: number; + channels?: number; + language?: string; +} + +export interface TracearrTranscodeInfo { + containerDecision: "directplay" | "copy" | "transcode"; + sourceContainer?: string; + streamContainer?: string; + hwRequested?: boolean; + hwDecoding?: string; + hwEncoding?: string; + speed?: number; + throttled?: boolean; + reasons?: string[]; +} + +export interface TracearrSubtitleInfo { + decision?: string; + codec?: string; + language?: string; + forced?: boolean; +} + +export interface TracearrStream { + id: string; + serverId: string; + serverName: string; + username: string; + userThumb: string | null; + userAvatarUrl: string | null; + mediaTitle: string; + mediaType: "movie" | "episode" | "track" | "live" | "photo" | "unknown"; + showTitle: string | null; + seasonNumber: number | null; + episodeNumber: number | null; + year: number | null; + thumbPath: string | null; + posterUrl: string | null; + durationMs: number | null; + state: "playing" | "paused" | "stopped"; + progressMs: number; + startedAt: string; + isTranscode: boolean | null; + videoDecision: "directplay" | "copy" | "transcode" | null; + audioDecision: "directplay" | "copy" | "transcode" | null; + bitrate: number | null; + sourceVideoCodec: string | null; + sourceAudioCodec: string | null; + sourceAudioChannels: number | null; + sourceVideoWidth: number | null; + sourceVideoHeight: number | null; + sourceVideoDetails: TracearrSourceVideoDetails | null; + sourceAudioDetails: TracearrSourceAudioDetails | null; + streamVideoCodec: string | null; + streamAudioCodec: string | null; + streamVideoDetails: TracearrStreamVideoDetails | null; + streamAudioDetails: TracearrStreamAudioDetails | null; + transcodeInfo: TracearrTranscodeInfo | null; + subtitleInfo: TracearrSubtitleInfo | null; + resolution: string | null; + sourceVideoCodecDisplay: string | null; + sourceAudioCodecDisplay: string | null; + audioChannelsDisplay: string | null; + streamVideoCodecDisplay: string | null; + streamAudioCodecDisplay: string | null; + device: string | null; + player: string | null; + product: string | null; + platform: string | null; +} + +export interface TracearrServerStreamSummary { + serverId: string; + serverName: string; + total: number; + transcodes: number; + directStreams: number; + directPlays: number; + totalBitrate: string; +} + +export interface TracearrStreamsSummary { + total: number; + transcodes: number; + directStreams: number; + directPlays: number; + totalBitrate: string; + byServer: TracearrServerStreamSummary[]; +} + +export interface TracearrStreamsResponse { + data: TracearrStream[]; + summary: TracearrStreamsSummary; +} + +export interface TracearrViolation { + id: string; + serverId: string; + serverName: string; + severity: "low" | "medium" | "high"; + acknowledged: boolean; + data: Record; + createdAt: string; + rule: { + id: string; + type: string; + name: string; + }; + user: { + id: string; + username: string; + thumbUrl: string | null; + avatarUrl: string | null; + }; +} + +export interface TracearrViolationsResponse { + data: TracearrViolation[]; + meta: { + total: number; + page: number; + pageSize: number; + }; +} + +export interface TracearrHistorySession { + id: string; + serverId: string; + serverName: string; + state: "playing" | "paused" | "stopped"; + mediaType: "movie" | "episode" | "track" | "live" | "photo" | "unknown"; + mediaTitle: string; + showTitle: string | null; + seasonNumber: number | null; + episodeNumber: number | null; + year: number | null; + thumbPath: string | null; + posterUrl: string | null; + durationMs: number; + progressMs: number; + totalDurationMs: number; + startedAt: string; + stoppedAt: string | null; + watched: boolean; + segmentCount: number; + device: string | null; + player: string | null; + product: string | null; + platform: string | null; + isTranscode: boolean; + videoDecision: "directplay" | "copy" | "transcode" | null; + audioDecision: "directplay" | "copy" | "transcode" | null; + bitrate: number | null; + resolution: string | null; + user: { + id: string; + username: string; + thumbUrl: string | null; + avatarUrl: string | null; + }; +} + +export interface TracearrHistoryResponse { + data: TracearrHistorySession[]; + meta: { + total: number; + page: number; + pageSize: number; + }; +} + +export interface TracearrDashboardData { + stats: TracearrStatsResponse; + streams: TracearrStreamsResponse; + violations: TracearrViolationsResponse | null; + recentActivity: TracearrHistoryResponse | null; +} diff --git a/packages/integrations/src/truenas/truenas-integration.ts b/packages/integrations/src/truenas/truenas-integration.ts index 8b0a79b89..8d64f848c 100644 --- a/packages/integrations/src/truenas/truenas-integration.ts +++ b/packages/integrations/src/truenas/truenas-integration.ts @@ -112,6 +112,44 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni }); } + private async getPoolsAsync() { + logger.debug("Retrieving pools", { + url: this.wsUrl(), + }); + + const response = await this.requestAsync("pool.query", [ + [], + { + extra: { + is_upgraded: true, + }, + }, + ]); + const result = await poolSchema.parseAsync(response); + // Offline / exported pools have null values for allocated, size and free, so we filter them out + // See https://github.com/homarr-labs/homarr/issues/5194 + const activePools = result + .map((pool) => { + if (pool.allocated !== null && pool.size !== null && pool.free !== null) { + return { + ...pool, + allocated: pool.allocated, + size: pool.size, + free: pool.free, + }; + } + + return null; + }) + .filter((pool) => pool !== null); + logger.debug("Retrieved pools", { + url: this.wsUrl(), + totalCount: result.length, + activeCount: activePools.length, + }); + return activePools; + } + /** * Retrieves data using the reporting method * @see https://www.truenas.com/docs/api/scale_websocket_api.html#reporting @@ -225,6 +263,7 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni const cpuData = this.extractLatestReportingData(reporting, "cpu"); const cpuTempData = this.extractLatestReportingData(reporting, "cputemp"); const memoryData = this.extractLatestReportingData(reporting, "memory"); + const datasets = await this.getPoolsAsync(); const netdata = await this.getReportingNetdataAsync(); @@ -236,18 +275,29 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni cpuTemp: Math.max(...cpuTempData.filter((_item, i) => i > 0)), memAvailableInBytes: systemInformation.physmem, memUsedInBytes: memoryData[1] ?? 0, // Index 0 is UNIX timestamp, Index 1 is free space in bytes - fileSystem: [], + fileSystem: datasets.map((dataset) => ({ + deviceName: dataset.name, + available: `${dataset.size}`, // TODO: can we use number instead of string here? + used: `${dataset.allocated}`, + percentage: (dataset.allocated / dataset.size) * 100, + })), availablePkgUpdates: 0, network: { up: upload * NETWORK_MULTIPLIER, down: download * NETWORK_MULTIPLIER, }, loadAverage: null, - smart: [], + smart: datasets.map((dataset) => ({ + deviceName: dataset.name, + healthy: dataset.healthy, + overallStatus: dataset.status, + temperature: null, + })), uptime: systemInformation.uptime_seconds, version: systemInformation.version, cpuModelName: systemInformation.model, rebootRequired: false, + gpu: [], }; } @@ -351,6 +401,19 @@ const reportingItemSchema = z.object({ type ReportingItem = z.infer; +const poolSchema = z.array( + z.object({ + name: z.string(), + status: z.string(), + healthy: z.boolean(), + // free, size and allocated are null when the pool is offline or exported + // see https://github.com/homarr-labs/homarr/issues/5194 + free: z.number().min(0).nullable(), + size: z.number().nullable(), + allocated: z.number().nullable(), + }), +); + const reportingNetDataSchema = z.array( z.object({ name: z.string(), diff --git a/packages/integrations/src/types.ts b/packages/integrations/src/types.ts index e38b3e710..10ae96ee4 100644 --- a/packages/integrations/src/types.ts +++ b/packages/integrations/src/types.ts @@ -11,3 +11,9 @@ export * from "./proxmox/proxmox-types"; export * from "./unifi-controller/unifi-controller-types"; export * from "./opnsense/opnsense-types"; export * from "./interfaces/media-releases"; +export * from "./coolify/coolify-types"; +export * from "./anchor/anchor-types"; +export * from "./interfaces/timetable/timetable-types"; +export * from "./tracearr/tracearr-types"; +export * from "./speedtest-tracker/speedtest-tracker-types"; +export * from "./umami/umami-types"; diff --git a/packages/integrations/src/umami/umami-integration.ts b/packages/integrations/src/umami/umami-integration.ts new file mode 100644 index 000000000..730cd5477 --- /dev/null +++ b/packages/integrations/src/umami/umami-integration.ts @@ -0,0 +1,450 @@ +import dayjs from "dayjs"; + +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; +import { createLogger } from "@homarr/core/infrastructure/logs"; + +import type { IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import { TestConnectionError } from "../base/test-connection/test-connection-error"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; +import type { + UmamiEventSeries, + UmamiMetricItem, + UmamiPageviewDataPoint, + UmamiPageviews, + UmamiStats, + UmamiVisitorStats, + UmamiWebsite, +} from "./umami-types"; +import { + umamiActiveVisitorsSchema, + umamiAuthResponseSchema, + umamiMetricItemSchema, + umamiPageviewDataPointSchema, + umamiPageviewsSchema, + umamiStatsSchema, + umamiWebsiteSchema, +} from "./umami-types"; + +// Umami event type ID for custom events (type 1 = page view, type 2 = custom event) +const UMAMI_CUSTOM_EVENT_TYPE = 2; + +const logger = createLogger({ module: "umami-integration" }); + +export class UmamiIntegration extends Integration { + protected async testingAsync(input: IntegrationTestingInput): Promise { + const authHeaders = await this.getAuthHeadersAsync(); + const url = this.url("/websites"); + const response = await input.fetchAsync(url, { + headers: authHeaders, + }); + + if (!response.ok) { + return TestConnectionError.StatusResult(response); + } + + return { success: true }; + } + + public async getWebsitesAsync(): Promise { + const authHeaders = await this.getAuthHeadersAsync(); + const url = this.url("/websites"); + const response = await fetchWithTrustedCertificatesAsync(url, { headers: authHeaders }); + if (!response.ok) throw new ResponseError(response); + const json = await response.json(); + // Response envelope differs by hosting: + // - Umami self-hosted returns the array directly: [website, ...] + // - Umami Cloud wraps it: { data: [website, ...] } + // Same divergence applies to the /events list responses below. + return Array.isArray(json) + ? umamiWebsiteSchema.array().parse(json) + : umamiWebsiteSchema.array().parse((json as { data: unknown }).data); + } + + // Server-side timeFrame resolution is intentional. Keeping `timeFrame` (a + // stable string like "7d") in the cache key means all users viewing the same + // dashboard share one Redis cache entry per (integration, website, timeFrame) + // for the 5-minute TTL. Client-supplied startAt/endAt would include a + // per-second `now` and fragment the cache one-per-user-per-second. + // + // Window bounds mirror Umami UI preset semantics, verified against the + // Umami Cloud dashboard for the same site and timeFrame: each "Last N" + // preset includes the in-progress period as one of N + 1 buckets, snapped + // to bucket boundaries. + // - "24h": current hour + 24 prior hours (25-bucket hour grid) + // - "7d": current day + 7 prior days ( 8-bucket day grid) + // - "30d": current day + 30 prior days (31-bucket day grid) + // - "today" / "month" / "lastMonth": calendar-aligned windows. + // + // Caveat: dayjs() uses the server's local timezone. Callers needing user-local + // boundaries (e.g. "today") may see off-by-one behaviour when the server + // runs in UTC but the user is in a different timezone. + private computeTimeRange(timeFrame: string): { startAt: number; endAt: number; unit: string } { + const startOfToday = dayjs().startOf("day"); + const endOfToday = dayjs().endOf("day"); + + switch (timeFrame) { + case "today": + return { startAt: startOfToday.valueOf(), endAt: endOfToday.valueOf(), unit: "hour" }; + case "7d": + return { + startAt: startOfToday.subtract(7, "day").valueOf(), + endAt: endOfToday.valueOf(), + unit: "day", + }; + case "30d": + return { + startAt: startOfToday.subtract(30, "day").valueOf(), + endAt: endOfToday.valueOf(), + unit: "day", + }; + case "month": + return { + startAt: dayjs().startOf("month").valueOf(), + endAt: dayjs().endOf("month").valueOf(), + unit: "day", + }; + case "lastMonth": { + const lastMonth = dayjs().subtract(1, "month"); + return { + startAt: lastMonth.startOf("month").valueOf(), + endAt: lastMonth.endOf("month").valueOf(), + unit: "day", + }; + } + case "24h": + default: + return { + startAt: dayjs().subtract(24, "hour").startOf("hour").valueOf(), + endAt: dayjs().endOf("hour").valueOf(), + unit: "hour", + }; + } + } + + public async getVisitorStatsAsync( + websiteId: string, + timeFrame = "24h", + eventName?: string, + ): Promise { + const authHeaders = await this.getAuthHeadersAsync(); + const website = await this.getWebsiteByIdAsync(websiteId, authHeaders); + + const { startAt, endAt, unit } = this.computeTimeRange(timeFrame); + + const [stats, pageviews, eventMetrics, eventTimeSeries] = await Promise.all([ + this.getWebsiteStatsAsync(website.id, startAt, endAt, authHeaders), + this.getWebsitePageviewsAsync(website.id, startAt, endAt, authHeaders, unit), + eventName ? this.getWebsiteEventMetricsAsync(website.id, startAt, endAt, authHeaders) : Promise.resolve(null), + eventName + ? this.getWebsiteEventTimeSeriesAsync(website.id, startAt, endAt, unit, eventName, authHeaders) + : Promise.resolve(null), + ]); + + const eventCount = eventName && eventMetrics ? (eventMetrics.find(({ x }) => x === eventName)?.y ?? 0) : undefined; + + const eventByTimestamp = new Map( + (eventTimeSeries ?? []).map(({ x, y }) => [this.parseUmamiDate(x), y]), + ); + const dataPoints = pageviews.sessions.map((point) => ({ + timestamp: point.x, + visitors: point.y, + ...(eventTimeSeries ? { events: eventByTimestamp.get(this.parseUmamiDate(point.x)) ?? 0 } : {}), + })); + + return { + domain: website.domain, + websiteName: website.name, + websiteId: website.id, + totalVisitors: stats.visitors, + totalPageviews: stats.pageviews, + totalVisits: stats.visits, + bounceRate: stats.visits > 0 ? Math.round((stats.bounces / stats.visits) * 100) : 0, + avgDuration: stats.visits > 0 ? Math.round(stats.totaltime / stats.visits) : 0, + dataPoints, + timeFrame, + eventCount, + }; + } + + public async getEventNamesAsync(websiteId: string): Promise { + const authHeaders = await this.getAuthHeadersAsync(); + const now = Date.now(); + const startAt = dayjs().subtract(30, "day").valueOf(); + const url = this.url(`/websites/${websiteId}/events`, { + startAt: startAt.toString(), + endAt: now.toString(), + pageSize: "100000", + }); + const response = await fetchWithTrustedCertificatesAsync(url, { headers: authHeaders }); + if (!response.ok) { + logger.warn("Failed to load event names", { status: response.status, websiteId }); + return []; + } + const json = await response.json(); + const rawArray: unknown[] = Array.isArray(json) + ? json + : json && typeof json === "object" && "data" in json && Array.isArray((json as { data: unknown }).data) + ? (json as { data: unknown[] }).data + : []; + const names = new Set(); + for (const item of rawArray) { + const record = item as Record; + if (typeof record.eventName === "string" && record.eventName) { + names.add(record.eventName); + } + } + return [...names].sort(); + } + + public async getActiveVisitorsAsync(websiteId: string): Promise { + const authHeaders = await this.getAuthHeadersAsync(); + const url = this.url(`/websites/${websiteId}/active`); + const response = await fetchWithTrustedCertificatesAsync(url, { headers: authHeaders }); + if (!response.ok) { + logger.warn("Failed to load active visitors", { status: response.status, websiteId }); + return 0; + } + return umamiActiveVisitorsSchema.parse(await response.json()).visitors; + } + + /** + * Umami self-hosted returns "YYYY-MM-DD HH:MM:SS"; Umami Cloud returns ISO 8601. + * Normalise both to epoch ms so timestamps from /pageviews and /events join. + */ + private parseUmamiDate(dateString: string): number { + return new Date(dateString.includes("T") ? dateString : `${dateString.replace(" ", "T")}Z`).getTime(); + } + + private async getWebsiteByIdAsync(websiteId: string, authHeaders: Record): Promise { + const url = this.url(`/websites/${websiteId}`); + const response = await fetchWithTrustedCertificatesAsync(url, { headers: authHeaders }); + if (!response.ok) throw new ResponseError(response); + return umamiWebsiteSchema.parse(await response.json()); + } + + public async getTopPagesAsync(websiteId: string, timeFrame: string, limit: number): Promise { + const authHeaders = await this.getAuthHeadersAsync(); + const { startAt, endAt } = this.computeTimeRange(timeFrame); + return this.getWebsiteMetricsAsync(websiteId, startAt, endAt, "path", authHeaders, limit); + } + + public async getTopReferrersAsync(websiteId: string, timeFrame: string, limit: number): Promise { + const authHeaders = await this.getAuthHeadersAsync(); + const { startAt, endAt } = this.computeTimeRange(timeFrame); + return this.getWebsiteMetricsAsync(websiteId, startAt, endAt, "referrer", authHeaders, limit); + } + + public async getMultiEventTimeSeriesAsync( + websiteId: string, + timeFrame: string, + eventNames: string[], + ): Promise { + const authHeaders = await this.getAuthHeadersAsync(); + const { startAt, endAt, unit } = this.computeTimeRange(timeFrame); + const results = await Promise.all( + eventNames.map(async (eventName) => { + const dataPoints = await this.getWebsiteEventTimeSeriesAsync( + websiteId, + startAt, + endAt, + unit, + eventName, + authHeaders, + ); + return { eventName, dataPoints: dataPoints ?? [] }; + }), + ); + return results; + } + + private async getWebsiteEventMetricsAsync( + websiteId: string, + startAt: number, + endAt: number, + authHeaders: Record, + ): Promise { + return await this.getWebsiteMetricsAsync(websiteId, startAt, endAt, "event", authHeaders); + } + + private async getWebsiteMetricsAsync( + websiteId: string, + startAt: number, + endAt: number, + type: "event" | "path" | "referrer", + authHeaders: Record, + limit?: number, + ): Promise { + const params: Record = { + startAt: startAt.toString(), + endAt: endAt.toString(), + type, + }; + if (limit !== undefined) params.limit = limit.toString(); + const url = this.url(`/websites/${websiteId}/metrics`, params); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: authHeaders, + }); + + if (!response.ok) { + logger.warn("Failed to load website metrics", { status: response.status, websiteId, type }); + return []; + } + + const json = await response.json(); + if (Array.isArray(json)) return umamiMetricItemSchema.array().parse(json); + logger.warn("Unexpected metrics response shape", { websiteId, type }); + return []; + } + + private async getWebsiteEventTimeSeriesAsync( + websiteId: string, + startAt: number, + endAt: number, + unit: string, + eventName: string, + authHeaders: Record, + ): Promise { + const url = this.url(`/websites/${websiteId}/events`, { + startAt: startAt.toString(), + endAt: endAt.toString(), + unit, + timezone: "UTC", + eventName, + pageSize: "100000", + }); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: authHeaders, + }); + + if (!response.ok) { + logger.warn("Failed to load event time series", { status: response.status, websiteId, eventName }); + return undefined; + } + + const json = await response.json(); + const rawArray: unknown[] = Array.isArray(json) + ? json + : json && typeof json === "object" && "data" in json && Array.isArray((json as { data: unknown }).data) + ? (json as { data: unknown[] }).data + : []; + + if (rawArray.length === 0) return undefined; + + const firstItem = rawArray[0] as Record; + + // Two response shapes coexist: + // - Umami self-hosted returns aggregated buckets: { x: timestamp, y: count } + // - Umami Cloud returns raw event records: { createdAt, eventName, eventType } + // We aggregate the raw Cloud records ourselves into the same bucket grid so + // the result joins cleanly with /pageviews timestamps. + + // Aggregated { x, y } format — parse directly (self-hosted instances) + if ("x" in firstItem && "y" in firstItem) { + const points = umamiPageviewDataPointSchema.array().parse(rawArray); + return points.length === 0 ? undefined : points; + } + + // Raw event records — aggregate by time bucket (Umami Cloud) + if ("createdAt" in firstItem) { + const pad = (number: number) => String(number).padStart(2, "0"); + // Format must match Umami's pageview x-axis timestamps: "YYYY-MM-DD HH:MM:SS" + const truncate = (isoDate: string): string => { + const date = new Date(isoDate); + const dateString = `${date.getUTCFullYear()}-${pad(date.getUTCMonth() + 1)}-${pad(date.getUTCDate())}`; + if (unit === "hour") { + return `${dateString} ${pad(date.getUTCHours())}:00:00`; + } + if (unit === "month") { + return `${date.getUTCFullYear()}-${pad(date.getUTCMonth() + 1)}-01 00:00:00`; + } + return `${dateString} 00:00:00`; + }; + + const buckets = new Map(); + for (const item of rawArray) { + const event = item as { eventType?: number; eventName?: string; createdAt: string }; + if (event.eventType !== UMAMI_CUSTOM_EVENT_TYPE || event.eventName !== eventName) continue; + const bucket = truncate(event.createdAt); + buckets.set(bucket, (buckets.get(bucket) ?? 0) + 1); + } + if (buckets.size === 0) return undefined; + return ( + Array.from(buckets.entries()) + .sort(([itemA], [itemB]) => itemA.localeCompare(itemB)) + // eslint-disable-next-line id-length + .map(([x, y]) => ({ x, y })) + ); + } + + return undefined; + } + + private async getWebsiteStatsAsync( + websiteId: string, + startAt: number, + endAt: number, + authHeaders: Record, + ): Promise { + const url = this.url(`/websites/${websiteId}/stats`, { + startAt: startAt.toString(), + endAt: endAt.toString(), + }); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: authHeaders, + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return umamiStatsSchema.parse(await response.json()); + } + + private async getWebsitePageviewsAsync( + websiteId: string, + startAt: number, + endAt: number, + authHeaders: Record, + unit = "hour", + ): Promise { + const url = this.url(`/websites/${websiteId}/pageviews`, { + startAt: startAt.toString(), + endAt: endAt.toString(), + unit, + timezone: "UTC", + }); + const response = await fetchWithTrustedCertificatesAsync(url, { + headers: authHeaders, + }); + + if (!response.ok) { + throw new ResponseError(response); + } + + return umamiPageviewsSchema.parse(await response.json()); + } + + private async getAuthHeadersAsync(): Promise> { + if (this.hasSecretValue("apiKey")) { + return { "x-umami-api-key": this.getSecretValue("apiKey") }; + } + const token = await this.getJwtTokenAsync(); + return { Authorization: `Bearer ${token}` }; + } + + private async getJwtTokenAsync(): Promise { + const url = this.url("/auth/login"); + const response = await fetchWithTrustedCertificatesAsync(url, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + username: this.getSecretValue("username"), + password: this.getSecretValue("password"), + }), + }); + if (!response.ok) throw new ResponseError(response); + return umamiAuthResponseSchema.parse(await response.json()).token; + } +} diff --git a/packages/integrations/src/umami/umami-types.ts b/packages/integrations/src/umami/umami-types.ts new file mode 100644 index 000000000..4e38b2a2c --- /dev/null +++ b/packages/integrations/src/umami/umami-types.ts @@ -0,0 +1,84 @@ +import { z } from "zod/v4"; + +export const umamiWebsiteSchema = z.object({ + id: z.string(), + name: z.string(), + domain: z.string(), +}); + +export type UmamiWebsite = z.infer; + +export const umamiAuthResponseSchema = z.object({ + token: z.string(), +}); + +export type UmamiAuthResponse = z.infer; + +export const umamiStatsSchema = z.object({ + pageviews: z.number(), + visitors: z.number(), + visits: z.number(), + bounces: z.number(), + totaltime: z.number(), +}); + +export type UmamiStats = z.infer; + +export const umamiPageviewDataPointSchema = z.object({ + x: z.string(), + y: z.number(), +}); + +export type UmamiPageviewDataPoint = z.infer; + +export const umamiPageviewsSchema = z.object({ + pageviews: z.array(umamiPageviewDataPointSchema), + sessions: z.array(umamiPageviewDataPointSchema), +}); + +export type UmamiPageviews = z.infer; + +export const umamiMetricItemSchema = z.object({ + // x can be null for direct traffic (no referrer) in the referrers endpoint + x: z + .string() + .nullable() + .transform((value) => value ?? ""), + y: z.number(), +}); + +export type UmamiMetricItem = z.infer; + +export const umamiEventRecordSchema = z.object({ + id: z.string(), + eventName: z.string(), + createdAt: z.string(), +}); + +export type UmamiEventRecord = z.infer; + +export const umamiActiveVisitorsSchema = z.object({ + visitors: z.number(), +}); + +export type UmamiActiveVisitors = z.infer; + +// Internal aggregated type returned by the integration — not a direct API response +export interface UmamiEventSeries { + eventName: string; + dataPoints: UmamiPageviewDataPoint[]; +} + +export interface UmamiVisitorStats { + domain: string; + websiteId: string; + websiteName: string; + totalVisitors: number; + totalPageviews: number; + totalVisits: number; + bounceRate: number; + avgDuration: number; + dataPoints: { timestamp: string; visitors: number; events?: number }[]; + timeFrame: string; + eventCount?: number; +} diff --git a/packages/integrations/src/unraid/unraid-integration.ts b/packages/integrations/src/unraid/unraid-integration.ts index db4025ee2..38b12c31d 100644 --- a/packages/integrations/src/unraid/unraid-integration.ts +++ b/packages/integrations/src/unraid/unraid-integration.ts @@ -67,7 +67,10 @@ export class UnraidIntegration extends Integration implements ISystemHealthMonit deviceName: disk.name, temperature: disk.temp ?? null, overallStatus: disk.status, + // See ArrayDiskStatus from https://studio.apollographql.com/public/Unraid-API/variant/current/explorer + healthy: disk.status === "DISK_OK", })), + gpu: [], }; } diff --git a/packages/integrations/test/nextcloud.spec.ts b/packages/integrations/test/nextcloud.spec.ts new file mode 100644 index 000000000..cef3ae494 --- /dev/null +++ b/packages/integrations/test/nextcloud.spec.ts @@ -0,0 +1,454 @@ +/* eslint-disable @typescript-eslint/no-non-null-assertion */ +import type { StartedTestContainer } from "testcontainers"; +import { GenericContainer, getContainerRuntimeClient, ImageName, Wait } from "testcontainers"; +import { afterAll, beforeAll, describe, expect, test, vi } from "vitest"; + +import { createId } from "@homarr/common"; +import { createDb } from "@homarr/db/test"; + +import { NextcloudIntegration } from "../src"; + +// Mock the database +vi.mock("@homarr/db", async (importActual) => { + // eslint-disable-next-line @typescript-eslint/consistent-type-imports + const actual = await importActual(); + return { + ...actual, + db: createDb(), + }; +}); + +// Mock certificate verification +vi.mock("@homarr/core/infrastructure/certificates", async (importActual) => { + // eslint-disable-next-line @typescript-eslint/consistent-type-imports + const actual = await importActual(); + return { + ...actual, + getTrustedCertificateHostnamesAsync: vi.fn().mockImplementation(() => { + return Promise.resolve([]); + }), + }; +}); + +const IMAGE_NAME = "nextcloud:latest"; +const DEFAULT_USERNAME = "admin"; +const DEFAULT_PASSWORD = "admin123"; + +interface CalendarTestEvent { + summary: string; + description?: string; + location?: string; + color?: string; + dtstart: string; + dtend: string; + rrule?: string; + timezone?: string; +} + +describe("Nextcloud integration", () => { + let startedContainer: StartedTestContainer | null = null; + let nextcloudIntegration: NextcloudIntegration | null = null; + + beforeAll(async () => { + const containerRuntimeClient = await getContainerRuntimeClient(); + await containerRuntimeClient.image.pull(ImageName.fromString(IMAGE_NAME)); + + startedContainer = await prepareNextcloudContainerAsync(); + nextcloudIntegration = createNextcloudIntegration(startedContainer); + }, 100_000); + + afterAll(async () => { + if (startedContainer) { + await startedContainer.stop(); + startedContainer = null; + } + }); + + describe("Test connection", () => { + test("Test connection > Should work with valid credentials", async () => { + // Act + const result = await nextcloudIntegration!.testConnectionAsync(); + + // Assert + expect(result.success).toBe(true); + }, 20_000); + + test("Test connection > Should fail with invalid credentials", async () => { + // Arrange + const invalidIntegration = createNextcloudIntegration(startedContainer!, "wrong-user", "wrong-pass"); + + // Act + const result = await invalidIntegration.testConnectionAsync(); + + // Assert + expect(result.success).toBe(false); + }, 20_000); + }); + + describe("Retrieve calendar events", () => { + test("Retrieve calendar events > Should retrieve all fields correctly", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Test Meeting", + description: "This is a test meeting", + location: "Conference Room A", + color: "#FF5733", + dtstart: "20260415T140000Z", + dtend: "20260415T150000Z", + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + const retrievedEvent = relevantEvents[0]; + expect(retrievedEvent).toMatchObject({ + title: testEvent.summary, + description: testEvent.description, + location: testEvent.location, + indicatorColor: testEvent.color, + }); + expect(retrievedEvent!.startDate.toISOString()).toBe("2026-04-15T14:00:00.000Z"); + expect(retrievedEvent!.endDate?.toISOString()).toBe("2026-04-15T15:00:00.000Z"); + }, 20_000); + test("Retrieve calendar events > Should work with only required fields", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Simple Event", + dtstart: "20260415T140000Z", + dtend: "20260415T150000Z", + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + const retrievedEvent = relevantEvents[0]; + expect(retrievedEvent?.location).toBeNull(); + expect(retrievedEvent?.description).toBeNull(); + expect(retrievedEvent?.indicatorColor).toBe("#ff8600"); // Default color + }, 20_000); + test("Retrieve calendar events > Should work with timezone specified", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Timezone Event", + dtstart: "20260415T140000", + dtend: "20260415T150000", + timezone: "Asia/Tokyo", + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + const retrievedEvent = relevantEvents[0]; + + expect(retrievedEvent!.startDate.toISOString()).toBe("2026-04-15T05:00:00.000Z"); // 14:00 in Tokyo is 05:00 UTC + expect(retrievedEvent!.endDate?.toISOString()).toBe("2026-04-15T06:00:00.000Z"); // 15:00 in Tokyo is 06:00 UTC + }, 120_000); + test("Retrieve calendar events > Should work with event that starts before the range but ends within the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Early Meeting", + dtstart: "20260401T230000Z", // Starts before the range + dtend: "20260402T010000Z", // Ends within the range + }; + const start = new Date("2026-04-02T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + }, 20_000); + test("Retrieve calendar events > Should work with event that starts within the range but ends after the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Late Meeting", + dtstart: "20260430T230000Z", // Starts within the range + dtend: "20260501T010000Z", // Ends after the range + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + }, 20_000); + test("Retrieve calendar events > Should not retrieve events outside the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Out of Range Meeting", + dtstart: "20260301T140000Z", // Starts before the range + dtend: "20260301T150000Z", // Ends before the range + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(0); + }, 20_000); + test("Retrieve calendar events > Should work with events that begin before the range and end after the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Spanning Meeting", + dtstart: "20260330T230000Z", // Starts before the range + dtend: "20260501T010000Z", // Ends after the range + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + }, 20_000); + test("Retrieve calendar events > Should work with recurring events first occurrence before the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Recurring Meeting", + dtstart: "20260330T140000Z", // First occurrence starts before the range + dtend: "20260330T150000Z", + rrule: "FREQ=DAILY;COUNT=5", // Daily for 5 occurrences + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(3); + }, 20_000); + test("Retrieve calendar events > Should work with recurring events that go beyond the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Working Week", + dtstart: "20260302T090000Z", + dtend: "20260306T170000Z", + rrule: "FREQ=WEEKLY;COUNT=10", + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(5); + }); + }); +}); + +/** + * Prepares a Nextcloud container with proper configuration + */ +async function prepareNextcloudContainerAsync(): Promise { + const container = createNextcloudContainer(); + const startedContainer = await container.start(); + + return startedContainer; +} + +/** + * Creates a Nextcloud container with proper configuration + */ +function createNextcloudContainer() { + return new GenericContainer(IMAGE_NAME) + .withEnvironment({ + NEXTCLOUD_ADMIN_USER: DEFAULT_USERNAME, + NEXTCLOUD_ADMIN_PASSWORD: DEFAULT_PASSWORD, + NEXTCLOUD_TRUSTED_DOMAINS: "*", + SQLITE_DATABASE: "nextcloud", // Use SQLite for faster startup + }) + .withExposedPorts(80) + .withWaitStrategy(Wait.forHttp("/status.php", 80).forStatusCode(200)) + .withStartupTimeout(120_000); +} + +/** + * Creates a Nextcloud integration instance + */ +function createNextcloudIntegration( + container: StartedTestContainer, + username?: string, + password?: string, +): NextcloudIntegration { + return new NextcloudIntegration({ + id: "1", + decryptedSecrets: [ + { + kind: "username", + value: username ?? DEFAULT_USERNAME, + }, + { + kind: "password", + value: password ?? DEFAULT_PASSWORD, + }, + ], + name: "Nextcloud", + url: `http://${container.getHost()}:${container.getMappedPort(80)}`, + externalUrl: null, + }); +} + +/** + * Creates a calendar in Nextcloud via OCS API + */ +async function createCalendarAsync(container: StartedTestContainer, calendarName: string): Promise { + const host = container.getHost(); + const port = container.getMappedPort(80); + const url = `http://${host}:${port}/remote.php/dav/calendars/${DEFAULT_USERNAME}/${calendarName}`; + + const auth = Buffer.from(`${DEFAULT_USERNAME}:${DEFAULT_PASSWORD}`).toString("base64"); + + const response = await fetch(url, { + method: "MKCALENDAR", + headers: { + Authorization: `Basic ${auth}`, + "Content-Type": "application/xml", + }, + body: ` + + + + ${calendarName} + + + `, + }); + + if (!response.ok && response.status !== 201) { + throw new Error(`Failed to create calendar: ${response.status} ${response.statusText}`); + } +} + +/** + * Creates a calendar event in Nextcloud via CalDAV + */ +async function createCalendarEventAsync( + container: StartedTestContainer, + calendarName: string, + event: CalendarTestEvent, +): Promise { + const host = container.getHost(); + const port = container.getMappedPort(80); + const id = createId(); + const url = `http://${host}:${port}/remote.php/dav/calendars/${DEFAULT_USERNAME}/${calendarName}/${id}.ics`; + + const auth = Buffer.from(`${DEFAULT_USERNAME}:${DEFAULT_PASSWORD}`).toString("base64"); + + // Build iCalendar format + const icalData = buildICalEvent(id, event); + + const response = await fetch(url, { + method: "PUT", + headers: { + Authorization: `Basic ${auth}`, + "Content-Type": "text/calendar", + }, + body: icalData, + }); + + if (!response.ok && response.status !== 201) { + throw new Error(`Failed to create event: ${response.status} ${response.statusText}`); + } +} + +/** + * Builds an iCalendar format string from event data + */ +function buildICalEvent(uid: string, event: CalendarTestEvent): string { + const lines = [ + "BEGIN:VCALENDAR", + "VERSION:2.0", + "PRODID:-//Homarr Tests//EN", + "BEGIN:VEVENT", + `UID:${uid}`, + `DTSTAMP:${new Date().toISOString().replace(/[-:]/g, "").split(".")[0]}Z`, + `DTSTART${event.timezone ? `;TZID=${event.timezone}` : ""}:${event.dtstart}`, + `DTEND${event.timezone ? `;TZID=${event.timezone}` : ""}:${event.dtend}`, + `SUMMARY:${event.summary}`, + ]; + + if (event.description) { + lines.push(`DESCRIPTION:${event.description}`); + } + + if (event.location) { + lines.push(`LOCATION:${event.location}`); + } + + if (event.color) { + lines.push(`COLOR:${event.color}`); + } + + if (event.rrule) { + lines.push(`RRULE:${event.rrule}`); + } + + lines.push("END:VEVENT", "END:VCALENDAR"); + + return lines.join("\r\n"); +} diff --git a/packages/modals-collection/package.json b/packages/modals-collection/package.json index 27e63230f..3b23100dd 100644 --- a/packages/modals-collection/package.json +++ b/packages/modals-collection/package.json @@ -33,19 +33,19 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^8.3.12", - "@tabler/icons-react": "^3.36.1", - "dayjs": "^1.11.19", - "next": "16.1.1", - "react": "19.2.3", - "react-dom": "19.2.3", - "zod": "^4.2.1" + "@mantine/core": "catalog:", + "@tabler/icons-react": "catalog:", + "dayjs": "catalog:", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/modals-collection/src/boards/add-board-modal.tsx b/packages/modals-collection/src/boards/add-board-modal.tsx index 919335b9b..b18ca9851 100644 --- a/packages/modals-collection/src/boards/add-board-modal.tsx +++ b/packages/modals-collection/src/boards/add-board-modal.tsx @@ -57,10 +57,12 @@ export const AddBoardModal = createModal(({ actions }) => { {...form.getInputProps("name")} description={ boardNameStatus.description ? ( - - {boardNameStatus.description.icon ? : null} - {boardNameStatus.description.label} - + + + {boardNameStatus.description.icon ? : null} + {boardNameStatus.description.label} + + ) : null } /> diff --git a/packages/modals-collection/src/docker/add-docker-app-to-homarr.tsx b/packages/modals-collection/src/docker/add-docker-app-to-homarr.tsx index fc8567ccb..f94bf8f24 100644 --- a/packages/modals-collection/src/docker/add-docker-app-to-homarr.tsx +++ b/packages/modals-collection/src/docker/add-docker-app-to-homarr.tsx @@ -21,7 +21,7 @@ export const AddDockerAppToHomarrModal = createModal( { initialValues: { containerUrls: innerProps.selectedContainers.map((container) => { - if (container.ports[0]) { + if (Array.isArray(container.ports) && container.ports[0]) { return `http://${container.ports[0].IP}:${container.ports[0].PublicPort}`; } diff --git a/packages/modals/package.json b/packages/modals/package.json index b64517b95..8387be196 100644 --- a/packages/modals/package.json +++ b/packages/modals/package.json @@ -24,15 +24,15 @@ "dependencies": { "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", - "@mantine/core": "^8.3.12", - "@mantine/hooks": "^8.3.12", - "react": "19.2.3" + "@mantine/core": "catalog:", + "@mantine/hooks": "catalog:", + "react": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/notifications/package.json b/packages/notifications/package.json index f5c46d6f2..2409be83a 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -24,14 +24,14 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/ui": "workspace:^0.1.0", - "@mantine/notifications": "^8.3.12", - "@tabler/icons-react": "^3.36.1" + "@mantine/notifications": "catalog:", + "@tabler/icons-react": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/old-import/package.json b/packages/old-import/package.json index 345a34326..4f60fcad2 100644 --- a/packages/old-import/package.json +++ b/packages/old-import/package.json @@ -37,22 +37,22 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^8.3.12", - "@mantine/hooks": "^8.3.12", - "adm-zip": "0.5.16", - "next": "16.1.1", - "react": "19.2.3", - "react-dom": "19.2.3", - "superjson": "2.2.6", - "zod": "^4.2.1", - "zod-form-data": "^3.0.1" + "@mantine/core": "catalog:", + "@mantine/hooks": "catalog:", + "adm-zip": "catalog:", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "superjson": "catalog:", + "zod": "catalog:", + "zod-form-data": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/adm-zip": "0.5.7", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "@types/adm-zip": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/old-import/src/mappers/map-user.ts b/packages/old-import/src/mappers/map-user.ts index f0b57cebf..240961b3d 100644 --- a/packages/old-import/src/mappers/map-user.ts +++ b/packages/old-import/src/mappers/map-user.ts @@ -16,7 +16,7 @@ export const mapAndDecryptUsers = (importUsers: OldmarrImportUser[], encryptionT ({ id, password, - salt, + salt: _saltIsNotNeededAsPartOfPassword, settings, ...user }): InferInsertModel & { oldId: string; isAdmin: boolean } => ({ @@ -24,13 +24,12 @@ export const mapAndDecryptUsers = (importUsers: OldmarrImportUser[], encryptionT oldId: id, id: createId(), name: user.name.toLowerCase(), - colorScheme: settings?.colorScheme === "environment" ? undefined : settings?.colorScheme, + colorScheme: settings?.colorScheme === "environment" ? "auto" : settings?.colorScheme, firstDayOfWeek: settings?.firstDayOfWeek === "sunday" ? 0 : settings?.firstDayOfWeek === "monday" ? 1 : 6, provider: "credentials", pingIconsEnabled: settings?.replacePingWithIcons, isAdmin: user.isAdmin || user.isOwner, password: decryptSecretWithKey(password, key), - salt: decryptSecretWithKey(salt, key), }), ); }; diff --git a/packages/old-import/src/widgets/options.ts b/packages/old-import/src/widgets/options.ts index e3c58768f..32b1f25c3 100644 --- a/packages/old-import/src/widgets/options.ts +++ b/packages/old-import/src/widgets/options.ts @@ -101,6 +101,7 @@ const optionMapping: OptionMapping = { allowMicrophone: (oldOptions) => oldOptions.allowMicrophone, allowGeolocation: (oldOptions) => oldOptions.allowGeolocation, allowScrolling: (oldOptions) => oldOptions.allowScrolling, + allowModals: () => undefined, }, video: { feedUrl: (oldOptions) => oldOptions.FeedUrl, @@ -121,6 +122,7 @@ const optionMapping: OptionMapping = { maximumAmountPosts: (oldOptions) => oldOptions.maximumAmountOfPosts, textLinesClamp: (oldOptions) => oldOptions.textLinesClamp, hideDescription: () => undefined, + showPosterImage: () => true, // This was the default in oldmarr }, notebook: { allowReadOnlyCheck: (oldOptions) => oldOptions.allowReadOnlyCheck, @@ -161,6 +163,7 @@ const optionMapping: OptionMapping = { sectionIndicatorRequirement: (oldOptions) => "sectionIndicatorColor" in oldOptions ? oldOptions.sectionIndicatorColor : undefined, showUptime: () => undefined, + gpu: () => undefined, visibleClusterSections: (oldOptions) => { if (!("showNode" in oldOptions)) return undefined; diff --git a/packages/old-schema/package.json b/packages/old-schema/package.json index ddaa86717..9db60a184 100644 --- a/packages/old-schema/package.json +++ b/packages/old-schema/package.json @@ -23,13 +23,13 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", - "zod": "^4.2.1" + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/ping/package.json b/packages/ping/package.json index c73010fdc..6f0a9e6df 100644 --- a/packages/ping/package.json +++ b/packages/ping/package.json @@ -29,7 +29,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/redis/package.json b/packages/redis/package.json index bc8c47be0..6a5d14a38 100644 --- a/packages/redis/package.json +++ b/packages/redis/package.json @@ -26,14 +26,14 @@ "@homarr/core": "workspace:^", "@homarr/db": "workspace:^", "@homarr/definitions": "workspace:^", - "ioredis": "5.9.1", - "superjson": "2.2.6" + "ioredis": "catalog:", + "superjson": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/request-handler/package.json b/packages/request-handler/package.json index 9caed18e1..5504d6031 100644 --- a/packages/request-handler/package.json +++ b/packages/request-handler/package.json @@ -22,7 +22,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@extractus/feed-extractor": "7.1.7", + "@extractus/feed-extractor": "catalog:", "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", @@ -30,17 +30,17 @@ "@homarr/docker": "workspace:^0.1.0", "@homarr/integrations": "workspace:^0.1.0", "@homarr/redis": "workspace:^0.1.0", - "dayjs": "^1.11.19", - "octokit": "^5.0.5", - "superjson": "2.2.6", - "undici": "7.18.2", - "zod": "^4.2.1" + "dayjs": "catalog:", + "octokit": "catalog:", + "superjson": "catalog:", + "undici": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/request-handler/src/anchor-notes.ts b/packages/request-handler/src/anchor-notes.ts new file mode 100644 index 000000000..bd6f19e44 --- /dev/null +++ b/packages/request-handler/src/anchor-notes.ts @@ -0,0 +1,30 @@ +import dayjs from "dayjs"; + +import type { AnchorNote, AnchorNotesListInput, AnchorNoteSummary } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations"; + +import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; + +export const anchorNotesListRequestHandler = createCachedIntegrationRequestHandler< + AnchorNoteSummary[], + "anchor", + AnchorNotesListInput +>({ + queryKey: "anchorNotesList", + cacheDuration: dayjs.duration(15, "seconds"), + async requestAsync(integration, input) { + const instance = await createIntegrationAsync(integration); + return instance.listNotesAsync(input); + }, +}); + +export const anchorNoteRequestHandler = createCachedIntegrationRequestHandler( + { + queryKey: "anchorNote", + cacheDuration: dayjs.duration(15, "seconds"), + async requestAsync(integration, input) { + const instance = await createIntegrationAsync(integration); + return instance.getNoteAsync(input.noteId); + }, + }, +); diff --git a/packages/request-handler/src/coolify.ts b/packages/request-handler/src/coolify.ts new file mode 100644 index 000000000..d307a780f --- /dev/null +++ b/packages/request-handler/src/coolify.ts @@ -0,0 +1,19 @@ +import dayjs from "dayjs"; + +import { createIntegrationAsync } from "@homarr/integrations"; +import type { CoolifyInstanceInfo } from "@homarr/integrations/types"; + +import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; + +export const coolifyRequestHandler = createCachedIntegrationRequestHandler< + CoolifyInstanceInfo, + "coolify", + Record +>({ + async requestAsync(integration, _input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getInstanceInfoAsync(); + }, + cacheDuration: dayjs.duration(30, "seconds"), + queryKey: "coolifyInfo", +}); diff --git a/packages/request-handler/src/docker.ts b/packages/request-handler/src/docker.ts index 7bfb82a2b..371af6d5b 100644 --- a/packages/request-handler/src/docker.ts +++ b/packages/request-handler/src/docker.ts @@ -1,7 +1,11 @@ import type { Readable } from "node:stream"; import dayjs from "dayjs"; import type { Container, ContainerInfo, ContainerStats } from "dockerode"; +import type Dockerode from "dockerode"; +import { bestMatch } from "@homarr/common"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import { db, like, or } from "@homarr/db"; import { icons } from "@homarr/db/schema"; import type { ContainerState } from "@homarr/docker"; @@ -10,6 +14,8 @@ import { dockerLabels, DockerSingleton } from "@homarr/docker"; import { createDockerLogStreamProcessor, decodeDockerLogs } from "./docker-log-decode"; import { createCachedWidgetRequestHandler } from "./lib/cached-widget-request-handler"; +const logger = createLogger({ module: "dockerRequestHandler" }); + export const dockerContainersRequestHandler = createCachedWidgetRequestHandler({ queryKey: "dockerContainersResult", widgetKind: "dockerContainers", @@ -19,11 +25,10 @@ export const dockerContainersRequestHandler = createCachedWidgetRequestHandler({ cacheDuration: dayjs.duration(20, "seconds"), }); -const dockerInstances = DockerSingleton.getInstances(); - const extractImage = (container: ContainerInfo) => container.Image.split("/").at(-1)?.split(":").at(0) ?? ""; const findContainerByIdAsync = async (id: string) => { + const dockerInstances = DockerSingleton.getInstances(); const containers = await Promise.all( dockerInstances.map(async ({ instance }) => { const container = instance.getContainer(id); @@ -78,11 +83,6 @@ export const streamContainerLogsAsync = async ( follow: true, })) as Readable; - // Docker uses a multiplexed stream format for logs where each message has an 8-byte header: - // - 1 byte: stream type (stdout/stderr) - // - 3 bytes: padding - // - 4 bytes: payload length (big-endian) - // We need to process the stream in chunks and extract complete messages from the buffer. const MAX_MESSAGE_SIZE = 1024 * 1024; const processChunk = createDockerLogStreamProcessor(onData, onError, MAX_MESSAGE_SIZE); @@ -106,14 +106,31 @@ export const streamContainerLogsAsync = async ( }; async function getContainersWithStatsAsync() { - const containers = await Promise.all( + const dockerInstances = DockerSingleton.getInstances(); + const results = await Promise.allSettled( dockerInstances.map(async ({ instance, host }) => { const instanceContainers = await instance.listContainers({ all: true }); return instanceContainers .filter((container) => !(dockerLabels.hide in container.Labels)) .map((container) => ({ ...container, instance: host })); }), - ).then((res) => res.flat()); + ); + + const containers = results.flatMap((result, index) => { + if (result.status === "fulfilled") return result.value; + logger.warn( + new ErrorWithMetadata( + "Failed to list containers from Docker host", + { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + host: dockerInstances[index]!.host, + }, + { cause: result.reason }, + ), + ); + + return []; + }); const likeQueries = containers.map((container) => like(icons.name, `%${extractImage(container)}%`)); const dbIcons = @@ -127,8 +144,6 @@ async function getContainersWithStatsAsync() { const instance = dockerInstances.find(({ host }) => host === container.instance)?.instance; if (!instance) return null; - // Get stats, falling back to an empty stats object if fetch fails - // calculateCpuUsage and calculateMemoryUsage will return 0 for invalid/missing stats const stats = await instance .getContainer(container.Id) .stats({ stream: false, "one-shot": true }) @@ -146,27 +161,23 @@ async function getContainersWithStatsAsync() { return { id: container.Id, name: container.Names[0]?.split("/")[1] ?? "Unknown", + host: container.instance, state: container.State as ContainerState, - iconUrl: - dbIcons.find((icon) => { - const extractedImage = extractImage(container); - if (!extractedImage) return false; - return icon.name.toLowerCase().includes(extractedImage.toLowerCase()); - })?.url ?? null, + iconUrl: bestMatch(extractImage(container), dbIcons, (icon) => icon.name)?.url ?? null, cpuUsage, memoryUsage, image: container.Image, - // Docker Desktop on macOS can return null instead of an empty ports array - ports: (container.Ports as typeof container.Ports | null) ?? [], + ports: container.Ports as Dockerode.Port[] | undefined, }; }); return (await Promise.all(containerStatsPromises)).filter((container) => container !== null); } -function calculateCpuUsage(stats: ContainerStats): number { - // Handle containers with missing or invalid stats (e.g., exited, dead containers) - if (!stats.cpu_stats.online_cpus || stats.cpu_stats.online_cpus === 0 || !stats.cpu_stats.cpu_usage.total_usage) { +export function calculateCpuUsage(stats: ContainerStats): number { + // Handle containers with missing or invalid stats (e.g., exited, dead containers, Podman responses) + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (!stats.cpu_stats?.online_cpus || stats.cpu_stats.online_cpus === 0 || !stats.cpu_stats.cpu_usage?.total_usage) { return 0; } @@ -179,14 +190,13 @@ function calculateCpuUsage(stats: ContainerStats): number { return (stats.cpu_stats.cpu_usage.total_usage / usage) * numberOfCpus * 100; } -function calculateMemoryUsage(stats: ContainerStats): number { - // Handle containers with missing or invalid stats (e.g., exited, dead containers) - if (!stats.memory_stats.usage) { +export function calculateMemoryUsage(stats: ContainerStats): number { + // Handle containers with missing or invalid stats (e.g., exited, dead containers, Podman responses) + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (!stats.memory_stats?.usage) { return 0; } - // memory usage by default includes cache, which should not be shown as it is also not shown with docker stats command - // See https://docs.docker.com/reference/cli/docker/container/stats/ how it is / was calculated return ( stats.memory_stats.usage - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition diff --git a/packages/request-handler/src/duckduckgo-bangs.ts b/packages/request-handler/src/duckduckgo-bangs.ts new file mode 100644 index 000000000..a51bf5327 --- /dev/null +++ b/packages/request-handler/src/duckduckgo-bangs.ts @@ -0,0 +1,79 @@ +import dayjs from "dayjs"; +import { z } from "zod"; + +import { env } from "@homarr/common/env"; +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; +import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout"; +import { createChannelWithLatestAndEvents } from "@homarr/redis"; +import { createCachedRequestHandler } from "@homarr/request-handler/lib/cached-request-handler"; + +export type DuckDuckGoBang = z.infer; + +const DUCKDUCKGO_BANGS_URL = "https://duckduckgo.com/bang.js"; + +/** + * DuckDuckGo `bang.js` uses short keys (to reduce the payload size): + * - `t`: bang token (e.g. `"yt"`) + * - `s`: display name + * - `d`: domain (optional) + * - `u`: URL template (contains `{{{s}}}`) + * - `c`: category (optional) + * - `sc`: subcategory (optional) + * - `r`: rank (optional) + */ +export const duckDuckGoBangSchema = z.object({ + t: z.string(), + s: z.string(), + d: z.string().optional(), + u: z.string(), + c: z.string().optional(), + sc: z.string().optional(), + r: z.number().optional(), +}); + +const duckDuckGoBangsResponseSchema = z.array(duckDuckGoBangSchema); + +const normalizeBangToken = (token: string) => token.toLowerCase().trim(); + +const compareBangTokenAsc = (left: DuckDuckGoBang, right: DuckDuckGoBang) => left.t.localeCompare(right.t); + +export const duckDuckGoBangsRequestHandler = createCachedRequestHandler({ + queryKey: "duckduckgo-bangs", + cacheDuration: dayjs.duration(1, "day"), + async requestAsync(_) { + if (env.NO_EXTERNAL_CONNECTION) { + return []; + } + + const res = await withTimeoutAsync(async (signal) => { + return await fetchWithTrustedCertificatesAsync(DUCKDUCKGO_BANGS_URL, { + signal, + headers: { + accept: "application/json,text/plain,*/*", + }, + }); + }); + + if (!res.ok) { + throw new ResponseError(res); + } + + const json: unknown = await res.json(); + const bangs = await duckDuckGoBangsResponseSchema.parseAsync(json); + + const normalized = bangs + .map((bang) => ({ + ...bang, + t: normalizeBangToken(bang.t), + })) + .filter((bang) => bang.t.length > 0); + + normalized.sort(compareBangTokenAsc); + + return normalized; + }, + createRedisChannel() { + return createChannelWithLatestAndEvents("homarr:duckduckgo-bangs"); + }, +}); diff --git a/packages/request-handler/src/health-monitoring.ts b/packages/request-handler/src/health-monitoring.ts index 3a8959286..98d0cce3d 100644 --- a/packages/request-handler/src/health-monitoring.ts +++ b/packages/request-handler/src/health-monitoring.ts @@ -8,7 +8,7 @@ import { createCachedIntegrationRequestHandler } from "./lib/cached-integration- export const systemInfoRequestHandler = createCachedIntegrationRequestHandler< SystemHealthMonitoring, - Exclude, "proxmox">, + Exclude, "proxmox" | "coolify">, Record >({ async requestAsync(integration, _input) { diff --git a/packages/request-handler/src/immich.ts b/packages/request-handler/src/immich.ts new file mode 100644 index 000000000..e95cb32b8 --- /dev/null +++ b/packages/request-handler/src/immich.ts @@ -0,0 +1,50 @@ +import dayjs from "dayjs"; + +import type { IntegrationKindByCategory } from "@homarr/definitions"; +import { createIntegrationAsync } from "@homarr/integrations"; +import type { ImmichAlbum, ImmichServerStats } from "@homarr/integrations"; + +import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; + +export const immichStatsRequestHandler = createCachedIntegrationRequestHandler< + ImmichServerStats, + IntegrationKindByCategory<"photoService">, + Record +>({ + async requestAsync(integration) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getServerStatsAsync(); + }, + cacheDuration: dayjs.duration(15, "minute"), + queryKey: "immich-server-stats", +}); + +export const immichAlbumsRequestHandler = createCachedIntegrationRequestHandler< + { + id: string; + albumName: string; + assetCount: number; + }[], + IntegrationKindByCategory<"photoService">, + Record +>({ + async requestAsync(integration) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getAlbumsAsync(); + }, + cacheDuration: dayjs.duration(15, "minute"), + queryKey: "immich-albums", +}); + +export const immichAlbumRequestHandler = createCachedIntegrationRequestHandler< + ImmichAlbum, + IntegrationKindByCategory<"photoService">, + { albumId: string } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getAlbumAsync(input.albumId); + }, + cacheDuration: dayjs.duration(15, "minute"), + queryKey: "immich-album", +}); diff --git a/packages/request-handler/src/rss-feeds.ts b/packages/request-handler/src/rss-feeds.ts index e1c9f68c5..9eaf026ea 100644 --- a/packages/request-handler/src/rss-feeds.ts +++ b/packages/request-handler/src/rss-feeds.ts @@ -28,7 +28,7 @@ export const rssFeedsRequestHandler = createCachedWidgetRequestHandler({ return { ...result, - entries: result.entries?.slice(0, input.count) ?? [], + entries: result.entries?.map((entry) => ({ ...entry, feedUrl: input.url })).slice(0, input.count) ?? [], }; }, cacheDuration: dayjs.duration(5, "minutes"), @@ -108,7 +108,8 @@ const getFirstMediaProperty = (feedObject: object) => { * We extend the feed with custom properties. * This interface adds properties on top of the default ones. */ -interface ExtendedFeedEntry extends FeedEntry { +export interface ExtendedFeedEntry extends FeedEntry { + feedUrl: string; enclosure?: string; } diff --git a/packages/request-handler/src/speedtest-tracker.ts b/packages/request-handler/src/speedtest-tracker.ts new file mode 100644 index 000000000..799d37f16 --- /dev/null +++ b/packages/request-handler/src/speedtest-tracker.ts @@ -0,0 +1,19 @@ +import dayjs from "dayjs"; + +import { createIntegrationAsync } from "@homarr/integrations"; +import type { SpeedtestTrackerDashboardData } from "@homarr/integrations/types"; + +import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; + +export const speedtestTrackerRequestHandler = createCachedIntegrationRequestHandler< + SpeedtestTrackerDashboardData, + "speedtestTracker", + Record +>({ + async requestAsync(integration, _input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getDashboardDataAsync(); + }, + cacheDuration: dayjs.duration(10, "minutes"), + queryKey: "speedtestTrackerDashboard", +}); diff --git a/packages/request-handler/src/test/docker.spec.ts b/packages/request-handler/src/test/docker.spec.ts new file mode 100644 index 000000000..b4e34f816 --- /dev/null +++ b/packages/request-handler/src/test/docker.spec.ts @@ -0,0 +1,121 @@ +import type { ContainerStats } from "dockerode"; +import { describe, expect, test, vi } from "vitest"; + +import { createDb } from "@homarr/db/test"; + +import { calculateCpuUsage, calculateMemoryUsage } from "../docker"; + +vi.mock("@homarr/db", async (importActual) => { + // eslint-disable-next-line @typescript-eslint/consistent-type-imports + const actual = await importActual(); + return { + ...actual, + db: createDb(), + }; +}); + +// Helper to create a partial stats object, cast to ContainerStats. +// This mirrors what Podman and other Docker-compatible runtimes may return +// at runtime, even though @types/dockerode declares all fields as required. +const createStats = (overrides: Record = {}) => overrides as unknown as ContainerStats; + +describe("calculateCpuUsage", () => { + test("should return 0 when cpu_stats is undefined (Podman)", () => { + const stats = createStats({ cpu_stats: undefined }); + expect(calculateCpuUsage(stats)).toBe(0); + }); + + test("should return 0 when online_cpus is 0", () => { + const stats = createStats({ + cpu_stats: { online_cpus: 0, cpu_usage: { total_usage: 1000 }, system_cpu_usage: 5000 }, + }); + expect(calculateCpuUsage(stats)).toBe(0); + }); + + test("should return 0 when online_cpus is undefined", () => { + const stats = createStats({ + cpu_stats: { cpu_usage: { total_usage: 1000 }, system_cpu_usage: 5000 }, + }); + expect(calculateCpuUsage(stats)).toBe(0); + }); + + test("should return 0 when cpu_usage is undefined", () => { + const stats = createStats({ + cpu_stats: { online_cpus: 4, system_cpu_usage: 5000 }, + }); + expect(calculateCpuUsage(stats)).toBe(0); + }); + + test("should return 0 when total_usage is 0", () => { + const stats = createStats({ + cpu_stats: { online_cpus: 4, cpu_usage: { total_usage: 0 }, system_cpu_usage: 5000 }, + }); + expect(calculateCpuUsage(stats)).toBe(0); + }); + + test("should return 0 when system_cpu_usage is 0", () => { + const stats = createStats({ + cpu_stats: { online_cpus: 4, cpu_usage: { total_usage: 1000 }, system_cpu_usage: 0 }, + }); + expect(calculateCpuUsage(stats)).toBe(0); + }); + + test("should calculate correct CPU percentage for valid stats", () => { + const stats = createStats({ + cpu_stats: { online_cpus: 4, cpu_usage: { total_usage: 2000 }, system_cpu_usage: 10000 }, + }); + // (2000 / 10000) * 4 * 100 = 80 + expect(calculateCpuUsage(stats)).toBe(80); + }); + + test("should handle fractional CPU usage", () => { + const stats = createStats({ + cpu_stats: { online_cpus: 2, cpu_usage: { total_usage: 500 }, system_cpu_usage: 100000 }, + }); + // (500 / 100000) * 2 * 100 = 1 + expect(calculateCpuUsage(stats)).toBe(1); + }); +}); + +describe("calculateMemoryUsage", () => { + test("should return 0 when memory_stats is undefined (Podman)", () => { + const stats = createStats({ memory_stats: undefined }); + expect(calculateMemoryUsage(stats)).toBe(0); + }); + + test("should return 0 when memory_stats.usage is 0", () => { + const stats = createStats({ memory_stats: { usage: 0 } }); + expect(calculateMemoryUsage(stats)).toBe(0); + }); + + test("should return 0 when memory_stats.usage is undefined", () => { + const stats = createStats({ memory_stats: {} }); + expect(calculateMemoryUsage(stats)).toBe(0); + }); + + test("should subtract cache from usage", () => { + const stats = createStats({ + memory_stats: { usage: 1000, stats: { cache: 200 } }, + }); + expect(calculateMemoryUsage(stats)).toBe(800); + }); + + test("should use total_inactive_file when cache is absent", () => { + const stats = createStats({ + memory_stats: { usage: 1000, stats: { total_inactive_file: 300 } }, + }); + expect(calculateMemoryUsage(stats)).toBe(700); + }); + + test("should use inactive_file as last fallback", () => { + const stats = createStats({ + memory_stats: { usage: 1000, stats: { inactive_file: 150 } }, + }); + expect(calculateMemoryUsage(stats)).toBe(850); + }); + + test("should return raw usage when memory_stats.stats is undefined", () => { + const stats = createStats({ memory_stats: { usage: 512 } }); + expect(calculateMemoryUsage(stats)).toBe(512); + }); +}); diff --git a/packages/request-handler/src/test/update-checker.spec.ts b/packages/request-handler/src/test/update-checker.spec.ts new file mode 100644 index 000000000..4c8c1e94b --- /dev/null +++ b/packages/request-handler/src/test/update-checker.spec.ts @@ -0,0 +1,138 @@ +import type { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods"; +import { Octokit } from "octokit"; +import { beforeEach, describe, expect, test, vi } from "vitest"; + +import { getAvailableUpdatesAsync } from "../update-checker"; + +const mockEnv = vi.hoisted(() => ({ + NO_EXTERNAL_CONNECTION: false, +})); + +vi.mock("@homarr/common/env", () => ({ + env: mockEnv, +})); + +vi.mock("octokit", () => { + const mockOctokit = { + rest: { + repos: { + listReleases: vi.fn(), + }, + }, + }; + return { + Octokit: class { + rest = mockOctokit.rest; + }, + }; +}); + +describe("getAvailableUpdatesAsync", () => { + beforeEach(() => { + mockEnv.NO_EXTERNAL_CONNECTION = false; + }); + + test("should return available non pre-release updates", async () => { + // Arrange + const currentVersion = "v1.2.3"; + const releases = fakeReleasesWithPrereleases(); + const listReleasesSpy = vi.spyOn(new Octokit().rest.repos, "listReleases"); + listReleasesSpy.mockReturnValue(Promise.resolve({ data: releases, status: 200, headers: {}, url: "" })); + + // Act + const result = await getAvailableUpdatesAsync(currentVersion); + + // Assert + expect(result.map((update) => update.tagName)).toEqual(["v1.3.0", "v1.2.4"]); + expect(listReleasesSpy).toHaveBeenCalledWith({ + owner: "homarr-labs", + repo: "homarr", + }); + }); + + test("should return all available updates", async () => { + // Arrange + const currentVersion = "v1.2.4-beta.2"; + const releases = fakeReleasesWithPrereleases(); + const listReleasesSpy = vi.spyOn(new Octokit().rest.repos, "listReleases"); + listReleasesSpy.mockReturnValue(Promise.resolve({ data: releases, status: 200, headers: {}, url: "" })); + + // Act + const result = await getAvailableUpdatesAsync(currentVersion); + + // Assert + expect(result.map((update) => update.tagName)).toEqual([ + "v1.3.1-beta.1", + "v1.3.0", + "v1.3.0-beta.1", + "v1.2.4", + "v1.2.4-beta.3", + ]); + expect(listReleasesSpy).toHaveBeenCalledWith({ + owner: "homarr-labs", + repo: "homarr", + query: undefined, + }); + }); + + test("should skip releases with invalid semver tags", async () => { + // Arrange + const currentVersion = "v1.2.3"; + const releases = fakeReleases(["v1.2.4", false], ["invalid-tag", false], ["v1.3.0", false]); + const listReleasesSpy = vi.spyOn(new Octokit().rest.repos, "listReleases"); + listReleasesSpy.mockReturnValue(Promise.resolve({ data: releases, status: 200, headers: {}, url: "" })); + + // Act + const result = await getAvailableUpdatesAsync(currentVersion); + + // Assert + expect(result.map((update) => update.tagName)).toEqual(["v1.3.0", "v1.2.4"]); + }); + + test("should throw error for invalid current version", async () => { + // Arrange + const currentVersion = "invalid-version"; + + // Act + const act = () => getAvailableUpdatesAsync(currentVersion); + + // Assert + await expect(act()).rejects.toThrow("non semantic current version"); + }); + + test("should return empty array when NO_EXTERNAL_CONNECTION=true", async () => { + // Arrange + mockEnv.NO_EXTERNAL_CONNECTION = true; + const currentVersion = "v1.0.0"; + + // Act + const result = await getAvailableUpdatesAsync(currentVersion); + + // Assert + expect(result).toEqual([]); + }); +}); + +const fakeReleases = (...inputs: [string, boolean][]) => inputs.map(fakeRelease); +const fakeRelease = ([tagName, isPrerelease]: [string, boolean]) => + ({ + tag_name: tagName, + html_url: `https://github.com/homarr-labs/homarr/releases/tag/${tagName}`, + name: tagName, + body_html: undefined, + prerelease: isPrerelease, + }) as RestEndpointMethodTypes["repos"]["listReleases"]["response"]["data"][number]; + +const fakeReleasesWithPrereleases = () => + fakeReleases( + ["v1.1.0", false], + ["v1.2.2", false], + ["v1.2.3", false], + ["v1.2.4-beta.1", true], + ["v1.2.4-beta.2", true], + ["v1.2.4-beta.3", true], + ["v1.2.4", false], + ["v1.3.0-beta.1", true], + ["v1.3.0", false], + ["v1.3.1-beta.1", true], + ); diff --git a/packages/request-handler/src/timetable.ts b/packages/request-handler/src/timetable.ts new file mode 100644 index 000000000..0946ac67d --- /dev/null +++ b/packages/request-handler/src/timetable.ts @@ -0,0 +1,36 @@ +import dayjs from "dayjs"; + +import type { IntegrationKindByCategory } from "@homarr/definitions"; +import { createIntegrationAsync } from "@homarr/integrations"; +import type { Station, Timetable } from "@homarr/integrations/types"; + +import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; + +export const timetableSearchStationsRequestHandler = createCachedIntegrationRequestHandler< + Station[], + IntegrationKindByCategory<"timetable">, + { query: string } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.searchStationsAsync(input.query); + }, + queryKey: "timetableSearchStations", + cacheDuration: dayjs.duration(1, "day"), +}); + +export const timetableGetTimetableRequestHandler = createCachedIntegrationRequestHandler< + Timetable, + IntegrationKindByCategory<"timetable">, + { stationId: string; limit: number } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getTimetableAsync({ + stationId: input.stationId, + limit: input.limit, + }); + }, + queryKey: "timetableGetTimetable", + cacheDuration: dayjs.duration(1, "minute"), +}); diff --git a/packages/request-handler/src/tracearr.ts b/packages/request-handler/src/tracearr.ts new file mode 100644 index 000000000..8f593ac03 --- /dev/null +++ b/packages/request-handler/src/tracearr.ts @@ -0,0 +1,19 @@ +import dayjs from "dayjs"; + +import { createIntegrationAsync } from "@homarr/integrations"; +import type { TracearrDashboardData } from "@homarr/integrations/types"; + +import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; + +export const tracearrRequestHandler = createCachedIntegrationRequestHandler< + TracearrDashboardData, + "tracearr", + Record +>({ + async requestAsync(integration, _input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getDashboardDataAsync(); + }, + cacheDuration: dayjs.duration(5, "seconds"), + queryKey: "tracearrDashboard", +}); diff --git a/packages/request-handler/src/umami.ts b/packages/request-handler/src/umami.ts new file mode 100644 index 000000000..e943c568a --- /dev/null +++ b/packages/request-handler/src/umami.ts @@ -0,0 +1,84 @@ +import dayjs from "dayjs"; + +import { createIntegrationAsync } from "@homarr/integrations"; +import type { UmamiEventSeries, UmamiMetricItem, UmamiVisitorStats } from "@homarr/integrations/types"; + +import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; + +export const umamiRequestHandler = createCachedIntegrationRequestHandler< + UmamiVisitorStats, + "umami", + { websiteId: string; timeFrame: string; eventName?: string } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getVisitorStatsAsync(input.websiteId, input.timeFrame, input.eventName); + }, + cacheDuration: dayjs.duration(5, "minutes"), + queryKey: "umamiVisitorStats", +}); + +export const umamiEventNamesRequestHandler = createCachedIntegrationRequestHandler< + string[], + "umami", + { websiteId: string } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getEventNamesAsync(input.websiteId); + }, + cacheDuration: dayjs.duration(5, "minutes"), + queryKey: "umamiEventNames", +}); + +export const umamiTopPagesRequestHandler = createCachedIntegrationRequestHandler< + UmamiMetricItem[], + "umami", + { websiteId: string; timeFrame: string; limit: number } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getTopPagesAsync(input.websiteId, input.timeFrame, input.limit); + }, + cacheDuration: dayjs.duration(5, "minutes"), + queryKey: "umamiTopPages", +}); + +export const umamiTopReferrersRequestHandler = createCachedIntegrationRequestHandler< + UmamiMetricItem[], + "umami", + { websiteId: string; timeFrame: string; limit: number } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getTopReferrersAsync(input.websiteId, input.timeFrame, input.limit); + }, + cacheDuration: dayjs.duration(5, "minutes"), + queryKey: "umamiTopReferrers", +}); + +export const umamiMultiEventRequestHandler = createCachedIntegrationRequestHandler< + UmamiEventSeries[], + "umami", + { websiteId: string; timeFrame: string; eventNames: string[] } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getMultiEventTimeSeriesAsync(input.websiteId, input.timeFrame, input.eventNames); + }, + cacheDuration: dayjs.duration(5, "minutes"), + queryKey: "umamiMultiEvent", +}); + +export const umamiActiveVisitorsRequestHandler = createCachedIntegrationRequestHandler< + number, + "umami", + { websiteId: string } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getActiveVisitorsAsync(input.websiteId); + }, + cacheDuration: dayjs.duration(30, "seconds"), + queryKey: "umamiActiveVisitors", +}); diff --git a/packages/request-handler/src/update-checker.ts b/packages/request-handler/src/update-checker.ts index 755f14d3b..bd09ce89d 100644 --- a/packages/request-handler/src/update-checker.ts +++ b/packages/request-handler/src/update-checker.ts @@ -1,10 +1,11 @@ import dayjs from "dayjs"; import { Octokit } from "octokit"; -import { compareSemVer, isValidSemVer } from "semver-parser"; +import { compareSemVer, isValidSemVer, parseSemVer } from "semver-parser"; import { env } from "@homarr/common/env"; import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import { createChannelWithLatestAndEvents } from "@homarr/redis"; import { createCachedRequestHandler } from "@homarr/request-handler/lib/cached-request-handler"; @@ -16,58 +17,101 @@ export const updateCheckerRequestHandler = createCachedRequestHandler({ queryKey: "homarr-update-checker", cacheDuration: dayjs.duration(1, "hour"), async requestAsync(_) { - if (env.NO_EXTERNAL_CONNECTION) - return { - availableUpdates: [], - }; - - const octokit = new Octokit({ - request: { - fetch: fetchWithTrustedCertificatesAsync, - }, - }); - const releases = await octokit.rest.repos.listReleases({ - owner: "homarr-labs", - repo: "homarr", - }); - - const currentVersion = (packageJson as { version: string }).version; - const availableReleases = []; - - for (const release of releases.data) { - if (!isValidSemVer(release.tag_name)) { - logger.warn("Unable to parse semantic tag. Update check might not work.", { tagName: release.tag_name }); - continue; - } - - availableReleases.push(release); - } - - const availableNewerReleases = availableReleases - .filter((release) => compareSemVer(release.tag_name, currentVersion) > 0) - .sort((releaseA, releaseB) => compareSemVer(releaseB.tag_name, releaseA.tag_name)); - if (availableNewerReleases.length > 0) { - logger.info( - "Update checker found a new available version", - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - { version: availableReleases[0]!.tag_name, currentVersion }, - ); - } else { - logger.debug("Update checker did not find any available updates", { currentVersion }); - } - return { - availableUpdates: availableNewerReleases.map((release) => ({ - name: release.name, - contentHtml: release.body_html, - url: release.html_url, - tagName: release.tag_name, - })), + availableUpdates: await getAvailableUpdatesAsync(packageJson.version), }; }, createRedisChannel() { return createChannelWithLatestAndEvents<{ - availableUpdates: { name: string | null; contentHtml?: string; url: string; tagName: string }[]; + availableUpdates: Update[]; }>("homarr:update"); }, }); + +interface Update { + name: string | null; + contentHtml?: string; + url: string; + tagName: string; + isPrerelease: boolean; +} + +const isPrereleaseTag = (tagName: string) => { + try { + const parsed = parseSemVer(tagName); + return Boolean(parsed.pre?.length); + } catch { + return false; + } +}; + +export const getAvailableUpdatesAsync = async (currentVersion: string) => { + if (env.NO_EXTERNAL_CONNECTION) return []; + + if (!isValidSemVer(currentVersion)) { + throw new ErrorWithMetadata("Unable to check for updates due to non semantic current version", { + currentVersion, + }); + } + + const octokit = new Octokit({ + request: { + fetch: fetchWithTrustedCertificatesAsync, + }, + }); + + const isCurrentPrerelease = isPrereleaseTag(currentVersion); + + const releases = await octokit.rest.repos.listReleases({ + owner: "homarr-labs", + repo: "homarr", + }); + + const { skippedTags, semanticReleases } = releases.data + .map((release) => ({ + name: release.name, + contentHtml: release.body_html, + url: release.html_url, + tagName: release.tag_name, + isPrerelease: release.prerelease, + })) + .reduce( + (prev, curr) => { + if (!isValidSemVer(curr.tagName)) { + prev.skippedTags.push(curr.tagName); + return prev; + } + + prev.semanticReleases.push(curr); + return prev; + }, + { semanticReleases: [] as Update[], skippedTags: [] as string[] }, + ); + + if (skippedTags.length > 0) { + logger.warn( + "Some releases were skipped during the update check because their tag name is not a valid semantic version", + { + skippedTags: skippedTags.join(","), + }, + ); + } + + const availableUpdates = semanticReleases + .filter((release) => isCurrentPrerelease || !release.isPrerelease) + .filter((release) => compareSemVer(release.tagName, currentVersion) > 0) + .sort((releaseA, releaseB) => compareSemVer(releaseB.tagName, releaseA.tagName)); + + if (availableUpdates.length === 0) { + logger.debug("No available updates found", { currentVersion }); + return []; + } + + logger.info("Found available updates", { + version: availableUpdates[0]?.tagName, + count: availableUpdates.length, + currentVersion, + }); + + return availableUpdates; +}; diff --git a/packages/server-settings/package.json b/packages/server-settings/package.json index c1b4ee200..494bc2a91 100644 --- a/packages/server-settings/package.json +++ b/packages/server-settings/package.json @@ -29,7 +29,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/server-settings/src/index.ts b/packages/server-settings/src/index.ts index 5c4470f6a..65b0cd354 100644 --- a/packages/server-settings/src/index.ts +++ b/packages/server-settings/src/index.ts @@ -36,7 +36,7 @@ export const defaultServerSettings = { enableGravatar: true, }, appearance: { - defaultColorScheme: "light" as ColorScheme, + defaultColorScheme: "auto" as ColorScheme, }, culture: { defaultLocale: "en" as SupportedLanguage, diff --git a/packages/settings/package.json b/packages/settings/package.json index fd50bc3a1..ab2e62a2e 100644 --- a/packages/settings/package.json +++ b/packages/settings/package.json @@ -25,16 +25,16 @@ "dependencies": { "@homarr/db": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", - "@mantine/dates": "^8.3.12", - "next": "16.1.1", - "react": "19.2.3", - "react-dom": "19.2.3" + "@mantine/dates": "catalog:", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/settings/src/creator.ts b/packages/settings/src/creator.ts index a23906948..8e1595dce 100644 --- a/packages/settings/src/creator.ts +++ b/packages/settings/src/creator.ts @@ -8,6 +8,7 @@ export type SettingsContextProps = Pick< | "homeBoardId" | "mobileHomeBoardId" | "openSearchInNewTab" + | "ddgBangs" | "pingIconsEnabled" > & Pick & @@ -29,6 +30,7 @@ export type UserSettings = Pick< | "homeBoardId" | "mobileHomeBoardId" | "openSearchInNewTab" + | "ddgBangs" | "pingIconsEnabled" >; @@ -41,6 +43,7 @@ export const createSettings = ({ }) => ({ defaultSearchEngineId: user?.defaultSearchEngineId ?? serverSettings.search.defaultSearchEngineId, openSearchInNewTab: user?.openSearchInNewTab ?? true, + ddgBangs: user?.ddgBangs ?? true, firstDayOfWeek: user?.firstDayOfWeek ?? (1 as const), homeBoardId: user?.homeBoardId ?? serverSettings.board.homeBoardId, mobileHomeBoardId: user?.mobileHomeBoardId ?? serverSettings.board.mobileHomeBoardId, diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index af0540de5..c7903ee49 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -33,21 +33,21 @@ "@homarr/settings": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", - "@mantine/core": "^8.3.12", - "@mantine/hooks": "^8.3.12", - "@mantine/spotlight": "^8.3.12", - "@tabler/icons-react": "^3.36.1", - "jotai": "^2.16.1", - "next": "16.1.1", - "react": "19.2.3", - "react-dom": "19.2.3", - "use-deep-compare-effect": "^1.8.1" + "@mantine/core": "catalog:", + "@mantine/hooks": "catalog:", + "@mantine/spotlight": "catalog:", + "@tabler/icons-react": "catalog:", + "jotai": "catalog:", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "use-deep-compare-effect": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/spotlight/src/components/actions/group-actions.tsx b/packages/spotlight/src/components/actions/group-actions.tsx index 0477e0ce2..cc71591b9 100644 --- a/packages/spotlight/src/components/actions/group-actions.tsx +++ b/packages/spotlight/src/components/actions/group-actions.tsx @@ -12,6 +12,7 @@ import { SpotlightGroupActionItem } from "./items/group-action-item"; interface GroupActionsProps> { group: SearchGroup; query: string; + setQuery: (query: string) => void; setMode: (mode: keyof TranslationObject["search"]["mode"]) => void; setChildrenOptions: (options: inferSearchInteractionOptions<"children">) => void; } @@ -19,6 +20,7 @@ interface GroupActionsProps> { export const SpotlightGroupActions = >({ group, query, + setQuery, setMode, setChildrenOptions, }: GroupActionsProps) => { @@ -58,6 +60,7 @@ export const SpotlightGroupActions = >({ option={option} group={group} query={query} + setQuery={setQuery} setMode={setMode} setChildrenOptions={setChildrenOptions} /> @@ -90,6 +93,7 @@ export const SpotlightGroupActions = >({ option={option} group={group} query={query} + setQuery={setQuery} setMode={setMode} setChildrenOptions={setChildrenOptions} /> diff --git a/packages/spotlight/src/components/actions/groups/action-group.tsx b/packages/spotlight/src/components/actions/groups/action-group.tsx index 300e0f10a..2b3e282ec 100644 --- a/packages/spotlight/src/components/actions/groups/action-group.tsx +++ b/packages/spotlight/src/components/actions/groups/action-group.tsx @@ -11,6 +11,7 @@ import { SpotlightGroupActions } from "../group-actions"; interface SpotlightActionGroupsProps { groups: SearchGroup[]; query: string; + setQuery: (query: string) => void; setMode: (mode: keyof TranslationObject["search"]["mode"]) => void; setChildrenOptions: (options: inferSearchInteractionOptions<"children">) => void; } @@ -19,7 +20,10 @@ export const SpotlightActionGroups = ({ groups, ...others }: SpotlightActionGrou const t = useI18n(); return groups.map((group) => ( - + {/*eslint-disable-next-line @typescript-eslint/no-explicit-any */} group={group} {...others} /> diff --git a/packages/spotlight/src/components/actions/items/group-action-item.tsx b/packages/spotlight/src/components/actions/items/group-action-item.tsx index d5f85f3be..eb48e04b2 100644 --- a/packages/spotlight/src/components/actions/items/group-action-item.tsx +++ b/packages/spotlight/src/components/actions/items/group-action-item.tsx @@ -5,11 +5,13 @@ import { Link } from "@homarr/ui"; import type { SearchGroup } from "../../../lib/group"; import type { inferSearchInteractionOptions } from "../../../lib/interaction"; +import { selectAction, spotlightStore } from "../../../spotlight-store"; import classes from "./action-item.module.css"; interface SpotlightGroupActionItemProps> { option: TOption; query: string; + setQuery: (query: string) => void; setMode: (mode: keyof TranslationObject["search"]["mode"]) => void; setChildrenOptions: (options: inferSearchInteractionOptions<"children">) => void; group: SearchGroup; @@ -18,11 +20,15 @@ interface SpotlightGroupActionItemProps> export const SpotlightGroupActionItem = >({ group, query, + setQuery, setMode, setChildrenOptions, option, }: SpotlightGroupActionItemProps) => { const interaction = group.useInteraction(option, query); + // Avoid passing React's special `key` prop via spread + + const { key: _reactKey, ...optionProps } = option as unknown as { key?: unknown } & Record; const renderRoot = interaction.type === "link" @@ -34,6 +40,9 @@ export const SpotlightGroupActionItem = const handleClickAsync = async () => { if (interaction.type === "javaScript") { await interaction.onSelect(); + } else if (interaction.type === "setQuery") { + setQuery(interaction.query); + setTimeout(() => selectAction(0, spotlightStore)); } else if (interaction.type === "mode") { setMode(interaction.mode); } else if (interaction.type === "children") { @@ -46,11 +55,14 @@ export const SpotlightGroupActionItem = renderRoot={renderRoot} onClick={handleClickAsync} closeSpotlightOnTrigger={ - interaction.type !== "mode" && interaction.type !== "children" && interaction.type !== "none" + interaction.type !== "mode" && + interaction.type !== "children" && + interaction.type !== "none" && + interaction.type !== "setQuery" } className={classes.spotlightAction} > - + ); }; diff --git a/packages/spotlight/src/components/spotlight.tsx b/packages/spotlight/src/components/spotlight.tsx index c99a76973..c90542f45 100644 --- a/packages/spotlight/src/components/spotlight.tsx +++ b/packages/spotlight/src/components/spotlight.tsx @@ -4,7 +4,7 @@ import type { Dispatch, SetStateAction } from "react"; import { useMemo, useRef, useState } from "react"; import { ActionIcon, Center, Group, Kbd } from "@mantine/core"; import { Spotlight as MantineSpotlight } from "@mantine/spotlight"; -import { IconQuestionMark, IconSearch, IconX } from "@tabler/icons-react"; +import { IconSearch, IconX } from "@tabler/icons-react"; import { hotkeys } from "@homarr/definitions"; import type { TranslationObject } from "@homarr/translation"; @@ -13,6 +13,7 @@ import { useI18n } from "@homarr/translation/client"; import type { inferSearchInteractionOptions } from "../lib/interaction"; import type { SearchMode } from "../lib/mode"; import { searchModes } from "../modes"; +import { useHomeEmptyGroups } from "../modes/help/home-empty-groups"; import { selectAction, spotlightStore } from "../spotlight-store"; import { SpotlightChildrenActions } from "./actions/children-actions"; import { SpotlightActionGroups } from "./actions/groups/action-group"; @@ -22,6 +23,7 @@ type SearchModeKey = keyof TranslationObject["search"]["mode"]; const defaultMode = "home"; export const Spotlight = () => { const searchModeState = useState(defaultMode); + const queryState = useState(""); const mode = searchModeState[0]; const activeMode = useMemo(() => searchModes.find((searchMode) => searchMode.modeKey === mode), [mode]); @@ -30,16 +32,19 @@ export const Spotlight = () => { } // We use the "key" below to prevent the 'Different amounts of hooks' error - return ; + return ( + + ); }; interface SpotlightWithActiveModeProps { modeState: [SearchModeKey, Dispatch>]; + queryState: [string, Dispatch>]; activeMode: SearchMode; } -const SpotlightWithActiveMode = ({ modeState, activeMode }: SpotlightWithActiveModeProps) => { - const [query, setQuery] = useState(""); +const SpotlightWithActiveMode = ({ modeState, queryState, activeMode }: SpotlightWithActiveModeProps) => { + const [query, setQuery] = queryState; const [mode, setMode] = modeState; const [childrenOptions, setChildrenOptions] = useState | null>(null); const t = useI18n(); @@ -47,28 +52,34 @@ const SpotlightWithActiveMode = ({ modeState, activeMode }: SpotlightWithActiveM // Works as always the same amount of hooks are executed const useGroups = "groups" in activeMode ? () => activeMode.groups : activeMode.useGroups; const groups = useGroups(); + const homeEmptyGroups = useHomeEmptyGroups(); return ( { setMode(defaultMode); setChildrenOptions(null); + setQuery(""); }} query={query} - onQueryChange={(query) => { - if (mode !== "help" || query.length !== 1) { - setQuery(query); - } + onQueryChange={(nextQuery) => { + const sanitizedQuery = mode === "external" && nextQuery.startsWith("!") ? nextQuery.slice(1) : nextQuery; + setQuery(sanitizedQuery); - const modeToActivate = searchModes.find((mode) => mode.character === query); - if (!modeToActivate) { - return; - } + // Only switch modes when a single trigger character is typed + if (sanitizedQuery.length !== 1) return; + + const modeToActivate = searchModes.find((mode) => mode.character === sanitizedQuery); + if (!modeToActivate) return; setMode(modeToActivate.modeKey); + setChildrenOptions(null); + setQuery(""); + setTimeout(() => selectAction(0, spotlightStore)); }} store={spotlightStore} @@ -91,17 +102,7 @@ const SpotlightWithActiveMode = ({ modeState, activeMode }: SpotlightWithActiveM }, }} rightSection={ - mode === defaultMode ? ( - { - setMode("help"); - inputRef.current?.focus(); - }} - variant="subtle" - > - - - ) : ( + mode === defaultMode ? null : ( { setMode(defaultMode); @@ -138,6 +139,7 @@ const SpotlightWithActiveMode = ({ modeState, activeMode }: SpotlightWithActiveM /> ) : ( { setMode(mode); setChildrenOptions(null); @@ -152,7 +154,7 @@ const SpotlightWithActiveMode = ({ modeState, activeMode }: SpotlightWithActiveM }); }} query={query} - groups={groups} + groups={mode === defaultMode && query.length === 0 ? [...homeEmptyGroups] : groups} /> )} diff --git a/packages/spotlight/src/lib/interaction.ts b/packages/spotlight/src/lib/interaction.ts index 1854c8c48..060a35c51 100644 --- a/packages/spotlight/src/lib/interaction.ts +++ b/packages/spotlight/src/lib/interaction.ts @@ -11,6 +11,7 @@ const createSearchInteraction = (type: TType) => ({ const searchInteractions = [ createSearchInteraction("link").optionsType<{ href: string; newTab?: boolean }>(), createSearchInteraction("javaScript").optionsType<{ onSelect: () => MaybePromise }>(), + createSearchInteraction("setQuery").optionsType<{ query: string }>(), createSearchInteraction("mode").optionsType<{ mode: keyof TranslationObject["search"]["mode"] }>(), createSearchInteraction("children").optionsType<{ // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/spotlight/src/modes/command/global-group.tsx b/packages/spotlight/src/modes/command/global-group.tsx index 7aaaa6a2e..4d2f60d37 100644 --- a/packages/spotlight/src/modes/command/global-group.tsx +++ b/packages/spotlight/src/modes/command/global-group.tsx @@ -1,7 +1,8 @@ -import { Group, Text, useMantineColorScheme } from "@mantine/core"; +import { Group, Text, useComputedColorScheme, useMantineColorScheme } from "@mantine/core"; import { IconBox, IconCategoryPlus, + IconDeviceDesktop, IconFileImport, IconLanguage, IconMailForward, @@ -52,13 +53,17 @@ export const globalCommandGroup = createGroup({ useOptions() { const tOption = useScopedI18n("search.mode.command.group.globalCommand.option"); const { colorScheme } = useMantineColorScheme(); + const computedColorScheme = useComputedColorScheme("light"); const { data: session } = useSession(); const commands: (Command & { hidden?: boolean })[] = [ { commandKey: "colorScheme", - icon: colorScheme === "dark" ? IconSun : IconMoon, - name: tOption(`colorScheme.${colorScheme === "dark" ? "light" : "dark"}`), + icon: colorScheme === "auto" ? IconDeviceDesktop : computedColorScheme === "dark" ? IconSun : IconMoon, + name: + colorScheme === "auto" + ? tOption("colorScheme.auto") + : tOption(`colorScheme.${computedColorScheme === "dark" ? "light" : "dark"}`), useInteraction: () => { const { toggleColorScheme } = useMantineColorScheme(); diff --git a/packages/spotlight/src/modes/external/search-engines-search-group.tsx b/packages/spotlight/src/modes/external/search-engines-search-group.tsx index 61abc2d6f..da965725b 100644 --- a/packages/spotlight/src/modes/external/search-engines-search-group.tsx +++ b/packages/spotlight/src/modes/external/search-engines-search-group.tsx @@ -1,5 +1,7 @@ import { Group, Image, Kbd, Stack, Text } from "@mantine/core"; +import { useDebouncedValue } from "@mantine/hooks"; import { IconDownload, IconSearch } from "@tabler/icons-react"; +import { keepPreviousData } from "@tanstack/react-query"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; @@ -17,6 +19,35 @@ import { interaction } from "../../lib/interaction"; type SearchEngine = RouterOutputs["searchEngine"]["search"][number]; type FromIntegrationSearchResult = RouterOutputs["integration"]["searchInIntegration"][number]; +type DuckDuckGoBang = RouterOutputs["bangs"]["search"][number]; + +type ExternalOption = + | { + key: string; + kind: "hint"; + label: string; + description?: string; + } + | { + key: string; + kind: "search"; + label: string; + description?: string; + iconUrl?: string; + bang: string; + urlTemplate: string; + searchText: string; + } + | { + key: string; + kind: "engine"; + engine: SearchEngine; + } + | { + key: string; + kind: "ddg"; + bang: DuckDuckGoBang; + }; // eslint-disable-next-line @typescript-eslint/consistent-type-definitions type MediaRequestChildrenProps = { @@ -235,57 +266,217 @@ export const searchEnginesChildrenOptions = createChildrenOptions( }, }); -export const searchEnginesSearchGroups = createGroup({ - keyPath: "short", +const parseBangQuery = (query: string) => { + const withBangPrefix = query.startsWith("!") ? query.slice(1) : query; + const bangIdx = withBangPrefix.indexOf(" "); + const bangToken = (bangIdx === -1 ? withBangPrefix : withBangPrefix.slice(0, bangIdx)).toLowerCase().trim(); + const searchText = bangIdx === -1 ? "" : withBangPrefix.slice(bangIdx + 1); + const locked = bangIdx !== -1; + return { bangToken, searchText, locked }; +}; + +const buildSearchUrl = (template: string, query: string) => { + const encoded = encodeURIComponent(query); + if (template.includes("{{{s}}}")) { + return template.replaceAll("{{{s}}}", encoded); + } + + return template.replaceAll("%s", encoded); +}; + +export const searchEnginesSearchGroups = createGroup({ + keyPath: "key", title: (t) => t("search.mode.external.group.searchEngine.title"), - Component: ({ iconUrl, name, short, description }) => { + Component: (option) => { + if (option.kind === "hint") { + return ( + + + + {option.label} + {option.description ? ( + + {option.description} + + ) : null} + + + ); + } + + if (option.kind === "search") { + return ( + + + {option.iconUrl ? ( + {option.label} + ) : ( + + )} + + {option.label} + {option.description ? ( + + {option.description} + + ) : null} + + + + !{option.bang} + + ); + } + + if (option.kind === "engine") { + const { iconUrl, name, short, description } = option.engine; + return ( + + + {name} + + {name} + + {description} + + + + + !{short} + + ); + } + + const { s: name, t: short, d: domain } = option.bang; return ( - {name} + {name} - {description} + {domain ?? "DuckDuckGo bang"} - {short} + !{short} ); }, - onKeyDown(event, options, query, { setChildrenOptions }) { - if (event.code !== "Space") return; - - const engine = options.find((option) => option.short === query); - if (!engine) return; - - setChildrenOptions(searchEnginesChildrenOptions(engine)); - }, - useInteraction: (searchEngine, query) => { + useInteraction(option, query) { const { openSearchInNewTab } = useSettings(); - if (searchEngine.type === "generic" && searchEngine.urlTemplate) { + const { bangToken, searchText } = parseBangQuery(query); + + if (option.kind === "search") { return { - type: "link" as const, - href: searchEngine.urlTemplate.replace("%s", query), + type: "link", + href: buildSearchUrl(option.urlTemplate, option.searchText), newTab: openSearchInNewTab, }; } - if (searchEngine.type === "fromIntegration" && searchEngine.integrationId !== null) { - return { - type: "children", - ...searchEnginesChildrenOptions(searchEngine), - }; + if (option.kind === "engine") { + const nextBang = option.engine.short; + const nextQuery = `${`${nextBang} ${searchText}`.trimEnd()} `; + return { type: "setQuery", query: bangToken === nextBang && query.endsWith(" ") ? query : nextQuery }; } - throw new Error(`Unable to process search engine with type ${searchEngine.type}`); + if (option.kind === "ddg") { + const nextBang = option.bang.t; + const nextQuery = `${`${nextBang} ${searchText}`.trimEnd()} `; + return { type: "setQuery", query: bangToken === nextBang && query.endsWith(" ") ? query : nextQuery }; + } + + return { type: "none" }; }, useQueryOptions(query) { - return clientApi.searchEngine.search.useQuery({ - query: query.trim(), - limit: 5, - }); + const tExternal = useScopedI18n("search.mode.external.group.searchEngine"); + const { ddgBangs } = useSettings(); + const { bangToken, searchText, locked } = parseBangQuery(query); + const [debouncedBangToken] = useDebouncedValue(bangToken, 150); + + const enginesQuery = clientApi.searchEngine.search.useQuery( + { query: debouncedBangToken, limit: 10 }, + { placeholderData: keepPreviousData }, + ); + + const ddgQuery = clientApi.bangs.search.useQuery( + { query: debouncedBangToken, limit: 10 }, + { + enabled: ddgBangs && debouncedBangToken.length >= 1, + placeholderData: keepPreviousData, + }, + ); + + const isLoading = enginesQuery.isLoading || ddgQuery.isLoading; + const isError = enginesQuery.isError || ddgQuery.isError; + + const engineOptions = (enginesQuery.data ?? []).map( + (engine): ExternalOption => ({ + key: `engine-${engine.short}`, + kind: "engine", + engine, + }), + ); + + const ddgOptions = (ddgQuery.data ?? []) + .filter((bang) => !engineOptions.some((option) => option.kind === "engine" && option.engine.short === bang.t)) + .map( + (bang): ExternalOption => ({ + key: `ddg-${bang.t}`, + kind: "ddg", + bang, + }), + ); + + const searchActions: ExternalOption[] = []; + if (locked && bangToken.length > 0) { + const matchedEngine = (enginesQuery.data ?? []).find((engine) => engine.short === bangToken); + const matchedDdg = (ddgQuery.data ?? []).find((bang) => bang.t === bangToken); + + const label = matchedEngine?.name ?? matchedDdg?.s; + const iconUrl = matchedEngine?.iconUrl; + const urlTemplate = matchedEngine?.type === "generic" ? matchedEngine.urlTemplate : matchedDdg?.u; + + if (label && urlTemplate) { + if (searchText.trim().length > 0) { + searchActions.push({ + key: "search-action", + kind: "search", + label: tExternal("bang.searchWithQuery", { + query: searchText.trim(), + label, + }), + description: tExternal("bang.pressEnterToOpen"), + bang: bangToken, + iconUrl, + urlTemplate, + searchText: searchText.trim(), + }); + } else { + searchActions.push({ + key: "search-hint", + kind: "hint", + label: tExternal("bang.engineSelected", { label, bang: bangToken }), + description: tExternal("bang.typeQueryToContinue"), + }); + } + } + } + if (query.length === 0) { + searchActions.push({ + key: "hint", + kind: "hint", + label: tExternal("bang.emptyBangHint"), + description: ddgBangs ? tExternal("tipDdgBangs") : undefined, + }); + } + + return { + isLoading, + isError, + data: [...searchActions, ...engineOptions, ...ddgOptions].slice(0, 10), + }; }, }); diff --git a/packages/spotlight/src/modes/help/home-empty-groups.tsx b/packages/spotlight/src/modes/help/home-empty-groups.tsx new file mode 100644 index 000000000..e035e66b9 --- /dev/null +++ b/packages/spotlight/src/modes/help/home-empty-groups.tsx @@ -0,0 +1,140 @@ +import { Group, Kbd, Text } from "@mantine/core"; +import { + IconBook2, + IconBrandDiscord, + IconBrandGithub, + IconLayoutDashboard, + IconSearch, + IconSettings, +} from "@tabler/icons-react"; + +import { useSession } from "@homarr/auth/client"; +import { createDocumentationLink } from "@homarr/definitions"; +import { useScopedI18n } from "@homarr/translation/client"; +import type { TablerIcon } from "@homarr/ui"; + +import { createGroup } from "../../lib/group"; +import { interaction } from "../../lib/interaction"; +import type { SearchMode } from "../../lib/mode"; +import { appIntegrationBoardMode } from "../app-integration-board"; +import { commandMode } from "../command"; +import { externalMode } from "../external"; +import { pageMode } from "../page"; +import { userGroupMode } from "../user-group"; + +// We need type to allow it as generic type for Record +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type QuickLinkOption = { + icon: TablerIcon; + name: string; + path: string; +}; + +export const useHomeEmptyGroups = () => { + const { data: session } = useSession(); + const tPages = useScopedI18n("search.mode.page.group.page.option"); + const visibleSearchModes: SearchMode[] = [appIntegrationBoardMode, externalMode, commandMode, pageMode]; + + if (session?.user.permissions.includes("admin")) { + visibleSearchModes.unshift(userGroupMode); + } + + return [ + createGroup({ + keyPath: "path", + title: () => "Quick links", + options: (() => { + const quickLinks: QuickLinkOption[] = []; + if (session?.user) { + quickLinks.push({ + icon: IconSettings, + path: `/manage/users/${session.user.id}/general`, + name: tPages("preferences.label"), + }); + } + + quickLinks.push({ + icon: IconLayoutDashboard, + path: "/manage/boards", + name: tPages("manageBoard.label"), + }); + + if (session?.user.permissions.includes("admin")) { + quickLinks.push({ + icon: IconSettings, + path: "/manage/settings", + name: tPages("manageSettings.label"), + }); + } + + if (session) { + quickLinks.push({ + icon: IconSearch, + path: "/manage/search-engines", + name: tPages("manageSearchEngine.label"), + }); + } + + return quickLinks; + })(), + Component: ({ name, icon: Icon }) => ( + + + {name} + + ), + filter: () => true, + useInteraction: interaction.link(({ path }) => ({ href: path })), + }), + createGroup({ + keyPath: "character", + title: (t) => t("search.mode.help.group.mode.title"), + options: visibleSearchModes.map(({ character, modeKey }) => ({ character, modeKey })), + Component: ({ modeKey, character }) => { + const t = useScopedI18n(`search.mode.${modeKey}`); + + return ( + + {t("help")} + {character} + + ); + }, + filter: () => true, + useInteraction: interaction.mode(({ modeKey }) => ({ mode: modeKey })), + }), + createGroup({ + keyPath: "href", + title: (t) => t("search.mode.help.group.help.title"), + useOptions() { + const t = useScopedI18n("search.mode.help.group.help.option"); + + return [ + { + href: createDocumentationLink("/docs/getting-started"), + icon: IconBook2, + label: t("documentation.label"), + }, + { + href: "https://github.com/homarr-labs/homarr/issues/new/choose", + icon: IconBrandGithub, + label: t("submitIssue.label"), + }, + { + href: "https://discord.com/invite/aCsmEV5RgA", + icon: IconBrandDiscord, + label: t("discord.label"), + }, + ]; + }, + Component: (props) => ( + + + {props.label} + + ), + filter: () => true, + useInteraction: interaction.link(({ href }) => ({ href, newTab: true })), + }), + ] as const; +}; diff --git a/packages/spotlight/src/modes/home/context.tsx b/packages/spotlight/src/modes/home/context.tsx index 3a681499b..fced7fc06 100644 --- a/packages/spotlight/src/modes/home/context.tsx +++ b/packages/spotlight/src/modes/home/context.tsx @@ -94,7 +94,6 @@ const createSpotlightContext = (displayName: string) => { context.unregisterItems(key); }; // We ignore the results - // eslint-disable-next-line react-hooks/exhaustive-deps }, [...dependencyArray, key]); }; diff --git a/packages/spotlight/src/modes/home/home-search-engine-group.tsx b/packages/spotlight/src/modes/home/home-search-engine-group.tsx index 09fa49fbf..40e40f131 100644 --- a/packages/spotlight/src/modes/home/home-search-engine-group.tsx +++ b/packages/spotlight/src/modes/home/home-search-engine-group.tsx @@ -1,5 +1,5 @@ import { Box, Group, Stack, Text } from "@mantine/core"; -import { IconCaretUpDown, IconSearch, IconSearchOff } from "@tabler/icons-react"; +import { IconSearch, IconSearchOff } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; @@ -79,20 +79,7 @@ export const homeSearchEngineGroup = createGroup({ isLoading: defaultSearchEngineQuery.isLoading || (resultQuery.isLoading && fromIntegrationEnabled) || status === "loading", isError: defaultSearchEngineQuery.isError || (resultQuery.isError && fromIntegrationEnabled), - data: [ - ...createDefaultSearchEntries(defaultSearchEngine, results, session, query, t), - { - id: "other", - name: t("search.mode.home.group.search.option.other.label"), - icon: IconCaretUpDown, - useInteraction() { - return { - type: "mode", - mode: "external", - }; - }, - }, - ], + data: createDefaultSearchEntries(defaultSearchEngine, results, session, query, t), }; }, }); diff --git a/packages/spotlight/src/modes/index.tsx b/packages/spotlight/src/modes/index.tsx index 0371209f5..fa6e81916 100644 --- a/packages/spotlight/src/modes/index.tsx +++ b/packages/spotlight/src/modes/index.tsx @@ -1,13 +1,3 @@ -import { Group, Kbd, Text } from "@mantine/core"; -import { IconBook2, IconBrandDiscord, IconBrandGithub } from "@tabler/icons-react"; - -import { useSession } from "@homarr/auth/client"; -import { createDocumentationLink } from "@homarr/definitions"; -import { useScopedI18n } from "@homarr/translation/client"; - -import { createGroup } from "../lib/group"; -import { interaction } from "../lib/interaction"; -import type { SearchMode } from "../lib/mode"; import { appIntegrationBoardMode } from "./app-integration-board"; import { commandMode } from "./command"; import { externalMode } from "./external"; @@ -15,72 +5,11 @@ import { homeMode } from "./home"; import { pageMode } from "./page"; import { userGroupMode } from "./user-group"; -const searchModesForHelp = [userGroupMode, appIntegrationBoardMode, externalMode, commandMode, pageMode] as const; - -const helpMode = { - modeKey: "help", - character: "?", - useGroups() { - const { data: session } = useSession(); - const visibleSearchModes: SearchMode[] = [appIntegrationBoardMode, externalMode, commandMode, pageMode]; - - if (session?.user.permissions.includes("admin")) { - visibleSearchModes.unshift(userGroupMode); - } - - return [ - createGroup({ - keyPath: "character", - title: (t) => t("search.mode.help.group.mode.title"), - options: visibleSearchModes.map(({ character, modeKey }) => ({ character, modeKey })), - Component: ({ modeKey, character }) => { - const t = useScopedI18n(`search.mode.${modeKey}`); - - return ( - - {t("help")} - {character} - - ); - }, - filter: () => true, - useInteraction: interaction.mode(({ modeKey }) => ({ mode: modeKey })), - }), - createGroup({ - keyPath: "href", - title: (t) => t("search.mode.help.group.help.title"), - useOptions() { - const t = useScopedI18n("search.mode.help.group.help.option"); - - return [ - { - label: t("documentation.label"), - icon: IconBook2, - href: createDocumentationLink("/docs/getting-started"), - }, - { - label: t("submitIssue.label"), - icon: IconBrandGithub, - href: "https://github.com/homarr-labs/homarr/issues/new/choose", - }, - { - label: t("discord.label"), - icon: IconBrandDiscord, - href: "https://discord.com/invite/aCsmEV5RgA", - }, - ]; - }, - Component: (props) => ( - - - {props.label} - - ), - filter: () => true, - useInteraction: interaction.link(({ href }) => ({ href, newTab: true })), - }), - ]; - }, -} satisfies SearchMode; - -export const searchModes = [...searchModesForHelp, helpMode, homeMode] as const; +export const searchModes = [ + userGroupMode, + appIntegrationBoardMode, + externalMode, + commandMode, + pageMode, + homeMode, +] as const; diff --git a/packages/translation/package.json b/packages/translation/package.json index e96a3e953..e8e42b749 100644 --- a/packages/translation/package.json +++ b/packages/translation/package.json @@ -29,19 +29,19 @@ "dependencies": { "@homarr/common": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", - "dayjs": "^1.11.19", - "deepmerge": "4.3.1", - "mantine-react-table": "2.0.0-beta.9", - "next": "16.1.1", - "next-intl": "4.7.0", - "react": "19.2.3", - "react-dom": "19.2.3" + "dayjs": "catalog:", + "deepmerge": "catalog:", + "mantine-react-table": "catalog:", + "next": "catalog:", + "next-intl": "catalog:", + "react": "catalog:", + "react-dom": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/translation/src/config.ts b/packages/translation/src/config.ts index fafbc1f61..199f6ff5a 100644 --- a/packages/translation/src/config.ts +++ b/packages/translation/src/config.ts @@ -284,6 +284,17 @@ export const localeConfigurations = { return import("dayjs/locale/pt").then((module) => module.default); }, }, + "pt-br": { + name: "Português (Brasil)", + translatedName: "Portuguese (Brazil)", + icon: flagIcon("br"), + importMrtLocalization() { + return import("mantine-react-table/locales/pt-BR/index.esm.mjs").then((module) => module.MRT_Localization_PT_BR); + }, + importDayJsLocale() { + return import("dayjs/locale/pt-br").then((module) => module.default); + }, + }, ro: { name: "Românesc", translatedName: "Romanian", diff --git a/packages/translation/src/lang/ca.json b/packages/translation/src/lang/ca.json index f20ea3c2f..6cbd7acf6 100644 --- a/packages/translation/src/lang/ca.json +++ b/packages/translation/src/lang/ca.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Obre els resultats de la cerca en una pestanya nova" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Canvia la imatge", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "", "noResults": "", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json index e0f6cb24d..3a10e9210 100644 --- a/packages/translation/src/lang/cn.json +++ b/packages/translation/src/lang/cn.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "在新标签页中打开搜索结果" + }, + "ddgBangs": { + "label": "启用 DuckDuckGo bangs" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "DuckDuckGo bangs 切换成功" + }, + "error": { + "message": "无法切换 DuckDuckGo bangs" + } + } + }, "manageAvatar": { "changeImage": { "label": "更改头像", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "自动", "light": "日间", "dark": "暗黑" } @@ -1138,6 +1152,9 @@ "dangerZone": "危险", "noResults": "未找到结果", "unsavedChanges": "你有未保存的更改 !", + "servers": "服务", + "applications": "应用", + "services": "服务", "preview": { "show": "显示预览", "hide": "隐藏预览" @@ -1522,6 +1539,17 @@ "offline": "离线" } }, + "timetable": { + "name": "时刻表", + "description": "显示车站的出发时间", + "title": "出发时间 {station}", + "noStation": "未选择车站", + "option": { + "station": { + "label": "车站" + } + } + }, "notebook": { "name": "笔记", "description": "支持 Markdown 的简单笔记本小部件", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "锚点笔记", + "description": "显示来自锚点的所选笔记", + "option": { + "noteId": { + "label": "笔记" + }, + "showTitle": { + "label": "显示标题" + }, + "showUpdatedAt": { + "label": "显示最近更新" + } + }, + "empty": "选择要显示的笔记", + "emptyContent": "此笔记没有内容", + "notFound": "未找到笔记", + "noNotes": "未找到笔记", + "integrationRequired": "请先选择锚点集成", + "updatedAt": "更新时间:{date}", + "untitled": "未命名", + "edit": "编辑", + "save": "保存", + "cancel": "取消", + "readOnlyViewer": "您对该笔记只有查看权限,编辑已禁用。", + "saveForbidden": "您没有编辑此笔记的权限。", + "saveFailed": "保存此笔记失败,请重试。" + }, "iframe": { "name": "iFrame", "description": "嵌入互联网上的任何内容。某些网站可能限制访问。", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "允许地理位置" + }, + "allowModals": { + "label": "允许弹窗" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "显示内存信息" }, + "gpu": { + "label": "显示 GPU 信息" + }, "showUptime": { "label": "显示运行时间" }, @@ -1960,6 +2022,192 @@ "internalServerError": "获取容器统计信息失败" } }, + "coolify": { + "name": "Coolify", + "description": "您的 Coolify 实例及其服务器和应用一览", + "option": { + "showServers": { + "label": "显示服务" + }, + "showApplications": { + "label": "显示应用程序" + }, + "showServices": { + "label": "显示服务" + } + }, + "empty": { + "servers": "未找到服务", + "applications": "未找到应用程序", + "services": "未找到服务" + }, + "footer": { + "updated": "已更新 {when}" + }, + "error": { + "noIntegration": "未配置 Coolify 集成", + "internalServerError": "获取 Coolify 数据失败" + }, + "server": { + "buildServer": "编译" + }, + "instances": { + "title": "实例" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "增强型媒体服务器监控,提供详细的流与转码数据", + "option": { + "showStreams": { + "label": "显示活跃流" + }, + "showStats": { + "label": "显示统计摘要" + }, + "showRecentActivity": { + "label": "显示近期活动" + }, + "showViolations": { + "label": "显示违规记录" + } + }, + "stats": { + "activeStreams": "活跃流", + "totalUsers": "总用户数", + "transcodes": "转码数", + "bandwidth": "带宽" + }, + "streams": { + "empty": "无活跃流", + "user": "用户", + "media": "媒体", + "state": "状态", + "quality": "画质", + "device": "设备", + "progress": "进度", + "videoDecision": { + "directPlay": "直接播放", + "transcode": "转码", + "directStream": "直接串流" + } + }, + "recentActivity": { + "title": "近期活动", + "empty": "暂无近期活动", + "watched": "已观看", + "partial": "部分观看" + }, + "violations": { + "title": "违规记录", + "empty": "暂无近期违规", + "rule": "规则", + "user": "用户" + }, + "noSectionsEnabled": "未启用任何分区", + "error": { + "noIntegration": "未配置 Tracearr 集成", + "internalServerError": "获取 Tracearr 数据失败" + } + }, + "umami": { + "name": "Umami 分析", + "description": "显示来自 Umami 分析实例的访客统计", + "visitors": "访客", + "active": "活跃", + "pageviews": "浏览量", + "visits": "访问数", + "bounceRate": "跳出率", + "avgDuration": "平均", + "option": { + "websiteId": { + "label": "网站", + "description": "选择您的 Umami 实例所追踪的网站", + "placeholder": "选择一个网站", + "loading": "正在加载网站……", + "noWebsites": "未找到网站", + "configureIntegrationFirst": "请先添加 Umami 集成" + }, + "timeFrame": { + "label": "时间范围", + "description": "用于展示访客数据的时间段", + "option": { + "today": "今天", + "24h": "过去 24 小时", + "7d": "过去 7 天", + "30d": "过去 30 天", + "month": "本月", + "lastMonth": "上月" + } + }, + "eventName": { + "label": "事件", + "description": "显示特定事件的总发生次数", + "placeholder": "选择一个事件", + "loading": "正在加载事件……", + "noEvents": "未找到事件", + "none": "无事件", + "configureWebsiteFirst": "请先选择网站以加载事件" + }, + "chartType": { + "label": "图表类型", + "description": "图表的显示样式", + "option": { + "bar": "条形图", + "sparkline": "迷你趋势图" + } + }, + "chartStyle": { + "label": "图表样式", + "description": "如何在图表中显示事件序列", + "option": { + "grouped": "并排", + "overlay": "叠加(子集)" + } + }, + "viewMode": { + "label": "视图", + "description": "组件主体中要显示的内容", + "option": { + "chart": "图表", + "events": "事件图表", + "topPages": "热门页面", + "topReferrers": "热门来源" + } + }, + "eventNames": { + "label": "事件", + "description": "选择一个或多个要图表化的事件", + "placeholder": "选择事件……", + "loading": "正在加载事件……", + "noEvents": "未找到事件", + "configureWebsiteFirst": "请先选择网站以加载事件" + }, + "topCount": { + "label": "显示数量", + "description": "要显示的热门项目数量(最大 500)" + } + }, + "event": { + "occurrences": "事件", + "label": "事件" + }, + "topPages": { + "direct": "直接" + }, + "topReferrers": { + "direct": "直接" + }, + "events": { + "selectPrompt": "选择要图表化的事件" + }, + "error": { + "noIntegration": "未配置 Umami 集成", + "noWebsite": "未配置网站", + "noData": "无可用数据", + "internalServerError": "获取 Umami 数据失败" + } + }, "common": { "location": { "query": "城市/邮编", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Immich 服务器统计", + "description": "有关您的 Immich 实例的信息", + "option": { + "showUsers": { + "label": "显示用户", + "description": "显示实例上的用户数量" + }, + "showPhotos": { + "label": "显示图片", + "description": "显示实例上的照片数量" + }, + "showVideos": { + "label": "显示视频", + "description": "显示实例上的视频数量" + }, + "showStorage": { + "label": "显示存储", + "description": "显示已使用的总存储空间" + } + }, + "users": "用户", + "photos": "照片", + "videos": "视频", + "storage": "已用存储" + }, + "immich-albumCarousel": { + "name": "Immich 相册", + "option": { + "albumId": { + "label": "相册ID", + "description": "这是一个唯一标识符,用于指向您的 Immich 相册。您可以通过打开相册并从 URL 中复制那段唯一字符串来找到该 ID,例如:'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "间隔(秒)", + "description": "每 X 秒切换一次相册中的图片。最小为 1,最大不得超过 3600。" + }, + "showPhotoInfo": { + "label": "显示图片信息", + "description": "在幻灯片底部显示图片日期和当前索引" + } + }, + "description": "Immich 相册图片幻灯片", + "noAlbumSelected": "未选择相册,请编辑组件并选择一个相册", + "noPhotos": "此相册中没有照片" + }, "downloads": { "name": "下载客户端", "description": "允许您查看和管理来自Torrent 和 Usenet 客户端的下载。", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "隐藏描述" + }, + "showPosterImage": { + "label": "显示封面图" } } }, @@ -2575,6 +2872,45 @@ "noItems": "没有可显示的通知。", "option": {} }, + "speedtestTracker": { + "name": "网速测试追踪器", + "description": "显示 网速测试追踪器 实例中的测速结果。", + "option": { + "showLatestResult": { + "label": "显示最新结果" + }, + "showStats": { + "label": "显示平均值" + }, + "showRecentResults": { + "label": "显示近期结果" + }, + "showPingGraph": { + "label": "显示 Ping 图表" + } + }, + "latestResult": "最新结果", + "averages": "平均值", + "tests": "{count}次测试", + "recentResults": "近期结果", + "recentResultsSpeed": "速度", + "recentResultsPing": "Ping", + "download": "下载", + "upload": "上传", + "ping": "Ping", + "status": "状态", + "avgDownload": "平均下载", + "avgUpload": "平均上传", + "avgPing": "平均Ping", + "healthy": "健康", + "unhealthy": "不健康", + "ok": "正常", + "fail": "失败", + "noSectionsEnabled": "请在组件选项中至少启用一个模块。", + "error": { + "internalServerError": "获取测速数据失败" + } + }, "systemResources": { "name": "系统资源", "description": "您系统的 CPU、内存、磁盘及其他硬件使用情况", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "内存", + "gpu": "GPU", "network": "网络" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "内存", + "gpu": "GPU", "network": "网络", "up": "上传", "down": "下载" } + }, + "systemDisks": { + "name": "系统磁盘", + "description": "您系统的磁盘使用", + "option": { + "showTemperatureIfAvailable": { + "label": "如果可用则显示温度" + }, + "displayMode": { + "label": "显示模式", + "option": { + "percentage": { + "label": "百分比 (例如76%)" + }, + "absolute": { + "label": "绝对值 (例如,800GB / 1TB)" + }, + "free": { + "label": "空闲空间百分比(例如24%空闲)" + } + } + }, + "showBackgroundBar": { + "label": "显示背景使用栏" + } + }, + "status": { + "unhealthy": "异常" + } } }, "widgetPreview": { @@ -3240,7 +3607,7 @@ "title": "分析", "general": { "title": "发送匿名分析", - "text": "Homarr 将使用开源软件 Umami 发送匿名分析。它从不收集任何个人信息,因此完全符合 GDPR 和 CCPA 要求。我们鼓励您启用分析,因为它可以帮助我们的开源团队识别问题并确定待办事项的优先级。" + "text": "Homarr 将使用开源软件 Umami 发送匿名分析数据。启用后,我们会收集:Homarr 版本、数据库类型(MySQL/PostgreSQL/SQLite)、Docker/Kubernetes 状态、已启用的身份验证方法以及各项功能的数量。所有数据均为匿名且汇总收集——绝不收集任何个人信息、URL、名称或可识别数据。这有助于我们的开源团队了解使用模式并确定开发优先级。" }, "widgetData": { "title": "组件数据", @@ -3295,10 +3662,10 @@ } }, "user": { - "title": "", + "title": "用户", "enableGravatar": { - "label": "", - "description": "" + "label": "启用Gravatar", + "description": "未设置自定义头像时,若用户有邮箱,则自动采用其 Libravatar/Gravatar 头像" } }, "search": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "默认配色方案", "options": { + "auto": "自动", "light": "日间", "dark": "暗黑" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Minecraft 服务状态" }, + "timetable": { + "label": "时刻表" + }, "iconsUpdater": { "label": "图标更新" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "天气" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "Umami 活跃访客" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "翻译人员", "subtitle": "在许多语言中,有{count}人贡献了翻译" }, + "sponsors": { + "title": "赞助商", + "subtitle": "{count}人通过财务方式支持该项目" + }, "libraries": { "title": "相关的库", "subtitle": "{count} 用于 Homarr 代码中" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "端口" + }, + "host": { + "label": "宿主机" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "全局命令", "option": { "colorScheme": { + "auto": "切换外观模式", "light": "切换到日间模式", "dark": "切换到暗黑模式" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "搜索引擎", + "tipDdgBangs": "提示:你也可以在此使用任何 DuckDuckGo Bangs,例如 !something", + "bang": { + "searchWithQuery": "使用“‘’{query}”搜索“{label}”", + "pressEnterToOpen": "按 Enter 键打开", + "engineSelected": "已选择{label}({bang})", + "typeQueryToContinue": "输入搜索查询以继续", + "emptyBangHint": "输入 bang,例如 !yt,然后按空格键进行选择" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/cr.json b/packages/translation/src/lang/cr.json index bcd5d919d..27a4588a8 100644 --- a/packages/translation/src/lang/cr.json +++ b/packages/translation/src/lang/cr.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "crwdns2696:0crwdne2696:0" + }, + "ddgBangs": { + "label": "crwdns4231:0crwdne4231:0" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "crwdns4233:0crwdne4233:0" + }, + "error": { + "message": "crwdns4235:0crwdne4235:0" + } + } + }, "manageAvatar": { "changeImage": { "label": "crwdns94:0crwdne94:0", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "crwdns4225:0crwdne4225:0", "light": "crwdns2362:0crwdne2362:0", "dark": "crwdns2364:0crwdne2364:0" } @@ -1138,6 +1152,9 @@ "dangerZone": "crwdns610:0crwdne610:0", "noResults": "crwdns612:0crwdne612:0", "unsavedChanges": "crwdns2784:0crwdne2784:0", + "servers": "crwdns3846:0crwdne3846:0", + "applications": "crwdns3848:0crwdne3848:0", + "services": "crwdns3850:0crwdne3850:0", "preview": { "show": "crwdns614:0crwdne614:0", "hide": "crwdns616:0crwdne616:0" @@ -1522,6 +1539,17 @@ "offline": "crwdns2494:0crwdne2494:0" } }, + "timetable": { + "name": "crwdns4000:0crwdne4000:0", + "description": "crwdns4002:0crwdne4002:0", + "title": "crwdns4004:0{station}crwdne4004:0", + "noStation": "crwdns4006:0crwdne4006:0", + "option": { + "station": { + "label": "crwdns4008:0crwdne4008:0" + } + } + }, "notebook": { "name": "crwdns860:0crwdne860:0", "description": "crwdns862:0crwdne862:0", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "crwdns4064:0crwdne4064:0", + "description": "crwdns4066:0crwdne4066:0", + "option": { + "noteId": { + "label": "crwdns4068:0crwdne4068:0" + }, + "showTitle": { + "label": "crwdns4070:0crwdne4070:0" + }, + "showUpdatedAt": { + "label": "crwdns4072:0crwdne4072:0" + } + }, + "empty": "crwdns4074:0crwdne4074:0", + "emptyContent": "crwdns4076:0crwdne4076:0", + "notFound": "crwdns4078:0crwdne4078:0", + "noNotes": "crwdns4080:0crwdne4080:0", + "integrationRequired": "crwdns4082:0crwdne4082:0", + "updatedAt": "crwdns4084:0{date}crwdne4084:0", + "untitled": "crwdns4086:0crwdne4086:0", + "edit": "crwdns4088:0crwdne4088:0", + "save": "crwdns4090:0crwdne4090:0", + "cancel": "crwdns4092:0crwdne4092:0", + "readOnlyViewer": "crwdns4094:0crwdne4094:0", + "saveForbidden": "crwdns4096:0crwdne4096:0", + "saveFailed": "crwdns4098:0crwdne4098:0" + }, "iframe": { "name": "crwdns950:0crwdne950:0", "description": "crwdns952:0crwdne952:0", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "crwdns970:0crwdne970:0" + }, + "allowModals": { + "label": "crwdns3992:0crwdne3992:0" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "crwdns1080:0crwdne1080:0" }, + "gpu": { + "label": "crwdns3994:0crwdne3994:0" + }, "showUptime": { "label": "crwdns3446:0crwdne3446:0" }, @@ -1960,6 +2022,192 @@ "internalServerError": "crwdns3428:0crwdne3428:0" } }, + "coolify": { + "name": "crwdns3852:0crwdne3852:0", + "description": "crwdns3854:0crwdne3854:0", + "option": { + "showServers": { + "label": "crwdns3856:0crwdne3856:0" + }, + "showApplications": { + "label": "crwdns3858:0crwdne3858:0" + }, + "showServices": { + "label": "crwdns3860:0crwdne3860:0" + } + }, + "empty": { + "servers": "crwdns3862:0crwdne3862:0", + "applications": "crwdns3864:0crwdne3864:0", + "services": "crwdns3866:0crwdne3866:0" + }, + "footer": { + "updated": "crwdns3868:0{when}crwdne3868:0" + }, + "error": { + "noIntegration": "crwdns3870:0crwdne3870:0", + "internalServerError": "crwdns3872:0crwdne3872:0" + }, + "server": { + "buildServer": "crwdns3874:0crwdne3874:0" + }, + "instances": { + "title": "crwdns3876:0crwdne3876:0" + } + }, + "tracearr": { + "name": "crwdns3928:0crwdne3928:0", + "description": "crwdns3930:0crwdne3930:0", + "option": { + "showStreams": { + "label": "crwdns3932:0crwdne3932:0" + }, + "showStats": { + "label": "crwdns3934:0crwdne3934:0" + }, + "showRecentActivity": { + "label": "crwdns3936:0crwdne3936:0" + }, + "showViolations": { + "label": "crwdns3938:0crwdne3938:0" + } + }, + "stats": { + "activeStreams": "crwdns3940:0crwdne3940:0", + "totalUsers": "crwdns3942:0crwdne3942:0", + "transcodes": "crwdns3944:0crwdne3944:0", + "bandwidth": "crwdns3946:0crwdne3946:0" + }, + "streams": { + "empty": "crwdns3948:0crwdne3948:0", + "user": "crwdns3950:0crwdne3950:0", + "media": "crwdns3952:0crwdne3952:0", + "state": "crwdns3954:0crwdne3954:0", + "quality": "crwdns3956:0crwdne3956:0", + "device": "crwdns3958:0crwdne3958:0", + "progress": "crwdns3960:0crwdne3960:0", + "videoDecision": { + "directPlay": "crwdns3962:0crwdne3962:0", + "transcode": "crwdns3964:0crwdne3964:0", + "directStream": "crwdns3966:0crwdne3966:0" + } + }, + "recentActivity": { + "title": "crwdns3968:0crwdne3968:0", + "empty": "crwdns3970:0crwdne3970:0", + "watched": "crwdns3972:0crwdne3972:0", + "partial": "crwdns3974:0crwdne3974:0" + }, + "violations": { + "title": "crwdns3976:0crwdne3976:0", + "empty": "crwdns3978:0crwdne3978:0", + "rule": "crwdns3980:0crwdne3980:0", + "user": "crwdns3982:0crwdne3982:0" + }, + "noSectionsEnabled": "crwdns3984:0crwdne3984:0", + "error": { + "noIntegration": "crwdns3986:0crwdne3986:0", + "internalServerError": "crwdns3988:0crwdne3988:0" + } + }, + "umami": { + "name": "crwdns4103:0crwdne4103:0", + "description": "crwdns4105:0crwdne4105:0", + "visitors": "crwdns4107:0crwdne4107:0", + "active": "crwdns4109:0crwdne4109:0", + "pageviews": "crwdns4111:0crwdne4111:0", + "visits": "crwdns4113:0crwdne4113:0", + "bounceRate": "crwdns4115:0crwdne4115:0", + "avgDuration": "crwdns4117:0crwdne4117:0", + "option": { + "websiteId": { + "label": "crwdns4119:0crwdne4119:0", + "description": "crwdns4121:0crwdne4121:0", + "placeholder": "crwdns4123:0crwdne4123:0", + "loading": "crwdns4125:0crwdne4125:0", + "noWebsites": "crwdns4127:0crwdne4127:0", + "configureIntegrationFirst": "crwdns4129:0crwdne4129:0" + }, + "timeFrame": { + "label": "crwdns4131:0crwdne4131:0", + "description": "crwdns4133:0crwdne4133:0", + "option": { + "today": "crwdns4135:0crwdne4135:0", + "24h": "crwdns4137:0crwdne4137:0", + "7d": "crwdns4139:0crwdne4139:0", + "30d": "crwdns4141:0crwdne4141:0", + "month": "crwdns4143:0crwdne4143:0", + "lastMonth": "crwdns4145:0crwdne4145:0" + } + }, + "eventName": { + "label": "crwdns4147:0crwdne4147:0", + "description": "crwdns4149:0crwdne4149:0", + "placeholder": "crwdns4151:0crwdne4151:0", + "loading": "crwdns4153:0crwdne4153:0", + "noEvents": "crwdns4155:0crwdne4155:0", + "none": "crwdns4157:0crwdne4157:0", + "configureWebsiteFirst": "crwdns4159:0crwdne4159:0" + }, + "chartType": { + "label": "crwdns4161:0crwdne4161:0", + "description": "crwdns4163:0crwdne4163:0", + "option": { + "bar": "crwdns4165:0crwdne4165:0", + "sparkline": "crwdns4167:0crwdne4167:0" + } + }, + "chartStyle": { + "label": "crwdns4169:0crwdne4169:0", + "description": "crwdns4171:0crwdne4171:0", + "option": { + "grouped": "crwdns4173:0crwdne4173:0", + "overlay": "crwdns4175:0crwdne4175:0" + } + }, + "viewMode": { + "label": "crwdns4177:0crwdne4177:0", + "description": "crwdns4179:0crwdne4179:0", + "option": { + "chart": "crwdns4181:0crwdne4181:0", + "events": "crwdns4183:0crwdne4183:0", + "topPages": "crwdns4185:0crwdne4185:0", + "topReferrers": "crwdns4187:0crwdne4187:0" + } + }, + "eventNames": { + "label": "crwdns4189:0crwdne4189:0", + "description": "crwdns4191:0crwdne4191:0", + "placeholder": "crwdns4193:0crwdne4193:0", + "loading": "crwdns4195:0crwdne4195:0", + "noEvents": "crwdns4197:0crwdne4197:0", + "configureWebsiteFirst": "crwdns4199:0crwdne4199:0" + }, + "topCount": { + "label": "crwdns4201:0crwdne4201:0", + "description": "crwdns4203:0crwdne4203:0" + } + }, + "event": { + "occurrences": "crwdns4205:0crwdne4205:0", + "label": "crwdns4207:0crwdne4207:0" + }, + "topPages": { + "direct": "crwdns4209:0crwdne4209:0" + }, + "topReferrers": { + "direct": "crwdns4211:0crwdne4211:0" + }, + "events": { + "selectPrompt": "crwdns4213:0crwdne4213:0" + }, + "error": { + "noIntegration": "crwdns4215:0crwdne4215:0", + "noWebsite": "crwdns4217:0crwdne4217:0", + "noData": "crwdns4219:0crwdne4219:0", + "internalServerError": "crwdns4221:0crwdne4221:0" + } + }, "common": { "location": { "query": "crwdns1110:0crwdne1110:0", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "crwdns3880:0crwdne3880:0", + "description": "crwdns3882:0crwdne3882:0", + "option": { + "showUsers": { + "label": "crwdns3884:0crwdne3884:0", + "description": "crwdns3886:0crwdne3886:0" + }, + "showPhotos": { + "label": "crwdns3888:0crwdne3888:0", + "description": "crwdns3890:0crwdne3890:0" + }, + "showVideos": { + "label": "crwdns3892:0crwdne3892:0", + "description": "crwdns3894:0crwdne3894:0" + }, + "showStorage": { + "label": "crwdns3896:0crwdne3896:0", + "description": "crwdns3898:0crwdne3898:0" + } + }, + "users": "crwdns3900:0crwdne3900:0", + "photos": "crwdns3902:0crwdne3902:0", + "videos": "crwdns3904:0crwdne3904:0", + "storage": "crwdns3906:0crwdne3906:0" + }, + "immich-albumCarousel": { + "name": "crwdns3908:0crwdne3908:0", + "option": { + "albumId": { + "label": "crwdns3910:0crwdne3910:0", + "description": "crwdns3912:0crwdne3912:0" + }, + "rotationIntervalSeconds": { + "label": "crwdns3914:0crwdne3914:0", + "description": "crwdns3916:0crwdne3916:0" + }, + "showPhotoInfo": { + "label": "crwdns3918:0crwdne3918:0", + "description": "crwdns3920:0crwdne3920:0" + } + }, + "description": "crwdns3922:0crwdne3922:0", + "noAlbumSelected": "crwdns3924:0crwdne3924:0", + "noPhotos": "crwdns3926:0crwdne3926:0" + }, "downloads": { "name": "crwdns1170:0crwdne1170:0", "description": "crwdns1172:0crwdne1172:0", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "crwdns3674:0crwdne3674:0" + }, + "showPosterImage": { + "label": "crwdns4012:0crwdne4012:0" } } }, @@ -2575,6 +2872,45 @@ "noItems": "crwdns3480:0crwdne3480:0", "option": {} }, + "speedtestTracker": { + "name": "crwdns4014:0crwdne4014:0", + "description": "crwdns4016:0crwdne4016:0", + "option": { + "showLatestResult": { + "label": "crwdns4018:0crwdne4018:0" + }, + "showStats": { + "label": "crwdns4020:0crwdne4020:0" + }, + "showRecentResults": { + "label": "crwdns4022:0crwdne4022:0" + }, + "showPingGraph": { + "label": "crwdns4024:0crwdne4024:0" + } + }, + "latestResult": "crwdns4026:0crwdne4026:0", + "averages": "crwdns4028:0crwdne4028:0", + "tests": "crwdns4030:0{count}crwdne4030:0", + "recentResults": "crwdns4032:0crwdne4032:0", + "recentResultsSpeed": "crwdns4034:0crwdne4034:0", + "recentResultsPing": "crwdns4036:0crwdne4036:0", + "download": "crwdns4038:0crwdne4038:0", + "upload": "crwdns4040:0crwdne4040:0", + "ping": "crwdns4042:0crwdne4042:0", + "status": "crwdns4044:0crwdne4044:0", + "avgDownload": "crwdns4046:0crwdne4046:0", + "avgUpload": "crwdns4048:0crwdne4048:0", + "avgPing": "crwdns4050:0crwdne4050:0", + "healthy": "crwdns4052:0crwdne4052:0", + "unhealthy": "crwdns4054:0crwdne4054:0", + "ok": "crwdns4056:0crwdne4056:0", + "fail": "crwdns4058:0crwdne4058:0", + "noSectionsEnabled": "crwdns4060:0crwdne4060:0", + "error": { + "internalServerError": "crwdns4062:0crwdne4062:0" + } + }, "systemResources": { "name": "crwdns3600:0crwdne3600:0", "description": "crwdns3602:0crwdne3602:0", @@ -2588,6 +2924,7 @@ "option": { "cpu": "crwdns3700:0crwdne3700:0", "memory": "crwdns3702:0crwdne3702:0", + "gpu": "crwdns3996:0crwdne3996:0", "network": "crwdns3704:0crwdne3704:0" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "crwdns3604:0crwdne3604:0", "memory": "crwdns3606:0crwdne3606:0", + "gpu": "crwdns3998:0crwdne3998:0", "network": "crwdns3608:0crwdne3608:0", "up": "crwdns3610:0crwdne3610:0", "down": "crwdns3612:0crwdne3612:0" } + }, + "systemDisks": { + "name": "crwdns3828:0crwdne3828:0", + "description": "crwdns3830:0crwdne3830:0", + "option": { + "showTemperatureIfAvailable": { + "label": "crwdns3832:0crwdne3832:0" + }, + "displayMode": { + "label": "crwdns3834:0crwdne3834:0", + "option": { + "percentage": { + "label": "crwdns3836:0crwdne3836:0" + }, + "absolute": { + "label": "crwdns3838:0crwdne3838:0" + }, + "free": { + "label": "crwdns3840:0crwdne3840:0" + } + } + }, + "showBackgroundBar": { + "label": "crwdns3842:0crwdne3842:0" + } + }, + "status": { + "unhealthy": "crwdns3844:0crwdne3844:0" + } } }, "widgetPreview": { @@ -3240,7 +3607,7 @@ "title": "crwdns1764:0crwdne1764:0", "general": { "title": "crwdns1766:0crwdne1766:0", - "text": "crwdns1768:0crwdne1768:0" + "text": "crwdns3878:0crwdne3878:0" }, "widgetData": { "title": "crwdns1770:0crwdne1770:0", @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "crwdns1810:0crwdne1810:0", "options": { + "auto": "crwdns4227:0crwdne4227:0", "light": "crwdns1812:0crwdne1812:0", "dark": "crwdns1814:0crwdne1814:0" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "crwdns2496:0crwdne2496:0" }, + "timetable": { + "label": "crwdns4010:0crwdne4010:0" + }, "iconsUpdater": { "label": "crwdns1828:0crwdne1828:0" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "crwdns3724:0crwdne3724:0" + }, + "tracearr": { + "label": "crwdns3990:0crwdne3990:0" + }, + "umamiActiveVisitors": { + "label": "crwdns4223:0crwdne4223:0" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "crwdns1884:0crwdne1884:0", "subtitle": "crwdns1886:0{count}crwdne1886:0" }, + "sponsors": { + "title": "crwdns4100:0crwdne4100:0", + "subtitle": "crwdns4102:0{count}crwdne4102:0" + }, "libraries": { "title": "crwdns1888:0crwdne1888:0", "subtitle": "crwdns1890:0{count}crwdne1890:0" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "crwdns1920:0crwdne1920:0" + }, + "host": { + "label": "crwdns4249:0crwdne4249:0" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "crwdns2072:0crwdne2072:0", "option": { "colorScheme": { + "auto": "crwdns4229:0crwdne4229:0", "light": "crwdns2074:0crwdne2074:0", "dark": "crwdns2076:0crwdne2076:0" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "crwdns2100:0crwdne2100:0", + "tipDdgBangs": "crwdns4237:0crwdne4237:0", + "bang": { + "searchWithQuery": "crwdns4239:0{query}crwdnd4239:0{label}crwdne4239:0", + "pressEnterToOpen": "crwdns4241:0crwdne4241:0", + "engineSelected": "crwdns4243:0{label}crwdnd4243:0{bang}crwdne4243:0", + "typeQueryToContinue": "crwdns4245:0crwdne4245:0", + "emptyBangHint": "crwdns4247:0crwdne4247:0" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json index 5b9ac6df0..46d284ee5 100644 --- a/packages/translation/src/lang/cs.json +++ b/packages/translation/src/lang/cs.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Změnit obrázek", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Světlý", "dark": "Tmavý" } @@ -1138,6 +1152,9 @@ "dangerZone": "Nebezpečná zóna", "noResults": "Nebyly nalezeny žádné výsledky", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "Zobrazit náhled", "hide": "Skrýt náhled" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Zápisník", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "Vložte jakýkoli obsah z internetu. Některé webové stránky mohou omezit přístup.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Povolit polohu" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Zobrazit informace o paměti" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Překladatelé", "subtitle": "{count} přispívá překladem do mnoha jazyků" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Porty" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json index d90161e39..09d071783 100644 --- a/packages/translation/src/lang/da.json +++ b/packages/translation/src/lang/da.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Åben søgeresultater i en ny fane" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Skift billede", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Lys", "dark": "Mørk" } @@ -1138,6 +1152,9 @@ "dangerZone": "Farezone", "noResults": "Ingen resultater fundet", "unsavedChanges": "Du har ikke gemte ændringer!", + "servers": "Servere", + "applications": "Apps", + "services": "Services", "preview": { "show": "Vis forhåndsvisning", "hide": "Skjul forhåndsvisning" @@ -1522,6 +1539,17 @@ "offline": "Offline" } }, + "timetable": { + "name": "Tidsskema", + "description": "Viser afgangstider for en station", + "title": "Afgange {station}", + "noStation": "Ingen station valgt", + "option": { + "station": { + "label": "Station" + } + } + }, "notebook": { "name": "Notesbog", "description": "En simpel notebook widget, der understøtter markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "Anchor note", + "description": "Viser en valgt note fra Anchor", + "option": { + "noteId": { + "label": "Note" + }, + "showTitle": { + "label": "Vis titel" + }, + "showUpdatedAt": { + "label": "Vis senest opdateret" + } + }, + "empty": "Vælg en note der skal vises", + "emptyContent": "Denne note har intet indhold", + "notFound": "Note ikke fundet", + "noNotes": "Ingen noter fundet", + "integrationRequired": "Vælg først en Anchorintegration", + "updatedAt": "Opdateret {date}", + "untitled": "Unavngivet", + "edit": "Rediger", + "save": "Gem", + "cancel": "Annullér", + "readOnlyViewer": "Du har læseadgang til denne note. Redigering er deaktiveret.", + "saveForbidden": "Du har ikke adgang til at redigere denne note.", + "saveFailed": "Kunne ikke gemme denne note. Prøv igen." + }, "iframe": { "name": "indlejret dokument (iframe)", "description": "Indlejr ethvert indhold fra internettet. Nogle websteder kan begrænse adgang.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Tillad geolokalisering" + }, + "allowModals": { + "label": "Tillad modaler" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Vis hukommelsesoplysninger" }, + "gpu": { + "label": "Vis GPU info" + }, "showUptime": { "label": "Vis Oppetid" }, @@ -1941,25 +2003,211 @@ "description": "Statistik for dine containere (Denne widget kan kun tilføjes med administratorrettigheder)", "option": { "enableRowSorting": { - "label": "" + "label": "Aktiver sortering" }, "defaultSort": { - "label": "", + "label": "Kolonne brugt til sortering som standard", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "Navn", + "state": "Tilstand", + "cpuUsage": "CPU-forbrug", + "memoryUsage": "Hukommelsesforbrug" } }, "descendingDefaultSort": { - "label": "" + "label": "Inverter sortering" } }, "error": { "internalServerError": "Kunne ikke hente containerstatistik" } }, + "coolify": { + "name": "Coolify", + "description": "Oversigt over din Coolify instans med servere og applikationer", + "option": { + "showServers": { + "label": "Vis servere" + }, + "showApplications": { + "label": "Vis applikationer" + }, + "showServices": { + "label": "Vis services" + } + }, + "empty": { + "servers": "Ingen servere fundet", + "applications": "Ingen applikationer fundet", + "services": "Ingen services fundet" + }, + "footer": { + "updated": "Opdateret {when}" + }, + "error": { + "noIntegration": "Ingen Coolify integration konfigureret", + "internalServerError": "Kunne ikke hente Coolify data" + }, + "server": { + "buildServer": "Byg" + }, + "instances": { + "title": "Instanser" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Forbedret overvågning af medieserver med detaljerede stream og omkodningsdata", + "option": { + "showStreams": { + "label": "Vis aktive streams" + }, + "showStats": { + "label": "Vis statistikoversigt" + }, + "showRecentActivity": { + "label": "Vis seneste aktivitet" + }, + "showViolations": { + "label": "Vis overtrædelser" + } + }, + "stats": { + "activeStreams": "Aktive streams", + "totalUsers": "Antal brugere i alt", + "transcodes": "Transkodninger", + "bandwidth": "Båndbredde" + }, + "streams": { + "empty": "Ingen aktive streams", + "user": "Bruger", + "media": "Medie", + "state": "Tilstand", + "quality": "Kvalitet", + "device": "Enhed", + "progress": "Fremskridt", + "videoDecision": { + "directPlay": "Direkte afspilning", + "transcode": "Transkod", + "directStream": "Direkte stream" + } + }, + "recentActivity": { + "title": "Seneste aktivitet", + "empty": "Ingen nylig aktivitet", + "watched": "Sete", + "partial": "Delvis" + }, + "violations": { + "title": "Overtrædelser", + "empty": "Ingen nylige overtrædelser", + "rule": "Regel", + "user": "Bruger" + }, + "noSectionsEnabled": "Ingen sektioner aktiveret", + "error": { + "noIntegration": "Ingen Tracearr integration konfigureret", + "internalServerError": "Kunne ikke hente Tracearr data" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "By / Postnummer", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Immich Server Statistik", + "description": "Information om din Immich instans", + "option": { + "showUsers": { + "label": "Vis brugere", + "description": "Vis antal brugere på din instans" + }, + "showPhotos": { + "label": "Vis billeder", + "description": "Vis antal billeder på din instans" + }, + "showVideos": { + "label": "Vis videoer", + "description": "Vis antal videoer på din instans" + }, + "showStorage": { + "label": "Vis lagerplads", + "description": "Vis den samlede mængde brugte lagerplads" + } + }, + "users": "Brugere", + "photos": "Billeder", + "videos": "Videoer", + "storage": "Brugt lagerplads" + }, + "immich-albumCarousel": { + "name": "Immich album", + "option": { + "albumId": { + "label": "Album ID", + "description": "Dette er et unikt ID som refererer til dit Immich album. Du kan finde dette id ved at åbne et album og kopiere den unikke streng fra URL, for eksempel 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Interval i sekunder", + "description": "Skift mellem billeder i albummet hvert X sekunder. Skal være mindst 1. Skal være under 3600." + }, + "showPhotoInfo": { + "label": "Vis billedinfo", + "description": "Vis dato for billedet og det aktuelle indeks i bunden af diasshowet" + } + }, + "description": "Diasshow af billeder i dit Immich album", + "noAlbumSelected": "Intet album valgt, rediger widget og vælg et album", + "noPhotos": "Ingen fotos i dette album" + }, "downloads": { "name": "Download Klient", "description": "Giver dig mulighed for at se og administrere dine downloads fra både Torrent og Usenet klienter.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Skjul beskrivelse" + }, + "showPosterImage": { + "label": "Vis poster billede" } } }, @@ -2575,6 +2872,45 @@ "noItems": "Ingen notifikationer at vise.", "option": {} }, + "speedtestTracker": { + "name": "Speedtest Tracker", + "description": "Viser testresultater for hastighed fra din Speedtest Tracker instans.", + "option": { + "showLatestResult": { + "label": "Vis seneste resultat" + }, + "showStats": { + "label": "Vis gennemsnit" + }, + "showRecentResults": { + "label": "Vis seneste resultater" + }, + "showPingGraph": { + "label": "Vis ping-graf" + } + }, + "latestResult": "Seneste resultat", + "averages": "Gennemsnit", + "tests": "{count} tests", + "recentResults": "Seneste resultater", + "recentResultsSpeed": "Hastighed", + "recentResultsPing": "Ping", + "download": "Download", + "upload": "Upload", + "ping": "Ping", + "status": "Status", + "avgDownload": "Gns Download", + "avgUpload": "Gns Upload", + "avgPing": "Gns Ping", + "healthy": "Sund", + "unhealthy": "Usund", + "ok": "OK", + "fail": "Fejl", + "noSectionsEnabled": "Aktivér mindst én sektion i widget-indstillinger.", + "error": { + "internalServerError": "Kunne ikke hente hastighedstestdata" + } + }, "systemResources": { "name": "Systemressourcer", "description": "CPU, Hukommelse, Disk og andet hardwareforbrug af dit system", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "Hukommelse", + "gpu": "GPU", "network": "Netværk" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "GPU", "network": "NET", "up": "OP", "down": "NED" } + }, + "systemDisks": { + "name": "System diske", + "description": "Diskforbrug af dit system", + "option": { + "showTemperatureIfAvailable": { + "label": "Vis temperatur, hvis muligt" + }, + "displayMode": { + "label": "Visningstilstand", + "option": { + "percentage": { + "label": "Procentdel (f.eks. 76 %)" + }, + "absolute": { + "label": "Absolutte værdier (f.eks. 800GB / 1TB)" + }, + "free": { + "label": "Fri pladsprocent (fx, 24% fri)" + } + } + }, + "showBackgroundBar": { + "label": "Vis forbrugslinje i baggrunden" + } + }, + "status": { + "unhealthy": "Usund" + } } }, "widgetPreview": { @@ -3295,10 +3662,10 @@ } }, "user": { - "title": "", + "title": "Brugere", "enableGravatar": { - "label": "", - "description": "" + "label": "Aktiver Gravatar", + "description": "Falder tilbage til brugernes avatarer fra Libravatar/Gravatar, når ingen brugerdefineret avatar er valgt og en e-mail er konfigureret" } }, "search": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Standard farvetema", "options": { + "auto": "", "light": "Lys", "dark": "Mørk" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Status for Minecraft server" }, + "timetable": { + "label": "Tidsskema" + }, "iconsUpdater": { "label": "Opdatering Af Ikoner" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Vejr" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Oversættere", "subtitle": "{count} bidragende oversættere på mange sprog" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Biblioteker", "subtitle": "{count} brugt i koden for Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Porte" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Globale kommandoer", "option": { "colorScheme": { + "auto": "", "light": "Skift til lys tilstand", "dark": "Skift til mørk tilstand" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Søgemaskiner", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/de-CH.json b/packages/translation/src/lang/de-CH.json index fa6cc8cb6..024e95740 100644 --- a/packages/translation/src/lang/de-CH.json +++ b/packages/translation/src/lang/de-CH.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Suchergebnisse in neuem Tab öffnen" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Biud wächsle", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Hell", "dark": "Dunkel" } @@ -1138,6 +1152,9 @@ "dangerZone": "Gefahrenbereich", "noResults": "Die Suche ergab keine Treffer", "unsavedChanges": "Sie haben ungespeicherte Änderungen!", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "Vorschau ansehen", "hide": "Vorschau ausblenden" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Notizbuch", "description": "Ein einfaches Notizbuch Widget, das Markdown unterstützt", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "Einbetten von Inhalten aus dem Internet. Einige Websites können den Zugriff einschränken.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Geolokalisierung zulassen" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Speicher-Info anzeigen" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Stadt / Postleitzahl", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "Ermöglicht es Ihnen, Ihre Downloads sowohl von Torrent- als auch von Usenet-Clients anzusehen und zu verwalten.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Standard Farbschema", "options": { + "auto": "", "light": "Hell", "dark": "Dunkel" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Status des Minecraft Servers" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "Symbol Updater" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Übersetzer", "subtitle": "{count} tragen Übersetzungen in viele Sprachen bei" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Bibliotheken", "subtitle": "{count} im Code von Homarr verwendet" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Globale Befehle", "option": { "colorScheme": { + "auto": "", "light": "Zum hellen Design wechseln", "dark": "Zum dunklen Design wechseln" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Suchmaschinen", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/de.json b/packages/translation/src/lang/de.json index af8cc1912..db0479ba6 100644 --- a/packages/translation/src/lang/de.json +++ b/packages/translation/src/lang/de.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Suchergebnisse in neuem Tab öffnen" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Bild ändern", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Hell", "dark": "Dunkel" } @@ -1138,6 +1152,9 @@ "dangerZone": "Gefahrenbereich", "noResults": "Die Suche ergab keine Treffer", "unsavedChanges": "Sie haben ungespeicherte Änderungen!", + "servers": "Server", + "applications": "Apps", + "services": "Dienste", "preview": { "show": "Vorschau ansehen", "hide": "Vorschau ausblenden" @@ -1522,6 +1539,17 @@ "offline": "Offline" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Notizbuch", "description": "Ein einfaches Notizbuch Widget, das Markdown unterstützt", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "Einbetten von Inhalten aus dem Internet. Einige Websites können den Zugriff einschränken.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Geolokalisierung zulassen" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Speicher-Info anzeigen" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Laufzeit anzeigen" }, @@ -1960,6 +2022,192 @@ "internalServerError": "Fehler beim Abrufen der Container Statistiken" } }, + "coolify": { + "name": "Coolify", + "description": "Übersicht Ihrer Coolify-Instanz mit Servern und Anwendungen", + "option": { + "showServers": { + "label": "Server anzeigen" + }, + "showApplications": { + "label": "Anwendungen anzeigen" + }, + "showServices": { + "label": "Dienste anzeigen" + } + }, + "empty": { + "servers": "Keine Server gefunden", + "applications": "Keine Anwendungen gefunden", + "services": "Keine Dienste gefunden" + }, + "footer": { + "updated": "Aktualisiert {when}" + }, + "error": { + "noIntegration": "Keine Coolify-Integration konfiguriert", + "internalServerError": "Fehler beim Abrufen der Coolify-Daten" + }, + "server": { + "buildServer": "Version" + }, + "instances": { + "title": "Instanzen" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "Aktive Streams anzeigen" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "Aktive Streams", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Stadt / Postleitzahl", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "Benutzer anzeigen", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "Download Client", "description": "Ermöglicht es Ihnen, Ihre Downloads sowohl von Torrent- als auch von Usenet-Clients anzusehen und zu verwalten.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Beschreibung ausblenden" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "Keine Benachrichtigungen zum Anzeigen.", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "Systemressourcen", "description": "CPU, Arbeitsspeicher, Festplatte und andere Hardware-Nutzung Ihres Systems", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "Speicher", + "gpu": "", "network": "Netzwerk" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "Arbeitsspeicher", + "gpu": "", "network": "Netzwerk", "up": "OBEN", "down": "UNTEN" } + }, + "systemDisks": { + "name": "Systemdatenträger", + "description": "Festplattennutzung Ihres Systems", + "option": { + "showTemperatureIfAvailable": { + "label": "Zeige Temperatur, falls verfügbar" + }, + "displayMode": { + "label": "Anzeigemodus", + "option": { + "percentage": { + "label": "Prozentsatz (z.B. 76%)" + }, + "absolute": { + "label": "Absolute Werte (z.B. 800GB / 1TB)" + }, + "free": { + "label": "Prozentsatz freier Speicherplatz (z. B. 24% frei)" + } + } + }, + "showBackgroundBar": { + "label": "Zeige Hintergrundnutzungsleiste" + } + }, + "status": { + "unhealthy": "Fehlerhaft" + } } }, "widgetPreview": { @@ -3240,7 +3607,7 @@ "title": "Nutzungsdaten", "general": { "title": "Anonymisierte Nutzungsdaten senden", - "text": "Homarr schickt anonymisierte Nutzungsdaten mit der Open-Source-Software Umami. Es sammelt zu keinem Zeitpunkt personenbezogene Daten und ist daher vollständig DPR & CCPA konform. Wir empfehlen diese Nutzungsdaten zu aktivieren, da es unserem Open-Source-Team hilft Probleme zu identifizieren und unserem Backlog ermöglicht Priorität einzuräumen." + "text": "Homarr sendet anonymisierte Analysen mit der Open-Source-Software Umami. Wenn aktiviert, sammeln wir die Homarr-Version, den Datenbanktyp (MySQL/PostgreSQL/SQLite), den Docker/Kubernetes Status, die Authentifizierungsmethoden und die Anzahl der einzelnen Features. Alle Daten sind anonym und aggregiert - es werden keine persönlichen Informationen, URLs, Namen oder identifizierbare Daten gesammelt. Dies hilft unserem Open-Source-Team, Nutzungsmuster zu verstehen und der Entwicklung Priorität einzuräumen." }, "widgetData": { "title": "Widget Daten", @@ -3295,10 +3662,10 @@ } }, "user": { - "title": "", + "title": "Benutzer", "enableGravatar": { - "label": "", - "description": "" + "label": "Gravatar aktivieren", + "description": "Falls kein benutzerdefinierter Avatar gesetzt ist und eine E-Mail konfiguriert wurde, ist ein nutzen der Avatare von Libravatar/Gravatar möglich" } }, "search": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Standard Farbschema", "options": { + "auto": "", "light": "Hell", "dark": "Dunkel" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Status des Minecraft Servers" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "Symbol Updater" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Wetter" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Übersetzer", "subtitle": "{count} tragen Übersetzungen in viele Sprachen bei" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Bibliotheken", "subtitle": "{count} im Code von Homarr verwendet" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Ports" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Globale Befehle", "option": { "colorScheme": { + "auto": "", "light": "Zum hellen Design wechseln", "dark": "Zum dunklen Design wechseln" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Suchmaschinen", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/el.json b/packages/translation/src/lang/el.json index 48c9ce80e..9c9b49876 100644 --- a/packages/translation/src/lang/el.json +++ b/packages/translation/src/lang/el.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "Επικίνδυνη Περιοχή", "noResults": "Δεν βρέθηκαν αποτελέσματα", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Σημειωματάριο", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iframe", "description": "Ενσωματώστε οποιοδήποτε περιεχόμενο από το διαδίκτυο. Ορισμένοι ιστότοποι ενδέχεται να περιορίζουν την πρόσβαση.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Επιτρέπεται ο γεωεντοπισμός" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Εμφάνιση Πληροφοριών Μνήμης" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Θύρες" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json index 5d56a8847..ae6870d90 100644 --- a/packages/translation/src/lang/en-gb.json +++ b/packages/translation/src/lang/en-gb.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Open the search results in a new tab" + }, + "ddgBangs": { + "label": "Enable DuckDuckGo bangs" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "DuckDuckGo bangs toggled successfully" + }, + "error": { + "message": "Unable to toggle DuckDuckGo bangs" + } + } + }, "manageAvatar": { "changeImage": { "label": "Change image", @@ -836,19 +849,19 @@ "title": "Request error", "description": { "connection": { - "hostUnreachable": "", - "networkUnreachable": "", - "refused": "", - "reset": "" + "hostUnreachable": "The server could not be reached. This usually means the host is offline or unreachable from your network.", + "networkUnreachable": "The network is unreachable. Please check your Internet connection or network configuration.", + "refused": "The server refused the connection. It may not be running or is rejecting requests on the specified port.", + "reset": "The connection was unexpectedly closed by the server. This can happen if the server is unstable or restarted." }, "dns": { - "notFound": "", - "timeout": "", - "noAnswer": "" + "notFound": "The server address could not be found. Please check the URL for typos or invalid domain names.", + "timeout": "DNS lookup timed out. This may be a temporary issue—please try again in a few moments.", + "noAnswer": "The DNS server didn't return a valid response. The domain may exist but has no valid records." }, "timeout": { - "aborted": "", - "timeout": "" + "aborted": "The request was aborted before it could complete. This might be due to a user action or system timeout.", + "timeout": "The request took too long to complete and was timed out. Check your network or try again later." } } } @@ -920,8 +933,8 @@ "message": "The path is incorrect. Please double-check the URL" }, "tooManyRequests": { - "title": "", - "message": "" + "title": "Too many requests in a given time", + "message": "There were too many requests. You are likely being rate-limited or rejected by the target system" } } }, @@ -963,36 +976,36 @@ "newLabel": "New realm" }, "personalAccessToken": { - "label": "", - "newLabel": "" + "label": "Personal Access Token", + "newLabel": "New Personal Access Token" }, "topic": { - "label": "", - "newLabel": "" + "label": "Topic", + "newLabel": "New topic" }, "url": { - "label": "", - "newLabel": "" + "label": "URL", + "newLabel": "New URL" }, "opnsenseApiKey": { - "label": "", - "newLabel": "" + "label": "API Key (Key)", + "newLabel": "New API Key (Key)" }, "opnsenseApiSecret": { - "label": "", - "newLabel": "" + "label": "API Key (Secret)", + "newLabel": "New API Key (Secret)" }, "githubAppId": { - "label": "", - "newLabel": "" + "label": "App Id", + "newLabel": "New App Id" }, "githubInstallationId": { - "label": "", - "newLabel": "" + "label": "Installation Id", + "newLabel": "New Installation Id" }, "privateKey": { - "label": "", - "newLabel": "" + "label": "Private key", + "newLabel": "New private key" } } }, @@ -1044,14 +1057,14 @@ } }, "common": { - "success": "", + "success": "Success", "beta": "Beta", "error": "Alpha", "action": { "add": "Add", "apply": "Apply", "backToOverview": "Back to overview", - "change": "", + "change": "Change", "create": "Create", "createAnother": "Create and start over", "edit": "Edit", @@ -1063,7 +1076,7 @@ "cancel": "Cancel", "delete": "Delete", "discard": "Discard", - "close": "", + "close": "Close", "confirm": "Confirm", "continue": "Continue", "previous": "Previous", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "Auto", "light": "Light", "dark": "Dark" } @@ -1138,6 +1152,9 @@ "dangerZone": "Danger zone", "noResults": "No results have been found", "unsavedChanges": "You have unsaved changes!", + "servers": "Servers", + "applications": "Apps", + "services": "Services", "preview": { "show": "Show a preview", "hide": "Hide the preview" @@ -1174,8 +1191,8 @@ }, "unit": { "speed": { - "kilometersPerHour": "", - "milesPerHour": "" + "kilometersPerHour": "km/h", + "milesPerHour": "mph" } } }, @@ -1190,7 +1207,7 @@ "label": "Title" }, "customCssClasses": { - "label": "" + "label": "Custom CSS classes" }, "borderColor": { "label": "Border colour" @@ -1223,75 +1240,75 @@ }, "remove": { "title": "Remove category", - "message": "" + "message": "Are you sure you want to remove the category {name}?" }, "edit": { - "title": "", - "submit": "" + "title": "Rename category", + "submit": "Rename category" }, "menu": { "label": { - "create": "", - "changePosition": "" + "create": "New category", + "changePosition": "Change position" } }, "openAllInNewTabs": { - "title": "", - "text": "" + "title": "Open all in tabs", + "text": "Some browsers may block the bulk-opening of tabs for security reasons. Homarr was unable to open all windows, because your browser blocked this action. Please allow \"Open pop-up windows\" and re-try." } } }, "item": { "action": { - "create": "", - "import": "", - "edit": "", - "moveResize": "", - "duplicate": "", - "remove": "" + "create": "New item", + "import": "Import item", + "edit": "Edit item", + "moveResize": "Move / resize item", + "duplicate": "Duplicate item", + "remove": "Remove item" }, "menu": { "label": { - "settings": "" + "settings": "Settings" } }, "create": { - "title": "", - "search": "", - "addToBoard": "" + "title": "Choose item to add", + "search": "Filter items", + "addToBoard": "Add to board" }, "moveResize": { - "title": "", + "title": "Move / resize item", "field": { "width": { - "label": "" + "label": "Width" }, "height": { - "label": "" + "label": "Height" }, "xOffset": { - "label": "" + "label": "X offset" }, "yOffset": { - "label": "" + "label": "Y offset" } } }, "edit": { - "title": "", + "title": "Edit item", "advancedOptions": { - "label": "", - "title": "" + "label": "Advanced options", + "title": "Advanced item options" }, "field": { "integrations": { - "label": "" + "label": "Integrations" }, "title": { - "label": "" + "label": "Title" }, "customCssClasses": { - "label": "" + "label": "Custom CSS classes" }, "borderColor": { "label": "Border colour" @@ -1299,110 +1316,110 @@ } }, "remove": { - "title": "", - "message": "" + "title": "Remove item", + "message": "Are you sure you want to remove this item?" } }, "widget": { "app": { - "name": "", - "description": "", + "name": "App", + "description": "Embeds an app into the board.", "option": { "appId": { - "label": "" + "label": "Choose app" }, "openInNewTab": { - "label": "" + "label": "Open in new tab" }, "showTitle": { - "label": "" + "label": "Show app name" }, "pingEnabled": { - "label": "" + "label": "Enable status check" }, "layout": { - "label": "", + "label": "Layout", "option": { - "row": "", - "row-reverse": "", - "column": "", - "column-reverse": "" + "row": "Horizontal", + "row-reverse": "Horizontal (reversed)", + "column": "Vertical", + "column-reverse": "Vertical (reversed)" } }, "descriptionDisplayMode": { - "label": "", - "description": "", + "label": "Description display mode", + "description": "Choose how to display the app description", "option": { - "normal": "", - "tooltip": "", - "hidden": "" + "normal": "Within widget", + "tooltip": "As tooltip", + "hidden": "Hidden" } } }, "error": { "notFound": { - "label": "", - "tooltip": "" + "label": "No app", + "tooltip": "You have no valid app selected" } } }, "bookmarks": { - "name": "", - "description": "", + "name": "Bookmarks", + "description": "Displays multiple app links", "option": { "title": { - "label": "" + "label": "Title" }, "layout": { - "label": "", + "label": "Layout", "option": { "row": { - "label": "" + "label": "Horizontal" }, "column": { - "label": "" + "label": "Vertical" }, "grid": { - "label": "" + "label": "Grid" }, "gridHorizontal": { - "label": "" + "label": "Grid horizontal" } } }, "hideTitle": { - "label": "" + "label": "Hide title" }, "hideIcon": { - "label": "" + "label": "Hide icons" }, "hideHostname": { - "label": "" + "label": "Hide hostnames" }, "openNewTab": { - "label": "" + "label": "Open in new tab" }, "items": { - "label": "", - "add": "" + "label": "Bookmarks", + "add": "Add bookmark" } } }, "dnsHoleSummary": { - "name": "", - "description": "", + "name": "DNS Hole Summary", + "description": "Displays the summary of your DNS Hole", "option": { "layout": { - "label": "", + "label": "Layout", "option": { "row": { - "label": "" + "label": "Horizontal" }, "column": { - "label": "" + "label": "Vertical" }, "grid": { - "label": "" + "label": "Grid" } } }, @@ -1411,649 +1428,926 @@ } }, "error": { - "internalServerError": "", - "integrationsDisconnected": "" + "internalServerError": "Failed to fetch DNS Hole Summary", + "integrationsDisconnected": "No data available, all integrations disconnected" }, "data": { - "adsBlockedToday": "", - "adsBlockedTodayPercentage": "", - "dnsQueriesToday": "", - "domainsBeingBlocked": "" + "adsBlockedToday": "Blocked today", + "adsBlockedTodayPercentage": "Blocked today", + "dnsQueriesToday": "Queries today", + "domainsBeingBlocked": "Domains on blocklist" }, - "domainsTooltip": "" + "domainsTooltip": "Due to multiple integrations Homarr can't calculate the exact number of domains being blocked" }, "dnsHoleControls": { - "name": "", - "description": "", + "name": "DNS Hole Controls", + "description": "Control PiHole or AdGuard from your dashboard", "option": { "layout": { - "label": "", + "label": "Layout", "option": { "row": { - "label": "" + "label": "Horizontal" }, "column": { - "label": "" + "label": "Vertical" }, "grid": { - "label": "" + "label": "Grid" } } }, "showToggleAllButtons": { - "label": "" + "label": "Show Toggle All Buttons" } }, "error": { - "internalServerError": "" + "internalServerError": "Failed to control DNS Hole" }, "controls": { - "enableAll": "", - "disableAll": "", - "setTimer": "", - "set": "", - "enabled": "", - "disabled": "", - "processing": "", - "disconnected": "", - "hours": "", - "minutes": "", - "unlimited": "" + "enableAll": "Enable All", + "disableAll": "Disable All", + "setTimer": "Set Timer", + "set": "Set", + "enabled": "Enabled", + "disabled": "Disabled", + "processing": "Processing", + "disconnected": "Disconnected", + "hours": "Hours", + "minutes": "Minutes", + "unlimited": "Leave blank to unlimited" } }, "clock": { - "name": "", - "description": "", + "name": "Date and time", + "description": "Displays the current date and time.", "option": { "customTitleToggle": { - "label": "", - "description": "" + "label": "Custom Title/City display", + "description": "Show off a custom title or the name of the city/country on top of the clock." }, "customTitle": { - "label": "" + "label": "Title" }, "is24HourFormat": { - "label": "", - "description": "" + "label": "24-hour format", + "description": "Use 24-hour format instead of 12-hour format" }, "showSeconds": { - "label": "" + "label": "Display seconds" }, "useCustomTimezone": { "label": " " }, "timezone": { - "label": "", - "description": "" + "label": "Time zone", + "description": "Choose the time zone following the IANA standard" }, "showDate": { - "label": "" + "label": "Show the date" }, "dateFormat": { - "label": "", - "description": "" + "label": "Date Format", + "description": "How the date should look like" }, "customTimeFormat": { - "label": "", - "description": "" + "label": "Custom time format", + "description": "Use ISO 8601 to format time (this will override other options)" }, "customDateFormat": { - "label": "", - "description": "" + "label": "Custom date format", + "description": "Use ISO 8601 to format date (this will override other options)" } } }, "minecraftServerStatus": { - "name": "", - "description": "", + "name": "Minecraft Server Status", + "description": "Displays the status of a Minecraft server", "option": { "title": { - "label": "" + "label": "Title" }, "domain": { - "label": "" + "label": "Server address" }, "isBedrockServer": { - "label": "" + "label": "Bedrock server" } }, "status": { - "online": "", - "offline": "" + "online": "Online", + "offline": "Offline" + } + }, + "timetable": { + "name": "Timetable", + "description": "Displays departure times for a station", + "title": "Departures {station}", + "noStation": "No station selected", + "option": { + "station": { + "label": "Station" + } } }, "notebook": { - "name": "", - "description": "", + "name": "Notebook", + "description": "A simple notebook widget that supports markdown", "option": { "showToolbar": { - "label": "" + "label": "Show the toolbar to help you write markdown" }, "allowReadOnlyCheck": { - "label": "" + "label": "Allow check in read only mode" }, "content": { - "label": "" + "label": "The content of the notebook" } }, "controls": { - "bold": "", - "italic": "", - "strikethrough": "", - "underline": "", + "bold": "Bold", + "italic": "Italic", + "strikethrough": "Strikethrough", + "underline": "Underline", "colorText": "Colour text", "colorHighlight": "Coloured highlight text", - "code": "", - "clear": "", - "heading": "", - "align": "", - "blockquote": "", - "horizontalLine": "", - "bulletList": "", - "orderedList": "", - "checkList": "", - "increaseIndent": "", - "decreaseIndent": "", - "link": "", - "unlink": "", - "image": "", - "addTable": "", - "deleteTable": "", + "code": "Code", + "clear": "Clear formatting", + "heading": "Heading {level}", + "align": "Align text: {position}", + "blockquote": "Blockquote", + "horizontalLine": "Horizontal line", + "bulletList": "Bullet list", + "orderedList": "Ordered list", + "checkList": "Check list", + "increaseIndent": "Increase Indent", + "decreaseIndent": "Decrease Indent", + "link": "Link", + "unlink": "Remove link", + "image": "Embed Image", + "addTable": "Add table", + "deleteTable": "Delete Table", "colorCell": "Colour cell", - "mergeCell": "", - "addColumnLeft": "", - "addColumnRight": "", - "deleteColumn": "", - "addRowTop": "", - "addRowBelow": "", - "deleteRow": "" + "mergeCell": "Toggle cell merging", + "addColumnLeft": "Add column before", + "addColumnRight": "Add column after", + "deleteColumn": "Delete column", + "addRowTop": "Add row before", + "addRowBelow": "Add row after", + "deleteRow": "Delete row" }, "align": { - "left": "", - "center": "", - "right": "" + "left": "Left", + "center": "Centre", + "right": "Right" }, "popover": { "clearColor": "Clear colour", - "source": "", - "widthPlaceholder": "", - "columns": "", - "rows": "", - "width": "", - "height": "" + "source": "Source", + "widthPlaceholder": "Value in % or pixels", + "columns": "Columns", + "rows": "Rows", + "width": "Width", + "height": "Height" }, - "placeholder": "", + "placeholder": "Start writing your notes", "dismiss": { - "title": "", - "message": "", + "title": "Dismiss changes?", + "message": "You have unsaved changes in your notebook. Are you sure you want to discard them?", "action": { - "discard": "", - "keepEditing": "" + "discard": "Discard changes", + "keepEditing": "Keep editing" } } }, + "anchorNote": { + "name": "Anchor Note", + "description": "Displays a selected note from Anchor", + "option": { + "noteId": { + "label": "Note" + }, + "showTitle": { + "label": "Show title" + }, + "showUpdatedAt": { + "label": "Show last updated" + } + }, + "empty": "Select a note to display", + "emptyContent": "This note has no content", + "notFound": "Note not found", + "noNotes": "No notes found", + "integrationRequired": "Select an Anchor integration first", + "updatedAt": "Updated {date}", + "untitled": "Untitled", + "edit": "Edit", + "save": "Save", + "cancel": "Cancel", + "readOnlyViewer": "You have viewer access to this note. Editing is disabled.", + "saveForbidden": "You do not have permission to edit this note.", + "saveFailed": "Failed to save this note. Please try again." + }, "iframe": { - "name": "", - "description": "", + "name": "iFrame", + "description": "Embed any content from the Internet. Some websites may restrict access.", "option": { "embedUrl": { - "label": "" + "label": "Embed URL" }, "allowFullScreen": { - "label": "" + "label": "Allow full screen" }, "allowTransparency": { - "label": "" + "label": "Allow transparency" }, "allowScrolling": { - "label": "" + "label": "Allow scrolling" }, "allowPayment": { - "label": "" + "label": "Allow payment" }, "allowAutoPlay": { - "label": "" + "label": "Allow auto play" }, "allowMicrophone": { - "label": "" + "label": "Allow microphone" }, "allowCamera": { - "label": "" + "label": "Allow camera" }, "allowGeolocation": { - "label": "" + "label": "Allow geolocation" + }, + "allowModals": { + "label": "Allow modals" } }, "error": { - "noUrl": "", - "unsupportedProtocol": "", - "noBrowerSupport": "" + "noUrl": "No iFrame URL provided", + "unsupportedProtocol": "The URL provided is using an unsupported protocol. Please use one of ({supportedProtocols})", + "noBrowerSupport": "Your Browser does not support iframes. Please update your browser." } }, "smartHome-entityState": { - "name": "", - "description": "", + "name": "Entity State", + "description": "Display the state of an entity and toggle it optionally", "option": { "entityId": { - "label": "" + "label": "Entity ID" }, "displayName": { - "label": "" + "label": "Display-name" }, "entityUnit": { - "label": "" + "label": "Entity Unit" }, "clickable": { - "label": "" + "label": "Clickable" } } }, "smartHome-executeAutomation": { - "name": "", - "description": "", + "name": "Execute Automation", + "description": "Trigger an automation with one click", "option": { "displayName": { - "label": "" + "label": "Display name" }, "automationId": { - "label": "" + "label": "Automation ID" } }, "spotlightAction": { - "run": "" + "run": "Run {name}" } }, "stockPrice": { - "name": "", - "description": "", + "name": "Stock Price", + "description": "Displays the current stock price of a company", "option": { "stock": { - "label": "" + "label": "Stock symbol" }, "timeRange": { - "label": "", + "label": "Time Range", "option": { "1d": { - "label": "" + "label": "1 Day" }, "5d": { - "label": "" + "label": "5 Day" }, "1mo": { - "label": "" + "label": "1 Month" }, "3mo": { - "label": "" + "label": "3 Months" }, "6mo": { - "label": "" + "label": "6 Months" }, "ytd": { - "label": "" + "label": "Year to Date" }, "1y": { - "label": "" + "label": "1 Year" }, "2y": { - "label": "" + "label": "2 Years" }, "5y": { - "label": "" + "label": "5 Years" }, "10y": { - "label": "" + "label": "10 Years" }, "max": { - "label": "" + "label": "Max" } } }, "timeInterval": { - "label": "", + "label": "Time Interval", "option": { "5m": { - "label": "" + "label": "5 Minutes" }, "15m": { - "label": "" + "label": "15 Minutes" }, "30m": { - "label": "" + "label": "30 Minutes" }, "1h": { - "label": "" + "label": "1 Hour" }, "1d": { - "label": "" + "label": "1 Day" }, "5d": { - "label": "" + "label": "5 Days" }, "1wk": { - "label": "" + "label": "1 Week" }, "1mo": { - "label": "" + "label": "1 Month" } } } } }, "calendar": { - "name": "", - "description": "", + "name": "Calendar", + "description": "Display events from your integrations in a calendar view within a certain relative time period", "duration": { - "allDay": "" + "allDay": "All day" }, "option": { "releaseType": { - "label": "", + "label": "Radarr release type", "options": { - "inCinemas": "", - "digitalRelease": "", - "physicalRelease": "" + "inCinemas": "In cinemas", + "digitalRelease": "Digital release", + "physicalRelease": "Physical release" } }, "filterPastMonths": { - "label": "" + "label": "Start from" }, "filterFutureMonths": { - "label": "" + "label": "End at" }, "showUnmonitored": { - "label": "" + "label": "Show unmonitored" } } }, "weather": { - "name": "", - "description": "", + "name": "Weather", + "description": "Displays the current weather information of a set location.", "option": { "isFormatFahrenheit": { - "label": "" + "label": "Temperature in Fahrenheit" }, "disableTemperatureDecimals": { - "label": "" + "label": "Disable temperature decimals" }, "showCurrentWindSpeed": { - "label": "", - "description": "" + "label": "Show current wind speed", + "description": "Only on current weather" }, "useImperialSpeed": { - "label": "" + "label": "Use mph for windspeed" }, "location": { - "label": "" + "label": "Weather location" }, "showCity": { - "label": "" + "label": "Show city" }, "hasForecast": { - "label": "" + "label": "Show forecast" }, "forecastDayCount": { - "label": "", - "description": "" + "label": "Amount of forecast days", + "description": "When the widget is not wide enough, less days are shown" }, "dateFormat": { - "label": "", - "description": "" + "label": "Date Format", + "description": "How the date should look like" } }, - "currentWindSpeed": "", + "currentWindSpeed": "{currentWindSpeed} {unit}", "dailyForecast": { - "sunrise": "", - "sunset": "", - "maxWindSpeed": "", - "maxWindGusts": "" + "sunrise": "Sunrise", + "sunset": "Sunset", + "maxWindSpeed": "Max wind speed: {maxWindSpeed} {unit}", + "maxWindGusts": "Max wind gusts: {maxWindGusts} {unit}" }, "kind": { - "clear": "", - "mainlyClear": "", - "fog": "", - "drizzle": "", - "freezingDrizzle": "", - "rain": "", - "freezingRain": "", - "snowFall": "", - "snowGrains": "", - "rainShowers": "", - "snowShowers": "", - "thunderstorm": "", - "thunderstormWithHail": "", - "unknown": "" + "clear": "Clear", + "mainlyClear": "Mainly clear", + "fog": "Fog", + "drizzle": "Drizzle", + "freezingDrizzle": "Freezing drizzle", + "rain": "Rain", + "freezingRain": "Freezing rain", + "snowFall": "Snow fall", + "snowGrains": "Snow grains", + "rainShowers": "Rain showers", + "snowShowers": "Snow showers", + "thunderstorm": "Thunderstorm", + "thunderstormWithHail": "Thunderstorm with hail", + "unknown": "Unknown" } }, "indexerManager": { - "name": "", - "description": "", + "name": "Indexer manager status", + "description": "Status of your indexers", "option": { "openIndexerSiteInNewTab": { - "label": "" + "label": "Open indexer site in new tab" } }, - "title": "", - "testAll": "", + "title": "Indexer manager", + "testAll": "Test all", "error": { - "internalServerError": "" + "internalServerError": "Failed to fetch indexers status" } }, "healthMonitoring": { - "name": "", - "description": "", + "name": "System Health Monitoring", + "description": "Displays information showing the health and status of your system(s).", "tab": { - "system": "", - "cluster": "" + "system": "System", + "cluster": "Cluster" }, "option": { "fahrenheit": { - "label": "" + "label": "CPU Temp in Fahrenheit" }, "cpu": { - "label": "" + "label": "Show CPU Info" }, "memory": { - "label": "" + "label": "Show Memory Info" + }, + "gpu": { + "label": "Show GPU Info" }, "showUptime": { - "label": "" + "label": "Show Uptime" }, "fileSystem": { - "label": "" + "label": "Show Filesystem Info" }, "defaultTab": { - "label": "" + "label": "Default tab" }, "visibleClusterSections": { - "label": "" + "label": "Visible cluster sections" }, "sectionIndicatorRequirement": { - "label": "" + "label": "Section indicator requirement" } }, "popover": { - "information": "", - "processor": "", - "memory": "", - "memoryAvailable": "", - "version": "", - "uptime": "", - "loadAverage": "", - "minute": "", - "minutes": "", - "used": "", - "available": "", - "lastSeen": "" + "information": "Information", + "processor": "Processor: {cpuModelName}", + "memory": "Memory: {memory}GiB", + "memoryAvailable": "Available: {memoryAvailable}GiB ({percent}%)", + "version": "Version: {version}", + "uptime": "Uptime: {months} Months, {days} Days, {hours} Hours, {minutes} Minutes", + "loadAverage": "Load average:", + "minute": "1 minute", + "minutes": "{count} minutes", + "used": "Used", + "available": "Available", + "lastSeen": "Last status update: {lastSeen}" }, "memory": {}, "error": { - "internalServerError": "" + "internalServerError": "Failed to fetch health status" }, "cluster": { "summary": { - "cpu": "", - "memory": "" + "cpu": "CPU", + "memory": "RAM" }, "resource": { "node": { - "name": "" + "name": "Nodes" }, "qemu": { - "name": "" + "name": "VMs" }, "lxc": { - "name": "" + "name": "LXCs" }, "storage": { - "name": "" + "name": "Storage" } }, "popover": { "rightSection": { - "node": "", - "vmId": "", - "plugin": "" + "node": "Node", + "vmId": "VM ID", + "plugin": "Plugin" }, "detail": { - "cpu": "", - "memory": "", - "storage": "", - "uptime": "", - "haState": "", + "cpu": "Cores", + "memory": "Memory", + "storage": "Storage", + "uptime": "Uptime", + "haState": "HA State", "storageType": { - "local": "", - "shared": "" + "local": "Local storage", + "shared": "Shared storage" } } }, "table": { "header": { - "name": "", - "cpu": "", - "memory": "", - "node": "" + "name": "Name", + "cpu": "CPU", + "memory": "RAM", + "node": "Node" } } } }, "dockerContainers": { - "name": "", - "description": "", + "name": "Docker stats", + "description": "Stats of your containers (This widget can only be added with administrator privileges)", "option": { "enableRowSorting": { - "label": "" + "label": "Enable items sorting" }, "defaultSort": { - "label": "", + "label": "Column used for sorting by default", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "Name", + "state": "State", + "cpuUsage": "CPU usage", + "memoryUsage": "Memory usage" } }, "descendingDefaultSort": { - "label": "" + "label": "Invert sorting" } }, "error": { + "internalServerError": "Failed to fetch containers stats" + } + }, + "coolify": { + "name": "Coolify", + "description": "Overview of your Coolify instance with servers and applications", + "option": { + "showServers": { + "label": "Show servers" + }, + "showApplications": { + "label": "Show applications" + }, + "showServices": { + "label": "Show services" + } + }, + "empty": { + "servers": "No servers found", + "applications": "No applications found", + "services": "No services found" + }, + "footer": { + "updated": "Updated {when}" + }, + "error": { + "noIntegration": "No Coolify integration configured", + "internalServerError": "Failed to fetch Coolify data" + }, + "server": { + "buildServer": "Build" + }, + "instances": { + "title": "Instances" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Enhanced media server monitoring with detailed stream and transcoding data", + "option": { + "showStreams": { + "label": "Show active streams" + }, + "showStats": { + "label": "Show stats summary" + }, + "showRecentActivity": { + "label": "Show recent activity" + }, + "showViolations": { + "label": "Show violations" + } + }, + "stats": { + "activeStreams": "Active Streams", + "totalUsers": "Total Users", + "transcodes": "Transcodes", + "bandwidth": "Bandwidth" + }, + "streams": { + "empty": "No active streams", + "user": "User", + "media": "Media", + "state": "State", + "quality": "Quality", + "device": "Device", + "progress": "Progress", + "videoDecision": { + "directPlay": "Direct Play", + "transcode": "Transcode", + "directStream": "Direct Stream" + } + }, + "recentActivity": { + "title": "Recent Activity", + "empty": "No recent activity", + "watched": "Watched", + "partial": "Partial" + }, + "violations": { + "title": "Violations", + "empty": "No recent violations", + "rule": "Rule", + "user": "User" + }, + "noSectionsEnabled": "No sections enabled", + "error": { + "noIntegration": "No Tracearr integration configured", + "internalServerError": "Failed to fetch Tracearr data" + } + }, + "umami": { + "name": "Umami Analytics", + "description": "Display visitor stats from your Umami analytics instance", + "visitors": "visitors", + "active": "active", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", "internalServerError": "" } }, "common": { "location": { - "query": "", - "latitude": "", - "longitude": "", - "disabledTooltip": "", - "unknownLocation": "", - "search": "", + "query": "City / Postal code", + "latitude": "Latitude", + "longitude": "Longitude", + "disabledTooltip": "Please enter a city or postal code", + "unknownLocation": "Unknown location", + "search": "Search", "table": { "header": { - "city": "", - "country": "", - "coordinates": "", - "population": "" + "city": "City", + "country": "Country", + "coordinates": "Coordinates", + "population": "Population" }, "action": { - "select": "" + "select": "Select {city}, {countryCode}" }, "population": { - "fallback": "" + "fallback": "Unknown" } } }, "integration": { - "noData": "", - "description": "" + "noData": "No integration found", + "description": "Click to create a new integration" }, "app": { - "noData": "", - "description": "", - "quickCreate": "" + "noData": "No app found", + "description": "Click to create a new app", + "quickCreate": "Create app on the fly" }, "error": { - "noIntegration": "", - "noData": "" + "noIntegration": "No integration selected", + "noData": "No integration data available" }, "option": {} }, "video": { - "name": "", - "description": "", + "name": "Video Stream", + "description": "Embed a video stream or video from a camera or a website", "option": { "feedUrl": { - "label": "" + "label": "Feed URL" }, "hasAutoPlay": { - "label": "", - "description": "" + "label": "Autoplay", + "description": "Autoplay only works when muted because of browser restrictions" }, "isMuted": { - "label": "" + "label": "Muted" }, "hasControls": { - "label": "" + "label": "Show controls" } }, "error": { - "noUrl": "", - "forYoutubeUseIframe": "" + "noUrl": "No Video URL provided", + "forYoutubeUseIframe": "For YouTube videos use the iframe option" } }, "mediaServer": { - "name": "", - "description": "", + "name": "Current media server streams", + "description": "Show the current streams on your media servers", "option": { "showOnlyPlaying": { + "label": "Show only currently playing", + "description": "Disabling this will not work for Plex" + } + }, + "items": { + "currentlyPlaying": "Currently playing", + "user": "User", + "name": "Name", + "id": "Id", + "metadata": { + "title": "Stats for nerds", + "video": { + "title": "Video", + "resolution": "Resolution" + }, + "audio": { + "title": "Audio", + "channelCount": "Audio channels", + "codec": "Audio codec" + }, + "transcoding": { + "title": "Transcoding", + "container": "Container", + "resolution": "Resolution", + "target": "Target codec" + } + } + } + }, + "immich-serverStats": { + "name": "Immich Server Stats", + "description": "Information about your Immich instance", + "option": { + "showUsers": { + "label": "Show users", + "description": "Show count of users on your instance" + }, + "showPhotos": { + "label": "Show photos", + "description": "Show count of photos on your instance" + }, + "showVideos": { + "label": "Show videos", + "description": "Show count of videos on your instance" + }, + "showStorage": { + "label": "Show storage", + "description": "Show the total amount of storage used" + } + }, + "users": "Users", + "photos": "Photos", + "videos": "Videos", + "storage": "Used Storage" + }, + "immich-albumCarousel": { + "name": "Immich Album", + "option": { + "albumId": { + "label": "Album ID", + "description": "This is a unique ID which refers to your Immich album. You can find this id by opening an album and copying the unique string from the URL, for example 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Interval in seconds", + "description": "Rotate between pictures in the album every X seconds. Must be at least 1. Must be below 3600." + }, + "showPhotoInfo": { "label": "", "description": "" } }, - "items": { - "currentlyPlaying": "", - "user": "", - "name": "", - "id": "", - "metadata": { - "title": "", - "video": { - "title": "", - "resolution": "" - }, - "audio": { - "title": "", - "channelCount": "", - "codec": "" - }, - "transcoding": { - "title": "", - "container": "", - "resolution": "", - "target": "" - } - } - } + "description": "", + "noAlbumSelected": "", + "noPhotos": "" }, "downloads": { "name": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Default colour scheme", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4136,21 +4521,21 @@ "label": "" }, "newIntegration": { - "label": "", + "label": "Create a new integration", "children": { "detail": { - "title": "" + "title": "Select the integration type you want to create" } } }, "newUser": { - "label": "" + "label": "Create a new user" }, "newInvite": { - "label": "" + "label": "Create a new invite" }, "newGroup": { - "label": "" + "label": "Create a new group" } } } @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { @@ -4193,12 +4586,12 @@ "description": "" }, "torrent": { - "name": "", - "description": "" + "name": "Torrents", + "description": "Search for torrents on torrentdownloads.pro" }, "youTube": { - "name": "", - "description": "" + "name": "YouTube", + "description": "Search for videos on YouTube" } } } @@ -4207,19 +4600,19 @@ "help": { "group": { "mode": { - "title": "" + "title": "Modes" }, "help": { - "title": "", + "title": "Help", "option": { "documentation": { - "label": "" + "label": "Documentation" }, "submitIssue": { - "label": "" + "label": "Submit an issue" }, "discord": { - "label": "" + "label": "Community Discord" } } } @@ -4228,121 +4621,121 @@ "home": { "group": { "search": { - "title": "", + "title": "Search", "option": { "other": { - "label": "" + "label": "Search with another search engine" }, "no-default": { - "label": "", - "description": "" + "label": "No default search engine", + "description": "Set a default search engine in preferences" }, "search": { - "label": "" + "label": "Search for \"{query}\" with {name}" }, "from-integration": { - "description": "" + "description": "Start typing to search" } } }, "local": { - "title": "" + "title": "Local results" } } }, "page": { - "help": "", + "help": "Search for pages", "group": { "page": { - "title": "", + "title": "Pages", "option": { "manageHome": { - "label": "" + "label": "Manage home page" }, "manageBoard": { - "label": "" + "label": "Manage boards" }, "manageApp": { - "label": "" + "label": "Manage apps" }, "manageIntegration": { - "label": "" + "label": "Manage integrations" }, "manageSearchEngine": { - "label": "" + "label": "Manage search engines" }, "manageMedia": { - "label": "" + "label": "Manage medias" }, "manageUser": { - "label": "" + "label": "Manage users" }, "manageInvite": { - "label": "" + "label": "Manage invites" }, "manageGroup": { - "label": "" + "label": "Manage groups" }, "manageDocker": { - "label": "" + "label": "Manage docker" }, "manageApi": { - "label": "" + "label": "Swagger API" }, "manageLog": { - "label": "" + "label": "View logs" }, "manageTask": { - "label": "" + "label": "Manage tasks" }, "manageSettings": { - "label": "" + "label": "Global settings" }, "about": { - "label": "" + "label": "About" }, "homeBoard": { - "label": "" + "label": "Home board" }, "preferences": { - "label": "" + "label": "Your preferences" } } } } }, "userGroup": { - "help": "", + "help": "Search for users or groups", "group": { "user": { - "title": "", + "title": "Users", "children": { "action": { "detail": { - "label": "" + "label": "Show user details" } }, "detail": { - "title": "" + "title": "Select an action for the user" } } }, "group": { - "title": "", + "title": "Groups", "children": { "action": { "detail": { - "label": "" + "label": "Show group details" }, "manageMember": { - "label": "" + "label": "Manage members" }, "managePermission": { - "label": "" + "label": "Manage permissions" } }, "detail": { - "title": "" + "title": "Select an action for the group" } } } @@ -4350,72 +4743,72 @@ } }, "engine": { - "search": "", + "search": "Find a search engine", "field": { "name": { - "label": "" + "label": "Name" }, "short": { - "label": "" + "label": "Short" }, "urlTemplate": { - "label": "" + "label": "URL search template" }, "description": { - "label": "" + "label": "Description" } }, "page": { "list": { - "title": "", + "title": "Search engines", "noResults": { - "title": "", - "action": "" + "title": "There are no search engines yet", + "action": "Create your first search engine" }, - "interactive": "" + "interactive": "Interactive, uses an integration" }, "create": { - "title": "", + "title": "New search engine", "notification": { "success": { - "title": "", - "message": "" + "title": "Search engine created", + "message": "The search engine was created successfully" }, "error": { - "title": "", - "message": "" + "title": "Search engine not created", + "message": "The search engine could not be created" } } }, "edit": { - "title": "", + "title": "Edit search engine", "notification": { "success": { - "title": "", - "message": "" + "title": "Changes applied successfully", + "message": "The search engine was saved successfully" }, "error": { - "title": "", - "message": "" + "title": "Unable to apply changes", + "message": "The search engine could not be saved" } }, - "configControl": "", + "configControl": "Configuration", "searchEngineType": { - "generic": "", - "fromIntegration": "" + "generic": "Generic", + "fromIntegration": "From integration" } }, "delete": { - "title": "", - "message": "", + "title": "Delete search engine", + "message": "Are you sure you want to delete the search engine {name}?", "notification": { "success": { - "title": "", - "message": "" + "title": "Search engine deleted", + "message": "The search engine was deleted successfully" }, "error": { - "title": "", - "message": "" + "title": "Search engine not deleted", + "message": "The search engine could not be deleted" } } } @@ -4423,15 +4816,15 @@ "media": { "request": { "modal": { - "title": "", + "title": "Request \"{name}\"", "table": { "header": { - "season": "", - "episodes": "" + "season": "Season", + "episodes": "Episodes" } }, "button": { - "send": "" + "send": "Send request" } } } @@ -4441,44 +4834,44 @@ "certificate": { "field": { "hostname": { - "label": "" + "label": "Hostname" }, "subject": { - "label": "" + "label": "Subject" }, "issuer": { - "label": "" + "label": "Issuer" }, "validFrom": { - "label": "" + "label": "Valid from" }, "validTo": { - "label": "" + "label": "Valid to" }, "serialNumber": { - "label": "" + "label": "Serial number" }, "fingerprint": { - "label": "" + "label": "Fingerprint" } }, "page": { "list": { - "title": "", - "description": "", + "title": "Trusted certificates", + "description": "Used by Homarr to request data from integrations.", "noResults": { - "title": "" + "title": "There are no certificates yet" }, "invalid": { - "title": "", - "description": "" + "title": "Invalid certificate", + "description": "Failed to parse certificate" }, - "expires": "", - "toHostnames": "" + "expires": "Expires {when}", + "toHostnames": "Trusted hostnames" }, "hostnames": { - "title": "", - "description": "", + "title": "Trusted certificate hostnames", + "description": "Some certificates do not allow the specific domain Homarr uses to request them, because of this all trusted hostnames with their certificate thumbprints are used to bypass these restrictions.", "noResults": { "title": "There are no hostnames yet" }, diff --git a/packages/translation/src/lang/en.json b/packages/translation/src/lang/en.json index d6c39e0c8..837a16dbf 100644 --- a/packages/translation/src/lang/en.json +++ b/packages/translation/src/lang/en.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Open search results in new tab" + }, + "ddgBangs": { + "label": "Enable DuckDuckGo bangs" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "DuckDuckGo bangs toggled successfully" + }, + "error": { + "message": "Unable to toggle DuckDuckGo bangs" + } + } + }, "manageAvatar": { "changeImage": { "label": "Change image", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "Auto", "light": "Light", "dark": "Dark" } @@ -1138,6 +1152,9 @@ "dangerZone": "Danger zone", "noResults": "No results found", "unsavedChanges": "You have unsaved changes!", + "servers": "Servers", + "applications": "Apps", + "services": "Services", "preview": { "show": "Show preview", "hide": "Hide preview" @@ -1522,6 +1539,17 @@ "offline": "Offline" } }, + "timetable": { + "name": "Timetable", + "description": "Displays departure times for a station", + "title": "Departures {station}", + "noStation": "No station selected", + "option": { + "station": { + "label": "Station" + } + } + }, "notebook": { "name": "Notebook", "description": "A simple notebook widget that supports markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "Anchor Note", + "description": "Displays a selected note from Anchor", + "option": { + "noteId": { + "label": "Note" + }, + "showTitle": { + "label": "Show title" + }, + "showUpdatedAt": { + "label": "Show last updated" + } + }, + "empty": "Select a note to display", + "emptyContent": "This note has no content", + "notFound": "Note not found", + "noNotes": "No notes found", + "integrationRequired": "Select an Anchor integration first", + "updatedAt": "Updated {date}", + "untitled": "Untitled", + "edit": "Edit", + "save": "Save", + "cancel": "Cancel", + "readOnlyViewer": "You have viewer access to this note. Editing is disabled.", + "saveForbidden": "You do not have permission to edit this note.", + "saveFailed": "Failed to save this note. Please try again." + }, "iframe": { "name": "iFrame", "description": "Embed any content from the internet. Some websites may restrict access.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Allow geolocation" + }, + "allowModals": { + "label": "Allow modals" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Show Memory Info" }, + "gpu": { + "label": "Show GPU Info" + }, "showUptime": { "label": "Show Uptime" }, @@ -1960,6 +2022,192 @@ "internalServerError": "Failed to fetch containers stats" } }, + "coolify": { + "name": "Coolify", + "description": "Overview of your Coolify instance with servers and applications", + "option": { + "showServers": { + "label": "Show servers" + }, + "showApplications": { + "label": "Show applications" + }, + "showServices": { + "label": "Show services" + } + }, + "empty": { + "servers": "No servers found", + "applications": "No applications found", + "services": "No services found" + }, + "footer": { + "updated": "Updated {when}" + }, + "error": { + "noIntegration": "No Coolify integration configured", + "internalServerError": "Failed to fetch Coolify data" + }, + "server": { + "buildServer": "Build" + }, + "instances": { + "title": "Instances" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Enhanced media server monitoring with detailed stream and transcoding data", + "option": { + "showStreams": { + "label": "Show active streams" + }, + "showStats": { + "label": "Show stats summary" + }, + "showRecentActivity": { + "label": "Show recent activity" + }, + "showViolations": { + "label": "Show violations" + } + }, + "stats": { + "activeStreams": "Active Streams", + "totalUsers": "Total Users", + "transcodes": "Transcodes", + "bandwidth": "Bandwidth" + }, + "streams": { + "empty": "No active streams", + "user": "User", + "media": "Media", + "state": "State", + "quality": "Quality", + "device": "Device", + "progress": "Progress", + "videoDecision": { + "directPlay": "Direct Play", + "transcode": "Transcode", + "directStream": "Direct Stream" + } + }, + "recentActivity": { + "title": "Recent Activity", + "empty": "No recent activity", + "watched": "Watched", + "partial": "Partial" + }, + "violations": { + "title": "Violations", + "empty": "No recent violations", + "rule": "Rule", + "user": "User" + }, + "noSectionsEnabled": "No sections enabled", + "error": { + "noIntegration": "No Tracearr integration configured", + "internalServerError": "Failed to fetch Tracearr data" + } + }, + "umami": { + "name": "Umami Analytics", + "description": "Display visitor stats from your Umami analytics instance", + "visitors": "visitors", + "active": "active", + "pageviews": "pageviews", + "visits": "visits", + "bounceRate": "bounce", + "avgDuration": "avg", + "option": { + "websiteId": { + "label": "Website", + "description": "Select a website tracked by your Umami instance", + "placeholder": "Select a website", + "loading": "Loading websites...", + "noWebsites": "No websites found", + "configureIntegrationFirst": "Connect a Umami integration first" + }, + "timeFrame": { + "label": "Time frame", + "description": "The time period to display visitor data for", + "option": { + "today": "Today", + "24h": "Last 24 hours", + "7d": "Last 7 days", + "30d": "Last 30 days", + "month": "This month", + "lastMonth": "Last month" + } + }, + "eventName": { + "label": "Event", + "description": "Show total occurrences of a specific event", + "placeholder": "Select an event", + "loading": "Loading events...", + "noEvents": "No events found", + "none": "No event", + "configureWebsiteFirst": "Select a website first to load events" + }, + "chartType": { + "label": "Chart type", + "description": "Display style for the chart", + "option": { + "bar": "Bar chart", + "sparkline": "Sparkline" + } + }, + "chartStyle": { + "label": "Chart style", + "description": "How to display the event series in the chart", + "option": { + "grouped": "Side by side", + "overlay": "Overlay (subset)" + } + }, + "viewMode": { + "label": "View", + "description": "What to display in the widget body", + "option": { + "chart": "Chart", + "events": "Events chart", + "topPages": "Top pages", + "topReferrers": "Top referrers" + } + }, + "eventNames": { + "label": "Events", + "description": "Select one or more events to chart", + "placeholder": "Select events...", + "loading": "Loading events...", + "noEvents": "No events found", + "configureWebsiteFirst": "Select a website first to load events" + }, + "topCount": { + "label": "Items to show", + "description": "Number of top items to display (max 500)" + } + }, + "event": { + "occurrences": "events", + "label": "events" + }, + "topPages": { + "direct": "Direct" + }, + "topReferrers": { + "direct": "Direct" + }, + "events": { + "selectPrompt": "Select events to chart" + }, + "error": { + "noIntegration": "No Umami integration configured", + "noWebsite": "No website configured", + "noData": "No data available", + "internalServerError": "Failed to fetch Umami data" + } + }, "common": { "location": { "query": "City / Postal code", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Immich Server Stats", + "description": "Information about your Immich instance", + "option": { + "showUsers": { + "label": "Show users", + "description": "Show count of users on your instance" + }, + "showPhotos": { + "label": "Show photos", + "description": "Show count of photos on your instance" + }, + "showVideos": { + "label": "Show videos", + "description": "Show count of videos on your instance" + }, + "showStorage": { + "label": "Show storage", + "description": "Show the total amount of storage used" + } + }, + "users": "Users", + "photos": "Photos", + "videos": "Videos", + "storage": "Used Storage" + }, + "immich-albumCarousel": { + "name": "Immich Album", + "option": { + "albumId": { + "label": "Album ID", + "description": "This is a unique ID which refers to your Immich album. You can find this id by opening an album and copying the unique string from the URL, for example 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Interval in seconds", + "description": "Rotate between pictures in the album every X seconds. Must be at least 1. Must be below 3600." + }, + "showPhotoInfo": { + "label": "Show photo info", + "description": "Display date of the picture and the current index at the bottom of the slideshow" + } + }, + "description": "Slideshow of pictures in your Immich album", + "noAlbumSelected": "No album selected, edit widget and choose an album", + "noPhotos": "No photos in this album" + }, "downloads": { "name": "Download Client", "description": "Allows you to view and manage your Downloads from both Torrent and Usenet clients.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Hide description" + }, + "showPosterImage": { + "label": "Show poster image" } } }, @@ -2575,6 +2872,45 @@ "noItems": "No notifications to display.", "option": {} }, + "speedtestTracker": { + "name": "Speedtest Tracker", + "description": "Displays speed test results from your Speedtest Tracker instance.", + "option": { + "showLatestResult": { + "label": "Show latest result" + }, + "showStats": { + "label": "Show averages" + }, + "showRecentResults": { + "label": "Show recent results" + }, + "showPingGraph": { + "label": "Show ping graph" + } + }, + "latestResult": "Latest Result", + "averages": "Averages", + "tests": "{count} tests", + "recentResults": "Recent Results", + "recentResultsSpeed": "Speed", + "recentResultsPing": "Ping", + "download": "Download", + "upload": "Upload", + "ping": "Ping", + "status": "Status", + "avgDownload": "Avg Download", + "avgUpload": "Avg Upload", + "avgPing": "Avg Ping", + "healthy": "Healthy", + "unhealthy": "Unhealthy", + "ok": "OK", + "fail": "Fail", + "noSectionsEnabled": "Enable at least one section in widget options.", + "error": { + "internalServerError": "Failed to fetch speedtest data" + } + }, "systemResources": { "name": "System resources", "description": "CPU, Memory, Disk and other hardware usage of your system", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "Memory", + "gpu": "GPU", "network": "Network" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "GPU", "network": "NET", "up": "UP", "down": "DOWN" } + }, + "systemDisks": { + "name": "System disks", + "description": "Disk usage of your system", + "option": { + "showTemperatureIfAvailable": { + "label": "Show temperature if available" + }, + "displayMode": { + "label": "Display mode", + "option": { + "percentage": { + "label": "Percentage (e.g., 76%)" + }, + "absolute": { + "label": "Absolute values (e.g., 800GB / 1TB)" + }, + "free": { + "label": "Free space percentage (e.g., 24% free)" + } + } + }, + "showBackgroundBar": { + "label": "Show background usage bar" + } + }, + "status": { + "unhealthy": "Unhealthy" + } } }, "widgetPreview": { @@ -3240,7 +3607,7 @@ "title": "Analytics", "general": { "title": "Send anonymous analytics", - "text": "Homarr will send anonymized analytics using the open source software Umami. It never collects any personal information and is therefore fully GDPR & CCPA compliant. We encourage you to enable analytics because it helps our open source team to identify issues and prioritize our backlog." + "text": "Homarr will send anonymized analytics using the open source software Umami. When enabled, we collect: Homarr version, database type (MySQL/PostgreSQL/SQLite), Docker/Kubernetes status, authentication methods enabled, and the number of each feature. All data is anonymous and aggregated - no personal information, URLs, names, or identifiable data is ever collected. This helps our open source team understand usage patterns and prioritize development." }, "widgetData": { "title": "Widget data", @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Default color scheme", "options": { + "auto": "Auto", "light": "Light", "dark": "Dark" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Minecraft server status" }, + "timetable": { + "label": "Timetable" + }, "iconsUpdater": { "label": "Icons Updater" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Weather" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "Umami Active Visitors" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Translators", "subtitle": "{count} contributing translations in many languages" }, + "sponsors": { + "title": "Sponsors", + "subtitle": "{count} supporting the project financially" + }, "libraries": { "title": "Libraries", "subtitle": "{count} used in the Code of Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Ports" + }, + "host": { + "label": "Host" } }, "action": { @@ -4121,6 +4505,7 @@ "title": "Global commands", "option": { "colorScheme": { + "auto": "Toggle appearance mode", "light": "Switch to light mode", "dark": "Switch to dark mode" }, @@ -4172,6 +4557,14 @@ "group": { "searchEngine": { "title": "Search engines", + "tipDdgBangs": "Tip: You can use any DuckDuckGo bangs here as well, e.g. !something", + "bang": { + "searchWithQuery": "Search \"{query}\" with {label}", + "pressEnterToOpen": "Press Enter to open", + "engineSelected": "{label} selected (!{bang})", + "typeQueryToContinue": "Type your search query to continue", + "emptyBangHint": "Type a bang, e.g. !yt, then press Space to select" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/es.json b/packages/translation/src/lang/es.json index 5605cf64c..cbbb17abd 100644 --- a/packages/translation/src/lang/es.json +++ b/packages/translation/src/lang/es.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Abrir resultados de búsqueda en una nueva pestaña" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Cambiar imagen", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Claro", "dark": "Oscuro" } @@ -1138,6 +1152,9 @@ "dangerZone": "Zona de riesgo", "noResults": "No se han encontrado resultados", "unsavedChanges": "¡Tienes cambios sin guardar!", + "servers": "Servidores", + "applications": "Aplicaciones", + "services": "Servicios", "preview": { "show": "Mostrar vista previa", "hide": "Ocultar vista previa" @@ -1522,6 +1539,17 @@ "offline": "Desconectado" } }, + "timetable": { + "name": "Horarios de estación", + "description": "Muestra los horarios de salida de una estación", + "title": "Salidas {station}", + "noStation": "No se ha seleccionado ninguna integración", + "option": { + "station": { + "label": "Estación" + } + } + }, "notebook": { "name": "Bloc de notas", "description": "Un widget de bloc de notas sencillo que soporta Markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "Nota de Anchor", + "description": "Muestra una nota seleccionada de Anchor", + "option": { + "noteId": { + "label": "Nota" + }, + "showTitle": { + "label": "Mostrar título" + }, + "showUpdatedAt": { + "label": "Mostrar última actualización" + } + }, + "empty": "Selecciona una nota para mostrar", + "emptyContent": "Esta nota no tiene contenido", + "notFound": "No se encontró la nota", + "noNotes": "No se encontraron notas", + "integrationRequired": "Selecciona primero una integración de Anchor", + "updatedAt": "Actualizado a {date}", + "untitled": "Sin título", + "edit": "Editar", + "save": "Guardar", + "cancel": "Cancelar", + "readOnlyViewer": "Solo tienes acceso de lectura para esta nota.", + "saveForbidden": "No tienes permiso para editar esta nota.", + "saveFailed": "Error al guardar esta nota. Por favor, inténtalo de nuevo." + }, "iframe": { "name": "iFrame", "description": "Incrusta cualquier contenido de Internet. Algunos sitios web pueden restringir el acceso.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Permitir geolocalización" + }, + "allowModals": { + "label": "Permitir modales" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Mostrar información de la memoria" }, + "gpu": { + "label": "Mostrar Información de GPU" + }, "showUptime": { "label": "Mostrar tiempo de actividad" }, @@ -1960,6 +2022,192 @@ "internalServerError": "No se pudo obtener las estadísticas de los contenedores" } }, + "coolify": { + "name": "Coolify", + "description": "Resumen de su instancia de Coolify con servidores y aplicaciones", + "option": { + "showServers": { + "label": "Mostrar servidores" + }, + "showApplications": { + "label": "Mostrar aplicaciones" + }, + "showServices": { + "label": "Mostrar servicios" + } + }, + "empty": { + "servers": "No se encontraron servidores", + "applications": "No se encontraron aplicaciones", + "services": "No se encontraron servicios" + }, + "footer": { + "updated": "Actualizado {when}" + }, + "error": { + "noIntegration": "No hay integración de Coolify configurada", + "internalServerError": "No se pudieron obtener los datos de Coolify" + }, + "server": { + "buildServer": "Construir" + }, + "instances": { + "title": "Instancias" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Monitoreo de servidores multimedia mejorado con información detallada de flujo y transcodificación", + "option": { + "showStreams": { + "label": "Mostrar flujos activos" + }, + "showStats": { + "label": "Mostrar resumen de estadísticas" + }, + "showRecentActivity": { + "label": "Mostrar actividad reciente" + }, + "showViolations": { + "label": "Mostrar infracciones" + } + }, + "stats": { + "activeStreams": "Flujos activos", + "totalUsers": "Usuarios totales", + "transcodes": "Transcodificaciones", + "bandwidth": "Ancho de banda" + }, + "streams": { + "empty": "No hay flujos activos", + "user": "Usuario", + "media": "Medio", + "state": "Estado", + "quality": "Calidad", + "device": "Dispositivo", + "progress": "Progreso", + "videoDecision": { + "directPlay": "Reproducción directa", + "transcode": "Transcodificación", + "directStream": "Flujo directo" + } + }, + "recentActivity": { + "title": "Actividad reciente", + "empty": "Sin actividad reciente", + "watched": "Visto", + "partial": "Parcial" + }, + "violations": { + "title": "Infracciones", + "empty": "Sin infracciones recientes", + "rule": "Regla", + "user": "Usuario" + }, + "noSectionsEnabled": "No hay secciones habilitadas", + "error": { + "noIntegration": "Ninguna integración de Tracearr configurada", + "internalServerError": "Error al obtener los datos de Tracearr" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Ciudad / Código postal", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Estadísticas del servidor Immich", + "description": "Información del servidor Immich", + "option": { + "showUsers": { + "label": "Mostrar usuarios", + "description": "Mostrar el número de usuarios del servidor" + }, + "showPhotos": { + "label": "Mostrar fotos", + "description": "Mostrar el número de fotos del servidor" + }, + "showVideos": { + "label": "Mostrar vídeos", + "description": "Mostrar el número de vídeos del servidor" + }, + "showStorage": { + "label": "Mostrar almacenamiento", + "description": "Mostrar la cantidad total de almacenamiento usado" + } + }, + "users": "Usuarios", + "photos": "Fotos", + "videos": "Vídeos", + "storage": "Almacenamiento usado" + }, + "immich-albumCarousel": { + "name": "Álbum de Immich", + "option": { + "albumId": { + "label": "ID de álbum", + "description": "Este es un identificador único que se refiere a un álbum de Immich. Puedes encontrarlo abriendo un álbum y copiando el ID que se muestra en la URL. Como por ejemplo: 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Intervalo de actualización en segundos", + "description": "Intervalo de actualización en segundos entre las fotos del álbum. El rango debe estar entre 1 y 3600 segundos, ambos incluidos." + }, + "showPhotoInfo": { + "label": "Mostrar información de la foto", + "description": "Mostrar la fecha y el índice actual de la foto en la parte inferior de la presentación" + } + }, + "description": "Presentación de fotos de un álbum de Immich", + "noAlbumSelected": "No se ha seleccionado ningún álbum. Edita el widget y selecciona uno.", + "noPhotos": "No hay fotos en este álbum" + }, "downloads": { "name": "Cliente de descarga", "description": "Te permite ver y gestionar tus descargas tanto desde los clientes de Torrent como desde Usenet.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Ocultar descripción" + }, + "showPosterImage": { + "label": "Mostrar imagen del póster" } } }, @@ -2575,6 +2872,45 @@ "noItems": "Ninguna notificación para mostrar.", "option": {} }, + "speedtestTracker": { + "name": "Speedtest Tracker", + "description": "Muestra los resultados de tu instancia de Speedtest Tracker.", + "option": { + "showLatestResult": { + "label": "Mostrar último resultado" + }, + "showStats": { + "label": "Mostrar promedios" + }, + "showRecentResults": { + "label": "Mostrar resultados recientes" + }, + "showPingGraph": { + "label": "Mostrar gráfico de latencia" + } + }, + "latestResult": "Último resultado", + "averages": "Promedios", + "tests": "{count} pruebas", + "recentResults": "Resultados recientes", + "recentResultsSpeed": "Velocidad", + "recentResultsPing": "Latencia", + "download": "Descarga", + "upload": "Subida", + "ping": "Latencia", + "status": "Estado", + "avgDownload": "Descarga promedio", + "avgUpload": "Subida promedio", + "avgPing": "Latencia promedio", + "healthy": "Buen estado", + "unhealthy": "Mal estado", + "ok": "Correcto", + "fail": "Fallido", + "noSectionsEnabled": "Habilitar al menos una sección en las opciones del widget.", + "error": { + "internalServerError": "Error al obtener los datos del test de velocidad" + } + }, "systemResources": { "name": "Recursos del sistema", "description": "CPU, Memoria, Disco y otro uso de hardware de su sistema", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "Memoria", + "gpu": "GPU", "network": "Red" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "GPU", "network": "RED", "up": "ENCENDIDO", "down": "APAGADO" } + }, + "systemDisks": { + "name": "Discos del sistema", + "description": "Uso del disco de su sistema", + "option": { + "showTemperatureIfAvailable": { + "label": "Mostrar la temperatura si está disponible" + }, + "displayMode": { + "label": "Modo de visualización", + "option": { + "percentage": { + "label": "Porcentaje (e.g., 76 %)" + }, + "absolute": { + "label": "Valores absolutos (e.g., 800 GB / 1 TB)" + }, + "free": { + "label": "Porcentaje de espacio libre (e.g., 24 % libre)" + } + } + }, + "showBackgroundBar": { + "label": "Mostrar la barra de uso en segundo plano" + } + }, + "status": { + "unhealthy": "Poco sano" + } } }, "widgetPreview": { @@ -3295,10 +3662,10 @@ } }, "user": { - "title": "", + "title": "Usuarios", "enableGravatar": { - "label": "", - "description": "" + "label": "Habilitar Gravatar", + "description": "Recupera los avatares de usuario de Libravatar/Gravatar cuando no hay ningún avatar personalizado y se configura un correo electrónico" } }, "search": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Esquema de color predeterminado", "options": { + "auto": "", "light": "Claro", "dark": "Oscuro" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Estado del Servidor de Minecraft" }, + "timetable": { + "label": "Horarios de estación" + }, "iconsUpdater": { "label": "Actualizador de iconos" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Tiempo" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Traductores", "subtitle": "{count} contribuyendo con las traducciones en muchos idiomas" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Librerías", "subtitle": "{count} usadas en el Código de Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Puertos" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Comandos globales", "option": { "colorScheme": { + "auto": "", "light": "Cambiar a modo claro", "dark": "Cambiar a modo oscuro" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Motores de búsqueda", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/et.json b/packages/translation/src/lang/et.json index 3f3265c4b..d48280e5c 100644 --- a/packages/translation/src/lang/et.json +++ b/packages/translation/src/lang/et.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "", "noResults": "", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json index 29034db11..a28b4718b 100644 --- a/packages/translation/src/lang/fr.json +++ b/packages/translation/src/lang/fr.json @@ -27,7 +27,7 @@ "description": "Configurer le comportement d'importation" }, "boardSelection": { - "title": "Tableaux {count} trouvés", + "title": "{count} tableaux trouvés", "description": "Choisissez tous les tableaux avec la taille que vous souhaitez importer", "action": { "selectAll": "Tout sélectionner", @@ -114,7 +114,7 @@ }, "invite": { "title": "Rejoignez Homarr", - "subtitle": "Bienvenue sur Homarr! Veuillez créer votre compte", + "subtitle": "Bienvenue sur Homarr ! Veuillez créer votre compte", "description": "Vous avez été invité par {username}" }, "init": { @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Ouvrir les résultats de recherche dans un nouvel onglet" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -177,7 +180,7 @@ } }, "forgotPassword": { - "label": "Mot de passe oublié?", + "label": "Mot de passe oublié ?", "description": "Un administrateur peut utiliser la commande suivante pour réinitialiser votre mot de passe :" } }, @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Modifier l’image", @@ -578,7 +591,7 @@ }, "delete": { "title": "Supprimer l'app", - "message": "Êtes-vous sûr de vouloir supprimer l'app {name}?", + "message": "Êtes-vous sûr de vouloir supprimer l'app {name} ?", "notification": { "success": { "title": "Suppression effectuée avec succès", @@ -684,7 +697,7 @@ }, "delete": { "title": "Supprimer l'intégration", - "message": "Êtes-vous sûr(e) de vouloir supprimer l'intégration {name}?", + "message": "Êtes-vous sûr(e) de vouloir supprimer l'intégration {name} ?", "notification": { "success": { "title": "Suppression réussie", @@ -742,7 +755,7 @@ "description": "La réponse n'a pas pu être analysée. Veuillez vérifier que l'URL pointe vers l'URL de base du service." }, "authorization": { - "title": "", + "title": "Erreur d'autorisation", "description": "La requête n'a pas été autorisée. Veuillez vérifier que les informations d'identification sont correctes et que vous les avez configurées avec suffisamment d'autorisations." }, "statusCode": { @@ -794,7 +807,7 @@ "hostnameMismatch": { "confirm": { "title": "Faire confiant à l'incohérence du nom d'hôte", - "message": "" + "message": "Êtes-vous sûr de vouloir faire confiance ce certificat avec un nom d'hôte incohérent ?" }, "notification": { "success": { @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Clair", "dark": "Sombre" } @@ -1138,6 +1152,9 @@ "dangerZone": "Zone de danger", "noResults": "Aucun résultat trouvé", "unsavedChanges": "Vous avez des modifications non enregistrées !", + "servers": "Serveurs", + "applications": "Applications", + "services": "Services", "preview": { "show": "Afficher l’aperçu", "hide": "Masquer l'aperçu" @@ -1161,8 +1178,8 @@ "number": "Ce champ doit être inférieur ou égal à {maximum}" }, "custom": { - "passwordsDoNotMatch": "Les mots de passe ne correspondent pas.", - "passwordRequirements": "Le mot de passe ne respecte pas les exigences requises.", + "passwordsDoNotMatch": "Les mots de passe ne correspondent pas", + "passwordRequirements": "Le mot de passe ne respecte pas les exigences requises", "boardAlreadyExists": "Un tableau avec ce nom existe déjà", "invalidFileType": "Type de fichier invalide, {expected} attendu", "invalidFileName": "Nom de fichier invalide", @@ -1245,7 +1262,7 @@ "action": { "create": "Nouvel élément", "import": "Importer un élément", - "edit": "Editer l'élément", + "edit": "Éditer l'élément", "moveResize": "Déplacer / redimensionner l'élément", "duplicate": "Dupliquer l'élément", "remove": "Supprimer l'élément" @@ -1278,7 +1295,7 @@ } }, "edit": { - "title": "Editer l'élément", + "title": "Éditer l'élément", "advancedOptions": { "label": "Options avancées", "title": "Options avancées de l'élément" @@ -1306,7 +1323,7 @@ "widget": { "app": { "name": "App", - "description": "Intégre une application dans le tableau.", + "description": "Intègre une application dans le tableau.", "option": { "appId": { "label": "Choisir une application" @@ -1522,6 +1539,17 @@ "offline": "Hors ligne" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Bloc-notes", "description": "Un simple widget bloc-notes qui supporte le markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "Intégrer n'importe quel contenu à partir d'Internet. Certains sites Web peuvent restreindre l'accès.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Autoriser la géolocalisation" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1631,7 +1690,7 @@ } }, "smartHome-entityState": { - "name": "Etat de l'entité", + "name": "État de l'entité", "description": "Affichez l'état d'une entité et optionnellement activez la", "option": { "entityId": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Afficher les infos de la mémoire" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Afficher le temps de disponibilité" }, @@ -1874,16 +1936,16 @@ "popover": { "information": "Information", "processor": "Processeur : {cpuModelName}", - "memory": "Mémoire: {memory}GiB", - "memoryAvailable": "Disponible: {memoryAvailable}GiB ({percent}%)", + "memory": "Mémoire : {memory}GiB", + "memoryAvailable": "Disponible : {memoryAvailable}GiB ({percent}%)", "version": "Version : {version}", - "uptime": "Disponibilité: {months} Mois, {days} Jours, {hours} Heures, {minutes} Minutes", - "loadAverage": "Charge moyenne:", + "uptime": "Disponibilité : {months} Mois, {days} Jours, {hours} Heures, {minutes} Minutes", + "loadAverage": "Charge moyenne :", "minute": "1 minute", "minutes": "{count} minutes", "used": "Utilisé ", "available": "Disponible", - "lastSeen": "Dernière mise à jour de statut: {lastSeen}" + "lastSeen": "Dernière mise à jour de statut : {lastSeen}" }, "memory": {}, "error": { @@ -1919,7 +1981,7 @@ "memory": "Mémoire", "storage": "Stockage", "uptime": "Disponibilité", - "haState": "Etat HA", + "haState": "État HA", "storageType": { "local": "Stockage local", "shared": "Stockage partagé" @@ -1960,12 +2022,198 @@ "internalServerError": "Impossible de récupérer les statistiques des conteneurs" } }, + "coolify": { + "name": "Coolify", + "description": "Aperçu de votre instance Coolify avec les serveurs et les applications", + "option": { + "showServers": { + "label": "Afficher les serveurs" + }, + "showApplications": { + "label": "Afficher les applications" + }, + "showServices": { + "label": "Afficher les services" + } + }, + "empty": { + "servers": "Aucun serveur trouvé", + "applications": "Aucune application trouvée", + "services": "Aucun service trouvé" + }, + "footer": { + "updated": "Mis à jour {when}" + }, + "error": { + "noIntegration": "Aucune intégration de Coolify configurée", + "internalServerError": "Impossible de récupérer les données de Coolify" + }, + "server": { + "buildServer": "Version" + }, + "instances": { + "title": "Instances" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Surveillance avancée du serveur multimédia avec des données détaillées de flux et de transcodage", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "Afficher le résumé des statistiques" + }, + "showRecentActivity": { + "label": "Afficher l'activité récente" + }, + "showViolations": { + "label": "Afficher les violations" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "Utilisateurs totaux", + "transcodes": "", + "bandwidth": "Bande passante" + }, + "streams": { + "empty": "", + "user": "Utilisateur", + "media": "Média", + "state": "", + "quality": "Qualité", + "device": "Appareil", + "progress": "Progression", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "Activité récente", + "empty": "Aucune activité récente", + "watched": "", + "partial": "" + }, + "violations": { + "title": "Violations", + "empty": "Aucune violation récente", + "rule": "Règle", + "user": "Utilisateur" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "Aucune intégration Tracearr configurée", + "internalServerError": "Impossible de récupérer les données de Tracearr" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Ville / Code Postal", "latitude": "Latitude", "longitude": "Longitude", - "disabledTooltip": "Veuillez saisir une ville ou un code postal.", + "disabledTooltip": "Veuillez saisir une ville ou un code postal", "unknownLocation": "Lieu inconnu", "search": "Rechercher", "table": { @@ -1984,7 +2232,7 @@ } }, "integration": { - "noData": "Aucune intégration trouvée.", + "noData": "Aucune intégration trouvée", "description": "Cliquez sur pour créer une nouvelle intégration" }, "app": { @@ -2000,7 +2248,7 @@ }, "video": { "name": "Flux vidéo", - "description": "Intégre un flux vidéo ou une vidéo provenant d'une caméra ou d'un site web", + "description": "Intègre un flux vidéo ou une vidéo provenant d'une caméra ou d'un site web", "option": { "feedUrl": { "label": "URL du flux" @@ -2013,7 +2261,7 @@ "label": "Muet" }, "hasControls": { - "label": "Afficher les controles" + "label": "Afficher les contrôles" } }, "error": { @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Statistiques du serveur Immich", + "description": "Informations sur votre instance Immich", + "option": { + "showUsers": { + "label": "Afficher les utilisateurs", + "description": "Afficher le nombre d'utilisateurs de l'instance" + }, + "showPhotos": { + "label": "Afficher les photos", + "description": "Afficher le nombre de photos de l'instance" + }, + "showVideos": { + "label": "Afficher les vidéos", + "description": "Afficher le nombre de vidéos de l'instance" + }, + "showStorage": { + "label": "Affiche le stockage", + "description": "Afficher le stockage total utilisé" + } + }, + "users": "Utilisateurs", + "photos": "Photos", + "videos": "Vidéos", + "storage": "Stockage utilisé" + }, + "immich-albumCarousel": { + "name": "Album Immich", + "option": { + "albumId": { + "label": "Identifiant de l'album", + "description": "C'est l'identifiant unique qui correspond à l'album Immich. Vous pouvez le trouver en ouvrant un album et copiant l'identifiant unique depuis l'URL, par exemple 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Intervalle en secondes", + "description": "Rotation entre les images de l'album chaque X secondes. Doit être entre 1 et 3600." + }, + "showPhotoInfo": { + "label": "Afficher les informations de la photo", + "description": "Afficher la date et l'index de la photo en bas du diaporama" + } + }, + "description": "Diaporama de photos dans votre album Immich", + "noAlbumSelected": "Aucun album sélectionné, modifier le widget et choisissez un album", + "noPhotos": "Aucune photo dans cet album" + }, "downloads": { "name": "Client de téléchargement", "description": "Vous permet de visualiser et de gérer vos téléchargements à partir de clients Torrent et Usenet.", @@ -2193,7 +2487,7 @@ "pause": "Mettre en pause l'élément", "resume": "Reprendre l'élément", "delete": { - "title": "Supprimer l'élement", + "title": "Supprimer l'élément", "modalTitle": "Êtes-vous sûr de vouloir supprimer cette tâche ?", "entry": "Supprimer l'entrée", "entryAndFiles": "Supprimer l'entrée et le(s) fichier(s)" @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Masquer la description" + }, + "showPosterImage": { + "label": "" } } }, @@ -2405,7 +2702,7 @@ "allImagesAlreadyImported": "Toutes les images déjà importées", "onlyAdminCanImport": "Seuls les administrateurs peuvent importer depuis docker", "selectAll": "Tout sélectionner", - "deselectAll": "Tout déselectionner" + "deselectAll": "Tout désélectionner" }, "provider": { "label": "Fournisseur" @@ -2530,7 +2827,7 @@ }, "error": { "integrationsDisconnected": "Aucune donnée disponible, toutes les intégrations sont déconnectées", - "unknownContentOption": "Option de contenu inconnue pour le widget d'état du réseau: " + "unknownContentOption": "Option de contenu inconnue pour le widget d'état du réseau : " }, "name": "État du réseau", "description": "Afficher les périphériques connectés sur un réseau" @@ -2575,6 +2872,45 @@ "noItems": "Aucune notification à afficher.", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "Ressources du système", "description": "CPU, Mémoire, Disque et autre utilisation matérielle de votre système", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "Mémoire", + "gpu": "", "network": "Réseau" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "RAM", + "gpu": "", "network": "NET", "up": "UP", "down": "HORS SERVICE" } + }, + "systemDisks": { + "name": "Disques système", + "description": "Utilisation du disque de votre système", + "option": { + "showTemperatureIfAvailable": { + "label": "Afficher la température si disponible" + }, + "displayMode": { + "label": "Mode d'affichage", + "option": { + "percentage": { + "label": "Pourcentage (ex : 76%)" + }, + "absolute": { + "label": "Valeurs absolues (ex. : 800 Go / 1 To)" + }, + "free": { + "label": "Pourcentage d'espace libre (ex. : 24 % libre)" + } + } + }, + "showBackgroundBar": { + "label": "Afficher la barre d'utilisation en arrière-plan" + } + }, + "status": { + "unhealthy": "Dysfonctionnement" + } } }, "widgetPreview": { @@ -2799,7 +3166,7 @@ }, "customCss": { "label": "CSS personnalisé pour ce tableau", - "description": "En outre, vous pouvez personnaliser votre tableau de bord à l'aide de CSS. Réservé aux utilisateurs expérimentés.", + "description": "De plus, personnalisez votre tableau de bord à l'aide de CSS, recommandé uniquement pour les utilisateurs expérimentés", "customClassesAlert": { "title": "Classes personnalisées", "description": "Vous pouvez ajouter des classes personnalisées aux éléments de votre tableau dans les options avancées de chaque élément et les utiliser dans le CSS personnalisé ci-dessus." @@ -3077,7 +3444,7 @@ "label": "Supprimer définitivement", "confirm": { "title": "Supprimer le tableau de bord", - "description": "Êtes-vous sûr de vouloir supprimer le tableau {name}?" + "description": "Êtes-vous sûr de vouloir supprimer le tableau {name} ?" } } }, @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Schéma de couleurs par défaut", "options": { + "auto": "", "light": "Clair", "dark": "Sombre" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "État du serveur Minecraft" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "Mise à jour des icônes" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Météo" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Traducteurs", "subtitle": "{count} ont contribué à des traductions dans de nombreuses langues" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Bibliothèques", "subtitle": "{count} utilisés dans le Code d'Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Ports" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Commandes globales", "option": { "colorScheme": { + "auto": "", "light": "Activer le mode clair", "dark": "Activer le mode sombre" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Moteurs de recherche", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json index 2446a0ccd..b23563ce9 100644 --- a/packages/translation/src/lang/he.json +++ b/packages/translation/src/lang/he.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "פתיחת תוצאות חיפוש בכרטיסיה חדשה" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "שנה תמונה", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "בהיר", "dark": "כהה" } @@ -1138,6 +1152,9 @@ "dangerZone": "אזור מסוכן", "noResults": "לא נמצאו תוצאות", "unsavedChanges": "ישנם שינויים שלא נשמרו!", + "servers": "שרתים", + "applications": "", + "services": "", "preview": { "show": "הצג תצוגה מקדימה", "hide": "הסתר תצוגה המקדימה" @@ -1522,6 +1539,17 @@ "offline": "לא מקוון" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "פנקס רשימות", "description": "ווידג'ט פשוט של מחברת התומך ב-markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "הטמע כל תוכן מהאינטרנט. חלק מהאתרים עשויים להגביל את הגישה.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "אפשר מיקום גיאוגרפי" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "הצג מידע זיכרון" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "הצג זמן פעולה" }, @@ -1960,6 +2022,192 @@ "internalServerError": "נכשל באחזור סטטיסטיקות המכולות" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "עיר / מיקוד", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "הורדת לקוח", "description": "מאפשר לך להציג ולנהל את ההורדות שלך הן מלקוחות Torrent והן מלקוחות Usenet.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "הסתר תיאור" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "אין התראות להצגה.", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "משאבי מערכת", "description": "שימוש במעבד, זיכרון, דיסק וחומרה אחרת של המערכת שלך", @@ -2588,6 +2924,7 @@ "option": { "cpu": "מעבד", "memory": "זיכרון", + "gpu": "", "network": "רשת" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "מעבד", "memory": "זיכרון", + "gpu": "", "network": "רשת", "up": "העלאה", "down": "הורדה" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3295,7 +3662,7 @@ } }, "user": { - "title": "", + "title": "משתמשים", "enableGravatar": { "label": "", "description": "" @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "סכמת צבעים ברירת מחדל", "options": { + "auto": "", "light": "בהיר", "dark": "כהה" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "סטטוס שרת מיינקראפט" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "עדכון אייקונים" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "מזג אוויר" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "מתרגמים", "subtitle": "{count} תורמים בתרגום לשפות שונות" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "ספריות", "subtitle": "{count} בשימוש בקוד של Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "יציאות" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "פקודות גלובליות", "option": { "colorScheme": { + "auto": "", "light": "עבור למצב בהיר", "dark": "עבור למצב כהה" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "מנועי חיפוש", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/hr.json b/packages/translation/src/lang/hr.json index 2aabdc69c..9558b4bfa 100644 --- a/packages/translation/src/lang/hr.json +++ b/packages/translation/src/lang/hr.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "Opasna zona", "noResults": "Nije pronađen nijedan rezultat", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Bilježnica", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "Ugradite bilo koji sadržaj s interneta. Neke web stranice mogu ograničiti pristup.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Dopusti geolociranje" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Portovi" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json index 921f61e20..44f4a8575 100644 --- a/packages/translation/src/lang/hu.json +++ b/packages/translation/src/lang/hu.json @@ -51,7 +51,7 @@ "title": "Import token megadása", "field": { "token": { - "label": "", + "label": "Token", "description": "Írja be a megjelenített import tokent az előző homarr példányból" } }, @@ -153,10 +153,13 @@ "label": "Ikonok használata a pingekhez" }, "defaultSearchEngine": { - "label": "" + "label": "Alapértelmezett kereső" }, "openSearchInNewTab": { - "label": "" + "label": "Nyissa meg a keresési eredményeket új ablakban" + }, + "ddgBangs": { + "label": "DuckDuckGo parancsok engedélyezése" } }, "error": { @@ -219,10 +222,10 @@ "changeSearchPreferences": { "notification": { "success": { - "message": "" + "message": "A keresési beállítások sikeresen megváltoztak" }, "error": { - "message": "" + "message": "A keresési beállításokat nem sikerült megváltoztatni" } } }, @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "DuckDuckGo parancsok sikeresen bekapcsolódott" + }, + "error": { + "message": "DuckDuckGo parancsokkat nem sikerült bekapcsolni" + } + } + }, "manageAvatar": { "changeImage": { "label": "Képcsere", @@ -307,12 +320,12 @@ "name": "Név", "members": "Tagok", "homeBoard": { - "label": "", - "description": "" + "label": "Főoldal", + "description": "Csak a csoport számára elérhető oldalak választhatók ki" }, "mobileBoard": { - "label": "", - "description": "" + "label": "Mobiloldal", + "description": "Csak a csoport számára elérhető oldalak választhatók ki" } }, "permission": { @@ -514,12 +527,12 @@ "board": { "notification": { "success": { - "title": "", - "message": "" + "title": "Beállítások elmentve", + "message": "Oldal beállítások sikeresen elmentve" }, "error": { - "title": "", - "message": "" + "title": "Nem sikerült menteni a beállításokat", + "message": "Az oldalbeállítások nem menthetők" } } } @@ -527,21 +540,21 @@ "changePosition": { "notification": { "success": { - "message": "" + "message": "Pozíció sikeresen megváltozott" }, "error": { - "message": "" + "message": "Pozíció nem módosítható" } } } }, "defaultGroup": { - "name": "", - "description": "" + "name": "Alapértelmezett csoport", + "description": "{name} - Minden bejelentkezett felhasználó" } }, "app": { - "search": "", + "search": "Alkalmazás megtalálása", "page": { "list": { "title": "Alkalmazások", @@ -599,12 +612,12 @@ "label": "Leírás" }, "url": { - "label": "" + "label": "Url" }, "useDifferentUrlForPing": { "checkbox": { - "label": "", - "description": "" + "label": "Más URL használata a ping-hez", + "description": "Hasznos, ha a Homarr közvetlenül, egy belső hosztnév vagy hálózaton keresztül fér hozzá, hogy elkerülje az internetszolgáltató által használt sávszélesség terhelését" } } }, @@ -612,17 +625,17 @@ "select": { "label": "Alkalmazás kiválasztása", "notFound": "Nem található alkalmazás", - "search": "", - "noResults": "", - "action": "", - "title": "" + "search": "Alkalmazás keresése", + "noResults": "Nincs találat", + "action": "Kiválasztás {app}", + "title": "Válassz egy programot az oldalhoz adáshoz" }, "create": { - "title": "", - "description": "", - "action": "" + "title": "Új alkalmazás készítése", + "description": "Új alkalmazás létrehozása ", + "action": "Alkalmazás készítő megnyitása" }, - "add": "" + "add": "Alkalmazás hozzáadása" } }, "integration": { @@ -649,14 +662,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Meglévő", + "label": "Meglévő alkalmazás kiválasztása" }, "new": { - "title": "", + "title": "Új", "url": { - "label": "", - "description": "" + "label": "Alkalmazás url", + "description": "Az url, amelyre az alkalmazás a műszerfalról történő eléréskor irányít" } } } @@ -676,9 +689,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Alkalmazás megtalálása", + "remove": "Leválasztás", + "select": "Válasszon ki egy alkalmazást a hivatkozáshoz" } } }, @@ -702,21 +715,21 @@ "label": "Név" }, "url": { - "label": "" + "label": "Url" }, "attemptSearchEngineCreation": { - "label": "", - "description": "" + "label": "Keresőmotor létrehozása", + "description": "A \"{kind}\" integráció használható a keresőmotorokkal. Jelölje be ezt a jelölőnégyzetet, ha automatikusan szeretné konfigurálni a keresőmotort." }, "app": { - "sectionTitle": "" + "sectionTitle": "Hivattkozott alkalmazás" }, "createApp": { - "label": "", - "description": "" + "label": "Alkalmazás létrehozása", + "description": "Hozzon létre egy alkalmazást, amelynek ugyanaz a neve és ikonja van, mint az integrációnak. Hagyja üresen az alábbi beviteli mezőt, hogy az alkalmazás az integrációs URL-lel jöjjön létre." }, "appHref": { - "placeholder": "" + "placeholder": "Egyéni alkalmazás URL" } }, "action": { @@ -730,125 +743,125 @@ "error": { "common": { "cause": { - "title": "" + "title": "Részletesebb leírás a problémáról" } }, "unknown": { - "title": "", - "description": "" + "title": "Ismeretlen hiba", + "description": "Egy ismeretlen hiba történt, nyissa meg a részleteket alul, hogy többet megtudjon" }, "parse": { - "title": "", - "description": "" + "title": "Elemzési hiba", + "description": "A válasz nem volt elemezhető. Kérjük, ellenőrizze, hogy az URL a szolgáltatás alap URL-jére mutat-e." }, "authorization": { - "title": "", - "description": "" + "title": "Hitelesítési hiba", + "description": "A kérés nem volt engedélyezett. Kérjük, ellenőrizze, hogy a hitelesítő adatok helyesek-e, és hogy a megfelelő engedélyekkel vannak-e beállítva." }, "statusCode": { - "title": "", - "description": "", - "otherDescription": "", + "title": "Válaszhiba", + "description": "Váratlan {statusCode} ({reason}) választ kapott a címen. Kérjük, ellenőrizze, hogy az URL az integráció alap URL-jére mutat-e.", + "otherDescription": "Váratlan {statusCode} választ kapott a címen. Kérjük, ellenőrizze, hogy az URL az integráció alap URL-jére mutat-e.", "reason": { - "badRequest": "", - "notFound": "", - "tooManyRequests": "", - "internalServerError": "", - "serviceUnavailable": "", - "gatewayTimeout": "" + "badRequest": "Hibás kérés", + "notFound": "Nem található", + "tooManyRequests": "Túl sok kérés", + "internalServerError": "Belső szerverhiba", + "serviceUnavailable": "A szolgáltatás nem elérhető", + "gatewayTimeout": "Átjáró időtúllépés" } }, "certificate": { - "title": "", + "title": "Tanúsítványhiba", "description": { - "expired": "", - "notYetValid": "", - "untrusted": "", - "hostnameMismatch": "" + "expired": "A tanúsítvány lejárt.", + "notYetValid": "A tanúsítvány még nem érvényes.", + "untrusted": "A tanúsítvány nem megbízható.", + "hostnameMismatch": "A tanúsítványban szereplő hosztnév nem egyezik meg az URL-lel." }, "alert": { "permission": { - "title": "", - "message": "" + "title": "Nincsenek megfelelő engedélyek", + "message": "Önnek nincs joga tanúsítványokat megbízhatónak nyilvánítani vagy feltölteni. Kérjük, lépjen kapcsolatba a rendszergazdájával, hogy feltölthesse a szükséges gyökér tanúsítványt." }, "hostnameMismatch": { - "title": "", - "message": "" + "title": "Állomásnév eltérés", + "message": "A tanúsítványban szereplő hosztnév nem egyezik meg azzal a hosztnévvel, amelyhez kapcsolódik. Ez biztonsági kockázatot jelezhet, de mégis dönthet úgy, hogy megbízik ebben a tanúsítványban." }, "extract": { - "title": "", - "message": "" + "title": "A tanúsító hatóság (CA) tanúsítványának kinyerése sikertelen", + "message": "Csak a lánc nélküli, önaláírt tanúsítványok tölthetők le automatikusan. Ha önaláírt tanúsítványt használ, kérjük, feltétlenül töltse fel manuálisan a tanúsító hatóság (CA) tanúsítványát. Az ehhez szükséges lépések leírását itt találja: ." } }, "action": { "retry": { - "label": "" + "label": "Újrapróbál" }, "trust": { - "label": "" + "label": "Bizalmi tanúsítvány" }, "upload": { - "label": "" + "label": "Tanúsítvány feltöltése" } }, "hostnameMismatch": { "confirm": { - "title": "", - "message": "" + "title": "Megbízható gépnév nem egyezik", + "message": "Biztosan megbízik a tanúsítványban, ha a gazdagépnév nem egyezik?" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Megbízható tanúsítvány", + "message": "A gazdagépnevet felvettük a megbízható tanúsítványok listájára" }, "error": { - "title": "", - "message": "" + "title": "A tanúsítvány hitelesítése sikertelen", + "message": "A gazdagépnév-eltérés miatt a tanúsítvány nem tekinthető megbízhatónak" } } }, "selfSigned": { "confirm": { - "title": "", - "message": "" + "title": "Önaláírt tanúsítvány megbízhatósága", + "message": "Biztosan megbízik ebben az önaláírt tanúsítványban?" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Megbízható tanúsítvány", + "message": "A tanúsítványt felvettük a megbízható tanúsítványok listájára" }, "error": { - "title": "", - "message": "" + "title": "Tanúsítvány hitelesítése sikertelen", + "message": "Nem sikerült hozzáadni a tanúsítványt a megbízható tanúsítványok listájához" } } }, "details": { - "title": "", - "description": "", + "title": "Részletek", + "description": "Mielőtt megbízik a tanúsítványban, ellenőrizze annak adatait.", "content": { - "action": "", - "title": "" + "action": "Tartalom megjelenítése", + "title": "PEM tanúsítvány" } } }, "request": { - "title": "", + "title": "Kérelemhiba", "description": { "connection": { - "hostUnreachable": "", - "networkUnreachable": "", - "refused": "", - "reset": "" + "hostUnreachable": "A szerver nem érhető el. Ez általában azt jelenti, hogy a szerver nincs online, vagy a hálózatodról nem érhető el.", + "networkUnreachable": "A hálózat nem érhető el. Kérjük, ellenőrizze az internetkapcsolatát vagy a hálózati beállításokat.", + "refused": "A szerver elutasította a kapcsolatot. Lehet, hogy nem fut, vagy elutasítja a megadott porton érkező kéréseket.", + "reset": "A kapcsolatot a szerver váratlanul megszakította. Ez akkor fordulhat elő, ha a szerver instabil, vagy újraindult." }, "dns": { - "notFound": "", - "timeout": "", - "noAnswer": "" + "notFound": "A szerver címe nem található. Kérjük, ellenőrizze, hogy az URL-címben nincs-e elírás vagy érvénytelen domainnév.", + "timeout": "A DNS-lekérdezés időtúllépése történt. Ez átmeneti probléma lehet – kérjük, próbálja meg újra néhány perc múlva.", + "noAnswer": "A DNS-kiszolgáló nem adott érvényes választ. Lehet, hogy a domain létezik, de nincsenek érvényes bejegyzései." }, "timeout": { - "aborted": "", - "timeout": "" + "aborted": "A kérés még befejezése előtt megszakadt. Ennek oka lehet egy felhasználói művelet vagy a rendszer időtúllépése.", + "timeout": "A kérés feldolgozása túl sokáig tartott, ezért a rendszer időtúllépést jelezett. Ellenőrizze a hálózati kapcsolatot, vagy próbálja meg később újra." } } } @@ -920,8 +933,8 @@ "message": "Az útvonal valószínűleg nem helyes" }, "tooManyRequests": { - "title": "", - "message": "" + "title": "Túl sok kérés adott idő alatt", + "message": "Túl sok kérést küldött. Valószínűleg a célrendszer korlátozza vagy elutasítja a kéréseket" } } }, @@ -955,44 +968,44 @@ "newLabel": "Új jelszó" }, "tokenId": { - "label": "", - "newLabel": "" + "label": "Token azonosító", + "newLabel": "Új token azonosító" }, "realm": { - "label": "", - "newLabel": "" + "label": "Tartomány", + "newLabel": "Új tartomány" }, "personalAccessToken": { - "label": "", - "newLabel": "" + "label": "Személyes Hozzáférési Token", + "newLabel": "Új Személyes Hozzáférési Token" }, "topic": { - "label": "", - "newLabel": "" + "label": "Téma", + "newLabel": "Új téma" }, "url": { - "label": "", - "newLabel": "" + "label": "Url", + "newLabel": "Új url" }, "opnsenseApiKey": { - "label": "", - "newLabel": "" + "label": "API kulcs (Kulcs)", + "newLabel": "Új API Kulcs (Kulcs)" }, "opnsenseApiSecret": { - "label": "", - "newLabel": "" + "label": "Api Kulcs (Titkos)", + "newLabel": "Új API Kulcs (Titkos)" }, "githubAppId": { - "label": "", - "newLabel": "" + "label": "App Azonosító", + "newLabel": "Új App Azonosító" }, "githubInstallationId": { - "label": "", - "newLabel": "" + "label": "Telepítési azonosító", + "newLabel": "Új telepítési azonosító" }, "privateKey": { - "label": "", - "newLabel": "" + "label": "Privát kulcs", + "newLabel": "Új privát kulcs" } } }, @@ -1039,21 +1052,21 @@ "label": "URL másolása" }, "open": { - "label": "" + "label": "Média megnyitása" } } }, "common": { - "success": "", + "success": "Siker", "beta": "Béta", "error": "Hiba", "action": { "add": "Hozzáadás", "apply": "Alkalmaz", "backToOverview": "Vissza az áttekintéshez", - "change": "", + "change": "Módosít", "create": "Létrehozás", - "createAnother": "", + "createAnother": "Újrakezdés", "edit": "Szerkesztés", "import": "Importálás", "insert": "Beillesztés", @@ -1063,7 +1076,7 @@ "cancel": "Mégse", "delete": "Törlés", "discard": "Elvetés", - "close": "", + "close": "Bezárás", "confirm": "Megerősít", "continue": "Folytatás", "previous": "Előző", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "Automatikus", "light": "Világos", "dark": "Sötét" } @@ -1087,7 +1101,7 @@ "information": { "min": "Legalább", "max": "Legfeljebb", - "days": "", + "days": "Nap", "hours": "Óra", "minutes": "Perc" }, @@ -1105,42 +1119,45 @@ "error": "Nem sikerült alkalmazni a változtatásokat" }, "transfer": { - "success": "", - "error": "" + "success": "Sikeres átvitel", + "error": "Sikertelen átvitel" } }, "multiSelect": { - "placeholder": "" + "placeholder": "Válasszon ki egy vagy több értéket" }, "multiText": { - "placeholder": "", - "addLabel": "" + "placeholder": "További értékek hozzáadása", + "addLabel": "Hozzáad {value}" }, "select": { - "placeholder": "", + "placeholder": "Érték kiválasztása", "badge": { - "recommended": "" + "recommended": "Ajánlott" } }, "userAvatar": { "menu": { - "switchToDarkMode": "", - "switchToLightMode": "", - "management": "", + "switchToDarkMode": "Váltás sötét módba", + "switchToLightMode": "Váltás világos módra", + "management": "Kezelés", "preferences": "Saját preferenciák", - "logout": "", + "logout": "Kijelentkezés", "login": "Bejelentkezés", - "homeBoard": "", - "loggedOut": "", - "updateAvailable": "" + "homeBoard": "A saját kezdőlapod", + "loggedOut": "Kijelentkezett", + "updateAvailable": "{countUpdates} frissítés elérhető: {tag}" } }, "dangerZone": "Veszélyzóna", "noResults": "Nincs eredmény", - "unsavedChanges": "", + "unsavedChanges": "Nem mentett módosításai vannak!", + "servers": "Szerverek", + "applications": "Alkalmazások", + "services": "Szolgáltatások", "preview": { - "show": "", - "hide": "" + "show": "Előnézet megjelenítése", + "hide": "Előnézet elrejtése" }, "zod": { "errors": { @@ -1150,7 +1167,7 @@ "startsWith": "Ennek a mezőnek a {startsWith} kell kezdődnie", "endsWith": "Ennek a mezőnek a {endsWith} kell végződnie", "includes": "Ennek a mezőnek tartalmaznia kell a {includes} értéket", - "invalidEmail": "" + "invalidEmail": "A mezőnek érvényes e-mail címet kell tartalmaznia" }, "tooSmall": { "string": "Ennek a mezőnek legalább {minimum} karakter hosszúságúnak kell lennie", @@ -1161,44 +1178,44 @@ "number": "Ennek a mezőnek kisebbnek vagy egyenlőnek kell lennie a {maximum} értékkel" }, "custom": { - "passwordsDoNotMatch": "", - "passwordRequirements": "", - "boardAlreadyExists": "", - "invalidFileType": "", - "invalidFileName": "", - "fileTooLarge": "", - "invalidConfiguration": "", - "groupNameTaken": "" + "passwordsDoNotMatch": "A jelszavak nem egyeznek", + "passwordRequirements": "A jelszó nem felel meg a követelményeknek", + "boardAlreadyExists": "Már létezik ilyen nevű oldal", + "invalidFileType": "Érvénytelen fájltípus, várt: {expected}", + "invalidFileName": "Érvénytelen fájlnév", + "fileTooLarge": "A fájl túl nagy, a maximális méret {maxSize}", + "invalidConfiguration": "Érvénytelen konfiguráció", + "groupNameTaken": "A felhasználónév már foglalt" } } }, "unit": { "speed": { - "kilometersPerHour": "", - "milesPerHour": "" + "kilometersPerHour": "km/óra", + "milesPerHour": "mph" } } }, "section": { "dynamic": { "action": { - "create": "", - "remove": "" + "create": "Új dinamikus szakasz", + "remove": "A dinamikus szakasz eltávolítása" }, "option": { "title": { - "label": "" + "label": "Cím" }, "customCssClasses": { - "label": "" + "label": "Egyéni css-osztályok" }, "borderColor": { - "label": "" + "label": "Határszín" } }, "remove": { - "title": "", - "message": "" + "title": "Dinamikus szakasz eltávolítása", + "message": "Biztosan el akarja távolítani ezt a dinamikus részt? Az elemek a szülő rész ugyanazon helyére kerülnek át." } }, "category": { @@ -1208,47 +1225,47 @@ } }, "action": { - "create": "", - "edit": "", - "remove": "", + "create": "Új kategória", + "edit": "Kategória átnevezése", + "remove": "Kategória eltávolítása", "moveUp": "Felfelé mozgatás", "moveDown": "Mozgatás le", - "createAbove": "", - "createBelow": "", - "openAllInNewTabs": "" + "createAbove": "Új kategória fent", + "createBelow": "Új kategória alább", + "openAllInNewTabs": "Mindet lapokban megnyitni" }, "create": { - "title": "", - "submit": "" + "title": "Új kategória", + "submit": "Kategória hozzáadása" }, "remove": { - "title": "", - "message": "" + "title": "Kategória eltávolítása", + "message": "Biztosan el akarja távolítani a {name} kategóriát?" }, "edit": { - "title": "", - "submit": "" + "title": "Kategória átnevezése", + "submit": "Kategória átnevezése" }, "menu": { "label": { - "create": "", + "create": "Új kategória", "changePosition": "Pozíció módosítása" } }, "openAllInNewTabs": { - "title": "", - "text": "" + "title": "Mindet lapokban megnyitni", + "text": "Bizonyos böngészők biztonsági okokból megakadályozhatják a lapok tömeges megnyitását. A Homarr nem tudta megnyitni az összes ablakot, mert a böngészője letiltotta ezt a műveletet. Kérjük, engedélyezze a „Felugró ablakok megnyitása” opciót, majd próbálja meg újra." } } }, "item": { "action": { - "create": "", - "import": "", - "edit": "", - "moveResize": "", - "duplicate": "", - "remove": "" + "create": "Új elem", + "import": "Elemek importálása", + "edit": "Elem szerkesztése", + "moveResize": "Elem áthelyezése / átméretezése", + "duplicate": "Elem másolása", + "remove": "Elem eltávolítása" }, "menu": { "label": { @@ -1257,11 +1274,11 @@ }, "create": { "title": "Válassza ki a hozzáadni kívánt elemet", - "search": "", + "search": "Elemek szűrése", "addToBoard": "Hozzáadás a táblához" }, "moveResize": { - "title": "", + "title": "Elem áthelyezése / átméretezése", "field": { "width": { "label": "Szélesség" @@ -1278,7 +1295,7 @@ } }, "edit": { - "title": "", + "title": "Elem szerkesztése", "advancedOptions": { "label": "Haladó beállítások", "title": "Speciális tételbeállítások" @@ -1288,18 +1305,18 @@ "label": "Integrációk" }, "title": { - "label": "" + "label": "Cím" }, "customCssClasses": { "label": "Egyedi css osztályok" }, "borderColor": { - "label": "" + "label": "Határszín" } } }, "remove": { - "title": "", + "title": "Elem eltávolítása", "message": "Biztosan eltávolítja ezt az elemet?" } }, @@ -1321,21 +1338,21 @@ "label": "Egyszerű ping engedélyezése" }, "layout": { - "label": "", + "label": "Elrendezés", "option": { - "row": "", - "row-reverse": "", - "column": "", - "column-reverse": "" + "row": "Vízszintes", + "row-reverse": "Vízszintes (fordított)", + "column": "Függőleges", + "column-reverse": "Függőleges (fordított)" } }, "descriptionDisplayMode": { - "label": "", - "description": "", + "label": "Leírás megjelenítési mód", + "description": "Válassza ki, hogyan jelenjen meg az alkalmazás leírása", "option": { - "normal": "", - "tooltip": "", - "hidden": "" + "normal": "A widgeten belül", + "tooltip": "Eszköztippként", + "hidden": "Rejtett" } } }, @@ -1366,21 +1383,21 @@ "label": "Rács" }, "gridHorizontal": { - "label": "" + "label": "Vízszintes rács" } } }, "hideTitle": { - "label": "" + "label": "Cím elrejtése" }, "hideIcon": { - "label": "" + "label": "Ikon elrejtése" }, "hideHostname": { - "label": "" + "label": "A gazdagépnevek elrejtése" }, "openNewTab": { - "label": "" + "label": "Megnyitás új lapon" }, "items": { "label": "Könyjelzők", @@ -1420,7 +1437,7 @@ "dnsQueriesToday": "Mai lekérdezések", "domainsBeingBlocked": "Domainek a tiltólistán" }, - "domainsTooltip": "" + "domainsTooltip": "A számos integráció miatt a Homarr nem tudja kiszámítani a blokkolt domainek pontos számát" }, "dnsHoleControls": { "name": "DNS blokkolók ellenőrzése", @@ -1494,32 +1511,43 @@ "description": "Hogyan nézzen ki a dátum" }, "customTimeFormat": { - "label": "", - "description": "" + "label": "Egyéni időformátum", + "description": "Az idő formázásához használja az ISO 8601 szabványt (ez felülírja az egyéb beállításokat)" }, "customDateFormat": { - "label": "", - "description": "" + "label": "Egyedi dátumformátum", + "description": "A dátum formázásához használja az ISO 8601 szabványt (ez felülírja az egyéb beállításokat)" } } }, "minecraftServerStatus": { - "name": "", - "description": "", + "name": "Minecraft szerver állapota", + "description": "Megjeleníti a Minecraft-szerver állapotát", "option": { "title": { - "label": "" + "label": "Cím" }, "domain": { - "label": "" + "label": "Szerver cím" }, "isBedrockServer": { - "label": "" + "label": "Bedrock szerver" } }, "status": { - "online": "", - "offline": "" + "online": "Elérhető", + "offline": "Nem elérhető" + } + }, + "timetable": { + "name": "Órarend", + "description": "Megjeleníti az adott állomás indulási idejét", + "title": "Indulások {station}", + "noStation": "Nincs kiválasztott állomás", + "option": { + "station": { + "label": "Állomás" + } } }, "notebook": { @@ -1582,16 +1610,44 @@ "width": "Szélesség", "height": "Magasság" }, - "placeholder": "", + "placeholder": "Kezdd el írni a jegyzeteidet", "dismiss": { - "title": "", - "message": "", + "title": "Elveted a módosításokat?", + "message": "A jegyzetfüzetben vannak mentetlen módosítások. Biztosan el akarja vetni őket?", "action": { - "discard": "", - "keepEditing": "" + "discard": "Változtatások elvetése", + "keepEditing": "Szerkesztés folytatása" } } }, + "anchorNote": { + "name": "Anchor Note", + "description": "Megjeleníti az Anchor alkalmazásból kiválasztott jegyzetet", + "option": { + "noteId": { + "label": "Jegyzet" + }, + "showTitle": { + "label": "Cím megjelenítése" + }, + "showUpdatedAt": { + "label": "Utolsó frissítés megjelenítése" + } + }, + "empty": "Válasszon ki egy jegyzetet a megjelenítéshez", + "emptyContent": "Ez a jegyzet nem tartalmaz szöveget", + "notFound": "Jegyzet nem található", + "noNotes": "Nem található jegyzet", + "integrationRequired": "Először válasszon ki egy Anchor-integrációt", + "updatedAt": "Frissítve: {dátum}", + "untitled": "Névtelen", + "edit": "Szerkesztés", + "save": "Mentés", + "cancel": "Mégse", + "readOnlyViewer": "Ehhez a jegyzethez olvasói hozzáférésed van. A szerkesztés le van tiltva.", + "saveForbidden": "You do not have permission to edit this note.", + "saveFailed": "A jegyzet mentése nem sikerült. Kérjük, próbálja meg újra." + }, "iframe": { "name": "Beágyazott keret (iFrame)", "description": "Bármilyen tartalom beágyazása az internetről. Egyes webhelyek korlátozhatják a hozzáférést.", @@ -1622,35 +1678,38 @@ }, "allowGeolocation": { "label": "Geolokáció engedélyezése" + }, + "allowModals": { + "label": "Modálablakok engedélyezése" } }, "error": { "noUrl": "Nincs megadva iFrame URL", - "unsupportedProtocol": "", + "unsupportedProtocol": "A megadott URL nem támogatott protokollt használ. Kérjük, válasszon egyet a ({supportedProtocols}) közül.", "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": "Egység állapota", - "description": "", + "description": "Egy elem állapotának megjelenítése és opcionális be- és kikapcsolása", "option": { "entityId": { "label": "Egység azonosító" }, "displayName": { - "label": "" + "label": "Megjelenítendő név" }, "entityUnit": { - "label": "" + "label": "Entitás-egység" }, "clickable": { - "label": "" + "label": "Kattintható" } } }, "smartHome-executeAutomation": { - "name": "", - "description": "", + "name": "Automatizálás végrehajtása", + "description": "Indítson el egy automatizált folyamatot egyetlen kattintással", "option": { "displayName": { "label": "Megjelenített név" @@ -1660,80 +1719,80 @@ } }, "spotlightAction": { - "run": "" + "run": "Futtasd a {name} parancsot" } }, "stockPrice": { - "name": "", - "description": "", + "name": "Részvényár", + "description": "Megjeleníti egy vállalat aktuális részvényárfolyamát", "option": { "stock": { - "label": "" + "label": "Tőzsdei szimbólumok" }, "timeRange": { - "label": "", + "label": "Időtartomány", "option": { "1d": { - "label": "" + "label": "1 nap" }, "5d": { - "label": "" + "label": "5 nap" }, "1mo": { - "label": "" + "label": "1 hónap" }, "3mo": { - "label": "" + "label": "3 hónap" }, "6mo": { - "label": "" + "label": "6 hónap" }, "ytd": { - "label": "" + "label": "Év eddigi részében" }, "1y": { - "label": "" + "label": "1 év" }, "2y": { - "label": "" + "label": "2 év" }, "5y": { - "label": "" + "label": "5 év" }, "10y": { - "label": "" + "label": "10 év" }, "max": { - "label": "" + "label": "Legfeljebb" } } }, "timeInterval": { - "label": "", + "label": "Időintervallum", "option": { "5m": { - "label": "" + "label": "5 perc" }, "15m": { - "label": "" + "label": "15 perc" }, "30m": { - "label": "" + "label": "30 perc" }, "1h": { - "label": "" + "label": "1 óra" }, "1d": { - "label": "" + "label": "1 nap" }, "5d": { - "label": "" + "label": "5 nap" }, "1wk": { - "label": "" + "label": "1 hét" }, "1mo": { - "label": "" + "label": "1 hónap" } } } @@ -1741,27 +1800,27 @@ }, "calendar": { "name": "Naptár", - "description": "", + "description": "Az integrációkból származó események megjelenítése naptárnézetben egy adott időtartamon belül", "duration": { - "allDay": "" + "allDay": "Egész nap" }, "option": { "releaseType": { "label": "Radarr kiadás típusa", "options": { - "inCinemas": "", - "digitalRelease": "", - "physicalRelease": "" + "inCinemas": "Mozikban", + "digitalRelease": "Digitális megjelenés", + "physicalRelease": "Fizikai megjelenés" } }, "filterPastMonths": { - "label": "" + "label": "Kezdete" }, "filterFutureMonths": { - "label": "" + "label": "Vége" }, "showUnmonitored": { - "label": "" + "label": "Nem ellenőrzött megjelenítés" } } }, @@ -1770,42 +1829,42 @@ "description": "Megjeleníti egy meghatározott hely aktuális időjárási adatait.", "option": { "isFormatFahrenheit": { - "label": "" + "label": "Hőmérséklet Fahrenheitben" }, "disableTemperatureDecimals": { - "label": "" + "label": "Hőmérséklet tizedesjegyének kikapcsolása" }, "showCurrentWindSpeed": { - "label": "", - "description": "" + "label": "Aktuális szélsebesség megjelenítése", + "description": "Csak az aktuális időjárásról" }, "useImperialSpeed": { - "label": "" + "label": "A szélsebességet mérföld/órában (mph) adja meg" }, "location": { "label": "Időjárás helye" }, "showCity": { - "label": "" + "label": "Város megjelenítése" }, "hasForecast": { - "label": "" + "label": "Előrejelzés megjelenítése" }, "forecastDayCount": { - "label": "", - "description": "" + "label": "Előrejelzés napjainak száma", + "description": "Ha a widget nem elég széles, kevesebb nap jelenik meg" }, "dateFormat": { "label": "Dátum formátum", "description": "Hogyan nézzen ki a dátum" } }, - "currentWindSpeed": "", + "currentWindSpeed": "{currentWindSpeed} {unit}", "dailyForecast": { - "sunrise": "", - "sunset": "", - "maxWindSpeed": "", - "maxWindGusts": "" + "sunrise": "Napkelte", + "sunset": "Naplemente", + "maxWindSpeed": "Legnagyobb szélsebesség: {maxWindSpeed} {unit}", + "maxWindGusts": "Legerősebb széllökés: {maxWindGusts} {unit}" }, "kind": { "clear": "Tiszta", @@ -1826,24 +1885,24 @@ }, "indexerManager": { "name": "Indexelő menedzser állapota", - "description": "", + "description": "Az indexelők állapota", "option": { "openIndexerSiteInNewTab": { - "label": "" + "label": "Indexelő webhely megnyitása új lapon" } }, "title": "Indexelő menedzser", "testAll": "Teszteld az összeset", "error": { - "internalServerError": "" + "internalServerError": "Nem sikerült lekérni az indexelők állapotát" } }, "healthMonitoring": { "name": "Rendszerállapot-felügyelet", "description": "Megjeleníti a rendszer(ek) állapotát és állapotát mutató információkat.", "tab": { - "system": "", - "cluster": "" + "system": "Rendszer", + "cluster": "Klaszter" }, "option": { "fahrenheit": { @@ -1855,128 +1914,317 @@ "memory": { "label": "Memóriainformációk megjelenítése" }, + "gpu": { + "label": "GPU információ megjelenítése" + }, "showUptime": { - "label": "" + "label": "Üzemidő megjelenítése" }, "fileSystem": { "label": "Fájlrendszer-információk megjelenítése" }, "defaultTab": { - "label": "" + "label": "Alapértelmezett fül" }, "visibleClusterSections": { - "label": "" + "label": "Látható klaszterrészek" }, "sectionIndicatorRequirement": { - "label": "" + "label": "A szakaszjelzőre vonatkozó követelmény" } }, "popover": { - "information": "", - "processor": "", - "memory": "", - "memoryAvailable": "", - "version": "", - "uptime": "", - "loadAverage": "", - "minute": "", - "minutes": "", - "used": "", + "information": "Információ", + "processor": "Processzor: {cpuModelName}", + "memory": "Memória: {memory} GiB", + "memoryAvailable": "Rendelkezésre álló: {memoryAvailable}GiB ({percent}%)", + "version": "Verzió: {version}", + "uptime": "Üzemidő: {months} hónap, {days} nap, {hours} óra, {minutes} perc", + "loadAverage": "Átlagos terhelés:", + "minute": "1 perc", + "minutes": "{count} perc", + "used": "Használt", "available": "Elérhető", - "lastSeen": "" + "lastSeen": "Utolsó állapotfrissítés: {lastSeen}" }, "memory": {}, "error": { - "internalServerError": "" + "internalServerError": "Nem sikerült lekérni az állapotot" }, "cluster": { "summary": { - "cpu": "", - "memory": "" + "cpu": "Processzor", + "memory": "Memória" }, "resource": { "node": { - "name": "" + "name": "Node-ok" }, "qemu": { - "name": "" + "name": "VM-ek" }, "lxc": { - "name": "" + "name": "Linux konténerek" }, "storage": { - "name": "" + "name": "Tárhely" } }, "popover": { "rightSection": { - "node": "", - "vmId": "", - "plugin": "" + "node": "Node", + "vmId": "VM ID", + "plugin": "Bővítmény" }, "detail": { - "cpu": "", - "memory": "", - "storage": "", - "uptime": "", - "haState": "", + "cpu": "Mag", + "memory": "Memória", + "storage": "Tárhely", + "uptime": "Üzemidő", + "haState": "HA állapot", "storageType": { - "local": "", - "shared": "" + "local": "Helyi tárhely", + "shared": "Megosztott tárhely" } } }, "table": { "header": { - "name": "", - "cpu": "", - "memory": "", - "node": "" + "name": "Név", + "cpu": "CPU", + "memory": "Memória", + "node": "Node" } } } }, "dockerContainers": { - "name": "", - "description": "", + "name": "Docker statisztika", + "description": "A konténereid statisztikái (Ezt a widgetet csak rendszergazdai jogosultsággal lehet hozzáadni)", "option": { "enableRowSorting": { - "label": "" + "label": "Az elemek rendezésének engedélyezése" }, "defaultSort": { - "label": "", + "label": "Alapértelmezés szerint rendezéshez használt oszlop", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "Név", + "state": "Állapot", + "cpuUsage": "CPU használat", + "memoryUsage": "Memória használat" } }, "descendingDefaultSort": { - "label": "" + "label": "Fordított rendezés" } }, "error": { - "internalServerError": "" + "internalServerError": "A konténerek statisztikáinak lekérése sikertelen" + } + }, + "coolify": { + "name": "Coolify", + "description": "A Coolify-példány áttekintése a szerverekkel és alkalmazásokkal", + "option": { + "showServers": { + "label": "Kiszolgálók megjelenítése" + }, + "showApplications": { + "label": "Alkalmazások megjelenítése" + }, + "showServices": { + "label": "Szolgáltatások megjelenítése" + } + }, + "empty": { + "servers": "Nem találtható szerver", + "applications": "Nem található alkalmazás", + "services": "Nem található szolgáltatás" + }, + "footer": { + "updated": "Frissítve {when}" + }, + "error": { + "noIntegration": "Nincs beállítva Coolify-integráció", + "internalServerError": "A Coolify-adatok letöltése nem sikerült" + }, + "server": { + "buildServer": "Build" + }, + "instances": { + "title": "Példányok" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Továbbfejlesztett médiaszerver-felügyelet részletes adatfolyam- és átkódolási adatokkal", + "option": { + "showStreams": { + "label": "Aktív streamek megjelenítése" + }, + "showStats": { + "label": "Statisztikai összefoglaló megjelenítése" + }, + "showRecentActivity": { + "label": "Legutóbbi tevékenység mutatása" + }, + "showViolations": { + "label": "Szabálysértések megjelenítése" + } + }, + "stats": { + "activeStreams": "Aktív Stream-ek", + "totalUsers": "Összes Felhasználó", + "transcodes": "Átkódolás", + "bandwidth": "Sávszélesség" + }, + "streams": { + "empty": "Nincsenek aktív streamek", + "user": "Felhasználó", + "media": "Média", + "state": "Állapot", + "quality": "Minőség", + "device": "Eszköz", + "progress": "Folyamat", + "videoDecision": { + "directPlay": "Közvetlen lejátszás", + "transcode": "Átkódolás", + "directStream": "Közvetlen közvetítés" + } + }, + "recentActivity": { + "title": "Legutóbbi tevékenységek", + "empty": "Nincs újabb tevékenység", + "watched": "Megnézve", + "partial": "Részleges" + }, + "violations": { + "title": "Szabálysértések", + "empty": "Nincsenek szabálysértések", + "rule": "Szabály", + "user": "Felhasználó" + }, + "noSectionsEnabled": "Nincs engedélyezett szakasz", + "error": { + "noIntegration": "Nincs beállítva a Tracearr-integráció", + "internalServerError": "Nem sikerült letölteni a Tracearr-adatokat" + } + }, + "umami": { + "name": "Umami Analitika", + "description": "Umami elemzési rendszeréből származó látogatói statisztikák megjelenítése", + "visitors": "látogatók", + "active": "aktív", + "pageviews": "oldalletöltések", + "visits": "látogatások", + "bounceRate": "visszapattan", + "avgDuration": "átl", + "option": { + "websiteId": { + "label": "Honlap", + "description": "Válasszon ki egy olyan webhelyet, amelyet az Ön Umami-példánya követ", + "placeholder": "Válasszon ki egy weboldalt", + "loading": "Weboldalak betöltése...", + "noWebsites": "Nem található weboldal", + "configureIntegrationFirst": "Először csatlakoztassa az Umami integrációt" + }, + "timeFrame": { + "label": "Időkeret", + "description": "Látogatói adatok megjelenítésének időtartama", + "option": { + "today": "Ma", + "24h": "Elmúlt 24 óra", + "7d": "Elmúlt 7 nap", + "30d": "Elmúlt 30 nap", + "month": "Ez a hónap", + "lastMonth": "Előző hónap" + } + }, + "eventName": { + "label": "Esemény", + "description": "Egy adott esemény összes előfordulásának megjelenítése", + "placeholder": "Válasszon ki egy eseményt", + "loading": "Események betöltése...", + "noEvents": "Nem található esemény", + "none": "Nincs esemény", + "configureWebsiteFirst": "Először válasszon ki egy weboldalt az események betöltéséhez" + }, + "chartType": { + "label": "Diagramtípus", + "description": "A diagram megjelenítési stílusa", + "option": { + "bar": "Oszlopdiagram", + "sparkline": "Mikrodiagram" + } + }, + "chartStyle": { + "label": "Diagramstílus", + "description": "Hogyan jeleníthetjük meg az eseménysorozatot a diagramon", + "option": { + "grouped": "Egymás mellett", + "overlay": "Átfedés (részhalmaz)" + } + }, + "viewMode": { + "label": "Megtekintés", + "description": "Mit jelenítsen meg a widget törzse", + "option": { + "chart": "Ábra", + "events": "Eseménynaptár", + "topPages": "Legnépszerűbb oldalak", + "topReferrers": "Legjobb hivatkozások" + } + }, + "eventNames": { + "label": "Események", + "description": "Válasszon ki egy vagy több eseményt a grafikonhoz", + "placeholder": "Események kiválasztása...", + "loading": "Események betöltése...", + "noEvents": "Nem található esemény", + "configureWebsiteFirst": "Először válasszon ki egy weboldalt az események betöltéséhez" + }, + "topCount": { + "label": "Items to show", + "description": "Megjelenítendő legnépszerűbb elemek száma (max. 500)" + } + }, + "event": { + "occurrences": "események", + "label": "események" + }, + "topPages": { + "direct": "Közvetlen" + }, + "topReferrers": { + "direct": "Közvetlen" + }, + "events": { + "selectPrompt": "Válassza ki a grafikonra felveendő eseményeket" + }, + "error": { + "noIntegration": "Nincs beállítva az Umami-integráció", + "noWebsite": "Nincs beállított webhely", + "noData": "Nincs elérhető adat", + "internalServerError": "Umami-adatok letöltése nem sikerült" } }, "common": { "location": { - "query": "", - "latitude": "", - "longitude": "", - "disabledTooltip": "", - "unknownLocation": "", + "query": "Város / Irányítószám", + "latitude": "Szélesség", + "longitude": "Hosszúság", + "disabledTooltip": "Adj meg egy várost vagy irányítószámot", + "unknownLocation": "Ismeretlen hely", "search": "Keresés", "table": { "header": { - "city": "", - "country": "", - "coordinates": "", - "population": "" + "city": "Város", + "country": "Ország", + "coordinates": "Koordináták", + "population": "Népesség" }, "action": { - "select": "" + "select": "Kiválasztás {city}, {countryCode}" }, "population": { "fallback": "Ismeretlen" @@ -1984,17 +2232,17 @@ } }, "integration": { - "noData": "", - "description": "" + "noData": "Nem találtam integrációt", + "description": "Kattintson egy új integráció létrehozásához" }, "app": { "noData": "Nem található alkalmazás", - "description": "", - "quickCreate": "" + "description": "Kattintson egy új alkalmazás létrehozásához", + "quickCreate": "Alkalmazás létrehozása pillanatok alatt" }, "error": { - "noIntegration": "", - "noData": "" + "noIntegration": "Nincs kiválasztva integráció", + "noData": "Nincs elérhető integrációs adat" }, "option": {} }, @@ -2007,164 +2255,210 @@ }, "hasAutoPlay": { "label": "Automatikus lejátszás", - "description": "" + "description": "Az automatikus lejátszás a böngésző korlátozásai miatt csak némítás esetén működik" }, "isMuted": { - "label": "" + "label": "Némítva" }, "hasControls": { - "label": "" + "label": "Vezérlők megjelenítése" } }, "error": { - "noUrl": "", - "forYoutubeUseIframe": "" + "noUrl": "Nincs megadva videó URL-cím", + "forYoutubeUseIframe": "YouTube-videók esetén használja az iframe opciót" } }, "mediaServer": { - "name": "", - "description": "", + "name": "Aktuális médiaszolgáltató-adások", + "description": "Az aktuális streamek megjelenítése a médialejátszókon", "option": { "showOnlyPlaying": { - "label": "", - "description": "" + "label": "Csak a jelenleg lejátszottakat mutasd", + "description": "Ennek letiltása a Plex esetében nem fog működni" } }, "items": { - "currentlyPlaying": "", - "user": "", - "name": "", - "id": "", + "currentlyPlaying": "Jelenleg lejátszás alatt", + "user": "Felhasználó", + "name": "Név", + "id": "Azonosító", "metadata": { - "title": "", + "title": "Statisztikák a rajongóknak", "video": { - "title": "", - "resolution": "" + "title": "Videó", + "resolution": "Felbontás" }, "audio": { - "title": "", - "channelCount": "", - "codec": "" + "title": "Audió", + "channelCount": "Hangsávok", + "codec": "Hangkodek" }, "transcoding": { - "title": "", - "container": "", - "resolution": "", - "target": "" + "title": "Átkódolás", + "container": "Konténer", + "resolution": "Felbontás", + "target": "Cél kódoló" } } } }, + "immich-serverStats": { + "name": "Immich szerver statisztikák", + "description": "Információk az Immich-példányodról", + "option": { + "showUsers": { + "label": "Felhasználók megjelenítése", + "description": "Az instanszon lévő felhasználók számának megjelenítése" + }, + "showPhotos": { + "label": "Fotók megjelenítése", + "description": "Az instanszon lévő fotók számának megjelenítése" + }, + "showVideos": { + "label": "Videó megjelenítése", + "description": "Az instanszon lévő videók számának megjelenítése" + }, + "showStorage": { + "label": "Tárhely megjelenítése", + "description": "Felhasznált tárhely teljes mennyiségének megjelenítése" + } + }, + "users": "Felhasználók", + "photos": "Fotók", + "videos": "Videók", + "storage": "Felhasznált tárhely" + }, + "immich-albumCarousel": { + "name": "Immich Album", + "option": { + "albumId": { + "label": "Album ID", + "description": "Ez az Immich-albumodra utaló egyedi azonosító. Az azonosítót úgy találhatod meg, hogy megnyitsz egy albumot, és lemásolod az URL-ből az egyedi karakterláncot, például: „a21aca09-9f05-47dc-b1a1-7b53c547226e”" + }, + "rotationIntervalSeconds": { + "label": "Időköz másodpercekben", + "description": "Az album képei között X másodpercenként váltson. Az értéknek legalább 1-nek kell lennie. Az érték nem haladhatja meg a 3600-at." + }, + "showPhotoInfo": { + "label": "Fotóadatok megjelenítése", + "description": "Kép dátumának és az aktuális indexszámnak a megjelenítése a diavetítés alján" + } + }, + "description": "Képek diavetítése az Immich-albumodból", + "noAlbumSelected": "Nincs kiválasztott album; szerkeszd a widgetet, és válassz ki egy albumot", + "noPhotos": "Ebben az albumban nincs fénykép" + }, "downloads": { - "name": "", - "description": "", + "name": "Kliens letöltése", + "description": "Lehetővé teszi a Torrent- és Usenet-kliensből származó letöltések megtekintését és kezelését.", "option": { "columns": { - "label": "" + "label": "Megjelenítendő oszlopok" }, "enableRowSorting": { - "label": "" + "label": "Elemek rendezésének engedélyezése" }, "defaultSort": { - "label": "" + "label": "Alapértelmezés szerint rendezéshez használt oszlop" }, "descendingDefaultSort": { - "label": "" + "label": "Fordított rendezés" }, "showCompletedUsenet": { - "label": "" + "label": "Mutassa a befejezettként megjelölt Usenet bejegyzéseket" }, "showCompletedTorrent": { - "label": "" + "label": "Mutassa a befejezettként megjelölt torrent bejegyzéseket" }, "showCompletedHttp": { - "label": "" + "label": "Mutassa a befejezettként megjelölt Vegyes bejegyzéseket" }, "activeTorrentThreshold": { - "label": "" + "label": "A küszöbérték alatt lévő befejezett torrenteket elrejtés (kiB/s-ban)" }, "categoryFilter": { - "label": "" + "label": "Szűrhető kategóriák/címkék" }, "filterIsWhitelist": { - "label": "" + "label": "Szűrés fehérlistával" }, "applyFilterToRatio": { - "label": "" + "label": "Használja a szűrőt az arány kiszámításához" }, "limitPerIntegration": { - "label": "", - "description": "" + "label": "Elemek száma integrációnként", + "description": "Ez az egyes integrációkhoz tartozó elemek számát korlátozza, nem pedig általánosan" } }, "errors": { - "noColumns": "", - "noCommunications": "" + "noColumns": "Oszlopok kiválasztása az elemek között", + "noCommunications": "Nem sikerül betölteni az adatokat az integrációból" }, "items": { "actions": { - "columnTitle": "" + "columnTitle": "Vezérlők" }, "added": { - "columnTitle": "", + "columnTitle": "Hozzáadva", "detailsTitle": "Hozzáadás dátuma" }, "category": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Extrák", + "detailsTitle": "Kategóriák (vagy további információk)" }, "downSpeed": { "columnTitle": "Le", "detailsTitle": "Letöltési sebesség" }, "index": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "#", + "detailsTitle": "Aktuális index az ügyfélnél" }, "id": { - "columnTitle": "" + "columnTitle": "Azonosító" }, "integration": { "columnTitle": "Integráció" }, "name": { - "columnTitle": "" + "columnTitle": "Folyamat neve" }, "progress": { "columnTitle": "Folyamat", - "detailsTitle": "" + "detailsTitle": "Letöltési folyamat" }, "ratio": { "columnTitle": "Arány", - "detailsTitle": "" + "detailsTitle": "Torrent-arány (letöltött/feltöltött)" }, "received": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Összes le", + "detailsTitle": "Összes letöltés" }, "sent": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Teljesen fönn", + "detailsTitle": "Teljesen föltöltött" }, "size": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Fájl mérete", + "detailsTitle": "A kijelölt elemek/fájlok teljes mérete" }, "state": { "columnTitle": "Állapot", - "detailsTitle": "" + "detailsTitle": "A feladat állapota" }, "time": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Befejezési idő", + "detailsTitle": "A befejezésig hátralévő idő" }, "type": { - "columnTitle": "", - "detailsTitle": "" + "columnTitle": "Típus", + "detailsTitle": "Letöltőkliens típusa" }, "upSpeed": { "columnTitle": "Fel", - "detailsTitle": "" + "detailsTitle": "Feltöltési sebesség" } }, "states": { @@ -2172,67 +2466,67 @@ "queued": "Sorban áll", "paused": "Szünet", "completed": "Kész", - "failed": "", + "failed": "Sikertelen", "processing": "Feldolgozás", - "leeching": "", - "stalled": "", + "leeching": "Leechelés", + "stalled": "Elakadt", "unknown": "Ismeretlen", - "seeding": "" + "seeding": "Seedelés" }, "actions": { "clients": { - "modalTitle": "", - "pause": "", - "resume": "" + "modalTitle": "Letöltkliensek listája", + "pause": "Minden kliens/elem felfüggesztése", + "resume": "Minden kliens/elem folytatása" }, "client": { - "pause": "", - "resume": "" + "pause": "Kliens felfüggesztése", + "resume": "Kliens folytatása" }, "item": { - "pause": "", - "resume": "", + "pause": "Elem felfüggesztése", + "resume": "Elem folytatása", "delete": { - "title": "", - "modalTitle": "", - "entry": "", - "entryAndFiles": "" + "title": "Elem törlése", + "modalTitle": "Biztosan törli ezt a feladatot?", + "entry": "Bejegyzés törlése", + "entryAndFiles": "Bejegyzés és file(ok) törlése" } } }, - "globalRatio": "" + "globalRatio": "Összes arány" }, "mediaReleases": { - "name": "", - "description": "", + "name": "Sajtóközlemények", + "description": "Az egyes integrációkból származó újonnan hozzáadott médiafájlok vagy hamarosan megjelenő kiadványok megjelenítése", "option": { "layout": { - "label": "", + "label": "Elrendezés", "option": { "backdrop": { - "label": "" + "label": "Háttér" }, "poster": { - "label": "" + "label": "Poszter" } } }, "showDescriptionTooltip": { - "label": "" + "label": "Leírás megjelenítése" }, "showType": { - "label": "" + "label": "Médiatípus-jelölő megjelenítése" }, "showSource": { - "label": "" + "label": "Forrásintegráció megjelenítése" } }, "length": { - "duration": "" + "duration": "{length}perc" } }, "mediaRequests-requestList": { - "name": "", + "name": "Médiakérések listája", "description": "Az Overseerr vagy Jellyseerr példány összes médiakérelmének listájának megtekintése", "option": { "linksTargetNewTab": { @@ -2240,31 +2534,31 @@ } }, "pending": { - "approve": "", - "approving": "", - "decline": "" + "approve": "Kérelem elfogadása", + "approving": "Kérelem elfogadása...", + "decline": "Kérés elutasítása" }, "availability": { "unknown": "Ismeretlen", - "pending": "", + "pending": "Függőben", "processing": "Feldolgozás", - "requested": "", + "requested": "Kérve", "partiallyAvailable": "Részleges", "available": "Elérhető", - "blacklisted": "", - "deleted": "" + "blacklisted": "Tiltólistára került", + "deleted": "Törölve" }, "status": { - "pending": "", - "approved": "", - "declined": "", - "failed": "", - "completed": "" + "pending": "Függőben", + "approved": "Jóváhagyva", + "declined": "Elutasítva", + "failed": "Sikertelen", + "completed": "Befejezett" }, - "toBeDetermined": "" + "toBeDetermined": "TBD" }, "mediaRequests-requestStats": { - "name": "", + "name": "Médiakérések állapota", "description": "Statisztikák az Ön médiakéréseiről", "option": {}, "titles": { @@ -2272,28 +2566,28 @@ "main": "Média statisztikák", "approved": "Már jóváhagyva", "pending": "Várakozás jóváhagyásra", - "processing": "", - "declined": "", - "available": "", + "processing": "Feldolgozás alatt", + "declined": "Már elutasították", + "available": "Már elérhető", "tv": "TV kérések", "movie": "Filmkérések", "total": "Összesen" }, "users": { "main": "Legnépszerűbb felhasználók", - "requests": "" + "requests": "Kérelmek" } } }, "mediaTranscoding": { - "name": "", - "description": "", + "name": "Médiatartalmak átkódolása", + "description": "Média átkódolásának statisztikái, az aktuális sorállás és a feldolgozók állapota", "option": { "defaultView": { "label": "Alapértelmezett nézet" }, "queuePageSize": { - "label": "" + "label": "A várólista méret" } }, "tab": { @@ -2301,9 +2595,9 @@ "queue": "Várólista", "statistics": "Statisztikák" }, - "currentIndex": "", + "currentIndex": "{total} / {start}–{end}", "healthCheck": { - "title": "", + "title": "Állapotfelmérés", "queued": "Sorban áll", "status": { "healthy": "Egészséges", @@ -2314,11 +2608,11 @@ "statistics": { "empty": "Üres", "transcodes": "Átkódolás", - "transcodesCount": "", - "healthChecksCount": "", - "filesCount": "", - "savedSpace": "", - "healthChecks": "", + "transcodesCount": "Átkódolás", + "healthChecksCount": "Állapotfelmérések", + "filesCount": "Fájlok", + "savedSpace": "Megtakarított tárhely", + "healthChecks": "Állapotfelmérések", "videoCodecs": "Kodekek", "videoContainers": "Tartály", "videoResolutions": "Felbontás" @@ -2330,7 +2624,7 @@ "eta": "Hátralévő idő", "progress": "Folyamat", "transcode": "Átkódolás", - "healthCheck": "" + "healthCheck": "Állapotfelmérés" } }, "queue": { @@ -2339,124 +2633,127 @@ "file": "Fájl", "size": "Méret", "transcode": "Átkódolás", - "healthCheck": "" + "healthCheck": "Állapotfelmérés" } } } }, "rssFeed": { - "name": "", - "description": "", + "name": "RSS feedek", + "description": "Egy vagy több általános RSS-, ATOM- vagy JSON-hírcsatorna figyelése és megjelenítése", "option": { "feedUrls": { - "label": "" + "label": "Hírcsatorna URL" }, "enableRtl": { - "label": "" + "label": "RTL engedélyezése" }, "textLinesClamp": { - "label": "" + "label": "Leírás sorlimit" }, "maximumAmountPosts": { - "label": "" + "label": "Bejegyzések számának korlátja" }, "hideDescription": { - "label": "" + "label": "Leírás elrejtése" + }, + "showPosterImage": { + "label": "Plakátkép megjelenítése" } } }, "releases": { - "name": "", - "description": "", + "name": "Kiadások", + "description": "Megjeleníti az adott tárolók aktuális verzióinak listáját a megadott verzió-kifejezés alapján.", "option": { "newReleaseWithin": { - "label": "", - "description": "" + "label": "Új kiadás a", + "description": "Használati példa: 1w (1 hét), 10M (10 hónap). Elfogadott mértékegységek: h (óra), d (nap), w (hét), M (hónap), y (év). Ha nem szeretné, hogy az új kiadások kiemelve jelenjenek meg, hagyja üresen." }, "staleReleaseWithin": { - "label": "", - "description": "" + "label": "Elavult kiadás", + "description": "Használati példa: 1w (1 hét), 10M (10 hónap). Elfogadott mértékegységek: h (óra), d (nap), w (hét), M (hónap), y (év). Ha nem szeretné, hogy a régi kiadások ki legyenek emelve, hagyja üresen." }, "showOnlyHighlighted": { - "label": "", - "description": "" + "label": "Csak a kiemelt elemeket mutasd", + "description": "Csak az új vagy lejárt kiadásokat mutassa. A fentiek szerint." }, "showDetails": { - "label": "" + "label": "Részletek megjelenítése" }, "showOnlyIcon": { - "label": "" + "label": "Csak ikonok megjelenítése" }, "topReleases": { - "label": "", - "description": "" + "label": "Legnépszerűbb kiadások", + "description": "A megjelenítendő legújabb kiadások maximális száma. A nulla érték korlátlan számot jelent." }, "repositories": { - "label": "", + "label": "Csomagtárolók", "addRepository": { - "label": "" + "label": "Gyűjtemény Hozzáadása" }, "importRepositories": { - "label": "", - "loading": "", - "noImagesFound": "", - "listFoundImages": "", - "listAlreadyImportedImages": "", - "allImagesAlreadyImported": "", - "onlyAdminCanImport": "", - "selectAll": "", - "deselectAll": "" + "label": "Importálás dockerből", + "loading": "Docker-képek betöltése", + "noImagesFound": "Nem találtam docker-képet", + "listFoundImages": "Talált képek listája", + "listAlreadyImportedImages": "A már importált képek listája", + "allImagesAlreadyImported": "Minden kép már importálva", + "onlyAdminCanImport": "Csak a rendszergazdák importálhatnak docker-ből", + "selectAll": "Összes kijelölése", + "deselectAll": "Kijelölés elvetése" }, "provider": { - "label": "" + "label": "Szolgáltató" }, "identifier": { - "label": "", - "placeholder": "" + "label": "Azonosító", + "placeholder": "Név vagy tulajdonos/név" }, "name": { - "label": "" + "label": "Név" }, "versionFilter": { - "label": "", + "label": "Verziószűrő", "prefix": { - "label": "" + "label": "Előtag" }, "precision": { - "label": "", + "label": "Pontosság", "options": { - "none": "" + "none": "Nem" } }, "suffix": { - "label": "" + "label": "Utótag" }, "regex": { - "label": "" + "label": "Reguláris kifejezés" } }, "edit": { - "label": "" + "label": "Szerkesztés" }, "editForm": { - "title": "", + "title": "Gyűjtemény Szerkesztése", "cancel": { - "label": "" + "label": "Mégse" }, "confirm": { - "label": "" + "label": "Megerősít" } }, "importForm": { - "title": "" + "title": "Importálás a Docker-ből" }, "example": { - "label": "" + "label": "Példa" }, - "invalid": "", + "invalid": "A tároló meghatározása érvénytelen, kérjük, ellenőrizze az értékeket", "noProvider": { - "label": "", - "tooltip": "" + "label": "Nincs Szolgáltató", + "tooltip": "A szolgáltató adatai nem értelmezhetők; kérjük, az importálás után állítsa be azokat manuálisan" } } }, @@ -2529,109 +2826,179 @@ } }, "error": { - "integrationsDisconnected": "", - "unknownContentOption": "" + "integrationsDisconnected": "Nincs elérhető adat, az összes integráció le van választva", + "unknownContentOption": "A hálózati állapot-widget ismeretlen tartalmi beállítása: " }, - "name": "", - "description": "" + "name": "Hálózat állapota", + "description": "A hálózathoz csatlakozó eszközök megjelenítése" }, "networkController": { "error": { - "internalServerError": "" + "internalServerError": "A hálózati vezérlő összefoglalójának letöltése nem sikerült" } }, "firewall": { - "name": "", - "description": "", + "name": "Tűzfal-felügyelet", + "description": "Megjeleníti a tűzfalak összefoglalóját", "tab": { - "system": "", - "interfaces": "" + "system": "Rendszer", + "interfaces": "Interfészek" }, "error": { - "internalServerError": "" + "internalServerError": "Nem sikerült adatokat lekérni a tűzfalról" }, "option": { - "interfaces": "" + "interfaces": "Megjelenítendő hálózati interfészek" }, "widget": { - "fwname": "", - "version": "", - "versiontitle": "", - "cputitle": "", - "memorytitle": "", - "cpu": "", - "memory": "", + "fwname": "Név", + "version": "Verzió", + "versiontitle": "Verziók", + "cputitle": "CPU használat", + "memorytitle": "Memória használat", + "cpu": "CPU", + "memory": "Memória", "interfaces": { - "name": "", - "trans": "", - "recv": "", - "title": "" + "name": "név", + "trans": "Továbbított", + "recv": "Kézbesített", + "title": "Hálózati interfészek" } } }, "notifications": { - "name": "", - "description": "", - "noItems": "", + "name": "Értesítések", + "description": "Egy integráció értesítési előzményeinek megjelenítése", + "noItems": "Nincs megjelenítendő üzenet.", "option": {} }, + "speedtestTracker": { + "name": "Hálózatsebesség Monitorozó", + "description": "Megjeleníti a Hálózatsebesség Monitorozó példányából származó sebességteszt-eredményeket.", + "option": { + "showLatestResult": { + "label": "Legfrissebb eredmények megjelenítése" + }, + "showStats": { + "label": "Átlag mutatása" + }, + "showRecentResults": { + "label": "Legutóbbi eredmények megjelenítése" + }, + "showPingGraph": { + "label": "Válaszidő grafikon megjelenítése" + } + }, + "latestResult": "Legfrissebb eredmény", + "averages": "Átlagok", + "tests": "{count} mérések", + "recentResults": "Legutóbbi eredmények", + "recentResultsSpeed": "Sebesség", + "recentResultsPing": "Válaszidő", + "download": "Letöltés", + "upload": "Feltöltés", + "ping": "Válaszidő", + "status": "Állapot", + "avgDownload": "Átlag Letöltés", + "avgUpload": "Átlag Feltöltés", + "avgPing": "Átlag válaszidő", + "healthy": "Normális", + "unhealthy": "Rossz", + "ok": "OK", + "fail": "Hiba", + "noSectionsEnabled": "A widget beállításaiban legalább egy szakaszt engedélyezzen.", + "error": { + "internalServerError": "A sebességteszt-adatok letöltése nem sikerült" + } + }, "systemResources": { - "name": "", - "description": "", + "name": "Rendszer erőforrások", + "description": "A rendszer CPU-, memória-, lemez- és egyéb hardverhasználata", "option": { "hasShadow": { - "label": "" + "label": "Diagram árnyékolás engedélyezése" }, "visibleCharts": { - "label": "", - "description": "", + "label": "Látható diagramok", + "description": "Válassza ki azokat a diagramokat, amelyeket meg szeretne jeleníteni.", "option": { - "cpu": "", - "memory": "", - "network": "" + "cpu": "CPU", + "memory": "Memória", + "gpu": "GPU", + "network": "Hálózat" } }, "labelDisplayMode": { - "label": "", + "label": "Címke megjelenítési mód", "option": { - "textWithIcon": "", - "text": "", - "icon": "", - "hidden": "" + "textWithIcon": "Szöveg megjelenítése ikonnal", + "text": "Csak a szöveget mutasd", + "icon": "Csak az ikont mutatsd", + "hidden": "Címke elrejtése" } } }, "card": { - "cpu": "", - "memory": "", - "network": "", - "up": "", - "down": "" + "cpu": "CPU", + "memory": "RAM", + "gpu": "GPU", + "network": "NET", + "up": "FÖNN", + "down": "LENN" + } + }, + "systemDisks": { + "name": "Rendszer lemezek", + "description": "A rendszer lemezhasználata", + "option": { + "showTemperatureIfAvailable": { + "label": "Ha elérhető, mutassa a hőmérsékletet" + }, + "displayMode": { + "label": "Megjelenítési mód", + "option": { + "percentage": { + "label": "Százalék (pl: 76%)" + }, + "absolute": { + "label": "Abszolút értékek (pl. 800 Gb / 1 Tb)" + }, + "free": { + "label": "A szabad hely aránya (pl. 24% szabad)" + } + } + }, + "showBackgroundBar": { + "label": "Háttérhasználati sáv megjelenítése" + } + }, + "status": { + "unhealthy": "Hibás" } } }, "widgetPreview": { "toggle": { - "enabled": "", - "disabled": "" + "enabled": "Szerkesztési mód engedélyezve", + "disabled": "Szerkesztési mód tiltva" }, "dimensions": { - "title": "" + "title": "Dimenzió váltása" } }, "board": { "action": { "duplicate": { - "title": "", - "message": "", + "title": "Tábla duplikálása", + "message": "Ezzel a {name} tábla teljes tartalmával együtt duplikálódik. Ha a widgetek olyan integrációkra hivatkoznak, amelyek használata nem engedélyezett, azok eltávolításra kerülnek.", "notification": { "success": { - "title": "", - "message": "" + "title": "Tábla duplikálva", + "message": "A tábla sikeresen duplikálódott" }, "error": { - "title": "", - "message": "" + "title": "Nem lehet duplikálni a táblát", + "message": "Nem tudtam duplikálni a táblát" } } }, @@ -2639,44 +3006,44 @@ "notification": { "success": { "title": "A módosítások sikeresen alkalmazva", - "message": "" + "message": "A tábla sikeresen elmentve" }, "error": { "title": "Nem sikerült alkalmazni a változtatásokat", - "message": "" + "message": "A táblát nem sikerült elmenteni" } }, "confirmLeave": { - "title": "", - "message": "" + "title": "Mentetlen változtatások", + "message": "Nem mentett változtatásai vannak, biztosan el akarja hagyni az oldalt?" } }, "oldImport": { - "label": "", + "label": "Importálás a homarr 1.0.0 előtti verzióból", "notification": { "success": { - "title": "", - "message": "" + "title": "Sikeres importálás", + "message": "A tábla sikeresen importálva" }, "error": { - "title": "", - "message": "" + "title": "Importálás nem sikerült", + "message": "Táblát nem sikerült importálni; további részletekért nézd meg a naplófájlokat" } }, "form": { "file": { - "label": "", - "invalidError": "" + "label": "JSON fájl kiválasztása", + "invalidError": "Érvénytelen konfigurációs fájl" }, "apps": { "label": "Alkalmazások", "avoidDuplicates": { - "label": "", - "description": "" + "label": "Kerülje az ismétlődéseket", + "description": "Nem veszi figyelembe azokat az alkalmazásokat, amelyeknél már létezik azonos href-vel rendelkező alkalmazás" }, "onlyImportApps": { - "label": "", - "description": "" + "label": "Csak alkalmazások importálása", + "description": "Csak az alkalmazásokat adja hozzá, a táblát manuálisan kell újra létrehozni" } }, "name": { @@ -2716,20 +3083,20 @@ }, "field": { "pageTitle": { - "label": "" + "label": "Oldal cím" }, "metaTitle": { - "label": "" + "label": "Meta cím" }, "logoImageUrl": { - "label": "" + "label": "Logo kép URL" }, "faviconImageUrl": { - "label": "" + "label": "A favicon képének URL-címe" }, "backgroundImageUrl": { - "label": "", - "placeholder": "", + "label": "Háttérkép URL", + "placeholder": "Kezdje el gépelni a helyi képek kereséséhez", "group": { "your": "", "other": "" @@ -2905,15 +3272,15 @@ "description": "" }, "private": { - "title": "", - "description": "" + "title": "Nyilvános tábla készítése", + "description": "Biztosan nyilvánossá szeretnéd tenni ezt a fórumot? Ezzel a fórum mindenki számára elérhetővé válik." } } }, "delete": { - "label": "", + "label": "Törölje ezt a táblát", "description": "", - "button": "", + "button": "Törölje ezt a táblát", "confirm": { "title": "Tábla törlése", "description": "" @@ -3240,7 +3607,7 @@ "title": "", "general": { "title": "", - "text": "" + "text": "A Homarr az Umami nevű nyílt forráskódú szoftver segítségével névtelen elemzési adatokat küld. Ha ez az opció engedélyezve van, a következő adatokat gyűjtjük: a Homarr verziója, az adatbázis típusa (MySQL/PostgreSQL/SQLite), a Docker/Kubernetes állapota, az engedélyezett hitelesítési módszerek, valamint az egyes funkciók száma. Minden adat névtelen és összesített formában kerül rögzítésre – személyes adatokat, URL-eket, neveket vagy bármilyen azonosítható adatot soha nem gyűjtünk. Ez segít nyílt forráskódú fejlesztői csapatunknak a használati szokások megértésében és a fejlesztési feladatok fontossági sorrendjének meghatározásában." }, "widgetData": { "title": "", @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "Világos", "dark": "Sötét" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3394,10 +3765,10 @@ "label": "" }, "firewallCpu": { - "label": "" + "label": "Tűzfal CPU" }, "firewallMemory": { - "label": "" + "label": "Tűzfal Memória" }, "firewallVersion": { "label": "" @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3578,10 +3959,10 @@ }, "stats": { "cpu": { - "label": "" + "label": "CPU" }, "memory": { - "label": "" + "label": "Memória" } }, "containerImage": { @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Portok" + }, + "host": { + "label": "" } }, "action": { @@ -3719,10 +4103,10 @@ } }, "cpu": { - "label": "" + "label": "CPU" }, "memory": { - "label": "" + "label": "RAM" }, "pods": { "label": "" @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Keresőmotorok", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { @@ -4426,12 +4819,12 @@ "title": "", "table": { "header": { - "season": "", - "episodes": "" + "season": "Évszak", + "episodes": "Epizódok" } }, "button": { - "send": "" + "send": "Kérelem küldése" } } } @@ -4441,39 +4834,39 @@ "certificate": { "field": { "hostname": { - "label": "" + "label": "Gazdagépnév" }, "subject": { - "label": "" + "label": "Tárgy" }, "issuer": { - "label": "" + "label": "Kiállító" }, "validFrom": { - "label": "" + "label": "Érvényesség kezdete" }, "validTo": { - "label": "" + "label": "Érvényesség vége" }, "serialNumber": { - "label": "" + "label": "Sorozatszám" }, "fingerprint": { - "label": "" + "label": "Ujjlenyomat" } }, "page": { "list": { - "title": "", - "description": "", + "title": "Megbízható tanúsítványok", + "description": "A Homarr ezt használja az integrációkból származó adatok lekérésére.", "noResults": { - "title": "" + "title": "Még nincsenek tanúsítványok" }, "invalid": { - "title": "", - "description": "" + "title": "Érvénytelen tanúsítvány", + "description": "A tanúsítvány értelmezése sikertelen" }, - "expires": "", + "expires": "Lejár {when}", "toHostnames": "" }, "hostnames": { @@ -4523,7 +4916,7 @@ }, "error": { "title": "", - "message": "" + "message": "A gazdagépnév nem távolítható el" } } } @@ -4532,10 +4925,10 @@ "log": { "level": { "option": { - "debug": "", - "info": "", - "warn": "", - "error": "" + "debug": "Hibakeresés", + "info": "Infó", + "warn": "Figyelmeztetés", + "error": "Hiba" } } } diff --git a/packages/translation/src/lang/it.json b/packages/translation/src/lang/it.json index 18fd7b4f2..60720ad7c 100644 --- a/packages/translation/src/lang/it.json +++ b/packages/translation/src/lang/it.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Apri risultati di ricerca in una nuova scheda" + }, + "ddgBangs": { + "label": "Abilita bangs DuckDuckGo" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "DuckDuckGo bangs attivato con successo" + }, + "error": { + "message": "Impossibile attivare i bangs DuckDuckGo" + } + } + }, "manageAvatar": { "changeImage": { "label": "Cambia immagine", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "Automatico", "light": "Chiaro", "dark": "Scuro" } @@ -1138,6 +1152,9 @@ "dangerZone": "Zona pericolosa", "noResults": "Nessun risultato trovato", "unsavedChanges": "Ci sono modifiche non salvate!", + "servers": "Server", + "applications": "App", + "services": "Servizi", "preview": { "show": "Mostra anteprima", "hide": "Nascondi anteprima" @@ -1522,6 +1539,17 @@ "offline": "Offline" } }, + "timetable": { + "name": "Orario", + "description": "Visualizza gli orari di partenza per una stazione", + "title": "Partenze {station}", + "noStation": "Nessuna stazione selezionata", + "option": { + "station": { + "label": "Stazione" + } + } + }, "notebook": { "name": "Blocco note", "description": "Un semplice widget notebook che supporta markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "Nota Anchor", + "description": "Visualizza una nota selezionata da Ancoraggio", + "option": { + "noteId": { + "label": "Nota" + }, + "showTitle": { + "label": "Mostra titolo" + }, + "showUpdatedAt": { + "label": "Mostra ultimo aggiornamento" + } + }, + "empty": "Seleziona una nota da visualizzare", + "emptyContent": "Questa nota non ha nessun contenuto", + "notFound": "Nota non trovata", + "noNotes": "Nessuna nota trovata", + "integrationRequired": "Seleziona prima l'integrazione di Anchor", + "updatedAt": "Aggiornato {date}", + "untitled": "Senza titolo", + "edit": "Modifica", + "save": "Salva", + "cancel": "Annulla", + "readOnlyViewer": "Hai accesso in modalità visualizzazione a questa nota. La modifica è disabilitata.", + "saveForbidden": "Non hai i permessi per modificare questa nota.", + "saveFailed": "Impossibile salvare questa nota. Per favore, riprova." + }, "iframe": { "name": "iFrame", "description": "Incorpora qualsiasi contenuto da Internet. Alcuni siti web possono limitare l'accesso.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Consenti geo-localizzazione" + }, + "allowModals": { + "label": "Consenti modali" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Mostra Informazioni Memoria" }, + "gpu": { + "label": "Mostra informazioni sulla GPU" + }, "showUptime": { "label": "Mostra Uptime" }, @@ -1960,6 +2022,192 @@ "internalServerError": "Recupero statistiche container non riuscito" } }, + "coolify": { + "name": "Coolify", + "description": "Panoramica della tua istanza Coolify con server e applicazioni", + "option": { + "showServers": { + "label": "Mostra server" + }, + "showApplications": { + "label": "Mostra applicazioni" + }, + "showServices": { + "label": "Mostra servizi" + } + }, + "empty": { + "servers": "Nessun server trovato", + "applications": "Nessuna applicazione trovata", + "services": "Nessun servizio trovato" + }, + "footer": { + "updated": "Aggiornato {when}" + }, + "error": { + "noIntegration": "Nessuna integrazione di Coolify configurata", + "internalServerError": "Impossibile recuperare i dati Coolify" + }, + "server": { + "buildServer": "Build" + }, + "instances": { + "title": "Istanze" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Monitoraggio avanzato del server multimediale con dati dettagliati su streaming e transcodifica", + "option": { + "showStreams": { + "label": "Mostra stream attivo" + }, + "showStats": { + "label": "Mostra riepilogo statistiche" + }, + "showRecentActivity": { + "label": "Mostra attività recenti" + }, + "showViolations": { + "label": "Visualizza violazioni" + } + }, + "stats": { + "activeStreams": "Stream Attivi", + "totalUsers": "Utenti Totali", + "transcodes": "Transcodifiche", + "bandwidth": "Larghezza banda" + }, + "streams": { + "empty": "Nessun stream attivo", + "user": "Utente", + "media": "Multimedia", + "state": "Stato", + "quality": "Qualità", + "device": "Dispositivo", + "progress": "Avanzamento", + "videoDecision": { + "directPlay": "Riproduzione diretta", + "transcode": "Transcodifica", + "directStream": "Streaming Diretto" + } + }, + "recentActivity": { + "title": "Attività recenti", + "empty": "Nessuna attività recente", + "watched": "Guardato", + "partial": "Parziale" + }, + "violations": { + "title": "Violazioni", + "empty": "Nessuna violazione recente", + "rule": "Regola", + "user": "Utente" + }, + "noSectionsEnabled": "Nessuna sezione abilitata", + "error": { + "noIntegration": "Nessuna integrazione Tracearr configurata", + "internalServerError": "Impossibile recuperare i dati di Tracearr" + } + }, + "umami": { + "name": "Umami Analytics", + "description": "Visualizza le statistiche dei visitatori dall'istanza Umami analytics", + "visitors": "visitatori", + "active": "attivo", + "pageviews": "pagine viste", + "visits": "visite", + "bounceRate": "rimbalzo", + "avgDuration": "media", + "option": { + "websiteId": { + "label": "Sito web", + "description": "Seleziona un sito web tracciato dalla tua istanza di Umami", + "placeholder": "Seleziona un sito web", + "loading": "Caricamento siti web...", + "noWebsites": "Nessun sito web trovato", + "configureIntegrationFirst": "Connetti prima un'integrazione Umami" + }, + "timeFrame": { + "label": "Intervallo di tempo", + "description": "Il periodo di tempo per visualizzare i dati dei visitatori per", + "option": { + "today": "Oggi", + "24h": "Ultime 24 ore", + "7d": "Ultimi 7 giorni", + "30d": "Ultimi 30 giorni", + "month": "Questo mese", + "lastMonth": "Mese precedente" + } + }, + "eventName": { + "label": "Evento", + "description": "Mostra le occorrenze totali di un evento specifico", + "placeholder": "Seleziona un evento", + "loading": "Caricamento eventi...", + "noEvents": "Nessun evento trovato", + "none": "Nessun evento", + "configureWebsiteFirst": "Seleziona un sito web prima di caricare gli eventi" + }, + "chartType": { + "label": "Tipo di grafico", + "description": "Stile di visualizzazione del grafico", + "option": { + "bar": "Grafico a barre", + "sparkline": "Grafico a linee compatto" + } + }, + "chartStyle": { + "label": "Stile del grafico", + "description": "Come visualizzare la serie di eventi nel grafico", + "option": { + "grouped": "Affiancati", + "overlay": "Sovrapponi (subset)" + } + }, + "viewMode": { + "label": "Vista", + "description": "Cosa mostrare nel corpo del widget", + "option": { + "chart": "Grafico", + "events": "Grafico degli eventi", + "topPages": "Pagine più visitate", + "topReferrers": "Referrer principali" + } + }, + "eventNames": { + "label": "Eventi", + "description": "Scegli uno o più eventi per il grafico", + "placeholder": "Seleziona eventi...", + "loading": "Caricamento eventi...", + "noEvents": "Nessun evento trovato", + "configureWebsiteFirst": "Seleziona prima un sito web per caricare gli eventi" + }, + "topCount": { + "label": "Elementi da mostrare", + "description": "Numero di elementi principali da visualizzare (max 500)" + } + }, + "event": { + "occurrences": "eventi", + "label": "eventi" + }, + "topPages": { + "direct": "Diretto" + }, + "topReferrers": { + "direct": "Diretto" + }, + "events": { + "selectPrompt": "Seleziona gli eventi per il grafico" + }, + "error": { + "noIntegration": "Nessuna integrazione di Umami configurata", + "noWebsite": "Nessun sito web configurato", + "noData": "Nessun dato disponibile", + "internalServerError": "Recupero dati Umami fallito" + } + }, "common": { "location": { "query": "Città / Codice postale", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Statistiche Server Immich", + "description": "Informazioni sulla tua istanza Immich", + "option": { + "showUsers": { + "label": "Mostra utenti", + "description": "Mostra il conteggio degli utenti sulla tua istanza" + }, + "showPhotos": { + "label": "Mostra foto", + "description": "Mostra il conteggio delle foto sulla tua istanza" + }, + "showVideos": { + "label": "Mostra video", + "description": "Mostra il conteggio dei video sulla tua istanza" + }, + "showStorage": { + "label": "Mostra spazio di archiviazione", + "description": "Visualizza la quantità totale di memoria utilizzata" + } + }, + "users": "Utenti", + "photos": "Foto", + "videos": "Video", + "storage": "Spazio utilizzato" + }, + "immich-albumCarousel": { + "name": "Album Immich", + "option": { + "albumId": { + "label": "ID Album", + "description": "Si tratta di un ID univoco che si riferisce al tuo album Immich. Puoi trovare questo id aprendo un album e copiando la stringa univoca dall'URL, ad esempio 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Intervallo in secondi", + "description": "Ruota le immagini nell'album ogni X secondi. Deve essere almeno 1. Deve essere inferiore a 3600." + }, + "showPhotoInfo": { + "label": "Mostra informazioni foto", + "description": "Visualizza la data dell'immagine e l'indice corrente nella parte inferiore della presentazione" + } + }, + "description": "Presentazione delle immagini nel tuo album Immich", + "noAlbumSelected": "Nessun album selezionato, modifica il widget e scegli un album", + "noPhotos": "Nessuna foto in questo album" + }, "downloads": { "name": "Scarica Client", "description": "Ti consente di visualizzare e gestire i tuoi download dai client Torrent e Usenet.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Nascondi descrizione" + }, + "showPosterImage": { + "label": "Mostra immagine poster" } } }, @@ -2575,6 +2872,45 @@ "noItems": "Nessuna notifica da visualizzare.", "option": {} }, + "speedtestTracker": { + "name": "SpeedTest Tracker", + "description": "Visualizza i risultati del test di velocità della tua istanza di Speedtest Tracker.", + "option": { + "showLatestResult": { + "label": "Mostra l'ultimo risultato" + }, + "showStats": { + "label": "Mostra medie" + }, + "showRecentResults": { + "label": "Mostra risultati recenti" + }, + "showPingGraph": { + "label": "Mostra grafico di ping" + } + }, + "latestResult": "Ultima Risultato", + "averages": "Medie", + "tests": "{count} test", + "recentResults": "Risultati Recenti", + "recentResultsSpeed": "Velocità", + "recentResultsPing": "Ping", + "download": "Download", + "upload": "Upload", + "ping": "Ping", + "status": "Stato", + "avgDownload": "Media di Download", + "avgUpload": "Media di Upload", + "avgPing": "Media di Ping", + "healthy": "Normale funzionamento", + "unhealthy": "Compromesso", + "ok": "OK", + "fail": "Fallito", + "noSectionsEnabled": "Abilita almeno una sezione nelle opzioni del widget.", + "error": { + "internalServerError": "Recupero dei dati di speedtest non riuscito" + } + }, "systemResources": { "name": "Risorse di sistema", "description": "CPU, memoria, disco e altro utilizzo hardware del sistema", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "Memoria", + "gpu": "GPU", "network": "Rete" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "GPU", "network": "NET", "up": "SU", "down": "DOWN" } + }, + "systemDisks": { + "name": "Dischi di sistema", + "description": "Uso del disco del sistema", + "option": { + "showTemperatureIfAvailable": { + "label": "Mostra temperatura se disponibile" + }, + "displayMode": { + "label": "Modalità di visualizzazione", + "option": { + "percentage": { + "label": "Percentuale (es. 76%)" + }, + "absolute": { + "label": "Valori assoluti (ad es. 800GB / 1TB)" + }, + "free": { + "label": "Percentuale di spazio libero (ad es. 24% libero)" + } + } + }, + "showBackgroundBar": { + "label": "Mostra barra di utilizzo in background" + } + }, + "status": { + "unhealthy": "Compromesso" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Schema colore predefinito", "options": { + "auto": "Automatico", "light": "Chiaro", "dark": "Scuro" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Stato del server Minecraft" }, + "timetable": { + "label": "Orario" + }, "iconsUpdater": { "label": "Aggiornatore Icone" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Meteo" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "Visitatori Attivi Umami" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Traduttori", "subtitle": "{count} contribuendo alle traduzioni in molte lingue" }, + "sponsors": { + "title": "Sponsor", + "subtitle": "{count} sostengono il progetto finanziariamente" + }, "libraries": { "title": "Librerie", "subtitle": "{count} utilizzato nel Codice di Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Porte" + }, + "host": { + "label": "Host" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Comandi generali", "option": { "colorScheme": { + "auto": "Attiva/Disattiva modalità aspetto", "light": "Passa al tema chiaro", "dark": "Passa al tema scuro" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Motori di ricerca", + "tipDdgBangs": "Suggerimento: puoi usare anche i bang di DuckDuckGo, ad esempio !qualcosa", + "bang": { + "searchWithQuery": "Cerca \"{query}\" con {label}", + "pressEnterToOpen": "Premere Invio per aprire", + "engineSelected": "{label} selezionato (!{bang})", + "typeQueryToContinue": "Digita la tua query di ricerca per continuare", + "emptyBangHint": "Digita un bang, ad es. !yt, poi premi Spazio per selezionare" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/ja.json b/packages/translation/src/lang/ja.json index ed38c929b..752a3a529 100644 --- a/packages/translation/src/lang/ja.json +++ b/packages/translation/src/lang/ja.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "新しいタブで検索結果を見る" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "画像を変更", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "ライト", "dark": "ダーク" } @@ -1138,6 +1152,9 @@ "dangerZone": "危険な操作", "noResults": "結果が見つかりません", "unsavedChanges": "保存していない変更があります!", + "servers": "サーバー", + "applications": "アプリケーション", + "services": "サービス", "preview": { "show": "プレビューを表示", "hide": "プレビューを閉じる" @@ -1522,6 +1539,17 @@ "offline": "オフライン" } }, + "timetable": { + "name": "タイムテーブル", + "description": "駅の出発時刻を表示します", + "title": "{station} 出発時刻", + "noStation": "駅が選択されていません", + "option": { + "station": { + "label": "駅" + } + } + }, "notebook": { "name": "メモ帳", "description": "マークダウンをサポートするシンプルなノートブックウィジェット", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "アンカーノート", + "description": "アンカーから選択したノートを表示する", + "option": { + "noteId": { + "label": "ノート" + }, + "showTitle": { + "label": "タイトルを表示" + }, + "showUpdatedAt": { + "label": "最終更新を表示" + } + }, + "empty": "表示するノートを選択", + "emptyContent": "このノートにはコンテンツがありません", + "notFound": "ノートが見つかりません", + "noNotes": "ノートがありません", + "integrationRequired": "アンカー統合を最初に選択してください", + "updatedAt": "{date} に更新しました", + "untitled": "タイトルなし", + "edit": "編集", + "save": "保存", + "cancel": "キャンセル", + "readOnlyViewer": "このノートを閲覧することができます。編集は無効になっています", + "saveForbidden": "このノートを編集する権限がありません。", + "saveFailed": "このノートを保存できませんでした。もう一度やり直してください。" + }, "iframe": { "name": "iFrame", "description": "インターネットから任意のコンテンツを埋め込みます。一部のウェブサイトではアクセスが制限される場合があります", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "位置情報を許可する" + }, + "allowModals": { + "label": "モーダルを許可" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "メモリー情報を表示" }, + "gpu": { + "label": "GPU情報を表示" + }, "showUptime": { "label": "稼働時間を表示" }, @@ -1941,25 +2003,211 @@ "description": "あなたのコンテナの統計(このウィジェットは管理者権限でのみ追加できます)", "option": { "enableRowSorting": { - "label": "" + "label": "アイテムの並び替えを有効にする" }, "defaultSort": { - "label": "", + "label": "デフォルトで並び替えに使用される列", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "名称", + "state": "状態", + "cpuUsage": "CPU 使用率", + "memoryUsage": "メモリ使用量" } }, "descendingDefaultSort": { - "label": "" + "label": "並び替えを反転" } }, "error": { "internalServerError": "コンテナステータスの取得に失敗しました" } }, + "coolify": { + "name": "Coolify", + "description": "サーバーとアプリケーションを使用した Coolify インスタンスの概要", + "option": { + "showServers": { + "label": "サーバーを表示" + }, + "showApplications": { + "label": "アプリケーションを表示" + }, + "showServices": { + "label": "サービスを表示" + } + }, + "empty": { + "servers": "サーバーが見つかりません", + "applications": "アプリケーションが見つかりません", + "services": "サービスが見つかりません" + }, + "footer": { + "updated": "{when} に更新しました" + }, + "error": { + "noIntegration": "Coolify 統合が設定されていません", + "internalServerError": "Coolify データの取得に失敗しました" + }, + "server": { + "buildServer": "ビルド" + }, + "instances": { + "title": "インスタンス" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "詳細なストリームとトランスコーディングデータによるメディアサーバーのモニタリングの強化", + "option": { + "showStreams": { + "label": "アクティブなストリームを表示" + }, + "showStats": { + "label": "統計情報の概要を表示" + }, + "showRecentActivity": { + "label": "最近のアクティビティを表示" + }, + "showViolations": { + "label": "違反を表示" + } + }, + "stats": { + "activeStreams": "アクティブなストリーム", + "totalUsers": "総ユーザー数", + "transcodes": "トランスコード", + "bandwidth": "帯域幅" + }, + "streams": { + "empty": "アクティブなストリームがありません", + "user": "ユーザー", + "media": "メディア", + "state": "状態", + "quality": "品質", + "device": "デバイス", + "progress": "進捗状況", + "videoDecision": { + "directPlay": "ダイレクトプレイ", + "transcode": "トランスコード", + "directStream": "ダイレクトストリーム" + } + }, + "recentActivity": { + "title": "最近のアクティビティ", + "empty": "最近のアクティビティなし", + "watched": "視聴済", + "partial": "一部" + }, + "violations": { + "title": "違反", + "empty": "最近の違反はありません", + "rule": "ルール", + "user": "ユーザー" + }, + "noSectionsEnabled": "有効なセクションがありません", + "error": { + "noIntegration": "Tracearrとの連携が設定されていません", + "internalServerError": "Tracearrデータの取得に失敗しました" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "都市/郵便番号", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Immich サーバーの統計", + "description": "Immich インスタンスに関する情報", + "option": { + "showUsers": { + "label": "ユーザを表示", + "description": "インスタンスにユーザー数を表示する" + }, + "showPhotos": { + "label": "写真を表示", + "description": "インスタンス上の写真数を表示する" + }, + "showVideos": { + "label": "動画を表示", + "description": "インスタンスに動画の数を表示する" + }, + "showStorage": { + "label": "ストレージを表示", + "description": "使用されたストレージの合計容量を表示します" + } + }, + "users": "ユーザー", + "photos": "写真", + "videos": "動画", + "storage": "ストレージ使用量" + }, + "immich-albumCarousel": { + "name": "Immich アルバム", + "option": { + "albumId": { + "label": "アルバム ID", + "description": "これはImmichのアルバムを示す固有のIDです。 「a21aca09-9f05-47dc-b1a1-7b53c547226e」など、アルバムを開いてURLから一意の文字列をコピーすることでこのIDを見つけることができます。" + }, + "rotationIntervalSeconds": { + "label": "間隔 (秒)", + "description": "アルバム内の写真をX秒ごとに回転させます。少なくとも1でなければなりません。3600未満でなければなりません。" + }, + "showPhotoInfo": { + "label": "写真情報を表示", + "description": "スライドショーの下部に画像の日付と現在の索引を表示します" + } + }, + "description": "Immichアルバムの写真のスライド", + "noAlbumSelected": "アルバムが選択されていない、ウィジェットを編集してアルバムを選択してください", + "noPhotos": "このアルバムには写真がありません" + }, "downloads": { "name": "クライアントをダウンロード", "description": "Torrent クライアントと Usenet クライアントの両方から、ダウンロードを表示および管理できます。", @@ -2248,7 +2542,7 @@ "unknown": "不明", "pending": "保留中", "processing": "処理中", - "requested": "", + "requested": "要求済み", "partiallyAvailable": "一部", "available": "利用可能", "blacklisted": "ブラックリスト", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "詳細を非表示" + }, + "showPosterImage": { + "label": "ポスターの画像を表示" } } }, @@ -2575,6 +2872,45 @@ "noItems": "表示する通知はありません。", "option": {} }, + "speedtestTracker": { + "name": "スピードテストトラッカー", + "description": "Speedtest Trackerインスタンスからスピードテストの結果を表示します。", + "option": { + "showLatestResult": { + "label": "最新の結果を表示" + }, + "showStats": { + "label": "平均を表示" + }, + "showRecentResults": { + "label": "最近の結果を表示" + }, + "showPingGraph": { + "label": "ping グラフを表示" + } + }, + "latestResult": "直近の結果", + "averages": "平均値", + "tests": "{count} 回テスト", + "recentResults": "最近の結果", + "recentResultsSpeed": "スピード", + "recentResultsPing": "Ping", + "download": "ダウンロード", + "upload": "アップロード", + "ping": "Ping", + "status": "ステータス", + "avgDownload": "平均ダウンロード", + "avgUpload": "平均アップロード", + "avgPing": "平均 Ping", + "healthy": "正常", + "unhealthy": "異常", + "ok": "成功", + "fail": "失敗", + "noSectionsEnabled": "ウィジェットオプションで少なくとも1つのセクションを有効にします。", + "error": { + "internalServerError": "スピードテストデータの取得に失敗しました" + } + }, "systemResources": { "name": "システムリソース", "description": "CPU、メモリ、ディスクなどのシステムハードウェアの使用", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "メモリ", + "gpu": "GPU", "network": "ネットワーク" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "GPU", "network": "NET", "up": "UP", "down": "DOWN" } + }, + "systemDisks": { + "name": "システムディスク", + "description": "システムのディスク使用量", + "option": { + "showTemperatureIfAvailable": { + "label": "利用可能な場合は温度を表示" + }, + "displayMode": { + "label": "表示モード", + "option": { + "percentage": { + "label": "割合 (例 76%)" + }, + "absolute": { + "label": "絶対値(例:800GB / 1TB)" + }, + "free": { + "label": "空き領域の割合(例:24%空き)" + } + } + }, + "showBackgroundBar": { + "label": "バックグラウンドの使用状況バーを表示" + } + }, + "status": { + "unhealthy": "異常" + } } }, "widgetPreview": { @@ -3240,7 +3607,7 @@ "title": "統計情報", "general": { "title": "匿名の解析を送信", - "text": "Homarr はオープンソースソフトウェア Umami を使用して匿名化された分析情報を送信します。個人情報を一切収集しないため、GDPRとCCPAに完全に準拠しています。分析機能を有効にすると、オープンソースチームが問題を特定し、バックログの優先順位付けを行うのに役立ちますので、ぜひ有効にしてください。" + "text": "Homarrは、オープンソースソフトウェアUmamiを使用して匿名化された分析を送信します。 有効にすると、以下が収集されます。Homarrバージョン、データベースタイプ(MySQL/PostgreSQL/SQLite)、Docker/Kubernetesステータス、認証方法、各機能の数。 すべてのデータは匿名で集計されます。個人情報、URL、名前、または識別可能なデータは収集されません。 これにより、オープンソースチームは利用パターンを理解し、開発に優先順位を付けることができます。" }, "widgetData": { "title": "ウィジェットのデータ", @@ -3295,10 +3662,10 @@ } }, "user": { - "title": "", + "title": "ユーザー", "enableGravatar": { - "label": "", - "description": "" + "label": "Gravatar を有効化", + "description": "カスタムアバターが設定されておらず、メールが設定されている場合は、Libavatar/Gravatarからユーザーのアバターにフォールバックします" } }, "search": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "既定の配色設定", "options": { + "auto": "", "light": "ライト", "dark": "ダーク" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Minecraft サーバーの状態" }, + "timetable": { + "label": "タイムテーブル" + }, "iconsUpdater": { "label": "アイコンアップデータ" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "天気" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "翻訳者", "subtitle": "{count} の多くの言語で翻訳を行っている" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "ライブラリ", "subtitle": "{count} 個が Homarr のコードで使用されています" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "ポート" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "グローバルコマンド", "option": { "colorScheme": { + "auto": "", "light": "ライトモードに切り替え", "dark": "ダークモードに切り替え" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "検索エンジン", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/ko.json b/packages/translation/src/lang/ko.json index 0db65af23..868611bd4 100644 --- a/packages/translation/src/lang/ko.json +++ b/packages/translation/src/lang/ko.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "위험한 설정", "noResults": "결과를 찾을 수 없습니다.", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "노트북", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "인터넷에서 콘텐츠를 퍼옵니다. 일부 웹사이트는 액세스를 제한할 수 있습니다.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "지리적 위치 허용" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "포트" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/lt.json b/packages/translation/src/lang/lt.json index dd6419dcd..5b165bb86 100644 --- a/packages/translation/src/lang/lt.json +++ b/packages/translation/src/lang/lt.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "", "noResults": "Rezultatų nerasta", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Užrašai", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "Įterpkite bet kokį turinį iš interneto. Kai kuriose svetainėse prieiga gali būti ribojama.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Leisti nustatyti geografinę buvimo vietą" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Prievadai" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/lv.json b/packages/translation/src/lang/lv.json index 01a890058..762f7bff7 100644 --- a/packages/translation/src/lang/lv.json +++ b/packages/translation/src/lang/lv.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "Bīstamā zona", "noResults": "Nav atrasts neviens rezultāts", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Piezīmes", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "Iegult jebkuru saturu no interneta. Dažas vietnes var ierobežot piekļuvi.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Atļaut ģeogrāfiskās atrašanās vietas noteikšanu" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Rādīt atmiņas informāciju" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/nl.json b/packages/translation/src/lang/nl.json index 6e3aa215a..c8fb6c654 100644 --- a/packages/translation/src/lang/nl.json +++ b/packages/translation/src/lang/nl.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Zoekresultaten openen in nieuw tabblad" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Afbeelding veranderen", @@ -764,7 +777,7 @@ "expired": "Het certificaat is verlopen.", "notYetValid": "Het certificaat is nog niet geldig.", "untrusted": "Het certificaat wordt niet vertrouwd.", - "hostnameMismatch": "" + "hostnameMismatch": "Het certificaat hostname komt niet overeen met de URL." }, "alert": { "permission": { @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Licht", "dark": "Donker" } @@ -1138,6 +1152,9 @@ "dangerZone": "Gevarenzone", "noResults": "Geen resultaten gevonden", "unsavedChanges": "Er zijn niet-opgeslagen wijzigingen!", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "Voorbeeld weergeven", "hide": "Voorbeeld verbergen" @@ -1522,6 +1539,17 @@ "offline": "Offline" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Notitieboek", "description": "Een eenvoudige notitie widget die markdown ondersteunt", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "Elke inhoud van het internet insluiten. Sommige websites kunnen de toegang beperken.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Geolocatie toestaan" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Werkgeheugen info weergeven" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Uptime weergeven" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Stad / postcode", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "Client downloaden", "description": "Geeft je de mogelijkheid om downloads van torrent- en usenet-clients te bekijken en beheren.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Beschrijving verbergen" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "Geen meldingen om weer te geven.", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "Systeembronnen", "description": "CPU, geheugen, schijf en ander hardwaregebruik van je systeem", @@ -2588,6 +2924,7 @@ "option": { "cpu": "Processor", "memory": "Geheugen", + "gpu": "", "network": "Netwerk" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "", "network": "NET", "up": "OMHOOG", "down": "OMLAAG" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Standaard kleurenschema", "options": { + "auto": "", "light": "Licht", "dark": "Donker" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Minecraft server status" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "Icoon updater" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Weer" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Vertalers", "subtitle": "{count} bijdragen aan vertalingen in vele talen" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Bibliotheken", "subtitle": "{count} gebruikt in de code van Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Poorten" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Globale commando's", "option": { "colorScheme": { + "auto": "", "light": "Schakel naar lichte modus", "dark": "Schakel naar donkere modus" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Zoekmachines", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/no.json b/packages/translation/src/lang/no.json index 7d1f17041..224f8c0a0 100644 --- a/packages/translation/src/lang/no.json +++ b/packages/translation/src/lang/no.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Åpne søkeresultater i ny fane" + }, + "ddgBangs": { + "label": "Aktiver DuckDuckGo bangs" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "DuckDuckGo bangs er endret vellykket" + }, + "error": { + "message": "Kan ikke slå av/på DuckDuckGo bangs" + } + } + }, "manageAvatar": { "changeImage": { "label": "Endre bilde", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "Auto", "light": "Lys", "dark": "Mørk" } @@ -1138,6 +1152,9 @@ "dangerZone": "Faresonen", "noResults": "Ingen resultater funnet", "unsavedChanges": "Du har ulagrede endringer!", + "servers": "Servere", + "applications": "Apper", + "services": "Tjenester", "preview": { "show": "Vis forhåndsvisning", "hide": "Skjul forhåndsvisning" @@ -1522,6 +1539,17 @@ "offline": "Offline" } }, + "timetable": { + "name": "Timeplan", + "description": "Viser avgangstid for en stasjon", + "title": "Avganger {station}", + "noStation": "Ingen stasjon valgt", + "option": { + "station": { + "label": "Stasjon" + } + } + }, "notebook": { "name": "Notisbok", "description": "En enkel notatbok widget som støtter markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "Ankermerknad", + "description": "Viser et valgt notat fra anker", + "option": { + "noteId": { + "label": "Notat" + }, + "showTitle": { + "label": "Vis tittel" + }, + "showUpdatedAt": { + "label": "Vis sist oppdatert" + } + }, + "empty": "Velg et notat som skal vises", + "emptyContent": "Dette notatet har ikke innhold", + "notFound": "Notat ikke funnet", + "noNotes": "Fant ingen notater", + "integrationRequired": "Velg en ankerintegrasjon først", + "updatedAt": "Oppdatert {date}", + "untitled": "Uten navn", + "edit": "Rediger", + "save": "Lagre", + "cancel": "Avbryt", + "readOnlyViewer": "Du har seertilgang til dette notatet. Redigering er deaktivert.", + "saveForbidden": "Du har ikke tillatelse til å redigere dette notatet.", + "saveFailed": "Kunne ikke lagre dette notatet. Prøv på nytt." + }, "iframe": { "name": "iFrame", "description": "Bygg inn innhold fra Internett. Noen nettsteder kan begrense adgang.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Tillat geolokalisering" + }, + "allowModals": { + "label": "Tillat modaler" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Vis minneinfo" }, + "gpu": { + "label": "Vis CPU-info" + }, "showUptime": { "label": "Vis oppetid" }, @@ -1960,6 +2022,192 @@ "internalServerError": "Kunne ikke hente containerstatistikk" } }, + "coolify": { + "name": "Coolify", + "description": "Oversikt over din Coolify-instans med servere og apper", + "option": { + "showServers": { + "label": "Vis servere" + }, + "showApplications": { + "label": "Vis applikasjoner" + }, + "showServices": { + "label": "Vis tjenester" + } + }, + "empty": { + "servers": "Ingen server funnet", + "applications": "Ingen applikasjoner funnet", + "services": "Ingen tjenester funnet" + }, + "footer": { + "updated": "Oppdatert {when}" + }, + "error": { + "noIntegration": "Ingen Coolify integrasjon konfigurert", + "internalServerError": "Kunne ikke hente Coolify data" + }, + "server": { + "buildServer": "Bygg" + }, + "instances": { + "title": "Instanser" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Forbedret medieserverovervåking med detaljert strøm- og transkodingsdata", + "option": { + "showStreams": { + "label": "Vis aktive strømmer" + }, + "showStats": { + "label": "Vis statistikksammendrag" + }, + "showRecentActivity": { + "label": "Vis nylig aktivitet" + }, + "showViolations": { + "label": "Vis brudd" + } + }, + "stats": { + "activeStreams": "Aktive strømmninger", + "totalUsers": "Totalt antall brukere", + "transcodes": "Transkoder", + "bandwidth": "Båndbredde" + }, + "streams": { + "empty": "Ingen aktive strømminger", + "user": "Bruker", + "media": "Media", + "state": "Tilstand", + "quality": "Kvalitet", + "device": "Enhet", + "progress": "Fremgang", + "videoDecision": { + "directPlay": "Direkte avspilling", + "transcode": "Transkode", + "directStream": "Direktestrøm" + } + }, + "recentActivity": { + "title": "Nylig aktivitet", + "empty": "Ingen nylig aktivitet", + "watched": "Sett", + "partial": "Delvis" + }, + "violations": { + "title": "Brudd", + "empty": "Ingen nylige brudd", + "rule": "Regel", + "user": "Bruker" + }, + "noSectionsEnabled": "Ingen seksjoner aktivert", + "error": { + "noIntegration": "Ingen Tracearr-integrasjon konfigurert", + "internalServerError": "Kunne ikke hente Tracearr data" + } + }, + "umami": { + "name": "Umami Analytics", + "description": "Vise besøkende statistikk fra din Umami-analyseinstans", + "visitors": "besøkende", + "active": "aktiv", + "pageviews": "sidevisninger", + "visits": "besøk", + "bounceRate": "tilbakesende", + "avgDuration": "gjennomsnitt", + "option": { + "websiteId": { + "label": "Nettsted", + "description": "Velg et nettsted som spores av Umami-instansen din", + "placeholder": "Velg en nettside", + "loading": "Laster inn nettsteder...", + "noWebsites": "Ingen nettsteder ble funnet", + "configureIntegrationFirst": "Koble til en Umami integrasjon først" + }, + "timeFrame": { + "label": "Tidsramme", + "description": "Tidsperiode som skal vise besøkende data for", + "option": { + "today": "I dag", + "24h": "Siste 24 timer", + "7d": "Siste 7 dager", + "30d": "Siste 30 dager", + "month": "Denne måneden", + "lastMonth": "Siste måned" + } + }, + "eventName": { + "label": "Hendelse", + "description": "Vis totale forekomster av en bestemt hendelse", + "placeholder": "Velg en hendelse", + "loading": "Laster inn hendelser...", + "noEvents": "Ingen hendelser funnet", + "none": "Ingen hendelser", + "configureWebsiteFirst": "Velg en nettside først for å laste inn hendelser" + }, + "chartType": { + "label": "Diagramtype", + "description": "Vis stil for diagrammet", + "option": { + "bar": "Søylediagram", + "sparkline": "Minigraf" + } + }, + "chartStyle": { + "label": "Diagramtype", + "description": "Hvordan vise hendelsesserier i diagrammet", + "option": { + "grouped": "Side om side", + "overlay": "Overlegg (delmengde)" + } + }, + "viewMode": { + "label": "Visning", + "description": "Hva skal vises i widgetkroppen", + "option": { + "chart": "Diagram", + "events": "Hendelser diagram", + "topPages": "Toppsider", + "topReferrers": "Topp referenter" + } + }, + "eventNames": { + "label": "Hendelser", + "description": "Velg ett eller flere hendelser i diagrammet", + "placeholder": "Velg en hendelse...", + "loading": "Laster inn hendelser...", + "noEvents": "Ingen hendelser funnet", + "configureWebsiteFirst": "Velg en nettside først for å laste inn hendelser" + }, + "topCount": { + "label": "Gjenstander å vise", + "description": "Antall oppføringer som skal vises (maks 500)" + } + }, + "event": { + "occurrences": "hendelser", + "label": "hendelser" + }, + "topPages": { + "direct": "Direkte" + }, + "topReferrers": { + "direct": "Direkte" + }, + "events": { + "selectPrompt": "Velg hendelser for å diagram" + }, + "error": { + "noIntegration": "Ingen Umami integrasjon konfigurert", + "noWebsite": "Ingen nettsted konfigurert", + "noData": "Ingen data tilgjengelig", + "internalServerError": "Kunne ikke hente Umami data" + } + }, "common": { "location": { "query": "By / Postnummer", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Immich-serverstatistikk", + "description": "Informasjon om din Immich-instans", + "option": { + "showUsers": { + "label": "Vis brukere", + "description": "Vis antall brukere på din instans" + }, + "showPhotos": { + "label": "Vis bilder", + "description": "Vis antall bilder på din instans" + }, + "showVideos": { + "label": "Vis videoer", + "description": "Vis antall videoer på din instans" + }, + "showStorage": { + "label": "Vis lagring", + "description": "Vis total mengde lagringsplass brukt" + } + }, + "users": "Brukere", + "photos": "Bilder", + "videos": "Videoer", + "storage": "Brukt lagringsplass" + }, + "immich-albumCarousel": { + "name": "Immich Album", + "option": { + "albumId": { + "label": "Album ID", + "description": "Dette er en unik ID som refererer til ditt Immich-album. Du kan finne denne ID-en ved å åpne et album og kopiere den unike strengen fra URL-en, for eksempel 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Intervall i sekunder", + "description": "Roter mellom bilder i albumet hvert X. sekund. Må være minst 1. Må være under 3600." + }, + "showPhotoInfo": { + "label": "Vis bildeinformasjon", + "description": "Vis datoen for bildet og gjeldende indeks nederst i lysbildeserien" + } + }, + "description": "Lysbildefremvisning av bilder i ditt Immich-album", + "noAlbumSelected": "Ingen album valgt, rediger widgeten og velg et album", + "noPhotos": "Ingen bilder i dette albumet" + }, "downloads": { "name": "Nedlastings-klient", "description": "Lar deg se og behandle nedlastinger fra både Torrent og Usenet klienter.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Skjul beskrivelse" + }, + "showPosterImage": { + "label": "Vis plakatbilde" } } }, @@ -2575,6 +2872,45 @@ "noItems": "Ingen varsler å vise.", "option": {} }, + "speedtestTracker": { + "name": "Speedtest tracker", + "description": "Viser hastighetstesten i fra din Speedtest Tracker-instans.", + "option": { + "showLatestResult": { + "label": "Vis siste resultat" + }, + "showStats": { + "label": "Vis gjennomsnitt" + }, + "showRecentResults": { + "label": "Vis nylige resultater" + }, + "showPingGraph": { + "label": "Vis ping-graf" + } + }, + "latestResult": "Siste resultat", + "averages": "Gjennomsnitt", + "tests": "{count} tester", + "recentResults": "Nylige resultater", + "recentResultsSpeed": "Hastighet", + "recentResultsPing": "Ping", + "download": "Nedlasting", + "upload": "Opplastning", + "ping": "Ping", + "status": "Status", + "avgDownload": "Snitt nedlasting", + "avgUpload": "Snitt opplasting", + "avgPing": "Snitt ping", + "healthy": "Frisk", + "unhealthy": "Usunn", + "ok": "OK", + "fail": "Feil", + "noSectionsEnabled": "Aktiver minst ett avsnitt i widgetalternativer.", + "error": { + "internalServerError": "Kunne ikke hente hastighetsteste data" + } + }, "systemResources": { "name": "Systemressurser", "description": "CPU, minne, disk og annen maskinvarebruk på systemet ditt", @@ -2588,6 +2924,7 @@ "option": { "cpu": "CPU", "memory": "Minne", + "gpu": "GPU", "network": "Nettverk" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "CPU", "memory": "Minne", + "gpu": "GPU", "network": "NETT", "up": "OPP", "down": "NED" } + }, + "systemDisks": { + "name": "Systemdisker", + "description": "Disk bruk av systemet", + "option": { + "showTemperatureIfAvailable": { + "label": "Vis temperatur hvis tilgjengelig" + }, + "displayMode": { + "label": "Visningsmodus", + "option": { + "percentage": { + "label": "Prosentandel (f.eks. 76%)" + }, + "absolute": { + "label": "Absolutte verdier (f.eks. 800GB / 1TB)" + }, + "free": { + "label": "Prosentandel ledig plass (f.eks. 24% ledig)" + } + } + }, + "showBackgroundBar": { + "label": "Vis bakgrunnsbrukslinje" + } + }, + "status": { + "unhealthy": "Usunn" + } } }, "widgetPreview": { @@ -3240,7 +3607,7 @@ "title": "Statistikk", "general": { "title": "Send anonym brukerdata", - "text": "Homarr vil sende anonymt brukerdata med åpen kildekode programvaren Umami. Det vil aldri samle inn personlig informasjon og følger derfor GDPR & CCPA fullstendig. Vi oppfordrer deg til å aktivere sending av brukerdata da det hjelper teamet vårt å identifisere problemer og sette prioritering." + "text": "Homarr vil sende anonymiserte analyser ved bruk av den åpne programvaren Umami. Når dette er aktivert, samler vi inn: Homarr-versjon, databastype (MySQL/PostgreSQL/SQLite), Docker/Kubernetes-status, aktiverte autentiseringsmetoder, og antallet av hver funksjon. Alle data er anonyme og aggregerte – ingen personlig informasjon, URL-er, navn eller identifiserbare data samles inn. Dette hjelper vårt open source-team med å forstå bruks‑mønstre og prioritere utvikling." }, "widgetData": { "title": "Widget data", @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Standard fargetema", "options": { + "auto": "Auto", "light": "Lys", "dark": "Mørk" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Minecraft serverstatus" }, + "timetable": { + "label": "Timeplan" + }, "iconsUpdater": { "label": "Ikon oppdatering" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Vær" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "Umami Aktive Besøkende" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Oversettere", "subtitle": "{count} bidrar med oversettelser på mange språk" }, + "sponsors": { + "title": "Sponsorer", + "subtitle": "{count} støtter prosjektet økonomisk" + }, "libraries": { "title": "Biblioteker", "subtitle": "{count} brukt i koden til Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Porter" + }, + "host": { + "label": "Vert" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Globale kommandoer", "option": { "colorScheme": { + "auto": "Bytt visningsmodus", "light": "Bytt til lys modus", "dark": "Bytt til mørk modus" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Søkemotorer", + "tipDdgBangs": "Tips: Du kan også bruke DuckDuckGo-bangs her, f.eks. !something", + "bang": { + "searchWithQuery": "Søk etter \"{query}\" med {label}", + "pressEnterToOpen": "Trykk på Enter for å åpne", + "engineSelected": "{label} valgt (!{bang})", + "typeQueryToContinue": "Skriv inn søkeordet for å fortsette", + "emptyBangHint": "Skriv inn en bang, f.eks. !yt, og trykk deretter på mellomrom for å velge" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/pl.json b/packages/translation/src/lang/pl.json index 6c65e2b8c..c93bb30d8 100644 --- a/packages/translation/src/lang/pl.json +++ b/packages/translation/src/lang/pl.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Otwórz wyniki wyszukiwania w nowej karcie" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Zmień obraz", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Jasny", "dark": "Ciemny" } @@ -1138,6 +1152,9 @@ "dangerZone": "Strefa zagrożenia", "noResults": "Nie znaleziono żadnych wyników", "unsavedChanges": "Masz niezapisane zmiany!", + "servers": "Serwery", + "applications": "Aplikacje", + "services": "Usługi", "preview": { "show": "Pokaż podgląd", "hide": "Ukryj podgląd" @@ -1522,6 +1539,17 @@ "offline": "Niedostępny" } }, + "timetable": { + "name": "Rozkład", + "description": "Wyświetla czas odjazdu dla stacji", + "title": "Odjazdy {station}", + "noStation": "Nie wybrano stacji", + "option": { + "station": { + "label": "Stacja" + } + } + }, "notebook": { "name": "Notatnik", "description": "Prosty widżet notatnika obsługujący markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "Notatka z Anchor", + "description": "Wyświetla wybraną notatkę z Anchor", + "option": { + "noteId": { + "label": "Notatka" + }, + "showTitle": { + "label": "Pokaż tytuł" + }, + "showUpdatedAt": { + "label": "Pokaż ostatnią aktualizację" + } + }, + "empty": "Wybierz notatkę do wyświetlenia", + "emptyContent": "Ta notatka nie ma zawartości", + "notFound": "Nie znaleziono notatki", + "noNotes": "Nie znaleziono notatek", + "integrationRequired": "Najpierw wybierz integrację z Anchor", + "updatedAt": "Zaktualizowano {date}", + "untitled": "Bez tytułu", + "edit": "Edytuj", + "save": "Zapisz", + "cancel": "Anuluj", + "readOnlyViewer": "Masz dostęp tylko do odczytu tej notatki. Edycja jest wyłączona.", + "saveForbidden": "Nie masz uprawnień do edycji tej notatki.", + "saveFailed": "Nie udało się zapisać tej notatki. Spróbuj ponownie." + }, "iframe": { "name": "iFrame", "description": "Osadzaj dowolne treści z internetu. Niektóre strony internetowe mogą ograniczać dostęp.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Zezwalaj na geolokalizację" + }, + "allowModals": { + "label": "Zezwól na okna modalne" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Pokaż informacje o pamięci" }, + "gpu": { + "label": "Pokaż informacje o GPU" + }, "showUptime": { "label": "Pokaż czas pracy" }, @@ -1941,25 +2003,211 @@ "description": "Statystyki Twoich kontenerów (ten widżet można dodać tylko z uprawnieniami administratora)", "option": { "enableRowSorting": { - "label": "" + "label": "Włącz sortowanie elementów" }, "defaultSort": { - "label": "", + "label": "👉 Kolumna używana domyślnie do sortowania", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "Nazwa", + "state": "Stan", + "cpuUsage": "Użycie CPU", + "memoryUsage": "Użycie pamięci" } }, "descendingDefaultSort": { - "label": "" + "label": "Odwróć sortowanie" } }, "error": { "internalServerError": "Nie udało się pobrać statystyk kontenerów" } }, + "coolify": { + "name": "Coolify", + "description": "Przegląd instancji Coolify z serwerami i aplikacjami", + "option": { + "showServers": { + "label": "Pokaż serwery" + }, + "showApplications": { + "label": "Pokaż aplikacje" + }, + "showServices": { + "label": "Pokaż usługi" + } + }, + "empty": { + "servers": "Nie znaleziono serwerów", + "applications": "Nie znaleziono aplikacji", + "services": "Nie znaleziono usług" + }, + "footer": { + "updated": "Zaktualizowano {when}" + }, + "error": { + "noIntegration": "Brak skonfigurowanej integracji Coolify", + "internalServerError": "Nie udało się pobrać danych z Coolify" + }, + "server": { + "buildServer": "Build" + }, + "instances": { + "title": "Instancje" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Rozszerzone monitorowanie serwera multimediów z szczegółowymi danymi o strumieniach i transkodowaniu", + "option": { + "showStreams": { + "label": "Pokaż aktywne strumienie" + }, + "showStats": { + "label": "Pokaż podsumowanie statystyk" + }, + "showRecentActivity": { + "label": "Pokaż ostatnią aktywność" + }, + "showViolations": { + "label": "Pokaż naruszenia" + } + }, + "stats": { + "activeStreams": "Aktywne strumienie", + "totalUsers": "Łączna liczba użytkowników", + "transcodes": "Transkodowanie", + "bandwidth": "Przepustowość" + }, + "streams": { + "empty": "Brak aktywnych strumieni", + "user": "Użytkownik", + "media": "Media", + "state": "Status", + "quality": "Jakość", + "device": "Urządzenie", + "progress": "Postęp", + "videoDecision": { + "directPlay": "Direct Play", + "transcode": "Transkodowanie", + "directStream": "Direct Stream" + } + }, + "recentActivity": { + "title": "Ostatnia aktywność", + "empty": "Brak ostatniej aktywności", + "watched": "Obejrzane", + "partial": "Częściowo" + }, + "violations": { + "title": "Naruszenia", + "empty": "Brak ostatnich naruszeń", + "rule": "Reguła", + "user": "Użytkownik" + }, + "noSectionsEnabled": "Brak włączonych sekcji", + "error": { + "noIntegration": "Brak skonfigurowanej integracji Tracearr", + "internalServerError": "Nie udało się pobrać danych z Tracearr" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Miasto / kod pocztowy", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Statystyki serwera Immich", + "description": "Informacje o Twojej instancji Immich", + "option": { + "showUsers": { + "label": "Pokaż użytkowników", + "description": "Pokaż liczbę użytkowników w Twojej instancji" + }, + "showPhotos": { + "label": "Pokaż zdjęcia", + "description": "Pokaż liczbę zdjęć w Twojej instancji" + }, + "showVideos": { + "label": "Pokaż filmy", + "description": "Pokaż liczbę filmów w Twojej instancji" + }, + "showStorage": { + "label": "Pokaż wykorzystanie pamięci", + "description": "Pokaż całkowite wykorzystanie pamięci" + } + }, + "users": "Użytkownicy", + "photos": "Zdjęcia", + "videos": "Filmy", + "storage": "Wykorzystana przestrzeń" + }, + "immich-albumCarousel": { + "name": "Album Immich", + "option": { + "albumId": { + "label": "ID albumu", + "description": "To unikalny identyfikator odnoszący się do Twojego albumu w Immich. Możesz go znaleźć, otwierając album i kopiując unikalny ciąg znaków z adresu URL, np. „a21aca09-9f05-47dc-b1a1-7b53c547226e”." + }, + "rotationIntervalSeconds": { + "label": "Interwał w sekundach", + "description": "Zmieniaj zdjęcia w albumie co X sekund. Wartość musi wynosić co najmniej 1 i mniej niż 3600." + }, + "showPhotoInfo": { + "label": "Pokaż informacje o zdjęciu", + "description": "Wyświetl datę zdjęcia oraz bieżący indeks na dole pokazu slajdów" + } + }, + "description": "Pokaz slajdów zdjęć z Twojego albumu w Immich", + "noAlbumSelected": "Nie wybrano albumu. Edytuj widget i wybierz album", + "noPhotos": "Brak zdjęć w tym albumie" + }, "downloads": { "name": "Klient pobierania", "description": "Pozwala na oglądanie i zarządzanie pobieraniem zarówno przez klientów Torrent, jak i Usenet.", @@ -2306,8 +2600,8 @@ "title": "Ocena stanu zdrowia", "queued": "W kolejce", "status": { - "healthy": "Zdrowy", - "unhealthy": "Niezdrowy" + "healthy": "Dobry", + "unhealthy": "Zły" } }, "panel": { @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Ukryj opis" + }, + "showPosterImage": { + "label": "Pokaż obraz okładki" } } }, @@ -2575,6 +2872,45 @@ "noItems": "Brak powiadomień do wyświetlenia.", "option": {} }, + "speedtestTracker": { + "name": "Speedtest Tracker", + "description": "Wyświetla wyniki testów prędkości z Twojej instancji Speedtest Tracker", + "option": { + "showLatestResult": { + "label": "Pokaż ostatni wynik" + }, + "showStats": { + "label": "Pokaż średnie" + }, + "showRecentResults": { + "label": "Pokaż ostatnie wyniki" + }, + "showPingGraph": { + "label": "Pokaż wykres pingu" + } + }, + "latestResult": "Najnowszy wynik", + "averages": "Średnie", + "tests": "{count} testów", + "recentResults": "Ostatnie wyniki", + "recentResultsSpeed": "Prędkość", + "recentResultsPing": "Ping", + "download": "Pobieranie", + "upload": "Wysyłanie", + "ping": "Ping", + "status": "Status", + "avgDownload": "Średnie pobieranie", + "avgUpload": "Średnie wysyłanie", + "avgPing": "Średni ping", + "healthy": "Dobry", + "unhealthy": "Zły", + "ok": "Ok", + "fail": "Błąd", + "noSectionsEnabled": "Włącz co najmniej jedną sekcję w opcjach widgetu", + "error": { + "internalServerError": "Nie udało się pobrać danych testu prędkości" + } + }, "systemResources": { "name": "Zasoby systemowe", "description": "Wykorzystanie CPU, pamięci, dysku i innych zasobów sprzętowych system", @@ -2588,6 +2924,7 @@ "option": { "cpu": "Procesor", "memory": "Pamięć", + "gpu": "GPU", "network": "Sieć" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "Procesor", "memory": "Pamięć", + "gpu": "GPU", "network": "Sieć", "up": "Aktywny", "down": "Nieaktywny" } + }, + "systemDisks": { + "name": "Dyski systemowe", + "description": "Wykorzystanie dysku w Twoim systemie", + "option": { + "showTemperatureIfAvailable": { + "label": "Pokaż temperaturę, jeśli jest dostępna" + }, + "displayMode": { + "label": "Tryb wyświetlania", + "option": { + "percentage": { + "label": "Procentowo (np. 76%)" + }, + "absolute": { + "label": "Wartości bezwzględne (np. 800 GB / 1 TB)" + }, + "free": { + "label": "Procent wolnego miejsca (np. 24% wolne)" + } + } + }, + "showBackgroundBar": { + "label": "Pokaż pasek wykorzystania w tle" + } + }, + "status": { + "unhealthy": "Zły" + } } }, "widgetPreview": { @@ -3295,10 +3662,10 @@ } }, "user": { - "title": "", + "title": "Użytkownicy", "enableGravatar": { - "label": "", - "description": "" + "label": "Włącz Gravatar", + "description": "Używa awatarów z Libravatar/Gravatar, gdy nie ustawiono własnego awatara i skonfigurowano adres e-mail" } }, "search": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Domyślny schemat kolorów", "options": { + "auto": "", "light": "Jasny", "dark": "Ciemny" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Status serwera Minecraft" }, + "timetable": { + "label": "Harmonogram" + }, "iconsUpdater": { "label": "Aktualizator ikon" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Pogoda" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Tłumacze", "subtitle": "{count} współtworzy tłumaczenia w wielu językach" }, + "sponsors": { + "title": "Sponsorzy", + "subtitle": "{count} wspiera finansowo projekt" + }, "libraries": { "title": "Biblioteki", "subtitle": "{count} używanych w kodzie Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Porty" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Polecenia globalne", "option": { "colorScheme": { + "auto": "", "light": "Przełącz na tryb jasny", "dark": "Przełącz na tryb ciemny" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Wyszukiwarki", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/pt-br.json b/packages/translation/src/lang/pt-br.json new file mode 100644 index 000000000..0e130afac --- /dev/null +++ b/packages/translation/src/lang/pt-br.json @@ -0,0 +1,4935 @@ +{ + "init": { + "step": { + "start": { + "title": "Bem-vindo ao Homarr", + "subtitle": "Vamos começar configurando a sua instância Homarr.", + "description": "Para começar, por favor selecione como você deseja configurar sua instância Homarr.", + "action": { + "scratch": "Começar do zero", + "importOldmarr": "Importe de uma instância do Homarr anterior a 1.0" + } + }, + "import": { + "title": "Importar dados", + "subtitle": "Você pode importar dados de uma instância existente do Homarr.", + "dropzone": { + "title": "Arraste o arquivo ZIP aqui ou clique para procurar", + "description": "O arquivo ZIP enviado será processado e você poderá selecionar o que deseja importar" + }, + "fileInfo": { + "action": { + "change": "Alterar arquivo" + } + }, + "importSettings": { + "title": "Importar configurações", + "description": "Configure o comportamento da importação" + }, + "boardSelection": { + "title": "{count} painéis encontrados", + "description": "Escolha todos os painéis com o tamanho que você deseja importar", + "action": { + "selectAll": "Selecionar todos", + "unselectAll": "Desmarcar Todos" + } + }, + "summary": { + "title": "Resumo da importação", + "description": "No resumo abaixo você pode ver o que será importado", + "action": { + "import": "Confirmar a importação e continuar" + }, + "entities": { + "apps": "Aplicativos", + "boards": "Painéis", + "integrations": "Integrações", + "credentialUsers": "Usuários credenciados" + } + }, + "tokenModal": { + "title": "Insira o token de importação", + "field": { + "token": { + "label": "Token", + "description": "Insira o token de importação mostrado em sua instância homarr anterior" + } + }, + "notification": { + "error": { + "title": "Token inválido", + "message": "O token que você inseriu é inválido" + } + } + } + }, + "user": { + "title": "Usuário Administrador", + "subtitle": "Especifique as credenciais para seu usuário administrador.", + "notification": { + "success": { + "title": "Usuário criado", + "message": "O usuário foi criado com sucesso" + }, + "error": { + "title": "Falha ao criar usuário" + } + } + }, + "group": { + "title": "Grupo externo", + "subtitle": "Especifique o grupo que deve ser usado para usuários externos.", + "form": { + "name": { + "label": "Nome do grupo", + "description": "O nome tem que coincidir com o grupo administrador do provedor externo" + } + } + }, + "settings": { + "title": "Configurações", + "subtitle": "Definir as configurações do servidor." + }, + "finish": { + "title": "Concluir configuração", + "subtitle": "Você está pronto para começar!", + "description": "Você concluiu com sucesso o processo de configuração. Agora você pode começar a usar o Homarr. Selecione sua próxima ação:", + "action": { + "goToBoard": "Ir para o painel {name}", + "createBoard": "Crie seu primeiro painel", + "inviteUser": "Convidar outros usuários", + "docs": "Ler a documentação" + } + } + }, + "backToStart": "Voltar ao início" + }, + "user": { + "title": "Usuários", + "name": "Usuário", + "page": { + "login": { + "title": "Acesse a sua conta", + "subtitle": "Bem-vindo(a) de volta! Por favor, insira suas credenciais" + }, + "invite": { + "title": "Junte-se ao Homarr", + "subtitle": "Bem-vindo ao Homarr! Por favor, crie sua conta", + "description": "Você foi convidado(a) por {username}" + }, + "init": { + "title": "Nova instalação do Homarr", + "subtitle": "Por favor, crie o usuário administrador inicial" + } + }, + "field": { + "email": { + "label": "E-mail", + "verified": "Verificado" + }, + "username": { + "label": "Usuário" + }, + "password": { + "label": "Senha", + "requirement": { + "length": "Inclua pelo menos 8 caracteres", + "lowercase": "Inclui letras minúsculas", + "uppercase": "Inclui letras maiúsculas", + "number": "Inclui número", + "special": "Inclua um caractere especial" + } + }, + "passwordConfirm": { + "label": "Confirmar senha" + }, + "previousPassword": { + "label": "Senha anterior" + }, + "homeBoard": { + "label": "Quadro inicial" + }, + "pingIconsEnabled": { + "label": "Usar ícone para pings" + }, + "defaultSearchEngine": { + "label": "Mecanismo de pesquisa padrão" + }, + "openSearchInNewTab": { + "label": "Abrir resultados da busca em uma nova guia" + }, + "ddgBangs": { + "label": "" + } + }, + "error": { + "usernameTaken": "Nome de usuário já em uso" + }, + "action": { + "login": { + "label": "Login", + "labelWith": "Iniciar sessão com {provider}", + "notification": { + "success": { + "title": "Início de sessão bem-sucedido", + "message": "Agora você está conectado" + }, + "error": { + "title": "Falha ao iniciar sessão", + "message": "Seu acesso falhou" + } + }, + "forgotPassword": { + "label": "Esqueceu sua senha?", + "description": "Um administrador pode usar o seguinte comando para redefinir sua senha:" + } + }, + "register": { + "label": "Criar conta", + "notification": { + "success": { + "title": "Conta criada", + "message": "Por favor, entre para continuar" + }, + "error": { + "title": "Criação da conta falhou", + "message": "Sua conta não pode ser criada" + } + } + }, + "create": "Criar usuário", + "changePassword": { + "label": "Alterar senha", + "notification": { + "success": { + "message": "Senha alterada com sucesso" + }, + "error": { + "message": "Não é possível alterar a senha" + } + } + }, + "changeHomeBoard": { + "notification": { + "success": { + "message": "Quadro inicial alterado com sucesso" + }, + "error": { + "message": "Não foi possível alterar o painel inicial" + } + } + }, + "changeSearchPreferences": { + "notification": { + "success": { + "message": "Preferências de busca alteradas com sucesso" + }, + "error": { + "message": "Não foi possível alterar as preferências de busca" + } + } + }, + "changeFirstDayOfWeek": { + "notification": { + "success": { + "message": "Primeiro dia da semana alterado com sucesso" + }, + "error": { + "message": "Não foi possível alterar o primeiro dia da semana" + } + } + }, + "changePingIconsEnabled": { + "notification": { + "success": { + "message": "Ícones de ping alterados com sucesso" + }, + "error": { + "message": "Não foi possível alternar ícones de ping" + } + } + }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, + "manageAvatar": { + "changeImage": { + "label": "Alterar imagem", + "notification": { + "success": { + "message": "A imagem foi alterada com sucesso" + }, + "error": { + "message": "Não é possível alterar a imagem" + }, + "toLarge": { + "title": "A imagem é muito grande", + "message": "O tamanho máximo da imagem é {size}" + } + } + }, + "removeImage": { + "label": "Remover imagem", + "confirm": "Tem certeza de que deseja remover esta imagem?", + "notification": { + "success": { + "message": "Imagem removida com sucesso" + }, + "error": { + "message": "Não é possível remover a imagem" + } + } + } + }, + "editProfile": { + "notification": { + "success": { + "message": "Perfil atualizado com sucesso" + }, + "error": { + "message": "Não foi possível atualizar o perfil" + } + } + }, + "delete": { + "label": "Excluir usuário permanentemente", + "description": "Exclui esse usuário incluindo suas preferências. Isso não removerá nenhum painel. O usuário não será notificado.", + "confirm": "Tem certeza que deseja excluir o usuário {username} e suas preferências?" + }, + "select": { + "label": "Selecionar usuário", + "notFound": "Nenhum usuário encontrado" + }, + "transfer": { + "label": "Selecionar novo proprietário" + } + } + }, + "group": { + "title": "Grupos", + "name": "Grupo", + "search": "Encontrar um grupo", + "field": { + "name": "Nome", + "members": "Membros", + "homeBoard": { + "label": "Quadro inicial", + "description": "Somente painéis acessíveis ao grupo podem ser selecionados" + }, + "mobileBoard": { + "label": "Quadro para celular", + "description": "Somente painéis acessíveis ao grupo podem ser selecionados" + } + }, + "permission": { + "admin": { + "title": "Administrador", + "item": { + "admin": { + "label": "Administrador", + "description": "Membros com essa permissão têm acesso total a todos os recursos e configurações" + } + } + }, + "app": { + "title": "Aplicativos", + "item": { + "create": { + "label": "Criar aplicativo", + "description": "Permitir que membros criem aplicativos" + }, + "use-all": { + "label": "Usar todas aplicações", + "description": "Permitir que os membros adicionem qualquer aplicativo aos seus painéis" + }, + "modify-all": { + "label": "Modificar todos os aplicativos", + "description": "Permitir que membros modifiquem todos os aplicativos" + }, + "full-all": { + "label": "Acesso completo a aplicativos", + "description": "Permitir que membros gerenciem, usem e excluam qualquer aplicativo" + } + } + }, + "board": { + "title": "Placas", + "item": { + "create": { + "label": "Criar painel", + "description": "Permitir que membros criem painéis" + }, + "view-all": { + "label": "Ver todos os painéis", + "description": "Permitir que membros visualizem todos os painéis" + }, + "modify-all": { + "label": "Modificar todos os painéis", + "description": "Permitir que membros modifiquem todos os painéis (Não inclui o controle de acesso e a zona de perigo)" + }, + "full-all": { + "label": "Acesso total ao painel", + "description": "Permitir que membros vejam, modifiquem e deletem todos os painéis (Incluindo o controle de acesso e a zona de perigo)" + } + } + }, + "integration": { + "title": "Integrações", + "item": { + "create": { + "label": "Criar integração", + "description": "Permitir que membros criem integrações" + }, + "use-all": { + "label": "Usar todas as integrações", + "description": "Permitir que membros adicionem qualquer integração aos seus painéis" + }, + "interact-all": { + "label": "Interagir com qualquer integração", + "description": "Permitir que membros interajam com qualquer integração" + }, + "full-all": { + "label": "Acesso total às integrações", + "description": "Permitir que membros gerenciem, usem e interajam com qualquer integração" + } + } + }, + "media": { + "title": "Mídias", + "item": { + "upload": { + "label": "Adicionar Mídia", + "description": "Permitir que membros adicionem mídias" + }, + "view-all": { + "label": "Visualizar todas as mídias", + "description": "Permitir que membros visualizem todas as mídias" + }, + "full-all": { + "label": "Acesso total às mídias", + "description": "Permitir que membros gerenciem e deletem qualquer mídia" + } + } + }, + "other": { + "title": "Outras", + "item": { + "view-logs": { + "label": "Visualizar registros", + "description": "Permitir que os membros visualizem os registros" + } + } + }, + "search-engine": { + "title": "Mecanismos de busca", + "item": { + "create": { + "label": "Criar mecanismos de busca", + "description": "Permitir que os membros criem mecanismos de busca" + }, + "modify-all": { + "label": "Modificar todos os mecanismos de busca", + "description": "Permitir que membros modifiquem todos os mecanismos de busca" + }, + "full-all": { + "label": "Acesso total às ferramentas de busca", + "description": "Permitir que membros modifiquem e deletem qualquer ferramenta de busca" + } + } + } + }, + "memberNotice": { + "mixed": "Alguns membros são de provedores externos e não podem ser gerenciados aqui", + "external": "Todos os membros são de provedores externos e não podem ser gerenciados aqui" + }, + "reservedNotice": { + "message": "Esse grupo é reservado para uso do sistema e restringe algumas ações. " + }, + "action": { + "create": { + "label": "Novo grupo", + "notification": { + "success": { + "message": "O grupo foi criado com sucesso" + }, + "error": { + "message": "Não foi possível criar o grupo" + } + } + }, + "transfer": { + "label": "Transferir propriedade", + "description": "Transferir propriedade deste grupo para outro usuário.", + "confirm": "Tem certeza de que deseja transferir a propriedade do grupo {name} para {username}?", + "notification": { + "success": { + "message": "Grupo {group} transferido para {user} com sucesso" + }, + "error": { + "message": "Não foi possível transferir a propriedade" + } + } + }, + "addMember": { + "label": "Adicionar membro" + }, + "removeMember": { + "label": "Remover membro", + "confirm": "Você tem certeza que deseja remover {user} desse grupo?" + }, + "delete": { + "label": "Deletar grupo", + "description": "Uma vez deletado o grupo não há como reverter. Tenha cuidado.", + "confirm": "Você tem certeza que deseja deletar o grupo {name}?", + "notification": { + "success": { + "message": "Grupo {name} deletado com sucesso" + }, + "error": { + "message": "Não foi possível deletar o grupo {name}" + } + } + }, + "changePermissions": { + "notification": { + "success": { + "title": "Permissões salvas", + "message": "Permissões foram salvas com sucesso" + }, + "error": { + "title": "Permissões não salvas", + "message": "As permissões não foram salvas" + } + } + }, + "update": { + "notification": { + "success": { + "message": "O grupo {name} foi salvo com sucesso" + }, + "error": { + "message": "Não é possível salvar o grupo {name}" + } + } + }, + "select": { + "label": "Selecionar grupo", + "notFound": "Nenhum grupo encontrado" + }, + "settings": { + "board": { + "notification": { + "success": { + "title": "Configurações salvas", + "message": "As configurações do painel foram salvas com sucesso" + }, + "error": { + "title": "Falha ao salvar configurações", + "message": "Não foi possível salvar as configurações do painel" + } + } + } + }, + "changePosition": { + "notification": { + "success": { + "message": "Posição alterada com sucesso" + }, + "error": { + "message": "Não é possível alterar a posição" + } + } + } + }, + "defaultGroup": { + "name": "Grupo padrão", + "description": "{name} — Todos os usuários conectados" + } + }, + "app": { + "search": "Encontre um aplicativo", + "page": { + "list": { + "title": "Aplicativos", + "noResults": { + "title": "Ainda não há aplicativos disponíveis", + "action": "Crie seu primeiro aplicativo" + } + }, + "create": { + "title": "Novo Aplicativo", + "notification": { + "success": { + "title": "Criado com sucesso", + "message": "O aplicativo foi criado com sucesso" + }, + "error": { + "title": "Falha ao criar", + "message": "Não foi possível criar o aplicativo" + } + } + }, + "edit": { + "title": "Editar aplicativo", + "notification": { + "success": { + "title": "Mudanças aplicadas com sucesso", + "message": "O aplicativo foi salvo com sucesso" + }, + "error": { + "title": "Não foi possível aplicar as alterações", + "message": "O aplicativo não pôde ser salvo" + } + } + }, + "delete": { + "title": "Deletar aplicativo", + "message": "Tem certeza que deseja excluir o aplicativo {name}?", + "notification": { + "success": { + "title": "Exclusão bem-sucedida", + "message": "O aplicativo foi excluído com sucesso" + }, + "error": { + "title": "Falha na exclusão", + "message": "Não foi possível excluir o aplicativo" + } + } + } + }, + "field": { + "name": { + "label": "Nome" + }, + "description": { + "label": "Descrição" + }, + "url": { + "label": "URL" + }, + "useDifferentUrlForPing": { + "checkbox": { + "label": "Use uma URL diferente para o ping", + "description": "Útil se o Homarr puder acessar diretamente usando um hostname interno ou rede para evitar uso de largura de banda do provedor" + } + } + }, + "action": { + "select": { + "label": "Selecionar aplicativo", + "notFound": "Nenhum aplicativo encontrado", + "search": "Busque por um aplicativo", + "noResults": "Sem resultados", + "action": "Selecionar {app}", + "title": "Selecione um aplicativo para adicioná-lo neste painel" + }, + "create": { + "title": "Criar aplicativo", + "description": "Criar um aplicativo", + "action": "Abrir criação de aplicativo" + }, + "add": "Adicione um aplicativo" + } + }, + "integration": { + "page": { + "list": { + "title": "Integrações", + "search": "Buscar integrações", + "noResults": { + "title": "Ainda não existem integrações" + } + }, + "create": { + "title": "Nova integração {name}", + "notification": { + "success": { + "title": "Criação bem-sucedida", + "message": "A integração foi criada com sucesso" + }, + "error": { + "title": "A criação falhou", + "message": "A integração não pôde ser criada" + } + }, + "app": { + "option": { + "existing": { + "title": "Existente", + "label": "Selecione um aplicativo existente" + }, + "new": { + "title": "Novo", + "url": { + "label": "URL da aplicação", + "description": "A URL do aplicativo será aberta quando acessada a partir do painel de controle" + } + } + } + } + }, + "edit": { + "title": "Editar integração {name}", + "notification": { + "success": { + "title": "Mudanças aplicadas com sucesso", + "message": "A integração foi salva com sucesso" + }, + "error": { + "title": "Não foi possível aplicar as alterações", + "message": "A integração não pôde ser salva" + } + }, + "app": { + "action": { + "add": "Vincular um aplicativo", + "remove": "Desvincular", + "select": "Selecione um aplicativo para vincular" + } + } + }, + "delete": { + "title": "Excluir integração", + "message": "Tem certeza que deseja excluir a integração {name}?", + "notification": { + "success": { + "title": "Exclusão bem-sucedida", + "message": "A integração foi excluída com sucesso" + }, + "error": { + "title": "Falha na exclusão", + "message": "Não foi possível deletar a integração" + } + } + } + }, + "field": { + "name": { + "label": "Nome" + }, + "url": { + "label": "URL" + }, + "attemptSearchEngineCreation": { + "label": "Criar mecanismo de busca", + "description": "A integração \"{kind}\" pode ser usada com os mecanismos de busca. Marque isso para configurar automaticamente o mecanismo de busca." + }, + "app": { + "sectionTitle": "Aplicativo vinculado" + }, + "createApp": { + "label": "Criar aplicativo", + "description": "Crie um aplicativo com o mesmo nome e ícone da integração. Deixe o campo de entrada abaixo vazio para criar o aplicativo com a URL de integração." + }, + "appHref": { + "placeholder": "URL de aplicativo personalizada" + } + }, + "action": { + "create": "Nova integração" + }, + "testConnection": { + "action": { + "create": "Testar conexão e criar", + "edit": "Testar conexão e salvar" + }, + "error": { + "common": { + "cause": { + "title": "Causa com mais detalhes" + } + }, + "unknown": { + "title": "Erro desconhecido", + "description": "Ocorreu um erro desconhecido, abra a causa abaixo para ver mais detalhes" + }, + "parse": { + "title": "Erro de análise", + "description": "A resposta não pôde ser analisada. Verifique se a URL está apontando para a URL base do serviço." + }, + "authorization": { + "title": "Erro de autorização", + "description": "A solicitação não foi autorizada. Verifique se as credenciais estão corretas e se você as configurou com permissões suficientes." + }, + "statusCode": { + "title": "Erro de resposta", + "description": "Resposta inesperada recebida: {statusCode} ({reason}) de . Verifique se a URL está apontando para a URL base da integração.", + "otherDescription": "Resposta inesperada recebida: {statusCode} de . Verifique se a URL está apontando para a URL base da integração.", + "reason": { + "badRequest": "Solicitação inválida", + "notFound": "Não encontrado", + "tooManyRequests": "Muitas solicitações", + "internalServerError": "Erro interno do servidor", + "serviceUnavailable": "Serviço indisponível", + "gatewayTimeout": "Tempo esgotado do gateway" + } + }, + "certificate": { + "title": "Erro de certificado", + "description": { + "expired": "O certificado expirou.", + "notYetValid": "O certificado ainda não é válido.", + "untrusted": "O certificado não é confiável.", + "hostnameMismatch": "O hostname do certificado não corresponde à URL." + }, + "alert": { + "permission": { + "title": "Permissões insuficientes", + "message": "Você não tem permissão para confiar ou carregar certificados. Entre em contato com o seu administrador para carregar o certificado raiz necessário." + }, + "hostnameMismatch": { + "title": "Incompatibilidade de hostname", + "message": "O hostname no certificado não corresponde ao hostname ao qual você está se conectando. Isso pode indicar um risco de segurança, mas você ainda pode optar por confiar neste certificado." + }, + "extract": { + "title": "Falha na extração do certificado CA", + "message": "Apenas certificados autoassinados sem uma cadeia podem ser buscados automaticamente. Se você estiver usando um certificado autoassinado, certifique-se de fazer upload do certificado CA manualmente. Você pode encontrar instruções sobre como fazer isso em ." + } + }, + "action": { + "retry": { + "label": "Tentar criação novamente" + }, + "trust": { + "label": "Confiar no certificado" + }, + "upload": { + "label": "Enviar certificado" + } + }, + "hostnameMismatch": { + "confirm": { + "title": "Confiar na incompatibilidade de hostname", + "message": "Tem certeza de que deseja confiar no certificado com incompatibilidade de hostname?" + }, + "notification": { + "success": { + "title": "Certificado confiável", + "message": "Hostname adicionado à lista de certificados confiáveis" + }, + "error": { + "title": "Falha ao confiar no certificado", + "message": "Não foi possível confiar no certificado com incompatibilidade de hostname" + } + } + }, + "selfSigned": { + "confirm": { + "title": "Confiar no certificado autoassinado", + "message": "Tem certeza de que deseja confiar neste certificado autoassinado?" + }, + "notification": { + "success": { + "title": "Certificado confiável", + "message": "Adicionar certificado a lista de certificados confiáveis" + }, + "error": { + "title": "Falha ao confiar no certificado", + "message": "Falha ao adicionar certificado à lista de certificados confiáveis" + } + } + }, + "details": { + "title": "Detalhes", + "description": "Revise as informações do certificado antes de decidir confiar nele.", + "content": { + "action": "Exibir conteúdo", + "title": "Certificado PEM" + } + } + }, + "request": { + "title": "Erro de solicitação", + "description": { + "connection": { + "hostUnreachable": "O servidor não pôde ser alcançado. Isso geralmente significa que o host está offline ou inacessível da sua rede.", + "networkUnreachable": "A rede está inacessível. Verifique sua conexão com a internet ou configuração de rede.", + "refused": "O servidor recusou a conexão. Ele pode não estar em execução ou está rejeitando solicitações na porta especificada.", + "reset": "A conexão foi fechada inesperadamente pelo servidor. Isso pode acontecer se o servidor estiver instável ou for reiniciado." + }, + "dns": { + "notFound": "Não foi possível encontrar o endereço do servidor. Verifique se há erros de digitação ou nomes de domínio inválidos na URL.", + "timeout": "A consulta DNS expirou. Isso pode ser um problema temporário—tente novamente em alguns instantes.", + "noAnswer": "O servidor DNS não retornou uma resposta válida. O domínio pode existir, mas não possui registros válidos." + }, + "timeout": { + "aborted": "A solicitação foi abortada antes de ser concluída. Isso pode ser devido a uma ação do usuário ou tempo limite do sistema.", + "timeout": "A solicitação demorou muito para ser concluída e expirou. Verifique sua rede ou tente novamente mais tarde." + } + } + } + }, + "alertNotice": "O botão Salvar é habilitado após o estabelecimento de uma conexão bem-sucedida", + "notification": { + "success": { + "title": "Conexão bem-sucedida", + "message": "A conexão foi estabelecida com sucesso" + }, + "invalidUrl": { + "title": "URL inválido", + "message": "A URL é inválida" + }, + "secretNotDefined": { + "title": "Credenciais ausentes", + "message": "Nem todas as credenciais foram fornecidas" + }, + "invalidCredentials": { + "title": "Credenciais inválidas", + "message": "As credenciais são inválidas" + }, + "commonError": { + "title": "Falha na conexão", + "message": "A conexão não pôde ser estabelecida" + }, + "badRequest": { + "title": "Solicitação inválida", + "message": "A solicitação estava malformada" + }, + "unauthorized": { + "title": "Não autorizado", + "message": "Credenciais provavelmente incorretas" + }, + "forbidden": { + "title": "Proibido", + "message": "Provavelmente faltam permissões" + }, + "notFound": { + "title": "Não encontrado", + "message": "Provavelmente URL ou caminho incorreto" + }, + "internalServerError": { + "title": "Erro interno do servidor", + "message": "O servidor encontrou um erro" + }, + "serviceUnavailable": { + "title": "Serviço indisponível", + "message": "O servidor está indisponível no momento" + }, + "connectionAborted": { + "title": "Conexão abortada", + "message": "A conexão foi abortada" + }, + "domainNotFound": { + "title": "Domínio não encontrado", + "message": "O domínio não pôde ser encontrado" + }, + "connectionRefused": { + "title": "Conexão recusada", + "message": "A conexão foi recusada" + }, + "invalidJson": { + "title": "JSON inválido", + "message": "A resposta não é um JSON válido" + }, + "wrongPath": { + "title": "Caminho incorreto", + "message": "O caminho provavelmente não está correto" + }, + "tooManyRequests": { + "title": "Muitas solicitações em um curto período", + "message": "Houve muitas requisições. Você provavelmente está sendo limitado por taxa ou rejeitado pelo sistema de destino" + } + } + }, + "secrets": { + "title": "Secrets", + "lastUpdated": "Última atualização em {date}", + "notSet": { + "label": "Nenhum valor definido", + "tooltip": "Esta credencial obrigatória ainda não foi definida" + }, + "secureNotice": "Esta credencial não pode ser recuperada após a criação", + "reset": { + "title": "Redefinir credencial", + "message": "Tem certeza de que deseja redefinir esta credencial?" + }, + "noSecretsRequired": { + "segmentTitle": "Sem credenciais", + "text": "Nenhuma credencial necessária para esta integração" + }, + "kind": { + "username": { + "label": "Usuário", + "newLabel": "Novo nome de usuário" + }, + "apiKey": { + "label": "Chave de API", + "newLabel": "Nova chave de API" + }, + "password": { + "label": "Senha", + "newLabel": "Nova senha" + }, + "tokenId": { + "label": "Token ID", + "newLabel": "Novo ID de token" + }, + "realm": { + "label": "Realm", + "newLabel": "Novo realm" + }, + "personalAccessToken": { + "label": "Token de acesso pessoal", + "newLabel": "Novo token de acesso pessoal" + }, + "topic": { + "label": "Tópico", + "newLabel": "Novo tópico" + }, + "url": { + "label": "URL", + "newLabel": "Nova URL" + }, + "opnsenseApiKey": { + "label": "Chave de API (Key)", + "newLabel": "Nova Chave de API (Key)" + }, + "opnsenseApiSecret": { + "label": "Chave de API (Key)", + "newLabel": "Nova Chave de API (Key)" + }, + "githubAppId": { + "label": "ID do Aplicativo", + "newLabel": "Novo ID de Aplicativo" + }, + "githubInstallationId": { + "label": "ID de instalação", + "newLabel": "Novo ID de instalação" + }, + "privateKey": { + "label": "Chave privada", + "newLabel": "Nova chave privada" + } + } + }, + "permission": { + "use": "Selecionar integrações em itens", + "interact": "Interagir com integrações", + "full": "Acesso completo à integração" + } + }, + "media": { + "plural": "Mídias", + "search": "Buscar uma mídia", + "field": { + "name": "Nome", + "size": "Tamanho", + "creator": "Criador" + }, + "action": { + "upload": { + "label": "Enviar mídia", + "file": "Selecionar arquivo", + "notification": { + "success": { + "message": "A mídia foi carregada com sucesso" + }, + "error": { + "message": "Não foi possível carregar a mídia" + } + } + }, + "delete": { + "label": "Excluir mídia", + "description": "Tem certeza que deseja deletar a mídia ?", + "notification": { + "success": { + "message": "A mídia foi excluída com sucesso" + }, + "error": { + "message": "Não foi possível excluir a mídia" + } + } + }, + "copy": { + "label": "Copiar URL" + }, + "open": { + "label": "Abrir mídia" + } + } + }, + "common": { + "success": "Sucesso", + "beta": "Beta", + "error": "Erro", + "action": { + "add": "Adicionar", + "apply": "Aplicar", + "backToOverview": "Voltar à visão geral", + "change": "Alterar", + "create": "Criar", + "createAnother": "Criar e recomeçar", + "edit": "Editar", + "import": "Importar", + "insert": "Inserir", + "remove": "Excluir", + "save": "Salvar", + "saveChanges": "Salvar alterações", + "cancel": "Cancelar", + "delete": "Apagar", + "discard": "Descartar", + "close": "Fechar", + "confirm": "Confirme", + "continue": "Continuar", + "previous": "Anterior", + "next": "Próximo", + "checkoutDocs": "Confira a documentação", + "checkLogs": "Verifique os logs para mais detalhes", + "tryAgain": "Tente novamente", + "loading": "Carregando" + }, + "here": "aqui", + "iconPicker": { + "label": "URL do ícone", + "header": "Digite o nome ou os objetos para filtrar os ícones... O Homarr pesquisará {countIcons} ícones para você." + }, + "colorScheme": { + "options": { + "auto": "", + "light": "Claro", + "dark": "Escuro" + } + }, + "information": { + "min": "Mínimo", + "max": "Máximo", + "days": "Dias", + "hours": "Horas", + "minutes": "Minutos" + }, + "notification": { + "create": { + "success": "Criação realizada com sucesso", + "error": "Criação falhou" + }, + "delete": { + "success": "Exclusão realizada com sucesso", + "error": "Exclusão falhou" + }, + "update": { + "success": "Mudanças aplicadas com sucesso", + "error": "Não foi possível aplicar as mudanças" + }, + "transfer": { + "success": "Transferência realizada com sucesso", + "error": "Transferência falhou" + } + }, + "multiSelect": { + "placeholder": "Selecione um ou mais valores" + }, + "multiText": { + "placeholder": "Adicione mais valores", + "addLabel": "Adicionar {value}" + }, + "select": { + "placeholder": "Selecionar um valor", + "badge": { + "recommended": "Recomendado" + } + }, + "userAvatar": { + "menu": { + "switchToDarkMode": "Alternar para o modo escuro", + "switchToLightMode": "Alternar para o modo claro", + "management": "Gerenciamento", + "preferences": "Suas preferências", + "logout": "Sair", + "login": "“Login”", + "homeBoard": "Seu painel inicial", + "loggedOut": "Sessão encerrada", + "updateAvailable": "{countUpdates} atualizações disponíveis: {tag}" + } + }, + "dangerZone": "Zona de risco", + "noResults": "Nenhum resultado encontrado", + "unsavedChanges": "Você tem alterações não salvas!", + "servers": "Servidores", + "applications": "Aplicativos", + "services": "Serviços", + "preview": { + "show": "Exibir visualização", + "hide": "Ocultar visualização" + }, + "zod": { + "errors": { + "default": "Esse campo é inválido", + "required": "Este campo é obrigatório", + "string": { + "startsWith": "Esse campo deve começar com {startsWith}", + "endsWith": "Esse campo deve terminar com {endsWith}", + "includes": "Esse campo deve incluir {includes}", + "invalidEmail": "Este campo deve ser um e-mail válido" + }, + "tooSmall": { + "string": "Esse campo deve ter pelo menos {minimum} caracteres", + "number": "Esse campo deve ser maior ou igual a {minimum}" + }, + "tooBig": { + "string": "Esse campo deve ter no máximo {maximum} caracteres", + "number": "Esse campo deve ser menor ou igual a {maximum}" + }, + "custom": { + "passwordsDoNotMatch": "Senhas não coincidem", + "passwordRequirements": "A senha não atende aos requisitos", + "boardAlreadyExists": "Já existe um painel com este nome", + "invalidFileType": "Formato de arquivo inválido, esperado {expected}", + "invalidFileName": "Nome de arquivo inválido", + "fileTooLarge": "O arquivo é muito grande, o tamanho máximo é {maxSize}", + "invalidConfiguration": "Configuração inválida", + "groupNameTaken": "Nome de grupo já em uso" + } + } + }, + "unit": { + "speed": { + "kilometersPerHour": "km/h", + "milesPerHour": "mph" + } + } + }, + "section": { + "dynamic": { + "action": { + "create": "Nova seção dinâmica", + "remove": "Remover seção dinâmica" + }, + "option": { + "title": { + "label": "Título" + }, + "customCssClasses": { + "label": "Classes CSS customizadas" + }, + "borderColor": { + "label": "Cor da borda" + } + }, + "remove": { + "title": "Remover seção dinâmica", + "message": "Tem certeza de que deseja remover esta seção dinâmica? Os itens serão movidos para o mesmo local na seção pai." + } + }, + "category": { + "field": { + "name": { + "label": "Nome" + } + }, + "action": { + "create": "Nova categoria", + "edit": "Renomear categoria", + "remove": "Remover categoria", + "moveUp": "Subir", + "moveDown": "Mover para baixo", + "createAbove": "Nova categoria acima", + "createBelow": "Nova categoria abaixo", + "openAllInNewTabs": "Abrir tudo em abas" + }, + "create": { + "title": "Nova categoria", + "submit": "Adicionar categoria" + }, + "remove": { + "title": "Remover categoria", + "message": "Tem certeza que deseja deletar a categoria {name}?" + }, + "edit": { + "title": "Renomear categoria", + "submit": "Renomear categoria" + }, + "menu": { + "label": { + "create": "Nova categoria", + "changePosition": "Mudar de posição" + } + }, + "openAllInNewTabs": { + "title": "Abrir tudo em abas", + "text": "Alguns navegadores podem bloquear a abertura em massa de abas por motivos de segurança. O Homarr não conseguiu abrir todas as janelas porque seu navegador bloqueou esta ação. Por favor, permita \"Abrir janelas pop-up\" e tente novamente." + } + } + }, + "item": { + "action": { + "create": "Novo item", + "import": "Importar item", + "edit": "Editar item", + "moveResize": "Mover / redimensionar item", + "duplicate": "Duplicar item", + "remove": "Remover item" + }, + "menu": { + "label": { + "settings": "Configurações" + } + }, + "create": { + "title": "Escolha o item a adicionar", + "search": "Filtrar itens", + "addToBoard": "Adicionar ao painel" + }, + "moveResize": { + "title": "Mover / redimensionar item", + "field": { + "width": { + "label": "Largura" + }, + "height": { + "label": "Altura" + }, + "xOffset": { + "label": "Deslocamento X" + }, + "yOffset": { + "label": "Deslocamento Y" + } + } + }, + "edit": { + "title": "Editar item", + "advancedOptions": { + "label": "Opções avançadas", + "title": "Opções avançadas de itens" + }, + "field": { + "integrations": { + "label": "Integrações" + }, + "title": { + "label": "Título" + }, + "customCssClasses": { + "label": "Classes CSS personalizadas" + }, + "borderColor": { + "label": "Cor da borda" + } + } + }, + "remove": { + "title": "Remover item", + "message": "Tem certeza que deseja remover esse item?" + } + }, + "widget": { + "app": { + "name": "Aplicativo", + "description": "Incorpora um aplicativo no quadro.", + "option": { + "appId": { + "label": "Escolher aplicativo" + }, + "openInNewTab": { + "label": "Abrir em nova guia" + }, + "showTitle": { + "label": "Exibir o nome do aplicativo" + }, + "pingEnabled": { + "label": "Habilitar verificação de status" + }, + "layout": { + "label": "Layout", + "option": { + "row": "Horizontal", + "row-reverse": "Horizontal (invertido)", + "column": "Vertical", + "column-reverse": "Vertical (invertido)" + } + }, + "descriptionDisplayMode": { + "label": "Modo de exibição da descrição", + "description": "Escolha como exibir a descrição do aplicativo", + "option": { + "normal": "Dentro do widget", + "tooltip": "Como tooltip", + "hidden": "Oculto" + } + } + }, + "error": { + "notFound": { + "label": "Nenhum aplicativo", + "tooltip": "Você não tem nenhum aplicativo válido selecionado" + } + } + }, + "bookmarks": { + "name": "Marcadores", + "description": "Exibe múltiplos links de aplicativos", + "option": { + "title": { + "label": "Título" + }, + "layout": { + "label": "Layout", + "option": { + "row": { + "label": "Horizontal" + }, + "column": { + "label": "Vertical" + }, + "grid": { + "label": "Grade" + }, + "gridHorizontal": { + "label": "Grade horizontal" + } + } + }, + "hideTitle": { + "label": "Ocultar título" + }, + "hideIcon": { + "label": "Ocultar ícones" + }, + "hideHostname": { + "label": "Ocultar nomes de host" + }, + "openNewTab": { + "label": "Abrir em nova guia" + }, + "items": { + "label": "Marcadores", + "add": "Adicionar marcador" + } + } + }, + "dnsHoleSummary": { + "name": "Resumo do DNS Hole", + "description": "Exibe o resumo do seu DNS Hole", + "option": { + "layout": { + "label": "Layout", + "option": { + "row": { + "label": "Horizontal" + }, + "column": { + "label": "Vertical" + }, + "grid": { + "label": "Grade" + } + } + }, + "usePiHoleColors": { + "label": "Usar cores do Pi-Hole" + } + }, + "error": { + "internalServerError": "Falha ao buscar resumo do DNS Hole", + "integrationsDisconnected": "Nenhum dado disponível, todas as integrações estão desconectadas" + }, + "data": { + "adsBlockedToday": "Bloqueado hoje", + "adsBlockedTodayPercentage": "Bloqueado hoje", + "dnsQueriesToday": "Consultas hoje", + "domainsBeingBlocked": "Domínios na lista de bloqueio" + }, + "domainsTooltip": "Devido a múltiplas integrações, o Homarr não pode calcular o número exato de domínios sendo bloqueados" + }, + "dnsHoleControls": { + "name": "Controles do DNS Hole", + "description": "Controle o PiHole ou o AdGuard em seu painel de controle", + "option": { + "layout": { + "label": "Layout", + "option": { + "row": { + "label": "Horizontal" + }, + "column": { + "label": "Vertical" + }, + "grid": { + "label": "Grade" + } + } + }, + "showToggleAllButtons": { + "label": "Exibir botões \"Alternar Todos\"" + } + }, + "error": { + "internalServerError": "Falha ao gerenciar o DNS Hole" + }, + "controls": { + "enableAll": "Habilitar todos", + "disableAll": "Desabilitar todos", + "setTimer": "Definir temporizador", + "set": "Definir", + "enabled": "Ativado", + "disabled": "Desativado", + "processing": "Processando", + "disconnected": "Desconectado", + "hours": "Horas", + "minutes": "Minutos", + "unlimited": "Deixe em branco para não limitar" + } + }, + "clock": { + "name": "Data e hora", + "description": "Apresenta a data e hora actuais.", + "option": { + "customTitleToggle": { + "label": "Exibição personalizada do título/cidade", + "description": "Exiba um título personalizado ou o nome da cidade/país na parte superior do relógio." + }, + "customTitle": { + "label": "Título" + }, + "is24HourFormat": { + "label": "Formato de 24 horas", + "description": "Use o formato de 24 horas em vez do formato de 12 horas" + }, + "showSeconds": { + "label": "Exibir segundos" + }, + "useCustomTimezone": { + "label": "Usar um fuso horário fixo" + }, + "timezone": { + "label": "Fuso-horário", + "description": "Escolha o fuso horário seguindo o padrão IANA" + }, + "showDate": { + "label": "Exibir data" + }, + "dateFormat": { + "label": "Formato de data", + "description": "Como a data deve ser apresentada" + }, + "customTimeFormat": { + "label": "Formato de hora personalizado", + "description": "Usar ISO 8601 para formatar horas (Isso sobrescreverá outras opções)" + }, + "customDateFormat": { + "label": "Formato de data personalizado", + "description": "Usar ISO 8601 para formatar datas (Isso sobrescreverá outras opções)" + } + } + }, + "minecraftServerStatus": { + "name": "Status de servidor Minecraft", + "description": "Exibir o status de um servidor Minecraft", + "option": { + "title": { + "label": "Título" + }, + "domain": { + "label": "Endereço do servidor" + }, + "isBedrockServer": { + "label": "Servidor Bedrock" + } + }, + "status": { + "online": "Online", + "offline": "Offline" + } + }, + "timetable": { + "name": "Calendário", + "description": "Mostra os horários de partida de uma estação", + "title": "Partidas {station}", + "noStation": "Nenhuma estação selecionada", + "option": { + "station": { + "label": "Estação" + } + } + }, + "notebook": { + "name": "Caderno de anotações", + "description": "Um widget de bloco de notas simples que suporta markdown", + "option": { + "showToolbar": { + "label": "Mostrar a barra de ferramentas para ajudá-lo a escrever markdown" + }, + "allowReadOnlyCheck": { + "label": "Permitir a verificação no modo de leitura" + }, + "content": { + "label": "O conteúdo do notebook" + } + }, + "controls": { + "bold": "Negrito", + "italic": "Itálico", + "strikethrough": "Riscar", + "underline": "Sublinhar", + "colorText": "Cor do texto", + "colorHighlight": "Texto colorido em destaque", + "code": "Código", + "clear": "Limpar formatação", + "heading": "Cabeçalho {level}", + "align": "Alinhar texto: {position}", + "blockquote": "Bloco de Citação", + "horizontalLine": "Linha horizontal", + "bulletList": "Lista de marcadores", + "orderedList": "Lista ordenada", + "checkList": "Lista de verificação", + "increaseIndent": "Aumentar recuo", + "decreaseIndent": "Diminuir recuo", + "link": "Link", + "unlink": "Remover link", + "image": "Incorporar imagem", + "addTable": "Adicionar tabela", + "deleteTable": "Excluir tabela", + "colorCell": "Cor da Célula", + "mergeCell": "Ativar/desativar mesclagem de células", + "addColumnLeft": "Adicionar coluna antes", + "addColumnRight": "Adicionar coluna depois", + "deleteColumn": "Excluir coluna", + "addRowTop": "Adicionar linha antes", + "addRowBelow": "Adicionar linha depois", + "deleteRow": "Excluir linha" + }, + "align": { + "left": "Esquerda", + "center": "Centralizado", + "right": "Certo" + }, + "popover": { + "clearColor": "Limpar cor", + "source": "Fonte", + "widthPlaceholder": "Valor em % ou pixels", + "columns": "Colunas", + "rows": "Linhas", + "width": "Largura", + "height": "Altura" + }, + "placeholder": "Comece a escrever suas notas", + "dismiss": { + "title": "Descartar alterações?", + "message": "Você tem alterações não salvas em seu bloco de notas. Tem certeza de que deseja descartá-las?", + "action": { + "discard": "Descartar alterações", + "keepEditing": "Continuar editando" + } + } + }, + "anchorNote": { + "name": "Nota do Anchor", + "description": "Exibe a nota selecionada do Anchor", + "option": { + "noteId": { + "label": "Nota" + }, + "showTitle": { + "label": "Mostrar título" + }, + "showUpdatedAt": { + "label": "Exibir última atualização" + } + }, + "empty": "Selecione uma nota para exibir", + "emptyContent": "Essa nota esta vazia", + "notFound": "Nenhuma nota encontrada", + "noNotes": "Nenhuma nota encontrada", + "integrationRequired": "Selecione primeiro uma integração do Anchor", + "updatedAt": "Atualizado em {date}", + "untitled": "Sem título", + "edit": "Editar", + "save": "Salvar", + "cancel": "Cancelar", + "readOnlyViewer": "Você tem acesso de visualização a esta nota. A edição está desativada.", + "saveForbidden": "Você não tem permissão para editar essa nota.", + "saveFailed": "Não foi possível salvar a nota. Tente novamente." + }, + "iframe": { + "name": "iFrame", + "description": "Incorporar qualquer conteúdo da internet. Alguns sites podem restringir o acesso.", + "option": { + "embedUrl": { + "label": "Incorporar URL" + }, + "allowFullScreen": { + "label": "Permitir tela cheia" + }, + "allowTransparency": { + "label": "Permitir transparência" + }, + "allowScrolling": { + "label": "Permitir rolagem" + }, + "allowPayment": { + "label": "Permitir pagamento" + }, + "allowAutoPlay": { + "label": "Permitir reprodução automática" + }, + "allowMicrophone": { + "label": "Permitir microfone" + }, + "allowCamera": { + "label": "Permitir câmera" + }, + "allowGeolocation": { + "label": "Permitir geolocalização" + }, + "allowModals": { + "label": "Permitir modais" + } + }, + "error": { + "noUrl": "Nenhum URL de iFrame fornecido", + "unsupportedProtocol": "A URL fornecida está usando um protocolo não suportado. Use um dos seguintes protocolos: ({supportedProtocols})", + "noBrowerSupport": "Seu navegador não suporta iframes. Atualize seu navegador." + } + }, + "smartHome-entityState": { + "name": "Estado da Entidade", + "description": "Exibe o estado de uma entidade e permite alterná-lo opcionalmente", + "option": { + "entityId": { + "label": "ID da entidade" + }, + "displayName": { + "label": "Nome de exibição" + }, + "entityUnit": { + "label": "Unidade da Entidade" + }, + "clickable": { + "label": "Clicável" + } + } + }, + "smartHome-executeAutomation": { + "name": "Executar automação", + "description": "Acionar uma automação com um único clique", + "option": { + "displayName": { + "label": "Nome de exibição" + }, + "automationId": { + "label": "ID da automação" + } + }, + "spotlightAction": { + "run": "Executar {name}" + } + }, + "stockPrice": { + "name": "Preço das ações", + "description": "Exibe o preço atual das ações de uma empresa", + "option": { + "stock": { + "label": "Símbolo da ação" + }, + "timeRange": { + "label": "Intervalo de tempo", + "option": { + "1d": { + "label": "1 dia" + }, + "5d": { + "label": "5 dias" + }, + "1mo": { + "label": "1 mês" + }, + "3mo": { + "label": "3 meses" + }, + "6mo": { + "label": "6 meses" + }, + "ytd": { + "label": "Acumulado no ano (YTD)" + }, + "1y": { + "label": "1 ano" + }, + "2y": { + "label": "2 anos" + }, + "5y": { + "label": "5 anos" + }, + "10y": { + "label": "10 anos" + }, + "max": { + "label": "Máximo" + } + } + }, + "timeInterval": { + "label": "Intervalo de tempo", + "option": { + "5m": { + "label": "5 minutos" + }, + "15m": { + "label": "15 minutos" + }, + "30m": { + "label": "30 minutos" + }, + "1h": { + "label": "1 hora" + }, + "1d": { + "label": "1 dia" + }, + "5d": { + "label": "5 dias" + }, + "1wk": { + "label": "1 semana" + }, + "1mo": { + "label": "1 mês" + } + } + } + } + }, + "calendar": { + "name": "Calendário", + "description": "Exibe eventos de suas integrações em uma visualização de calendário dentro de um período relativo específico", + "duration": { + "allDay": "Dia inteiro" + }, + "option": { + "releaseType": { + "label": "Tipo de libertação de Radarr", + "options": { + "inCinemas": "Nos cinemas", + "digitalRelease": "Lançamento digital", + "physicalRelease": "Lançamento físico" + } + }, + "filterPastMonths": { + "label": "Começar de" + }, + "filterFutureMonths": { + "label": "Terminar em" + }, + "showUnmonitored": { + "label": "Mostrar não monitorados" + } + } + }, + "weather": { + "name": "Tempo", + "description": "Apresenta a informação meteorológica actual de um local definido.", + "option": { + "isFormatFahrenheit": { + "label": "Temperatura em Fahrenheit" + }, + "disableTemperatureDecimals": { + "label": "Desativar decimais de temperatura" + }, + "showCurrentWindSpeed": { + "label": "Exibir velocidade do vento atual", + "description": "Somente no clima atual" + }, + "useImperialSpeed": { + "label": "Usar unidade mph para velocidade do vento" + }, + "location": { + "label": "Localização do tempo" + }, + "showCity": { + "label": "Exibir cidade" + }, + "hasForecast": { + "label": "Exibir previsão" + }, + "forecastDayCount": { + "label": "Quantidade de dias de previsão", + "description": "Quando o widget não é largo o suficiente, menos dias serão exibidos" + }, + "dateFormat": { + "label": "Formato de data", + "description": "Como a data deve ser exibida" + } + }, + "currentWindSpeed": "{currentWindSpeed} {unit}", + "dailyForecast": { + "sunrise": "Nascer do sol", + "sunset": "Pôr do sol", + "maxWindSpeed": "Velocidade máxima do vento: {maxWindSpeed} {unit}", + "maxWindGusts": "Rajadas máximas de vento: {maxWindGusts} {unit}" + }, + "kind": { + "clear": "Limpar", + "mainlyClear": "Principalmente claro", + "fog": "Névoa", + "drizzle": "Chuvisco", + "freezingDrizzle": "Chuvisco de congelação", + "rain": "Chuva", + "freezingRain": "Chuva gelada", + "snowFall": "Queda de neve", + "snowGrains": "Grãos de neve", + "rainShowers": "Duches de chuva", + "snowShowers": "Aguaceiros de neve", + "thunderstorm": "Tempestade", + "thunderstormWithHail": "Tempestade com granizo", + "unknown": "Desconhecido" + } + }, + "indexerManager": { + "name": "Status do Gerenciador de Indexadores", + "description": "Status dos seus indexadores", + "option": { + "openIndexerSiteInNewTab": { + "label": "Abrir o site do indexador em uma nova guia" + } + }, + "title": "Gerenciador de indexadores", + "testAll": "Testar todos", + "error": { + "internalServerError": "Falha ao buscar status dos indexadores" + } + }, + "healthMonitoring": { + "name": "Monitoramento da integridade do sistema", + "description": "Exibe informações que mostram a saúde e status de seu(s) sistema(s).", + "tab": { + "system": "Sistema", + "cluster": "Cluster" + }, + "option": { + "fahrenheit": { + "label": "Temperatura da CPU em Fahrenheit" + }, + "cpu": { + "label": "Mostrar informações da CPU" + }, + "memory": { + "label": "Mostrar informações da memória" + }, + "gpu": { + "label": "Mostrar informações da GPU" + }, + "showUptime": { + "label": "Exibir tempo de atividade" + }, + "fileSystem": { + "label": "Mostrar informações do sistema de arquivos" + }, + "defaultTab": { + "label": "Aba padrão" + }, + "visibleClusterSections": { + "label": "Seções de cluster visíveis" + }, + "sectionIndicatorRequirement": { + "label": "Requisito do indicador de seção" + } + }, + "popover": { + "information": "Informação", + "processor": "Processador: {cpuModelName}", + "memory": "Memória: {memory}GiB", + "memoryAvailable": "Disponível: {memoryAvailable}GiB ({percent}%)", + "version": "Versão {version}", + "uptime": "Tempo de atividade: {months} mês(es), {days} dias, {hours} horas, {minutes} minutos", + "loadAverage": "Média de carga:", + "minute": "1 minuto", + "minutes": "{count} minutos", + "used": "Usado", + "available": "Disponível", + "lastSeen": "Última atualização de status: {lastSeen}" + }, + "memory": {}, + "error": { + "internalServerError": "Falha ao buscar status de saúde" + }, + "cluster": { + "summary": { + "cpu": "CPU", + "memory": "RAM" + }, + "resource": { + "node": { + "name": "Nós" + }, + "qemu": { + "name": "VMs" + }, + "lxc": { + "name": "LXCs" + }, + "storage": { + "name": "Armazenamento" + } + }, + "popover": { + "rightSection": { + "node": "Nós", + "vmId": "ID da VM", + "plugin": "Plugin" + }, + "detail": { + "cpu": "Núcleos", + "memory": "Memória", + "storage": "Armazenamento", + "uptime": "Tempo de atividade", + "haState": "Estado HA", + "storageType": { + "local": "Armazenamento local", + "shared": "Armazenamento compartilhado" + } + } + }, + "table": { + "header": { + "name": "Nome", + "cpu": "CPU", + "memory": "RAM", + "node": "Nó" + } + } + } + }, + "dockerContainers": { + "name": "Estatísticas do Docker", + "description": "Estatísticas dos seus contêineres (Esse widget só pode ser adicionado com privilégios de administrador)", + "option": { + "enableRowSorting": { + "label": "Ativar ordenação de itens" + }, + "defaultSort": { + "label": "Coluna usada para ordenação por padrão", + "option": { + "name": "Nome", + "state": "Estado", + "cpuUsage": "Uso da CPU", + "memoryUsage": "Uso da Memória" + } + }, + "descendingDefaultSort": { + "label": "Inverter ordenação" + } + }, + "error": { + "internalServerError": "Erro ao obter as estatísticas dos contêineres" + } + }, + "coolify": { + "name": "Coolify", + "description": "Visão geral da sua instância Coolify com servidores e aplicativos", + "option": { + "showServers": { + "label": "Exibir servidores" + }, + "showApplications": { + "label": "Exibir aplicações" + }, + "showServices": { + "label": "Exibir serviços" + } + }, + "empty": { + "servers": "Nenhum servidor encontrado", + "applications": "Nenhum aplicativo encontrado", + "services": "Nenhum serviço encontrado" + }, + "footer": { + "updated": "Atualizado em {when}" + }, + "error": { + "noIntegration": "Nenhuma integração Coolify configurada", + "internalServerError": "Falha ao buscar dados do Coolify" + }, + "server": { + "buildServer": "Build" + }, + "instances": { + "title": "Instâncias" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Monitoramento avançado de servidor de mídia com dados detalhados de transmissão e transcodificação\n", + "option": { + "showStreams": { + "label": "Exibir transmissões ativas" + }, + "showStats": { + "label": "Exibir resumo de estatísticas" + }, + "showRecentActivity": { + "label": "Exibir Atividade Recente" + }, + "showViolations": { + "label": "Mostrar Violações" + } + }, + "stats": { + "activeStreams": "Streams Ativas", + "totalUsers": "Total de usuários", + "transcodes": "Transcodificações", + "bandwidth": "Largura da banda" + }, + "streams": { + "empty": "Sem transmissões ativas", + "user": "Usuário", + "media": "Mídia", + "state": "Estado", + "quality": "Qualidade", + "device": "Dispositivo", + "progress": "Progresso", + "videoDecision": { + "directPlay": "Reprodução direta", + "transcode": "Transcodificação", + "directStream": "Transmissão direta" + } + }, + "recentActivity": { + "title": "Atividade recente", + "empty": "Nenhuma atividade recente", + "watched": "Assistido", + "partial": "Parcial" + }, + "violations": { + "title": "Violações", + "empty": "Não há violações recentes", + "rule": "Regra", + "user": "Usuário" + }, + "noSectionsEnabled": "Nenhuma seção habilitada", + "error": { + "noIntegration": "Nenhuma integração Coolify configurada", + "internalServerError": "Falha ao buscar dados do Tracearr" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, + "common": { + "location": { + "query": "Cidade / CEP", + "latitude": "Latitude", + "longitude": "Longitude", + "disabledTooltip": "Por favor, insira uma cidade ou um CEP", + "unknownLocation": "Localização desconhecida", + "search": "Pesquisa", + "table": { + "header": { + "city": "Cidade", + "country": "País", + "coordinates": "Coordenadas", + "population": "População" + }, + "action": { + "select": "Selecione {city}, {countryCode}" + }, + "population": { + "fallback": "Desconhecido" + } + } + }, + "integration": { + "noData": "Nenhuma integração encontrada", + "description": "Clique para criar um aplicativo", + "quickCreate": "Criar aplicativo em tempo real" + }, + "error": { + "noIntegration": "Nenhuma integração selecionada", + "noData": "Nenhum dado de integração disponível" + }, + "option": {} + }, + "video": { + "name": "Transmissão de vídeo", + "description": "Incorporar um stream de vídeo ou vídeo de uma câmera ou de um site", + "option": { + "feedUrl": { + "label": "URL do feed" + }, + "hasAutoPlay": { + "label": "Reprodução automática", + "description": "A reprodução automática só funciona quando está no mudo devido a restrições do navegador" + }, + "isMuted": { + "label": "Mudo" + }, + "hasControls": { + "label": "Exibir controles" + } + }, + "error": { + "noUrl": "Nenhum URL de vídeo fornecido", + "forYoutubeUseIframe": "Para vídeos do Youtube, use a opção de iFrame" + } + }, + "mediaServer": { + "name": "Streams atuais do servidor de mídia", + "description": "Exibe os streams atuais em seus servidores de mídia", + "option": { + "showOnlyPlaying": { + "label": "Exibir apenas o que está sendo reproduzido", + "description": "Desabilitar isso não funcionará para o Plex" + } + }, + "items": { + "currentlyPlaying": "Reproduzindo agora", + "user": "Usuário", + "name": "Nome", + "id": "Id", + "metadata": { + "title": "Estatísticas para nerds", + "video": { + "title": "Vídeo", + "resolution": "Resolução" + }, + "audio": { + "title": "Áudio", + "channelCount": "Canais de áudio", + "codec": "Codificador de áudio" + }, + "transcoding": { + "title": "Transcodificação", + "container": "Contêiner", + "resolution": "Resolução", + "target": "Codec de destino" + } + } + } + }, + "immich-serverStats": { + "name": "Estatísticas do Servidor Immich", + "description": "Informações sobre sua instância do Immich", + "option": { + "showUsers": { + "label": "Mostrar usuários", + "description": "Mostrar a contagem de usuários na sua instância" + }, + "showPhotos": { + "label": "Mostrar Fotos", + "description": "Mostrar a contagem de fotos na sua instância" + }, + "showVideos": { + "label": "Mostrar vídeos", + "description": "Mostrar contagem de vídeos na sua instância" + }, + "showStorage": { + "label": "Mostrar armazenamento", + "description": "Mostrar a quantidade total de armazenamento utilizado" + } + }, + "users": "Usuários", + "photos": "Fotos", + "videos": "Vídeos", + "storage": "Armazenamento Utilizado" + }, + "immich-albumCarousel": { + "name": "Álbum do Immich", + "option": { + "albumId": { + "label": "ID do Álbum", + "description": "Esta é uma identificação única que se refere ao seu álbum Immich. Você pode encontrar essa identificação abrindo um álbum e copiando a string única da URL, por exemplo 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Intervalo em segundos", + "description": "Girar entre as imagens no álbum a cada X segundos. Deve ser pelo menos 1. Deve estar abaixo de 3600." + }, + "showPhotoInfo": { + "label": "Mostrar informações da foto", + "description": "Exibir a data da imagem e o índice atual na parte inferior da apresentação" + } + }, + "description": "Apresentação de imagens em seu álbum Imich", + "noAlbumSelected": "Nenhum álbum selecionado, edite o widget e escolha um álbum", + "noPhotos": "Nenhuma foto neste álbum" + }, + "downloads": { + "name": "Cliente de Download", + "description": "Permite visualizar e gerenciar seus Downloads de clientes Torrent e Usenet.", + "option": { + "columns": { + "label": "Colunas para exibir" + }, + "enableRowSorting": { + "label": "Habilitar ordenação de itens" + }, + "defaultSort": { + "label": "Coluna usada para ordenação por padrão" + }, + "descendingDefaultSort": { + "label": "Inverter ordenação" + }, + "showCompletedUsenet": { + "label": "Exibir entradas usenet marcadas como concluídas" + }, + "showCompletedTorrent": { + "label": "Exibir entradas torrent marcadas como concluídas" + }, + "showCompletedHttp": { + "label": "Exibir entradas diversas marcadas como concluídas" + }, + "activeTorrentThreshold": { + "label": "Ocultar torrents concluídos abaixo deste limite (em kiB/s)" + }, + "categoryFilter": { + "label": "Categorias/rótulos para filtrar" + }, + "filterIsWhitelist": { + "label": "Filtrar como lista de permissões" + }, + "applyFilterToRatio": { + "label": "Usar filtro para calcular Proporção" + }, + "limitPerIntegration": { + "label": "Limitar itens por integração", + "description": "Isso limitará o número de itens exibidos por integração, não globalmente" + } + }, + "errors": { + "noColumns": "Selecionar Colunas em Itens", + "noCommunications": "Não foi possível carregar dados da integração" + }, + "items": { + "actions": { + "columnTitle": "Controles" + }, + "added": { + "columnTitle": "Adicionado", + "detailsTitle": "Data adicionada" + }, + "category": { + "columnTitle": "Extras", + "detailsTitle": "Categorias (ou informações extras)" + }, + "downSpeed": { + "columnTitle": "Para baixo", + "detailsTitle": "Velocidade de Transferência" + }, + "index": { + "columnTitle": "#", + "detailsTitle": "Índice atual no cliente" + }, + "id": { + "columnTitle": "Id" + }, + "integration": { + "columnTitle": "Integração" + }, + "name": { + "columnTitle": "Nome do trabalho" + }, + "progress": { + "columnTitle": "Progresso", + "detailsTitle": "Baixar progresso" + }, + "ratio": { + "columnTitle": "Razão", + "detailsTitle": "Relação de torrent (recebido/enviado)" + }, + "received": { + "columnTitle": "Total baixado", + "detailsTitle": "Total baixado" + }, + "sent": { + "columnTitle": "Total enviado", + "detailsTitle": "Total enviado" + }, + "size": { + "columnTitle": "Tamanho do arquivo", + "detailsTitle": "Tamanho total da seleção/arquivos" + }, + "state": { + "columnTitle": "Estado", + "detailsTitle": "Estado do trabalho" + }, + "time": { + "columnTitle": "Tempo de conclusão", + "detailsTitle": "Tempo desde/até a conclusão" + }, + "type": { + "columnTitle": "Tipo", + "detailsTitle": "Tipo de cliente de download" + }, + "upSpeed": { + "columnTitle": "Para cima", + "detailsTitle": "Velocidade de envio" + } + }, + "states": { + "downloading": "Baixando", + "queued": "Em fila", + "paused": "Pausado", + "completed": "Concluído", + "failed": "Falhou", + "processing": "Processando", + "leeching": "Baixando (Leeching)", + "stalled": "Parado", + "unknown": "Desconhecido", + "seeding": "Compartilhando (Seeding)" + }, + "actions": { + "clients": { + "modalTitle": "Lista de clientes de download", + "pause": "Pausar todos os clientes/itens", + "resume": "Retomar todos os clientes/itens" + }, + "client": { + "pause": "Pausar cliente", + "resume": "Retomar cliente" + }, + "item": { + "pause": "Pausar item", + "resume": "Pausar item", + "delete": { + "title": "Excluir item", + "modalTitle": "Tem certeza de que deseja excluir este trabalho?", + "entry": "Excluir entrada", + "entryAndFiles": "Excluir entrada e arquivo(s)" + } + } + }, + "globalRatio": "Proporção global" + }, + "mediaReleases": { + "name": "Lançamentos de mídias", + "description": "Exibe mídias recém-adicionadas ou lançamentos futuros de diferentes integrações", + "option": { + "layout": { + "label": "Layout", + "option": { + "backdrop": { + "label": "Backdrop" + }, + "poster": { + "label": "Pôster" + } + } + }, + "showDescriptionTooltip": { + "label": "Exibir dica de descrição" + }, + "showType": { + "label": "Exibir emblema de tipo de mídia" + }, + "showSource": { + "label": "Exibir integração de origem" + } + }, + "length": { + "duration": "{length} minutos" + } + }, + "mediaRequests-requestList": { + "name": "Lista de Solicitações de Mídia", + "description": "Veja uma lista de todas as solicitações de mídia da sua instância do Overseerr ou Jellyseerr", + "option": { + "linksTargetNewTab": { + "label": "Abrir links em uma nova guia" + } + }, + "pending": { + "approve": "Aprovar solicitação", + "approving": "Aprovando solicitação...", + "decline": "Recusar solicitação" + }, + "availability": { + "unknown": "Desconhecido", + "pending": "Pendente", + "processing": "Processando", + "requested": "Solicitado", + "partiallyAvailable": "Parcial", + "available": "Disponível", + "blacklisted": "Na lista negra", + "deleted": "Excluído" + }, + "status": { + "pending": "Pendente", + "approved": "Aprovado", + "declined": "Rejeitado", + "failed": "Falhou", + "completed": "Concluído" + }, + "toBeDetermined": "TBD" + }, + "mediaRequests-requestStats": { + "name": "Estatísticas de Solicitações de Mídia", + "description": "Estatísticas sobre suas solicitações de mídia", + "option": {}, + "titles": { + "stats": { + "main": "Estatísticas de mídia", + "approved": "Já aprovado", + "pending": "Aprovações pendentes", + "processing": "Sendo processado", + "declined": "Já recusado", + "available": "Já disponível", + "tv": "Solicitações de TV", + "movie": "Solicitações de filmes", + "total": "Total" + }, + "users": { + "main": "Principais usuários", + "requests": "Solicitações" + } + } + }, + "mediaTranscoding": { + "name": "Transcodificação de mídia", + "description": "Estatísticas, fila atual e status dos workers de transcodificação de mídia", + "option": { + "defaultView": { + "label": "Visualização padrão" + }, + "queuePageSize": { + "label": "Tamanho da página da fila" + } + }, + "tab": { + "workers": "Workers", + "queue": "Fila", + "statistics": "Estatísticas" + }, + "currentIndex": "{start}-{end} de {total}", + "healthCheck": { + "title": "Verificação de saúde", + "queued": "Em fila", + "status": { + "healthy": "Saudável", + "unhealthy": "Não saudável" + } + }, + "panel": { + "statistics": { + "empty": "Vazio", + "transcodes": "Transcodificações", + "transcodesCount": "Transcodificações", + "healthChecksCount": "Verificações de saúde", + "filesCount": "Arquivos", + "savedSpace": "Espaço economizado", + "healthChecks": "Verificações de saúde", + "videoCodecs": "Codificadores", + "videoContainers": "Contêineres", + "videoResolutions": "Resoluções" + }, + "workers": { + "empty": "Vazio", + "table": { + "file": "Ficheiro", + "eta": "TED", + "progress": "Progresso", + "transcode": "Transcodificar", + "healthCheck": "Verificação de saúde" + } + }, + "queue": { + "empty": "Vazio", + "table": { + "file": "Ficheiro", + "size": "Tamanho", + "transcode": "Transcodificar", + "healthCheck": "Verificação de saúde" + } + } + } + }, + "rssFeed": { + "name": "Feeds RSS", + "description": "Monitora e exibe um ou mais feeds RSS, ATOM ou JSON genéricos", + "option": { + "feedUrls": { + "label": "URLs de feed" + }, + "enableRtl": { + "label": "Habilitar RTL" + }, + "textLinesClamp": { + "label": "Limite de linhas da descrição" + }, + "maximumAmountPosts": { + "label": "Limite de quantidade de posts" + }, + "hideDescription": { + "label": "Ocultar descrição" + }, + "showPosterImage": { + "label": "Exibir pôster" + } + } + }, + "releases": { + "name": "Lançamentos", + "description": "Exibe uma lista da versão atual dos repositórios fornecidos com a expressão regular de versão fornecida.", + "option": { + "newReleaseWithin": { + "label": "Novo lançamento dentro de", + "description": "Exemplo de uso: 1w (1 semana), 10M (10 meses). Tipos de unidades aceitas: h (horas), d (dias), w (semanas), M (meses), y (anos). Deixe em branco para não destacar novos lançamentos." + }, + "staleReleaseWithin": { + "label": "Lançamento Antigo Dentro de", + "description": "Exemplo de uso: 1w (1 semana), 10M (10 meses). Tipos de unidades aceitas: h (horas), d (dias), w (semanas), M (meses), y (anos). Deixe em branco para não destacar versões antigas." + }, + "showOnlyHighlighted": { + "label": "Exibir apenas destacados", + "description": "Exibir apenas lançamentos novos ou antigos. Conforme acima." + }, + "showDetails": { + "label": "Exibir detalhes" + }, + "showOnlyIcon": { + "label": "Exibir apenas ícones" + }, + "topReleases": { + "label": "Principais lançamentos", + "description": "O número máximo de lançamentos recentes a exibir. Zero significa sem limite." + }, + "repositories": { + "label": "Repositórios", + "addRepository": { + "label": "Adicionar repositório" + }, + "importRepositories": { + "label": "Importar do Docker", + "loading": "Carregando imagens do Docker", + "noImagesFound": "Nenhuma imagem do Docker encontrada", + "listFoundImages": "Lista de imagens encontradas", + "listAlreadyImportedImages": "Lista de imagens já importadas", + "allImagesAlreadyImported": "Todas as imagens já importadas", + "onlyAdminCanImport": "Apenas administradores podem importar do Docker", + "selectAll": "Selecionar tudo", + "deselectAll": "Desmarcar tudo" + }, + "provider": { + "label": "Provedor" + }, + "identifier": { + "label": "Identificador", + "placeholder": "Nome ou Proprietário/Nome" + }, + "name": { + "label": "Nome" + }, + "versionFilter": { + "label": "Filtro de versão", + "prefix": { + "label": "Prefixo" + }, + "precision": { + "label": "Precisão", + "options": { + "none": "Nenhum(a)" + } + }, + "suffix": { + "label": "Sufixo" + }, + "regex": { + "label": "Expressão regular (RegEx)" + } + }, + "edit": { + "label": "Editar" + }, + "editForm": { + "title": "Editar repositório", + "cancel": { + "label": "Cancelar" + }, + "confirm": { + "label": "Confirmar" + } + }, + "importForm": { + "title": "Importar do Docker" + }, + "example": { + "label": "Exemplo" + }, + "invalid": "Definição de repositório inválida, verifique os valores", + "noProvider": { + "label": "Nenhum provedor", + "tooltip": "O provedor não pôde ser analisado, defina-o manualmente após importar as imagens" + } + } + }, + "not-found": "Não encontrado", + "pre-release": "Pré-lançamento", + "archived": "Arquivado", + "forked": "Fork", + "starsCount": "Estrelas", + "forksCount": "Forks", + "issuesCount": "Issues abertas", + "markViewed": "Marcar como visualizado", + "openProjectPage": "Abrir página do projeto", + "openReleasePage": "Abrir página do lançamento", + "releaseDescription": "Descrição do lançamento", + "projectDescription": "Descrição do projeto", + "created": "Criado", + "error": { + "label": "Erro", + "messages": { + "invalidIdentifier": "Identificador inválido", + "noMatchingVersion": "Nenhuma versão correspondente encontrada", + "noReleasesFound": "Nenhum lançamento encontrado", + "noProviderSeleceted": "Nenhum provedor selecionado", + "noProviderResponse": "Nenhuma resposta do provedor" + } + } + }, + "networkControllerSummary": { + "option": {}, + "card": { + "vpn": { + "countConnected": "{count} conectados" + } + }, + "error": { + "integrationsDisconnected": "Nenhum dado disponível, todas as integrações estão desconectadas", + "unknownContentOption": "Opção de conteúdo desconhecida para o widget de resumo do controlador de rede: " + }, + "name": "Resumo do Controlador de Rede", + "description": "Exibe o resumo de um Controlador de Rede (como UniFi Controller)" + }, + "networkControllerStatus": { + "card": { + "variants": { + "wired": { + "name": "Com fio" + }, + "wifi": { + "name": "Wi-Fi" + } + }, + "users": { + "label": "Usuários" + }, + "guests": { + "label": "Convidados" + } + }, + "option": { + "content": { + "option": { + "wifi": { + "label": "Wi-Fi" + }, + "wired": { + "label": "Com fio" + } + }, + "label": "Conteúdo do widget" + } + }, + "error": { + "integrationsDisconnected": "Nenhum dado disponível, todas as integrações estão desconectadas", + "unknownContentOption": "Opção de conteúdo desconhecida para o widget de status de rede: " + }, + "name": "Status da Rede", + "description": "Exibir dispositivos conectados em uma rede" + }, + "networkController": { + "error": { + "internalServerError": "Falha ao buscar resumo do Controlador de Rede" + } + }, + "firewall": { + "name": "Monitoramento do Firewall", + "description": "Exibe um resumo dos firewalls", + "tab": { + "system": "Sistema", + "interfaces": "Interfaces" + }, + "error": { + "internalServerError": "Não foi possível obter dados do firewall" + }, + "option": { + "interfaces": "Interfaces de rede a serem exibidas" + }, + "widget": { + "fwname": "Nome", + "version": "Versão", + "versiontitle": "Versões", + "cputitle": "Uso da CPU", + "memorytitle": "Uso da Memória", + "cpu": "CPU", + "memory": "Memória", + "interfaces": { + "name": "nome", + "trans": "Transmitido", + "recv": "Recebido", + "title": "Interfaces de rede" + } + } + }, + "notifications": { + "name": "Notificações", + "description": "Exibe histórico de notificações de uma integração", + "noItems": "Nenhuma notificação para exibir.", + "option": {} + }, + "speedtestTracker": { + "name": "Speedtest Tracker", + "description": "Exibe os resultados do teste de velocidade da sua instância do Speedtest Tracker.", + "option": { + "showLatestResult": { + "label": "Mostrar último resultado" + }, + "showStats": { + "label": "Exibir médias" + }, + "showRecentResults": { + "label": "Mostrar resultados recentes" + }, + "showPingGraph": { + "label": "Exibir gráfico de ping" + } + }, + "latestResult": "Último resultado", + "averages": "Médias", + "tests": "Testes", + "recentResults": "Resultados recentes", + "recentResultsSpeed": "Velocidade", + "recentResultsPing": "Ping", + "download": "Download", + "upload": "Upload", + "ping": "Ping", + "status": "Status", + "avgDownload": "Download médio", + "avgUpload": "Upload médio", + "avgPing": "Ping médio", + "healthy": "Saudável", + "unhealthy": "Com problemas", + "ok": "Ok", + "fail": "Falhou", + "noSectionsEnabled": "Habilite ao menos uma seção nas opções do widget.", + "error": { + "internalServerError": "Falha ao obter dados do Speedtest" + } + }, + "systemResources": { + "name": "Recursos do Sistema", + "description": "Utilização da CPU, Memória, Disco e outro hardware do seu sistema", + "option": { + "hasShadow": { + "label": "Habilitar sombreamento do gráfico" + }, + "visibleCharts": { + "label": "Gráficos visíveis", + "description": "Selecione os gráficos que você deseja que estejam visíveis.", + "option": { + "cpu": "CPU", + "memory": "Memória", + "gpu": "GPU", + "network": "Rede" + } + }, + "labelDisplayMode": { + "label": "Modo de exibição do rótulo", + "option": { + "textWithIcon": "Exibir texto com ícone", + "text": "Exibir apenas texto", + "icon": "Exibir apenas ícones", + "hidden": "Ocultar rótulo" + } + } + }, + "card": { + "cpu": "CPU", + "memory": "MEM", + "gpu": "GPU", + "network": "REDE", + "up": "ENVIO", + "down": "RECEBIDO" + } + }, + "systemDisks": { + "name": "Discos do sistema", + "description": "Uso de disco do seu sistema", + "option": { + "showTemperatureIfAvailable": { + "label": "Mostrar temperatura se disponível" + }, + "displayMode": { + "label": "Modo de exibição", + "option": { + "percentage": { + "label": "Porcentagem (ex: 76%)" + }, + "absolute": { + "label": "Valores absolutos (ex: 800GB / 1TB)" + }, + "free": { + "label": "Porcentagem de espaço livre (ex: 24% livre)" + } + } + }, + "showBackgroundBar": { + "label": "Exibir barra de uso em segundo plano" + } + }, + "status": { + "unhealthy": "Não saudável" + } + } + }, + "widgetPreview": { + "toggle": { + "enabled": "Modo de edição habilitado", + "disabled": "Modo de edição desabilitado" + }, + "dimensions": { + "title": "Alterar dimensões" + } + }, + "board": { + "action": { + "duplicate": { + "title": "Duplicar painel", + "message": "Isso duplicará o painel {name} com todo o seu conteúdo. Se os widgets fizerem referência a integrações que você não tem permissão para usar, eles serão removidos.", + "notification": { + "success": { + "title": "Painel duplicado", + "message": "O painel foi duplicado com sucesso" + }, + "error": { + "title": "Não foi possível duplicar o painel", + "message": "O painel não pôde ser duplicado" + } + } + }, + "edit": { + "notification": { + "success": { + "title": "Alterações aplicadas com sucesso", + "message": "O painel foi salvo com sucesso" + }, + "error": { + "title": "Não foi possível aplicar as alterações", + "message": "O painel não pôde ser salvo" + } + }, + "confirmLeave": { + "title": "Alterações não salvas", + "message": "Você tem alterações não salvas, tem certeza de que deseja sair?" + } + }, + "oldImport": { + "label": "Importar do Homarr anterior à versão 1.0.0", + "notification": { + "success": { + "title": "Importação bem-sucedida", + "message": "O painel foi importado com sucesso" + }, + "error": { + "title": "Falha na importação", + "message": "O painel não pôde ser importado, verifique os logs para mais detalhes" + } + }, + "form": { + "file": { + "label": "Selecionar arquivo JSON", + "invalidError": "Arquivo de configuração inválido" + }, + "apps": { + "label": "Aplicativos", + "avoidDuplicates": { + "label": "Evitar duplicatas", + "description": "Ignora aplicativos onde já existe um aplicativo com o mesmo href" + }, + "onlyImportApps": { + "label": "Importar apenas aplicativos", + "description": "Só adiciona os aplicativos, o painel precisa ser recriado manualmente" + } + }, + "name": { + "label": "Nome do painel" + }, + "screenSize": { + "label": "Tamanho da tela", + "description": "Nas versões anteriores à 1.0 existiam três modos diferentes, então você podia escolher a quantidade de colunas para cada tamanho de tela.", + "option": { + "sm": "Pequeno", + "md": "Médio", + "lg": "Grande" + } + }, + "sidebarBehavior": { + "label": "Comportamento da barra lateral", + "description": "As barras laterais foram removidas na versão 1.0. Você pode selecionar o que deve acontecer com os itens dentro delas.", + "option": { + "lastSection": { + "label": "Última seção", + "description": "A barra lateral será exibida abaixo da última seção" + }, + "removeItems": { + "label": "Remover itens", + "description": "Os itens presentes na barra lateral serão removidos" + } + } + } + } + }, + "quickCreateApp": { + "modal": { + "title": "Criar aplicativo em tempo real", + "createAndUse": "Criar e utilizar" + } + } + }, + "field": { + "pageTitle": { + "label": "Título da página" + }, + "metaTitle": { + "label": "Meta-título" + }, + "logoImageUrl": { + "label": "URL da imagem de logo" + }, + "faviconImageUrl": { + "label": "URL da imagem do favicon" + }, + "backgroundImageUrl": { + "label": "URL da imagem do plano de fundo", + "placeholder": "Comece a digitar para pesquisar imagens locais", + "group": { + "your": "Suas imagens", + "other": "Outras imagens" + } + }, + "backgroundImageAttachment": { + "label": "Anexo de imagem de fundo", + "option": { + "fixed": { + "label": "Fixo", + "description": "O plano de fundo permanece na mesma posição." + }, + "scroll": { + "label": "Rolar", + "description": "O plano de fundo rola com o mouse." + } + } + }, + "backgroundImageRepeat": { + "label": "Repetição da imagem de fundo", + "option": { + "repeat": { + "label": "Repetir", + "description": "A imagem é repetida o quanto for necessário para cobrir toda a área de pintura da imagem de fundo." + }, + "no-repeat": { + "label": "Não repetir", + "description": "A imagem não é repetida e pode não preencher todo o espaço." + }, + "repeat-x": { + "label": "Repetir X", + "description": "Igual a 'Repetir' mas apenas no eixo horizontal." + }, + "repeat-y": { + "label": "Repetir Y", + "description": "Igual a 'Repetir' mas apenas no eixo vertical." + } + } + }, + "backgroundImageSize": { + "label": "Tamanho da imagem de fundo", + "option": { + "cover": { + "label": "Cobrir", + "description": "Dimensiona a imagem o menor possível para cobrir toda a janela cortando o espaço excessivo." + }, + "contain": { + "label": "Incluir", + "description": "Dimensione a imagem o máximo possível dentro do seu contêiner, sem recortá-la ou distorcê-la." + } + } + }, + "primaryColor": { + "label": "Cor primária" + }, + "secondaryColor": { + "label": "Cor secundária" + }, + "opacity": { + "label": "Opacidade" + }, + "iconColor": { + "label": "Cor do ícone" + }, + "clearColor": { + "label": "Limpar cor" + }, + "customCss": { + "label": "CSS personalizado para este painel", + "description": "Além disso, personalize seu painel usando CSS, recomendado apenas para usuários experientes", + "customClassesAlert": { + "title": "Classes personalizadas", + "description": "Você pode adicionar classes personalizadas aos itens do seu painel nas opções avançadas de cada item e usá-las no CSS personalizado acima." + } + }, + "disableStatus": { + "label": "Desabilitar status do aplicativo", + "description": "Desabilita a verificação de status para todos os aplicativos neste painel" + }, + "columnCount": { + "label": "Contagem de coluna" + }, + "itemRadius": { + "label": "Raio do item", + "description": "Altera o arredondamento dos blocos no seu painel", + "option": { + "xs": "Muito pequeno", + "sm": "Pequeno", + "md": "Médio", + "lg": "Grande", + "xl": "Muito grande" + } + }, + "name": { + "label": "Nome" + }, + "isPublic": { + "label": "Público", + "description": "Painéis públicos são acessíveis a todos, mesmo sem uma conta." + } + }, + "content": { + "metaTitle": "Quadro {boardName}" + }, + "setting": { + "title": "Configurações para o painel {boardName}", + "section": { + "general": { + "title": "Geral", + "unrecognizedLink": "O link fornecido não é reconhecido e não será exibido, mas ainda pode funcionar." + }, + "layout": { + "title": "Layout", + "responsive": { + "title": "Layouts responsivos", + "action": { + "add": "Adicionar layout" + } + } + }, + "background": { + "title": "Imagem de fundo" + }, + "appearance": { + "title": "Aparência" + }, + "customCss": { + "title": "CSS personalizado" + }, + "behavior": { + "title": "Comportamento" + }, + "access": { + "title": "Controle de acesso", + "permission": { + "item": { + "view": { + "label": "Exibir painel" + }, + "modify": { + "label": "Editar painel" + }, + "full": { + "label": "Acesso completo" + } + } + } + }, + "dangerZone": { + "title": "Zona de risco", + "action": { + "rename": { + "label": "Renomear painel", + "description": "Alterar o nome quebrará quaisquer links para este painel.", + "button": "Alterar nome", + "modal": { + "title": "Renomear painel" + } + }, + "visibility": { + "label": "Editar visibilidade do painel", + "description": { + "public": "Este painel está público atualmente.", + "private": "Este painel está privado atualmente." + }, + "button": { + "public": "Tornar privado", + "private": "Tornar público" + }, + "confirm": { + "public": { + "title": "Tornar painel privado", + "description": "Tem certeza que deseja tornar esse painel privado? Isso ocultará o painel do público. Os links para convidados serão desativados." + }, + "private": { + "title": "Tornar painel público", + "description": "Tem certeza que deseja tornar esse painel público? Isso tornará o painel acessível a todos." + } + } + }, + "delete": { + "label": "Excluir este painel", + "description": "Uma vez que você exclui um painel, não há como voltar atrás. Por favor, tenha certeza.", + "button": "Excluir este painel", + "confirm": { + "title": "Excluir painel", + "description": "Tem certeza de que deseja excluir este painel? Isso excluirá permanentemente o painel e todo o seu conteúdo." + } + } + } + } + } + }, + "error": { + "noBoard": { + "title": "Bem-vindo ao Homarr", + "description": "Um painel elegante e moderno que coloca todos os seus aplicativos e serviços ao seu alcance.", + "link": "Crie seu primeiro painel", + "notice": "Para fazer esta página desaparecer, crie um painel e defina-o como painel inicial" + }, + "notFound": { + "title": "Quadro não encontrado", + "description": "O painel especificado não foi encontrado ou você não tem acesso a ele.", + "link": "Visualizar todos os painéis", + "notice": "Verifique o link ou entre em contato com um administrador se você acha que deveria estar acessível" + }, + "homeBoard": { + "title": "Nenhum painel inicial estabelecido", + "admin": { + "description": "Você ainda não definiu um painel inicial para o servidor.", + "link": "Configurar painel inicial do servidor", + "notice": "Para fazer essa página desaparecer para todos os usuários, defina um painel inicial para o servidor" + }, + "user": { + "description": "Você ainda não definiu um painel inicial.", + "link": "Configure seu quadro inicial", + "notice": "Para fazer essa página desaparecer, especifique o quadro inicial em suas preferências" + }, + "anonymous": { + "description": "O administrador do servidor ainda não definiu um quadro inicial.", + "link": "Visualizar painéis públicos", + "notice": "Para fazer essa página desaparecer, peça ao administrador do servidor para definir um quadro inicial para o servidor" + } + } + } + }, + "layout": { + "field": { + "name": { + "label": "Nome" + }, + "columnCount": { + "label": "Contagem de colunas" + }, + "breakpoint": { + "label": "Breakpoint", + "description": "O layout será usado em todas as telas maiores que este breakpoint até o próximo breakpoint maior." + } + } + }, + "management": { + "metaTitle": "Gerenciamento", + "title": { + "morning": "Bom dia, {username}", + "afternoon": "Boa tarde, {username}", + "evening": "Boa noite, {username}" + }, + "notFound": { + "title": "Não encontrado", + "text": "Não foi possível encontrar o recurso solicitado" + }, + "navbar": { + "items": { + "home": "Início", + "boards": "Placas", + "apps": "Aplicativos", + "integrations": "Integrações", + "searchEngies": "Mecanismos de busca", + "medias": "Mídias", + "users": { + "label": "Usuários", + "items": { + "manage": "Gerenciar", + "invites": "Convites", + "groups": "Grupos" + } + }, + "tools": { + "label": "Ferramentas", + "items": { + "docker": "Docker", + "kubernetes": "Kubernetes", + "logs": "Logs", + "api": "API", + "certificates": "Certificados", + "tasks": "Tarefas" + } + }, + "settings": "Configurações", + "help": { + "label": "Ajuda", + "items": { + "documentation": "Documentação", + "submitIssue": "Enviar um problema", + "discord": "Discórdia da comunidade", + "sourceCode": "Código-fonte" + } + }, + "about": "Sobre" + } + }, + "page": { + "home": { + "statistic": { + "board": "Placas", + "user": "Usuários", + "invite": "Convites", + "integration": "Integrações", + "app": "Aplicativos", + "group": "Grupos", + "searchEngine": "Mecanismos de busca", + "media": "Mídias" + }, + "statisticLabel": { + "boards": "Placas", + "resources": "Recursos", + "authentication": "Autenticação", + "authorization": "Autorização" + }, + "heroBanner": { + "title": "Bem-vindo de volta ao seu", + "subtitle": "Quadro {app}" + } + }, + "board": { + "title": "Suas placas", + "action": { + "new": { + "label": "Novo quadro" + }, + "open": { + "label": "Abrir quadro" + }, + "settings": { + "label": "Configurações" + }, + "setHomeBoard": { + "label": "Definir como quadro inicial", + "badge": { + "label": "Início", + "tooltip": "Este quadro será exibido como seu quadro inicial" + } + }, + "setMobileHomeBoard": { + "label": "Definir como painel para dispositivos móveis", + "badge": { + "label": "Dispositivos móveis", + "tooltip": "Esse painel será exibido como padrão para dispositivos móveis" + } + }, + "duplicate": { + "label": "Quadro duplicado" + }, + "delete": { + "label": "Excluir permanentemente", + "confirm": { + "title": "Excluir quadro", + "description": "Tem certeza que deseja deletar o quadro {name}?" + } + } + }, + "visibility": { + "public": "Este quadro é publico", + "private": "Este quadro é privado" + }, + "modal": { + "createBoard": { + "field": { + "name": { + "label": "Nome" + } + } + } + } + }, + "media": { + "includeFromAllUsers": "Incluir mídia para todos os usuários" + }, + "user": { + "back": "Voltar aos usuários", + "fieldsDisabledExternalProvider": "Alguns campos estão desabilitados porque são gerenciados por um provedor de autenticação externo.", + "setting": { + "general": { + "title": "Geral", + "item": { + "language": "Idioma & Região", + "board": { + "title": "Quadro inicial", + "type": { + "general": "Geral", + "mobile": "Dispositivos móveis" + } + }, + "search": "Buscar", + "firstDayOfWeek": "Primeiro dia da semana", + "accessibility": "Acessibilidade" + } + }, + "security": { + "title": "Segurança" + }, + "board": { + "title": "Placas" + } + }, + "list": { + "metaTitle": "Gerenciar usuários", + "title": "Usuários" + }, + "edit": { + "metaTitle": "Editar usuário {username}" + }, + "create": { + "metaTitle": "Criar usuário", + "title": "Criar novo usuário", + "step": { + "personalInformation": { + "label": "Informações pessoais" + }, + "security": { + "label": "Segurança" + }, + "groups": { + "label": "Grupos", + "title": "Selecione todos os grupos dos quais o usuário deve ser membro", + "description": "O grupo {everyoneGroup} é atribuído a todos os usuários e não pode ser removido." + }, + "review": { + "label": "Revisão" + }, + "completed": { + "title": "Usuário criado" + }, + "error": { + "title": "Falha ao criar usuário" + } + }, + "action": { + "createAnother": "Criar outro usuário", + "back": "Retornar à lista de usuários" + } + }, + "invite": { + "title": "Gerenciar convites de usuários", + "action": { + "new": { + "title": "Novo convite", + "description": "Após a expiração, um convite não será mais válido e o destinatário do convite não poderá criar uma conta." + }, + "copy": { + "title": "Copiar convite", + "description": "Seu convite foi gerado. Após o fechamento deste modal, você não poderá mais copiar este link. Caso não deseje mais convidar essa pessoa, você pode excluir este convite a qualquer momento.", + "link": "Link do convite", + "button": "Copiar e fechar" + }, + "delete": { + "title": "Excluir convite", + "description": "Tem certeza de que deseja excluir este convite? Os usuários com esse link não poderão mais criar uma conta usando esse link." + } + }, + "field": { + "id": { + "label": "ID" + }, + "creator": { + "label": "Criador" + }, + "expirationDate": { + "label": "Data de expiração" + }, + "token": { + "label": "Token" + } + } + } + }, + "group": { + "back": "Voltar aos grupos", + "setting": { + "general": { + "title": "Geral", + "owner": "Dono", + "ownerOfGroup": "Proprietário deste grupo", + "ownerOfGroupDeleted": "O proprietário deste grupo foi excluído. Atualmente não possui proprietário." + }, + "setting": { + "title": "Configurações", + "alert": "As configurações do grupo são priorizadas pela ordem dos grupos na lista. As configurações superiores substituem as configurações inferiores.", + "board": { + "title": "Painéis" + } + }, + "members": { + "title": "Membros", + "search": "Encontrar um membro", + "notFound": "Nenhum membro encontrado" + }, + "permissions": { + "title": "Permissões", + "form": { + "unsavedChanges": "Você tem alterações não salvas!" + } + } + } + }, + "settings": { + "title": "Configurações", + "notification": { + "success": { + "message": "Configurações salvas com sucesso" + }, + "error": { + "message": "Erro ao salvar permissões" + } + }, + "section": { + "analytics": { + "title": "Análises", + "general": { + "title": "Enviar análises anônimas", + "text": "O Homarr enviará análises anonimizadas usando o software de código aberto Umami. Quando habilitado, coletamos: versão do Homarr, tipo de banco de dados (MySQL/PostgreSQL/SQLite), status Docker/Kubernetes, métodos de autenticação habilitados e a quantidade de cada recurso. Todos os dados são anônimos e agregados - nenhuma informação pessoal, URLs, nomes ou dados identificáveis são coletados. Isso ajuda nossa equipe de código aberto a entender padrões de uso e priorizar o desenvolvimento." + }, + "widgetData": { + "title": "Dados de widgets", + "text": "Envia quais widgets (e suas quantidades) você configurou. Não inclui URLs, nomes ou quaisquer outros dados." + }, + "integrationData": { + "title": "Dados de integrações", + "text": "Envia quais integrações (e suas quantidades) você configurou. Não inclui URLs, nomes ou quaisquer outros dados." + }, + "usersData": { + "title": "Dados dos usuários", + "text": "Envia a quantidade de usuários e se você ativou SSO" + } + }, + "crawlingAndIndexing": { + "title": "Rastreamento e Indexação", + "warning": "Ativar ou desativar qualquer configuração aqui afetará significativamente a forma como os mecanismos de pesquisa indexam e rastreiam sua página. Qualquer configuração é uma solicitação e cabe ao rastreador aplicar essas configurações. Qualquer modificação pode levar vários dias ou semanas para serem aplicadas. Algumas configurações podem ser específicas do mecanismo de busca.", + "noIndex": { + "title": "Não indexar", + "text": "Não indexe o site nos mecanismos de busca e não o exiba em nenhum resultado de pesquisa" + }, + "noFollow": { + "title": "Não seguir", + "text": "Não siga nenhum link durante a indexação. Desabilitar isso fará com que os rastreadores tentem seguir todos os links no Homarr." + }, + "noTranslate": { + "title": "Não traduzir", + "text": "Quando o idioma do site provavelmente não é aquele que o usuário provavelmente deseja ler, o Google mostrará um link de tradução nos resultados da pesquisa" + }, + "noSiteLinksSearchBox": { + "title": "Sem caixa de pesquisa de links do site", + "text": "O Google criará uma caixa de pesquisa com os links rastreados, juntamente com outros links diretos. Habilitar isso pedirá ao Google para desabilitar essa caixa." + } + }, + "board": { + "title": "Placas", + "homeBoard": { + "label": "Painel inicial global", + "mobileLabel": "Painel para dispositivos móveis (global)", + "description": "Apenas painéis públicos estão disponíveis para seleção" + }, + "status": { + "title": "Status de aplicativo", + "enableStatusByDefault": { + "label": "Ativar status por padrão", + "description": "Ao adicionar um item de aplicativo, o status será ativado por padrão" + }, + "forceDisableStatus": { + "label": "Forçar status de desativação", + "description": "O status dos aplicativos será desativado para todos os usuários e não poderá ser ativado" + } + } + }, + "user": { + "title": "Usuários", + "enableGravatar": { + "label": "Ativar Gravatar", + "description": "Usa avatares de usuário do Libravatar/Gravatar quando nenhum avatar personalizado está definido e um e-mail está configurado" + } + }, + "search": { + "title": "Buscar", + "defaultSearchEngine": { + "label": "Mecanismo de busca padrão global", + "description": "Mecanismos de busca de integração não podem ser selecionados aqui" + } + }, + "appearance": { + "title": "Aparência", + "defaultColorScheme": { + "label": "Esquema de cores padrão", + "options": { + "auto": "", + "light": "Claro", + "dark": "Escuro" + } + } + }, + "culture": { + "title": "Cultura", + "defaultLocale": { + "label": "Idioma padrão" + } + } + } + }, + "tool": { + "tasks": { + "title": "Tarefas", + "status": { + "idle": "Ocioso", + "running": "Em execução", + "error": "Erro", + "disabled": "Desabilitado" + }, + "job": { + "minecraftServerStatus": { + "label": "Status do servidor Minecraft" + }, + "timetable": { + "label": "Horários" + }, + "iconsUpdater": { + "label": "Atualizador de Ícones" + }, + "analytics": { + "label": "Análises" + }, + "smartHomeEntityState": { + "label": "Estado de Entidade do Smart Home" + }, + "ping": { + "label": "Pings" + }, + "mediaServer": { + "label": "Servidor de Mídia" + }, + "mediaOrganizer": { + "label": "Organizadores de Mídia" + }, + "downloads": { + "label": "Downloads" + }, + "mediaRequestStats": { + "label": "Estatísticas de solicitações de mídia" + }, + "mediaRequestList": { + "label": "Lista de solicitações de mídia" + }, + "rssFeeds": { + "label": "Feeds RSS" + }, + "indexerManager": { + "label": "Gerenciador de Indexadores" + }, + "healthMonitoring": { + "label": "Monitoramento de saúde" + }, + "dnsHole": { + "label": "Dados do DNS Hole" + }, + "updateChecker": { + "label": "Verificador de atualizações" + }, + "mediaTranscoding": { + "label": "Transcodificação de mídia" + }, + "networkController": { + "label": "Controlador de rede" + }, + "refreshNotifications": { + "label": "Atualizador de notificações" + }, + "dockerContainers": { + "label": "Contêineres do Docker" + }, + "firewallCpu": { + "label": "CPU do Firewall" + }, + "firewallMemory": { + "label": "Memória do Firewall" + }, + "firewallVersion": { + "label": "Versão do Firewall" + }, + "firewallInterfaces": { + "label": "Interfaces de firewall" + }, + "weather": { + "label": "Clima" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "" + } + }, + "interval": { + "seconds": "A cada {interval, plural, =1 {segundo} other {# segundos}}", + "minutes": "A cada {interval, plural, =1 {minuto} other {# minutos}}", + "hours": "A cada {interval, plural, =1 {hora} other {# horas}}", + "midnight": "Todo dia à meia-noite", + "weeklyMonday": "Toda semana na segunda-feira", + "update": { + "success": { + "message": "Intervalo atualizado com sucesso" + }, + "error": { + "message": "Erro ao atualizar intervalo" + } + } + }, + "settings": { + "title": "Configurações da tarefa para {jobName}" + }, + "field": { + "name": { + "label": "Nome" + }, + "interval": { + "label": "Intervalo de agendamento" + }, + "lastExecution": { + "label": "Última Execução" + }, + "actions": { + "label": "Ações" + } + }, + "table": { + "search": "Buscar {count} tarefas..." + }, + "action": { + "refresh": { + "label": "Atualizar" + } + }, + "refresh": { + "success": { + "message": "Tarefas atualizadas com sucesso" + }, + "error": { + "message": "Erro ao atualizar tarefas" + } + }, + "trigger": { + "success": { + "message": "Tarefa acionada com sucesso" + }, + "error": { + "message": "Falha ao acionar tarefa" + } + }, + "enable": { + "success": { + "message": "Tarefa habilitada com sucesso" + } + }, + "disable": { + "success": { + "message": "Tarefa desabilitada com sucesso" + } + }, + "toggle": { + "error": { + "message": "Falha ao alternar status da tarefa" + } + } + }, + "api": { + "title": "API", + "modal": { + "createApiToken": { + "title": "Token de API criado", + "description": "O token de API foi criado. Atenção, esse token é encriptado no banco de dados e jamais poderá ser transferido novamente a você. Se você perder este token, você não será mais capaz de recuperar este token específico.", + "button": "Copiar e fechar" + } + }, + "tab": { + "documentation": { + "label": "Documentação" + }, + "apiKey": { + "label": "Autenticação", + "title": "Chaves de API", + "button": { + "createApiToken": "Criar token de API" + }, + "modal": { + "delete": { + "title": "Remover token de API", + "text": "Isso excluirá permanentemente o token de API. Clientes de API que usam este token não poderão mais autenticar e executar solicitações de API. Esta ação não pode ser desfeita." + } + }, + "table": { + "header": { + "id": "ID", + "createdBy": "Criado por", + "actions": "Ações" + } + } + } + } + } + }, + "about": { + "version": "Versão {version}", + "text": "O Homarr é um projeto de código aberto impulsionado pela comunidade e mantido por voluntários. Graças a essas pessoas, o Homarr tem sido um projeto em crescimento desde 2021. Nossa equipe trabalha remotamente em vários países diferentes no Homarr, em seu tempo livre e sem remuneração.", + "accordion": { + "contributors": { + "title": "Contribuidores", + "subtitle": "{count} mantendo código e Homarr" + }, + "translators": { + "title": "Tradutores", + "subtitle": "{count} traduções contribuídas em vários idiomas" + }, + "sponsors": { + "title": "Apoiadores", + "subtitle": "{count} apoiando o projeto financeiramente" + }, + "libraries": { + "title": "Bibliotecas", + "subtitle": "{count} usadas no código do Homarr" + }, + "hotkeys": { + "title": "Teclas de atalho", + "subtitle": "Atalhos de teclado para melhorar seu fluxo de trabalho", + "field": { + "shortcut": "Atalhos", + "action": "Ação" + }, + "action": { + "toggleBoardEdit": "Alternar para o modo de edição do quadro", + "toggleColorScheme": "Alternar entre modo claro/escuro", + "saveNotebook": "Salvar bloco de notas (apenas dentro do widget de bloco de notas)", + "openSpotlight": "Abrir busca" + }, + "note": "Dica: Mod refere-se tanto à tecla Ctrl quanto à tecla ⌘ no macOS" + } + } + } + } + }, + "docker": { + "title": "Contêineres", + "table": { + "updated": "Atualizado em {when}", + "search": "Buscar {count} contêineres", + "selected": "{selectCount} de {totalCount} contêineres selecionados", + "footer": "Total de contêineres: {count}" + }, + "field": { + "name": { + "label": "Nome" + }, + "state": { + "label": "Estado", + "option": { + "created": "Criado", + "running": "Em execução", + "paused": "Pausado", + "restarting": "Recomeço", + "exited": "Finalizado", + "removing": "Remoção", + "dead": "Morto" + } + }, + "stats": { + "cpu": { + "label": "CPU" + }, + "memory": { + "label": "Memória" + } + }, + "containerImage": { + "label": "Imagem" + }, + "ports": { + "label": "Portas" + }, + "host": { + "label": "" + } + }, + "action": { + "title": "Ações", + "start": { + "label": "Iniciar", + "notification": { + "success": { + "title": "Contêineres iniciados", + "message": "Os contêineres foram iniciados com sucesso" + }, + "error": { + "title": "Os contêineres não foram iniciados", + "message": "Os contêineres não puderam ser iniciados" + } + } + }, + "stop": { + "label": "Parar", + "notification": { + "success": { + "title": "Os contêineres foram parados", + "message": "Os contêineres foram parados com sucesso" + }, + "error": { + "title": "Os contêineres não foram parados", + "message": "Os contêineres não puderam ser parados" + } + } + }, + "restart": { + "label": "Reiniciar", + "notification": { + "success": { + "title": "Contêineres reiniciados", + "message": "Os contêineres foram reiniciados com sucesso" + }, + "error": { + "title": "Contêineres não reiniciados", + "message": "Os contêineres não puderam ser reiniciados" + } + } + }, + "remove": { + "label": "Excluir", + "notification": { + "success": { + "title": "Contêineres removidos", + "message": "Os contêineres foram removidos com sucesso" + }, + "error": { + "title": "Contêineres não removidos", + "message": "Os contêineres não puderam ser removidos" + } + } + }, + "refresh": { + "label": "Atualizar", + "notification": { + "success": { + "title": "Os contêineres foram atualizados", + "message": "Você está agora visualizando os dados mais recentes" + }, + "error": { + "title": "Os contêineres não foram atualizados", + "message": "Algo deu errado enquanto atualizava os contêineres" + } + } + }, + "addToHomarr": { + "label": "Adicionar ao Homarr", + "notification": { + "success": { + "title": "Adicionado ao Homarr", + "message": "Os aplicativos selecionados foram adicionados ao Homarr" + }, + "error": { + "title": "Não foi possivel adicionar ao Homarr", + "message": "Os aplicativos selecionados não puderam ser adicionados ao Homarr" + } + }, + "modal": { + "title": "Adicionar contêiner(s) docker ao Homarr" + } + } + }, + "error": { + "internalServerError": "Falha ao buscar contêineres Docker" + } + }, + "kubernetes": { + "cluster": { + "title": "Painel do Cluster", + "label": "Cluster", + "providers": "Provedores", + "version": "Versão", + "architecture": "Arquitetura", + "capacity": { + "title": "Capacidade", + "resource": { + "reserved": "Reservado", + "used": "Usado" + } + }, + "resources": { + "title": "Recursos", + "nodes": "Nós", + "namespaces": "Namespaces", + "ingresses": "Ingresses", + "services": "Serviços", + "pods": "Pods", + "configmaps": "ConfigMaps", + "secrets": "Secrets", + "volumes": "Volumes" + } + }, + "nodes": { + "label": "Nós", + "field": { + "name": { + "label": "Nome" + }, + "state": { + "label": "Estado", + "option": { + "ready": "Pronto", + "NotReady": "Não está pronto" + } + }, + "cpu": { + "label": "CPU" + }, + "memory": { + "label": "RAM" + }, + "pods": { + "label": "Pods" + }, + "operatingSystem": { + "label": "SO" + }, + "architecture": { + "label": "Arquitetura" + }, + "kubernetesVersion": { + "label": "Versão do Kubernetes" + }, + "creationTimestamp": { + "label": "Criado" + } + }, + "table": { + "search": "Buscar {count} nós" + } + }, + "namespaces": { + "label": "Namespaces", + "field": { + "name": { + "label": "Nome" + }, + "state": { + "label": "Estado", + "option": { + "active": "Ativo", + "terminating": "Terminando" + } + }, + "creationTimestamp": { + "label": "Criado" + } + }, + "table": { + "search": "Buscar {count} namespaces" + } + }, + "ingresses": { + "label": "Ingresses", + "field": { + "name": { + "label": "Nome" + }, + "namespace": { + "label": "Namespace" + }, + "className": { + "label": "Nome da classe" + }, + "rulesAndPaths": { + "label": "Regras & caminhos" + }, + "creationTimestamp": { + "label": "Criado" + } + }, + "table": { + "search": "Buscar {count} ingresses" + } + }, + "services": { + "label": "Serviços", + "field": { + "name": { + "label": "Nome" + }, + "namespace": { + "label": "Namespace" + }, + "type": { + "label": "Tipo" + }, + "ports": { + "label": "Portas" + }, + "targetPorts": { + "label": "Portas de destino" + }, + "clusterIP": { + "label": "IP do Cluster" + }, + "creationTimestamp": { + "label": "Criado" + } + }, + "table": { + "search": "Buscar {count} serviços" + } + }, + "pods": { + "label": "Pods", + "field": { + "name": { + "label": "Nome" + }, + "namespace": { + "label": "Namespace" + }, + "image": { + "label": "Imagem" + }, + "applicationType": { + "label": "Tipos de aplicações" + }, + "status": { + "label": "Status" + }, + "creationTimestamp": { + "label": "Criado" + } + }, + "table": { + "search": "Buscar {count} pods" + } + }, + "secrets": { + "label": "Secrets", + "field": { + "name": { + "label": "Nome" + }, + "namespace": { + "label": "namespace" + }, + "type": { + "label": "tipo" + }, + "creationTimestamp": { + "label": "Criado" + } + }, + "table": { + "search": "Buscar {count} secrets" + } + }, + "configmaps": { + "label": "ConfigMaps", + "field": { + "name": { + "label": "Nome" + }, + "namespace": { + "label": "namespace" + }, + "creationTimestamp": { + "label": "Criado" + } + }, + "table": { + "search": "Buscar {count} configMaps" + } + }, + "volumes": { + "label": "Volumes", + "field": { + "name": { + "label": "Nome" + }, + "namespace": { + "label": "Namespace" + }, + "accessModes": { + "label": "Modos de acesso" + }, + "storage": { + "label": "Armazenamento" + }, + "storageClassName": { + "label": "Nome da classe de armazenamento" + }, + "volumeMode": { + "label": "Modo do volume" + }, + "volumeName": { + "label": "Nome do volume" + }, + "status": { + "label": "Status" + }, + "creationTimestamp": { + "label": "Criado" + } + }, + "table": { + "search": "Buscar {count} volumes" + } + }, + "error": { + "internalServerError": "Falha ao buscar dados do Kubernetes" + } + }, + "permission": { + "title": "Permissões", + "userSelect": { + "title": "Adicionar permissão de usuário" + }, + "groupSelect": { + "title": "Adicionar permissão de grupo" + }, + "tab": { + "user": "Usuários", + "group": "Grupos", + "inherited": "Grupos herdados" + }, + "field": { + "user": { + "label": "Usuário" + }, + "group": { + "label": "Grupo" + }, + "permission": { + "label": "Permissão" + } + }, + "action": { + "saveUser": "Salvar permissão de usuário", + "saveGroup": "Salvar permissão de grupo" + } + }, + "navigationStructure": { + "manage": { + "label": "Gerenciar", + "boards": { + "label": "Placas" + }, + "integrations": { + "label": "Integrações", + "edit": { + "label": "Editar" + }, + "new": { + "label": "Novo" + } + }, + "search-engines": { + "label": "Mecanismos de busca", + "new": { + "label": "Novo" + }, + "edit": { + "label": "Editar" + } + }, + "medias": { + "label": "Mídias" + }, + "apps": { + "label": "Aplicativos", + "new": { + "label": "Novo" + }, + "edit": { + "label": "Editar" + } + }, + "users": { + "label": "Usuários", + "create": { + "label": "Criar" + }, + "general": "Geral", + "security": "Segurança", + "board": "Placas", + "groups": { + "label": "Grupos" + }, + "invites": { + "label": "Convites" + } + }, + "tools": { + "label": "Ferramentas", + "tasks": { + "label": "Tarefas" + }, + "docker": { + "label": "Docker" + }, + "kubernetes": { + "label": "Kubernetes", + "nodes": { + "label": "Nós" + }, + "namespaces": { + "label": "Namespaces" + }, + "ingresses": { + "label": "Ingresses" + }, + "services": { + "label": "Serviços" + }, + "pods": { + "label": "pods" + }, + "configmaps": { + "label": "ConfigMaps" + }, + "secrets": { + "label": "Secrets" + }, + "volumes": { + "label": "Volumes" + } + }, + "logs": { + "label": "Logs" + }, + "certificates": { + "label": "Certificados", + "hostnames": { + "label": "Hostnames" + } + } + }, + "settings": { + "label": "Configurações" + }, + "about": { + "label": "Sobre" + } + } + }, + "search": { + "placeholder": "Buscar por qualquer coisa", + "nothingFound": "Nada encontrado", + "error": { + "fetch": "Ocorreu um erro ao buscar os dados" + }, + "mode": { + "appIntegrationBoard": { + "help": "Buscar por aplicativos, integrações ou painéis", + "group": { + "app": { + "title": "Aplicativos", + "children": { + "action": { + "open": { + "label": "Abrir URL do aplicativo" + }, + "edit": { + "label": "Editar aplicativo" + } + }, + "detail": { + "title": "Selecione uma ação para o aplicativo" + } + } + }, + "board": { + "title": "Placas", + "children": { + "action": { + "open": { + "label": "Abrir quadro" + }, + "homeBoard": { + "label": "Definir como quadro inicial" + }, + "mobileBoard": { + "label": "Definir como painel para dispositivos móveis" + }, + "settings": { + "label": "Abrir configurações" + } + }, + "detail": { + "title": "Selecione uma ação para o quadro" + } + } + }, + "integration": { + "title": "Integrações" + } + } + }, + "command": { + "help": "Ativar modo de comando", + "group": { + "localCommand": { + "title": "Comandos locais" + }, + "globalCommand": { + "title": "Comandos globais", + "option": { + "colorScheme": { + "auto": "", + "light": "Alternar para o modo claro", + "dark": "Alternar para o modo escuro" + }, + "language": { + "label": "Alterar idioma", + "children": { + "detail": { + "title": "Selecione sua linguagem preferida" + } + } + }, + "newBoard": { + "label": "Criar um novo quadro" + }, + "importBoard": { + "label": "Importe um quadro" + }, + "newApp": { + "label": "Criar aplicativo" + }, + "newIntegration": { + "label": "Criar uma nova integração", + "children": { + "detail": { + "title": "Selecione o tipo de integração que deseja criar" + } + } + }, + "newUser": { + "label": "Criar um novo usuário" + }, + "newInvite": { + "label": "Criar um novo convite" + }, + "newGroup": { + "label": "Criar um novo grupo" + } + } + } + } + }, + "media": { + "requestMovie": "Solicitar filme", + "requestSeries": "Solicitar série", + "openIn": "Abrir em {kind}" + }, + "external": { + "help": "Usar um mecanismo de busca externo", + "group": { + "searchEngine": { + "title": "Mecanismos de busca", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, + "children": { + "action": { + "search": { + "label": "Pesquisar com {name}" + } + }, + "detail": { + "title": "Selecione uma ação para o mecanismo de busca" + }, + "searchResults": { + "title": "Selecione um resultado de pesquisa para ações" + } + }, + "option": { + "google": { + "name": "Google", + "description": "Pesquise na web com o Google" + }, + "bing": { + "name": "Bing", + "description": "Pesquise na web com o Bing" + }, + "duckduckgo": { + "name": "DuckDuckGo", + "description": "Pesquise na web com o DuckDuckGo" + }, + "torrent": { + "name": "Torrentes", + "description": "Pesquise torrents em torrentdownloads.pro" + }, + "youTube": { + "name": "YouTube", + "description": "Pesquise vídeos no YouTube" + } + } + } + } + }, + "help": { + "group": { + "mode": { + "title": "Modos" + }, + "help": { + "title": "Ajuda", + "option": { + "documentation": { + "label": "Documentação" + }, + "submitIssue": { + "label": "Reportar um problema" + }, + "discord": { + "label": "Discórdia da comunidade" + } + } + } + } + }, + "home": { + "group": { + "search": { + "title": "Buscar", + "option": { + "other": { + "label": "Pesquise com outro mecanismo de busca" + }, + "no-default": { + "label": "Nenhum mecanismo de busca predefinido", + "description": "Defina um mecanismo de busca padrão nas preferências" + }, + "search": { + "label": "Buscar por \"{query}\" com {name}" + }, + "from-integration": { + "description": "Comece a digitar para pesquisar" + } + } + }, + "local": { + "title": "Resultados locais" + } + } + }, + "page": { + "help": "Buscar páginas", + "group": { + "page": { + "title": "Páginas", + "option": { + "manageHome": { + "label": "Gerenciar página inicial" + }, + "manageBoard": { + "label": "Gerenciar painéis" + }, + "manageApp": { + "label": "Gerenciar aplicativos" + }, + "manageIntegration": { + "label": "Gerenciar integrações" + }, + "manageSearchEngine": { + "label": "Gerenciar mecanismos de busca" + }, + "manageMedia": { + "label": "Gerencias mídias" + }, + "manageUser": { + "label": "Gerenciar usuários" + }, + "manageInvite": { + "label": "Gerenciar convites" + }, + "manageGroup": { + "label": "Gerenciar grupos" + }, + "manageDocker": { + "label": "Gerenciar Docker" + }, + "manageApi": { + "label": "Swagger API" + }, + "manageLog": { + "label": "Exibir logs" + }, + "manageTask": { + "label": "Gerenciar tarefas" + }, + "manageSettings": { + "label": "Configurações globais" + }, + "about": { + "label": "Sobre" + }, + "homeBoard": { + "label": "Quadro inicial" + }, + "preferences": { + "label": "Suas preferências" + } + } + } + } + }, + "userGroup": { + "help": "Buscar por usuários ou grupos", + "group": { + "user": { + "title": "Usuários", + "children": { + "action": { + "detail": { + "label": "Exibir detalhes do usuário" + } + }, + "detail": { + "title": "Selecione uma ação para o usuário" + } + } + }, + "group": { + "title": "Grupos", + "children": { + "action": { + "detail": { + "label": "Exibir detalhes do grupo" + }, + "manageMember": { + "label": "Gerenciar membros" + }, + "managePermission": { + "label": "Gerenciar permissões" + } + }, + "detail": { + "title": "Selecione uma ação para o grupo" + } + } + } + } + } + }, + "engine": { + "search": "Encontrar um mecanismo de busca", + "field": { + "name": { + "label": "Nome" + }, + "short": { + "label": "Abreviação" + }, + "urlTemplate": { + "label": "Modelo de busca de URL" + }, + "description": { + "label": "Descrição" + } + }, + "page": { + "list": { + "title": "Mecanismos de busca", + "noResults": { + "title": "Ainda não existem mecanismos de busca", + "action": "Crie seu primeiro mecanismo de busca" + }, + "interactive": "Interativo, usa uma integração" + }, + "create": { + "title": "Novo mecanismo de busca", + "notification": { + "success": { + "title": "Mecanismo de busca criado", + "message": "O mecanismo de busca foi criado com sucesso" + }, + "error": { + "title": "O mecanismo de busca não foi criado", + "message": "O mecanismo de busca não pôde ser criado" + } + } + }, + "edit": { + "title": "Editar mecanismo de busca", + "notification": { + "success": { + "title": "Mudanças aplicadas com sucesso", + "message": "O mecanismo de busca foi salvo com sucesso" + }, + "error": { + "title": "Não foi possível aplicar as mudanças", + "message": "O mecanismo de busca não pôde ser salvo" + } + }, + "configControl": "Configuração", + "searchEngineType": { + "generic": "Genérico", + "fromIntegration": "De integração" + } + }, + "delete": { + "title": "Excluir mecanismo de busca", + "message": "Tem certeza que deseja excluir o mecanismo de busca {name}?", + "notification": { + "success": { + "title": "Mecanismo de busca excluído", + "message": "O mecanismo de busca foi excluído com sucesso" + }, + "error": { + "title": "Mecanismo de busca não deletado", + "message": "O mecanismo de busca não pôde ser deletado" + } + } + } + }, + "media": { + "request": { + "modal": { + "title": "Solicitar \"{name}\"", + "table": { + "header": { + "season": "Temporada", + "episodes": "Episódios" + } + }, + "button": { + "send": "Enviar solicitação" + } + } + } + } + } + }, + "certificate": { + "field": { + "hostname": { + "label": "Hostname" + }, + "subject": { + "label": "Assunto" + }, + "issuer": { + "label": "Emissor" + }, + "validFrom": { + "label": "Válido desde" + }, + "validTo": { + "label": "Válido até" + }, + "serialNumber": { + "label": "Número de série" + }, + "fingerprint": { + "label": "Impressão digital" + } + }, + "page": { + "list": { + "title": "Certificados confiáveis", + "description": "Usado pelo Homarr para solicitar dados de integrações.", + "noResults": { + "title": "Ainda não existem certificados" + }, + "invalid": { + "title": "Certificado inválido", + "description": "Falha ao analisar certificado" + }, + "expires": "Expira em {when}", + "toHostnames": "Hostnames confiáveis" + }, + "hostnames": { + "title": "Hostnames de certificados confiáveis", + "description": "Alguns certificados não permitem o domínio específico que o Homarr usa para solicitá-los, por isso todos os hostnames confiáveis com suas impressões digitais de certificado são usados para contornar essas restrições.", + "noResults": { + "title": "Ainda não existem hostnames" + }, + "toCertificates": "Certificados" + } + }, + "action": { + "create": { + "label": "Adicionar certificado", + "notification": { + "success": { + "title": "Certificado adicionado", + "message": "O certificado foi adicionado com sucesso" + }, + "error": { + "title": "Falha ao adicionar certificado", + "message": "O certificado não pôde ser adicionado" + } + } + }, + "remove": { + "label": "Remover certificado", + "confirm": "Tem certeza que deseja remover o certificado?", + "notification": { + "success": { + "title": "Certificado removido", + "message": "O certificado foi removido com sucesso" + }, + "error": { + "title": "Certificado não removido", + "message": "O certificado não pôde ser removido" + } + } + }, + "removeHostname": { + "label": "Remover hostname confiável", + "confirm": "Tem certeza que deseja remover este hostname confiável? Isso pode fazer com que algumas integrações parem de funcionar.", + "notification": { + "success": { + "title": "Hostname removido", + "message": "O hostname foi removido com sucesso" + }, + "error": { + "title": "Hostname não removido", + "message": "O hostname não pôde ser removido" + } + } + } + } + }, + "log": { + "level": { + "option": { + "debug": "Debug", + "info": "Informação", + "warn": "Aviso", + "error": "Erro" + } + } + } +} diff --git a/packages/translation/src/lang/pt.json b/packages/translation/src/lang/pt.json index 6ecb01fdb..4d6cbd7f0 100644 --- a/packages/translation/src/lang/pt.json +++ b/packages/translation/src/lang/pt.json @@ -2,275 +2,288 @@ "init": { "step": { "start": { - "title": "Bem-vindo ao Homarr", - "subtitle": "Vamos começar configurando a sua instância Homarr.", - "description": "Para começar, por favor selecione como você deseja configurar sua instância Homarr.", + "title": "", + "subtitle": "", + "description": "", "action": { - "scratch": "Começar do zero", - "importOldmarr": "Importe de uma instância Homarr anterior a 1.0" + "scratch": "", + "importOldmarr": "" } }, "import": { - "title": "Importar dados", - "subtitle": "Você pode importar dados de uma instância existente do Homarr.", + "title": "", + "subtitle": "", "dropzone": { - "title": "Arraste o arquivo zip aqui ou clique para procurar", - "description": "O arquivo zip enviado será processado e você poderá selecionar o que deseja importar" + "title": "", + "description": "" }, "fileInfo": { "action": { - "change": "Alterar arquivo" + "change": "" } }, "importSettings": { - "title": "Importar configurações", - "description": "Configure o comportamento da importação" + "title": "", + "description": "" }, "boardSelection": { - "title": "{count} quadros encontrados", - "description": "Escolha todos os quadros com o tamanho que você deseja importar", + "title": "", + "description": "", "action": { - "selectAll": "Selecionar todos", - "unselectAll": "Desmarcar Todos" + "selectAll": "", + "unselectAll": "" } }, "summary": { - "title": "Resumo da importação", - "description": "No resumo abaixo, você pode ver o que será importado", + "title": "", + "description": "", "action": { - "import": "Confirmar a importação e continuar" + "import": "" }, "entities": { - "apps": "Aplicativos", - "boards": "Placas", - "integrations": "Integrações", - "credentialUsers": "Usuários credenciados" + "apps": "", + "boards": "", + "integrations": "", + "credentialUsers": "" } }, "tokenModal": { - "title": "Insira o token de importação", + "title": "", "field": { "token": { - "label": "Token", - "description": "Insira o token de importação mostrado em sua instância homarr anterior" + "label": "", + "description": "" } }, "notification": { "error": { - "title": "Token inválido", - "message": "O token que você inseriu é inválido" + "title": "", + "message": "" } } } }, "user": { - "title": "Usuário Administrador", - "subtitle": "Especifique as credenciais para seu usuário administrador.", + "title": "", + "subtitle": "", "notification": { "success": { - "title": "Usuário criado", - "message": "O usuário foi criado com sucesso" + "title": "", + "message": "" }, "error": { - "title": "Falha ao criar usuário" + "title": "" } } }, "group": { - "title": "Grupo externo", - "subtitle": "Especifique o grupo que deve ser usado para usuários externos.", + "title": "", + "subtitle": "", "form": { "name": { - "label": "Nome do grupo", - "description": "O nome tem que coincidir com o grupo administrador do provedor externo" + "label": "", + "description": "" } } }, "settings": { - "title": "Configurações", - "subtitle": "Definir as configurações do servidor." + "title": "", + "subtitle": "" }, "finish": { - "title": "Concluir configuração", - "subtitle": "Você está pronto para começar!", - "description": "Você concluiu com sucesso o processo de configuração. Agora você pode começar a usar o Homarr. Selecione sua próxima ação:", + "title": "", + "subtitle": "", + "description": "", "action": { - "goToBoard": "Ir para o quadro {name}", - "createBoard": "Crie seu primeiro quadro", - "inviteUser": "Convidar outros usuários", - "docs": "Ler a documentação" + "goToBoard": "", + "createBoard": "", + "inviteUser": "", + "docs": "" } } }, - "backToStart": "Voltar ao início" + "backToStart": "" }, "user": { - "title": "Usuários", - "name": "Usuário", + "title": "", + "name": "", "page": { "login": { - "title": "Acesse a sua conta", - "subtitle": "Bem-vindo(a) de volta! Por favor, insira suas credenciais" + "title": "", + "subtitle": "" }, "invite": { - "title": "Junte-se ao Homarr", - "subtitle": "Bem-vindo ao Homarr! Por favor, crie sua conta", - "description": "Você foi convidado(a) por {username}" + "title": "", + "subtitle": "", + "description": "" }, "init": { - "title": "Nova instalação do Homarr", - "subtitle": "Por favor, crie o usuário administrador inicial" + "title": "", + "subtitle": "" } }, "field": { "email": { - "label": "E-mail", - "verified": "Verificado" + "label": "", + "verified": "" }, "username": { - "label": "Usuário" + "label": "" }, "password": { - "label": "Senha", + "label": "", "requirement": { - "length": "Inclua pelo menos 8 caracteres", - "lowercase": "Inclui letras minúsculas", - "uppercase": "Inclui letras maiúsculas", - "number": "Inclui número", - "special": "Inclua um caractere especial" + "length": "", + "lowercase": "", + "uppercase": "", + "number": "", + "special": "" } }, "passwordConfirm": { - "label": "Confirmar senha" + "label": "" }, "previousPassword": { - "label": "Senha anterior" + "label": "" }, "homeBoard": { - "label": "Quadro inicial" + "label": "" }, "pingIconsEnabled": { - "label": "Usar ícone para pings" + "label": "" }, "defaultSearchEngine": { - "label": "Mecanismo de pesquisa padrão" + "label": "" }, "openSearchInNewTab": { - "label": "Abrir resultados da busca em uma nova aba" + "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { - "usernameTaken": "Nome de usuário já em uso" + "usernameTaken": "" }, "action": { "login": { - "label": "“Login”", - "labelWith": "Iniciar sessão com {provider}", + "label": "", + "labelWith": "", "notification": { "success": { - "title": "Início de sessão bem-sucedido", - "message": "Agora você está conectado" + "title": "", + "message": "" }, "error": { - "title": "Falha ao iniciar sessão", - "message": "Seu acesso falhou" + "title": "", + "message": "" } }, "forgotPassword": { - "label": "Esqueceu sua senha?", - "description": "Um administrador pode usar o seguinte comando para redefinir sua senha:" + "label": "", + "description": "" } }, "register": { - "label": "Criar conta", + "label": "", "notification": { "success": { - "title": "Conta criada", - "message": "Por favor, entre para continuar" + "title": "", + "message": "" }, "error": { - "title": "Criação da conta falhou", - "message": "Sua conta não pode ser criada" + "title": "", + "message": "" } } }, - "create": "Criar usuário", + "create": "", "changePassword": { - "label": "Alterar senha", + "label": "", "notification": { "success": { - "message": "Senha alterada com sucesso" + "message": "" }, "error": { - "message": "Não é possível alterar a senha" + "message": "" } } }, "changeHomeBoard": { "notification": { "success": { - "message": "Quadro inicial alterado com sucesso" + "message": "" }, "error": { - "message": "Não foi possível alterar o quadro inicial" + "message": "" } } }, "changeSearchPreferences": { "notification": { "success": { - "message": "Preferências de busca alteradas com sucesso" + "message": "" }, "error": { - "message": "Não foi possível alterar as preferências de busca" + "message": "" } } }, "changeFirstDayOfWeek": { "notification": { "success": { - "message": "Primeiro dia da semana alterado com sucesso" + "message": "" }, "error": { - "message": "Não foi possível alterar o primeiro dia da semana" + "message": "" } } }, "changePingIconsEnabled": { "notification": { "success": { - "message": "Ícones de ping alterados com sucesso" + "message": "" }, "error": { - "message": "Não foi possível alternar ícones de ping" + "message": "" + } + } + }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" } } }, "manageAvatar": { "changeImage": { - "label": "Alterar imagem", + "label": "", "notification": { "success": { - "message": "A imagem foi alterada com sucesso" + "message": "" }, "error": { - "message": "Não é possível alterar a imagem" + "message": "" }, "toLarge": { - "title": "A imagem é muito grande", - "message": "O tamanho máximo da imagem é {size}" + "title": "", + "message": "" } } }, "removeImage": { - "label": "Remover imagem", - "confirm": "Tem certeza de que deseja remover esta imagem?", + "label": "", + "confirm": "", "notification": { "success": { - "message": "Imagem removida com sucesso" + "message": "" }, "error": { - "message": "Não é possível remover a imagem" + "message": "" } } } @@ -278,243 +291,243 @@ "editProfile": { "notification": { "success": { - "message": "Perfil atualizado com sucesso" + "message": "" }, "error": { - "message": "Não foi possível atualizar o perfil" + "message": "" } } }, "delete": { - "label": "Excluir usuário permanentemente", - "description": "Exclui esse usuário incluindo suas preferências. Isso não removerá nenhum quadro. O usuário não sera notificado.", - "confirm": "Tem certeza que deseja excluir o usuário {username} e suas preferências?" + "label": "", + "description": "", + "confirm": "" }, "select": { - "label": "Selecionar usuário", - "notFound": "Nenhum usuário encontrado" + "label": "", + "notFound": "" }, "transfer": { - "label": "Selecionar novo proprietário" + "label": "" } } }, "group": { - "title": "Grupos", - "name": "Grupo", - "search": "Encontrar um grupo", + "title": "", + "name": "", + "search": "", "field": { - "name": "Nome", - "members": "Membros", + "name": "", + "members": "", "homeBoard": { - "label": "Quadro inicial", - "description": "Somente quadros acessíveis ao grupo podem ser selecionados" + "label": "", + "description": "" }, "mobileBoard": { - "label": "Quadro para celular", - "description": "Somente quadros acessíveis ao grupo podem ser selecionados" + "label": "", + "description": "" } }, "permission": { "admin": { - "title": "Administrador", + "title": "", "item": { "admin": { - "label": "Administrador", - "description": "Membros com essa permissão têm acesso total a todos os recursos e configurações" + "label": "", + "description": "" } } }, "app": { - "title": "Aplicativos", + "title": "", "item": { "create": { - "label": "Criar aplicativo", - "description": "Permitir que membros criem aplicativos" + "label": "", + "description": "" }, "use-all": { - "label": "Usar todas aplicações", - "description": "Permitir que os membros adicionem qualquer aplicativo aos seus quadros" + "label": "", + "description": "" }, "modify-all": { - "label": "Modificar todos os aplicativos", + "label": "", "description": "" }, "full-all": { - "label": "Acesso completo a aplicativos", - "description": "Permitir que membros gerenciem, usem e excluam qualquer aplicativo" + "label": "", + "description": "" } } }, "board": { - "title": "Placas", + "title": "", "item": { "create": { - "label": "Criar painel", - "description": "Permitir que membros criem painéis" + "label": "", + "description": "" }, "view-all": { - "label": "Ver todos os painéis", - "description": "Permitir que membros visualizem todos os painéis" + "label": "", + "description": "" }, "modify-all": { - "label": "Modificar todos os painéis", - "description": "Permitir que membros modifiquem todos os painéis (Não inclui o controle de acesso e a zona de perigo)" + "label": "", + "description": "" }, "full-all": { - "label": "Acesso total ao painel", - "description": "Permitir que membros vejam, modifiquem e deletem todos os painéis (Incluindo o controle de acesso e a zona de perigo)" + "label": "", + "description": "" } } }, "integration": { - "title": "Integrações", + "title": "", "item": { "create": { - "label": "Criar integração", - "description": "Permitir que membros criem integrações" + "label": "", + "description": "" }, "use-all": { - "label": "Usar todas as integrações", - "description": "Permitir que membros adicionem qualquer integração aos seus painéis" + "label": "", + "description": "" }, "interact-all": { - "label": "Interagir com qualquer integração", - "description": "Permitir que membros interajam com qualquer integração" + "label": "", + "description": "" }, "full-all": { - "label": "Acesso total às integrações", - "description": "Permitir que membros gerenciem, usem e interajam com qualquer integração" + "label": "", + "description": "" } } }, "media": { - "title": "Mídias", + "title": "", "item": { "upload": { - "label": "Adicionar Mídia", - "description": "Permitir que membros adicionem mídias" + "label": "", + "description": "" }, "view-all": { - "label": "Visualizar todas as mídias", - "description": "Permitir que membros visualizem todas as mídias" + "label": "", + "description": "" }, "full-all": { - "label": "Acesso total às mídias", - "description": "Permitir que membros gerenciem e deletem qualquer mídia" + "label": "", + "description": "" } } }, "other": { - "title": "Outras", + "title": "", "item": { "view-logs": { - "label": "Visualizar registros", - "description": "Permitir que os membros visualizem os registros" + "label": "", + "description": "" } } }, "search-engine": { - "title": "Ferramentas de busca", + "title": "", "item": { "create": { - "label": "Criar ferramenta de busca", - "description": "Permitir que os membros criem mecanismos de busca" + "label": "", + "description": "" }, "modify-all": { - "label": "Modificar todas as ferramentas de busca", - "description": "Permitir que membros modifiquem todas as ferramentas de busca" + "label": "", + "description": "" }, "full-all": { - "label": "Acesso total às ferramentas de busca", - "description": "Permitir que membros modifiquem e deletem qualquer ferramenta de busca" + "label": "", + "description": "" } } } }, "memberNotice": { - "mixed": "Alguns membros são de provedores externos e não podem ser gerenciados aqui", - "external": "Todos os membros são de provedores externos e não podem ser gerenciados aqui" + "mixed": "", + "external": "" }, "reservedNotice": { - "message": "Esse grupo é reservado para uso do sistema e restringe algumas ações. " + "message": "" }, "action": { "create": { - "label": "Novo grupo", + "label": "", "notification": { "success": { - "message": "O grupo foi criado com sucesso" + "message": "" }, "error": { - "message": "Não foi possível criar o grupo" + "message": "" } } }, "transfer": { - "label": "Transferir propriedade", - "description": "Transferir propriedade deste grupo para outro usuário.", - "confirm": "Tem certeza de que deseja transferir a propriedade do grupo {name} para {username}?", + "label": "", + "description": "", + "confirm": "", "notification": { "success": { - "message": "Grupo {group} transferido para {user} com sucesso" + "message": "" }, "error": { - "message": "Não foi possível transferir a propriedade" + "message": "" } } }, "addMember": { - "label": "Adicionar membro" + "label": "" }, "removeMember": { - "label": "Remover membro", - "confirm": "Você tem certeza que deseja remover {user} desse grupo?" + "label": "", + "confirm": "" }, "delete": { - "label": "Deletar grupo", - "description": "Uma vez deletado o grupo não há como reverter. Tenha cuidado.", - "confirm": "Você tem certeza que deseja deletar o grupo {name}?", + "label": "", + "description": "", + "confirm": "", "notification": { "success": { - "message": "Grupo {name} deletado com sucesso" + "message": "" }, "error": { - "message": "Não foi possível deletar o grupo {name}" + "message": "" } } }, "changePermissions": { "notification": { "success": { - "title": "Permissões salvas", - "message": "Permissões foram salvas com sucesso" + "title": "", + "message": "" }, "error": { - "title": "Permissões não salvas", - "message": "As permissões não foram salvas" + "title": "", + "message": "" } } }, "update": { "notification": { "success": { - "message": "O grupo {name} foi salvo com sucesso" + "message": "" }, "error": { - "message": "Não é possível salvar o grupo {name}" + "message": "" } } }, "select": { - "label": "Selecionar grupo", - "notFound": "Nenhum grupo encontrado" + "label": "", + "notFound": "" }, "settings": { "board": { "notification": { "success": { - "title": "Configurações salvas", + "title": "", "message": "" }, "error": { @@ -536,7 +549,7 @@ } }, "defaultGroup": { - "name": "Grupo padrão", + "name": "", "description": "" } }, @@ -544,22 +557,22 @@ "search": "", "page": { "list": { - "title": "Aplicativos", + "title": "", "noResults": { "title": "", - "action": "Crie seu primeiro aplicativo" + "action": "" } }, "create": { - "title": "Novo Aplicativo", + "title": "", "notification": { "success": { - "title": "Criado com sucesso", - "message": "O aplicativo foi criado com sucesso" + "title": "", + "message": "" }, "error": { - "title": "Falha ao criar", - "message": "Não foi possível criar o aplicativo" + "title": "", + "message": "" } } }, @@ -593,7 +606,7 @@ }, "field": { "name": { - "label": "Nome" + "label": "" }, "description": { "label": "" @@ -618,9 +631,9 @@ "title": "" }, "create": { - "title": "Criar aplicativo", - "description": "Criar um aplicativo", - "action": "Abrir criação de aplicativo" + "title": "", + "description": "", + "action": "" }, "add": "" } @@ -649,14 +662,14 @@ "app": { "option": { "existing": { - "title": "Existente", - "label": "Selecione um aplicativo existente" + "title": "", + "label": "" }, "new": { - "title": "Novo", + "title": "", "url": { - "label": "URL da aplicação", - "description": "A URL do aplicativo será aberta quando acessada a partir do painel de controle" + "label": "", + "description": "" } } } @@ -699,7 +712,7 @@ }, "field": { "name": { - "label": "Nome" + "label": "" }, "url": { "label": "" @@ -712,8 +725,8 @@ "sectionTitle": "" }, "createApp": { - "label": "Criar aplicativo", - "description": "Crie um aplicativo com o mesmo nome e ícone da integração. Deixe o campo de entrada abaixo vazio para criar o aplicativo com a URL de integração." + "label": "", + "description": "" }, "appHref": { "placeholder": "" @@ -860,7 +873,7 @@ "message": "" }, "invalidUrl": { - "title": "URL inválido", + "title": "", "message": "" }, "secretNotDefined": { @@ -943,7 +956,7 @@ }, "kind": { "username": { - "label": "Usuário", + "label": "", "newLabel": "" }, "apiKey": { @@ -951,8 +964,8 @@ "newLabel": "" }, "password": { - "label": "Senha", - "newLabel": "Nova senha" + "label": "", + "newLabel": "" }, "tokenId": { "label": "", @@ -1006,9 +1019,9 @@ "plural": "", "search": "", "field": { - "name": "Nome", - "size": "Tamanho", - "creator": "Criador" + "name": "", + "size": "", + "creator": "" }, "action": { "upload": { @@ -1046,31 +1059,31 @@ "common": { "success": "", "beta": "", - "error": "Erro", + "error": "", "action": { - "add": "Adicionar", - "apply": "Aplicar", + "add": "", + "apply": "", "backToOverview": "", "change": "", - "create": "Criar", + "create": "", "createAnother": "", - "edit": "Editar", + "edit": "", "import": "", - "insert": "Inserir", - "remove": "Excluir", - "save": "Salvar", - "saveChanges": "Salvar alterações", - "cancel": "Cancelar", - "delete": "Apagar", + "insert": "", + "remove": "", + "save": "", + "saveChanges": "", + "cancel": "", + "delete": "", "discard": "", "close": "", - "confirm": "Confirme", + "confirm": "", "continue": "", - "previous": "Anterior", - "next": "Próximo", + "previous": "", + "next": "", "checkoutDocs": "", "checkLogs": "", - "tryAgain": "Tente novamente", + "tryAgain": "", "loading": "" }, "here": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1127,38 +1141,41 @@ "switchToDarkMode": "", "switchToLightMode": "", "management": "", - "preferences": "Suas preferências", + "preferences": "", "logout": "", - "login": "“Login”", + "login": "", "homeBoard": "", "loggedOut": "", "updateAvailable": "" } }, - "dangerZone": "Zona de risco", - "noResults": "Nenhum resultado encontrado", + "dangerZone": "", + "noResults": "", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" }, "zod": { "errors": { - "default": "Esse campo é inválido", - "required": "Este campo é obrigatório", + "default": "", + "required": "", "string": { - "startsWith": "Esse campo deve começar com {startsWith}", - "endsWith": "Esse campo deve terminar com {endsWith}", - "includes": "Esse campo deve incluir {includes}", + "startsWith": "", + "endsWith": "", + "includes": "", "invalidEmail": "" }, "tooSmall": { - "string": "Esse campo deve ter pelo menos {minimum} caracteres", - "number": "Esse campo deve ser maior ou igual a {minimum}" + "string": "", + "number": "" }, "tooBig": { - "string": "Esse campo deve ter no máximo {maximum} caracteres", - "number": "Esse campo deve ser menor ou igual a {maximum}" + "string": "", + "number": "" }, "custom": { "passwordsDoNotMatch": "", @@ -1204,15 +1221,15 @@ "category": { "field": { "name": { - "label": "Nome" + "label": "" } }, "action": { "create": "", "edit": "", "remove": "", - "moveUp": "Subir", - "moveDown": "Mover para baixo", + "moveUp": "", + "moveDown": "", "createAbove": "", "createBelow": "", "openAllInNewTabs": "" @@ -1232,7 +1249,7 @@ "menu": { "label": { "create": "", - "changePosition": "Mudar de posição" + "changePosition": "" } }, "openAllInNewTabs": { @@ -1252,7 +1269,7 @@ }, "menu": { "label": { - "settings": "Configurações" + "settings": "" } }, "create": { @@ -1264,10 +1281,10 @@ "title": "", "field": { "width": { - "label": "Largura" + "label": "" }, "height": { - "label": "Altura" + "label": "" }, "xOffset": { "label": "" @@ -1312,7 +1329,7 @@ "label": "" }, "openInNewTab": { - "label": "Abrir em novo separador" + "label": "" }, "showTitle": { "label": "" @@ -1415,16 +1432,16 @@ "integrationsDisconnected": "" }, "data": { - "adsBlockedToday": "Bloqueado hoje", - "adsBlockedTodayPercentage": "Bloqueado hoje", - "dnsQueriesToday": "Consultas hoje", + "adsBlockedToday": "", + "adsBlockedTodayPercentage": "", + "dnsQueriesToday": "", "domainsBeingBlocked": "" }, "domainsTooltip": "" }, "dnsHoleControls": { "name": "", - "description": "Controle o PiHole ou o AdGuard em seu painel de controle", + "description": "", "option": { "layout": { "label": "", @@ -1452,8 +1469,8 @@ "disableAll": "", "setTimer": "", "set": "", - "enabled": "Ativado", - "disabled": "Desativado", + "enabled": "", + "disabled": "", "processing": "", "disconnected": "", "hours": "", @@ -1463,7 +1480,7 @@ }, "clock": { "name": "", - "description": "Apresenta a data e hora actuais.", + "description": "", "option": { "customTitleToggle": { "label": "", @@ -1483,7 +1500,7 @@ "label": "" }, "timezone": { - "label": "Fuso-horário", + "label": "", "description": "" }, "showDate": { @@ -1522,65 +1539,76 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { - "name": "Caderno de anotações", + "name": "", "description": "", "option": { "showToolbar": { - "label": "Mostrar a barra de ferramentas para ajudá-lo a escrever markdown" + "label": "" }, "allowReadOnlyCheck": { - "label": "Permitir a verificação no modo de leitura" + "label": "" }, "content": { - "label": "O conteúdo do notebook" + "label": "" } }, "controls": { - "bold": "Negrito", - "italic": "Itálico", - "strikethrough": "Riscar", - "underline": "Sublinhar", - "colorText": "Cor do texto", - "colorHighlight": "Texto colorido em destaque", - "code": "Código", - "clear": "Limpar formatação", - "heading": "Cabeçalho {level}", - "align": "Alinhar texto: {position}", - "blockquote": "Bloco de Citação", - "horizontalLine": "Linha horizontal", - "bulletList": "Lista de marcadores", - "orderedList": "Lista ordenada", - "checkList": "Lista de verificação", - "increaseIndent": "Aumentar recuo", - "decreaseIndent": "Diminuir recuo", + "bold": "", + "italic": "", + "strikethrough": "", + "underline": "", + "colorText": "", + "colorHighlight": "", + "code": "", + "clear": "", + "heading": "", + "align": "", + "blockquote": "", + "horizontalLine": "", + "bulletList": "", + "orderedList": "", + "checkList": "", + "increaseIndent": "", + "decreaseIndent": "", "link": "", - "unlink": "Remover link", - "image": "Incorporar imagem", - "addTable": "Adicionar tabela", - "deleteTable": "Excluir tabela", - "colorCell": "Cor da Célula", - "mergeCell": "Ativar/desativar mesclagem de células", - "addColumnLeft": "Adicionar coluna antes", - "addColumnRight": "Adicionar coluna depois", - "deleteColumn": "Excluir coluna", - "addRowTop": "Adicionar linha antes", - "addRowBelow": "Adicionar linha depois", - "deleteRow": "Excluir linha" + "unlink": "", + "image": "", + "addTable": "", + "deleteTable": "", + "colorCell": "", + "mergeCell": "", + "addColumnLeft": "", + "addColumnRight": "", + "deleteColumn": "", + "addRowTop": "", + "addRowBelow": "", + "deleteRow": "" }, "align": { - "left": "Esquerda", - "center": "Centralizado", - "right": "Certo" + "left": "", + "center": "", + "right": "" }, "popover": { - "clearColor": "Limpar cor", - "source": "Fonte", - "widthPlaceholder": "Valor em % ou pixels", - "columns": "Colunas", - "rows": "Linhas", - "width": "Largura", - "height": "Altura" + "clearColor": "", + "source": "", + "widthPlaceholder": "", + "columns": "", + "rows": "", + "width": "", + "height": "" }, "placeholder": "", "dismiss": { @@ -1592,42 +1620,73 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", - "description": "Incorporar qualquer conteúdo da internet. Alguns sites podem restringir o acesso.", + "description": "", "option": { "embedUrl": { - "label": "Incorporar URL" + "label": "" }, "allowFullScreen": { - "label": "Permitir tela cheia" + "label": "" }, "allowTransparency": { - "label": "Permitir transparência" + "label": "" }, "allowScrolling": { - "label": "Permitir rolagem" + "label": "" }, "allowPayment": { - "label": "Permitir pagamento" + "label": "" }, "allowAutoPlay": { - "label": "Permitir reprodução automática" + "label": "" }, "allowMicrophone": { - "label": "Permitir microfone" + "label": "" }, "allowCamera": { - "label": "Permitir câmera" + "label": "" }, "allowGeolocation": { - "label": "Permitir geolocalização" + "label": "" + }, + "allowModals": { + "label": "" } }, "error": { "noUrl": "", "unsupportedProtocol": "", - "noBrowerSupport": "Seu navegador não suporta iframes. Atualize seu navegador." + "noBrowerSupport": "" } }, "smartHome-entityState": { @@ -1635,7 +1694,7 @@ "description": "", "option": { "entityId": { - "label": "ID da entidade" + "label": "" }, "displayName": { "label": "" @@ -1653,10 +1712,10 @@ "description": "", "option": { "displayName": { - "label": "Nome de exibição" + "label": "" }, "automationId": { - "label": "ID da automação" + "label": "" } }, "spotlightAction": { @@ -1740,14 +1799,14 @@ } }, "calendar": { - "name": "Calendário", + "name": "", "description": "", "duration": { "allDay": "" }, "option": { "releaseType": { - "label": "Tipo de libertação de Radarr", + "label": "", "options": { "inCinemas": "", "digitalRelease": "", @@ -1766,8 +1825,8 @@ } }, "weather": { - "name": "Tempo", - "description": "Apresenta a informação meteorológica actual de um local definido.", + "name": "", + "description": "", "option": { "isFormatFahrenheit": { "label": "" @@ -1783,7 +1842,7 @@ "label": "" }, "location": { - "label": "Localização do tempo" + "label": "" }, "showCity": { "label": "" @@ -1808,58 +1867,61 @@ "maxWindGusts": "" }, "kind": { - "clear": "Limpar", - "mainlyClear": "Principalmente claro", - "fog": "Névoa", - "drizzle": "Chuvisco", - "freezingDrizzle": "Chuvisco de congelação", - "rain": "Chuva", - "freezingRain": "Chuva gelada", - "snowFall": "Queda de neve", - "snowGrains": "Grãos de neve", - "rainShowers": "Duches de chuva", - "snowShowers": "Aguaceiros de neve", - "thunderstorm": "Tempestade", - "thunderstormWithHail": "Tempestade com granizo", - "unknown": "Desconhecido" + "clear": "", + "mainlyClear": "", + "fog": "", + "drizzle": "", + "freezingDrizzle": "", + "rain": "", + "freezingRain": "", + "snowFall": "", + "snowGrains": "", + "rainShowers": "", + "snowShowers": "", + "thunderstorm": "", + "thunderstormWithHail": "", + "unknown": "" } }, "indexerManager": { - "name": "Status do Gerenciador de Indexadores", + "name": "", "description": "", "option": { "openIndexerSiteInNewTab": { "label": "" } }, - "title": "Gerenciador de indexadores", - "testAll": "Testar todos", + "title": "", + "testAll": "", "error": { "internalServerError": "" } }, "healthMonitoring": { - "name": "Monitoramento da integridade do sistema", - "description": "Exibe informações que mostram a saúde e status de seu(s) sistema(s).", + "name": "", + "description": "", "tab": { "system": "", "cluster": "" }, "option": { "fahrenheit": { - "label": "Temperatura da CPU em Fahrenheit" + "label": "" }, "cpu": { - "label": "Mostrar informações da CPU" + "label": "" }, "memory": { - "label": "Mostrar informações da memória" + "label": "" + }, + "gpu": { + "label": "" }, "showUptime": { "label": "" }, "fileSystem": { - "label": "Mostrar informações do sistema de arquivos" + "label": "" }, "defaultTab": { "label": "" @@ -1882,7 +1944,7 @@ "minute": "", "minutes": "", "used": "", - "available": "Disponível", + "available": "", "lastSeen": "" }, "memory": {}, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1967,7 +2215,7 @@ "longitude": "", "disabledTooltip": "", "unknownLocation": "", - "search": "Pesquisa", + "search": "", "table": { "header": { "city": "", @@ -1979,7 +2227,7 @@ "select": "" }, "population": { - "fallback": "Desconhecido" + "fallback": "" } } }, @@ -1989,8 +2237,8 @@ }, "app": { "noData": "", - "description": "Clique para criar um aplicativo", - "quickCreate": "Criar aplicativo em tempo real" + "description": "", + "quickCreate": "" }, "error": { "noIntegration": "", @@ -1999,14 +2247,14 @@ "option": {} }, "video": { - "name": "Transmissão de vídeo", - "description": "Incorporar um stream de vídeo ou vídeo de uma câmera ou de um site", + "name": "", + "description": "", "option": { "feedUrl": { - "label": "URL do feed" + "label": "" }, "hasAutoPlay": { - "label": "Reprodução automática", + "label": "", "description": "" }, "isMuted": { @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2114,8 +2408,8 @@ "detailsTitle": "" }, "downSpeed": { - "columnTitle": "Para baixo", - "detailsTitle": "Velocidade de Transferência" + "columnTitle": "", + "detailsTitle": "" }, "index": { "columnTitle": "", @@ -2125,17 +2419,17 @@ "columnTitle": "" }, "integration": { - "columnTitle": "Integração" + "columnTitle": "" }, "name": { "columnTitle": "" }, "progress": { - "columnTitle": "Progresso", + "columnTitle": "", "detailsTitle": "" }, "ratio": { - "columnTitle": "Razão", + "columnTitle": "", "detailsTitle": "" }, "received": { @@ -2151,7 +2445,7 @@ "detailsTitle": "" }, "state": { - "columnTitle": "Estado", + "columnTitle": "", "detailsTitle": "" }, "time": { @@ -2163,20 +2457,20 @@ "detailsTitle": "" }, "upSpeed": { - "columnTitle": "Para cima", + "columnTitle": "", "detailsTitle": "" } }, "states": { - "downloading": "Baixando", + "downloading": "", "queued": "", - "paused": "Pausado", - "completed": "Concluído", + "paused": "", + "completed": "", "failed": "", "processing": "", "leeching": "", "stalled": "", - "unknown": "Desconhecido", + "unknown": "", "seeding": "" }, "actions": { @@ -2233,10 +2527,10 @@ }, "mediaRequests-requestList": { "name": "", - "description": "Veja uma lista de todas as solicitações de mídia da sua instância do Overseerr ou Jellyseerr", + "description": "", "option": { "linksTargetNewTab": { - "label": "Abrir links em uma nova guia" + "label": "" } }, "pending": { @@ -2245,12 +2539,12 @@ "decline": "" }, "availability": { - "unknown": "Desconhecido", + "unknown": "", "pending": "", "processing": "", "requested": "", - "partiallyAvailable": "Parcial", - "available": "Disponível", + "partiallyAvailable": "", + "available": "", "blacklisted": "", "deleted": "" }, @@ -2265,22 +2559,22 @@ }, "mediaRequests-requestStats": { "name": "", - "description": "Estatísticas sobre suas solicitações de mídia", + "description": "", "option": {}, "titles": { "stats": { - "main": "Estatísticas de mídia", - "approved": "Já aprovado", - "pending": "Aprovações pendentes", + "main": "", + "approved": "", + "pending": "", "processing": "", "declined": "", "available": "", - "tv": "Solicitações de TV", - "movie": "Solicitações de filmes", + "tv": "", + "movie": "", "total": "" }, "users": { - "main": "Principais usuários", + "main": "", "requests": "" } } @@ -2298,8 +2592,8 @@ }, "tab": { "workers": "", - "queue": "Fila", - "statistics": "Estatísticas" + "queue": "", + "statistics": "" }, "currentIndex": "", "healthCheck": { @@ -2312,7 +2606,7 @@ }, "panel": { "statistics": { - "empty": "Vazio", + "empty": "", "transcodes": "", "transcodesCount": "", "healthChecksCount": "", @@ -2324,21 +2618,21 @@ "videoResolutions": "" }, "workers": { - "empty": "Vazio", + "empty": "", "table": { - "file": "Ficheiro", - "eta": "TED", - "progress": "Progresso", - "transcode": "Transcodificar", + "file": "", + "eta": "", + "progress": "", + "transcode": "", "healthCheck": "" } }, "queue": { - "empty": "Vazio", + "empty": "", "table": { - "file": "Ficheiro", - "size": "Tamanho", - "transcode": "Transcodificar", + "file": "", + "size": "", + "transcode": "", "healthCheck": "" } } @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -2669,14 +3036,14 @@ "invalidError": "" }, "apps": { - "label": "Aplicativos", + "label": "", "avoidDuplicates": { "label": "", "description": "" }, "onlyImportApps": { "label": "", - "description": "Só adiciona os aplicativos, o quadro precisa ser recriado manualmente" + "description": "" } }, "name": { @@ -2686,9 +3053,9 @@ "label": "", "description": "", "option": { - "sm": "Pequeno", - "md": "Médio", - "lg": "Grande" + "sm": "", + "md": "", + "lg": "" } }, "sidebarBehavior": { @@ -2709,8 +3076,8 @@ }, "quickCreateApp": { "modal": { - "title": "Criar aplicativo em tempo real", - "createAndUse": "Criar e utilizar" + "title": "", + "createAndUse": "" } } }, @@ -2736,7 +3103,7 @@ } }, "backgroundImageAttachment": { - "label": "Anexo de imagem de fundo", + "label": "", "option": { "fixed": { "label": "", @@ -2770,7 +3137,7 @@ } }, "backgroundImageSize": { - "label": "Tamanho da imagem de fundo", + "label": "", "option": { "cover": { "label": "", @@ -2783,10 +3150,10 @@ } }, "primaryColor": { - "label": "Cor primária" + "label": "" }, "secondaryColor": { - "label": "Cor secundária" + "label": "" }, "opacity": { "label": "" @@ -2799,7 +3166,7 @@ }, "customCss": { "label": "", - "description": "Além disso, personalize seu painel usando CSS, recomendado apenas para usuários experientes", + "description": "", "customClassesAlert": { "title": "", "description": "" @@ -2824,10 +3191,10 @@ } }, "name": { - "label": "Nome" + "label": "" }, "isPublic": { - "label": "Público", + "label": "", "description": "" } }, @@ -2838,7 +3205,7 @@ "title": "", "section": { "general": { - "title": "Geral", + "title": "", "unrecognizedLink": "" }, "layout": { @@ -2851,7 +3218,7 @@ } }, "background": { - "title": "Antecedentes" + "title": "" }, "appearance": { "title": "" @@ -2867,7 +3234,7 @@ "permission": { "item": { "view": { - "label": "Exibir quadro" + "label": "" }, "modify": { "label": "" @@ -2879,7 +3246,7 @@ } }, "dangerZone": { - "title": "Zona de risco", + "title": "", "action": { "rename": { "label": "", @@ -2915,7 +3282,7 @@ "description": "", "button": "", "confirm": { - "title": "Excluir quadro", + "title": "", "description": "" } } @@ -2928,7 +3295,7 @@ "title": "", "description": "", "link": "", - "notice": "Para fazer esta página desaparecer, crie um quadro e defina-o como quadro inicial" + "notice": "" }, "notFound": { "title": "", @@ -2983,22 +3350,22 @@ }, "navbar": { "items": { - "home": "Início", - "boards": "Placas", - "apps": "Aplicativos", + "home": "", + "boards": "", + "apps": "", "integrations": "", "searchEngies": "", "medias": "", "users": { - "label": "Usuários", + "label": "", "items": { - "manage": "Gerenciar", - "invites": "Convites", + "manage": "", + "invites": "", "groups": "" } }, "tools": { - "label": "Ferramentas", + "label": "", "items": { "docker": "", "kubernetes": "", @@ -3008,33 +3375,33 @@ "tasks": "" } }, - "settings": "Configurações", + "settings": "", "help": { - "label": "Ajuda", + "label": "", "items": { - "documentation": "Documentação", + "documentation": "", "submitIssue": "", - "discord": "Discórdia da comunidade", + "discord": "", "sourceCode": "" } }, - "about": "Sobre" + "about": "" } }, "page": { "home": { "statistic": { - "board": "Placas", - "user": "Usuários", - "invite": "Convites", + "board": "", + "user": "", + "invite": "", "integration": "", - "app": "Aplicativos", + "app": "", "group": "", "searchEngine": "", "media": "" }, "statisticLabel": { - "boards": "Placas", + "boards": "", "resources": "", "authentication": "", "authorization": "" @@ -3045,7 +3412,7 @@ } }, "board": { - "title": "Suas placas", + "title": "", "action": { "new": { "label": "" @@ -3054,12 +3421,12 @@ "label": "" }, "settings": { - "label": "Configurações" + "label": "" }, "setHomeBoard": { "label": "", "badge": { - "label": "Início", + "label": "", "tooltip": "" } }, @@ -3074,9 +3441,9 @@ "label": "" }, "delete": { - "label": "Excluir permanentemente", + "label": "", "confirm": { - "title": "Excluir quadro", + "title": "", "description": "" } } @@ -3089,7 +3456,7 @@ "createBoard": { "field": { "name": { - "label": "Nome" + "label": "" } } } @@ -3103,7 +3470,7 @@ "fieldsDisabledExternalProvider": "", "setting": { "general": { - "title": "Geral", + "title": "", "item": { "language": "", "board": { @@ -3114,33 +3481,33 @@ } }, "search": "", - "firstDayOfWeek": "Primeiro dia da semana", - "accessibility": "Acessibilidade" + "firstDayOfWeek": "", + "accessibility": "" } }, "security": { - "title": "Segurança" + "title": "" }, "board": { - "title": "Placas" + "title": "" } }, "list": { - "metaTitle": "Gerenciar usuários", - "title": "Usuários" + "metaTitle": "", + "title": "" }, "edit": { "metaTitle": "" }, "create": { - "metaTitle": "Criar usuário", + "metaTitle": "", "title": "", "step": { "personalInformation": { "label": "" }, "security": { - "label": "Segurança" + "label": "" }, "groups": { "label": "", @@ -3163,21 +3530,21 @@ } }, "invite": { - "title": "Gerenciar convites de usuários", + "title": "", "action": { "new": { "title": "", - "description": "Após a expiração, um convite não será mais válido e o destinatário do convite não poderá criar uma conta." + "description": "" }, "copy": { "title": "", "description": "", - "link": "Link do convite", + "link": "", "button": "" }, "delete": { - "title": "Excluir convite", - "description": "Tem certeza de que deseja excluir este convite? Os usuários com esse link não poderão mais criar uma conta usando esse link." + "title": "", + "description": "" } }, "field": { @@ -3185,10 +3552,10 @@ "label": "" }, "creator": { - "label": "Criador" + "label": "" }, "expirationDate": { - "label": "Data de expiração" + "label": "" }, "token": { "label": "" @@ -3200,8 +3567,8 @@ "back": "", "setting": { "general": { - "title": "Geral", - "owner": "Dono", + "title": "", + "owner": "", "ownerOfGroup": "", "ownerOfGroupDeleted": "" }, @@ -3226,7 +3593,7 @@ } }, "settings": { - "title": "Configurações", + "title": "", "notification": { "success": { "message": "" @@ -3276,7 +3643,7 @@ } }, "board": { - "title": "Placas", + "title": "", "homeBoard": { "label": "", "mobileLabel": "", @@ -3309,10 +3676,11 @@ } }, "appearance": { - "title": "Aparência", + "title": "", "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3331,14 +3699,17 @@ "title": "", "status": { "idle": "", - "running": "Em execução", - "error": "Erro", + "running": "", + "error": "", "disabled": "" }, "job": { "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3352,7 +3723,7 @@ "label": "" }, "mediaServer": { - "label": "Servidor de Mídia" + "label": "" }, "mediaOrganizer": { "label": "" @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3492,7 +3869,7 @@ }, "tab": { "documentation": { - "label": "Documentação" + "label": "" }, "apiKey": { "label": "", @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3562,17 +3943,17 @@ }, "field": { "name": { - "label": "Nome" + "label": "" }, "state": { - "label": "Estado", + "label": "", "option": { - "created": "Criado", - "running": "Em execução", - "paused": "Pausado", - "restarting": "Recomeço", + "created": "", + "running": "", + "paused": "", + "restarting": "", "exited": "", - "removing": "Remoção", + "removing": "", "dead": "" } }, @@ -3585,16 +3966,19 @@ } }, "containerImage": { - "label": "Imagem" + "label": "" }, "ports": { - "label": "Portas" + "label": "" + }, + "host": { + "label": "" } }, "action": { "title": "", "start": { - "label": "Iniciar", + "label": "", "notification": { "success": { "title": "", @@ -3607,7 +3991,7 @@ } }, "stop": { - "label": "Parar", + "label": "", "notification": { "success": { "title": "", @@ -3620,7 +4004,7 @@ } }, "restart": { - "label": "Reiniciar", + "label": "", "notification": { "success": { "title": "", @@ -3633,7 +4017,7 @@ } }, "remove": { - "label": "Excluir", + "label": "", "notification": { "success": { "title": "", @@ -3928,13 +4312,13 @@ "title": "" }, "tab": { - "user": "Usuários", + "user": "", "group": "", "inherited": "" }, "field": { "user": { - "label": "Usuário" + "label": "" }, "group": { "label": "" @@ -3950,14 +4334,14 @@ }, "navigationStructure": { "manage": { - "label": "Gerenciar", + "label": "", "boards": { - "label": "Placas" + "label": "" }, "integrations": { "label": "", "edit": { - "label": "Editar" + "label": "" }, "new": { "label": "" @@ -3969,38 +4353,38 @@ "label": "" }, "edit": { - "label": "Editar" + "label": "" } }, "medias": { "label": "" }, "apps": { - "label": "Aplicativos", + "label": "", "new": { "label": "" }, "edit": { - "label": "Editar" + "label": "" } }, "users": { - "label": "Usuários", + "label": "", "create": { - "label": "Criar" + "label": "" }, - "general": "Geral", - "security": "Segurança", - "board": "Placas", + "general": "", + "security": "", + "board": "", "groups": { "label": "" }, "invites": { - "label": "Convites" + "label": "" } }, "tools": { - "label": "Ferramentas", + "label": "", "tasks": { "label": "" }, @@ -4045,10 +4429,10 @@ } }, "settings": { - "label": "Configurações" + "label": "" }, "about": { - "label": "Sobre" + "label": "" } } }, @@ -4063,7 +4447,7 @@ "help": "", "group": { "app": { - "title": "Aplicativos", + "title": "", "children": { "action": { "open": { @@ -4079,7 +4463,7 @@ } }, "board": { - "title": "Placas", + "title": "", "children": { "action": { "open": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4133,7 +4518,7 @@ "label": "" }, "newApp": { - "label": "Criar aplicativo" + "label": "" }, "newIntegration": { "label": "", @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { @@ -4193,7 +4586,7 @@ "description": "" }, "torrent": { - "name": "Torrentes", + "name": "", "description": "" }, "youTube": { @@ -4210,16 +4603,16 @@ "title": "" }, "help": { - "title": "Ajuda", + "title": "", "option": { "documentation": { - "label": "Documentação" + "label": "" }, "submitIssue": { "label": "" }, "discord": { - "label": "Discórdia da comunidade" + "label": "" } } } @@ -4275,7 +4668,7 @@ "label": "" }, "manageUser": { - "label": "Gerenciar usuários" + "label": "" }, "manageInvite": { "label": "" @@ -4299,13 +4692,13 @@ "label": "" }, "about": { - "label": "Sobre" + "label": "" }, "homeBoard": { "label": "" }, "preferences": { - "label": "Suas preferências" + "label": "" } } } @@ -4315,7 +4708,7 @@ "help": "", "group": { "user": { - "title": "Usuários", + "title": "", "children": { "action": { "detail": { @@ -4353,7 +4746,7 @@ "search": "", "field": { "name": { - "label": "Nome" + "label": "" }, "short": { "label": "" diff --git a/packages/translation/src/lang/ro.json b/packages/translation/src/lang/ro.json index 09786d63e..559f78e58 100644 --- a/packages/translation/src/lang/ro.json +++ b/packages/translation/src/lang/ro.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "Zonă periculoasă", "noResults": "Nici un rezultat găsit", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Agendă", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "Încorporați orice conținut de pe internet. Unele site-uri web pot restricționa accesul.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Permiteți geolocalizarea" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Afișare informații memorie" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Porturi" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/ru.json b/packages/translation/src/lang/ru.json index 480652c20..11d073d13 100644 --- a/packages/translation/src/lang/ru.json +++ b/packages/translation/src/lang/ru.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Открыть результаты поиска в новой вкладке" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Изменить изображение", @@ -612,17 +625,17 @@ "select": { "label": "Выбрать приложение", "notFound": "Приложения не найдены", - "search": "", - "noResults": "", - "action": "", - "title": "" + "search": "Поиск приложения", + "noResults": "Нет результатов", + "action": "Выбрать {app}", + "title": "Выберите приложение для добавления на панель" }, "create": { - "title": "", - "description": "", - "action": "" + "title": "Создать приложение", + "description": "Создать новое приложение ", + "action": "Открыть создание приложения" }, - "add": "" + "add": "Добавить приложение" } }, "integration": { @@ -649,14 +662,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Существующее", + "label": "Выберите существующее приложение" }, "new": { - "title": "", + "title": "Новое", "url": { - "label": "", - "description": "" + "label": "URL приложения", + "description": "URL, который откроется при переходе к приложению с панели" } } } @@ -676,9 +689,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Привязать приложение", + "remove": "Отвязать", + "select": "Выберите приложение для привязки" } } }, @@ -709,14 +722,14 @@ "description": "Интеграцию \"{kind}\" можно использовать с поисковыми системами. Включите эту опцию для автоматической настройки поисковой системы." }, "app": { - "sectionTitle": "" + "sectionTitle": "Привязанное приложение" }, "createApp": { - "label": "", - "description": "" + "label": "Создать приложение", + "description": "Создать приложение с тем же названием и значком, что и у интеграции. Оставьте поле ниже пустым, чтобы использовать URL интеграции." }, "appHref": { - "placeholder": "" + "placeholder": "Свой URL приложения" } }, "action": { @@ -730,125 +743,125 @@ "error": { "common": { "cause": { - "title": "" + "title": "Причина с подробностями" } }, "unknown": { - "title": "", - "description": "" + "title": "Неизвестная ошибка", + "description": "Произошла неизвестная ошибка. Раскройте причину ниже для получения подробностей" }, "parse": { - "title": "", - "description": "" + "title": "Ошибка разбора", + "description": "Не удалось разобрать ответ. Убедитесь, что URL указывает на базовый адрес сервиса." }, "authorization": { - "title": "", - "description": "" + "title": "Ошибка авторизации", + "description": "Запрос не был авторизован. Убедитесь, что учётные данные верны и имеют достаточные права доступа." }, "statusCode": { - "title": "", - "description": "", - "otherDescription": "", + "title": "Ошибка ответа", + "description": "Получен неожиданный ответ {statusCode} ({reason}) от . Убедитесь, что URL указывает на базовый адрес интеграции.", + "otherDescription": "Получен неожиданный ответ {statusCode} от . Убедитесь, что URL указывает на базовый адрес интеграции.", "reason": { - "badRequest": "", - "notFound": "", - "tooManyRequests": "", - "internalServerError": "", - "serviceUnavailable": "", - "gatewayTimeout": "" + "badRequest": "Неверный запрос", + "notFound": "Не найдено", + "tooManyRequests": "Слишком много запросов", + "internalServerError": "Внутренняя ошибка сервера", + "serviceUnavailable": "Сервис недоступен", + "gatewayTimeout": "Тайм-аут шлюза" } }, "certificate": { - "title": "", + "title": "Ошибка сертификата", "description": { - "expired": "", - "notYetValid": "", - "untrusted": "", - "hostnameMismatch": "" + "expired": "Срок действия сертификата истёк.", + "notYetValid": "Сертификат ещё не вступил в силу.", + "untrusted": "Сертификат не является доверенным.", + "hostnameMismatch": "Имя хоста в сертификате не совпадает с URL." }, "alert": { "permission": { - "title": "", - "message": "" + "title": "Недостаточно прав", + "message": "У вас нет прав для добавления доверенных сертификатов или их загрузки. Обратитесь к администратору для загрузки необходимого корневого сертификата." }, "hostnameMismatch": { - "title": "", - "message": "" + "title": "Несовпадение имени хоста", + "message": "Имя хоста в сертификате не совпадает с именем хоста, к которому вы подключаетесь. Это может указывать на угрозу безопасности, но вы всё равно можете добавить этот сертификат в доверенные." }, "extract": { - "title": "", - "message": "" + "title": "Не удалось извлечь CA-сертификат", + "message": "Автоматически можно получить только самоподписанные сертификаты без цепочки. Если вы используете самоподписанный сертификат, загрузите CA-сертификат вручную. Инструкции доступны ." } }, "action": { "retry": { - "label": "" + "label": "Повторить создание" }, "trust": { - "label": "" + "label": "Доверять сертификату" }, "upload": { - "label": "" + "label": "Загрузить сертификат" } }, "hostnameMismatch": { "confirm": { - "title": "", - "message": "" + "title": "Доверять при несовпадении имени хоста", + "message": "Вы уверены, что хотите доверять сертификату с несовпадающим именем хоста?" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Сертификат добавлен в доверенные", + "message": "Имя хоста добавлено в список доверенных сертификатов" }, "error": { - "title": "", - "message": "" + "title": "Не удалось добавить сертификат в доверенные", + "message": "Не удалось добавить сертификат с несовпадающим именем хоста в доверенные" } } }, "selfSigned": { "confirm": { - "title": "", - "message": "" + "title": "Доверять самоподписанному сертификату", + "message": "Вы уверены, что хотите доверять этому самоподписанному сертификату?" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Сертификат добавлен в доверенные", + "message": "Сертификат добавлен в список доверенных сертификатов" }, "error": { - "title": "", - "message": "" + "title": "Не удалось добавить сертификат в доверенные", + "message": "Не удалось добавить сертификат в список доверенных сертификатов" } } }, "details": { - "title": "", - "description": "", + "title": "Подробности", + "description": "Ознакомьтесь с информацией о сертификате, прежде чем принимать решение о доверии.", "content": { - "action": "", - "title": "" + "action": "Показать содержимое", + "title": "PEM-сертификат" } } }, "request": { - "title": "", + "title": "Ошибка запроса", "description": { "connection": { - "hostUnreachable": "", - "networkUnreachable": "", - "refused": "", - "reset": "" + "hostUnreachable": "Не удалось связаться с сервером. Обычно это означает, что хост выключен или недоступен из вашей сети.", + "networkUnreachable": "Сеть недоступна. Проверьте подключение к интернету или сетевые настройки.", + "refused": "Сервер отклонил подключение. Возможно, он не запущен или отклоняет запросы на указанном порту.", + "reset": "Соединение было неожиданно закрыто сервером. Это может произойти, если сервер нестабилен или перезапускается." }, "dns": { - "notFound": "", - "timeout": "", - "noAnswer": "" + "notFound": "Не удалось найти адрес сервера. Проверьте URL на опечатки или недопустимые доменные имена.", + "timeout": "Истекло время ожидания DNS-запроса. Это может быть временной проблемой — попробуйте ещё раз через несколько минут.", + "noAnswer": "DNS-сервер не вернул корректный ответ. Домен может существовать, но не имеет действительных записей." }, "timeout": { - "aborted": "", - "timeout": "" + "aborted": "Запрос был прерван до завершения. Это может быть вызвано действием пользователя или системным тайм-аутом.", + "timeout": "Время ожидания запроса истекло. Проверьте сеть или попробуйте позже." } } } @@ -920,8 +933,8 @@ "message": "Возможно, указан неверный путь" }, "tooManyRequests": { - "title": "", - "message": "" + "title": "Слишком много запросов за короткое время", + "message": "Отправлено слишком много запросов. Вероятно, целевая система ограничивает частоту запросов или отклоняет их" } } }, @@ -963,36 +976,36 @@ "newLabel": "Новая область" }, "personalAccessToken": { - "label": "", - "newLabel": "" + "label": "Персональный токен доступа", + "newLabel": "Новый персональный токен доступа" }, "topic": { - "label": "", - "newLabel": "" + "label": "Тема", + "newLabel": "Новая тема" }, "url": { - "label": "", - "newLabel": "" + "label": "URL", + "newLabel": "Новый URL" }, "opnsenseApiKey": { - "label": "", - "newLabel": "" + "label": "API-ключ (Key)", + "newLabel": "Новый API-ключ (Key)" }, "opnsenseApiSecret": { - "label": "", - "newLabel": "" + "label": "API-ключ (Secret)", + "newLabel": "Новый API-ключ (Secret)" }, "githubAppId": { - "label": "", - "newLabel": "" + "label": "App Id", + "newLabel": "Новый App Id" }, "githubInstallationId": { - "label": "", - "newLabel": "" + "label": "Installation Id", + "newLabel": "Новый Installation Id" }, "privateKey": { - "label": "", - "newLabel": "" + "label": "Приватный ключ", + "newLabel": "Новый приватный ключ" } } }, @@ -1044,14 +1057,14 @@ } }, "common": { - "success": "", + "success": "Успешно", "beta": "Бета", "error": "Ошибка", "action": { "add": "Добавить", "apply": "Применить", "backToOverview": "Вернуться к обзору", - "change": "", + "change": "Изменить", "create": "Создать", "createAnother": "Создать и начать заново", "edit": "Редактировать", @@ -1063,7 +1076,7 @@ "cancel": "Отмена", "delete": "Удалить", "discard": "Отменить", - "close": "", + "close": "Закрыть", "confirm": "Подтвердить", "continue": "Продолжить", "previous": "Назад", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Светлая", "dark": "Тёмная" } @@ -1138,6 +1152,9 @@ "dangerZone": "Опасная зона", "noResults": "Ничего не найдено", "unsavedChanges": "У вас есть несохранённые изменения!", + "servers": "Серверы", + "applications": "Приложения", + "services": "Сервисы", "preview": { "show": "Показать предпросмотр", "hide": "Скрыть предпросмотр" @@ -1174,8 +1191,8 @@ }, "unit": { "speed": { - "kilometersPerHour": "", - "milesPerHour": "" + "kilometersPerHour": "км/ч", + "milesPerHour": "миль/ч" } } }, @@ -1187,10 +1204,10 @@ }, "option": { "title": { - "label": "" + "label": "Заголовок" }, "customCssClasses": { - "label": "" + "label": "Пользовательские CSS классы" }, "borderColor": { "label": "Цвет границы" @@ -1288,13 +1305,13 @@ "label": "Интеграции" }, "title": { - "label": "" + "label": "Заголовок" }, "customCssClasses": { "label": "Пользовательские CSS классы" }, "borderColor": { - "label": "" + "label": "Цвет границы" } } }, @@ -1321,21 +1338,21 @@ "label": "Включить простую проверку доступности" }, "layout": { - "label": "", + "label": "Расположение", "option": { - "row": "", - "row-reverse": "", - "column": "", - "column-reverse": "" + "row": "Горизонтально", + "row-reverse": "Горизонтально (наоборот)", + "column": "Вертикально", + "column-reverse": "Вертикально (наоборот)" } }, "descriptionDisplayMode": { - "label": "", - "description": "", + "label": "Режим отображения описания", + "description": "Выберите, как отображать описание", "option": { - "normal": "", - "tooltip": "", - "hidden": "" + "normal": "Внутри виджета", + "tooltip": "Как подсказка", + "hidden": "Скрыто" } } }, @@ -1366,12 +1383,12 @@ "label": "Сетка" }, "gridHorizontal": { - "label": "" + "label": "Горизонтальная сетка" } } }, "hideTitle": { - "label": "" + "label": "Скрыть заголовок" }, "hideIcon": { "label": "Скрывать иконки" @@ -1448,8 +1465,8 @@ "internalServerError": "Не удалось управлять DNS-фильтром" }, "controls": { - "enableAll": "Включить защиту", - "disableAll": "Отключить защиту", + "enableAll": "Включить всё", + "disableAll": "Отключить всё", "setTimer": "Установить таймер", "set": "Установить", "enabled": "Включено", @@ -1522,8 +1539,19 @@ "offline": "Не в сети" } }, + "timetable": { + "name": "Расписание", + "description": "Отображает время отправления со станции", + "title": "Отправления {station}", + "noStation": "Станция не выбрана", + "option": { + "station": { + "label": "Станция" + } + } + }, "notebook": { - "name": "Заметки", + "name": "Блокнот", "description": "Простой виджет заметок с поддержкой markdown", "option": { "showToolbar": { @@ -1574,7 +1602,7 @@ "right": "По правому краю" }, "popover": { - "clearColor": "Очистить цвет", + "clearColor": "Сбросить цвет", "source": "Источник", "widthPlaceholder": "Значение в % или пикселях", "columns": "Столбцы", @@ -1582,16 +1610,44 @@ "width": "Ширина", "height": "Высота" }, - "placeholder": "", + "placeholder": "Начните писать заметки", "dismiss": { - "title": "", - "message": "", + "title": "Отменить изменения?", + "message": "У вас есть несохранённые изменения в блокноте. Вы уверены, что хотите их отменить?", "action": { - "discard": "", - "keepEditing": "" + "discard": "Отменить изменения", + "keepEditing": "Продолжить редактирование" } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "Встраивает любой контент из интернета. Некоторые сайты могут ограничивать доступ.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Разрешить геолокацию" + }, + "allowModals": { + "label": "Разрешить модальные окна" } }, "error": { @@ -1664,76 +1723,76 @@ } }, "stockPrice": { - "name": "", - "description": "", + "name": "Цена акций", + "description": "Отображает текущую цену акций компании", "option": { "stock": { - "label": "" + "label": "Тикер акции" }, "timeRange": { - "label": "", + "label": "Временной диапазон", "option": { "1d": { - "label": "" + "label": "1 день" }, "5d": { - "label": "" + "label": "5 дней" }, "1mo": { - "label": "" + "label": "1 месяц" }, "3mo": { - "label": "" + "label": "3 месяца" }, "6mo": { - "label": "" + "label": "6 месяцев" }, "ytd": { - "label": "" + "label": "С начала года" }, "1y": { - "label": "" + "label": "1 год" }, "2y": { - "label": "" + "label": "2 года" }, "5y": { - "label": "" + "label": "5 лет" }, "10y": { - "label": "" + "label": "10 лет" }, "max": { - "label": "" + "label": "Максимум" } } }, "timeInterval": { - "label": "", + "label": "Временной интервал", "option": { "5m": { - "label": "" + "label": "5 минут" }, "15m": { - "label": "" + "label": "15 минут" }, "30m": { - "label": "" + "label": "30 минут" }, "1h": { - "label": "" + "label": "1 час" }, "1d": { - "label": "" + "label": "1 день" }, "5d": { - "label": "" + "label": "5 дней" }, "1wk": { - "label": "" + "label": "1 неделя" }, "1mo": { - "label": "" + "label": "1 месяц" } } } @@ -1743,7 +1802,7 @@ "name": "Календарь", "description": "Отображает события из ваших интеграций в календаре в определённом временном периоде", "duration": { - "allDay": "" + "allDay": "Весь день" }, "option": { "releaseType": { @@ -1761,7 +1820,7 @@ "label": "Заканчивая" }, "showUnmonitored": { - "label": "" + "label": "Показывать неотслеживаемые" } } }, @@ -1780,7 +1839,7 @@ "description": "Только для текущей погоды" }, "useImperialSpeed": { - "label": "" + "label": "Использовать мили/ч для скорости ветра" }, "location": { "label": "Местоположение" @@ -1800,12 +1859,12 @@ "description": "Как должна отображаться дата" } }, - "currentWindSpeed": "{currentWindSpeed} км/ч", + "currentWindSpeed": "{currentWindSpeed} {unit}", "dailyForecast": { "sunrise": "Восход", "sunset": "Закат", - "maxWindSpeed": "Макс. скорость ветра: {maxWindSpeed} км/ч", - "maxWindGusts": "Макс. порывы ветра: {maxWindGusts} км/ч" + "maxWindSpeed": "Макс. скорость ветра: {maxWindSpeed} {unit}", + "maxWindGusts": "Макс. порывы ветра: {maxWindGusts} {unit}" }, "kind": { "clear": "Ясно", @@ -1847,7 +1906,7 @@ }, "option": { "fahrenheit": { - "label": "Температура CPU в градусах Фаренгейта" + "label": "Температура ЦП в градусах Фаренгейта" }, "cpu": { "label": "Показывать информацию о процессоре" @@ -1855,8 +1914,11 @@ "memory": { "label": "Показать информацию о памяти" }, + "gpu": { + "label": "Показать информацию о GPU" + }, "showUptime": { - "label": "" + "label": "Показывать время работы" }, "fileSystem": { "label": "Показать информацию о файловой системе" @@ -1865,7 +1927,7 @@ "label": "Вкладка по умолчанию" }, "visibleClusterSections": { - "label": "" + "label": "Видимые секции кластера" }, "sectionIndicatorRequirement": { "label": "Пороговое значение индикатора раздела" @@ -1937,26 +1999,212 @@ } }, "dockerContainers": { - "name": "", - "description": "", + "name": "Статистика Docker", + "description": "Статистика контейнеров (этот виджет можно добавить только с правами администратора)", "option": { "enableRowSorting": { - "label": "" + "label": "Включить сортировку элементов" }, "defaultSort": { - "label": "", + "label": "Столбец сортировки по умолчанию", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "Имя", + "state": "Состояние", + "cpuUsage": "Использование ЦП", + "memoryUsage": "Использование памяти" } }, "descendingDefaultSort": { - "label": "" + "label": "Обратная сортировка" } }, "error": { + "internalServerError": "Не удалось получить статистику контейнеров" + } + }, + "coolify": { + "name": "Coolify", + "description": "Обзор вашего экземпляра Coolify с серверами и приложениями", + "option": { + "showServers": { + "label": "Показывать серверы" + }, + "showApplications": { + "label": "Показывать приложения" + }, + "showServices": { + "label": "Показывать сервисы" + } + }, + "empty": { + "servers": "Серверы не найдены", + "applications": "Приложения не найдены", + "services": "Сервисы не найдены" + }, + "footer": { + "updated": "Обновлено {when}" + }, + "error": { + "noIntegration": "Интеграция с Coolify не настроена", + "internalServerError": "Не удалось получить данные Coolify" + }, + "server": { + "buildServer": "Сборка" + }, + "instances": { + "title": "Экземпляры" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Мониторинг медиасервера с детальной информацией о потоках и транскодировании", + "option": { + "showStreams": { + "label": "Показать активные потоки" + }, + "showStats": { + "label": "Показать сводку статистики" + }, + "showRecentActivity": { + "label": "Показать недавнюю активность" + }, + "showViolations": { + "label": "Показать нарушения" + } + }, + "stats": { + "activeStreams": "Активные потоки", + "totalUsers": "Всего пользователей", + "transcodes": "Транскодирования", + "bandwidth": "Пропускная способность" + }, + "streams": { + "empty": "Нет активных потоков", + "user": "Пользователь", + "media": "Медиа", + "state": "Состояние", + "quality": "Качество", + "device": "Устройство", + "progress": "Прогресс", + "videoDecision": { + "directPlay": "Прямое воспроизведение", + "transcode": "Транскодирование", + "directStream": "Прямой поток" + } + }, + "recentActivity": { + "title": "Недавняя активность", + "empty": "Нет недавней активности", + "watched": "Просмотрено", + "partial": "Частично" + }, + "violations": { + "title": "Нарушения", + "empty": "Нет недавних нарушений", + "rule": "Правило", + "user": "Пользователь" + }, + "noSectionsEnabled": "Секции не включены", + "error": { + "noIntegration": "Интеграция Tracearr не настроена", + "internalServerError": "Не удалось получить данные Tracearr" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", "internalServerError": "" } }, @@ -2026,35 +2274,81 @@ "description": "Отображает текущие сеансы воспроизведения на медиасерверах", "option": { "showOnlyPlaying": { - "label": "", - "description": "" + "label": "Показывать только воспроизводимое", + "description": "Отключение этой опции не работает для Plex" } }, "items": { - "currentlyPlaying": "", + "currentlyPlaying": "Сейчас воспроизводится", "user": "Пользователь", "name": "Название", "id": "Id", "metadata": { - "title": "", + "title": "Техническая информация", "video": { - "title": "", - "resolution": "" + "title": "Видео", + "resolution": "Разрешение" }, "audio": { - "title": "", - "channelCount": "", - "codec": "" + "title": "Аудио", + "channelCount": "Аудиоканалы", + "codec": "Аудиокодек" }, "transcoding": { - "title": "", - "container": "", - "resolution": "", - "target": "" + "title": "Транскодирование", + "container": "Контейнер", + "resolution": "Разрешение", + "target": "Целевой кодек" } } } }, + "immich-serverStats": { + "name": "Статистика сервера Immich", + "description": "Информация о вашем экземпляре Immich", + "option": { + "showUsers": { + "label": "Показать пользователей", + "description": "Показать количество пользователей на вашем экземпляре" + }, + "showPhotos": { + "label": "Показать фото", + "description": "Показать количество фотографий на вашем экземпляре" + }, + "showVideos": { + "label": "Показать видео", + "description": "Показать количество видео на вашем экземпляре" + }, + "showStorage": { + "label": "Показать хранилище", + "description": "Показать общий объём используемого хранилища" + } + }, + "users": "Пользователи", + "photos": "Фото", + "videos": "Видео", + "storage": "Занято" + }, + "immich-albumCarousel": { + "name": "Альбом Immich", + "option": { + "albumId": { + "label": "ID альбома", + "description": "Уникальный идентификатор вашего альбома Immich. Его можно найти, открыв альбом и скопировав уникальную строку из URL, например 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Интервал в секундах", + "description": "Переключать фотографии в альбоме каждые X секунд. Минимум 1. Максимум 3600." + }, + "showPhotoInfo": { + "label": "Показать информацию о фото", + "description": "Отображать дату снимка и текущий номер в нижней части слайд-шоу" + } + }, + "description": "Слайд-шоу фотографий из вашего альбома Immich", + "noAlbumSelected": "Альбом не выбран — отредактируйте виджет и выберите альбом", + "noPhotos": "В этом альбоме нет фотографий" + }, "downloads": { "name": "Загрузки", "description": "Позволяет просматривать и управлять загрузками как из торрент-клиентов, так и из Usenet-клиентов.", @@ -2078,7 +2372,7 @@ "label": "Показывать завершённые торренты" }, "showCompletedHttp": { - "label": "" + "label": "Показывать завершённые записи категории «Разное»" }, "activeTorrentThreshold": { "label": "Скрывать завершённые торренты ниже этого порога (в КиБ/с)" @@ -2093,8 +2387,8 @@ "label": "Использовать фильтр при расчёте рейтинга" }, "limitPerIntegration": { - "label": "", - "description": "" + "label": "Лимит элементов на интеграцию", + "description": "Ограничивает количество отображаемых элементов для каждой интеграции, а не глобально" } }, "errors": { @@ -2203,32 +2497,32 @@ "globalRatio": "Общий рейтинг" }, "mediaReleases": { - "name": "", - "description": "", + "name": "Медиарелизы", + "description": "Отображает новые или предстоящие релизы из различных интеграций", "option": { "layout": { - "label": "", + "label": "Макет", "option": { "backdrop": { - "label": "" + "label": "Фон" }, "poster": { - "label": "" + "label": "Постер" } } }, "showDescriptionTooltip": { - "label": "" + "label": "Показывать подсказку с описанием" }, "showType": { - "label": "" + "label": "Показывать тип медиа" }, "showSource": { - "label": "" + "label": "Показывать источник интеграции" } }, "length": { - "duration": "" + "duration": "{length} мин" } }, "mediaRequests-requestList": { @@ -2248,18 +2542,18 @@ "unknown": "Неизвестно", "pending": "В ожидании", "processing": "Обработка", - "requested": "", + "requested": "Запрошено", "partiallyAvailable": "Частично доступно", "available": "Доступно", - "blacklisted": "", - "deleted": "" + "blacklisted": "В чёрном списке", + "deleted": "Удалено" }, "status": { "pending": "В ожидании", "approved": "Одобрено", "declined": "Отклонено", "failed": "Ошибка", - "completed": "" + "completed": "Завершено" }, "toBeDetermined": "Будет определено позже" }, @@ -2314,10 +2608,10 @@ "statistics": { "empty": "Пусто", "transcodes": "Перекодировано", - "transcodesCount": "Перекодировано: {value}", - "healthChecksCount": "Проверок: {value}", - "filesCount": "Файлов: {value}", - "savedSpace": "Сэкономлено места: {value}", + "transcodesCount": "Перекодировано", + "healthChecksCount": "Проверок", + "filesCount": "Файлов", + "savedSpace": "Сэкономлено места", "healthChecks": "Проверки работоспособности", "videoCodecs": "Кодеки", "videoContainers": "Контейнеры", @@ -2361,126 +2655,129 @@ "label": "Максимальное количество записей" }, "hideDescription": { + "label": "Скрыть описание" + }, + "showPosterImage": { "label": "" } } }, "releases": { - "name": "", - "description": "", + "name": "Релизы", + "description": "Отображает список текущих версий указанных репозиториев с заданным регулярным выражением версии.", "option": { "newReleaseWithin": { - "label": "", - "description": "" + "label": "Новый релиз в пределах", + "description": "Пример: 1w (1 неделя), 10M (10 месяцев). Допустимые единицы: h (часы), d (дни), w (недели), M (месяцы), y (годы). Оставьте пустым, чтобы не выделять новые релизы." }, "staleReleaseWithin": { - "label": "", - "description": "" + "label": "Устаревший релиз в пределах", + "description": "Пример: 1w (1 неделя), 10M (10 месяцев). Допустимые единицы: h (часы), d (дни), w (недели), M (месяцы), y (годы). Оставьте пустым, чтобы не выделять устаревшие релизы." }, "showOnlyHighlighted": { - "label": "", - "description": "" + "label": "Показывать только выделенные", + "description": "Показывать только новые или устаревшие релизы в соответствии с настройками выше." }, "showDetails": { - "label": "" + "label": "Показывать подробности" }, "showOnlyIcon": { - "label": "" + "label": "Показывать только иконку" }, "topReleases": { - "label": "", - "description": "" + "label": "Количество релизов", + "description": "Максимальное количество последних релизов для отображения. Ноль - без ограничений." }, "repositories": { - "label": "", + "label": "Репозитории", "addRepository": { - "label": "" + "label": "Добавить репозиторий" }, "importRepositories": { - "label": "", - "loading": "", - "noImagesFound": "", - "listFoundImages": "", - "listAlreadyImportedImages": "", - "allImagesAlreadyImported": "", - "onlyAdminCanImport": "", - "selectAll": "", - "deselectAll": "" + "label": "Импорт из Docker", + "loading": "Загрузка образов Docker", + "noImagesFound": "Образы Docker не найдены", + "listFoundImages": "Список найденных образов", + "listAlreadyImportedImages": "Список уже импортированных образов", + "allImagesAlreadyImported": "Все образы уже импортированы", + "onlyAdminCanImport": "Только администраторы могут импортировать из Docker", + "selectAll": "Выбрать все", + "deselectAll": "Снять выделение" }, "provider": { - "label": "" + "label": "Провайдер" }, "identifier": { - "label": "", - "placeholder": "" + "label": "Идентификатор", + "placeholder": "Имя или Владелец/Имя" }, "name": { - "label": "" + "label": "Название" }, "versionFilter": { - "label": "", + "label": "Фильтр версий", "prefix": { - "label": "" + "label": "Префикс" }, "precision": { - "label": "", + "label": "Точность", "options": { - "none": "" + "none": "Нет" } }, "suffix": { - "label": "" + "label": "Суффикс" }, "regex": { - "label": "" + "label": "Регулярное выражение" } }, "edit": { - "label": "" + "label": "Редактировать" }, "editForm": { - "title": "", + "title": "Редактирование репозитория", "cancel": { - "label": "" + "label": "Отмена" }, "confirm": { - "label": "" + "label": "Подтвердить" } }, "importForm": { - "title": "" + "title": "Импорт из Docker" }, "example": { - "label": "" + "label": "Пример" }, - "invalid": "", + "invalid": "Неверное определение репозитория, проверьте значения", "noProvider": { - "label": "", - "tooltip": "" + "label": "Нет провайдера", + "tooltip": "Не удалось определить провайдер, укажите его вручную после импорта образов" } } }, - "not-found": "", - "pre-release": "", - "archived": "", - "forked": "", - "starsCount": "", - "forksCount": "", - "issuesCount": "", - "markViewed": "", - "openProjectPage": "", - "openReleasePage": "", - "releaseDescription": "", - "projectDescription": "", - "created": "", + "not-found": "Не найдено", + "pre-release": "Предварительный релиз", + "archived": "В архиве", + "forked": "Форк", + "starsCount": "Звёзды", + "forksCount": "Форки", + "issuesCount": "Открытые issues", + "markViewed": "Отметить как просмотренное", + "openProjectPage": "Открыть страницу проекта", + "openReleasePage": "Открыть страницу релиза", + "releaseDescription": "Описание релиза", + "projectDescription": "Описание проекта", + "created": "Создано", "error": { - "label": "", + "label": "Ошибка", "messages": { - "invalidIdentifier": "", - "noMatchingVersion": "", - "noReleasesFound": "", - "noProviderSeleceted": "", - "noProviderResponse": "" + "invalidIdentifier": "Неверный идентификатор", + "noMatchingVersion": "Подходящая версия не найдена", + "noReleasesFound": "Релизы не найдены", + "noProviderSeleceted": "Провайдер не выбран", + "noProviderResponse": "Нет ответа от провайдера" } } }, @@ -2488,125 +2785,195 @@ "option": {}, "card": { "vpn": { - "countConnected": "" + "countConnected": "{count} подключено" } }, "error": { - "integrationsDisconnected": "", - "unknownContentOption": "" + "integrationsDisconnected": "Нет данных, все интеграции отключены", + "unknownContentOption": "Неизвестный параметр содержимого для виджета сводки сетевого контроллера: " }, - "name": "", - "description": "" + "name": "Сводка сетевого контроллера", + "description": "Отображает сводку сетевого контроллера (например, UniFi Controller)" }, "networkControllerStatus": { "card": { "variants": { "wired": { - "name": "" + "name": "Проводное" }, "wifi": { - "name": "" + "name": "Wi-Fi" } }, "users": { - "label": "" + "label": "Пользователи" }, "guests": { - "label": "" + "label": "Гости" } }, "option": { "content": { "option": { "wifi": { - "label": "" + "label": "Wi-Fi" }, "wired": { - "label": "" + "label": "Проводное" } }, - "label": "" + "label": "Содержимое виджета" } }, "error": { - "integrationsDisconnected": "", - "unknownContentOption": "" + "integrationsDisconnected": "Нет данных, все интеграции отключены", + "unknownContentOption": "Неизвестный параметр содержимого для виджета состояния сети: " }, - "name": "", - "description": "" + "name": "Состояние сети", + "description": "Отображает подключённые устройства в сети" }, "networkController": { "error": { - "internalServerError": "" + "internalServerError": "Не удалось получить сводку сетевого контроллера" } }, "firewall": { - "name": "", - "description": "", + "name": "Мониторинг межсетевого экрана", + "description": "Отображает сводку межсетевых экранов", "tab": { - "system": "", - "interfaces": "" + "system": "Система", + "interfaces": "Интерфейсы" }, "error": { - "internalServerError": "" + "internalServerError": "Не удалось получить данные от межсетевого экрана" }, "option": { - "interfaces": "" + "interfaces": "Сетевые интерфейсы для отображения" }, "widget": { - "fwname": "", - "version": "", - "versiontitle": "", - "cputitle": "", - "memorytitle": "", - "cpu": "", - "memory": "", + "fwname": "Название", + "version": "Версия", + "versiontitle": "Версии", + "cputitle": "Использование ЦП", + "memorytitle": "Использование памяти", + "cpu": "ЦП", + "memory": "Память", "interfaces": { - "name": "", - "trans": "", - "recv": "", - "title": "" + "name": "Название", + "trans": "Отправлено", + "recv": "Получено", + "title": "Сетевые интерфейсы" } } }, "notifications": { - "name": "", - "description": "", - "noItems": "", + "name": "Уведомления", + "description": "Отображает историю уведомлений из интеграции", + "noItems": "Нет уведомлений для отображения.", "option": {} }, - "systemResources": { + "speedtestTracker": { "name": "", "description": "", "option": { - "hasShadow": { + "showLatestResult": { "label": "" }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, + "systemResources": { + "name": "Системные ресурсы", + "description": "Использование ЦП, памяти, сети и другого оборудования вашей системы", + "option": { + "hasShadow": { + "label": "Включить затенение графиков" + }, "visibleCharts": { - "label": "", - "description": "", + "label": "Видимые графики", + "description": "Выберите графики, которые вы хотите отображать.", "option": { - "cpu": "", - "memory": "", - "network": "" + "cpu": "ЦП", + "memory": "Память", + "gpu": "GPU", + "network": "Сеть" } }, "labelDisplayMode": { - "label": "", + "label": "Режим отображения меток", "option": { - "textWithIcon": "", - "text": "", - "icon": "", - "hidden": "" + "textWithIcon": "Текст с иконкой", + "text": "Только текст", + "icon": "Только иконка", + "hidden": "Скрыть метку" } } }, "card": { - "cpu": "", - "memory": "", - "network": "", - "up": "", - "down": "" + "cpu": "ЦП", + "memory": "ОЗУ", + "gpu": "GPU", + "network": "Сеть", + "up": "Исх.", + "down": "Вх." + } + }, + "systemDisks": { + "name": "Системные диски", + "description": "Использование дисков вашей системы", + "option": { + "showTemperatureIfAvailable": { + "label": "Показывать температуру, если доступна" + }, + "displayMode": { + "label": "Режим отображения", + "option": { + "percentage": { + "label": "В процентах (например, 76%)" + }, + "absolute": { + "label": "Абсолютные значения (например, 800 ГБ / 1 ТБ)" + }, + "free": { + "label": "Процент свободного места (например, 24% свободно)" + } + } + }, + "showBackgroundBar": { + "label": "Показывать фоновую шкалу использования" + } + }, + "status": { + "unhealthy": "Неисправен" } } }, @@ -2729,10 +3096,10 @@ }, "backgroundImageUrl": { "label": "URL фонового изображения", - "placeholder": "", + "placeholder": "Начните вводить для поиска локальных изображений", "group": { - "your": "", - "other": "" + "your": "Ваши изображения", + "other": "Другие изображения" } }, "backgroundImageAttachment": { @@ -2795,7 +3162,7 @@ "label": "Цвет значка" }, "clearColor": { - "label": "" + "label": "Сбросить цвет" }, "customCss": { "label": "Пользовательский CSS для этой панели", @@ -3001,7 +3368,7 @@ "label": "Инструменты", "items": { "docker": "Docker", - "kubernetes": "", + "kubernetes": "Kubernetes", "logs": "Логи", "api": "API", "certificates": "Сертификаты", @@ -3030,8 +3397,8 @@ "integration": "Интеграции", "app": "Приложения", "group": "Группы", - "searchEngine": "", - "media": "" + "searchEngine": "Поисковые системы", + "media": "Медиа" }, "statisticLabel": { "boards": "Панели", @@ -3040,8 +3407,8 @@ "authorization": "Авторизация" }, "heroBanner": { - "title": "", - "subtitle": "" + "title": "С возвращением на вашу", + "subtitle": "{app} Панель" } }, "board": { @@ -3240,7 +3607,7 @@ "title": "Аналитика", "general": { "title": "Отправлять анонимную аналитику", - "text": "Homarr использует открытое программное обеспечение Umami для сбора обезличенных данных об использовании. Сбор данных никогда не включает личную информацию и полностью соответствует GDPR и CCPA. Мы рекомендуем включить аналитику, так как это помогает нашей команде выявлять проблемы и определять приоритеты в разработке." + "text": "Homarr отправляет обезличенную аналитику с помощью открытого ПО Umami. При включении собираются: версия Homarr, тип базы данных (MySQL/PostgreSQL/SQLite), статус Docker/Kubernetes, включённые методы аутентификации и количество используемых функций. Все данные анонимны и агрегированы - личная информация, URL-адреса, имена и другие идентифицирующие данные никогда не собираются. Это помогает нашей команде понимать типичные сценарии использования и определять приоритеты в разработке." }, "widgetData": { "title": "Данные о виджетах", @@ -3295,10 +3662,10 @@ } }, "user": { - "title": "", + "title": "Пользователи", "enableGravatar": { - "label": "", - "description": "" + "label": "Включить Gravatar", + "description": "Использовать аватары Libravatar/Gravatar, если пользовательский аватар не задан и указан адрес электронной почты" } }, "search": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Цветовая схема по умолчанию", "options": { + "auto": "", "light": "Светлая", "dark": "Тёмная" } @@ -3333,12 +3701,15 @@ "idle": "Ожидание", "running": "Выполняется", "error": "Ошибка", - "disabled": "" + "disabled": "Отключено" }, "job": { "minecraftServerStatus": { "label": "Статус сервера Minecraft" }, + "timetable": { + "label": "Расписание" + }, "iconsUpdater": { "label": "Обновление иконок" }, @@ -3385,99 +3756,105 @@ "label": "Перекодирование медиафайлов" }, "networkController": { - "label": "" + "label": "Сетевой контроллер" }, "refreshNotifications": { - "label": "" + "label": "Обновление уведомлений" }, "dockerContainers": { - "label": "" + "label": "Контейнеры Docker" }, "firewallCpu": { - "label": "" + "label": "ЦП межсетевого экрана" }, "firewallMemory": { - "label": "" + "label": "Память межсетевого экрана" }, "firewallVersion": { - "label": "" + "label": "Версия межсетевого экрана" }, "firewallInterfaces": { - "label": "" + "label": "Интерфейсы межсетевого экрана" }, "weather": { + "label": "Погода" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { "label": "" } }, "interval": { - "seconds": "", - "minutes": "", - "hours": "", - "midnight": "", - "weeklyMonday": "", + "seconds": "Каждые {interval, plural, =1 {секунду} other {# секунд}}", + "minutes": "Каждые {interval, plural, =1 {минуту} other {# минут}}", + "hours": "Каждые {interval, plural, =1 {час} other {# часов}}", + "midnight": "Каждый день в полночь", + "weeklyMonday": "Каждую неделю в понедельник", "update": { "success": { - "message": "" + "message": "Интервал успешно обновлён" }, "error": { - "message": "" + "message": "Не удалось обновить интервал" } } }, "settings": { - "title": "" + "title": "Настройки задачи {jobName}" }, "field": { "name": { - "label": "" + "label": "Название" }, "interval": { - "label": "" + "label": "Интервал выполнения" }, "lastExecution": { - "label": "" + "label": "Последний запуск" }, "actions": { - "label": "" + "label": "Действия" } }, "table": { - "search": "" + "search": "Поиск среди {count} задач..." }, "action": { "refresh": { - "label": "" + "label": "Обновить" } }, "refresh": { "success": { - "message": "" + "message": "Задачи успешно обновлены" }, "error": { - "message": "" + "message": "Не удалось обновить задачи" } }, "trigger": { "success": { - "message": "" + "message": "Задача успешно запущена" }, "error": { - "message": "" + "message": "Не удалось запустить задачу" } }, "enable": { "success": { - "message": "" + "message": "Задача успешно включена" } }, "disable": { "success": { - "message": "" + "message": "Задача успешно отключена" } }, "toggle": { "error": { - "message": "" + "message": "Не удалось переключить статус задачи" } } }, @@ -3529,24 +3906,28 @@ "title": "Переводчики", "subtitle": "{count} помогают с переводами на разные языки" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Библиотеки", "subtitle": "{count} используются в коде Homarr" }, "hotkeys": { - "title": "", - "subtitle": "", + "title": "Горячие клавиши", + "subtitle": "Сочетания клавиш для ускорения работы", "field": { - "shortcut": "", - "action": "" + "shortcut": "Сочетание", + "action": "Действие" }, "action": { - "toggleBoardEdit": "", - "toggleColorScheme": "", - "saveNotebook": "", - "openSpotlight": "" + "toggleBoardEdit": "Переключить режим редактирования панели", + "toggleColorScheme": "Переключить светлую/тёмную тему", + "saveNotebook": "Сохранить блокнот (только внутри виджета блокнота)", + "openSpotlight": "Открыть поиск" }, - "note": "" + "note": "Подсказка: Mod — это клавиша Ctrl или ⌘ на macOS" } } } @@ -3558,7 +3939,7 @@ "updated": "Обновлено {when}", "search": "Поиск среди {count} контейнеров", "selected": "Выбрано {selectCount} из {totalCount} контейнеров", - "footer": "" + "footer": "Всего {count} контейнеров" }, "field": { "name": { @@ -3578,10 +3959,10 @@ }, "stats": { "cpu": { - "label": "" + "label": "ЦП" }, "memory": { - "label": "" + "label": "Память" } }, "containerImage": { @@ -3589,10 +3970,13 @@ }, "ports": { "label": "Порты" + }, + "host": { + "label": "" } }, "action": { - "title": "", + "title": "Действия", "start": { "label": "Запустить", "notification": { @@ -3681,242 +4065,242 @@ }, "kubernetes": { "cluster": { - "title": "", - "label": "", - "providers": "", - "version": "", - "architecture": "", + "title": "Панель кластера", + "label": "Кластер", + "providers": "Провайдеры", + "version": "Версия", + "architecture": "Архитектура", "capacity": { - "title": "", + "title": "Ёмкость", "resource": { - "reserved": "", - "used": "" + "reserved": "Зарезервировано", + "used": "Использовано" } }, "resources": { - "title": "", - "nodes": "", - "namespaces": "", - "ingresses": "", - "services": "", - "pods": "", - "configmaps": "", - "secrets": "", - "volumes": "" + "title": "Ресурсы", + "nodes": "Узлы", + "namespaces": "Пространства имён", + "ingresses": "Ingresses", + "services": "Сервисы", + "pods": "Поды", + "configmaps": "ConfigMaps", + "secrets": "Секреты", + "volumes": "Тома" } }, "nodes": { - "label": "", + "label": "Узлы", "field": { "name": { - "label": "" + "label": "Имя" }, "state": { - "label": "", + "label": "Состояние", "option": { - "ready": "", - "NotReady": "" + "ready": "Готов", + "NotReady": "Не готов" } }, "cpu": { - "label": "" + "label": "ЦП" }, "memory": { - "label": "" + "label": "Память" }, "pods": { - "label": "" + "label": "Поды" }, "operatingSystem": { - "label": "" + "label": "ОС" }, "architecture": { - "label": "" + "label": "Архитектура" }, "kubernetesVersion": { - "label": "" + "label": "Версия Kubernetes" }, "creationTimestamp": { - "label": "" + "label": "Создано" } }, "table": { - "search": "" + "search": "Поиск среди {count} узлов" } }, "namespaces": { - "label": "", + "label": "Пространства имён", "field": { "name": { - "label": "" + "label": "Имя" }, "state": { - "label": "", + "label": "Состояние", "option": { - "active": "", - "terminating": "" + "active": "Активно", + "terminating": "Завершается" } }, "creationTimestamp": { - "label": "" + "label": "Создано" } }, "table": { - "search": "" + "search": "Поиск среди {count} пространств имён" } }, "ingresses": { - "label": "", + "label": "Ingresses", "field": { "name": { - "label": "" + "label": "Имя" }, "namespace": { - "label": "" + "label": "Пространство имён" }, "className": { - "label": "" + "label": "Имя класса" }, "rulesAndPaths": { - "label": "" + "label": "Правила и пути" }, "creationTimestamp": { - "label": "" + "label": "Создано" } }, "table": { - "search": "" + "search": "Поиск среди {count} ingresses" } }, "services": { - "label": "", + "label": "Сервисы", "field": { "name": { - "label": "" + "label": "Имя" }, "namespace": { - "label": "" + "label": "Пространство имён" }, "type": { - "label": "" + "label": "Тип" }, "ports": { - "label": "" + "label": "Порты" }, "targetPorts": { - "label": "" + "label": "Целевые порты" }, "clusterIP": { - "label": "" + "label": "IP кластера" }, "creationTimestamp": { - "label": "" + "label": "Создано" } }, "table": { - "search": "" + "search": "Поиск среди {count} сервисов" } }, "pods": { - "label": "", + "label": "Поды", "field": { "name": { - "label": "" + "label": "Имя" }, "namespace": { - "label": "" + "label": "Пространство имён" }, "image": { - "label": "" + "label": "Образ" }, "applicationType": { - "label": "" + "label": "Тип приложения" }, "status": { - "label": "" + "label": "Статус" }, "creationTimestamp": { - "label": "" + "label": "Создано" } }, "table": { - "search": "" + "search": "Поиск среди {count} подов" } }, "secrets": { - "label": "", + "label": "Секреты", "field": { "name": { - "label": "" + "label": "Имя" }, "namespace": { - "label": "" + "label": "Пространство имён" }, "type": { - "label": "" + "label": "Тип" }, "creationTimestamp": { - "label": "" + "label": "Создано" } }, "table": { - "search": "" + "search": "Поиск среди {count} секретов" } }, "configmaps": { - "label": "", + "label": "ConfigMaps", "field": { "name": { - "label": "" + "label": "Имя" }, "namespace": { - "label": "" + "label": "Пространство имён" }, "creationTimestamp": { - "label": "" + "label": "Создано" } }, "table": { - "search": "" + "search": "Поиск среди {count} configMaps" } }, "volumes": { - "label": "", + "label": "Тома", "field": { "name": { - "label": "" + "label": "Имя" }, "namespace": { - "label": "" + "label": "Пространство имён" }, "accessModes": { - "label": "" + "label": "Режимы доступа" }, "storage": { - "label": "" + "label": "Хранилище" }, "storageClassName": { - "label": "" + "label": "Класс хранилища" }, "volumeMode": { - "label": "" + "label": "Режим тома" }, "volumeName": { - "label": "" + "label": "Имя тома" }, "status": { - "label": "" + "label": "Статус" }, "creationTimestamp": { - "label": "" + "label": "Создано" } }, "table": { - "search": "" + "search": "Поиск среди {count} томов" } }, "error": { - "internalServerError": "" + "internalServerError": "Не удалось получить данные Kubernetes" } }, "permission": { @@ -4002,36 +4386,36 @@ "tools": { "label": "Инструменты", "tasks": { - "label": "" + "label": "Задачи" }, "docker": { "label": "Docker" }, "kubernetes": { - "label": "", + "label": "Kubernetes", "nodes": { - "label": "" + "label": "Узлы" }, "namespaces": { - "label": "" + "label": "Пространства имён" }, "ingresses": { - "label": "" + "label": "Ingresses" }, "services": { - "label": "" + "label": "Сервисы" }, "pods": { - "label": "" + "label": "поды" }, "configmaps": { - "label": "" + "label": "ConfigMaps" }, "secrets": { - "label": "" + "label": "Секреты" }, "volumes": { - "label": "" + "label": "Тома" } }, "logs": { @@ -4040,7 +4424,7 @@ "certificates": { "label": "Сертификаты", "hostnames": { - "label": "" + "label": "Имена хостов" } } }, @@ -4115,6 +4499,7 @@ "title": "Глобальные команды", "option": { "colorScheme": { + "auto": "", "light": "Переключить на светлую тему", "dark": "Переключить на тёмную тему" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Поисковые системы", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { @@ -4407,7 +4800,7 @@ }, "delete": { "title": "Удаление поисковой системы", - "message": "Вы уверены, что хотите удалить поисковую систему '{name}'?", + "message": "Вы уверены, что хотите удалить поисковую систему {name}?", "notification": { "success": { "title": "Поисковая система удалена", @@ -4441,25 +4834,25 @@ "certificate": { "field": { "hostname": { - "label": "" + "label": "Имя хоста" }, "subject": { - "label": "" + "label": "Субъект" }, "issuer": { - "label": "" + "label": "Издатель" }, "validFrom": { - "label": "" + "label": "Действителен с" }, "validTo": { - "label": "" + "label": "Действителен до" }, "serialNumber": { - "label": "" + "label": "Серийный номер" }, "fingerprint": { - "label": "" + "label": "Отпечаток" } }, "page": { @@ -4470,19 +4863,19 @@ "title": "Доверенные сертификаты отсутствуют" }, "invalid": { - "title": "", - "description": "" + "title": "Недействительный сертификат", + "description": "Не удалось разобрать сертификат" }, "expires": "Истекает {when}", - "toHostnames": "" + "toHostnames": "Доверенные имена хостов" }, "hostnames": { - "title": "", - "description": "", + "title": "Доверенные имена хостов сертификатов", + "description": "Некоторые сертификаты не допускают использование конкретного домена, через который Homarr отправляет запросы. Поэтому все доверенные имена хостов с отпечатками сертификатов используются для обхода этих ограничений.", "noResults": { - "title": "" + "title": "Имена хостов пока отсутствуют" }, - "toCertificates": "" + "toCertificates": "Сертификаты" } }, "action": { @@ -4514,16 +4907,16 @@ } }, "removeHostname": { - "label": "", - "confirm": "", + "label": "Удалить доверенное имя хоста", + "confirm": "Вы уверены, что хотите удалить это доверенное имя хоста? Это может привести к прекращению работы некоторых интеграций.", "notification": { "success": { - "title": "", - "message": "" + "title": "Имя хоста удалено", + "message": "Имя хоста успешно удалено" }, "error": { - "title": "", - "message": "" + "title": "Не удалось удалить имя хоста", + "message": "Не удалось удалить имя хоста" } } } @@ -4532,10 +4925,10 @@ "log": { "level": { "option": { - "debug": "", - "info": "", - "warn": "", - "error": "" + "debug": "Отладка", + "info": "Информация", + "warn": "Предупреждение", + "error": "Ошибка" } } } diff --git a/packages/translation/src/lang/sk.json b/packages/translation/src/lang/sk.json index 2c1c4db83..576aa56a3 100644 --- a/packages/translation/src/lang/sk.json +++ b/packages/translation/src/lang/sk.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Otvoriť výsledky vyhľadávania na novej karte" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Zmeniť obrázok", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Svetlý", "dark": "Tmavý" } @@ -1138,6 +1152,9 @@ "dangerZone": "Nebezpečná zóna", "noResults": "Nenašli sa žiadne výsledky", "unsavedChanges": "Máš neuložené zmeny!", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "Zobraziť náhľad", "hide": "Skryť náhľad" @@ -1522,6 +1539,17 @@ "offline": "Odpojené" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Poznámkový blok", "description": "Jednoduchý widget poznámkového bloku, ktorý podporuje markdown", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "Vložte akýkoľvek obsah z internetu. Niektoré webové stránky môžu obmedziť prístup.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Povolenie geografickej lokalizácie" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Zobraziť informácie o pamäti" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Zobraziť Uptime" }, @@ -1960,6 +2022,192 @@ "internalServerError": "Nepodarilo sa načítať štatistiky kontajnerov" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Mesto / PSČ", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "Download klient", "description": "Umožňuje vám zobraziť a spravovať stiahnuté súbory z klientov Torrent aj Usenet.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Predvolená farebná schéma", "options": { + "auto": "", "light": "Svetlý", "dark": "Tmavý" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Minecraft Server Stav" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "Aktualizátor ikon" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Prekladatelia", "subtitle": "{count} prispievanie prekladmi do mnohých jazykov" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Knižnice", "subtitle": "{count} používané v Homarrskom kódexe" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Porty" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Globálne príkazy", "option": { "colorScheme": { + "auto": "", "light": "Prepnúť na svetlý motív", "dark": "Prepnúť na tmavý motív" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Vyhľadávače", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/sl.json b/packages/translation/src/lang/sl.json index 72b89b48f..186e79151 100644 --- a/packages/translation/src/lang/sl.json +++ b/packages/translation/src/lang/sl.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "Nevarno območje", "noResults": "Ni rezultatov", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Beležnica", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "Vstavite katero koli vsebino iz interneta. Nekatera spletna mesta lahko omejijo dostop.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Omogočanje zemljepisne lokacije" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Vrata" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/sv.json b/packages/translation/src/lang/sv.json index d291b9595..83fb869fb 100644 --- a/packages/translation/src/lang/sv.json +++ b/packages/translation/src/lang/sv.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Visa sökresultat i ny flik" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Byt bild", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "Kritiska inställningar", "noResults": "Hittade inga resultat", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "Förhandsgranska", "hide": "Dölj förhandsgranskning" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Anteckningsbok", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "Infoga valfritt innehåll från internet. Vissa webbplatser kan ha begränsad åtkomst.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Tillåt geografisk lokalisering" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Visa minnesinformation" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "Ljus", "dark": "Mörk" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Översättare", "subtitle": "{count} bidrar med översättningar på flera olika språk" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Portar" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "Byt till ljust läge", "dark": "Byt till mörkt läge" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json index 09985c034..35e29f18e 100644 --- a/packages/translation/src/lang/tr.json +++ b/packages/translation/src/lang/tr.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Arama sonucunu yeni sekmede aç" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Görseli değiştir", @@ -649,14 +662,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Mevcut", + "label": "Mevcut uygulamayı seçin" }, "new": { - "title": "", + "title": "Yeni", "url": { - "label": "", - "description": "" + "label": "Uygulama url si", + "description": "Kontrol panelinden erişildiğinde uygulamanın açılacağı URL" } } } @@ -676,9 +689,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Bir uygulamayı bağla", + "remove": "Bağlantıyı kaldır", + "select": "Bağlantı kurmak istediğiniz uygulamayı seçin" } } }, @@ -709,7 +722,7 @@ "description": "\"{kind}\" entegrasyonu arama motorlarıyla kullanılabilir. Arama motorunu otomatik olarak yapılandırmak için bunu işaretleyin." }, "app": { - "sectionTitle": "" + "sectionTitle": "Bağlı Uygulama" }, "createApp": { "label": "Uygulama oluştur", @@ -1051,7 +1064,7 @@ "add": "Ekle", "apply": "Uygula", "backToOverview": "Genel bakışa dön", - "change": "", + "change": "Değiştir", "create": "Oluştur", "createAnother": "Kaydet ve Yeni Oluştur", "edit": "Düzenle", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Aydınlık", "dark": "Koyu" } @@ -1138,6 +1152,9 @@ "dangerZone": "Tehlikeli Bölge", "noResults": "Sonuç bulunamadı", "unsavedChanges": "Kaydedilmemiş değişiklikleriniz var!", + "servers": "Sunucular", + "applications": "Uygulamalar", + "services": "Hizmetler", "preview": { "show": "Ara Renkleri Göster", "hide": "Ara Renkleri Gizle" @@ -1174,8 +1191,8 @@ }, "unit": { "speed": { - "kilometersPerHour": "", - "milesPerHour": "" + "kilometersPerHour": "km/h", + "milesPerHour": "mph" } } }, @@ -1190,7 +1207,7 @@ "label": "Başlık" }, "customCssClasses": { - "label": "" + "label": "Özel CSS sınıfları" }, "borderColor": { "label": "Kenarlık rengi" @@ -1522,6 +1539,17 @@ "offline": "Çevrimdışı" } }, + "timetable": { + "name": "Zaman Çizelgesi", + "description": "Bir istasyon için kalkış saatlerini görüntüler", + "title": "{station} kalkışları", + "noStation": "İstasyon seçilmedi", + "option": { + "station": { + "label": "İstasyon" + } + } + }, "notebook": { "name": "Not Defteri", "description": "Markdown'ı destekleyen basit bir not defteri bileşeni", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "Anchor Notu", + "description": "Anchor'dan seçilen bir notu görüntüler", + "option": { + "noteId": { + "label": "Not" + }, + "showTitle": { + "label": "Başlığı göster" + }, + "showUpdatedAt": { + "label": "Son güncellenmeyi göster" + } + }, + "empty": "Görüntülenecek bir not seçin", + "emptyContent": "Bu notun içeriği yok", + "notFound": "Not bulunamadı", + "noNotes": "Not bulunamadı", + "integrationRequired": "Önce bir Anchor entegrasyonu seçin", + "updatedAt": "Güncellendi: {date}", + "untitled": "Başlıksız", + "edit": "Düzenle", + "save": "Kaydet", + "cancel": "İptal", + "readOnlyViewer": "Bu nota görüntüleyici erişiminiz var. Düzenleme devre dışı bırakıldı.", + "saveForbidden": "Bu notu düzenleme izniniz yok.", + "saveFailed": "Not kaydedilemedi. Lütfen tekrar deneyin." + }, "iframe": { "name": "iFrame", "description": "İnternetten herhangi bir içeriği yerleştirin. Bazı web siteleri erişimi kısıtlayabilir.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Coğrafi konuma izin ver (geolocation)" + }, + "allowModals": { + "label": "Allow modals" } }, "error": { @@ -1780,7 +1839,7 @@ "description": "Yalnızca mevcut hava durumunda" }, "useImperialSpeed": { - "label": "" + "label": "Use mph for windspeed" }, "location": { "label": "Hava durumu konumu" @@ -1855,6 +1914,9 @@ "memory": { "label": "Bellek Bilgilerini Göster" }, + "gpu": { + "label": "Show GPU Info" + }, "showUptime": { "label": "Çalışma Süresini Göster" }, @@ -1941,25 +2003,211 @@ "description": "Konteynerlerinizin istatistikleri (Bu widget yalnızca yönetici ayrıcalıklarıyla eklenebilir)", "option": { "enableRowSorting": { - "label": "" + "label": "Enable items sorting" }, "defaultSort": { - "label": "", + "label": "Column used for sorting by default", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "Name", + "state": "State", + "cpuUsage": "CPU usage", + "memoryUsage": "Memory usage" } }, "descendingDefaultSort": { - "label": "" + "label": "Invert sorting" } }, "error": { "internalServerError": "Konteyner istatistikleri alınamadı" } }, + "coolify": { + "name": "Coolify", + "description": "Overview of your Coolify instance with servers and applications", + "option": { + "showServers": { + "label": "Show servers" + }, + "showApplications": { + "label": "Show applications" + }, + "showServices": { + "label": "Show services" + } + }, + "empty": { + "servers": "No servers found", + "applications": "No applications found", + "services": "No services found" + }, + "footer": { + "updated": "Updated {when}" + }, + "error": { + "noIntegration": "No Coolify integration configured", + "internalServerError": "Failed to fetch Coolify data" + }, + "server": { + "buildServer": "Build" + }, + "instances": { + "title": "Instances" + } + }, + "tracearr": { + "name": "Tracearr", + "description": "Enhanced media server monitoring with detailed stream and transcoding data", + "option": { + "showStreams": { + "label": "Show active streams" + }, + "showStats": { + "label": "Show stats summary" + }, + "showRecentActivity": { + "label": "Show recent activity" + }, + "showViolations": { + "label": "Show violations" + } + }, + "stats": { + "activeStreams": "Active Streams", + "totalUsers": "Total Users", + "transcodes": "Transcodes", + "bandwidth": "Bandwidth" + }, + "streams": { + "empty": "No active streams", + "user": "User", + "media": "Media", + "state": "State", + "quality": "Quality", + "device": "Device", + "progress": "Progress", + "videoDecision": { + "directPlay": "Direct Play", + "transcode": "Transcode", + "directStream": "Direct Stream" + } + }, + "recentActivity": { + "title": "Recent Activity", + "empty": "No recent activity", + "watched": "Watched", + "partial": "Partial" + }, + "violations": { + "title": "Violations", + "empty": "No recent violations", + "rule": "Rule", + "user": "User" + }, + "noSectionsEnabled": "No sections enabled", + "error": { + "noIntegration": "No Tracearr integration configured", + "internalServerError": "Failed to fetch Tracearr data" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Şehir / Posta kodu", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "Immich Server Stats", + "description": "Information about your Immich instance", + "option": { + "showUsers": { + "label": "Show users", + "description": "Show count of users on your instance" + }, + "showPhotos": { + "label": "Show photos", + "description": "Show count of photos on your instance" + }, + "showVideos": { + "label": "Show videos", + "description": "Show count of videos on your instance" + }, + "showStorage": { + "label": "Show storage", + "description": "Show the total amount of storage used" + } + }, + "users": "Users", + "photos": "Photos", + "videos": "Videos", + "storage": "Used Storage" + }, + "immich-albumCarousel": { + "name": "Immich Album", + "option": { + "albumId": { + "label": "Album ID", + "description": "This is a unique ID which refers to your Immich album. You can find this id by opening an album and copying the unique string from the URL, for example 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" + }, + "rotationIntervalSeconds": { + "label": "Interval in seconds", + "description": "Rotate between pictures in the album every X seconds. Must be at least 1. Must be below 3600." + }, + "showPhotoInfo": { + "label": "Show photo info", + "description": "Display date of the picture and the current index at the bottom of the slideshow" + } + }, + "description": "Slideshow of pictures in your Immich album", + "noAlbumSelected": "No album selected, edit widget and choose an album", + "noPhotos": "No photos in this album" + }, "downloads": { "name": "İndirme İstemcisi", "description": "Hem Torrent hem de Usenet istemcilerinden indirdiklerinizi görüntülemenizi ve yönetmenizi sağlar.", @@ -2248,7 +2542,7 @@ "unknown": "Bilinmeyen", "pending": "Bekleyen", "processing": "İşlemde", - "requested": "", + "requested": "Requested", "partiallyAvailable": "Kısmi", "available": "Mevcut", "blacklisted": "Engellenenler", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "Açıklamayı gizle" + }, + "showPosterImage": { + "label": "Show poster image" } } }, @@ -2575,6 +2872,45 @@ "noItems": "Görüntülenecek bildirim yok.", "option": {} }, + "speedtestTracker": { + "name": "Speedtest Tracker", + "description": "Displays speed test results from your Speedtest Tracker instance.", + "option": { + "showLatestResult": { + "label": "Show latest result" + }, + "showStats": { + "label": "Show averages" + }, + "showRecentResults": { + "label": "Show recent results" + }, + "showPingGraph": { + "label": "Show ping graph" + } + }, + "latestResult": "Latest Result", + "averages": "Averages", + "tests": "{count} tests", + "recentResults": "Recent Results", + "recentResultsSpeed": "Speed", + "recentResultsPing": "Ping", + "download": "Download", + "upload": "Upload", + "ping": "Ping", + "status": "Status", + "avgDownload": "Avg Download", + "avgUpload": "Avg Upload", + "avgPing": "Avg Ping", + "healthy": "Healthy", + "unhealthy": "Unhealthy", + "ok": "OK", + "fail": "Fail", + "noSectionsEnabled": "Enable at least one section in widget options.", + "error": { + "internalServerError": "Failed to fetch speedtest data" + } + }, "systemResources": { "name": "Sistem kaynakları", "description": "Sisteminizin CPU, Bellek, Disk ve diğer donanım kullanımları", @@ -2588,6 +2924,7 @@ "option": { "cpu": "İşlemci", "memory": "Bellek", + "gpu": "GPU", "network": "Ağ" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "İşlemci", "memory": "BELLEK", + "gpu": "GPU", "network": "AĞ", "up": "YÜKLEME", "down": "İNDİRME" } + }, + "systemDisks": { + "name": "System disks", + "description": "Disk usage of your system", + "option": { + "showTemperatureIfAvailable": { + "label": "Show temperature if available" + }, + "displayMode": { + "label": "Display mode", + "option": { + "percentage": { + "label": "Percentage (e.g., 76%)" + }, + "absolute": { + "label": "Absolute values (e.g., 800GB / 1TB)" + }, + "free": { + "label": "Free space percentage (e.g., 24% free)" + } + } + }, + "showBackgroundBar": { + "label": "Show background usage bar" + } + }, + "status": { + "unhealthy": "Unhealthy" + } } }, "widgetPreview": { @@ -3030,8 +3397,8 @@ "integration": "Entegrasyonlar", "app": "Uygulamalar", "group": "Gruplar", - "searchEngine": "", - "media": "" + "searchEngine": "Search engines", + "media": "Medias" }, "statisticLabel": { "boards": "Paneller", @@ -3040,8 +3407,8 @@ "authorization": "Yetkilendirme" }, "heroBanner": { - "title": "", - "subtitle": "" + "title": "Welcome back to your", + "subtitle": "{app} Board" } }, "board": { @@ -3295,10 +3662,10 @@ } }, "user": { - "title": "", + "title": "Kullanıcılar", "enableGravatar": { - "label": "", - "description": "" + "label": "Gravatar'ı etkinleştir", + "description": "Özel avatar ayarlanmadığında ve bir e-posta adresi tanımlandığında Libravatar/Gravatar kullanıcı avatarları kullanılır" } }, "search": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Öntanımlı Renk Düzeni", "options": { + "auto": "", "light": "Aydınlık", "dark": "Koyu" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Minecraft sunucu durumu" }, + "timetable": { + "label": "Zaman Çizelgesi" + }, "iconsUpdater": { "label": "Simge Güncelleme" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "Hava Durumu" + }, + "tracearr": { + "label": "Tracearr" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Çevirmenler", "subtitle": "Birçok kişi Homarr'ın {count} dile çevrilmesine katkı sağlıyor" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Kütüphaneler", "subtitle": "Homarr kodlamasında {count} kütüphane kullanılıyor" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Bağlantı noktaları" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Genel komutlar", "option": { "colorScheme": { + "auto": "", "light": "Aydınlık Temaya Geç", "dark": "Koyu Temaya Geç" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Arama Motorları", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/uk.json b/packages/translation/src/lang/uk.json index 1c6974545..c573c65ba 100644 --- a/packages/translation/src/lang/uk.json +++ b/packages/translation/src/lang/uk.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Відкрити результати пошуку в новій вкладці" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Змінити зображення", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "Світла", "dark": "Темна" } @@ -1138,6 +1152,9 @@ "dangerZone": "Небезпечна зона", "noResults": "Результатів не знайдено", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "Показати попередній перегляд", "hide": "Приховати попередній перегляд" @@ -1522,6 +1539,17 @@ "offline": "Офлайн" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Блокнот", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "Вставити будь-який контент з інтернету. Деякі вебсайти можуть обмежувати доступ.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Дозволити геолокацію" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "Показати інформацію про пам'ять" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "Місто / Поштовий індекс", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "Завантаження", "description": "Дозволяє переглядати та керувати завантаженнями від клієнтів Torrent та Usenet.", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "Стандартна кольорова тема", "options": { + "auto": "", "light": "Світла", "dark": "Темна" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Статус сервера Minecraft" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "Перекладачі", "subtitle": "{count} - стільки людей допомагають перекладати багатьма мовами" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "Бібліотеки", "subtitle": "{count} - стільки бібліотек використано в коді Homarr" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Порти" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "Глобальні команди", "option": { "colorScheme": { + "auto": "", "light": "Перемикнути на світлу тему", "dark": "Перемикнути на темну тему" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "Пошукові системи", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/vi.json b/packages/translation/src/lang/vi.json index 5969f916b..f8f8823e1 100644 --- a/packages/translation/src/lang/vi.json +++ b/packages/translation/src/lang/vi.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "Mở kết quả tìm kiếm trong thẻ mới" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "Thay đổi hình ảnh", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "", "dark": "" } @@ -1138,6 +1152,9 @@ "dangerZone": "Khu vực nguy hiểm", "noResults": "Không có kết quả", "unsavedChanges": "", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "", "hide": "" @@ -1522,6 +1539,17 @@ "offline": "" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "Ghi chú", "description": "", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "", "description": "Nhúng bất kỳ nội dung nào từ internet. Một số trang web có thể hạn chế quyền truy cập.", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "Cho phép định vị" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "", "description": "", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "", "options": { + "auto": "", "light": "", "dark": "" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "", "subtitle": "" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "", "subtitle": "" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "Cổng" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "", "option": { "colorScheme": { + "auto": "", "light": "", "dark": "" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/translation/src/lang/zh.json b/packages/translation/src/lang/zh.json index a99aaf09c..147db32f0 100644 --- a/packages/translation/src/lang/zh.json +++ b/packages/translation/src/lang/zh.json @@ -157,6 +157,9 @@ }, "openSearchInNewTab": { "label": "於新分頁中開啟搜尋結果" + }, + "ddgBangs": { + "label": "" } }, "error": { @@ -246,6 +249,16 @@ } } }, + "changeDdgBangs": { + "notification": { + "success": { + "message": "" + }, + "error": { + "message": "" + } + } + }, "manageAvatar": { "changeImage": { "label": "更改圖案", @@ -1080,6 +1093,7 @@ }, "colorScheme": { "options": { + "auto": "", "light": "日間", "dark": "暗黑" } @@ -1138,6 +1152,9 @@ "dangerZone": "危險區域", "noResults": "未找到結果", "unsavedChanges": "尚未儲存變更", + "servers": "", + "applications": "", + "services": "", "preview": { "show": "顯示預覽", "hide": "隱藏預覽" @@ -1522,6 +1539,17 @@ "offline": "離線" } }, + "timetable": { + "name": "", + "description": "", + "title": "", + "noStation": "", + "option": { + "station": { + "label": "" + } + } + }, "notebook": { "name": "筆記", "description": "支持 Markdown 的簡單筆記小工具", @@ -1592,6 +1620,34 @@ } } }, + "anchorNote": { + "name": "", + "description": "", + "option": { + "noteId": { + "label": "" + }, + "showTitle": { + "label": "" + }, + "showUpdatedAt": { + "label": "" + } + }, + "empty": "", + "emptyContent": "", + "notFound": "", + "noNotes": "", + "integrationRequired": "", + "updatedAt": "", + "untitled": "", + "edit": "", + "save": "", + "cancel": "", + "readOnlyViewer": "", + "saveForbidden": "", + "saveFailed": "" + }, "iframe": { "name": "iFrame", "description": "崁入網路上的任何內容,某些網站可能限制訪問", @@ -1622,6 +1678,9 @@ }, "allowGeolocation": { "label": "允許地址位置" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1855,6 +1914,9 @@ "memory": { "label": "顯示記憶體訊息" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -1960,6 +2022,192 @@ "internalServerError": "" } }, + "coolify": { + "name": "", + "description": "", + "option": { + "showServers": { + "label": "" + }, + "showApplications": { + "label": "" + }, + "showServices": { + "label": "" + } + }, + "empty": { + "servers": "", + "applications": "", + "services": "" + }, + "footer": { + "updated": "" + }, + "error": { + "noIntegration": "", + "internalServerError": "" + }, + "server": { + "buildServer": "" + }, + "instances": { + "title": "" + } + }, + "tracearr": { + "name": "", + "description": "", + "option": { + "showStreams": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentActivity": { + "label": "" + }, + "showViolations": { + "label": "" + } + }, + "stats": { + "activeStreams": "", + "totalUsers": "", + "transcodes": "", + "bandwidth": "" + }, + "streams": { + "empty": "", + "user": "", + "media": "", + "state": "", + "quality": "", + "device": "", + "progress": "", + "videoDecision": { + "directPlay": "", + "transcode": "", + "directStream": "" + } + }, + "recentActivity": { + "title": "", + "empty": "", + "watched": "", + "partial": "" + }, + "violations": { + "title": "", + "empty": "", + "rule": "", + "user": "" + }, + "noSectionsEnabled": "", + "error": { + "noIntegration": "", + "internalServerError": "" + } + }, + "umami": { + "name": "", + "description": "", + "visitors": "", + "active": "", + "pageviews": "", + "visits": "", + "bounceRate": "", + "avgDuration": "", + "option": { + "websiteId": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noWebsites": "", + "configureIntegrationFirst": "" + }, + "timeFrame": { + "label": "", + "description": "", + "option": { + "today": "", + "24h": "", + "7d": "", + "30d": "", + "month": "", + "lastMonth": "" + } + }, + "eventName": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "none": "", + "configureWebsiteFirst": "" + }, + "chartType": { + "label": "", + "description": "", + "option": { + "bar": "", + "sparkline": "" + } + }, + "chartStyle": { + "label": "", + "description": "", + "option": { + "grouped": "", + "overlay": "" + } + }, + "viewMode": { + "label": "", + "description": "", + "option": { + "chart": "", + "events": "", + "topPages": "", + "topReferrers": "" + } + }, + "eventNames": { + "label": "", + "description": "", + "placeholder": "", + "loading": "", + "noEvents": "", + "configureWebsiteFirst": "" + }, + "topCount": { + "label": "", + "description": "" + } + }, + "event": { + "occurrences": "", + "label": "" + }, + "topPages": { + "direct": "" + }, + "topReferrers": { + "direct": "" + }, + "events": { + "selectPrompt": "" + }, + "error": { + "noIntegration": "", + "noWebsite": "", + "noData": "", + "internalServerError": "" + } + }, "common": { "location": { "query": "城市 / 郵遞區號", @@ -2055,6 +2303,52 @@ } } }, + "immich-serverStats": { + "name": "", + "description": "", + "option": { + "showUsers": { + "label": "", + "description": "" + }, + "showPhotos": { + "label": "", + "description": "" + }, + "showVideos": { + "label": "", + "description": "" + }, + "showStorage": { + "label": "", + "description": "" + } + }, + "users": "", + "photos": "", + "videos": "", + "storage": "" + }, + "immich-albumCarousel": { + "name": "", + "option": { + "albumId": { + "label": "", + "description": "" + }, + "rotationIntervalSeconds": { + "label": "", + "description": "" + }, + "showPhotoInfo": { + "label": "", + "description": "" + } + }, + "description": "", + "noAlbumSelected": "", + "noPhotos": "" + }, "downloads": { "name": "下載器", "description": "允許查看和管理來自 Torrent 和 Usenet 的下載器", @@ -2362,6 +2656,9 @@ }, "hideDescription": { "label": "" + }, + "showPosterImage": { + "label": "" } } }, @@ -2575,6 +2872,45 @@ "noItems": "", "option": {} }, + "speedtestTracker": { + "name": "", + "description": "", + "option": { + "showLatestResult": { + "label": "" + }, + "showStats": { + "label": "" + }, + "showRecentResults": { + "label": "" + }, + "showPingGraph": { + "label": "" + } + }, + "latestResult": "", + "averages": "", + "tests": "", + "recentResults": "", + "recentResultsSpeed": "", + "recentResultsPing": "", + "download": "", + "upload": "", + "ping": "", + "status": "", + "avgDownload": "", + "avgUpload": "", + "avgPing": "", + "healthy": "", + "unhealthy": "", + "ok": "", + "fail": "", + "noSectionsEnabled": "", + "error": { + "internalServerError": "" + } + }, "systemResources": { "name": "", "description": "", @@ -2588,6 +2924,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2604,10 +2941,40 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" } + }, + "systemDisks": { + "name": "", + "description": "", + "option": { + "showTemperatureIfAvailable": { + "label": "" + }, + "displayMode": { + "label": "", + "option": { + "percentage": { + "label": "" + }, + "absolute": { + "label": "" + }, + "free": { + "label": "" + } + } + }, + "showBackgroundBar": { + "label": "" + } + }, + "status": { + "unhealthy": "" + } } }, "widgetPreview": { @@ -3313,6 +3680,7 @@ "defaultColorScheme": { "label": "預設配色方案", "options": { + "auto": "", "light": "日間", "dark": "暗黑" } @@ -3339,6 +3707,9 @@ "minecraftServerStatus": { "label": "Minecraft 伺服器狀態" }, + "timetable": { + "label": "" + }, "iconsUpdater": { "label": "icon 上傳器" }, @@ -3407,6 +3778,12 @@ }, "weather": { "label": "" + }, + "tracearr": { + "label": "" + }, + "umamiActiveVisitors": { + "label": "" } }, "interval": { @@ -3529,6 +3906,10 @@ "title": "翻譯人員", "subtitle": "{count} 翻譯了許多語言" }, + "sponsors": { + "title": "", + "subtitle": "" + }, "libraries": { "title": "資料庫", "subtitle": "{count} 於 Homarr 待碼中使用" @@ -3589,6 +3970,9 @@ }, "ports": { "label": "端口" + }, + "host": { + "label": "" } }, "action": { @@ -4115,6 +4499,7 @@ "title": "全局命令", "option": { "colorScheme": { + "auto": "", "light": "切換日間模式", "dark": "切換暗黑模式" }, @@ -4166,6 +4551,14 @@ "group": { "searchEngine": { "title": "搜尋引擎", + "tipDdgBangs": "", + "bang": { + "searchWithQuery": "", + "pressEnterToOpen": "", + "engineSelected": "", + "typeQueryToContinue": "", + "emptyBangHint": "" + }, "children": { "action": { "search": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 9bfdbbfd4..a781debfd 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -30,24 +30,24 @@ "@homarr/settings": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^8.3.12", - "@mantine/dates": "^8.3.12", - "@mantine/hooks": "^8.3.12", - "@tabler/icons-react": "^3.36.1", - "crypto-js": "^4.2.0", - "mantine-react-table": "2.0.0-beta.9", - "next": "16.1.1", - "react": "19.2.3", - "react-dom": "19.2.3", - "svgson": "^5.3.1" + "@mantine/core": "catalog:", + "@mantine/dates": "catalog:", + "@mantine/hooks": "catalog:", + "@tabler/icons-react": "catalog:", + "crypto-js": "catalog:", + "mantine-react-table": "catalog:", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "svgson": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/crypto-js": "^4.2.2", - "@types/css-modules": "^1.0.5", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "@types/crypto-js": "catalog:", + "@types/css-modules": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/validation/package.json b/packages/validation/package.json index 104c6eb13..8cde9c838 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -24,14 +24,14 @@ "dependencies": { "@homarr/definitions": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", - "zod": "^4.2.1", - "zod-form-data": "^3.0.1" + "zod": "catalog:", + "zod-form-data": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/validation/src/redirection-url.ts b/packages/validation/src/redirection-url.ts new file mode 100644 index 000000000..3121f6726 --- /dev/null +++ b/packages/validation/src/redirection-url.ts @@ -0,0 +1,14 @@ +/** + * Sanitizes the URL from malicious payloads. + * Prevents open redirects such as //example.com/path + * and prevents XSS such as javascript:(). + * Returns / as a default or when unsafe. + * @param url The URL to sanitize + */ +export const sanitizeRedirectionUrl = (url?: string) => { + if (url && url.startsWith("/") && !url.startsWith("//")) { + return url; + } else { + return "/"; // Safe default + } +}; diff --git a/packages/validation/src/user.ts b/packages/validation/src/user.ts index c00d9226d..626ba2e8b 100644 --- a/packages/validation/src/user.ts +++ b/packages/validation/src/user.ts @@ -57,12 +57,13 @@ export const userBaseCreateSchema = z.object({ password: userPasswordSchema, confirmPassword: z.string(), email: z.string().email().or(z.string().length(0)).optional(), - groupIds: z.array(z.string()), }); -export const userCreateSchema = addConfirmPasswordRefinement(userBaseCreateSchema); +export const userCreateSchema = addConfirmPasswordRefinement(userBaseCreateSchema).and( + z.object({ groupIds: z.array(z.string()) }), +); -export const userInitSchema = addConfirmPasswordRefinement(userBaseCreateSchema.omit({ groupIds: true })); +export const userInitSchema = addConfirmPasswordRefinement(userBaseCreateSchema); export const userSignInSchema = z.object({ name: z.string().min(1), @@ -111,12 +112,15 @@ const baseChangePasswordSchema = z.object({ previousPassword: z.string().min(1), password: userPasswordSchema, confirmPassword: z.string(), - userId: z.string(), }); -export const userChangePasswordSchema = addConfirmPasswordRefinement(baseChangePasswordSchema.omit({ userId: true })); +export const userChangePasswordSchema = addConfirmPasswordRefinement(baseChangePasswordSchema); -export const userChangePasswordApiSchema = addConfirmPasswordRefinement(baseChangePasswordSchema); +export const userChangePasswordApiSchema = addConfirmPasswordRefinement(baseChangePasswordSchema).and( + z.object({ + userId: z.string(), + }), +); export const userChangeHomeBoardsSchema = z.object({ homeBoardId: z.string().nullable(), @@ -126,6 +130,7 @@ export const userChangeHomeBoardsSchema = z.object({ export const userChangeSearchPreferencesSchema = z.object({ defaultSearchEngineId: z.string().min(1).nullable(), openInNewTab: z.boolean(), + ddgBangsEnabled: z.boolean(), }); export const userChangeColorSchemeSchema = z.object({ @@ -134,16 +139,16 @@ export const userChangeColorSchemeSchema = z.object({ export const userFirstDayOfWeekSchema = z.object({ firstDayOfWeek: z - .custom((value) => z.number().min(0).max(6).safeParse(value).success) - .meta({ - override: { - type: "integer", - minimum: 0, - maximum: 6, - }, - }), + .number() + .min(0) + .max(6) + .transform((value) => value as DayOfWeek), }); export const userPingIconsEnabledSchema = z.object({ pingIconsEnabled: z.boolean(), }); + +export const userDdgBangsSchema = z.object({ + ddgBangs: z.boolean(), +}); diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 3bda2735e..4ee4834f8 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -25,8 +25,8 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@dnd-kit/core": "^6.3.1", - "@dnd-kit/sortable": "^10.0.0", + "@dnd-kit/core": "catalog:", + "@dnd-kit/sortable": "catalog:", "@homarr/api": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0", "@homarr/boards": "workspace:^0.1.0", @@ -48,44 +48,45 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/charts": "^8.3.12", - "@mantine/core": "^8.3.12", - "@mantine/hooks": "^8.3.12", - "@tabler/icons-react": "^3.36.1", - "@tiptap/extension-color": "3.15.3", - "@tiptap/extension-highlight": "3.15.3", - "@tiptap/extension-image": "3.15.3", - "@tiptap/extension-link": "^3.15.3", - "@tiptap/extension-placeholder": "^3.15.3", - "@tiptap/extension-table": "3.15.3", - "@tiptap/extension-table-cell": "3.15.3", - "@tiptap/extension-table-header": "3.15.3", - "@tiptap/extension-table-row": "3.15.3", - "@tiptap/extension-task-item": "3.15.3", - "@tiptap/extension-task-list": "3.15.3", - "@tiptap/extension-text-align": "3.15.3", - "@tiptap/extension-text-style": "3.15.3", - "@tiptap/extension-underline": "3.15.3", - "@tiptap/react": "^3.15.3", - "@tiptap/starter-kit": "^3.15.3", - "clsx": "^2.1.1", - "dayjs": "^1.11.19", - "mantine-form-zod-resolver": "^1.3.0", - "mantine-react-table": "2.0.0-beta.9", - "next": "16.1.1", - "react": "19.2.3", - "react-dom": "19.2.3", - "react-markdown": "^10.1.0", - "recharts": "^2.15.4", - "video.js": "^8.23.4", - "zod": "^4.2.1" + "@mantine/charts": "catalog:", + "@mantine/core": "catalog:", + "@mantine/hooks": "catalog:", + "@tabler/icons-react": "catalog:", + "@tiptap/extension-color": "catalog:", + "@tiptap/extension-highlight": "catalog:", + "@tiptap/extension-image": "catalog:", + "@tiptap/extension-link": "catalog:", + "@tiptap/extension-placeholder": "catalog:", + "@tiptap/extension-table": "catalog:", + "@tiptap/extension-table-cell": "catalog:", + "@tiptap/extension-table-header": "catalog:", + "@tiptap/extension-table-row": "catalog:", + "@tiptap/extension-task-item": "catalog:", + "@tiptap/extension-task-list": "catalog:", + "@tiptap/extension-text-align": "catalog:", + "@tiptap/extension-text-style": "catalog:", + "@tiptap/extension-underline": "catalog:", + "@tiptap/react": "catalog:", + "@tiptap/starter-kit": "catalog:", + "clsx": "catalog:", + "dayjs": "catalog:", + "mantine-form-zod-resolver": "catalog:", + "mantine-react-table": "catalog:", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "react-markdown": "catalog:", + "react-quill-new": "catalog:", + "recharts": "catalog:", + "video.js": "catalog:", + "zod": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/video.js": "^7.3.58", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "@types/video.js": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/packages/widgets/src/_inputs/index.ts b/packages/widgets/src/_inputs/index.ts index b19ab8c9c..0c412b74e 100644 --- a/packages/widgets/src/_inputs/index.ts +++ b/packages/widgets/src/_inputs/index.ts @@ -1,5 +1,7 @@ import type { WidgetOptionType } from "../options"; +import { WidgetAnchorNoteInput } from "./widget-anchor-note-input"; import { WidgetAppInput } from "./widget-app-input"; +import { WidgetDynamicSelectInput } from "./widget-dynamic-select-input"; import { WidgetLocationInput } from "./widget-location-input"; import { WidgetMultiTextInput } from "./widget-multi-text-input"; import { WidgetMultiReleasesRepositoriesInput } from "./widget-multiReleasesRepositories-input"; @@ -10,8 +12,12 @@ import { WidgetSliderInput } from "./widget-slider-input"; import { WidgetSortedItemListInput } from "./widget-sortable-item-list-input"; import { WidgetSwitchInput } from "./widget-switch-input"; import { WidgetTextInput } from "./widget-text-input"; +import { WidgetUmamiEventInput } from "./widget-umami-event-input"; +import { WidgetUmamiEventNamesInput } from "./widget-umami-event-names-input"; +import { WidgetUmamiWebsiteInput } from "./widget-umami-website-input"; const mapping = { + anchorNote: WidgetAnchorNoteInput, text: WidgetTextInput, location: WidgetLocationInput, multiSelect: WidgetMultiSelectInput, @@ -23,6 +29,10 @@ const mapping = { app: WidgetAppInput, sortableItemList: WidgetSortedItemListInput, multiReleasesRepositories: WidgetMultiReleasesRepositoriesInput, + dynamicSelect: WidgetDynamicSelectInput, + umamiEventName: WidgetUmamiEventInput, + umamiEventNames: WidgetUmamiEventNamesInput, + umamiWebsite: WidgetUmamiWebsiteInput, } satisfies Record; export const getInputForType = (type: TType) => { diff --git a/packages/widgets/src/_inputs/widget-anchor-note-input.tsx b/packages/widgets/src/_inputs/widget-anchor-note-input.tsx new file mode 100644 index 000000000..e045e7df0 --- /dev/null +++ b/packages/widgets/src/_inputs/widget-anchor-note-input.tsx @@ -0,0 +1,63 @@ +"use client"; + +import { useMemo, useState } from "react"; +import { Loader, Select } from "@mantine/core"; +import { useDebouncedValue } from "@mantine/hooks"; + +import { clientApi } from "@homarr/api/client"; +import { useI18n, useScopedI18n } from "@homarr/translation/client"; + +import type { CommonWidgetInputProps } from "./common"; +import { useWidgetInputTranslation } from "./common"; +import { useFormContext } from "./form"; + +export const WidgetAnchorNoteInput = ({ property, kind, options }: CommonWidgetInputProps<"anchorNote">) => { + const t = useI18n(); + const tWidget = useWidgetInputTranslation(kind, property); + const tAnchor = useScopedI18n("widget.anchorNote"); + const form = useFormContext(); + + const integrationId = form.values.integrationIds[0]; + const [search, setSearch] = useState(""); + const [debouncedSearch] = useDebouncedValue(search, 250); + + const { data: notes, isPending } = clientApi.widget.anchorNotes.listNotes.useQuery( + { + integrationId: integrationId ?? "", + search: debouncedSearch.trim() ? debouncedSearch : undefined, + limit: 200, + }, + { + enabled: Boolean(integrationId), + refetchOnMount: false, + refetchOnWindowFocus: false, + refetchOnReconnect: false, + retry: false, + }, + ); + + const noteOptions = useMemo( + () => + notes?.map((note) => ({ + value: note.id, + label: note.title || tAnchor("untitled"), + })) ?? [], + [notes, tAnchor], + ); + + return ( + + typeof option === "string" + ? option + : { + value: option.value, + label: translateIfNecessary(t, option.label) ?? option.value, + }, + ) + .concat( + typeof value === "object" && + value !== null && + !selectOptions.some((option) => + typeof option === "string" ? option === value.value : option.value === value.value, + ) + ? { + value: value.value, + label: value.label, + } + : [], + )} + searchValue={search} + onSearchChange={setSearch} + leftSection={isPending && } + renderOption={({ option, checked }) => { + return ( + + {option.label} + {checked && ( + + )} + + ); + }} + description={options.withDescription ? tWidget("description") : undefined} + searchable + {...inputProps} + value={value?.value ?? null} + onChange={(value) => + onChange( + value + ? { + value, + label: + selectOptions.filter((option) => typeof option === "object").find((option) => option.value === value) + ?.label ?? value, + } + : null, + ) + } + /> + ); +}; diff --git a/packages/widgets/src/_inputs/widget-umami-event-input.tsx b/packages/widgets/src/_inputs/widget-umami-event-input.tsx new file mode 100644 index 000000000..947822cef --- /dev/null +++ b/packages/widgets/src/_inputs/widget-umami-event-input.tsx @@ -0,0 +1,46 @@ +"use client"; + +import { Select, Text } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import { useScopedI18n } from "@homarr/translation/client"; + +import type { CommonWidgetInputProps } from "./common"; +import { useWidgetInputTranslation } from "./common"; +import { useFormContext } from "./form"; + +export const WidgetUmamiEventInput = ({ property, kind }: CommonWidgetInputProps<"umamiEventName">) => { + const t = useScopedI18n("widget.umami.option.eventName"); + const tInput = useWidgetInputTranslation(kind, property); + const form = useFormContext(); + + const integrationIds = form.values.integrationIds; + const websiteId = form.values.options.websiteId as string | undefined; + + const { data: eventNames, isPending } = clientApi.widget.umami.getEventNames.useQuery( + { integrationId: integrationIds[0] ?? "", websiteId: websiteId ?? "" }, + { enabled: Boolean(integrationIds[0]) && Boolean(websiteId) }, + ); + + if (!websiteId || integrationIds.length === 0) { + return ( + + {t("configureWebsiteFirst")} + + ); + } + + const data = [{ value: "", label: t("none") }, ...(eventNames ?? [])]; + + return ( + ({ value: site.id, label: site.domain }))} + {...form.getInputProps(`options.${property}`)} + /> + ); +}; diff --git a/packages/widgets/src/anchor-note/anchor-note.css b/packages/widgets/src/anchor-note/anchor-note.css new file mode 100644 index 000000000..c28655e87 --- /dev/null +++ b/packages/widgets/src/anchor-note/anchor-note.css @@ -0,0 +1,115 @@ +.homarr-anchor-quill { + display: flex; + flex-direction: column; + height: 100%; +} + +.homarr-anchor-quill .ql-toolbar.ql-snow, +.homarr-anchor-quill .ql-container.ql-snow { + border: 0; +} + +.homarr-anchor-quill .ql-toolbar.ql-snow { + background: transparent; + border-radius: 0; +} + +.homarr-anchor-quill .ql-container.ql-snow { + background: transparent; + border-radius: 0; + flex: 1; + display: flex; + flex-direction: column; +} + +.homarr-anchor-quill .ql-editor { + min-height: 160px; + flex: 1; + padding: 0; + color: var(--mantine-color-text); + font-size: var(--mantine-font-size-sm, 0.95rem); + line-height: 1.6; +} + +.homarr-anchor-quill .ql-editor.ql-blank::before { + color: var(--mantine-color-dimmed); +} + +.homarr-anchor-quill .ql-editor ol, +.homarr-anchor-quill .ql-editor ul { + padding-left: 1.5rem; +} + +.homarr-anchor-quill .ql-editor li { + margin: 0.25rem 0; +} + +.homarr-anchor-quill .ql-editor li[data-list="unchecked"], +.homarr-anchor-quill .ql-editor li[data-list="checked"] { + padding-left: 28px !important; + list-style: none; + position: relative; +} + +.homarr-anchor-quill .ql-editor li[data-list="checked"] > .ql-ui, +.homarr-anchor-quill .ql-editor li[data-list="unchecked"] > .ql-ui { + position: absolute; + left: 0; + top: 0.35em; + width: 18px !important; + height: 18px !important; + border-radius: 5px; + box-sizing: border-box; + transition: all 150ms ease; + background: transparent; + padding: 0 !important; + margin: 0 !important; +} + +.homarr-anchor-quill .ql-editor li[data-list="checked"] > .ql-ui::before, +.homarr-anchor-quill .ql-editor li[data-list="unchecked"] > .ql-ui::before { + content: "" !important; + display: none !important; +} + +.homarr-anchor-quill .ql-editor li[data-list="unchecked"] > .ql-ui { + border: 2px solid var(--mantine-color-dimmed); + opacity: 0.7; +} + +.homarr-anchor-quill .ql-editor li[data-list="unchecked"]:hover > .ql-ui { + border-color: var(--mantine-primary-color-filled); + opacity: 1; +} + +.homarr-anchor-quill .ql-editor li[data-list="checked"] > .ql-ui { + border: 2px solid var(--mantine-primary-color-filled); + background: var(--mantine-primary-color-filled); +} + +.homarr-anchor-quill .ql-editor li[data-list="checked"] > .ql-ui::after { + content: ""; + display: block; + position: absolute; + left: 50%; + top: 45%; + width: 5px; + height: 9px; + border: solid var(--mantine-color-white, #fff); + border-width: 0 2px 2px 0; + transform: translate(-50%, -50%) rotate(45deg); +} + +.homarr-anchor-quill .ql-editor li[data-list="checked"] { + color: var(--mantine-color-dimmed); + text-decoration: line-through; + text-decoration-color: var(--mantine-color-dimmed); +} + +.homarr-anchor-quill--readonly .ql-toolbar.ql-snow { + display: none; +} + +.homarr-anchor-quill--readonly .ql-container.ql-snow { + border-radius: 0; +} diff --git a/packages/widgets/src/anchor-note/component.tsx b/packages/widgets/src/anchor-note/component.tsx new file mode 100644 index 000000000..f3fde1f97 --- /dev/null +++ b/packages/widgets/src/anchor-note/component.tsx @@ -0,0 +1,320 @@ +"use client"; + +import { startTransition, useCallback, useEffect, useMemo, useState } from "react"; +import type { ComponentProps } from "react"; +import dynamic from "next/dynamic"; +import { Button, Center, Group, Stack, Text, TextInput } from "@mantine/core"; +import { Quill } from "react-quill-new"; +import type { DeltaStatic } from "react-quill-new"; +import type ReactQuillComponent from "react-quill-new"; +import { z } from "zod/v4"; + +import { clientApi } from "@homarr/api/client"; +import { useTimeAgo } from "@homarr/common"; +import type { AnchorNotePermission } from "@homarr/integrations"; +import { useScopedI18n } from "@homarr/translation/client"; + +import type { WidgetComponentProps } from "../definition"; + +import "react-quill-new/dist/quill.snow.css"; +import "./anchor-note.css"; + +type ReactQuillProps = ComponentProps; +type ReactQuillOnChange = NonNullable; + +const ReactQuill = dynamic(() => import("react-quill-new"), { ssr: false }); + +const quillDeltaOperationSchema = z.object({ + insert: z.unknown().optional(), + attributes: z.record(z.string(), z.unknown()).optional(), +}); + +const quillDeltaSchema = z.object({ + ops: z.array(quillDeltaOperationSchema), +}); + +type QuillDelta = z.infer; + +const DeltaConstructor = Quill.import("delta") as new ( + ops?: QuillDelta["ops"] | { ops: QuillDelta["ops"] }, +) => DeltaStatic; + +const quillModules = { + toolbar: [ + ["bold", "italic", "underline", "strike"], + [{ header: [1, 2, 3, 4, false] }], + [{ align: [] }], + [{ list: "ordered" }, { list: "bullet" }, { list: "check" }], + [{ indent: "-1" }, { indent: "+1" }], + ["blockquote", "code-block"], + ["link"], + ["clean"], + ], + history: { + delay: 1000, + maxStack: 200, + userOnly: true, + }, +}; + +const readOnlyModules = { + toolbar: false, +}; + +const quillFormats = [ + "bold", + "italic", + "underline", + "strike", + "header", + "align", + "list", + "indent", + "blockquote", + "code-block", + "link", +]; + +const emptyDelta = (): DeltaStatic => new DeltaConstructor([{ insert: "\n" }]); + +const toPlainTextDelta = (value: string): DeltaStatic => { + const normalized = value.endsWith("\n") ? value : `${value}\n`; + return new DeltaConstructor([{ insert: normalized }]); +}; + +const parseStoredContent = (content?: string | null): DeltaStatic => { + if (!content) return emptyDelta(); + + try { + const parsedDelta = quillDeltaSchema.safeParse(JSON.parse(content)); + if (parsedDelta.success) { + return new DeltaConstructor(parsedDelta.data.ops); + } + } catch { + return toPlainTextDelta(content); + } + + return toPlainTextDelta(content); +}; + +const stringifyDelta = (delta: unknown): string => { + const parsedDelta = quillDeltaSchema.safeParse(delta); + if (parsedDelta.success) { + return JSON.stringify(parsedDelta.data); + } + return JSON.stringify(emptyDelta()); +}; + +const canEditPermission = (permission: AnchorNotePermission) => { + return permission === "owner" || permission === "editor"; +}; + +const isForbiddenError = (error: unknown): boolean => { + if (typeof error !== "object" || error === null) return false; + + const data = (error as { data?: unknown }).data; + if (typeof data !== "object" || data === null) return false; + + return (data as { code?: unknown }).code === "FORBIDDEN"; +}; + +export default function AnchorNoteWidget({ options, integrationIds }: WidgetComponentProps<"anchorNote">) { + const t = useScopedI18n("widget.anchorNote"); + const noteId = options.noteId.trim(); + if (!noteId) { + return ( +
+ {t("empty")} +
+ ); + } + + // It will always have at least one integration as otherwise the NoIntegrationSelectedError would be thrown in item-content.tsx + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const integrationId = integrationIds[0]!; + + return ; +} + +interface AnchorNoteWidgetContentProps { + options: WidgetComponentProps<"anchorNote">["options"]; + integrationId: string; + noteId: string; +} + +const AnchorNoteWidgetContent = ({ options, integrationId, noteId }: AnchorNoteWidgetContentProps) => { + const t = useScopedI18n("widget.anchorNote"); + const [note, { refetch }] = clientApi.widget.anchorNotes.getNote.useSuspenseQuery( + { + integrationId, + noteId, + }, + { + refetchOnMount: false, + refetchOnWindowFocus: false, + refetchOnReconnect: false, + retry: false, + }, + ); + const { mutateAsync: updateNoteAsync, isPending: isUpdating } = clientApi.widget.anchorNotes.updateNote.useMutation(); + + const [isEditing, setIsEditing] = useState(false); + const [draftTitle, setDraftTitle] = useState(note.title); + const [draftContent, setDraftContent] = useState(note.content ?? ""); + const [saveError, setSaveError] = useState(null); + + useEffect(() => { + if (isEditing) return; + + startTransition(() => { + setDraftTitle(note.title); + setDraftContent(note.content ?? ""); + }); + }, [isEditing, note.content, note.title]); + + const canEdit = canEditPermission(note.permission); + const isViewer = note.permission === "viewer"; + const updatedAt = useMemo(() => new Date(note.updatedAt), [note.updatedAt]); + const updatedAtRelative = useTimeAgo(updatedAt, 30000); + + const hasChanges = useMemo(() => { + const normalizedTitle = draftTitle.trim() || note.title; + return normalizedTitle !== note.title || draftContent !== (note.content ?? ""); + }, [draftContent, draftTitle, note.content, note.title]); + + const editorValue = useMemo(() => parseStoredContent(draftContent), [draftContent]); + const readOnlyValue = useMemo(() => parseStoredContent(note.content), [note.content]); + const handleEditorChange = useCallback( + (_html, _delta, source, editor) => { + if (!isEditing || source !== "user") return; + const next = stringifyDelta(editor.getContents()); + setDraftContent(next); + }, + [isEditing], + ); + + const handleEdit = useCallback(() => { + if (!canEdit) return; + startTransition(() => { + setDraftTitle(note.title); + setDraftContent(note.content ?? ""); + setSaveError(null); + setIsEditing(true); + }); + }, [canEdit, note.content, note.title]); + + const handleCancel = useCallback(() => { + startTransition(() => { + setDraftTitle(note.title); + setDraftContent(note.content ?? ""); + setSaveError(null); + setIsEditing(false); + }); + }, [note.content, note.title]); + + const handleSave = useCallback(async () => { + if (!canEdit) return; + + const normalizedTitle = draftTitle.trim() || note.title || t("untitled"); + + if (!hasChanges) { + startTransition(() => { + setSaveError(null); + setIsEditing(false); + }); + return; + } + + await updateNoteAsync( + { + integrationId, + noteId, + title: normalizedTitle, + content: draftContent, + }, + { + onSuccess() { + void (async () => { + await refetch(); + startTransition(() => { + setSaveError(null); + setIsEditing(false); + }); + })(); + }, + onError(error) { + if (isForbiddenError(error)) { + void (async () => { + await refetch(); + startTransition(() => { + setSaveError(t("saveForbidden")); + setIsEditing(false); + }); + })(); + return; + } + + startTransition(() => { + setSaveError(t("saveFailed")); + }); + }, + }, + ); + }, [canEdit, draftContent, draftTitle, hasChanges, integrationId, note.title, noteId, refetch, t, updateNoteAsync]); + + return ( + + + + {isEditing ? ( + setDraftTitle(event.currentTarget.value)} size="sm" /> + ) : ( + options.showTitle && {note.title || t("untitled")} + )} + {!isEditing && options.showUpdatedAt && ( + + {t("updatedAt", { date: updatedAtRelative })} + + )} + {!isEditing && isViewer && ( + + {t("readOnlyViewer")} + + )} + {saveError && ( + + {saveError} + + )} + + + {isEditing ? ( + <> + + + + ) : ( + + )} + + +
+ +
+
+ ); +}; diff --git a/packages/widgets/src/anchor-note/index.ts b/packages/widgets/src/anchor-note/index.ts new file mode 100644 index 000000000..a54aada3f --- /dev/null +++ b/packages/widgets/src/anchor-note/index.ts @@ -0,0 +1,20 @@ +import { IconNotes } from "@tabler/icons-react"; + +import { createWidgetDefinition } from "../definition"; +import { optionsBuilder } from "../options"; + +export const { definition, componentLoader } = createWidgetDefinition("anchorNote", { + icon: IconNotes, + supportedIntegrations: ["anchor"], + createOptions() { + return optionsBuilder.from((factory) => ({ + noteId: factory.anchorNote(), + showTitle: factory.switch({ + defaultValue: true, + }), + showUpdatedAt: factory.switch({ + defaultValue: true, + }), + })); + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/app/component.tsx b/packages/widgets/src/app/component.tsx index 8511eb7b0..1caa1ce56 100644 --- a/packages/widgets/src/app/component.tsx +++ b/packages/widgets/src/app/component.tsx @@ -131,7 +131,7 @@ export default function AppWidget({ options, isEditMode, height, width }: Widget {options.pingEnabled && !settings.forceDisableStatus && !board.disableStatus && app.href ? ( }> - + ) : null} diff --git a/packages/widgets/src/app/ping/ping-indicator.tsx b/packages/widgets/src/app/ping/ping-indicator.tsx index a74a6c79f..a6299ed95 100644 --- a/packages/widgets/src/app/ping/ping-indicator.tsx +++ b/packages/widgets/src/app/ping/ping-indicator.tsx @@ -7,13 +7,13 @@ import { clientApi } from "@homarr/api/client"; import { PingDot } from "./ping-dot"; interface PingIndicatorProps { - href: string; + appId: string; } -export const PingIndicator = ({ href }: PingIndicatorProps) => { +export const PingIndicator = ({ appId }: PingIndicatorProps) => { const [ping] = clientApi.widget.app.ping.useSuspenseQuery( { - url: href, + id: appId, }, { refetchOnMount: false, @@ -24,7 +24,7 @@ export const PingIndicator = ({ href }: PingIndicatorProps) => { const [pingResult, setPingResult] = useState(ping); clientApi.widget.app.updatedPing.useSubscription( - { url: href }, + { id: appId }, { onData(data) { setPingResult(data); diff --git a/packages/widgets/src/coolify/applications-section.tsx b/packages/widgets/src/coolify/applications-section.tsx new file mode 100644 index 000000000..bbc52c662 --- /dev/null +++ b/packages/widgets/src/coolify/applications-section.tsx @@ -0,0 +1,48 @@ +"use client"; + +import { Accordion, Badge, Group, Stack, Text } from "@mantine/core"; +import { IconCloud } from "@tabler/icons-react"; + +import type { CoolifyApplicationWithContext } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +import { getBadgeColor, parseStatus } from "./coolify-utils"; +import { ResourceRow } from "./resource-row"; + +interface ApplicationsSectionProps { + applications: CoolifyApplicationWithContext[]; + baseUrl: string; + isTiny: boolean; +} + +export function ApplicationsSection({ applications, baseUrl, isTiny }: ApplicationsSectionProps) { + const t = useScopedI18n("widget.coolify"); + const tCommon = useScopedI18n("common"); + const runningApps = applications.filter((app) => parseStatus(app.status ?? "") === "running").length; + + return ( + + }> + + {tCommon("applications")} + + {runningApps} / {applications.length} + + + + + {applications.length > 0 ? ( + + {applications.map((app) => ( + + ))} + + ) : ( + + {t("empty.applications")} + + )} + + + ); +} diff --git a/packages/widgets/src/coolify/component.tsx b/packages/widgets/src/coolify/component.tsx new file mode 100644 index 000000000..a62b4f3cd --- /dev/null +++ b/packages/widgets/src/coolify/component.tsx @@ -0,0 +1,76 @@ +"use client"; + +import { ScrollArea, Stack, Text } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import { useScopedI18n } from "@homarr/translation/client"; + +import type { WidgetComponentProps } from "../definition"; +import { createWidgetKey } from "./coolify-utils"; +import { InstanceCard } from "./instance-card"; +import { SingleInstanceLayout } from "./single-instance-layout"; + +export default function CoolifyWidget({ options, integrationIds, width }: WidgetComponentProps<"coolify">) { + const t = useScopedI18n("widget.coolify"); + + if (integrationIds.length === 0) { + return ( + + {t("error.noIntegration")} + + ); + } + + return ; +} + +interface CoolifyContentProps { + integrationIds: string[]; + options: WidgetComponentProps<"coolify">["options"]; + width: number; +} + +function CoolifyContent({ integrationIds, options, width }: CoolifyContentProps) { + const [instancesData] = clientApi.widget.coolify.getInstancesInfo.useSuspenseQuery({ integrationIds }); + + const utils = clientApi.useUtils(); + clientApi.widget.coolify.subscribeInstancesInfo.useSubscription( + { integrationIds }, + { + onData(newData) { + utils.widget.coolify.getInstancesInfo.setData({ integrationIds }, (prevData) => { + if (!prevData) return prevData; + return prevData.map((instance) => + instance.integrationId === newData.integrationId + ? { ...instance, instanceInfo: newData.instanceInfo, updatedAt: newData.timestamp } + : instance, + ); + }); + }, + }, + ); + + const isTiny = width < 256; + const [firstInstance] = instancesData; + const widgetKey = createWidgetKey(integrationIds); + + if (instancesData.length === 1 && firstInstance) { + return ; + } + + return ( + + + {instancesData.map((instance) => ( + + ))} + + + ); +} diff --git a/packages/widgets/src/coolify/coolify-utils.ts b/packages/widgets/src/coolify/coolify-utils.ts new file mode 100644 index 000000000..7bf4f50cb --- /dev/null +++ b/packages/widgets/src/coolify/coolify-utils.ts @@ -0,0 +1,125 @@ +import type { + CoolifyApplicationWithContext, + CoolifyServer, + CoolifyServiceWithContext, +} from "@homarr/integrations/types"; + +export function parseStatus(status: string): string { + const firstPart = status.split(":")[0]?.toLowerCase(); + if (!firstPart) return "unknown"; + return firstPart; +} + +export function cleanFqdn(fqdn: string | undefined | null): string | undefined { + if (!fqdn) return undefined; + const firstUrl = fqdn.split(",")[0]?.trim(); + if (!firstUrl) return undefined; + try { + const url = new URL(firstUrl); + return `${url.protocol}//${url.host}${url.pathname}`.replace(/\/$/, ""); + } catch { + return firstUrl; + } +} + +export function getStatusColor(status: string): string { + const colors: Record = { + running: "green", + stopped: "red", + exited: "red", + starting: "yellow", + restarting: "yellow", + }; + return colors[status] ?? "gray"; +} + +export function getBadgeColor(running: number, total: number): string { + if (total === 0) return "gray"; + if (running === total) return "green"; + if (running > 0) return "yellow"; + return "red"; +} + +export function formatRelativeTime(dateString: string | null | undefined): string | undefined { + if (!dateString) return undefined; + const date = new Date(dateString); + if (isNaN(date.getTime())) return undefined; + + const now = new Date(); + const diffMs = now.getTime() - date.getTime(); + const diffSec = Math.floor(diffMs / 1000); + const diffMin = Math.floor(diffSec / 60); + const diffHour = Math.floor(diffMin / 60); + const diffDay = Math.floor(diffHour / 24); + + if (diffDay > 0) { + const remainingHours = diffHour % 24; + return remainingHours > 0 ? `${diffDay}d ${remainingHours}h ago` : `${diffDay}d ago`; + } + if (diffHour > 0) { + const remainingMin = diffMin % 60; + return remainingMin > 0 ? `${diffHour}h ${remainingMin}m ago` : `${diffHour}h ago`; + } + if (diffMin > 0) return `${diffMin}m ago`; + return "just now"; +} + +export function getResourceTimestamp( + item: { updated_at?: string | null; last_online_at?: string | null; status?: string | null }, + resourceType: "application" | "service", +): string | undefined { + const status = parseStatus(item.status ?? ""); + const isRunning = status === "running"; + + if (isRunning) return undefined; + + const timestamp = resourceType === "application" ? (item.last_online_at ?? item.updated_at) : item.updated_at; + return formatRelativeTime(timestamp); +} + +export function buildServerResourceCounts( + servers: CoolifyServer[], + applications: CoolifyApplicationWithContext[], + services: CoolifyServiceWithContext[], +): Map { + const serverResourceCounts = new Map(); + + for (const server of servers) { + const serverId = server.settings?.server_id ?? server.id ?? 0; + serverResourceCounts.set(serverId, { apps: 0, services: 0 }); + } + + const destinationToServer = new Map(); + for (const service of services) { + if (service.destination_id != null && service.server_id != null) { + destinationToServer.set(service.destination_id, service.server_id); + } + } + + for (const app of applications) { + const serverId = app.server_id ?? destinationToServer.get(app.destination_id ?? 0) ?? app.destination_id ?? 0; + const counts = serverResourceCounts.get(serverId); + if (counts) { + counts.apps++; + } + } + + for (const service of services) { + const serverId = service.server_id ?? service.destination_id ?? 0; + const counts = serverResourceCounts.get(serverId); + if (counts) { + counts.services++; + } + } + + return serverResourceCounts; +} + +export function createWidgetKey(integrationIds: string[]): string { + return integrationIds.slice().sort().join("-"); +} + +export function createStorageKey(widgetKey: string, integrationId: string, type: "sections" | "show-ip"): string { + const cardKey = widgetKey.includes("-") ? `${widgetKey}-${integrationId}` : widgetKey; + return `coolify-${type}-${cardKey}`; +} diff --git a/packages/widgets/src/coolify/index.ts b/packages/widgets/src/coolify/index.ts new file mode 100644 index 000000000..cebf9de05 --- /dev/null +++ b/packages/widgets/src/coolify/index.ts @@ -0,0 +1,28 @@ +import { IconCloud, IconServerOff } from "@tabler/icons-react"; + +import { createWidgetDefinition } from "../definition"; +import { optionsBuilder } from "../options"; + +export const { definition, componentLoader } = createWidgetDefinition("coolify", { + icon: IconCloud, + createOptions() { + return optionsBuilder.from((factory) => ({ + showServers: factory.switch({ + defaultValue: true, + }), + showApplications: factory.switch({ + defaultValue: true, + }), + showServices: factory.switch({ + defaultValue: true, + }), + })); + }, + supportedIntegrations: ["coolify"], + errors: { + INTERNAL_SERVER_ERROR: { + icon: IconServerOff, + message: (t) => t("widget.coolify.error.internalServerError"), + }, + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/coolify/instance-card.tsx b/packages/widgets/src/coolify/instance-card.tsx new file mode 100644 index 000000000..f6eec9c52 --- /dev/null +++ b/packages/widgets/src/coolify/instance-card.tsx @@ -0,0 +1,122 @@ +"use client"; + +import { Accordion, Anchor, Badge, Card, Group, Image, Text } from "@mantine/core"; +import { useLocalStorage } from "@mantine/hooks"; + +import { useTimeAgo } from "@homarr/common"; +import { useScopedI18n } from "@homarr/translation/client"; + +import { ApplicationsSection } from "./applications-section"; +import { buildServerResourceCounts, getBadgeColor, parseStatus } from "./coolify-utils"; +import { ServersSection } from "./servers-section"; +import { ServicesSection } from "./services-section"; +import type { CoolifyOptions, InstanceData } from "./types"; +import { COOLIFY_ICON_URL } from "./types"; + +interface InstanceCardProps { + instance: InstanceData; + options: CoolifyOptions; + isTiny: boolean; + widgetKey: string; +} + +export function InstanceCard({ instance, options, isTiny, widgetKey }: InstanceCardProps) { + const t = useScopedI18n("widget.coolify"); + const cardKey = `${widgetKey}-${instance.integrationId}`; + const [showIp, setShowIp] = useLocalStorage({ + key: `coolify-show-ip-${cardKey}`, + defaultValue: false, + }); + const [openSections, setOpenSections] = useLocalStorage({ + key: `coolify-sections-${cardKey}`, + defaultValue: ["applications"], + }); + + const serverResourceCounts = buildServerResourceCounts( + instance.instanceInfo.servers, + instance.instanceInfo.applications, + instance.instanceInfo.services, + ); + + const baseUrl = instance.integrationUrl.replace(/\/+$/, ""); + const relativeTime = useTimeAgo(instance.updatedAt); + + const onlineServers = instance.instanceInfo.servers.filter((s) => s.is_reachable !== false).length; + const runningApps = instance.instanceInfo.applications.filter( + (a) => parseStatus(a.status ?? "") === "running", + ).length; + const runningServices = instance.instanceInfo.services.filter( + (s) => parseStatus(s.status ?? "") === "running", + ).length; + + return ( + + + + Coolify + + {instance.integrationName} + + + + {options.showServers && ( + + {onlineServers}/{instance.instanceInfo.servers.length} + + )} + {options.showApplications && ( + + {runningApps}/{instance.instanceInfo.applications.length} + + )} + {options.showServices && ( + + {runningServices}/{instance.instanceInfo.services.length} + + )} + + + + + {options.showServers && ( + setShowIp((prev) => !prev)} + /> + )} + {options.showApplications && ( + + )} + {options.showServices && ( + + )} + + + + + v{instance.instanceInfo.version} + + + {t("footer.updated", { when: relativeTime })} + + + + ); +} diff --git a/packages/widgets/src/coolify/resource-row.tsx b/packages/widgets/src/coolify/resource-row.tsx new file mode 100644 index 000000000..9f6cfe1ae --- /dev/null +++ b/packages/widgets/src/coolify/resource-row.tsx @@ -0,0 +1,78 @@ +"use client"; + +import { ActionIcon, Anchor, Group, Indicator, Stack, Text } from "@mantine/core"; +import { IconExternalLink, IconFileText, IconLink } from "@tabler/icons-react"; + +import { cleanFqdn, getResourceTimestamp, getStatusColor, parseStatus } from "./coolify-utils"; + +interface ResourceRowProps { + item: { + uuid: string; + name: string; + status?: string | null; + fqdn?: string | null; + updated_at?: string | null; + last_online_at?: string | null; + projectName?: string; + projectUuid?: string; + environmentName?: string; + environmentUuid?: string; + }; + baseUrl: string; + isTiny: boolean; + resourceType: "application" | "service"; +} + +export function ResourceRow({ item, baseUrl, isTiny, resourceType }: ResourceRowProps) { + const status = parseStatus(item.status ?? ""); + const statusColor = getStatusColor(status); + + const resourceUrl = + item.projectUuid && item.environmentUuid + ? `${baseUrl}/project/${item.projectUuid}/environment/${item.environmentUuid}/${resourceType}/${item.uuid}` + : undefined; + + const logsUrl = resourceUrl ? `${resourceUrl}/logs` : undefined; + + return ( + + + + {resourceUrl ? ( + + {item.name} + + ) : ( + + {item.name} + + )} + + + {cleanFqdn(item.fqdn) && ( + + + + )} + {resourceUrl && ( + + + + )} + {logsUrl && ( + + + + )} + + {item.projectName ?? "-"} / {item.environmentName ?? "-"} + + {getResourceTimestamp(item, resourceType) && ( + + {getResourceTimestamp(item, resourceType)} + + )} + + + ); +} diff --git a/packages/widgets/src/coolify/servers-section.tsx b/packages/widgets/src/coolify/servers-section.tsx new file mode 100644 index 000000000..543df1c67 --- /dev/null +++ b/packages/widgets/src/coolify/servers-section.tsx @@ -0,0 +1,122 @@ +"use client"; + +import { Accordion, ActionIcon, Anchor, Badge, Group, Indicator, Stack, Text } from "@mantine/core"; +import { IconExternalLink, IconEye, IconEyeOff, IconServer } from "@tabler/icons-react"; + +import type { CoolifyServer } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +import { getBadgeColor } from "./coolify-utils"; + +interface ServersSectionProps { + servers: CoolifyServer[]; + serverResourceCounts: Map; + baseUrl: string; + isTiny: boolean; + showIp: boolean; + onToggleIp: () => void; +} + +export function ServersSection({ + servers, + serverResourceCounts, + baseUrl, + isTiny, + showIp, + onToggleIp, +}: ServersSectionProps) { + const t = useScopedI18n("widget.coolify"); + const tCommon = useScopedI18n("common"); + const onlineServers = servers.filter((server) => server.is_reachable !== false).length; + + return ( + + }> + + + {tCommon("servers")} + + {onlineServers} / {servers.length} + + + { + event.stopPropagation(); + onToggleIp(); + }} + > + {showIp ? : } + + + + + {servers.length > 0 ? ( + + {servers.map((server) => ( + + ))} + + ) : ( + + {t("empty.servers")} + + )} + + + ); +} + +interface ServerRowProps { + server: CoolifyServer; + counts: { apps: number; services: number }; + baseUrl: string; + isTiny: boolean; + showIp: boolean; +} + +function ServerRow({ server, counts, baseUrl, isTiny, showIp }: ServerRowProps) { + const t = useScopedI18n("widget.coolify"); + const isBuildServer = server.settings?.is_build_server === true; + const isOnline = server.is_reachable !== false; + const serverUrl = `${baseUrl}/server/${server.uuid}`; + + return ( + + + + + {server.name} + + {isBuildServer ? ( + + {t("server.buildServer")} + + ) : ( + + ({counts.apps} apps / {counts.services} svcs) + + )} + + + + + + + {showIp ? server.ip : "***.***.***.***"} + + + + ); +} diff --git a/packages/widgets/src/coolify/services-section.tsx b/packages/widgets/src/coolify/services-section.tsx new file mode 100644 index 000000000..c225db27d --- /dev/null +++ b/packages/widgets/src/coolify/services-section.tsx @@ -0,0 +1,48 @@ +"use client"; + +import { Accordion, Badge, Group, Stack, Text } from "@mantine/core"; +import { IconStack2 } from "@tabler/icons-react"; + +import type { CoolifyServiceWithContext } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +import { getBadgeColor, parseStatus } from "./coolify-utils"; +import { ResourceRow } from "./resource-row"; + +interface ServicesSectionProps { + services: CoolifyServiceWithContext[]; + baseUrl: string; + isTiny: boolean; +} + +export function ServicesSection({ services, baseUrl, isTiny }: ServicesSectionProps) { + const t = useScopedI18n("widget.coolify"); + const tCommon = useScopedI18n("common"); + const runningServices = services.filter((svc) => parseStatus(svc.status ?? "") === "running").length; + + return ( + + }> + + {tCommon("services")} + + {runningServices} / {services.length} + + + + + {services.length > 0 ? ( + + {services.map((service) => ( + + ))} + + ) : ( + + {t("empty.services")} + + )} + + + ); +} diff --git a/packages/widgets/src/coolify/single-instance-layout.tsx b/packages/widgets/src/coolify/single-instance-layout.tsx new file mode 100644 index 000000000..af9948b13 --- /dev/null +++ b/packages/widgets/src/coolify/single-instance-layout.tsx @@ -0,0 +1,92 @@ +"use client"; + +import { Accordion, Anchor, Group, Image, ScrollArea, Stack, Text } from "@mantine/core"; +import { useLocalStorage } from "@mantine/hooks"; + +import { useTimeAgo } from "@homarr/common"; +import { useScopedI18n } from "@homarr/translation/client"; + +import { ApplicationsSection } from "./applications-section"; +import { buildServerResourceCounts } from "./coolify-utils"; +import { ServersSection } from "./servers-section"; +import { ServicesSection } from "./services-section"; +import type { CoolifyOptions, InstanceData } from "./types"; +import { COOLIFY_ICON_URL } from "./types"; + +interface SingleInstanceLayoutProps { + instance: InstanceData; + options: CoolifyOptions; + isTiny: boolean; + widgetKey: string; +} + +export function SingleInstanceLayout({ instance, options, isTiny, widgetKey }: SingleInstanceLayoutProps) { + const t = useScopedI18n("widget.coolify"); + const [showIp, setShowIp] = useLocalStorage({ + key: `coolify-show-ip-${widgetKey}`, + defaultValue: false, + }); + const [openSections, setOpenSections] = useLocalStorage({ + key: `coolify-sections-${widgetKey}`, + defaultValue: ["applications"], + }); + + const serverResourceCounts = buildServerResourceCounts( + instance.instanceInfo.servers, + instance.instanceInfo.applications, + instance.instanceInfo.services, + ); + + const baseUrl = instance.integrationUrl.replace(/\/+$/, ""); + const displayUrl = baseUrl.replace(/^https?:\/\//, ""); + const relativeTime = useTimeAgo(instance.updatedAt); + + return ( + + + + + Coolify + + oolify + + + + {displayUrl} + + + + + {options.showServers && ( + setShowIp((prev) => !prev)} + /> + )} + {options.showApplications && ( + + )} + {options.showServices && ( + + )} + + + + + Coolify + + v{instance.instanceInfo.version} + + + + {t("footer.updated", { when: relativeTime })} + + + + + ); +} diff --git a/packages/widgets/src/coolify/types.ts b/packages/widgets/src/coolify/types.ts new file mode 100644 index 000000000..a5982b695 --- /dev/null +++ b/packages/widgets/src/coolify/types.ts @@ -0,0 +1,15 @@ +import type { CoolifyInstanceInfo } from "@homarr/integrations/types"; + +import type { WidgetComponentProps } from "../definition"; + +export const COOLIFY_ICON_URL = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/coolify.svg"; + +export interface InstanceData { + integrationId: string; + integrationName: string; + integrationUrl: string; + instanceInfo: CoolifyInstanceInfo; + updatedAt: Date; +} + +export type CoolifyOptions = WidgetComponentProps<"coolify">["options"]; diff --git a/packages/widgets/src/docker/component.tsx b/packages/widgets/src/docker/component.tsx index a8d0b6f3c..72d9348a0 100644 --- a/packages/widgets/src/docker/component.tsx +++ b/packages/widgets/src/docker/component.tsx @@ -60,6 +60,19 @@ const createColumns = ( return ; }, }, + { + id: "host", + accessorKey: "host", + size: 100, + header: t("field.host.label"), + Cell({ row }) { + return ( + + {row.original.host} + + ); + }, + }, { id: "cpuUsage", sortingFn: (rowA, rowB) => { diff --git a/packages/widgets/src/health-monitoring/index.ts b/packages/widgets/src/health-monitoring/index.ts index 8ed669750..698446c28 100644 --- a/packages/widgets/src/health-monitoring/index.ts +++ b/packages/widgets/src/health-monitoring/index.ts @@ -19,6 +19,9 @@ export const { definition, componentLoader } = createWidgetDefinition("healthMon memory: factory.switch({ defaultValue: true, }), + gpu: factory.switch({ + defaultValue: true, + }), showUptime: factory.switch({ defaultValue: true, }), diff --git a/packages/widgets/src/health-monitoring/rings/gpu-ring.tsx b/packages/widgets/src/health-monitoring/rings/gpu-ring.tsx new file mode 100644 index 000000000..6cee021b9 --- /dev/null +++ b/packages/widgets/src/health-monitoring/rings/gpu-ring.tsx @@ -0,0 +1,64 @@ +import { Center, RingProgress, Stack, Text, Tooltip } from "@mantine/core"; +import { IconDeviceDesktop } from "@tabler/icons-react"; + +import { progressColor } from "../system-health"; + +interface GpuRingProps { + gpu: { + gpuId: string; + name: string; + memoryUtilization: number; + processorUtilization: number; + temperature: number | null; + fanSpeed: number | null; + }; + isTiny: boolean; + fahrenheit: boolean; +} + +export const GpuRing = ({ gpu, isTiny, fahrenheit }: GpuRingProps) => { + const tempDisplay = + gpu.temperature != null + ? fahrenheit + ? `${(gpu.temperature * 1.8 + 32).toFixed(0)}°F` + : `${gpu.temperature}°C` + : null; + + return ( + + + {gpu.name} + + VRAM: {gpu.memoryUtilization.toFixed(1)}% + {tempDisplay && Temp: {tempDisplay}} + {gpu.fanSpeed != null && Fan: {gpu.fanSpeed} RPM} + + } + multiline + > + + {`${gpu.processorUtilization.toFixed(0)}%`} + + + } + sections={[ + { + value: Number(gpu.processorUtilization.toFixed(2)), + color: progressColor(Number(gpu.processorUtilization.toFixed(2))), + }, + ]} + /> + + ); +}; diff --git a/packages/widgets/src/health-monitoring/system-health.tsx b/packages/widgets/src/health-monitoring/system-health.tsx index 7a5d4e9d6..6e7d2965c 100644 --- a/packages/widgets/src/health-monitoring/system-health.tsx +++ b/packages/widgets/src/health-monitoring/system-health.tsx @@ -39,6 +39,7 @@ import { useI18n } from "@homarr/translation/client"; import type { WidgetComponentProps } from "../definition"; import { CpuRing } from "./rings/cpu-ring"; import { CpuTempRing } from "./rings/cpu-temp-ring"; +import { GpuRing } from "./rings/gpu-ring"; import { formatMemoryUsage, MemoryRing } from "./rings/memory-ring"; import classes from "./system-health.module.css"; @@ -187,6 +188,10 @@ export const SystemHealthMonitoring = ({ isTiny={isTiny} /> )} + {options.gpu && + healthInfo.gpu.map((gpu) => ( + + ))} { diff --git a/packages/widgets/src/iframe/component.tsx b/packages/widgets/src/iframe/component.tsx index 67fa73536..ac794a631 100644 --- a/packages/widgets/src/iframe/component.tsx +++ b/packages/widgets/src/iframe/component.tsx @@ -105,6 +105,10 @@ const getSandboxFlags = ( baseSandbox.push("allow-popups-to-escape-sandbox"); } + if (permissions.allowModals) { + baseSandbox.push("allow-modals"); + } + return baseSandbox; }; @@ -115,4 +119,5 @@ const permissionMapping = { allowGeolocation: "geolocation", allowMicrophone: "microphone", allowPayment: "payment", + allowModals: "allow-modals", } satisfies Record["options"], "embedUrl" | "allowScrolling">, string>; diff --git a/packages/widgets/src/iframe/index.ts b/packages/widgets/src/iframe/index.ts index 9e6cc06e1..d4313aebe 100644 --- a/packages/widgets/src/iframe/index.ts +++ b/packages/widgets/src/iframe/index.ts @@ -17,6 +17,7 @@ export const { definition, componentLoader } = createWidgetDefinition("iframe", allowMicrophone: factory.switch(), allowCamera: factory.switch(), allowGeolocation: factory.switch(), + allowModals: factory.switch(), })); }, }).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/immich/album-carousel/component.module.css b/packages/widgets/src/immich/album-carousel/component.module.css new file mode 100644 index 000000000..9412b96dc --- /dev/null +++ b/packages/widgets/src/immich/album-carousel/component.module.css @@ -0,0 +1,52 @@ +.carouselContainer { + position: relative; + overflow: hidden; + background-color: var(--mantine-color-gray-9); + display: flex; + align-items: center; + justify-content: center; +} + +.carouselImage { + width: 100%; + height: 100%; + object-fit: cover; + background-color: var(--mantine-color-gray-8); +} + +.photoInfo { + position: absolute; + bottom: 0; + left: 0; + right: 0; + background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); + color: white; + border-radius: 0; +} + +.dots { + position: absolute; + bottom: 12px; + left: 50%; + transform: translateX(-50%); + z-index: 10; +} + +.dot { + width: 8px; + height: 8px; + border-radius: 50%; + background-color: rgba(255, 255, 255, 0.5); + cursor: pointer; + transition: all 0.2s ease; + + &[data-active="true"] { + background-color: rgba(255, 255, 255, 1); + width: 24px; + border-radius: 4px; + } + + &:hover { + background-color: rgba(255, 255, 255, 0.8); + } +} diff --git a/packages/widgets/src/immich/album-carousel/component.tsx b/packages/widgets/src/immich/album-carousel/component.tsx new file mode 100644 index 000000000..a8a920d5d --- /dev/null +++ b/packages/widgets/src/immich/album-carousel/component.tsx @@ -0,0 +1,121 @@ +"use client"; + +import type { Dispatch, SetStateAction } from "react"; +import { useEffect, useState } from "react"; +import { Box, Center, Group, Image, Stack, Text } from "@mantine/core"; +import { IconAlertCircle, IconCalendar } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import { useI18n } from "@homarr/translation/client"; + +import type { WidgetComponentProps } from "../../definition"; +import classes from "./component.module.css"; + +export default function ImmichAlbumCarouselWidget({ + integrationIds, + options, +}: WidgetComponentProps<"immich-albumCarousel">) { + const [currentPhotoIndex, setCurrentPhotoIndex] = useState(0); + + if (!options.albumId) { + return ; + } + + const [album] = clientApi.widget.immich.getAlbum.useSuspenseQuery({ + integrationId: integrationIds[0] ?? "", + albumId: options.albumId, + }); + + if (album.assets.length === 0) { + return ; + } + + const photoAssets = album.assets.filter((asset) => asset.type === "IMAGE"); + + if (photoAssets.length === 0) { + return ; + } + + return ( + + ); +} + +interface CarouselProps { + assets: { + id: string; + deviceAssetId: string; + originalPath: string; + fileModifiedAt: string; + publicLink: string; + }[]; + currentIndex: number; + setCurrentIndex: Dispatch>; + rotationInterval: number; + showPhotoInfo: boolean; +} + +function Carousel({ assets, currentIndex, setCurrentIndex, rotationInterval, showPhotoInfo }: CarouselProps) { + useEffect(() => { + const interval = setInterval(() => { + setCurrentIndex((prev) => (prev + 1) % assets.length); + }, rotationInterval * 1000); + + return () => clearInterval(interval); + }, [assets.length, rotationInterval, setCurrentIndex]); + + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const currentAsset = assets[currentIndex]!; + + return ( + + Album photo + + {showPhotoInfo && ( + + + + {new Date(currentAsset.fileModifiedAt).toLocaleDateString()} + + + {currentIndex + 1} / {assets.length} + + + )} + + ); +} + +function NoAlbumSelected() { + const t = useI18n(); + return ( +
+ + + + {t("widget.immich-albumCarousel.noAlbumSelected")} + + +
+ ); +} + +function NoPhotosInAlbum() { + const t = useI18n(); + return ( +
+ + + + {t("widget.immich-albumCarousel.noPhotos")} + + +
+ ); +} diff --git a/packages/widgets/src/immich/album-carousel/index.ts b/packages/widgets/src/immich/album-carousel/index.ts new file mode 100644 index 000000000..6ad37c50a --- /dev/null +++ b/packages/widgets/src/immich/album-carousel/index.ts @@ -0,0 +1,28 @@ +import { IconPhoto } from "@tabler/icons-react"; +import z from "zod"; + +import { createWidgetDefinition } from "../../definition"; +import { optionsBuilder } from "../../options"; + +export const { definition, componentLoader } = createWidgetDefinition("immich-albumCarousel", { + icon: IconPhoto, + supportedIntegrations: ["immich"], + integrationsRequired: true, + createOptions() { + return optionsBuilder.from((factory) => ({ + albumId: factory.text({ + defaultValue: "", + withDescription: true, + }), + rotationIntervalSeconds: factory.number({ + defaultValue: 5, + validate: z.number().min(1).max(3600), + withDescription: true, + }), + showPhotoInfo: factory.switch({ + defaultValue: false, + withDescription: true, + }), + })); + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/immich/server-stats/component.module.css b/packages/widgets/src/immich/server-stats/component.module.css new file mode 100644 index 000000000..9154643ff --- /dev/null +++ b/packages/widgets/src/immich/server-stats/component.module.css @@ -0,0 +1,20 @@ +.statItem { + padding: 12px; + border-radius: var(--mantine-radius-md); + background-color: var(--mantine-color-gray-0); + transition: all 0.2s ease; + + &:hover { + background-color: var(--mantine-color-gray-1); + } +} + +@media (prefers-color-scheme: dark) { + .statItem { + background-color: var(--mantine-color-dark-6); + + &:hover { + background-color: var(--mantine-color-dark-5); + } + } +} diff --git a/packages/widgets/src/immich/server-stats/component.tsx b/packages/widgets/src/immich/server-stats/component.tsx new file mode 100644 index 000000000..0240a27c4 --- /dev/null +++ b/packages/widgets/src/immich/server-stats/component.tsx @@ -0,0 +1,73 @@ +"use client"; + +import React from "react"; +import { Group, Stack, Text } from "@mantine/core"; +import { IconDatabase, IconPhoto, IconUsers, IconVideo } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import { humanFileSize } from "@homarr/common"; +import { useI18n } from "@homarr/translation/client"; + +import type { WidgetComponentProps } from "../../definition"; +import classes from "./component.module.css"; + +export default function ImmichServerStatsWidget({ + integrationIds, + options, +}: WidgetComponentProps<"immich-serverStats">) { + const t = useI18n(); + const [stats] = clientApi.widget.immich.getServerStats.useSuspenseQuery({ + integrationId: integrationIds[0] ?? "", + }); + + return ( + + {options.showUsers && ( + } label={t("widget.immich-serverStats.users")} value={stats.userCount} /> + )} + {options.showPhotos && ( + } + label={t("widget.immich-serverStats.photos")} + value={stats.photoCount} + /> + )} + {options.showVideos && ( + } + label={t("widget.immich-serverStats.videos")} + value={stats.videoCount} + /> + )} + {options.showStorage && ( + } + label={t("widget.immich-serverStats.storage")} + value={humanFileSize(stats.totalLibraryUsageInBytes)} + /> + )} + + ); +} + +interface StatItemProps { + icon: React.ReactNode; + label: string; + value: string | number; +} + +function StatItem({ icon, label, value }: StatItemProps) { + return ( + + + {icon} + + {label} + + + + {value} + + + ); +} diff --git a/packages/widgets/src/immich/server-stats/index.ts b/packages/widgets/src/immich/server-stats/index.ts new file mode 100644 index 000000000..61b07289a --- /dev/null +++ b/packages/widgets/src/immich/server-stats/index.ts @@ -0,0 +1,30 @@ +import { IconGraphFilled } from "@tabler/icons-react"; + +import { createWidgetDefinition } from "../../definition"; +import { optionsBuilder } from "../../options"; + +export const { definition, componentLoader } = createWidgetDefinition("immich-serverStats", { + icon: IconGraphFilled, + supportedIntegrations: ["immich"], + integrationsRequired: true, + createOptions() { + return optionsBuilder.from((factory) => ({ + showUsers: factory.switch({ + defaultValue: true, + withDescription: true, + }), + showPhotos: factory.switch({ + defaultValue: true, + withDescription: true, + }), + showVideos: factory.switch({ + defaultValue: true, + withDescription: true, + }), + showStorage: factory.switch({ + defaultValue: true, + withDescription: true, + }), + })); + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/index.tsx b/packages/widgets/src/index.tsx index 677b801f2..572f70aa4 100644 --- a/packages/widgets/src/index.tsx +++ b/packages/widgets/src/index.tsx @@ -7,10 +7,12 @@ import { objectEntries } from "@homarr/common"; import type { IntegrationKind, WidgetKind } from "@homarr/definitions"; import type { SettingsContextProps } from "@homarr/settings/creator"; +import * as anchorNote from "./anchor-note"; import * as app from "./app"; import * as bookmarks from "./bookmarks"; import * as calendar from "./calendar"; import * as clock from "./clock"; +import * as coolify from "./coolify"; import type { WidgetComponentProps } from "./definition"; import * as dnsHoleControls from "./dns-hole/controls"; import * as dnsHoleSummary from "./dns-hole/summary"; @@ -19,6 +21,8 @@ import * as downloads from "./downloads"; import * as firewall from "./firewall"; import * as healthMonitoring from "./health-monitoring"; import * as iframe from "./iframe"; +import * as immichAlbumCarousel from "./immich/album-carousel"; +import * as immichServerStats from "./immich/server-stats"; import type { WidgetImportRecord } from "./import"; import * as indexerManager from "./indexer-manager"; import * as mediaReleases from "./media-releases"; @@ -36,8 +40,13 @@ import * as releases from "./releases"; import * as rssFeed from "./rssFeed"; import * as smartHomeEntityState from "./smart-home/entity-state"; import * as smartHomeExecuteAutomation from "./smart-home/execute-automation"; +import * as speedtestTracker from "./speedtest-tracker"; import * as stockPrice from "./stocks"; +import * as systemDisks from "./system-disks"; import * as systemResources from "./system-resources"; +import * as timetable from "./timetable"; +import * as tracearr from "./tracearr"; +import * as umami from "./umami"; import * as video from "./video"; import * as weather from "./weather"; @@ -48,6 +57,7 @@ export const widgetImports = { clock, weather, app, + anchorNote, notebook, iframe, video, @@ -75,6 +85,14 @@ export const widgetImports = { notifications, mediaReleases, systemResources, + coolify, + systemDisks, + timetable, + "immich-serverStats": immichServerStats, + "immich-albumCarousel": immichAlbumCarousel, + tracearr, + speedtestTracker, + umami, } satisfies WidgetImportRecord; export type WidgetImports = typeof widgetImports; diff --git a/packages/widgets/src/options.ts b/packages/widgets/src/options.ts index 2aa93b2cf..75b758b3d 100644 --- a/packages/widgets/src/options.ts +++ b/packages/widgets/src/options.ts @@ -6,6 +6,7 @@ import type { ZodType } from "zod/v4"; import type { IntegrationKind } from "@homarr/definitions"; +import type { DynamicSelectOption } from "./_inputs/widget-dynamic-select-input"; import type { inferSelectOptionValue, SelectOption } from "./_inputs/widget-select-input"; import type { ReleasesRepository } from "./releases/releases-repository"; @@ -18,6 +19,8 @@ interface TextInput extends CommonInput { validate?: z.ZodType; } +type AnchorNoteInput = CommonInput; + interface MultiSelectInput extends CommonInput< inferSelectOptionValue[] > { @@ -47,6 +50,16 @@ interface SelectInput extends CommonIn searchable?: boolean; } +interface DynamicSelectInput extends CommonInput { + useOptions: ( + query: string, + integrationIds: string[], + ) => { + isPending: boolean; + options: DynamicSelectOption[]; + }; +} + interface NumberInput extends CommonInput { validate: z.ZodNumber; step?: number; @@ -75,6 +88,11 @@ const optionsFactory = { withDescription: input?.withDescription ?? false, validate: input?.validate, }), + anchorNote: (input?: AnchorNoteInput) => ({ + type: "anchorNote" as const, + defaultValue: input?.defaultValue ?? "", + withDescription: input?.withDescription ?? false, + }), multiSelect: (input: MultiSelectInput) => ({ type: "multiSelect" as const, defaultValue: input.defaultValue ?? [], @@ -82,6 +100,12 @@ const optionsFactory = { searchable: input.searchable ?? false, withDescription: input.withDescription ?? false, }), + dynamicSelect: (input: DynamicSelectInput) => ({ + type: "dynamicSelect" as const, + defaultValue: input.defaultValue ?? null, + useOptions: input.useOptions, + withDescription: input.withDescription ?? false, + }), select: (input: SelectInput) => ({ type: "select" as const, defaultValue: (input.defaultValue ?? input.options[0]) as inferSelectOptionValue, @@ -136,6 +160,21 @@ const optionsFactory = { defaultValue: "", withDescription: false, }), + umamiEventName: () => ({ + type: "umamiEventName" as const, + defaultValue: "", + withDescription: true, + }), + umamiEventNames: () => ({ + type: "umamiEventNames" as const, + defaultValue: [] as string[], + withDescription: true, + }), + umamiWebsite: () => ({ + type: "umamiWebsite" as const, + defaultValue: "", + withDescription: true, + }), sortableItemList: ( input: SortableItemListInput, ) => ({ diff --git a/packages/widgets/src/releases/index.ts b/packages/widgets/src/releases/index.ts index 84c4f9998..8de5227ad 100644 --- a/packages/widgets/src/releases/index.ts +++ b/packages/widgets/src/releases/index.ts @@ -52,7 +52,7 @@ export const { definition, componentLoader } = createWidgetDefinition("releases" suffix: z.string().optional(), }) .optional(), - iconUrl: z.string().url().optional(), + iconUrl: z.string().optional(), }), ), }), diff --git a/packages/widgets/src/rssFeed/component.tsx b/packages/widgets/src/rssFeed/component.tsx index ee781fb34..f219cd2e4 100644 --- a/packages/widgets/src/rssFeed/component.tsx +++ b/packages/widgets/src/rssFeed/component.tsx @@ -4,29 +4,53 @@ import { Card, Flex, Group, Image, ScrollArea, Stack, Text } from "@mantine/core import { IconClock } from "@tabler/icons-react"; import dayjs from "dayjs"; +import type { RouterInputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { useRequiredBoard } from "@homarr/boards/context"; import type { WidgetComponentProps } from "../definition"; import classes from "./component.module.scss"; -export default function RssFeed({ options }: WidgetComponentProps<"rssFeed">) { - const [feedEntries] = clientApi.widget.rssFeed.getFeeds.useSuspenseQuery( - { - urls: options.feedUrls, - maximumAmountPosts: typeof options.maximumAmountPosts === "number" ? options.maximumAmountPosts : 100, +const useLiveFeedEntries = (input: RouterInputs["widget"]["rssFeed"]["getFeeds"]) => { + const [feedEntries] = clientApi.widget.rssFeed.getFeeds.useSuspenseQuery(input, { + refetchOnMount: false, + refetchOnWindowFocus: false, + refetchOnReconnect: false, + retry: false, + }); + const utils = clientApi.useUtils(); + + clientApi.widget.rssFeed.subscribeFeeds.useSubscription(input, { + onData(updatedData) { + utils.widget.rssFeed.getFeeds.setData(input, (oldData) => { + return oldData + ?.filter((entry) => entry.feedUrl !== updatedData.url) + .concat(updatedData.entries) + .sort((entryA, entryB) => { + return entryA.published && entryB.published + ? new Date(entryB.published).getTime() - new Date(entryA.published).getTime() + : 0; + }) + .slice(0, input.maximumAmountPosts); + }); }, - { - refetchOnMount: false, - refetchOnWindowFocus: false, - refetchOnReconnect: false, - retry: false, - }, - ); + }); + + return feedEntries; +}; + +export default function RssFeed({ options, width }: WidgetComponentProps<"rssFeed">) { + const feedEntries = useLiveFeedEntries({ + urls: options.feedUrls, + maximumAmountPosts: typeof options.maximumAmountPosts === "number" ? options.maximumAmountPosts : 100, + }); + const board = useRequiredBoard(); const languageDir = options.enableRtl ? "RTL" : "LTR"; + const isNarrow = width < 128 * 3; + return ( @@ -41,27 +65,33 @@ export default function RssFeed({ options }: WidgetComponentProps<"rssFeed">) { w="100%" p="sm" > - {feedEntry.enclosure && ( + {feedEntry.enclosure !== undefined && ( backdrop )} - - - {feedEntry.title} - - {!options.hideDescription && feedEntry.description && ( - + + {feedEntry.enclosure !== undefined && options.showPosterImage && !isNarrow && ( + {feedEntry.title} )} - {feedEntry.published && } - + + + {feedEntry.title} + + {!options.hideDescription && feedEntry.description && ( + + )} + + {feedEntry.published && } + + ))} diff --git a/packages/widgets/src/rssFeed/index.ts b/packages/widgets/src/rssFeed/index.ts index 4f754d602..079c761a9 100644 --- a/packages/widgets/src/rssFeed/index.ts +++ b/packages/widgets/src/rssFeed/index.ts @@ -32,6 +32,9 @@ export const { definition, componentLoader } = createWidgetDefinition("rssFeed", hideDescription: factory.switch({ defaultValue: false, }), + showPosterImage: factory.switch({ + defaultValue: false, + }), })); }, }).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/smart-home/entity-state/component.tsx b/packages/widgets/src/smart-home/entity-state/component.tsx index 587978a42..f11cfa844 100644 --- a/packages/widgets/src/smart-home/entity-state/component.tsx +++ b/packages/widgets/src/smart-home/entity-state/component.tsx @@ -76,6 +76,7 @@ export default function SmartHomeEntityStateWidget({ return ( + + {t("averages")} · {t("tests", { count: stats.total_results.toString() })} + + + + + + + + ); +} diff --git a/packages/widgets/src/speedtest-tracker/component.tsx b/packages/widgets/src/speedtest-tracker/component.tsx new file mode 100644 index 000000000..699b354a9 --- /dev/null +++ b/packages/widgets/src/speedtest-tracker/component.tsx @@ -0,0 +1,91 @@ +"use client"; + +import { useMemo } from "react"; +import { Stack, Text } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import type { SpeedtestTrackerDashboardData } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +import type { WidgetComponentProps } from "../definition"; +import { AveragesSection } from "./averages"; +import { mergeStats } from "./helpers"; +import { LatestResultSection } from "./latest-result"; +import { RecentResultsSection } from "./recent-results"; + +export default function SpeedtestTrackerWidget({ + options, + integrationIds, + isEditMode, +}: WidgetComponentProps<"speedtestTracker">) { + const t = useScopedI18n("widget.speedtestTracker"); + const [dashboardData] = clientApi.widget.speedtestTracker.getDashboard.useSuspenseQuery({ integrationIds }); + + const utils = clientApi.useUtils(); + clientApi.widget.speedtestTracker.subscribeToDashboard.useSubscription( + { integrationIds }, + { + enabled: !isEditMode, + onData(newData) { + utils.widget.speedtestTracker.getDashboard.setData({ integrationIds }, (prevData) => { + if (!prevData) return prevData; + return prevData.map((instance) => + instance.integrationId === newData.integrationId + ? { ...instance, dashboard: newData.dashboard, updatedAt: newData.timestamp } + : instance, + ); + }); + }, + }, + ); + + const combined = useMemo( + () => + dashboardData.reduce( + (acc, item) => ({ + latestResult: item.dashboard.latestResult ?? acc.latestResult, + stats: mergeStats(acc.stats, item.dashboard.stats), + recentResults: [...acc.recentResults, ...item.dashboard.recentResults], + }), + { latestResult: null, stats: null, recentResults: [] }, + ), + [dashboardData], + ); + + const twelveHoursAgo = Date.now() - 12 * 60 * 60 * 1000; + const recentFiltered = combined.recentResults.filter((result) => result.created_at.getTime() > twelveHoursAgo); + + const hasStatSection = + (options.showLatestResult && combined.latestResult !== null) || (options.showStats && combined.stats !== null); + const hasChart = options.showRecentResults && recentFiltered.length > 0; + const noSectionsEnabled = !options.showLatestResult && !options.showStats && !options.showRecentResults; + + return ( + + {hasStatSection && ( + + {options.showLatestResult && combined.latestResult && ( +
+ +
+ )} + {options.showStats && combined.stats && ( +
+ +
+ )} +
+ )} + {hasChart && ( +
+ +
+ )} + {noSectionsEnabled && ( + + {t("noSectionsEnabled")} + + )} +
+ ); +} diff --git a/packages/widgets/src/speedtest-tracker/helpers.ts b/packages/widgets/src/speedtest-tracker/helpers.ts new file mode 100644 index 000000000..075fdb90c --- /dev/null +++ b/packages/widgets/src/speedtest-tracker/helpers.ts @@ -0,0 +1,53 @@ +import { formatNumber } from "@homarr/common"; +import type { + SpeedtestTrackerDashboardData, + SpeedtestTrackerResult, + SpeedtestTrackerStats, +} from "@homarr/integrations/types"; + +export const mergeStats = ( + statsA: SpeedtestTrackerDashboardData["stats"], + statsB: SpeedtestTrackerDashboardData["stats"], +): SpeedtestTrackerDashboardData["stats"] => { + if (!statsB) return statsA; + if (!statsA) return statsB; + return { + ping: { + avg: (statsA.ping.avg + statsB.ping.avg) / 2, + min: Math.min(statsA.ping.min, statsB.ping.min), + max: Math.max(statsA.ping.max, statsB.ping.max), + }, + download: { + avg: (statsA.download.avg + statsB.download.avg) / 2, + avg_bits: + statsA.download.avg_bits !== undefined && statsB.download.avg_bits !== undefined + ? (statsA.download.avg_bits + statsB.download.avg_bits) / 2 + : (statsA.download.avg_bits ?? statsB.download.avg_bits), + min: Math.min(statsA.download.min, statsB.download.min), + max: Math.max(statsA.download.max, statsB.download.max), + }, + upload: { + avg: (statsA.upload.avg + statsB.upload.avg) / 2, + avg_bits: + statsA.upload.avg_bits !== undefined && statsB.upload.avg_bits !== undefined + ? (statsA.upload.avg_bits + statsB.upload.avg_bits) / 2 + : (statsA.upload.avg_bits ?? statsB.upload.avg_bits), + min: Math.min(statsA.upload.min, statsB.upload.min), + max: Math.max(statsA.upload.max, statsB.upload.max), + }, + total_results: statsA.total_results + statsB.total_results, + }; +}; + +export const formatBitsPerSec = (bps: number): string => `${formatNumber(bps, 2)}bps`; + +export const formatResultSpeed = (result: SpeedtestTrackerResult, dir: "download" | "upload"): string => { + const bits = dir === "download" ? result.download_bits : result.upload_bits; + if (bits != null) return formatBitsPerSec(bits); + return "—"; +}; + +export const formatStatsSpeed = (band: SpeedtestTrackerStats["download"]): string => { + if (band.avg_bits != null) return formatBitsPerSec(band.avg_bits); + return formatBitsPerSec(band.avg * 8); +}; diff --git a/packages/widgets/src/speedtest-tracker/index.ts b/packages/widgets/src/speedtest-tracker/index.ts new file mode 100644 index 000000000..ea3c0c5d2 --- /dev/null +++ b/packages/widgets/src/speedtest-tracker/index.ts @@ -0,0 +1,38 @@ +import { IconServerOff, IconSpeedboat } from "@tabler/icons-react"; + +import { createWidgetDefinition } from "../definition"; +import { optionsBuilder } from "../options"; + +export const { definition, componentLoader } = createWidgetDefinition("speedtestTracker", { + icon: IconSpeedboat, + createOptions() { + return optionsBuilder.from( + (factory) => ({ + showLatestResult: factory.switch({ + defaultValue: true, + }), + showStats: factory.switch({ + defaultValue: true, + }), + showRecentResults: factory.switch({ + defaultValue: true, + }), + showPingGraph: factory.switch({ + defaultValue: true, + }), + }), + { + showPingGraph: { + shouldHide: (options) => !options.showRecentResults, + }, + }, + ); + }, + supportedIntegrations: ["speedtestTracker"], + errors: { + INTERNAL_SERVER_ERROR: { + icon: IconServerOff, + message: (t) => t("widget.speedtestTracker.error.internalServerError"), + }, + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/speedtest-tracker/latest-result.tsx b/packages/widgets/src/speedtest-tracker/latest-result.tsx new file mode 100644 index 000000000..fcc6136cf --- /dev/null +++ b/packages/widgets/src/speedtest-tracker/latest-result.tsx @@ -0,0 +1,62 @@ +"use client"; + +import { Group, SimpleGrid, Stack, Text } from "@mantine/core"; +import { IconArrowDown, IconArrowUp, IconCircleCheck, IconCircleX, IconWaveSine } from "@tabler/icons-react"; + +import type { SpeedtestTrackerResult } from "@homarr/integrations/types"; +import { useCurrentLocale, useScopedI18n } from "@homarr/translation/client"; + +import { formatResultSpeed } from "./helpers"; +import { SectionLabel } from "./section-label"; +import { SpeedStatCard } from "./speed-stat-card"; + +export function LatestResultSection({ result }: { result: SpeedtestTrackerResult }) { + const t = useScopedI18n("widget.speedtestTracker"); + const locale = useCurrentLocale(); + const timestamp = Intl.DateTimeFormat(locale, { + month: "short", + day: "numeric", + hour: "2-digit", + minute: "2-digit", + }).format(result.created_at); + const cols = result.healthy !== null ? 4 : 3; + + return ( + + + {t("latestResult")} + + {timestamp} + + + + + + + {result.healthy !== null && ( + + )} + + + ); +} diff --git a/packages/widgets/src/speedtest-tracker/recent-results.tsx b/packages/widgets/src/speedtest-tracker/recent-results.tsx new file mode 100644 index 000000000..5d2328563 --- /dev/null +++ b/packages/widgets/src/speedtest-tracker/recent-results.tsx @@ -0,0 +1,364 @@ +"use client"; + +import { useMemo } from "react"; +import { AreaChart, ChartTooltip } from "@mantine/charts"; +import { Stack, useMantineTheme } from "@mantine/core"; +import { useElementSize } from "@mantine/hooks"; +import { ReferenceLine, XAxis } from "recharts"; + +import { useRequiredBoard } from "@homarr/boards/context"; +import type { SpeedtestTrackerResult } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +import { SectionLabel } from "./section-label"; + +interface XAxisTicks { + midnightTs: number | null; + xTicks: number[]; + topDateTicks: number[]; +} + +function buildXAxisTicks(data: { ts: number }[]): XAxisTicks { + if (data.length === 0) return { midnightTs: null, xTicks: [], topDateTicks: [] }; + + const first = data[0]?.ts ?? 0; + const last = data.at(-1)?.ts ?? 0; + + const twoHourMs = 2 * 60 * 60 * 1000; + const startTick = Math.ceil(first / twoHourMs) * twoHourMs; + const tickSet = new Set(); + for (let t = startTick; t <= last; t += twoHourMs) tickSet.add(t); + + const midnightDate = new Date(first); + midnightDate.setHours(24, 0, 0, 0); + const mTs = midnightDate.getTime(); + const foundMidnight = mTs > first && mTs < last ? mTs : null; + if (foundMidnight) tickSet.add(foundMidnight); + + const topTicks: number[] = [first]; + if (foundMidnight) topTicks.push(foundMidnight); + + return { + midnightTs: foundMidnight, + xTicks: Array.from(tickSet).sort((tsA, tsB) => tsA - tsB), + topDateTicks: topTicks, + }; +} + +function makeXTickRenderer(midnightTs: number | null) { + return ({ x, y, payload }: { x: number | string; y: number | string; payload: { value: number } }) => { + const date = new Date(payload.value); + const timeStr = date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }); + const isMidnight = midnightTs !== null && payload.value === midnightTs; + const dateStr = isMidnight ? date.toLocaleDateString([], { month: "short", day: "numeric" }) : null; + + return ( + + + {timeStr} + + {dateStr && ( + + {dateStr} + + )} + + ); + }; +} + +function renderTopDateTick(props: { + x: number | string; + y: number | string; + payload: { value: number }; + index: number; +}) { + const { x, y, payload, index } = props; + const date = new Date(payload.value); + const dateStr = date.toLocaleDateString([], { weekday: "short", month: "short", day: "numeric" }); + const anchor = index === 0 ? "start" : "middle"; + return ( + + + {dateStr} + + + ); +} + +function buildYAxisConfig(maxVal: number, stepOptions: { threshold: number; step: number }[]) { + const step = (stepOptions.find((opt) => maxVal <= opt.threshold) ?? stepOptions.at(-1))?.step ?? 1; + const roundedMax = Math.ceil(maxVal / step) * step || step; + const ticks: number[] = []; + for (let val = 0; val <= roundedMax; val += step) ticks.push(val); + return { ticks, domain: [0, roundedMax] as [number, number] }; +} + +function formatTooltipDate(label: number | string | undefined): string { + const timestamp = typeof label === "number" ? label : Number(label); + if (Number.isNaN(timestamp)) return ""; + return new Date(timestamp).toLocaleString([], { + month: "short", + day: "numeric", + hour: "2-digit", + minute: "2-digit", + }); +} + +export function RecentResultsSection({ + results, + showPingGraph, +}: { + results: SpeedtestTrackerResult[]; + showPingGraph: boolean; +}) { + const t = useScopedI18n("widget.speedtestTracker"); + + return ( + + {t("recentResults")} +
+ + {showPingGraph && } +
+
+ ); +} + +function SpeedSubChart({ results, showLabel }: { results: SpeedtestTrackerResult[]; showLabel: boolean }) { + const t = useScopedI18n("widget.speedtestTracker"); + const { ref, height } = useElementSize(); + + return ( +
+ {showLabel && {t("recentResultsSpeed")}} +
+ {height > 0 && } +
+
+ ); +} + +function PingSubChart({ results }: { results: SpeedtestTrackerResult[] }) { + const t = useScopedI18n("widget.speedtestTracker"); + const { ref, height } = useElementSize(); + + return ( +
+ {t("recentResultsPing")} +
+ {height > 0 && } +
+
+ ); +} + +function SpeedHistoryChart({ results, height }: { results: SpeedtestTrackerResult[]; height: number }) { + const board = useRequiredBoard(); + const theme = useMantineTheme(); + const t = useScopedI18n("widget.speedtestTracker"); + + const data = useMemo( + () => + [...results] + .sort((resultA, resultB) => resultA.created_at.getTime() - resultB.created_at.getTime()) + .filter((result) => (result.download_bits ?? 0) > 0) + .map((result) => ({ + ts: result.created_at.getTime(), + Download: parseFloat(((result.download_bits ?? 0) / 1_000_000).toFixed(2)), + Upload: + result.upload_bits != null && result.upload_bits > 0 + ? parseFloat((result.upload_bits / 1_000_000).toFixed(2)) + : 0, + })), + [results], + ); + + const yConfig = useMemo( + () => + buildYAxisConfig(Math.max(...data.map((item) => Math.max(item.Download, item.Upload)), 0), [ + { threshold: 400, step: 100 }, + { threshold: Infinity, step: 200 }, + ]), + [data], + ); + + const { midnightTs, xTicks, topDateTicks } = useMemo(() => buildXAxisTicks(data), [data]); + const renderXTick = useMemo(() => makeXTickRenderer(midnightTs), [midnightTs]); + + if (data.length === 0) return null; + + return ( + `${val} Mbps`} + xAxisProps={{ + type: "number", + domain: ["dataMin", "dataMax"], + ticks: xTicks, + tick: renderXTick, + interval: 0, + height: midnightTs !== null ? 38 : 28, + }} + yAxisProps={{ + ticks: yConfig.ticks, + domain: yConfig.domain, + tickFormatter: (val: number) => `${val}`, + width: 50, + tick: { fontSize: 10 }, + }} + tooltipProps={{ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + content: (props: any) => { + const { label, payload, active } = props as { + label?: number | string; + payload?: Record[]; + active?: boolean; + }; + if (!active || !payload?.length) return null; + return ( + `${val} Mbps`} + /> + ); + }, + }} + > + + {xTicks.map((tickTs) => ( + + ))} + + ); +} + +function PingHistoryChart({ results, height }: { results: SpeedtestTrackerResult[]; height: number }) { + const board = useRequiredBoard(); + const theme = useMantineTheme(); + const t = useScopedI18n("widget.speedtestTracker"); + + const data = useMemo( + () => + [...results] + .sort((resultA, resultB) => resultA.created_at.getTime() - resultB.created_at.getTime()) + .map((result) => + result.ping === null + ? null + : { + ts: result.created_at.getTime(), + Ping: result.ping, + }, + ) + .filter((result) => result !== null), + [results], + ); + + const yConfig = useMemo( + () => + buildYAxisConfig(Math.max(...data.map((item) => item.Ping), 0), [ + { threshold: 10, step: 2 }, + { threshold: 50, step: 10 }, + { threshold: 200, step: 50 }, + { threshold: Infinity, step: 100 }, + ]), + [data], + ); + + const { midnightTs, xTicks } = useMemo(() => buildXAxisTicks(data), [data]); + const renderXTick = useMemo(() => makeXTickRenderer(midnightTs), [midnightTs]); + + if (data.length === 0) return null; + + return ( + `${val} ms`} + xAxisProps={{ + type: "number", + domain: ["dataMin", "dataMax"], + ticks: xTicks, + tick: renderXTick, + interval: 0, + height: midnightTs !== null ? 38 : 28, + }} + yAxisProps={{ + ticks: yConfig.ticks, + domain: yConfig.domain, + tickFormatter: (val: number) => `${val}`, + width: 50, + tick: { fontSize: 10 }, + }} + tooltipProps={{ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + content: (props: any) => { + const { label, payload, active } = props as { + label?: number | string; + payload?: Record[]; + active?: boolean; + }; + if (!active || !payload?.length) return null; + return ( + `${val} ms`} + /> + ); + }, + }} + > + {xTicks.map((tickTs) => ( + + ))} + + ); +} diff --git a/packages/widgets/src/speedtest-tracker/section-label.tsx b/packages/widgets/src/speedtest-tracker/section-label.tsx new file mode 100644 index 000000000..255e05113 --- /dev/null +++ b/packages/widgets/src/speedtest-tracker/section-label.tsx @@ -0,0 +1,10 @@ +import type { ReactNode } from "react"; +import { Text } from "@mantine/core"; + +export function SectionLabel({ children }: { children: ReactNode }) { + return ( + + {children} + + ); +} diff --git a/packages/widgets/src/speedtest-tracker/speed-stat-card.tsx b/packages/widgets/src/speedtest-tracker/speed-stat-card.tsx new file mode 100644 index 000000000..0817d07f4 --- /dev/null +++ b/packages/widgets/src/speedtest-tracker/speed-stat-card.tsx @@ -0,0 +1,54 @@ +"use client"; + +import { Card, Flex, Text } from "@mantine/core"; +import { useElementSize } from "@mantine/hooks"; + +import { useRequiredBoard } from "@homarr/boards/context"; +import type { TablerIcon } from "@homarr/ui"; + +export interface SpeedStatCardProps { + icon: TablerIcon; + color: string; + value: string; + label: string; + compact?: boolean; +} + +export function SpeedStatCard({ icon: Icon, color, value, label, compact = false }: SpeedStatCardProps) { + const { ref, height, width } = useElementSize(); + const board = useRequiredBoard(); + const isWide = width > height + 20; + const hideLabel = height > 0 && height <= 38; + + return ( + + + + + + {value} + + {!hideLabel && ( + + {label} + + )} + + + + ); +} diff --git a/packages/widgets/src/stocks/component.tsx b/packages/widgets/src/stocks/component.tsx index 8cfc58b07..e9d7b98ad 100644 --- a/packages/widgets/src/stocks/component.tsx +++ b/packages/widgets/src/stocks/component.tsx @@ -33,6 +33,7 @@ export default function StockPriceWidget({ options, width, height }: WidgetCompo const stockValuesMin = Math.min(...data.priceHistory); const stockGraphValues = data.priceHistory.map((value) => value - stockValuesMin + 50); + const trendColor = stockValuesChange > 0 ? "green.7" : stockValuesChange < 0 ? "red.7" : "gray.6"; return ( @@ -43,7 +44,7 @@ export default function StockPriceWidget({ options, width, height }: WidgetCompo h={height > 280 ? "75%" : "50%"} data={stockGraphValues} curveType="linear" - trendColors={{ positive: "green.7", negative: "red.7", neutral: "gray.6" }} + color={trendColor} fillOpacity={0.6} strokeWidth={2.5} /> diff --git a/packages/widgets/src/system-disks/component.tsx b/packages/widgets/src/system-disks/component.tsx new file mode 100644 index 000000000..ba2d49c25 --- /dev/null +++ b/packages/widgets/src/system-disks/component.tsx @@ -0,0 +1,106 @@ +"use client"; + +import { Box, Card, Group, Stack, useMantineColorScheme } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import { useRequiredBoard } from "@homarr/boards/context"; +import { humanFileSize } from "@homarr/common"; +import { useI18n } from "@homarr/translation/client"; + +import type { WidgetComponentProps } from "../definition"; +import { NoIntegrationDataError } from "../errors/no-data-integration"; + +type DisplayMode = WidgetComponentProps<"systemDisks">["options"]["displayMode"]; + +const getDisplayText = (item: { used: string; available: string; percentage: number }, displayMode: DisplayMode) => { + switch (displayMode) { + case "percentage": + return `${Math.round(item.percentage)}%`; + case "absolute": { + const availableInBytes = Number(item.available); + const availableText = Number.isFinite(availableInBytes) + ? humanFileSize(Math.round(availableInBytes)) + : item.available; + return `${item.used} / ${availableText}`; + } + case "free": + return `${Math.round(100 - item.percentage)}% free`; + default: + return `${Math.round(item.percentage)}%`; + } +}; + +export default function SystemResources({ integrationIds, options }: WidgetComponentProps<"systemDisks">) { + const queryInput = { integrationIds }; + const [data] = clientApi.widget.healthMonitoring.getSystemHealthStatus.useSuspenseQuery(queryInput); + const utils = clientApi.useUtils(); + + const board = useRequiredBoard(); + const scheme = useMantineColorScheme(); + const t = useI18n(); + + const lastItem = data.at(-1); + + if (!lastItem) return null; + const { fileSystem, smart } = lastItem.healthInfo; + + clientApi.widget.healthMonitoring.subscribeSystemHealthStatus.useSubscription(queryInput, { + onData(data) { + utils.widget.healthMonitoring.getSystemHealthStatus.setData(queryInput, (oldData) => + oldData?.map((item) => (item.integrationId === data.integrationId ? { ...item, ...data } : item)), + ); + }, + }); + + if (fileSystem.length === 0) { + throw new NoIntegrationDataError(); + } + + return ( + + {fileSystem.map((item) => { + const smartItem = smart.find((smart) => smart.deviceName === item.deviceName); + const healthy = smartItem?.healthy ?? true; // fall back to healthy if no information is available + + return ( + + +
+

+ {item.deviceName} +

+

+ {getDisplayText(item, options.displayMode)} + {!healthy && {t("widget.systemDisks.status.unhealthy")}} +

+
+
+ {smartItem?.temperature && options.showTemperatureIfAvailable ? ( +

{smartItem.temperature}°C

+ ) : null} +
+
+ +
+ ); + })} +
+ ); +} diff --git a/packages/widgets/src/system-disks/index.ts b/packages/widgets/src/system-disks/index.ts new file mode 100644 index 000000000..99ea9a70a --- /dev/null +++ b/packages/widgets/src/system-disks/index.ts @@ -0,0 +1,22 @@ +import { IconServer2 } from "@tabler/icons-react"; + +import { createWidgetDefinition } from "../definition"; +import { optionsBuilder } from "../options"; + +export const { definition, componentLoader } = createWidgetDefinition("systemDisks", { + icon: IconServer2, + supportedIntegrations: ["dashDot", "openmediavault", "truenas", "unraid"], + createOptions() { + return optionsBuilder.from((factory) => ({ + showTemperatureIfAvailable: factory.switch({ defaultValue: true }), + displayMode: factory.select({ + options: (["percentage", "absolute", "free"] as const).map((value) => ({ + value, + label: (t) => t(`widget.systemDisks.option.displayMode.option.${value}.label`), + })), + defaultValue: "percentage", + }), + showBackgroundBar: factory.switch({ defaultValue: true }), + })); + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/system-resources/chart/combined-network-traffic.tsx b/packages/widgets/src/system-resources/chart/combined-network-traffic.tsx index 38c72c72c..6cfee0eaa 100644 --- a/packages/widgets/src/system-resources/chart/combined-network-traffic.tsx +++ b/packages/widgets/src/system-resources/chart/combined-network-traffic.tsx @@ -37,9 +37,6 @@ export const CombinedNetworkTrafficChart = ({ labelDisplayMode={labelDisplayMode} tooltipProps={{ content: ({ payload }) => { - if (!payload) { - return null; - } return ( @@ -50,7 +47,7 @@ export const CombinedNetworkTrafficChart = ({ {payloadData.value === undefined ? ( <>N/A ) : ( - <>{humanFileSize(Math.round(payloadData.value))}/s + <>{humanFileSize(Math.round(Number(payloadData.value)))}/s )}
diff --git a/packages/widgets/src/system-resources/chart/common-chart.tsx b/packages/widgets/src/system-resources/chart/common-chart.tsx index f7cc57c27..2c25c8218 100644 --- a/packages/widgets/src/system-resources/chart/common-chart.tsx +++ b/packages/widgets/src/system-resources/chart/common-chart.tsx @@ -2,7 +2,7 @@ import type { ReactNode } from "react"; import type { AreaChartSeries } from "@mantine/charts"; import { AreaChart, LineChart } from "@mantine/charts"; -import { Card, Center, Group, Loader, Stack, Text, useMantineColorScheme, useMantineTheme } from "@mantine/core"; +import { Card, Center, Group, Loader, Stack, Text, useComputedColorScheme, useMantineTheme } from "@mantine/core"; import { useElementSize, useHover, useMergedRef } from "@mantine/hooks"; import type { TooltipProps, YAxisProps } from "recharts"; @@ -36,14 +36,13 @@ export const CommonChart = ({ }) => { const { ref: elementSizeRef, height } = useElementSize(); const theme = useMantineTheme(); - const scheme = useMantineColorScheme(); + const colorScheme = useComputedColorScheme("light"); const board = useRequiredBoard(); const { hovered, ref: hoverRef } = useHover(); const ref = useMergedRef(elementSizeRef, hoverRef); const opacity = board.opacity / 100; - const backgroundColor = - scheme.colorScheme === "dark" ? `rgba(57, 57, 57, ${opacity})` : `rgba(246, 247, 248, ${opacity})`; + const backgroundColor = colorScheme === "dark" ? `rgba(57, 57, 57, ${opacity})` : `rgba(246, 247, 248, ${opacity})`; const ChartComponent = chartType === "line" ? LineChart : AreaChart; const showIcon = labelDisplayMode === "icon" || labelDisplayMode === "textWithIcon"; diff --git a/packages/widgets/src/system-resources/chart/cpu-chart.tsx b/packages/widgets/src/system-resources/chart/cpu-chart.tsx index ceb6ba547..7006728d5 100644 --- a/packages/widgets/src/system-resources/chart/cpu-chart.tsx +++ b/packages/widgets/src/system-resources/chart/cpu-chart.tsx @@ -34,9 +34,6 @@ export const SystemResourceCPUChart = ({ labelDisplayMode={labelDisplayMode} tooltipProps={{ content: ({ payload }) => { - if (!payload) { - return null; - } const value = payload[0] ? Number(payload[0].value) : 0; return ( diff --git a/packages/widgets/src/system-resources/chart/gpu-chart.tsx b/packages/widgets/src/system-resources/chart/gpu-chart.tsx new file mode 100644 index 000000000..bf2d34b40 --- /dev/null +++ b/packages/widgets/src/system-resources/chart/gpu-chart.tsx @@ -0,0 +1,49 @@ +import { Paper, Text } from "@mantine/core"; +import { IconDeviceDesktop } from "@tabler/icons-react"; + +import { useScopedI18n } from "@homarr/translation/client"; + +import type { LabelDisplayModeOption } from ".."; +import { CommonChart } from "./common-chart"; + +export const SystemResourceGPUChart = ({ + gpuUsageOverTime, + hasShadow, + labelDisplayMode, +}: { + gpuUsageOverTime: number[]; + hasShadow: boolean; + labelDisplayMode: LabelDisplayModeOption; +}) => { + const chartData = gpuUsageOverTime.map((usage, index) => ({ index, usage })); + const t = useScopedI18n("widget.systemResources.card"); + + return ( + 0 ? `${Math.round(gpuUsageOverTime[gpuUsageOverTime.length - 1]!)}%` : undefined + } + chartType={hasShadow ? "area" : "line"} + yAxisProps={{ domain: [0, 100] }} + labelDisplayMode={labelDisplayMode} + tooltipProps={{ + content: ({ payload }) => { + const value = payload[0] ? Number(payload[0].value) : 0; + return ( + + + {value.toFixed(0)}% + + + ); + }, + }} + /> + ); +}; diff --git a/packages/widgets/src/system-resources/chart/memory-chart.tsx b/packages/widgets/src/system-resources/chart/memory-chart.tsx index ac265db8a..54c2e347c 100644 --- a/packages/widgets/src/system-resources/chart/memory-chart.tsx +++ b/packages/widgets/src/system-resources/chart/memory-chart.tsx @@ -40,9 +40,6 @@ export const SystemResourceMemoryChart = ({ chartType={hasShadow ? "area" : "line"} tooltipProps={{ content: ({ payload }) => { - if (!payload) { - return null; - } const value = payload[0] ? Number(payload[0].value) : 0; return ( diff --git a/packages/widgets/src/system-resources/chart/network-traffic.tsx b/packages/widgets/src/system-resources/chart/network-traffic.tsx index 5edbabd61..02747b86d 100644 --- a/packages/widgets/src/system-resources/chart/network-traffic.tsx +++ b/packages/widgets/src/system-resources/chart/network-traffic.tsx @@ -37,9 +37,6 @@ export const NetworkTrafficChart = ({ labelDisplayMode={labelDisplayMode} tooltipProps={{ content: ({ payload }) => { - if (!payload) { - return null; - } const value = payload[0] ? Number(payload[0].value) : 0; return ( diff --git a/packages/widgets/src/system-resources/component.tsx b/packages/widgets/src/system-resources/component.tsx index 46237a27c..d1d54ff85 100644 --- a/packages/widgets/src/system-resources/component.tsx +++ b/packages/widgets/src/system-resources/component.tsx @@ -9,6 +9,7 @@ import { clientApi } from "@homarr/api/client"; import type { WidgetComponentProps } from "../definition"; import { CombinedNetworkTrafficChart } from "./chart/combined-network-traffic"; import { SystemResourceCPUChart } from "./chart/cpu-chart"; +import { SystemResourceGPUChart } from "./chart/gpu-chart"; import { SystemResourceMemoryChart } from "./chart/memory-chart"; import { NetworkTrafficChart } from "./chart/network-traffic"; @@ -23,10 +24,16 @@ export default function SystemResources({ integrationIds, options }: WidgetCompo const memoryCapacityInBytes = (data[0]?.healthInfo.memAvailableInBytes ?? 0) + (data[0]?.healthInfo.memUsedInBytes ?? 0); - const [items, setItems] = useState<{ cpu: number; memory: number; network: { up: number; down: number } | null }[]>( + const [items, setItems] = useState< + { cpu: number; memory: number; gpu: number; network: { up: number; down: number } | null }[] + >( data.map((item) => ({ cpu: item.healthInfo.cpuUtilization, memory: item.healthInfo.memUsedInBytes, + gpu: + item.healthInfo.gpu.length > 0 + ? item.healthInfo.gpu.reduce((acc, g) => acc + g.processorUtilization, 0) / item.healthInfo.gpu.length + : 0, network: item.healthInfo.network, })), ); @@ -41,6 +48,10 @@ export default function SystemResources({ integrationIds, options }: WidgetCompo const next = { cpu: data.healthInfo.cpuUtilization, memory: data.healthInfo.memUsedInBytes, + gpu: + data.healthInfo.gpu.length > 0 + ? data.healthInfo.gpu.reduce((acc, g) => acc + g.processorUtilization, 0) / data.healthInfo.gpu.length + : 0, network: data.healthInfo.network, }; @@ -75,6 +86,15 @@ export default function SystemResources({ integrationIds, options }: WidgetCompo /> )} + {options.visibleCharts.includes("gpu") && ( + + item.gpu)} + hasShadow={options.hasShadow} + labelDisplayMode={options.labelDisplayMode} + /> + + )} {showNetwork && (width > 256 ? ( diff --git a/packages/widgets/src/system-resources/index.ts b/packages/widgets/src/system-resources/index.ts index d89d6952f..68fffd4ed 100644 --- a/packages/widgets/src/system-resources/index.ts +++ b/packages/widgets/src/system-resources/index.ts @@ -14,12 +14,12 @@ const labelDisplayModeOptions = { export const { definition, componentLoader } = createWidgetDefinition("systemResources", { icon: IconGraphFilled, - supportedIntegrations: ["dashDot", "openmediavault", "truenas", "unraid"], + supportedIntegrations: ["dashDot", "openmediavault", "truenas", "unraid", "glances"], createOptions() { return optionsBuilder.from((factory) => ({ hasShadow: factory.switch({ defaultValue: true }), visibleCharts: factory.multiSelect({ - options: (["cpu", "memory", "network"] as const).map((key) => ({ + options: (["cpu", "memory", "gpu", "network"] as const).map((key) => ({ value: key, label: (t) => t(`widget.systemResources.option.visibleCharts.option.${key}`), })), diff --git a/packages/widgets/src/timetable/component.tsx b/packages/widgets/src/timetable/component.tsx new file mode 100644 index 000000000..ceaf9e41d --- /dev/null +++ b/packages/widgets/src/timetable/component.tsx @@ -0,0 +1,75 @@ +import { Badge, Center, Group, Stack, Text } from "@mantine/core"; +import dayjs from "dayjs"; + +import { clientApi } from "@homarr/api/client"; +import { useScopedI18n } from "@homarr/translation/client"; + +import type { DynamicSelectOption } from "../_inputs/widget-dynamic-select-input"; +import type { WidgetComponentProps } from "../definition"; + +export default function TimetableWidget({ options, integrationIds }: WidgetComponentProps<"timetable">) { + // It will always have at least one integration as otherwise the NoIntegrationSelectedError would be thrown in item-content.tsx + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const integrationId = integrationIds[0]!; + const t = useScopedI18n("widget.timetable"); + + if (!options.station) { + return
{t("noStation")}
; + } + + return ; +} + +interface TimetableWidgetInnerProps { + station: DynamicSelectOption; + integrationId: string; +} + +const TimetableWidgetInner = ({ station, integrationId }: TimetableWidgetInnerProps) => { + const [timetable] = clientApi.widget.timetable.getTimetable.useSuspenseQuery({ + integrationId, + stationId: station.value, + limit: 10, + }); + const t = useScopedI18n("widget.timetable"); + + return ( + + {t("title", { station: station.label })} + {timetable.entries.map((entry) => ( + + + {entry.line && ( + + {entry.line.name} + + )} + + {dayjs(entry.timestamp).format("HH:mm")}{" "} + {entry.delay >= 1 && ( + + +{entry.delay}' + + )} + + + {entry.location} + + + {entry.platform && ( + + {entry.platform.name} + + )} + + ))} + + ); +}; diff --git a/packages/widgets/src/timetable/index.ts b/packages/widgets/src/timetable/index.ts new file mode 100644 index 000000000..f303b8c62 --- /dev/null +++ b/packages/widgets/src/timetable/index.ts @@ -0,0 +1,37 @@ +import { IconBusStop } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; + +import { createWidgetDefinition } from "../definition"; +import { optionsBuilder } from "../options"; + +export const { componentLoader, definition } = createWidgetDefinition("timetable", { + icon: IconBusStop, + supportedIntegrations: ["searchCh"], + createOptions() { + return optionsBuilder.from((factory) => ({ + station: factory.dynamicSelect({ + useOptions(query, integrationIds) { + const { data: stations, isPending } = clientApi.widget.timetable.searchStations.useQuery( + { + integrationId: integrationIds[0] ?? "", + query, + }, + { + enabled: integrationIds.length > 0, + }, + ); + + return { + isPending, + options: + stations?.map((station) => ({ + label: station.name, + value: station.id, + })) ?? [], + }; + }, + }), + })); + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/tracearr/component.tsx b/packages/widgets/src/tracearr/component.tsx new file mode 100644 index 000000000..1b26b6c67 --- /dev/null +++ b/packages/widgets/src/tracearr/component.tsx @@ -0,0 +1,131 @@ +"use client"; + +import { ScrollArea, Stack, Text } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import type { TracearrDashboardData } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +import type { WidgetComponentProps } from "../definition"; +import { NoIntegrationDataError } from "../errors/no-data-integration"; +import { RecentActivityList } from "./recent-activity-section"; +import { StatsBar } from "./stats-section"; +import { StreamsList } from "./streams-section"; +import { ViolationsList } from "./violations-section"; + +export default function TracearrWidget({ + options, + integrationIds, + width, + isEditMode, +}: WidgetComponentProps<"tracearr">) { + if (integrationIds.length === 0) { + throw new NoIntegrationDataError(); + } + + return ; +} + +interface TracearrContentProps { + integrationIds: string[]; + options: WidgetComponentProps<"tracearr">["options"]; + width: number; + isEditMode: boolean; +} + +function TracearrContent({ integrationIds, options, width, isEditMode }: TracearrContentProps) { + const t = useScopedI18n("widget.tracearr"); + const [dashboardData] = clientApi.widget.tracearr.getDashboard.useSuspenseQuery({ integrationIds }); + + const utils = clientApi.useUtils(); + clientApi.widget.tracearr.subscribeToDashboard.useSubscription( + { integrationIds }, + { + enabled: !isEditMode, + onData(newData) { + utils.widget.tracearr.getDashboard.setData({ integrationIds }, (prevData) => { + if (!prevData) return prevData; + return prevData.map((instance) => + instance.integrationId === newData.integrationId + ? { ...instance, dashboard: newData.dashboard, updatedAt: newData.timestamp } + : instance, + ); + }); + }, + }, + ); + + // Merge data from all integrations + const combined = dashboardData.reduce( + (acc, item) => { + const { stats, streams, violations, recentActivity } = item.dashboard; + const vData = violations ?? { data: [], meta: { total: 0, page: 1, pageSize: 5 } }; + const aData = recentActivity ?? { data: [], meta: { total: 0, page: 1, pageSize: 5 } }; + + return { + stats: { + activeStreams: acc.stats.activeStreams + stats.activeStreams, + totalUsers: acc.stats.totalUsers + stats.totalUsers, + totalSessions: acc.stats.totalSessions + stats.totalSessions, + recentViolations: acc.stats.recentViolations + stats.recentViolations, + timestamp: stats.timestamp, + }, + streams: { + data: [...acc.streams.data, ...streams.data], + summary: { + total: acc.streams.summary.total + streams.summary.total, + transcodes: acc.streams.summary.transcodes + streams.summary.transcodes, + directStreams: acc.streams.summary.directStreams + streams.summary.directStreams, + directPlays: acc.streams.summary.directPlays + streams.summary.directPlays, + totalBitrate: streams.summary.totalBitrate, + byServer: [...acc.streams.summary.byServer, ...streams.summary.byServer], + }, + }, + violations: { + data: [...(acc.violations?.data ?? []), ...vData.data], + meta: { + total: (acc.violations?.meta.total ?? 0) + vData.meta.total, + page: 1, + pageSize: 5, + }, + }, + recentActivity: { + data: [...(acc.recentActivity?.data ?? []), ...aData.data], + meta: { + total: (acc.recentActivity?.meta.total ?? 0) + aData.meta.total, + page: 1, + pageSize: 5, + }, + }, + }; + }, + { + stats: { activeStreams: 0, totalUsers: 0, totalSessions: 0, recentViolations: 0, timestamp: "" }, + streams: { + data: [], + summary: { total: 0, transcodes: 0, directStreams: 0, directPlays: 0, totalBitrate: "0", byServer: [] }, + }, + violations: null, + recentActivity: null, + }, + ); + + const noSectionsEnabled = + !options.showStats && !options.showStreams && !options.showRecentActivity && !options.showViolations; + + return ( + + + {options.showStats && } + {options.showStreams && } + {options.showViolations && } + {options.showRecentActivity && } + {noSectionsEnabled && ( + + {t("noSectionsEnabled")} + + )} + + + ); +} diff --git a/packages/widgets/src/tracearr/index.ts b/packages/widgets/src/tracearr/index.ts new file mode 100644 index 000000000..44936cb67 --- /dev/null +++ b/packages/widgets/src/tracearr/index.ts @@ -0,0 +1,32 @@ +import { IconActivityHeartbeat, IconServerOff } from "@tabler/icons-react"; + +import { createWidgetDefinition } from "../definition"; +import { optionsBuilder } from "../options"; + +export const { definition, componentLoader } = createWidgetDefinition("tracearr", { + icon: IconActivityHeartbeat, + createOptions() { + return optionsBuilder.from((factory) => ({ + showStreams: factory.switch({ + defaultValue: true, + }), + showStats: factory.switch({ + defaultValue: true, + }), + + showRecentActivity: factory.switch({ + defaultValue: true, + }), + showViolations: factory.switch({ + defaultValue: true, + }), + })); + }, + supportedIntegrations: ["tracearr"], + errors: { + INTERNAL_SERVER_ERROR: { + icon: IconServerOff, + message: (t) => t("widget.tracearr.error.internalServerError"), + }, + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/tracearr/recent-activity-section.tsx b/packages/widgets/src/tracearr/recent-activity-section.tsx new file mode 100644 index 000000000..84fe35c3b --- /dev/null +++ b/packages/widgets/src/tracearr/recent-activity-section.tsx @@ -0,0 +1,56 @@ +import { Avatar, Badge, Group, Paper, Stack, Text } from "@mantine/core"; + +import type { TracearrHistorySession } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +export function RecentActivityList({ sessions }: { sessions: TracearrHistorySession[] }) { + const t = useScopedI18n("widget.tracearr"); + + return ( + + + {t("recentActivity.title")} + + {sessions.length === 0 ? ( + + {t("recentActivity.empty")} + + ) : ( + + {sessions.map((session) => { + const mediaLabel = + session.mediaType === "episode" && session.showTitle + ? `${session.showTitle} - S${session.seasonNumber ?? 0}E${session.episodeNumber ?? 0}` + : session.mediaTitle; + + return ( + + + + + + + {mediaLabel} + + + {session.user.username} • {session.serverName} + + + + + + {session.watched ? t("recentActivity.watched") : t("recentActivity.partial")} + + + {new Date(session.startedAt).toLocaleDateString()} + + + + + ); + })} + + )} + + ); +} diff --git a/packages/widgets/src/tracearr/stats-section.tsx b/packages/widgets/src/tracearr/stats-section.tsx new file mode 100644 index 000000000..efa2d8b32 --- /dev/null +++ b/packages/widgets/src/tracearr/stats-section.tsx @@ -0,0 +1,49 @@ +import { Group, Paper, SimpleGrid, Stack, Text } from "@mantine/core"; +import { IconDevices, IconNetwork, IconUsers, IconVideo } from "@tabler/icons-react"; + +import type { TracearrDashboardData } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +export function StatsBar({ + stats, + summary, + width, +}: { + stats: TracearrDashboardData["stats"]; + summary: TracearrDashboardData["streams"]["summary"]; + width: number; +}) { + const t = useScopedI18n("widget.tracearr"); + const cols = width > 400 ? 4 : width > 250 ? 2 : 1; + + return ( + + } label={t("stats.activeStreams")} value={stats.activeStreams} /> + } label={t("stats.totalUsers")} value={stats.totalUsers} /> + } + label={t("stats.transcodes")} + value={`${summary.transcodes}/${summary.total}`} + /> + } label={t("stats.bandwidth")} value={summary.totalBitrate} /> + + ); +} + +function StatCard({ icon, label, value }: { icon: React.ReactNode; label: string; value: string | number }) { + return ( + + + {icon} + + + {label} + + + {value} + + + + + ); +} diff --git a/packages/widgets/src/tracearr/streams-section.tsx b/packages/widgets/src/tracearr/streams-section.tsx new file mode 100644 index 000000000..e7908b7ba --- /dev/null +++ b/packages/widgets/src/tracearr/streams-section.tsx @@ -0,0 +1,128 @@ +import { Badge, Box, Group, Paper, Progress, Stack, Text, Tooltip } from "@mantine/core"; +import { IconPlayerPause, IconPlayerPlay } from "@tabler/icons-react"; + +import { formatDuration } from "@homarr/common"; +import type { TracearrStream } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +export function StreamsList({ streams, width }: { streams: TracearrStream[]; width: number }) { + const t = useScopedI18n("widget.tracearr"); + + if (streams.length === 0) { + return ( + + {t("streams.empty")} + + ); + } + + return ( + + {streams.map((stream) => ( + + ))} + + ); +} + +function StreamCard({ stream, compact }: { stream: TracearrStream; compact: boolean }) { + const t = useScopedI18n("widget.tracearr"); + const progressPercent = + stream.durationMs && stream.durationMs > 0 ? (stream.progressMs / stream.durationMs) * 100 : 0; + + const mediaLabel = + stream.mediaType === "episode" && stream.showTitle + ? `${stream.showTitle} - S${stream.seasonNumber ?? 0}E${stream.episodeNumber ?? 0} - ${stream.mediaTitle}` + : stream.mediaTitle; + + const videoDecisionLabel = + stream.videoDecision === "directplay" + ? t("streams.videoDecision.directPlay") + : stream.videoDecision === "transcode" + ? t("streams.videoDecision.transcode") + : stream.videoDecision === "copy" + ? t("streams.videoDecision.directStream") + : null; + + return ( + + {stream.posterUrl && ( + + )} + + + + {stream.state === "playing" ? ( + + ) : ( + + )} + + {stream.username} + + + + {stream.resolution && ( + + {stream.resolution} + + )} + {videoDecisionLabel && ( + + {videoDecisionLabel} + + )} + + + + + + {mediaLabel} + + + + {stream.durationMs && stream.durationMs > 0 && ( + + + + {formatDuration(stream.progressMs)} / {formatDuration(stream.durationMs)} + + + )} + + + {stream.device && ( + + {stream.player ?? stream.device} + + )} + + + + ); +} diff --git a/packages/widgets/src/tracearr/violations-section.tsx b/packages/widgets/src/tracearr/violations-section.tsx new file mode 100644 index 000000000..a35c5a933 --- /dev/null +++ b/packages/widgets/src/tracearr/violations-section.tsx @@ -0,0 +1,66 @@ +import { Avatar, Badge, Group, Paper, Stack, Text } from "@mantine/core"; +import { IconAlertTriangle } from "@tabler/icons-react"; + +import type { TracearrViolation } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +export function ViolationsList({ violations }: { violations: TracearrViolation[] }) { + const t = useScopedI18n("widget.tracearr"); + + return ( + + + {t("violations.title")} + + {violations.length === 0 ? ( + + {t("violations.empty")} + + ) : ( + + {violations.map((violation) => ( + + + + + + + + {violation.user.username} + + + {t("violations.rule")}: {violation.rule.name} + + + + + + {violation.severity} + + + {new Date(violation.createdAt).toLocaleDateString()} + + + + + ))} + + )} + + ); +} diff --git a/packages/widgets/src/umami/component.tsx b/packages/widgets/src/umami/component.tsx new file mode 100644 index 000000000..2aec3b46e --- /dev/null +++ b/packages/widgets/src/umami/component.tsx @@ -0,0 +1,39 @@ +"use client"; + +import { Stack, Text } from "@mantine/core"; + +import { useScopedI18n } from "@homarr/translation/client"; + +import type { WidgetComponentProps } from "../definition"; +import { UmamiContent } from "./umami-content"; + +export default function UmamiWidget({ options, integrationIds }: WidgetComponentProps<"umami">) { + if (!options.websiteId || options.websiteId.trim() === "") { + return ; + } + + return ( + + ); +} + +function NoWebsiteConfigured() { + const t = useScopedI18n("widget.umami"); + return ( + + + {t("error.noWebsite")} + + + ); +} diff --git a/packages/widgets/src/umami/index.ts b/packages/widgets/src/umami/index.ts new file mode 100644 index 000000000..c55ecd261 --- /dev/null +++ b/packages/widgets/src/umami/index.ts @@ -0,0 +1,88 @@ +import { IconChartBar, IconServerOff } from "@tabler/icons-react"; +import { z } from "zod/v4"; + +import { createWidgetDefinition } from "../definition"; +import { optionsBuilder } from "../options"; + +export const timeFrameValues = ["today", "24h", "7d", "30d", "month", "lastMonth"] as const; + +export const { definition, componentLoader } = createWidgetDefinition("umami", { + icon: IconChartBar, + supportedIntegrations: ["umami"], + createOptions() { + return optionsBuilder.from( + (factory) => ({ + websiteId: factory.umamiWebsite(), + timeFrame: factory.select({ + options: timeFrameValues.map((value) => ({ + value, + label: (t) => t(`widget.umami.option.timeFrame.option.${value}`), + })), + defaultValue: "24h", + withDescription: true, + }), + viewMode: factory.select({ + options: [ + { value: "chart", label: (t) => t("widget.umami.option.viewMode.option.chart") }, + { value: "events", label: (t) => t("widget.umami.option.viewMode.option.events") }, + { value: "topPages", label: (t) => t("widget.umami.option.viewMode.option.topPages") }, + { value: "topReferrers", label: (t) => t("widget.umami.option.viewMode.option.topReferrers") }, + ] as const, + defaultValue: "chart", + withDescription: true, + }), + chartType: factory.select({ + options: [ + { value: "bar", label: (t) => t("widget.umami.option.chartType.option.bar") }, + { value: "sparkline", label: (t) => t("widget.umami.option.chartType.option.sparkline") }, + ] as const, + defaultValue: "bar", + withDescription: true, + }), + chartStyle: factory.select({ + options: [ + { value: "grouped", label: (t) => t("widget.umami.option.chartStyle.option.grouped") }, + { value: "overlay", label: (t) => t("widget.umami.option.chartStyle.option.overlay") }, + ] as const, + defaultValue: "grouped", + withDescription: true, + }), + eventName: factory.umamiEventName(), + eventNames: factory.umamiEventNames(), + topCount: factory.number({ + validate: z.number().int().min(1).max(500), + defaultValue: 5, + step: 1, + withDescription: true, + }), + }), + { + viewMode: { + shouldHide: (options) => !options.websiteId, + }, + chartType: { + shouldHide: (options) => + !options.websiteId || (options.viewMode !== "chart" && options.viewMode !== "events"), + }, + chartStyle: { + shouldHide: (options) => options.viewMode !== "chart" || !options.eventName || options.chartType !== "bar", + }, + eventName: { + shouldHide: (options) => !options.websiteId || options.viewMode !== "chart", + }, + eventNames: { + shouldHide: (options) => !options.websiteId || options.viewMode !== "events", + }, + topCount: { + shouldHide: (options) => !options.websiteId || options.viewMode === "chart" || options.viewMode === "events", + }, + }, + ); + }, + errors: { + INTERNAL_SERVER_ERROR: { + icon: IconServerOff, + message: (t) => t("widget.umami.error.internalServerError"), + }, + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/umami/umami-content.tsx b/packages/widgets/src/umami/umami-content.tsx new file mode 100644 index 000000000..da9494519 --- /dev/null +++ b/packages/widgets/src/umami/umami-content.tsx @@ -0,0 +1,220 @@ +"use client"; + +import { BarChart, LineChart } from "@mantine/charts"; +import { Box, Group, Stack, Text, useMantineColorScheme } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import { formatDuration } from "@homarr/common"; +import type { UmamiVisitorStats } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +import { UmamiEventsContent } from "./umami-events-content"; +import { UmamiTopPagesContent, UmamiTopReferrersContent } from "./umami-top-list"; +import { formatTimeFrameLabel, formatXLabel } from "./umami-utils"; +import type { TimeFrame } from "./umami-utils"; + +interface UmamiContentProps { + integrationIds: string[]; + websiteId: string; + timeFrame: TimeFrame; + eventName?: string; + eventNames: string[]; + chartStyle: string; + chartType: string; + viewMode: string; + topCount: number; +} + +export function UmamiContent({ + integrationIds, + websiteId, + timeFrame, + eventName, + eventNames, + chartStyle, + chartType, + viewMode, + topCount, +}: UmamiContentProps) { + const t = useScopedI18n("widget.umami"); + const { colorScheme } = useMantineColorScheme(); + const tickColor = colorScheme === "dark" ? "#c1c2c5" : "#495057"; + + const [results] = clientApi.widget.umami.getVisitorStats.useSuspenseQuery({ + integrationIds, + websiteId, + timeFrame, + eventName, + }); + + const activeVisitorsInput = { integrationId: integrationIds[0] ?? "", websiteId }; + const [activeVisitors] = clientApi.widget.umami.getActiveVisitors.useSuspenseQuery(activeVisitorsInput); + const utils = clientApi.useUtils(); + clientApi.widget.umami.subscribeActiveVisitors.useSubscription(activeVisitorsInput, { + onData(count) { + utils.widget.umami.getActiveVisitors.setData(activeVisitorsInput, () => count); + }, + }); + + const { data: multiEventSeries } = clientApi.widget.umami.getMultiEventTimeSeries.useQuery( + { integrationId: integrationIds[0] ?? "", websiteId, timeFrame, eventNames: [...eventNames].sort() }, + { enabled: viewMode === "events" && eventNames.length > 0 }, + ); + + const multiEventTotal = multiEventSeries + ? multiEventSeries.flatMap(({ dataPoints }) => dataPoints).reduce((sum, { y }) => sum + y, 0) + : undefined; + + const firstResult = results[0]; + if (!firstResult) { + return ( + + + {t("error.noData")} + + + ); + } + + const { visitorStats } = firstResult; + + const chartData = visitorStats.dataPoints.map((point: UmamiVisitorStats["dataPoints"][number]) => ({ + label: formatXLabel(point.timestamp, timeFrame), + visitors: point.visitors, + ...(point.events !== undefined ? { events: point.events } : {}), + })); + + const hasEventSeries = visitorStats.dataPoints.some(({ events }) => events !== undefined); + const series = [ + { name: "visitors", color: "blue.5" }, + ...(hasEventSeries ? [{ name: "events", color: "orange.5" }] : []), + ]; + + const isOverlay = chartStyle === "overlay" && hasEventSeries; + const overlayBarSize = 16; + + return ( + + + + {visitorStats.domain} ({formatTimeFrameLabel(timeFrame, t)}) + + {(eventName && viewMode === "chart" && visitorStats.eventCount !== undefined) || + (viewMode === "events" && multiEventTotal !== undefined) ? ( + + + + {viewMode === "events" + ? (multiEventTotal ?? 0).toLocaleString() + : (visitorStats.eventCount ?? 0).toLocaleString()} + + + {t("event.label")} + + + + / + + + + {visitorStats.totalVisitors.toLocaleString()} + + + {t("visitors")} + + + + ) : ( + + + {visitorStats.totalVisitors.toLocaleString()} + + + {t("visitors")} + + + )} + + + + ● {activeVisitors.toLocaleString()} {t("active")} + + + {visitorStats.totalPageviews.toLocaleString()} {t("pageviews")} + + + {visitorStats.totalVisits.toLocaleString()} {t("visits")} + + + {visitorStats.bounceRate}% {t("bounceRate")} + + + {formatDuration(visitorStats.avgDuration * 1000)} {t("avgDuration")} + + + + {viewMode === "events" ? ( + + ) : viewMode === "topPages" ? ( + + ) : viewMode === "topReferrers" ? ( + + ) : chartType === "sparkline" ? ( + + ) : ( + + )} + + + ); +} diff --git a/packages/widgets/src/umami/umami-events-content.tsx b/packages/widgets/src/umami/umami-events-content.tsx new file mode 100644 index 000000000..0962d3681 --- /dev/null +++ b/packages/widgets/src/umami/umami-events-content.tsx @@ -0,0 +1,138 @@ +"use client"; + +import { BarChart, LineChart } from "@mantine/charts"; +import { Box, Group, Stack, Text, useMantineColorScheme } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import type { UmamiEventSeries } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +import { EVENT_COLORS, formatXLabel } from "./umami-utils"; + +interface UmamiEventsContentProps { + integrationIds: string[]; + websiteId: string; + timeFrame: string; + eventNames: string[]; + chartType: string; +} + +export function UmamiEventsContent({ + integrationIds, + websiteId, + timeFrame, + eventNames, + chartType, +}: UmamiEventsContentProps) { + const t = useScopedI18n("widget.umami"); + const { colorScheme } = useMantineColorScheme(); + const tickColor = colorScheme === "dark" ? "#c1c2c5" : "#495057"; + + const [series] = clientApi.widget.umami.getMultiEventTimeSeries.useSuspenseQuery({ + integrationId: integrationIds[0] ?? "", + websiteId, + timeFrame, + eventNames: [...eventNames].sort(), + }); + + if (eventNames.length === 0) { + return ( + + + {t("events.selectPrompt")} + + + ); + } + + // Collect all unique timestamps across all series + const allTimestamps = Array.from( + new Set(series.flatMap(({ dataPoints }) => dataPoints.map(({ x: xPoint }) => xPoint))), + ).sort(); + + // Build per-event lookup by timestamp string + const byEvent = new Map( + series.map((serie: UmamiEventSeries) => [ + serie.eventName, + new Map(serie.dataPoints.map((point) => [point.x, point.y])), + ]), + ); + + const chartData = allTimestamps.map((timestamp) => { + const row: Record = { label: formatXLabel(timestamp, timeFrame) }; + for (const serie of series) { + row[serie.eventName] = byEvent.get(serie.eventName)?.get(timestamp) ?? 0; + } + return row; + }); + + const chartSeries = series.map((serie: UmamiEventSeries, index: number) => ({ + name: serie.eventName, + color: EVENT_COLORS[index % EVENT_COLORS.length] ?? "blue.5", + })); + + return ( + + {chartSeries.length > 1 && ( + + {chartSeries.map((serie) => ( + + + + {serie.name} + + + ))} + + )} + + {chartType === "sparkline" ? ( + + ) : ( + + )} + + + ); +} diff --git a/packages/widgets/src/umami/umami-top-list.tsx b/packages/widgets/src/umami/umami-top-list.tsx new file mode 100644 index 000000000..1d9a87988 --- /dev/null +++ b/packages/widgets/src/umami/umami-top-list.tsx @@ -0,0 +1,77 @@ +"use client"; + +import { Group, ScrollArea, Stack, Text } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import type { UmamiMetricItem } from "@homarr/integrations/types"; +import { useScopedI18n } from "@homarr/translation/client"; + +interface UmamiTopListProps { + integrationIds: string[]; + websiteId: string; + timeFrame: string; + limit: number; +} + +export function UmamiTopPagesContent({ integrationIds, websiteId, timeFrame, limit }: UmamiTopListProps) { + const t = useScopedI18n("widget.umami"); + const [data] = clientApi.widget.umami.getTopPages.useSuspenseQuery({ + integrationId: integrationIds[0] ?? "", + websiteId, + timeFrame, + limit, + }); + return ; +} + +export function UmamiTopReferrersContent({ integrationIds, websiteId, timeFrame, limit }: UmamiTopListProps) { + const t = useScopedI18n("widget.umami"); + const [data] = clientApi.widget.umami.getTopReferrers.useSuspenseQuery({ + integrationId: integrationIds[0] ?? "", + websiteId, + timeFrame, + limit, + }); + return ( + + ); +} + +function UmamiTopList({ + items, + heading, + emptyLabel, +}: { + items: UmamiMetricItem[]; + heading: string; + emptyLabel: string; +}) { + return ( + + + {heading} + + + + {items.map((item, i) => ( + + + {i + 1}. + + + {item.x || emptyLabel} + + + {item.y.toLocaleString()} + + + ))} + + + + ); +} diff --git a/packages/widgets/src/umami/umami-utils.ts b/packages/widgets/src/umami/umami-utils.ts new file mode 100644 index 000000000..c88f28378 --- /dev/null +++ b/packages/widgets/src/umami/umami-utils.ts @@ -0,0 +1,33 @@ +import type { useScopedI18n } from "@homarr/translation/client"; + +import { timeFrameValues } from "./index"; + +export const EVENT_COLORS = ["blue.5", "orange.5", "green.5", "red.5", "violet.5", "teal.5", "yellow.5", "pink.5"]; + +export function formatXLabel(timestamp: string, timeFrame: string): string { + const date = new Date(timestamp); + switch (timeFrame) { + case "today": + case "24h": + return `${date.getHours().toString().padStart(2, "0")}:00`; + case "7d": + case "30d": + case "month": + case "lastMonth": + return date.toLocaleDateString(undefined, { month: "short", day: "numeric" }); + default: + return timestamp; + } +} + +export type TimeFrame = (typeof timeFrameValues)[number]; + +export function formatTimeFrameLabel( + timeFrame: TimeFrame, + t: ReturnType>, +): string { + if (timeFrameValues.includes(timeFrame)) { + return t(`option.timeFrame.option.${timeFrame}`); + } + return timeFrame; +} diff --git a/packages/widgets/src/video/component.tsx b/packages/widgets/src/video/component.tsx index 68038744e..12b6bbde0 100644 --- a/packages/widgets/src/video/component.tsx +++ b/packages/widgets/src/video/component.tsx @@ -79,7 +79,6 @@ const Feed = ({ options }: Pick, "options">) => { ], }); // All other properties are updated with other useEffect - // eslint-disable-next-line react-hooks/exhaustive-deps }, [videoRef]); useEffect(() => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ac02f05c..999c94da9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,26 +4,584 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +catalogs: + default: + '@auth/core': + specifier: ^0.41.2 + version: 0.41.2 + '@auth/drizzle-adapter': + specifier: ^1.11.2 + version: 1.11.2 + '@ctrl/deluge': + specifier: ^8.0.0 + version: 8.0.0 + '@ctrl/qbittorrent': + specifier: ^9.12.1 + version: 9.12.1 + '@ctrl/transmission': + specifier: ^7.4.0 + version: 7.4.0 + '@dnd-kit/core': + specifier: ^6.3.1 + version: 6.3.1 + '@dnd-kit/modifiers': + specifier: ^9.0.0 + version: 9.0.0 + '@dnd-kit/sortable': + specifier: ^10.0.0 + version: 10.0.0 + '@dnd-kit/utilities': + specifier: ^3.2.2 + version: 3.2.2 + '@drizzle-team/brocli': + specifier: ^0.12.0 + version: 0.12.0 + '@eslint/js': + specifier: 10.0.1 + version: 10.0.1 + '@extractus/feed-extractor': + specifier: 7.2.1 + version: 7.2.1 + '@gitbeaker/rest': + specifier: ^43.8.0 + version: 43.8.0 + '@homarr/gridstack': + specifier: ^1.12.0 + version: 1.12.0 + '@homarr/node-unifi': + specifier: ^2.6.0 + version: 2.6.0 + '@ianvs/prettier-plugin-sort-imports': + specifier: ^4.7.1 + version: 4.7.1 + '@immich/sdk': + specifier: ^2.7.5 + version: 2.7.5 + '@jellyfin/sdk': + specifier: ^0.13.0 + version: 0.13.0 + '@kubernetes/client-node': + specifier: ^1.4.0 + version: 1.4.0 + '@mantine/charts': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/colors-generator': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/core': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/dates': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/dropzone': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/form': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/hooks': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/modals': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/notifications': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/spotlight': + specifier: ^8.3.18 + version: 8.3.18 + '@mantine/tiptap': + specifier: ^8.3.18 + version: 8.3.18 + '@next/eslint-plugin-next': + specifier: 16.2.6 + version: 16.2.6 + '@octokit/auth-app': + specifier: ^8.2.0 + version: 8.2.0 + '@paralleldrive/cuid2': + specifier: ^3.3.0 + version: 3.3.0 + '@playwright/test': + specifier: ^1.60.0 + version: 1.60.0 + '@semantic-release/changelog': + specifier: ^6.0.3 + version: 6.0.3 + '@semantic-release/commit-analyzer': + specifier: ^13.0.1 + version: 13.0.1 + '@semantic-release/git': + specifier: ^10.0.1 + version: 10.0.1 + '@semantic-release/github': + specifier: ^12.0.8 + version: 12.0.8 + '@semantic-release/npm': + specifier: ^13.1.5 + version: 13.1.5 + '@semantic-release/release-notes-generator': + specifier: ^14.1.1 + version: 14.1.1 + '@t3-oss/env-nextjs': + specifier: ^0.13.11 + version: 0.13.11 + '@tabler/icons-react': + specifier: ^3.44.0 + version: 3.44.0 + '@tanstack/react-query': + specifier: ^5.100.10 + version: 5.100.10 + '@tanstack/react-query-devtools': + specifier: ^5.100.10 + version: 5.100.10 + '@tanstack/react-query-next-experimental': + specifier: ^5.100.10 + version: 5.100.10 + '@testcontainers/mysql': + specifier: ^11.14.0 + version: 11.14.0 + '@testcontainers/postgresql': + specifier: ^11.14.0 + version: 11.14.0 + '@testcontainers/redis': + specifier: ^11.14.0 + version: 11.14.0 + '@tiptap/extension-color': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-highlight': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-image': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-link': + specifier: ^3.23.4 + version: 3.23.4 + '@tiptap/extension-placeholder': + specifier: ^3.23.4 + version: 3.23.4 + '@tiptap/extension-table': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-table-cell': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-table-header': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-table-row': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-task-item': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-task-list': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-text-align': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-text-style': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/extension-underline': + specifier: 3.23.4 + version: 3.23.4 + '@tiptap/react': + specifier: ^3.23.4 + version: 3.23.4 + '@tiptap/starter-kit': + specifier: ^3.23.4 + version: 3.23.4 + '@trpc/client': + specifier: ^11.17.0 + version: 11.17.0 + '@trpc/next': + specifier: ^11.17.0 + version: 11.17.0 + '@trpc/react-query': + specifier: ^11.17.0 + version: 11.17.0 + '@trpc/server': + specifier: ^11.17.0 + version: 11.17.0 + '@trpc/tanstack-react-query': + specifier: ^11.17.0 + version: 11.17.0 + '@turbo/gen': + specifier: ^2.9.14 + version: 2.9.14 + '@types/adm-zip': + specifier: 0.5.8 + version: 0.5.8 + '@types/bcrypt': + specifier: 6.0.0 + version: 6.0.0 + '@types/better-sqlite3': + specifier: 7.6.13 + version: 7.6.13 + '@types/chroma-js': + specifier: 3.1.2 + version: 3.1.2 + '@types/cookies': + specifier: 0.9.2 + version: 0.9.2 + '@types/crypto-js': + specifier: ^4.2.2 + version: 4.2.2 + '@types/css-modules': + specifier: ^1.0.5 + version: 1.0.5 + '@types/dockerode': + specifier: ^4.0.1 + version: 4.0.1 + '@types/node': + specifier: ^24.12.4 + version: 24.12.4 + '@types/node-unifi': + specifier: ^2.5.1 + version: 2.5.1 + '@types/pg': + specifier: ^8.20.0 + version: 8.20.0 + '@types/prismjs': + specifier: ^1.26.6 + version: 1.26.6 + '@types/react': + specifier: 19.2.14 + version: 19.2.14 + '@types/react-dom': + specifier: 19.2.3 + version: 19.2.3 + '@types/swagger-ui-react': + specifier: ^5.18.0 + version: 5.18.0 + '@types/video.js': + specifier: ^7.3.58 + version: 7.3.58 + '@types/ws': + specifier: ^8.18.1 + version: 8.18.1 + '@types/xml2js': + specifier: ^0.4.14 + version: 0.4.14 + '@umami/node': + specifier: ^0.4.0 + version: 0.4.0 + '@vitejs/plugin-react': + specifier: ^5.2.0 + version: 5.2.0 + '@vitest/coverage-v8': + specifier: ^4.1.6 + version: 4.1.6 + '@vitest/ui': + specifier: ^4.1.6 + version: 4.1.6 + '@xterm/addon-canvas': + specifier: ^0.7.0 + version: 0.7.0 + '@xterm/addon-fit': + specifier: 0.11.0 + version: 0.11.0 + '@xterm/xterm': + specifier: ^6.0.0 + version: 6.0.0 + adm-zip: + specifier: 0.5.17 + version: 0.5.17 + babel-plugin-react-compiler: + specifier: ^1.0.0 + version: 1.0.0 + bcrypt: + specifier: ^6.0.0 + version: 6.0.0 + better-sqlite3: + specifier: ^12.10.0 + version: 12.10.0 + chroma-js: + specifier: ^3.2.0 + version: 3.2.0 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + concurrently: + specifier: ^9.2.1 + version: 9.2.1 + conventional-changelog-conventionalcommits: + specifier: ^9.3.1 + version: 9.3.1 + cookie: + specifier: 1.1.1 + version: 1.1.1 + cookies: + specifier: ^0.9.1 + version: 0.9.1 + croner: + specifier: 10.0.1 + version: 10.0.1 + cross-env: + specifier: ^10.1.0 + version: 10.1.0 + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 + dayjs: + specifier: ^1.11.20 + version: 1.11.20 + deepmerge: + specifier: 4.3.1 + version: 4.3.1 + dns-caching: + specifier: ^0.2.9 + version: 0.2.9 + dockerode: + specifier: ^5.0.0 + version: 5.0.0 + dotenv: + specifier: ^17.4.2 + version: 17.4.2 + dotenv-cli: + specifier: ^11.0.0 + version: 11.0.0 + drizzle-kit: + specifier: ^0.31.10 + version: 0.31.10 + drizzle-orm: + specifier: ^0.45.2 + version: 0.45.2 + drizzle-zod: + specifier: ^0.8.3 + version: 0.8.3 + esbuild: + specifier: ^0.28.0 + version: 0.28.0 + eslint: + specifier: ^10.4.0 + version: 10.4.0 + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8 + eslint-config-turbo: + specifier: ^2.9.14 + version: 2.9.14 + eslint-plugin-import: + specifier: ^2.32.0 + version: 2.32.0 + eslint-plugin-jsx-a11y: + specifier: ^6.10.2 + version: 6.10.2 + eslint-plugin-react: + specifier: ^7.37.5 + version: 7.37.5 + eslint-plugin-react-hooks: + specifier: ^6.1.1 + version: 6.1.1 + fast-xml-parser: + specifier: ^5.8.0 + version: 5.8.0 + fastify: + specifier: ^5.8.5 + version: 5.8.5 + flag-icons: + specifier: ^7.5.0 + version: 7.5.0 + glob: + specifier: ^13.0.6 + version: 13.0.6 + ical.js: + specifier: ^2.2.1 + version: 2.2.1 + ioredis: + specifier: 5.10.1 + version: 5.10.1 + isomorphic-dompurify: + specifier: ^3.13.0 + version: 3.13.0 + jotai: + specifier: ^2.20.0 + version: 2.20.0 + jsdom: + specifier: ^29.1.1 + version: 29.1.1 + json5: + specifier: ^2.2.3 + version: 2.2.3 + ldapts: + specifier: 8.1.7 + version: 8.1.7 + lodash.clonedeep: + specifier: ^4.5.0 + version: 4.5.0 + mantine-form-zod-resolver: + specifier: ^1.3.0 + version: 1.3.0 + mantine-react-table: + specifier: 2.0.0-beta.9 + version: 2.0.0-beta.9 + maria2: + specifier: ^0.4.1 + version: 0.4.1 + mysql2: + specifier: 3.22.3 + version: 3.22.3 + next: + specifier: 16.2.6 + version: 16.2.6 + next-auth: + specifier: 5.0.0-beta.31 + version: 5.0.0-beta.31 + next-intl: + specifier: 4.12.0 + version: 4.12.0 + node-loader: + specifier: ^2.1.0 + version: 2.1.0 + octokit: + specifier: ^5.0.5 + version: 5.0.5 + pg: + specifier: ^8.20.0 + version: 8.20.0 + postcss-preset-mantine: + specifier: ^1.18.0 + version: 1.18.0 + prettier: + specifier: ^3.8.3 + version: 3.8.3 + prettier-plugin-packagejson: + specifier: ^3.0.2 + version: 3.0.2 + prismjs: + specifier: ^1.30.0 + version: 1.30.0 + proxmox-api: + specifier: 1.1.1 + version: 1.1.1 + react: + specifier: 19.2.6 + version: 19.2.6 + react-dom: + specifier: 19.2.6 + version: 19.2.6 + react-error-boundary: + specifier: ^6.1.1 + version: 6.1.1 + react-markdown: + specifier: ^10.1.0 + version: 10.1.0 + react-quill-new: + specifier: ^3.8.3 + version: 3.8.3 + react-simple-code-editor: + specifier: ^0.14.1 + version: 0.14.1 + recharts: + specifier: ^3.8.1 + version: 3.8.1 + sass: + specifier: ^1.99.0 + version: 1.99.0 + semantic-release: + specifier: ^25.0.3 + version: 25.0.3 + semver-parser: + specifier: ^4.1.8 + version: 4.1.8 + superjson: + specifier: 2.2.6 + version: 2.2.6 + svgson: + specifier: ^5.3.1 + version: 5.3.1 + swagger-ui-react: + specifier: ^5.32.6 + version: 5.32.6 + testcontainers: + specifier: ^11.14.0 + version: 11.14.0 + timezones-ical-library: + specifier: ^2.2.0 + version: 2.2.0 + trpc-to-openapi: + specifier: ^3.2.0 + version: 3.2.0 + tsdav: + specifier: ^2.2.2 + version: 2.2.2 + tsx: + specifier: 4.20.4 + version: 4.20.4 + turbo: + specifier: ^2.9.14 + version: 2.9.14 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + typescript-eslint: + specifier: ^8.58.2 + version: 8.58.2 + undici: + specifier: 7.24.6 + version: 7.24.6 + use-deep-compare-effect: + specifier: ^1.8.1 + version: 1.8.1 + video.js: + specifier: ^8.23.7 + version: 8.23.7 + vite-tsconfig-paths: + specifier: ^6.1.1 + version: 6.1.1 + vitest: + specifier: ^4.1.6 + version: 4.1.6 + winston: + specifier: 3.19.0 + version: 3.19.0 + ws: + specifier: ^8.20.1 + version: 8.20.1 + xml2js: + specifier: ^0.6.2 + version: 0.6.2 + yaml: + specifier: 2.9.0 + version: 2.9.0 + zod: + specifier: ^4.4.3 + version: 4.4.3 + zod-form-data: + specifier: ^3.0.1 + version: 3.0.1 + zod-validation-error: + specifier: ^5.0.0 + version: 5.0.0 + overrides: - '@babel/helpers@<7.26.10': '>=7.28.4' - '@babel/runtime@<7.26.10': '>=7.28.4' - axios@>=1.0.0 <1.8.2: '>=1.13.2' - brace-expansion@>=2.0.0 <=2.0.1: '>=4.0.1' - brace-expansion@>=1.0.0 <=1.1.11: '>=4.0.1' - esbuild@<=0.24.2: '>=0.27.2' + '@babel/helpers@<7.26.10': '>=7.29.2' + '@babel/runtime@<7.26.10': '>=7.29.2' + axios@>=1.0.0 <1.8.2: '>=1.16.1' + brace-expansion@>=2.0.0 <=2.0.1: '>=5.0.6' + brace-expansion@>=1.0.0 <=1.1.11: '>=5.0.6' + esbuild@<=0.24.2: '>=0.28.0' form-data@>=4.0.0 <4.0.4: '>=4.0.5' - hono@<4.6.5: '>=4.11.3' - linkifyjs@<4.3.2: '>=4.3.2' - nanoid@>=4.0.0 <5.0.9: '>=5.1.6' + hono@<4.6.5: '>=4.12.19' + linkifyjs@<4.3.2: '>=4.3.3' + nanoid@>=4.0.0 <5.0.9: '>=5.1.11' prismjs@<1.30.0: '>=1.30.0' - proxmox-api>undici: 7.18.2 - react-is: ^19.2.3 - rollup@>=4.0.0 <4.22.4: '>=4.55.1' + proxmox-api>undici: 7.24.6 + react-is: ^19.2.6 + rollup@>=4.0.0 <4.22.4: '>=4.60.4' sha.js@<=2.4.11: '>=2.4.12' - tar-fs@>=3.0.0 <3.0.9: '>=3.1.1' - tar-fs@>=2.0.0 <2.1.3: '>=3.1.1' + tar-fs@>=3.0.0 <3.0.9: '>=3.1.2' + tar-fs@>=2.0.0 <2.1.3: '>=3.1.2' tmp@<=0.2.3: '>=0.2.5' - vite@>=5.0.0 <=5.4.18: '>=7.3.1' + vite@>=5.0.0 <=5.4.18: '>=8.0.13' patchedDependencies: '@types/node-unifi': @@ -40,87 +598,90 @@ importers: '@homarr/prettier-config': specifier: workspace:^0.1.0 version: link:tooling/prettier + '@playwright/test': + specifier: 'catalog:' + version: 1.60.0 '@semantic-release/changelog': - specifier: ^6.0.3 - version: 6.0.3(semantic-release@25.0.2(typescript@5.9.3)) + specifier: 'catalog:' + version: 6.0.3(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/commit-analyzer': - specifier: ^13.0.1 - version: 13.0.1(semantic-release@25.0.2(typescript@5.9.3)) + specifier: 'catalog:' + version: 13.0.1(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/git': - specifier: ^10.0.1 - version: 10.0.1(semantic-release@25.0.2(typescript@5.9.3)) + specifier: 'catalog:' + version: 10.0.1(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/github': - specifier: ^12.0.2 - version: 12.0.2(semantic-release@25.0.2(typescript@5.9.3)) + specifier: 'catalog:' + version: 12.0.8(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/npm': - specifier: ^13.1.3 - version: 13.1.3(semantic-release@25.0.2(typescript@5.9.3)) + specifier: 'catalog:' + version: 13.1.5(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/release-notes-generator': - specifier: ^14.1.0 - version: 14.1.0(semantic-release@25.0.2(typescript@5.9.3)) + specifier: 'catalog:' + version: 14.1.1(semantic-release@25.0.3(typescript@5.9.3)) '@testcontainers/redis': - specifier: ^11.11.0 - version: 11.11.0 + specifier: 'catalog:' + version: 11.14.0 '@turbo/gen': - specifier: ^2.7.3 - version: 2.7.3(@swc/core@1.15.3)(@types/node@24.10.7)(typescript@5.9.3) + specifier: 'catalog:' + version: 2.9.14(@types/node@24.12.4) '@vitejs/plugin-react': - specifier: ^5.1.2 - version: 5.1.2(vite@7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1)) + specifier: 'catalog:' + version: 5.2.0(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': - specifier: ^4.0.16 - version: 4.0.16(vitest@4.0.16) + specifier: 'catalog:' + version: 4.1.6(vitest@4.1.6) '@vitest/ui': - specifier: ^4.0.16 - version: 4.0.16(vitest@4.0.16) + specifier: 'catalog:' + version: 4.1.6(vitest@4.1.6) conventional-changelog-conventionalcommits: - specifier: ^9.1.0 - version: 9.1.0 + specifier: 'catalog:' + version: 9.3.1 cross-env: - specifier: ^10.1.0 + specifier: 'catalog:' version: 10.1.0 jsdom: - specifier: ^27.4.0 - version: 27.4.0(postcss@8.5.6) + specifier: 'catalog:' + version: 29.1.1(@noble/hashes@2.0.1) json5: - specifier: ^2.2.3 + specifier: 'catalog:' version: 2.2.3 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: 'catalog:' + version: 3.8.3 semantic-release: - specifier: ^25.0.2 - version: 25.0.2(typescript@5.9.3) + specifier: 'catalog:' + version: 25.0.3(typescript@5.9.3) testcontainers: - specifier: ^11.11.0 - version: 11.11.0 + specifier: 'catalog:' + version: 11.14.0 turbo: - specifier: ^2.7.3 - version: 2.7.3 + specifier: 'catalog:' + version: 2.9.14 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 vite-tsconfig-paths: - specifier: ^6.0.4 - version: 6.0.4(typescript@5.9.3)(vite@7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1)) + specifier: 'catalog:' + version: 6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: - specifier: ^4.0.16 - version: 4.0.16(@types/node@24.10.7)(@vitest/ui@4.0.16)(jsdom@27.4.0(postcss@8.5.6))(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1) + specifier: 'catalog:' + version: 4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(@vitest/ui@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/nextjs: dependencies: '@dnd-kit/core': - specifier: ^6.3.1 - version: 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@dnd-kit/modifiers': - specifier: ^9.0.0 - version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) '@dnd-kit/sortable': - specifier: ^10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) '@dnd-kit/utilities': - specifier: ^3.2.2 - version: 3.2.2(react@19.2.3) + specifier: 'catalog:' + version: 3.2.2(react@19.2.6) '@homarr/analytics': specifier: workspace:^0.1.0 version: link:../../packages/analytics @@ -158,7 +719,7 @@ importers: specifier: workspace:^0.1.0 version: link:../../packages/forms-collection '@homarr/gridstack': - specifier: ^1.12.0 + specifier: 'catalog:' version: 1.12.0 '@homarr/icons': specifier: workspace:^0.1.0 @@ -196,6 +757,9 @@ importers: '@homarr/spotlight': specifier: workspace:^0.1.0 version: link:../../packages/spotlight + '@homarr/tasks': + specifier: workspace:^0.1.0 + version: link:../tasks '@homarr/translation': specifier: workspace:^0.1.0 version: link:../../packages/translation @@ -205,129 +769,132 @@ importers: '@homarr/validation': specifier: workspace:^0.1.0 version: link:../../packages/validation + '@homarr/websocket': + specifier: workspace:^0.1.0 + version: link:../websocket '@homarr/widgets': specifier: workspace:^0.1.0 version: link:../../packages/widgets '@mantine/colors-generator': - specifier: ^8.3.12 - version: 8.3.12(chroma-js@3.2.0) + specifier: 'catalog:' + version: 8.3.18(chroma-js@3.2.0) '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/dropzone': - specifier: ^8.3.12 - version: 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/hooks': - specifier: ^8.3.12 - version: 8.3.12(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(react@19.2.6) '@mantine/modals': - specifier: ^8.3.12 - version: 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/tiptap': - specifier: ^8.3.12 - version: 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(@tiptap/extension-link@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))(@tiptap/react@3.15.3(@floating-ui/dom@1.7.4)(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@million/lint': - specifier: 1.0.14 - version: 1.0.14(webpack-sources@3.3.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(@tiptap/extension-link@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))(@tiptap/react@3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tabler/icons-react': - specifier: ^3.36.1 - version: 3.36.1(react@19.2.3) + specifier: 'catalog:' + version: 3.44.0(react@19.2.6) '@tanstack/react-query': - specifier: ^5.90.16 - version: 5.90.16(react@19.2.3) + specifier: 'catalog:' + version: 5.100.10(react@19.2.6) '@tanstack/react-query-devtools': - specifier: ^5.91.2 - version: 5.91.2(@tanstack/react-query@5.90.16(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 5.100.10(@tanstack/react-query@5.100.10(react@19.2.6))(react@19.2.6) '@tanstack/react-query-next-experimental': - specifier: ^5.91.0 - version: 5.91.0(@tanstack/react-query@5.90.16(react@19.2.3))(next@16.1.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3) + specifier: 'catalog:' + version: 5.100.10(@tanstack/react-query@5.100.10(react@19.2.6))(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0))(react@19.2.6) '@trpc/client': - specifier: ^11.8.1 - version: 11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3) + specifier: 'catalog:' + version: 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/next': - specifier: ^11.8.1 - version: 11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(next@16.1.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + specifier: 'catalog:' + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.6)(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.8.1 - version: 11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + specifier: 'catalog:' + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.6)(typescript@5.9.3) '@trpc/server': - specifier: ^11.8.1 - version: 11.8.1(typescript@5.9.3) + specifier: 'catalog:' + version: 11.17.0(typescript@5.9.3) '@xterm/addon-canvas': - specifier: ^0.7.0 + specifier: 'catalog:' version: 0.7.0(@xterm/xterm@6.0.0) '@xterm/addon-fit': - specifier: 0.11.0 + specifier: 'catalog:' version: 0.11.0 '@xterm/xterm': - specifier: ^6.0.0 + specifier: 'catalog:' version: 6.0.0 babel-plugin-react-compiler: - specifier: ^1.0.0 + specifier: 'catalog:' version: 1.0.0 chroma-js: - specifier: ^3.2.0 + specifier: 'catalog:' version: 3.2.0 clsx: - specifier: ^2.1.1 + specifier: 'catalog:' version: 2.1.1 dayjs: - specifier: ^1.11.19 - version: 1.11.19 + specifier: 'catalog:' + version: 1.11.20 dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: 'catalog:' + version: 17.4.2 flag-icons: - specifier: ^7.5.0 + specifier: 'catalog:' version: 7.5.0 glob: - specifier: ^13.0.0 - version: 13.0.0 + specifier: 'catalog:' + version: 13.0.6 isomorphic-dompurify: - specifier: ^2.35.0 - version: 2.35.0(postcss@8.5.6) + specifier: 'catalog:' + version: 3.13.0(@noble/hashes@2.0.1) jotai: - specifier: ^2.16.1 - version: 2.16.1(@babel/core@7.26.0)(@babel/template@7.27.2)(@types/react@19.2.8)(react@19.2.3) + specifier: 'catalog:' + version: 2.20.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.6) mantine-react-table: - specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/dates@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(@tabler/icons-react@3.36.1(react@19.2.3))(clsx@2.1.1)(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(@tabler/icons-react@3.44.0(react@19.2.6))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) postcss-preset-mantine: - specifier: ^1.18.0 - version: 1.18.0(postcss@8.5.6) + specifier: 'catalog:' + version: 1.18.0(postcss@8.5.8) prismjs: - specifier: ^1.30.0 + specifier: 'catalog:' version: 1.30.0 react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) react-error-boundary: - specifier: ^6.0.3 - version: 6.0.3(react@19.2.3) + specifier: 'catalog:' + version: 6.1.1(react@19.2.6) react-simple-code-editor: - specifier: ^0.14.1 - version: 0.14.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 0.14.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6) sass: - specifier: ^1.97.2 - version: 1.97.2 + specifier: 'catalog:' + version: 1.99.0 superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 swagger-ui-react: - specifier: ^5.31.0 - version: 5.31.0(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 5.32.6(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) use-deep-compare-effect: - specifier: ^1.8.1 - version: 1.8.1(react@19.2.3) + specifier: 'catalog:' + version: 1.8.1(react@19.2.6) + yaml: + specifier: 'catalog:' + version: 2.9.0 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -339,37 +906,37 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/chroma-js': - specifier: 3.1.2 + specifier: 'catalog:' version: 3.1.2 '@types/node': - specifier: ^24.10.7 - version: 24.10.7 + specifier: 'catalog:' + version: 24.12.4 '@types/prismjs': - specifier: ^1.26.5 - version: 1.26.5 + specifier: 'catalog:' + version: 1.26.6 '@types/react': - specifier: 19.2.8 - version: 19.2.8 + specifier: 'catalog:' + version: 19.2.14 '@types/react-dom': - specifier: 19.2.3 - version: 19.2.3(@types/react@19.2.8) + specifier: 'catalog:' + version: 19.2.3(@types/react@19.2.14) '@types/swagger-ui-react': - specifier: ^5.18.0 + specifier: 'catalog:' version: 5.18.0 concurrently: - specifier: ^9.2.1 + specifier: 'catalog:' version: 9.2.1 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 node-loader: - specifier: ^2.1.0 - version: 2.1.0(webpack@5.94.0(@swc/core@1.15.3)) + specifier: 'catalog:' + version: 2.1.0(webpack@5.94.0) prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: 'catalog:' + version: 3.8.3 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 apps/tasks: @@ -386,9 +953,6 @@ importers: '@homarr/core': specifier: workspace:^ version: link:../../packages/core - '@homarr/cron-job-api': - specifier: workspace:^0.1.0 - version: link:../../packages/cron-job-api '@homarr/cron-jobs': specifier: workspace:^0.1.0 version: link:../../packages/cron-jobs @@ -425,21 +989,24 @@ importers: '@homarr/widgets': specifier: workspace:^0.1.0 version: link:../../packages/widgets + croner: + specifier: 'catalog:' + version: 10.0.1 dayjs: - specifier: ^1.11.19 - version: 1.11.19 + specifier: 'catalog:' + version: 1.11.20 dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: 'catalog:' + version: 17.4.2 fastify: - specifier: ^5.6.2 - version: 5.6.2 + specifier: 'catalog:' + version: 5.8.5 superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 undici: - specifier: 7.18.2 - version: 7.18.2 + specifier: 'catalog:' + version: 7.24.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -451,25 +1018,25 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node': - specifier: ^24.10.7 - version: 24.10.7 + specifier: 'catalog:' + version: 24.12.4 dotenv-cli: - specifier: ^11.0.0 + specifier: 'catalog:' version: 11.0.0 esbuild: - specifier: ^0.27.2 - version: 0.27.2 + specifier: 'catalog:' + version: 0.28.0 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: 'catalog:' + version: 3.8.3 tsx: - specifier: 4.20.4 + specifier: 'catalog:' version: 4.20.4 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 apps/websocket: @@ -499,14 +1066,14 @@ importers: specifier: workspace:^0.1.0 version: link:../../packages/validation dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: 'catalog:' + version: 17.4.2 tsx: - specifier: 4.20.4 + specifier: 'catalog:' version: 4.20.4 ws: - specifier: ^8.19.0 - version: 8.19.0 + specifier: 'catalog:' + version: 8.20.1 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -518,37 +1085,46 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/ws': - specifier: ^8.18.1 + specifier: 'catalog:' version: 8.18.1 esbuild: - specifier: ^0.27.2 - version: 0.27.2 + specifier: 'catalog:' + version: 0.28.0 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: 'catalog:' + version: 3.8.3 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/analytics: dependencies: + '@homarr/auth': + specifier: workspace:^0.1.0 + version: link:../auth + '@homarr/common': + specifier: workspace:^0.1.0 + version: link:../common '@homarr/core': specifier: workspace:^0.1.0 version: link:../core '@homarr/db': specifier: workspace:^0.1.0 version: link:../db + '@homarr/docker': + specifier: workspace:^0.1.0 + version: link:../docker '@homarr/server-settings': specifier: workspace:^0.1.0 version: link:../server-settings '@umami/node': - specifier: ^0.4.0 + specifier: 'catalog:' version: 0.4.0 superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 devDependencies: '@homarr/eslint-config': @@ -561,10 +1137,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/api: @@ -578,9 +1154,6 @@ importers: '@homarr/core': specifier: workspace:^0.1.0 version: link:../core - '@homarr/cron-job-api': - specifier: workspace:^0.1.0 - version: link:../cron-job-api '@homarr/cron-job-status': specifier: workspace:^0.1.0 version: link:../cron-job-status @@ -627,44 +1200,44 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@kubernetes/client-node': - specifier: ^1.4.0 + specifier: 'catalog:' version: 1.4.0 '@tanstack/react-query': - specifier: ^5.90.16 - version: 5.90.16(react@19.2.3) + specifier: 'catalog:' + version: 5.100.10(react@19.2.6) '@trpc/client': - specifier: ^11.8.1 - version: 11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3) + specifier: 'catalog:' + version: 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.8.1 - version: 11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + specifier: 'catalog:' + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.6)(typescript@5.9.3) '@trpc/server': - specifier: ^11.8.1 - version: 11.8.1(typescript@5.9.3) + specifier: 'catalog:' + version: 11.17.0(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.8.1 - version: 11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + specifier: 'catalog:' + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.6)(typescript@5.9.3) lodash.clonedeep: - specifier: ^4.5.0 + specifier: 'catalog:' version: 4.5.0 next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 trpc-to-openapi: - specifier: ^3.1.0 - version: 3.1.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.8.1(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.2.1))(zod@4.2.1) + specifier: 'catalog:' + version: 3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.17.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.4.3))(zod@4.4.3) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -676,23 +1249,23 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: 'catalog:' + version: 3.8.3 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/auth: dependencies: '@auth/core': - specifier: ^0.41.1 - version: 0.41.1 + specifier: 'catalog:' + version: 0.41.2 '@auth/drizzle-adapter': - specifier: ^1.11.1 - version: 1.11.1 + specifier: 'catalog:' + version: 1.11.2 '@homarr/common': specifier: workspace:^0.1.0 version: link:../common @@ -709,29 +1282,29 @@ importers: specifier: workspace:^0.1.0 version: link:../validation bcrypt: - specifier: ^6.0.0 + specifier: 'catalog:' version: 6.0.0 cookies: - specifier: ^0.9.1 + specifier: 'catalog:' version: 0.9.1 ldapts: - specifier: 8.1.3 - version: 8.1.3 + specifier: 'catalog:' + version: 8.1.7 next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) next-auth: - specifier: 5.0.0-beta.30 - version: 5.0.0-beta.30(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3) + specifier: 'catalog:' + version: 5.0.0-beta.31(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0))(react@19.2.6) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -743,19 +1316,19 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/bcrypt': - specifier: 6.0.0 + specifier: 'catalog:' version: 6.0.0 '@types/cookies': - specifier: 0.9.2 + specifier: 'catalog:' version: 0.9.2 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: 'catalog:' + version: 3.8.3 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/boards: @@ -764,11 +1337,11 @@ importers: specifier: workspace:^0.1.0 version: link:../api react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -780,17 +1353,17 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/cli: dependencies: '@drizzle-team/brocli': - specifier: ^0.11.0 - version: 0.11.0 + specifier: 'catalog:' + version: 0.12.0 '@homarr/auth': specifier: workspace:^0.1.0 version: link:../auth @@ -804,8 +1377,8 @@ importers: specifier: workspace:^0.1.0 version: link:../validation dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: 'catalog:' + version: 17.4.2 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -817,13 +1390,13 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript esbuild: - specifier: ^0.27.2 - version: 0.27.2 + specifier: 'catalog:' + version: 0.28.0 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/common: @@ -832,32 +1405,35 @@ importers: specifier: workspace:^0.1.0 version: link:../core '@paralleldrive/cuid2': - specifier: ^3.1.0 - version: 3.1.0 + specifier: 'catalog:' + version: 3.3.0 + cookie: + specifier: 'catalog:' + version: 1.1.1 dayjs: - specifier: ^1.11.19 - version: 1.11.19 + specifier: 'catalog:' + version: 1.11.20 next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) octokit: - specifier: ^5.0.5 + specifier: 'catalog:' version: 5.0.5 react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) undici: - specifier: 7.18.2 - version: 7.18.2 + specifier: 'catalog:' + version: 7.24.6 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 zod-validation-error: - specifier: ^5.0.0 - version: 5.0.0(zod@4.2.1) + specifier: 'catalog:' + version: 5.0.0(zod@4.4.3) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -869,44 +1445,44 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/core: dependencies: '@t3-oss/env-nextjs': - specifier: ^0.13.10 - version: 0.13.10(arktype@2.1.20)(typescript@5.9.3)(zod@4.2.1) + specifier: 'catalog:' + version: 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.4.3) better-sqlite3: - specifier: ^12.5.0 - version: 12.5.0 + specifier: 'catalog:' + version: 12.10.0 dns-caching: - specifier: ^0.2.9 + specifier: 'catalog:' version: 0.2.9 drizzle-orm: - specifier: ^0.45.1 - version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(gel@2.0.0)(mysql2@3.16.0)(pg@8.16.3) + specifier: 'catalog:' + version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0) ioredis: - specifier: 5.9.1 - version: 5.9.1 + specifier: 'catalog:' + version: 5.10.1 mysql2: - specifier: 3.16.0 - version: 3.16.0 + specifier: 'catalog:' + version: 3.22.3(@types/node@24.12.4) pg: - specifier: ^8.16.3 - version: 8.16.3 + specifier: 'catalog:' + version: 8.20.0 superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 winston: - specifier: 3.19.0 + specifier: 'catalog:' version: 3.19.0 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -918,71 +1494,16 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/better-sqlite3': - specifier: 7.6.13 + specifier: 'catalog:' version: 7.6.13 '@types/pg': - specifier: ^8.16.0 - version: 8.16.0 + specifier: 'catalog:' + version: 8.20.0 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 - version: 5.9.3 - - packages/cron-job-api: - dependencies: - '@homarr/common': - specifier: workspace:^0.1.0 - version: link:../common - '@homarr/core': - specifier: workspace:^0.1.0 - version: link:../core - '@homarr/cron-jobs': - specifier: workspace:^0.1.0 - version: link:../cron-jobs - '@tanstack/react-query': - specifier: ^5.90.16 - version: 5.90.16(react@19.2.3) - '@trpc/client': - specifier: ^11.8.1 - version: 11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': - specifier: ^11.8.1 - version: 11.8.1(typescript@5.9.3) - '@trpc/tanstack-react-query': - specifier: ^11.8.1 - version: 11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - node-cron: - specifier: ^4.2.1 - version: 4.2.1 - react: - specifier: 19.2.3 - version: 19.2.3 - zod: - specifier: ^4.2.1 - version: 4.2.1 - devDependencies: - '@homarr/eslint-config': - specifier: workspace:^0.2.0 - version: link:../../tooling/eslint - '@homarr/prettier-config': - specifier: workspace:^0.1.0 - version: link:../../tooling/prettier - '@homarr/tsconfig': - specifier: workspace:^0.1.0 - version: link:../../tooling/typescript - '@types/node-cron': - specifier: ^3.0.11 - version: 3.0.11 - '@types/react': - specifier: 19.2.8 - version: 19.2.8 - eslint: - specifier: ^9.39.2 - version: 9.39.2 - typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/cron-job-status: @@ -1001,10 +1522,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/cron-jobs: @@ -1058,8 +1579,11 @@ importers: specifier: workspace:^0.1.0 version: link:../validation semver-parser: - specifier: ^4.1.8 + specifier: 'catalog:' version: 4.1.8 + zod: + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1071,10 +1595,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/cron-jobs-core: @@ -1088,9 +1612,9 @@ importers: '@homarr/db': specifier: workspace:^0.1.0 version: link:../db - node-cron: - specifier: ^4.2.1 - version: 4.2.1 + croner: + specifier: 'catalog:' + version: 10.0.1 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1101,21 +1625,18 @@ importers: '@homarr/tsconfig': specifier: workspace:^0.1.0 version: link:../../tooling/typescript - '@types/node-cron': - specifier: ^3.0.11 - version: 3.0.11 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/db: dependencies: '@auth/core': - specifier: ^0.41.1 - version: 0.41.1 + specifier: 'catalog:' + version: 0.41.2 '@homarr/common': specifier: workspace:^0.1.0 version: link:../common @@ -1129,40 +1650,40 @@ importers: specifier: workspace:^0.1.0 version: link:../server-settings '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@paralleldrive/cuid2': - specifier: ^3.1.0 - version: 3.1.0 + specifier: 'catalog:' + version: 3.3.0 '@testcontainers/mysql': - specifier: ^11.11.0 - version: 11.11.0 + specifier: 'catalog:' + version: 11.14.0 '@testcontainers/postgresql': - specifier: ^11.11.0 - version: 11.11.0 + specifier: 'catalog:' + version: 11.14.0 better-sqlite3: - specifier: ^12.5.0 - version: 12.5.0 + specifier: 'catalog:' + version: 12.10.0 dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: 'catalog:' + version: 17.4.2 drizzle-kit: - specifier: ^0.31.8 - version: 0.31.8 + specifier: 'catalog:' + version: 0.31.10 drizzle-orm: - specifier: ^0.45.1 - version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(gel@2.0.0)(mysql2@3.16.0)(pg@8.16.3) + specifier: 'catalog:' + version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0) drizzle-zod: - specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(gel@2.0.0)(mysql2@3.16.0)(pg@8.16.3))(zod@4.2.1) + specifier: 'catalog:' + version: 0.8.3(drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0))(zod@4.4.3) mysql2: - specifier: 3.16.0 - version: 3.16.0 + specifier: 'catalog:' + version: 3.22.3(@types/node@24.12.4) pg: - specifier: ^8.16.3 - version: 8.16.3 + specifier: 'catalog:' + version: 8.20.0 superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 devDependencies: '@homarr/eslint-config': @@ -1175,28 +1696,28 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/better-sqlite3': - specifier: 7.6.13 + specifier: 'catalog:' version: 7.6.13 '@types/pg': - specifier: ^8.16.0 - version: 8.16.0 + specifier: 'catalog:' + version: 8.20.0 dotenv-cli: - specifier: ^11.0.0 + specifier: 'catalog:' version: 11.0.0 esbuild: - specifier: ^0.27.2 - version: 0.27.2 + specifier: 'catalog:' + version: 0.28.0 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: 'catalog:' + version: 3.8.3 tsx: - specifier: 4.20.4 + specifier: 'catalog:' version: 4.20.4 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/definitions: @@ -1205,11 +1726,11 @@ importers: specifier: workspace:^0.1.0 version: link:../common fast-xml-parser: - specifier: ^5.3.3 - version: 5.3.3 + specifier: 'catalog:' + version: 5.8.0 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1221,13 +1742,13 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 tsx: - specifier: 4.20.4 + specifier: 'catalog:' version: 4.20.4 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/docker: @@ -1239,8 +1760,8 @@ importers: specifier: workspace:^0.1.0 version: link:../core dockerode: - specifier: ^4.0.9 - version: 4.0.9 + specifier: 'catalog:' + version: 5.0.0 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1252,13 +1773,13 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/dockerode': - specifier: ^3.3.47 - version: 3.3.47 + specifier: 'catalog:' + version: 4.0.1 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/form: @@ -1273,14 +1794,14 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/form': - specifier: ^8.3.12 - version: 8.3.12(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(react@19.2.6) mantine-form-zod-resolver: - specifier: ^1.3.0 - version: 1.3.0(@mantine/form@8.3.12(react@19.2.3))(zod@4.2.1) + specifier: 'catalog:' + version: 1.3.0(@mantine/form@8.3.18(react@19.2.6))(zod@4.4.3) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1292,10 +1813,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/forms-collection: @@ -1325,14 +1846,14 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1344,10 +1865,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/icons: @@ -1372,10 +1893,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/image-proxy: @@ -1390,7 +1911,7 @@ importers: specifier: workspace:^0.1.0 version: link:../redis bcrypt: - specifier: ^6.0.0 + specifier: 'catalog:' version: 6.0.0 devDependencies: '@homarr/eslint-config': @@ -1403,28 +1924,28 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/bcrypt': - specifier: 6.0.0 + specifier: 'catalog:' version: 6.0.0 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/integrations: dependencies: '@ctrl/deluge': - specifier: ^7.5.0 - version: 7.5.0 + specifier: 'catalog:' + version: 8.0.0 '@ctrl/qbittorrent': - specifier: ^9.11.0 - version: 9.11.0 + specifier: 'catalog:' + version: 9.12.1 '@ctrl/transmission': - specifier: ^7.4.0 + specifier: 'catalog:' version: 7.4.0 '@gitbeaker/rest': - specifier: ^43.8.0 + specifier: 'catalog:' version: 43.8.0 '@homarr/common': specifier: workspace:^0.1.0 @@ -1442,8 +1963,8 @@ importers: specifier: workspace:^0.1.0 version: link:../image-proxy '@homarr/node-unifi': - specifier: ^2.6.0 - version: 2.6.0(undici@7.18.2) + specifier: 'catalog:' + version: 2.6.0(undici@7.24.6) '@homarr/redis': specifier: workspace:^0.1.0 version: link:../redis @@ -1453,39 +1974,42 @@ importers: '@homarr/validation': specifier: workspace:^0.1.0 version: link:../validation + '@immich/sdk': + specifier: 'catalog:' + version: 2.7.5 '@jellyfin/sdk': - specifier: ^0.13.0 - version: 0.13.0(axios@1.12.2) + specifier: 'catalog:' + version: 0.13.0(axios@1.15.0) '@octokit/auth-app': - specifier: ^8.1.2 - version: 8.1.2 + specifier: 'catalog:' + version: 8.2.0 ical.js: - specifier: ^2.2.1 + specifier: 'catalog:' version: 2.2.1 maria2: - specifier: ^0.4.1 + specifier: 'catalog:' version: 0.4.1 - node-ical: - specifier: ^0.22.1 - version: 0.22.1 octokit: - specifier: ^5.0.5 + specifier: 'catalog:' version: 5.0.5 proxmox-api: - specifier: 1.1.1 + specifier: 'catalog:' version: 1.1.1 + timezones-ical-library: + specifier: 'catalog:' + version: 2.2.0 tsdav: - specifier: ^2.1.6 - version: 2.1.6 + specifier: 'catalog:' + version: 2.2.2 undici: - specifier: 7.18.2 - version: 7.18.2 + specifier: 'catalog:' + version: 7.24.6 xml2js: - specifier: ^0.6.2 + specifier: 'catalog:' version: 0.6.2 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1497,16 +2021,16 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node-unifi': - specifier: ^2.5.1 + specifier: 'catalog:' version: 2.5.1(patch_hash=5e6ae51e2a17a7f9729bfa30b0eb3d0842a5810ac6db47603ab4a6efa1ed84c5) '@types/xml2js': - specifier: ^0.4.14 + specifier: 'catalog:' version: 0.4.14 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/modals: @@ -1518,14 +2042,14 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/hooks': - specifier: ^8.3.12 - version: 8.3.12(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(react@19.2.6) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1537,10 +2061,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/modals-collection: @@ -1579,26 +2103,26 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tabler/icons-react': - specifier: ^3.36.1 - version: 3.36.1(react@19.2.3) + specifier: 'catalog:' + version: 3.44.0(react@19.2.6) dayjs: - specifier: ^1.11.19 - version: 1.11.19 + specifier: 'catalog:' + version: 1.11.20 next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1610,10 +2134,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/notifications: @@ -1622,11 +2146,11 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/notifications': - specifier: ^8.3.12 - version: 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tabler/icons-react': - specifier: ^3.36.1 - version: 3.36.1(react@19.2.3) + specifier: 'catalog:' + version: 3.44.0(react@19.2.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1638,10 +2162,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/old-import: @@ -1680,32 +2204,32 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/hooks': - specifier: ^8.3.12 - version: 8.3.12(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(react@19.2.6) adm-zip: - specifier: 0.5.16 - version: 0.5.16 + specifier: 'catalog:' + version: 0.5.17 next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 zod-form-data: - specifier: ^3.0.1 - version: 3.0.1(zod@4.2.1) + specifier: 'catalog:' + version: 3.0.1(zod@4.4.3) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1717,13 +2241,13 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/adm-zip': - specifier: 0.5.7 - version: 0.5.7 + specifier: 'catalog:' + version: 0.5.8 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/old-schema: @@ -1732,8 +2256,8 @@ importers: specifier: workspace:^0.1.0 version: link:../common zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1745,10 +2269,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/ping: @@ -1770,10 +2294,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/redis: @@ -1791,10 +2315,10 @@ importers: specifier: workspace:^ version: link:../definitions ioredis: - specifier: 5.9.1 - version: 5.9.1 + specifier: 'catalog:' + version: 5.10.1 superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 devDependencies: '@homarr/eslint-config': @@ -1807,17 +2331,17 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/request-handler: dependencies: '@extractus/feed-extractor': - specifier: 7.1.7 - version: 7.1.7 + specifier: 'catalog:' + version: 7.2.1 '@homarr/common': specifier: workspace:^0.1.0 version: link:../common @@ -1840,20 +2364,20 @@ importers: specifier: workspace:^0.1.0 version: link:../redis dayjs: - specifier: ^1.11.19 - version: 1.11.19 + specifier: 'catalog:' + version: 1.11.20 octokit: - specifier: ^5.0.5 + specifier: 'catalog:' version: 5.0.5 superjson: - specifier: 2.2.6 + specifier: 'catalog:' version: 2.2.6 undici: - specifier: 7.18.2 - version: 7.18.2 + specifier: 'catalog:' + version: 7.24.6 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1865,10 +2389,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/server-settings: @@ -1890,10 +2414,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/settings: @@ -1905,17 +2429,17 @@ importers: specifier: workspace:^0.1.0 version: link:../server-settings '@mantine/dates': - specifier: ^8.3.12 - version: 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1927,10 +2451,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/spotlight: @@ -1966,32 +2490,32 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/hooks': - specifier: ^8.3.12 - version: 8.3.12(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(react@19.2.6) '@mantine/spotlight': - specifier: ^8.3.12 - version: 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tabler/icons-react': - specifier: ^3.36.1 - version: 3.36.1(react@19.2.3) + specifier: 'catalog:' + version: 3.44.0(react@19.2.6) jotai: - specifier: ^2.16.1 - version: 2.16.1(@babel/core@7.28.5)(@babel/template@7.27.2)(@types/react@19.2.8)(react@19.2.3) + specifier: 'catalog:' + version: 2.20.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.6) next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) use-deep-compare-effect: - specifier: ^1.8.1 - version: 1.8.1(react@19.2.3) + specifier: 'catalog:' + version: 1.8.1(react@19.2.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2003,10 +2527,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/translation: @@ -2018,26 +2542,26 @@ importers: specifier: workspace:^0.1.0 version: link:../definitions dayjs: - specifier: ^1.11.19 - version: 1.11.19 + specifier: 'catalog:' + version: 1.11.20 deepmerge: - specifier: 4.3.1 + specifier: 'catalog:' version: 4.3.1 mantine-react-table: - specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/dates@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(@tabler/icons-react@3.36.1(react@19.2.3))(clsx@2.1.1)(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(@tabler/icons-react@3.44.0(react@19.2.6))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) next-intl: - specifier: 4.7.0 - version: 4.7.0(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3)(typescript@5.9.3) + specifier: 'catalog:' + version: 4.12.0(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0))(react@19.2.6)(typescript@5.9.3) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2049,10 +2573,10 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/ui: @@ -2073,34 +2597,34 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/dates': - specifier: ^8.3.12 - version: 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/hooks': - specifier: ^8.3.12 - version: 8.3.12(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(react@19.2.6) '@tabler/icons-react': - specifier: ^3.36.1 - version: 3.36.1(react@19.2.3) + specifier: 'catalog:' + version: 3.44.0(react@19.2.6) crypto-js: - specifier: ^4.2.0 + specifier: 'catalog:' version: 4.2.0 mantine-react-table: - specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/dates@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(@tabler/icons-react@3.36.1(react@19.2.3))(clsx@2.1.1)(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(@tabler/icons-react@3.44.0(react@19.2.6))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) svgson: - specifier: ^5.3.1 + specifier: 'catalog:' version: 5.3.1 devDependencies: '@homarr/eslint-config': @@ -2113,16 +2637,16 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/crypto-js': - specifier: ^4.2.2 + specifier: 'catalog:' version: 4.2.2 '@types/css-modules': - specifier: ^1.0.5 + specifier: 'catalog:' version: 1.0.5 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/validation: @@ -2134,11 +2658,11 @@ importers: specifier: workspace:^0.1.0 version: link:../translation zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 zod-form-data: - specifier: ^3.0.1 - version: 3.0.1(zod@4.2.1) + specifier: 'catalog:' + version: 3.0.1(zod@4.4.3) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2150,20 +2674,20 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 packages/widgets: dependencies: '@dnd-kit/core': - specifier: ^6.3.1 - version: 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@dnd-kit/sortable': - specifier: ^10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) '@homarr/api': specifier: workspace:^0.1.0 version: link:../api @@ -2228,98 +2752,101 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/charts': - specifier: ^8.3.12 - version: 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(recharts@2.15.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + specifier: 'catalog:' + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react-is@19.2.6)(react@19.2.6)(redux@5.0.1)) '@mantine/core': - specifier: ^8.3.12 - version: 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/hooks': - specifier: ^8.3.12 - version: 8.3.12(react@19.2.3) + specifier: 'catalog:' + version: 8.3.18(react@19.2.6) '@tabler/icons-react': - specifier: ^3.36.1 - version: 3.36.1(react@19.2.3) + specifier: 'catalog:' + version: 3.44.0(react@19.2.6) '@tiptap/extension-color': - specifier: 3.15.3 - version: 3.15.3(@tiptap/extension-text-style@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))) + specifier: 'catalog:' + version: 3.23.4(@tiptap/extension-text-style@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))) '@tiptap/extension-highlight': - specifier: 3.15.3 - version: 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/extension-image': - specifier: 3.15.3 - version: 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/extension-link': - specifier: ^3.15.3 - version: 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + specifier: 'catalog:' + version: 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) '@tiptap/extension-placeholder': - specifier: ^3.15.3 - version: 3.15.3(@tiptap/extensions@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-table': - specifier: 3.15.3 - version: 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + specifier: 'catalog:' + version: 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) '@tiptap/extension-table-cell': - specifier: 3.15.3 - version: 3.15.3(@tiptap/extension-table@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/extension-table@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-table-header': - specifier: 3.15.3 - version: 3.15.3(@tiptap/extension-table@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/extension-table@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-table-row': - specifier: 3.15.3 - version: 3.15.3(@tiptap/extension-table@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/extension-table@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-task-item': - specifier: 3.15.3 - version: 3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-task-list': - specifier: 3.15.3 - version: 3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-text-align': - specifier: 3.15.3 - version: 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/extension-text-style': - specifier: 3.15.3 - version: 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/extension-underline': - specifier: 3.15.3 - version: 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) + specifier: 'catalog:' + version: 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/react': - specifier: ^3.15.3 - version: 3.15.3(@floating-ui/dom@1.7.4)(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tiptap/starter-kit': - specifier: ^3.15.3 - version: 3.15.3 + specifier: 'catalog:' + version: 3.23.4 clsx: - specifier: ^2.1.1 + specifier: 'catalog:' version: 2.1.1 dayjs: - specifier: ^1.11.19 - version: 1.11.19 + specifier: 'catalog:' + version: 1.11.20 mantine-form-zod-resolver: - specifier: ^1.3.0 - version: 1.3.0(@mantine/form@8.3.12(react@19.2.3))(zod@4.2.1) + specifier: 'catalog:' + version: 1.3.0(@mantine/form@8.3.18(react@19.2.6))(zod@4.4.3) mantine-react-table: - specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/dates@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(@tabler/icons-react@3.36.1(react@19.2.3))(clsx@2.1.1)(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(@tabler/icons-react@3.44.0(react@19.2.6))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + specifier: 'catalog:' + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 'catalog:' + version: 19.2.6 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 'catalog:' + version: 19.2.6(react@19.2.6) react-markdown: - specifier: ^10.1.0 - version: 10.1.0(@types/react@19.2.8)(react@19.2.3) + specifier: 'catalog:' + version: 10.1.0(@types/react@19.2.14)(react@19.2.6) + react-quill-new: + specifier: 'catalog:' + version: 3.8.3(quill-delta@5.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) recharts: - specifier: ^2.15.4 - version: 2.15.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 'catalog:' + version: 3.8.1(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react-is@19.2.6)(react@19.2.6)(redux@5.0.1) video.js: - specifier: ^8.23.4 - version: 8.23.4 + specifier: 'catalog:' + version: 8.23.7 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.4.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2331,42 +2858,45 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/video.js': - specifier: ^7.3.58 + specifier: 'catalog:' version: 7.3.58 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 tooling/eslint: dependencies: '@next/eslint-plugin-next': - specifier: 16.1.1 - version: 16.1.1 + specifier: 'catalog:' + version: 16.2.6 eslint-config-prettier: - specifier: ^10.1.8 - version: 10.1.8(eslint@9.39.2) + specifier: 'catalog:' + version: 10.1.8(eslint@10.4.0) eslint-config-turbo: - specifier: ^2.7.3 - version: 2.7.3(eslint@9.39.2)(turbo@2.7.3) + specifier: 'catalog:' + version: 2.9.14(eslint@10.4.0)(turbo@2.9.14) eslint-plugin-import: - specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2) + specifier: 'catalog:' + version: 2.32.0(@typescript-eslint/parser@8.58.2(eslint@10.4.0)(typescript@5.9.3))(eslint@10.4.0) eslint-plugin-jsx-a11y: - specifier: ^6.10.2 - version: 6.10.2(eslint@9.39.2) + specifier: 'catalog:' + version: 6.10.2(eslint@10.4.0) eslint-plugin-react: - specifier: ^7.37.5 - version: 7.37.5(eslint@9.39.2) + specifier: 'catalog:' + version: 7.37.5(eslint@10.4.0) eslint-plugin-react-hooks: - specifier: ^6.1.1 - version: 6.1.1(eslint@9.39.2) + specifier: 'catalog:' + version: 6.1.1(eslint@10.4.0) typescript-eslint: - specifier: ^8.52.0 - version: 8.52.0(eslint@9.39.2)(typescript@5.9.3) + specifier: 'catalog:' + version: 8.58.2(eslint@10.4.0)(typescript@5.9.3) devDependencies: + '@eslint/js': + specifier: 'catalog:' + version: 10.0.1(eslint@10.4.0) '@homarr/prettier-config': specifier: workspace:^0.1.0 version: link:../prettier @@ -2374,10 +2904,10 @@ importers: specifier: workspace:^0.1.0 version: link:../typescript eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: 'catalog:' + version: 10.4.0 typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 tooling/github: {} @@ -2385,48 +2915,37 @@ importers: tooling/prettier: dependencies: '@ianvs/prettier-plugin-sort-imports': - specifier: ^4.7.0 - version: 4.7.0(prettier@3.7.4) + specifier: 'catalog:' + version: 4.7.1(prettier@3.8.3) prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: 'catalog:' + version: 3.8.3 devDependencies: '@homarr/tsconfig': specifier: workspace:^0.1.0 version: link:../typescript prettier-plugin-packagejson: - specifier: ^2.5.20 - version: 2.5.20(prettier@3.7.4) + specifier: 'catalog:' + version: 3.0.2(prettier@3.8.3) typescript: - specifier: ^5.9.3 + specifier: 'catalog:' version: 5.9.3 tooling/typescript: {} packages: - '@acemir/cssom@0.9.28': - resolution: {integrity: sha512-LuS6IVEivI75vKN8S04qRD+YySP0RmU/cV8UNukhQZvprxF+76Z43TNo/a08eCodaGhT1Us8etqS1ZRY9/Or0A==} + '@actions/core@3.0.0': + resolution: {integrity: sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==} - '@actions/core@2.0.1': - resolution: {integrity: sha512-oBfqT3GwkvLlo1fjvhQLQxuwZCGTarTE5OuZ2Wg10hvhBj7LRIlF611WT4aZS6fDhO5ZKlY7lCAZTlpmyaHaeg==} + '@actions/exec@3.0.0': + resolution: {integrity: sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==} - '@actions/exec@2.0.0': - resolution: {integrity: sha512-k8ngrX2voJ/RIN6r9xB82NVqKpnMRtxDoiO+g3olkIUpQNqjArXrCQceduQZCQj3P3xm32pChRLqRrtXTlqhIw==} + '@actions/http-client@4.0.0': + resolution: {integrity: sha512-QuwPsgVMsD6qaPD57GLZi9sqzAZCtiJT8kVBCDpLtxhL5MydQ4gS+DrejtZZPdIYyB1e95uCK9Luyds7ybHI3g==} - '@actions/http-client@3.0.0': - resolution: {integrity: sha512-1s3tXAfVMSz9a4ZEBkXXRQD4QhY3+GAsWSbaYpeknPOKEeyRiU3lH+bHiLMZdo2x/fIeQ/hscL1wCkDLVM2DZQ==} - - '@actions/io@2.0.0': - resolution: {integrity: sha512-Jv33IN09XLO+0HS79aaODsvIRyduiF7NY/F6LYeK5oeUmrsz7aFdRphQjFoESF4jS7lMauDOttKALcpapVDIAg==} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@antfu/ni@0.21.12': - resolution: {integrity: sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==} - hasBin: true + '@actions/io@3.0.2': + resolution: {integrity: sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==} '@ark/schema@0.46.0': resolution: {integrity: sha512-c2UQdKgP2eqqDArfBqQIJppxJHvNNXuQPeuSPlDML4rjw+f1cu0qAlzOG4b8ujgm9ctIDWwhpyw6gjG5ledIVQ==} @@ -2434,31 +2953,23 @@ packages: '@ark/util@0.46.0': resolution: {integrity: sha512-JPy/NGWn/lvf1WmGCPw2VGpBg5utZraE84I7wli18EDF3p3zc/e9WolT35tINeZO3l7C77SjqRJeAUoT0CvMRg==} - '@asamuzakjp/css-color@4.1.0': - resolution: {integrity: sha512-9xiBAtLn4aNsa4mDnpovJvBn72tNEIACyvlqaNJ+ADemR+yeMJWnBudOi2qGDviJa7SwcDOU/TRh5dnET7qk0w==} + '@asamuzakjp/css-color@5.1.11': + resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@asamuzakjp/dom-selector@6.7.6': - resolution: {integrity: sha512-hBaJER6A9MpdG3WgdlOolHmbOYvSk46y7IQN/1+iqiCuUu6iWdQrs9DGKF8ocqsEqWujWf/V7b7vaDgiUmIvUg==} + '@asamuzakjp/dom-selector@7.1.1': + resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + + '@asamuzakjp/generational-cache@1.0.1': + resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - '@auth/core@0.41.0': - resolution: {integrity: sha512-Wd7mHPQ/8zy6Qj7f4T46vg3aoor8fskJm6g2Zyj064oQ3+p0xNZXAV60ww0hY+MbTesfu29kK14Zk5d5JTazXQ==} - peerDependencies: - '@simplewebauthn/browser': ^9.0.1 - '@simplewebauthn/server': ^9.0.2 - nodemailer: ^6.8.0 - peerDependenciesMeta: - '@simplewebauthn/browser': - optional: true - '@simplewebauthn/server': - optional: true - nodemailer: - optional: true - - '@auth/core@0.41.1': - resolution: {integrity: sha512-t9cJ2zNYAdWMacGRMT6+r4xr1uybIdmYa49calBPeTqwgAFPV/88ac9TEvCR85pvATiSPt8VaNf+Gt24JIT/uw==} + '@auth/core@0.41.2': + resolution: {integrity: sha512-Hx5MNBxN2fJTbJKGUKAA0wca43D0Akl3TvufY54Gn8lop7F+34vU1zA1pn0vQfIoVuLIrpfc2nkyjwIaPJMW7w==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 @@ -2471,81 +2982,39 @@ packages: nodemailer: optional: true - '@auth/drizzle-adapter@1.11.1': - resolution: {integrity: sha512-cQTvDZqsyF7RPhDm/B6SvqdVP9EzQhy3oM4Muu7fjjmSYFLbSR203E6dH631ZHSKDn2b4WZkfMnjPDzRsPSAeA==} + '@auth/drizzle-adapter@1.11.2': + resolution: {integrity: sha512-VOuj7REI8jfJjpSbsYwDM/Zrn55T6lS9Yc+29V+EXMcel8eqG7x+7LodNfd1WHjakfkLYi+qsbYUHB3E6aDA4w==} - '@axiomhq/js@1.0.0-rc.3': - resolution: {integrity: sha512-Zm10TczcMLounWqC42nMkXQ7XKLqjzLrd5ia022oBKDUZqAFVg2y9d1quQVNV4FlXyg9MKDdfMjpKQRmzEGaog==} - engines: {node: '>=16'} - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.2': - resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.5': - resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} + '@babel/generator@7.29.0': + resolution: {integrity: sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.28.4': - resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.28.5': - resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.26.2': - resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.28.3': - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.28.5': - resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} '@babel/helper-globals@7.28.0': resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2554,55 +3023,24 @@ packages: resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.4': - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + '@babel/helpers@7.29.2': + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.28.4': - resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + '@babel/parser@7.29.2': + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} engines: {node: '>=6.0.0'} hasBin: true @@ -2622,48 +3060,20 @@ packages: resolution: {integrity: sha512-909rVuj3phpjW6y0MCXAZ5iNeORePa6ldJvp2baWGcTjwqbBDDz6xoS5JHJ7lS88NlwLYj07ImL/8IUMtDZzTA==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + '@babel/runtime@7.29.2': + resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.9': - resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.28.3': - resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.28.4': - resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.28.5': - resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.4': - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} '@balena/dockerignore@1.0.2': @@ -2673,16 +3083,9 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@clack/core@0.3.5': - resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} - - '@clack/prompts@0.7.0': - resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} - bundledDependencies: - - is-unicode-supported - - '@clack/prompts@0.8.2': - resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} + '@bramus/specificity@2.4.2': + resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} + hasBin: true '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -2692,75 +3095,63 @@ packages: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + '@csstools/color-helpers@6.0.2': + resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + engines: {node: '>=20.19.0'} - '@csstools/color-helpers@5.1.0': - resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} - engines: {node: '>=18'} - - '@csstools/css-calc@2.1.4': - resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} - engines: {node: '>=18'} + '@csstools/css-calc@3.2.0': + resolution: {integrity: sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==} + engines: {node: '>=20.19.0'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@3.1.0': - resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} - engines: {node: '>=18'} + '@csstools/css-color-parser@4.1.0': + resolution: {integrity: sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==} + engines: {node: '>=20.19.0'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-parser-algorithms@3.0.5': - resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} - engines: {node: '>=18'} + '@csstools/css-parser-algorithms@4.0.0': + resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} + engines: {node: '>=20.19.0'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.0.14': - resolution: {integrity: sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==} - engines: {node: '>=18'} + '@csstools/css-syntax-patches-for-csstree@1.1.3': + resolution: {integrity: sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==} peerDependencies: - postcss: ^8.4 + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true - '@csstools/css-tokenizer@3.0.4': - resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + '@csstools/css-tokenizer@4.0.0': + resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} + engines: {node: '>=20.19.0'} + + '@ctrl/deluge@8.0.0': + resolution: {integrity: sha512-KKDJpB9gLCwjNsJCbUS0bn9SHMzDILyHrqM2i2ieQjTlVaSjTUDB/cn2RSdSXwy4DLug40yalFRnxoAv1+Tj+Q==} engines: {node: '>=18'} - '@ctrl/deluge@7.5.0': - resolution: {integrity: sha512-pdJEZBhyoJsPVLuGv4LPHLOdADxuVrEeI02p2tak2CZQF/tH/B0B+PMTIPBRX4knvJM52rZykHhHxHbHFlVXOQ==} + '@ctrl/magnet-link@4.3.0': + resolution: {integrity: sha512-fEfw3AeQ8XhVsNzogZrnyTNDD/Tpbfl3ybHsspBMvj0UKctabApv1JV3JJUQG/hoX6hiO+DtQS+acN7dMPX01g==} + engines: {node: '>20'} + + '@ctrl/qbittorrent@9.12.1': + resolution: {integrity: sha512-6rSTWPV0UwehqLCyBLh9Avw5FPA1nh8SO+aTxrEXu6okZPjz+3tn7EGZdLhOfy+6poIc7miX/1g1VAOVo3JSTA==} engines: {node: '>=18'} - '@ctrl/magnet-link@4.0.2': - resolution: {integrity: sha512-wENP7LH4BmCjz+gXVq7Nzz20zMjY/huuG7aDk/yu/LhFdC84e/l8222rCIAo0lwhU451lFcJKLcOmtG6TNrBAQ==} - engines: {node: '>=18'} - - '@ctrl/magnet-link@4.2.0': - resolution: {integrity: sha512-4pa9hnMWmgoGl+5HJ/B9d5ugIr105AGD3rsTSlE8pTR7d2+xrEhLPCKRp/Y6k/k9Fo6DaJ1FRgwRxdi60vmxtg==} - engines: {node: '>=18'} - - '@ctrl/qbittorrent@9.11.0': - resolution: {integrity: sha512-mltiPLncdpAHrRbd2H8uy9nTgFhk0urcmkHxCDHcJehRvgd6ta2qnhQ2aO0KI8lgNDvHfmiNh4FAx0yoPBz8Xg==} - engines: {node: '>=18'} - - '@ctrl/shared-torrent@6.3.0': - resolution: {integrity: sha512-rhgN/tXQFIh6ujFE5wXVj1hBftb2tLmAYt5CVfxncKtS38AlPAqyiwg2VOWrWpq/gL+eRlP0uWTyt5yEohxIzw==} - engines: {node: '>=18'} + '@ctrl/shared-torrent@6.5.1': + resolution: {integrity: sha512-ZdItYUwzHOu+8s416oRIEwvqDUC3aON4Lv/Ev4H5KxEkbjfkQiaONS/7+jos2+yJWleiXlRdBsoIpZR5Cd1UHQ==} + engines: {node: '>20'} peerDependencies: - ofetch: ^1.4.1 + ofetch: ^1.5.0 - '@ctrl/shared-torrent@6.5.0': - resolution: {integrity: sha512-Wu5XEPLomfmLWUW+UY63yB7g3orZDMgAZVEOYonVJOwajVlMcfT0AkEVtqeOjAhkCC9Q/VKXlHEP9G/xdyW4qA==} - engines: {node: '>=18'} - peerDependencies: - ofetch: ^1.4.1 - - '@ctrl/torrent-file@4.4.0': - resolution: {integrity: sha512-e/AuvVqH6xJxeowZeGD83YtViDDDEtK6LcIrtU7PsxJlDNMvyqPN2wpZsIXYRxPY+NqkiWcpkrpAnHLTPD6dpw==} - engines: {node: '>=18'} + '@ctrl/torrent-file@4.5.0': + resolution: {integrity: sha512-ECzdbioAXLx7E3w/G9wMBz64K7MD5gRH6A2ypDcax+3cDmELdlKQfJIzX7q+if7E2TO+nbcabx76g0su3t01mQ==} + engines: {node: '>20'} '@ctrl/transmission@7.4.0': resolution: {integrity: sha512-Y6+dKaktS33oE/1R2hx+aGU8G35oO+dhOThtUlOm8784eOg/rkXyzwNecPIzp77XuIRXam8sLxO/g+yS7yHSpQ==} @@ -2800,11 +3191,11 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} - '@drizzle-team/brocli@0.11.0': - resolution: {integrity: sha512-hD3pekGiPg0WPCCGAZmusBBJsDqGUR66Y452YgQsZOnkdQ7ViEPKuyP4huUGEZQefp8g34RRodXYmJ2TbCH+tg==} + '@drizzle-team/brocli@0.12.0': + resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==} - '@emnapi/runtime@1.6.0': - resolution: {integrity: sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==} + '@emnapi/runtime@1.9.1': + resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} '@epic-web/invariant@1.0.0': resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} @@ -2823,8 +3214,14 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.2': - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.28.0': + resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -2835,8 +3232,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.2': - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.28.0': + resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -2847,8 +3250,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.2': - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.28.0': + resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -2859,8 +3268,14 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.2': - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.28.0': + resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -2871,8 +3286,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.2': - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.28.0': + resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -2883,8 +3304,14 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.2': - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.0': + resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -2895,8 +3322,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.2': - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.28.0': + resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -2907,8 +3340,14 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.2': - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.28.0': + resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2919,8 +3358,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.2': - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.28.0': + resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2931,8 +3376,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.2': - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.28.0': + resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2943,8 +3394,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.2': - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.28.0': + resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2955,8 +3412,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.2': - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.28.0': + resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2967,8 +3430,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.2': - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.28.0': + resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2979,8 +3448,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.2': - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.28.0': + resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2991,8 +3466,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.2': - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.0': + resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -3003,8 +3484,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.2': - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.28.0': + resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -3015,8 +3502,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.2': - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.28.0': + resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -3027,8 +3520,14 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.2': - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.28.0': + resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -3039,8 +3538,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.2': - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.28.0': + resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -3051,8 +3556,14 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.2': - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.28.0': + resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -3063,8 +3574,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.2': - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.0': + resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -3075,8 +3592,14 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.2': - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/openharmony-arm64@0.28.0': + resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -3087,8 +3610,14 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.2': - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.28.0': + resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -3099,8 +3628,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.2': - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.28.0': + resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -3111,8 +3646,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.2': - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.28.0': + resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -3123,17 +3664,17 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.2': - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@esbuild/win32-x64@0.28.0': + resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} @@ -3141,61 +3682,54 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.12.2': resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.21.1': - resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.4.2': - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.6.0': + resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@0.17.0': - resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.39.2': - resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.4.1': - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@exodus/bytes@1.7.0': - resolution: {integrity: sha512-5i+BtvujK/vM07YCGDyz4C4AyDzLmhxHMtM5HpUyPRtJPBdFPsj290ffXW+UXY21/G7GtXeHD2nRmq0T1ShyQQ==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - '@exodus/crypto': ^1.0.0-rc.4 + eslint: ^10.0.0 peerDependenciesMeta: - '@exodus/crypto': + eslint: optional: true - '@extractus/feed-extractor@7.1.7': - resolution: {integrity: sha512-eNeddvKK9rBxWSHj5zBo6ODihJqJtq+QzEQdVeadkOK48avmdela+c2JAfMcPEBMFaWcAYV4bUMhI9Tqi8mX2Q==} + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/plugin-kit@0.7.1': + resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@exodus/bytes@1.15.0': + resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@noble/hashes': ^1.8.0 || ^2.0.0 + peerDependenciesMeta: + '@noble/hashes': + optional: true + + '@extractus/feed-extractor@7.2.1': + resolution: {integrity: sha512-vc84NZST31wLDTesAkmHL8GBxSB2zw2/h9ZKiQMB71az13sC65EeAcDeLJ2z3atsIhtxESnCMaKmQdOrFiFLcg==} engines: {node: '>= 20'} - '@fastify/ajv-compiler@4.0.2': - resolution: {integrity: sha512-Rkiu/8wIjpsf46Rr+Fitd3HRP+VsxUFDDeag0hs9L0ksfnwx2g7SPQQTFL0E8Qv+rfXzQOxBJnjUB9ITUDjfWQ==} - - '@fastify/busboy@2.1.1': - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} + '@fastify/ajv-compiler@4.0.5': + resolution: {integrity: sha512-KoWKW+MhvfTRWL4qrhUwAAZoaChluo0m0vbiJlGMt2GXvL4LVPQEjt8kSpHI3IBq5Rez8fg+XeH3cneztq+C7A==} '@fastify/error@4.2.0': resolution: {integrity: sha512-RSo3sVDXfHskiBZKBPRgnQTtIqpi/7zhJOEmAxCiBcM7d0uwdGdxLlsCaLzGs8v8NnxIRlfG0N51p5yFaOentQ==} @@ -3203,14 +3737,14 @@ packages: '@fastify/fast-json-stringify-compiler@5.0.3': resolution: {integrity: sha512-uik7yYHkLr6fxd8hJSZ8c+xF4WafPK+XzneQDPU+D10r5X19GW8lJcom2YijX2+qtFF1ENJlHXKFM9ouXNJYgQ==} - '@fastify/forwarded@3.0.0': - resolution: {integrity: sha512-kJExsp4JCms7ipzg7SJ3y8DwmePaELHxKYtg+tZow+k0znUTf3cb+npgyqm8+ATZOdmfgfydIebPDWM172wfyA==} + '@fastify/forwarded@3.0.1': + resolution: {integrity: sha512-JqDochHFqXs3C3Ml3gOY58zM7OqO9ENqPo0UqAjAjH8L01fRZqwX9iLeX34//kiJubF7r2ZQHtBRU36vONbLlw==} '@fastify/merge-json-schemas@0.2.1': resolution: {integrity: sha512-OA3KGBCy6KtIvLf8DINC5880o5iBlDX4SxzLQS8HorJAbqluzLRn80UXU0bxZn7UOFhFgpRJDasfwn9nG4FG4A==} - '@fastify/proxy-addr@5.0.0': - resolution: {integrity: sha512-37qVVA1qZ5sgH7KpHkkC4z9SK6StIsIcOmpjvMPXNb3vx2GQxhZocogVYbr2PbbeLCQxYIPDok307xEvRZOzGA==} + '@fastify/proxy-addr@5.1.0': + resolution: {integrity: sha512-INS+6gh91cLUjB+PVHfu1UqcB76Sqtpyp7bnL+FYojhjygvOPA9ctiD/JDKsyD9Xgu4hUhCSJBPig/w7duNajw==} '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} @@ -3233,20 +3767,23 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@formatjs/ecma402-abstract@2.2.0': - resolution: {integrity: sha512-IpM+ev1E4QLtstniOE29W1rqH9eTdx5hQdNL8pzrflMj/gogfaoONZqL83LUeQScHAvyMbpqP5C9MzNf+fFwhQ==} + '@formatjs/ecma402-abstract@3.1.0': + resolution: {integrity: sha512-CjP1sUzM7XiQW6YluDreN+dMvcKZysO/J4ikvuDjDyd6nSOoSqAK9gvD1s75ZFaJVXtYOsz+y3CUXPZ1sKxcxw==} - '@formatjs/fast-memoize@2.2.1': - resolution: {integrity: sha512-XS2RcOSyWxmUB7BUjj3mlPH0exsUzlf6QfhhijgI941WaJhVxXQ6mEWkdUFIdnKi3TuTYxRdelsgv3mjieIGIA==} + '@formatjs/fast-memoize@3.1.0': + resolution: {integrity: sha512-b5mvSWCI+XVKiz5WhnBCY3RJ4ZwfjAidU0yVlKa3d3MSgKmH1hC3tBGEAtYyN5mqL7N0G5x0BOUYyO8CEupWgg==} - '@formatjs/icu-messageformat-parser@2.8.0': - resolution: {integrity: sha512-r2un3fmF9oJv3mOkH+wwQZ037VpqmdfahbcCZ9Lh+p6Sx+sNsonI7Zcr6jNMm1s+Si7ejQORS4Ezlh05mMPAXA==} + '@formatjs/icu-messageformat-parser@3.5.0': + resolution: {integrity: sha512-Q01XuvtbDVCJQsG/E2MSfMZ+UdUoZV8v4Aex8tTH44SqKJZCeu5LjuclaKFUS0o1YoXndfEinJen5k1T1GR1vg==} - '@formatjs/icu-skeleton-parser@1.8.4': - resolution: {integrity: sha512-LMQ1+Wk1QSzU4zpd5aSu7+w5oeYhupRwZnMQckLPRYhSjf2/8JWQ882BauY9NyHxs5igpuQIXZDgfkaH3PoATg==} + '@formatjs/icu-skeleton-parser@2.1.0': + resolution: {integrity: sha512-wNer4imHDFBVAJnMb2OGoSyM4wL/uuLnuo5mrenliqkDaNjRbG4jzlJcwTTDEBhai8iCjnzUsE7xwNJC29SfWw==} - '@formatjs/intl-localematcher@0.5.5': - resolution: {integrity: sha512-t5tOGMgZ/i5+ALl2/offNqAQq/lfUnKLEw0mXQI4N4bqpedhrSE+fyKLpwnd22sK0dif6AV+ufQcTsKShB9J1g==} + '@formatjs/intl-localematcher@0.8.0': + resolution: {integrity: sha512-zgMYWdUlmEZpX2Io+v3LHrfq9xZ6khpQVf9UAw2xYWhGerGgI9XgH1HvL/A34jWiruUJpYlP5pk4g8nIcaDrXQ==} + + '@formatjs/intl-localematcher@0.8.1': + resolution: {integrity: sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==} '@gitbeaker/core@43.8.0': resolution: {integrity: sha512-H+LfKuf4dExBinb79c+CXViRBvTVQNf5BYLNSizm2SiqdED5JruhKX88payefleY0szp7G/mySlFSXPyGRH1dQ==} @@ -3279,12 +3816,6 @@ packages: resolution: {integrity: sha512-Nsh23+aIMzWhHelM7XDGz5B+5ADprOWuPVUyCpEStOgnHQfdC1Wa6z66VkROBeV2ep4a7YgvQV166/OCzP1sgw==} engines: {node: '>=22.0.0'} - '@hono/node-server@1.13.0': - resolution: {integrity: sha512-kz323qIQkNQElEGroo/E9MKPDuIR5pkuk/XEWd50K+cSEKdmdiYx0PKWUdaNY2ecJYngtF+njDMsMKplL6zfEg==} - engines: {node: '>=18.14.1'} - peerDependencies: - hono: '>=4.11.3' - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -3305,10 +3836,10 @@ packages: resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} - '@ianvs/prettier-plugin-sort-imports@4.7.0': - resolution: {integrity: sha512-soa2bPUJAFruLL4z/CnMfSEKGznm5ebz29fIa9PxYtu8HHyLKNE1NXAs6dylfw1jn/ilEIfO2oLLN6uAafb7DA==} + '@ianvs/prettier-plugin-sort-imports@4.7.1': + resolution: {integrity: sha512-jmTNYGlg95tlsoG3JLCcuC4BrFELJtLirLAkQW/71lXSyOhVt/Xj7xWbbGcuVbNq1gwWgSyMrPjJc9Z30hynVw==} peerDependencies: - '@prettier/plugin-oxc': ^0.0.4 + '@prettier/plugin-oxc': ^0.0.4 || ^0.1.0 '@vue/compiler-sfc': 2.7.x || 3.x content-tag: ^4.0.0 prettier: 2 || 3 || ^4.0.0-0 @@ -3327,176 +3858,311 @@ packages: resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} engines: {node: '>=18'} - '@img/sharp-darwin-arm64@0.34.4': - resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==} + '@img/sharp-darwin-arm64@0.34.5': + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.4': - resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==} + '@img/sharp-darwin-x64@0.34.5': + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.3': - resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==} + '@img/sharp-libvips-darwin-arm64@1.2.4': + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.3': - resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==} + '@img/sharp-libvips-darwin-x64@1.2.4': + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.3': - resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==} + '@img/sharp-libvips-linux-arm64@1.2.4': + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-arm@1.2.3': - resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==} + '@img/sharp-libvips-linux-arm@1.2.4': + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-ppc64@1.2.3': - resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==} + '@img/sharp-libvips-linux-ppc64@1.2.4': + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.2.3': - resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==} + '@img/sharp-libvips-linux-riscv64@1.2.4': + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.2.4': + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-x64@1.2.3': - resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==} + '@img/sharp-libvips-linux-x64@1.2.4': + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.2.3': - resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==} + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.2.3': - resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==} + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-linux-arm64@0.34.4': - resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==} + '@img/sharp-linux-arm64@0.34.5': + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-linux-arm@0.34.4': - resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==} + '@img/sharp-linux-arm@0.34.5': + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-linux-ppc64@0.34.4': - resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==} + '@img/sharp-linux-ppc64@0.34.5': + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-linux-s390x@0.34.4': - resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==} + '@img/sharp-linux-riscv64@0.34.5': + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.34.5': + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-linux-x64@0.34.4': - resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==} + '@img/sharp-linux-x64@0.34.5': + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.34.4': - resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==} + '@img/sharp-linuxmusl-arm64@0.34.5': + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-linuxmusl-x64@0.34.4': - resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==} + '@img/sharp-linuxmusl-x64@0.34.5': + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-wasm32@0.34.4': - resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==} + '@img/sharp-wasm32@0.34.5': + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.4': - resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==} + '@img/sharp-win32-arm64@0.34.5': + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.4': - resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==} + '@img/sharp-win32-ia32@0.34.5': + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.4': - resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==} + '@img/sharp-win32-x64@0.34.5': + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] - '@ioredis/commands@1.5.0': - resolution: {integrity: sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==} + '@immich/sdk@2.7.5': + resolution: {integrity: sha512-gCTpFAWlFF+1Sx0jbqPVmwN+0JD+eZEHzhf3q+BbxuQF+ORpNqT0D453mOyonogvy17nJF1jGA2PtT6vOQiSnA==} - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} + '@inquirer/checkbox@4.3.2': + resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/editor@4.2.23': + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/expand@4.0.23': + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/input@4.3.1': + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/number@3.0.23': + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/password@4.0.23': + resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.10.1': + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@4.1.11': + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@3.2.2': + resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/select@4.4.2': + resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@ioredis/commands@1.5.1': + resolution: {integrity: sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/cliui@9.0.0': + resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} + engines: {node: '>=18'} + '@jellyfin/sdk@0.13.0': resolution: {integrity: sha512-oiBAOXH6s+dKdReSsYgNktBDzbxtg4JVWhEzIxZSxKcWMdSKmBtK41MhXRO7IWAC40DguKUm3nU/Z493qPAlWA==} peerDependencies: axios: ^1.12.0 - '@jridgewell/gen-mapping@0.3.12': - resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} - '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - '@jridgewell/remapping@2.3.5': resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} @@ -3504,31 +4170,15 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.11': resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.29': - resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} - '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@js-sdsl/ordered-map@4.4.2': resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} @@ -3547,6 +4197,9 @@ packages: '@kubernetes/client-node@1.4.0': resolution: {integrity: sha512-Zge3YvF7DJi264dU1b3wb/GmzR99JhUpqTvp+VGHfwZT+g7EOOYNScDJNZwXy9cszyIGPIs0VHr+kk8e95qqrA==} + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + '@libsql/client-wasm@0.14.0': resolution: {integrity: sha512-gB/jtz0xuwrqAHApBv9e9JSew2030Fhj2edyZ83InZ4yPj/Q2LTUlEhaspEYT0T0xsAGqPy38uGrmq/OGS+DdQ==} bundledDependencies: @@ -3555,158 +4208,147 @@ packages: '@libsql/core@0.14.0': resolution: {integrity: sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==} - '@mantine/charts@8.3.12': - resolution: {integrity: sha512-IOPlbw6MTR0xFhqYtcky4hYoN77q4O2fxepcR5UgVW2kE0Ucae+Ln+TgOcpwFYZgvretSbyYDIBhmZoJ8z0ceQ==} + '@mantine/charts@8.3.18': + resolution: {integrity: sha512-oudif3EUH7Nb9DPm0abAPxpFYDWWjR3k2S5ll0/CcB+pJzlhwaBG19QwpOJaRA6VAvAXDDKOXCO4mi9XCEN78g==} peerDependencies: - '@mantine/core': 8.3.12 - '@mantine/hooks': 8.3.12 + '@mantine/core': 8.3.18 + '@mantine/hooks': 8.3.18 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x recharts: '>=2.13.3' - '@mantine/colors-generator@8.3.12': - resolution: {integrity: sha512-0+wobo+mGteSCTuJXvnMvVn8rNFbQAT1JdUkRDIGi8o3lT9YYVlGhYGuPAvMHW79vF1OtonXLgRwiX/jEEBafg==} + '@mantine/colors-generator@8.3.18': + resolution: {integrity: sha512-u7gNAuVD/WPvB49uNszfkn7lQr85OXTI0Ijkbutcymhv0/utqlapQvZlQAYHwdrrWpQgqPNLsDBt3VSheVe9jw==} peerDependencies: chroma-js: '>=2.4.2' - '@mantine/core@8.3.12': - resolution: {integrity: sha512-bDEoUl4SneltfI1GeEaBk6BVDbLuB/w15YwseAmUvc8ldAbNcsVhxKxY/BdhwqUo6O3L2vhdlb3WwxR1y8741g==} + '@mantine/core@8.3.18': + resolution: {integrity: sha512-9tph1lTVogKPjTx02eUxDUOdXacPzK62UuSqb4TdGliI54/Xgxftq0Dfqu6XuhCxn9J5MDJaNiLDvL/1KRkYqA==} peerDependencies: - '@mantine/hooks': 8.3.12 + '@mantine/hooks': 8.3.18 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/dates@8.3.12': - resolution: {integrity: sha512-rL2kYJRTrU29l1KjQt5bdUweiZuJs3DjiIcc6VGHUuj7OwfYZbEpWzMbcu8fSrya/+kZAe8JM0irX22CjmsDGw==} + '@mantine/dates@8.3.18': + resolution: {integrity: sha512-FHx5teJOhupI0gO2o5evtVYQEdqOjayOkLRhEQfB5Nc5DvcysfPfmNILGkc1Nrp9ZQeQWKLT9qr+CkcCXwHOaw==} peerDependencies: - '@mantine/core': 8.3.12 - '@mantine/hooks': 8.3.12 + '@mantine/core': 8.3.18 + '@mantine/hooks': 8.3.18 dayjs: '>=1.0.0' react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/dropzone@8.3.12': - resolution: {integrity: sha512-XlxCEztP3xTa45jMkMN7H7FyDa5uJq9009HRBpa+OT+JEqnGV8sbdlH1XjTrm8zYudKjS6A7hGVYa2MEcKUJ1w==} + '@mantine/dropzone@8.3.18': + resolution: {integrity: sha512-GaYUUl/382R7hl1g6heTCZ5a6T5x6qYPg0oID6ik/J0j7e5+XMZyTH5ITpaqpsBQ09GKKsF5y3iNehpSby8Kew==} peerDependencies: - '@mantine/core': 8.3.12 - '@mantine/hooks': 8.3.12 + '@mantine/core': 8.3.18 + '@mantine/hooks': 8.3.18 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/form@8.3.12': - resolution: {integrity: sha512-bjXL1Ah3lAZYHrjrF37FeHV8DFGeXV+apn0PRQw2MTLpdUSqKsiYIDDgugzRfNXWX1cn1ELtxtDXsMfdj/LI7Q==} + '@mantine/form@8.3.18': + resolution: {integrity: sha512-r5OGLJWTkmIruFjRZRZy9oA7maNYlyt50jB4Pmd2X5360WOmJLd4KH8MFhHZQC7vN+z8/rmBl3t3XGAR2I8xig==} peerDependencies: react: ^18.x || ^19.x - '@mantine/hooks@8.3.12': - resolution: {integrity: sha512-lMMDzDewd3lUNtJCAHDj3g8On9X5aBl4q6EBwgOixKQSby9RG9ASEpK8oYHundHTm9tzo3MDeXWV/z32oSQWuw==} + '@mantine/hooks@8.3.18': + resolution: {integrity: sha512-QoWr9+S8gg5050TQ06aTSxtlpGjYOpIllRbjYYXlRvZeTsUqiTbVfvQROLexu4rEaK+yy9Wwriwl9PMRgbLqPw==} peerDependencies: react: ^18.x || ^19.x - '@mantine/modals@8.3.12': - resolution: {integrity: sha512-+uRyGe2lLy601qlMk+8aR9d/Aibu+dZi6Jcmvm5z8Gw4ocviyMMlnd8BLSQ/Jvib2OX8fWj+yUQN7FMQ4Rbwjw==} + '@mantine/modals@8.3.18': + resolution: {integrity: sha512-JfPDS4549L314SxFPC1x6CbKwzh82OdnIzwgMxPCVNsWLKV2vEHHUH/fzUYj4Wli6IBrsW4cufjMj9BTj3hm3Q==} peerDependencies: - '@mantine/core': 8.3.12 - '@mantine/hooks': 8.3.12 + '@mantine/core': 8.3.18 + '@mantine/hooks': 8.3.18 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/notifications@8.3.12': - resolution: {integrity: sha512-lqPPa11XdcndG8ywMao8yVkMA4jg/pBNbS85bR7OwHQa1yUftmfVlqJl9PZZCiWLX2AgKY3+xM5dHo4LidL+DA==} + '@mantine/notifications@8.3.18': + resolution: {integrity: sha512-IpQ0lmwbigTBbZCR6iSYWqIOKEx1tlcd7PcEJ5M5X1qeVSY/N3mmDQt1eJmObvcyDeL5cTJMbSA9UPqhRqo9jw==} peerDependencies: - '@mantine/core': 8.3.12 - '@mantine/hooks': 8.3.12 + '@mantine/core': 8.3.18 + '@mantine/hooks': 8.3.18 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/spotlight@8.3.12': - resolution: {integrity: sha512-ujj3C/Mzdt20dVDBfUt0sJ+Re/DsLWN9mgef00TchbRtSbPfGJEZDkOeytsKEeUk3BDP3gC6nFilehf+Vkzevg==} + '@mantine/spotlight@8.3.18': + resolution: {integrity: sha512-yFoEYG0wKduxbnv6+1CUOXc91lmQ5DN4QvEShYO2ftDm0kXhxeOvJFtGOBYK80tpmSCsaT253p9E3J3DcaOt2w==} peerDependencies: - '@mantine/core': 8.3.12 - '@mantine/hooks': 8.3.12 + '@mantine/core': 8.3.18 + '@mantine/hooks': 8.3.18 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/store@8.3.12': - resolution: {integrity: sha512-EC4eIKpm5s7neMbBrWsP6jGKLqrzHf63Ao3penYr7fn25dFXdbXZYw+IG8GYzxOC4yG61b2zTS+bpy5+vwzXpw==} + '@mantine/store@8.3.18': + resolution: {integrity: sha512-i+QRTLmZzLldea0egtUVnGALd6UMIu8jd44nrNWBSNIXJU/8B6rMlC6gyX+l4szopZSuOaaNJIXkqRdC1gQsVg==} peerDependencies: react: ^18.x || ^19.x - '@mantine/tiptap@8.3.12': - resolution: {integrity: sha512-Dp29mlhV6h/hfn+NavZ3g4vE3posNeM6OGTiQ43xEEubP9PRQYlwWPP7+lgb8q/e76M7lpRMReRYm5/fRnqK7g==} + '@mantine/tiptap@8.3.18': + resolution: {integrity: sha512-CrV5E0ELJmegyq+iF4g6PkEeC95wGY9QjWjb+JS1KE4UbxJONxRxGhpjQMp1t/Ir2aFVu9Gbf/fQ0qSnD6Lmqw==} peerDependencies: - '@mantine/core': 8.3.12 - '@mantine/hooks': 8.3.12 + '@mantine/core': 8.3.18 + '@mantine/hooks': 8.3.18 '@tiptap/extension-link': '>=2.1.12' '@tiptap/react': '>=2.1.12' react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@million/install@1.0.14': - resolution: {integrity: sha512-xZvj4AEHc5hyn8RCiLl9dYNqggj2fa0lgNvUkCiJyhRJPNE2hZrUa/Ka0Weu82VpBaO//zujG0YErk7osjNXPA==} - hasBin: true + '@next/env@16.2.6': + resolution: {integrity: sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw==} - '@million/lint@1.0.14': - resolution: {integrity: sha512-u6/kglVwZRu5+GMmtkNlGLqJVkgTl0TtM+hLa9rBg7pldx+5NG5bk45NvL37uZmAr2Xfa1C6qHb7GrFwfP372g==} - hasBin: true + '@next/eslint-plugin-next@16.2.6': + resolution: {integrity: sha512-Z8l6o4JWKUl755x4R+wogD86KPeU+Ckw4K+SYG4kHeOJtRenDeK+OSbGcqZpDtbwn9DsJVdir2UxmwXuinUbUw==} - '@ndaidong/bellajs@12.0.1': - resolution: {integrity: sha512-1iY42uiHz0cxNMbde7O3zVN+ZX1viOOUOBRt6ht6lkRZbSjwOnFV34Zv4URp3hGzEe6L9Byk7BOq/41H0PzAOQ==} - - '@next/env@16.1.1': - resolution: {integrity: sha512-3oxyM97Sr2PqiVyMyrZUtrtM3jqqFxOQJVuKclDsgj/L728iZt/GyslkN4NwarledZATCenbk4Offjk1hQmaAA==} - - '@next/eslint-plugin-next@16.1.1': - resolution: {integrity: sha512-Ovb/6TuLKbE1UiPcg0p39Ke3puyTCIKN9hGbNItmpQsp+WX3qrjO3WaMVSi6JHr9X1NrmthqIguVHodMJbh/dw==} - - '@next/swc-darwin-arm64@16.1.1': - resolution: {integrity: sha512-JS3m42ifsVSJjSTzh27nW+Igfha3NdBOFScr9C80hHGrWx55pTrVL23RJbqir7k7/15SKlrLHhh/MQzqBBYrQA==} + '@next/swc-darwin-arm64@16.2.6': + resolution: {integrity: sha512-ZJGkkcNfYgrrMkqOdZ7zoLa1TOy0qpcMfk/z4Mh/FKUz40gVO+HNQWqmLxf67Z5WB64DRp0dhEbyHfel+6sJUg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.1.1': - resolution: {integrity: sha512-hbyKtrDGUkgkyQi1m1IyD3q4I/3m9ngr+V93z4oKHrPcmxwNL5iMWORvLSGAf2YujL+6HxgVvZuCYZfLfb4bGw==} + '@next/swc-darwin-x64@16.2.6': + resolution: {integrity: sha512-v/YLBHIY132Ced3puBJ7YJKw1lqsCrgcNo2aRJlCEyQrrCeRJlvGlnmxhPxNQI3KE3N1DN5r9TPNPvka3nq5RQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.1.1': - resolution: {integrity: sha512-/fvHet+EYckFvRLQ0jPHJCUI5/B56+2DpI1xDSvi80r/3Ez+Eaa2Yq4tJcRTaB1kqj/HrYKn8Yplm9bNoMJpwQ==} + '@next/swc-linux-arm64-gnu@16.2.6': + resolution: {integrity: sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.1.1': - resolution: {integrity: sha512-MFHrgL4TXNQbBPzkKKur4Fb5ICEJa87HM7fczFs2+HWblM7mMLdco3dvyTI+QmLBU9xgns/EeeINSZD6Ar+oLg==} + '@next/swc-linux-arm64-musl@16.2.6': + resolution: {integrity: sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.1.1': - resolution: {integrity: sha512-20bYDfgOQAPUkkKBnyP9PTuHiJGM7HzNBbuqmD0jiFVZ0aOldz+VnJhbxzjcSabYsnNjMPsE0cyzEudpYxsrUQ==} + '@next/swc-linux-x64-gnu@16.2.6': + resolution: {integrity: sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.1.1': - resolution: {integrity: sha512-9pRbK3M4asAHQRkwaXwu601oPZHghuSC8IXNENgbBSyImHv/zY4K5udBusgdHkvJ/Tcr96jJwQYOll0qU8+fPA==} + '@next/swc-linux-x64-musl@16.2.6': + resolution: {integrity: sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.1.1': - resolution: {integrity: sha512-bdfQkggaLgnmYrFkSQfsHfOhk/mCYmjnrbRCGgkMcoOBZ4n+TRRSLmT/CU5SATzlBJ9TpioUyBW/vWFXTqQRiA==} + '@next/swc-win32-arm64-msvc@16.2.6': + resolution: {integrity: sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.1.1': - resolution: {integrity: sha512-Ncwbw2WJ57Al5OX0k4chM68DKhEPlrXBaSXDCi2kPi5f4d8b3ejr3RRJGfKBLrn2YJL5ezNS7w2TZLHSti8CMw==} + '@next/swc-win32-x64-msvc@16.2.6': + resolution: {integrity: sha512-F0+4i0h9J6C4eE3EAPWsoCk7UW/dbzOjyzxY0qnDUOYFu6FFmdZ6l97/XdV3/Nz3VYyO7UWjyEJUXkGqcoXfMA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3715,6 +4357,9 @@ packages: resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} engines: {node: '>= 20.19.0'} + '@nodable/entities@2.1.0': + resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3727,12 +4372,15 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oazapfts/runtime@1.2.0': + resolution: {integrity: sha512-fi7dp7dNayyh/vzqhf0ZdoPfC7tJvYfjaE8MBL1yR+iIsH7cFoqHt+DV70VU49OMCqLc7wQa+yVJcSmIRnV4wA==} + '@octokit/app@16.1.2': resolution: {integrity: sha512-8j7sEpUYVj18dxvh0KWj6W/l6uAiVRBl1JBDVRqH1VHKAO/G5eRVl4yEoYACjakWers1DjUkcCHyJNQK47JqyQ==} engines: {node: '>= 20'} - '@octokit/auth-app@8.1.2': - resolution: {integrity: sha512-db8VO0PqXxfzI6GdjtgEFHY9tzqUql5xMFXYA12juq8TeTgPAuiiP3zid4h50lwlIP457p5+56PnJOgd2GGBuw==} + '@octokit/auth-app@8.2.0': + resolution: {integrity: sha512-vVjdtQQwomrZ4V46B9LaCsxsySxGoHsyw6IYBov/TqJVROrlYdyNgw5q6tQbB7KZt53v1l1W53RiqTvpzL907g==} engines: {node: '>= 20'} '@octokit/auth-oauth-app@9.0.3': @@ -3751,10 +4399,6 @@ packages: resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} - '@octokit/auth-unauthenticated@7.0.2': - resolution: {integrity: sha512-vjcPRP1xsKWdYKiyKmHkLFCxeH4QvVTv05VJlZxwNToslBFcHRJlsWRaoI2+2JGCf9tIM99x8cN0b1rlAHJiQw==} - engines: {node: '>= 20'} - '@octokit/auth-unauthenticated@7.0.3': resolution: {integrity: sha512-8Jb1mtUdmBHL7lGmop9mU9ArMRUTRhg8vp0T1VtZ4yd9vEm3zcLwmjQkhNEduKawOOORie61xhtYIhTDN+ZQ3g==} engines: {node: '>= 20'} @@ -3783,9 +4427,6 @@ packages: resolution: {integrity: sha512-HiNOO3MqLxlt5Da5bZbLV8Zarnphi4y9XehrbaFMkcoJ+FL7sMxH/UlUsCVxpddVu4qvNDrBdaTVE2o4ITK8ng==} engines: {node: '>= 20'} - '@octokit/openapi-types@26.0.0': - resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} - '@octokit/openapi-types@27.0.0': resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==} @@ -3830,9 +4471,6 @@ packages: resolution: {integrity: sha512-FO+UgZCUu+pPnZAR+iKdUt64kPE7QW7ciqpldaMXaNzixz5Jld8dJ31LAUewk0cfSRkNSRKyqG438ba9c/qDlQ==} engines: {node: '>= 20'} - '@octokit/types@15.0.1': - resolution: {integrity: sha512-sdiirM93IYJ9ODDCBgmRPIboLbSkpLa5i+WLuXH8b8Atg+YMLAyLvDDhNWLV4OYd08tlvYfVm/dw88cqHWtw1Q==} - '@octokit/types@16.0.0': resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==} @@ -3847,8 +4485,8 @@ packages: '@panva/hkdf@1.2.1': resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==} - '@paralleldrive/cuid2@3.1.0': - resolution: {integrity: sha512-UhTJsF2XGlIFmGGTUKBfmNCX+B/UCv3w0OHhq2CJIsfH33GN1lkgjATozG+Pf7s3ACcUdM4qaWgzy4Rr8PlUdA==} + '@paralleldrive/cuid2@3.3.0': + resolution: {integrity: sha512-OqiFvSOF0dBSesELYY2CAMa4YINvlLpvKOz/rv6NeZEqiyttlHgv98Juwv4Ch+GrEV7IZ8jfI2VcEoYUjXXCjw==} hasBin: true '@parcel/watcher-android-arm64@2.4.1': @@ -3942,9 +4580,10 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@playwright/test@1.60.0': + resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==} + engines: {node: '>=18'} + hasBin: true '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} @@ -3991,140 +4630,167 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@remirror/core-constants@3.0.0': - resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} + '@pwshub/bellajs@13.0.2': + resolution: {integrity: sha512-OWOaE7Ieufo7VMv957iahOzv/w5oXyyXO28Jh2x6rLU96ZLqC508kAKTgdMJRXgVjda2s+/0C6Kno+k16OmJsQ==} + engines: {bun: '>=1.0.0', node: '>=20.0.0'} - '@rolldown/pluginutils@1.0.0-beta.53': - resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} - - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} + '@reduxjs/toolkit@2.11.2': + resolution: {integrity: sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==} peerDependencies: - rollup: '>=4.55.1' + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 peerDependenciesMeta: - rollup: + react: + optional: true + react-redux: optional: true - '@rollup/rollup-android-arm-eabi@4.48.1': - resolution: {integrity: sha512-rGmb8qoG/zdmKoYELCBwu7vt+9HxZ7Koos3pD0+sH5fR3u3Wb/jGcpnqxcnWsPEKDUyzeLSqksN8LJtgXjqBYw==} + '@rolldown/pluginutils@1.0.0-rc.3': + resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + + '@rollup/rollup-android-arm-eabi@4.60.0': + resolution: {integrity: sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.48.1': - resolution: {integrity: sha512-4e9WtTxrk3gu1DFE+imNJr4WsL13nWbD/Y6wQcyku5qadlKHY3OQ3LJ/INrrjngv2BJIHnIzbqMk1GTAC2P8yQ==} + '@rollup/rollup-android-arm64@4.60.0': + resolution: {integrity: sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.48.1': - resolution: {integrity: sha512-+XjmyChHfc4TSs6WUQGmVf7Hkg8ferMAE2aNYYWjiLzAS/T62uOsdfnqv+GHRjq7rKRnYh4mwWb4Hz7h/alp8A==} + '@rollup/rollup-darwin-arm64@4.60.0': + resolution: {integrity: sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.48.1': - resolution: {integrity: sha512-upGEY7Ftw8M6BAJyGwnwMw91rSqXTcOKZnnveKrVWsMTF8/k5mleKSuh7D4v4IV1pLxKAk3Tbs0Lo9qYmii5mQ==} + '@rollup/rollup-darwin-x64@4.60.0': + resolution: {integrity: sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.48.1': - resolution: {integrity: sha512-P9ViWakdoynYFUOZhqq97vBrhuvRLAbN/p2tAVJvhLb8SvN7rbBnJQcBu8e/rQts42pXGLVhfsAP0k9KXWa3nQ==} + '@rollup/rollup-freebsd-arm64@4.60.0': + resolution: {integrity: sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.48.1': - resolution: {integrity: sha512-VLKIwIpnBya5/saccM8JshpbxfyJt0Dsli0PjXozHwbSVaHTvWXJH1bbCwPXxnMzU4zVEfgD1HpW3VQHomi2AQ==} + '@rollup/rollup-freebsd-x64@4.60.0': + resolution: {integrity: sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.48.1': - resolution: {integrity: sha512-3zEuZsXfKaw8n/yF7t8N6NNdhyFw3s8xJTqjbTDXlipwrEHo4GtIKcMJr5Ed29leLpB9AugtAQpAHW0jvtKKaQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.0': + resolution: {integrity: sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.48.1': - resolution: {integrity: sha512-leo9tOIlKrcBmmEypzunV/2w946JeLbTdDlwEZ7OnnsUyelZ72NMnT4B2vsikSgwQifjnJUbdXzuW4ToN1wV+Q==} + '@rollup/rollup-linux-arm-musleabihf@4.60.0': + resolution: {integrity: sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.48.1': - resolution: {integrity: sha512-Vy/WS4z4jEyvnJm+CnPfExIv5sSKqZrUr98h03hpAMbE2aI0aD2wvK6GiSe8Gx2wGp3eD81cYDpLLBqNb2ydwQ==} + '@rollup/rollup-linux-arm64-gnu@4.60.0': + resolution: {integrity: sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.48.1': - resolution: {integrity: sha512-x5Kzn7XTwIssU9UYqWDB9VpLpfHYuXw5c6bJr4Mzv9kIv242vmJHbI5PJJEnmBYitUIfoMCODDhR7KoZLot2VQ==} + '@rollup/rollup-linux-arm64-musl@4.60.0': + resolution: {integrity: sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loongarch64-gnu@4.48.1': - resolution: {integrity: sha512-yzCaBbwkkWt/EcgJOKDUdUpMHjhiZT/eDktOPWvSRpqrVE04p0Nd6EGV4/g7MARXXeOqstflqsKuXVM3H9wOIQ==} + '@rollup/rollup-linux-loong64-gnu@4.60.0': + resolution: {integrity: sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-gnu@4.48.1': - resolution: {integrity: sha512-UK0WzWUjMAJccHIeOpPhPcKBqax7QFg47hwZTp6kiMhQHeOYJeaMwzeRZe1q5IiTKsaLnHu9s6toSYVUlZ2QtQ==} + '@rollup/rollup-linux-loong64-musl@4.60.0': + resolution: {integrity: sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.60.0': + resolution: {integrity: sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-gnu@4.48.1': - resolution: {integrity: sha512-3NADEIlt+aCdCbWVZ7D3tBjBX1lHpXxcvrLt/kdXTiBrOds8APTdtk2yRL2GgmnSVeX4YS1JIf0imFujg78vpw==} + '@rollup/rollup-linux-ppc64-musl@4.60.0': + resolution: {integrity: sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.60.0': + resolution: {integrity: sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.48.1': - resolution: {integrity: sha512-euuwm/QTXAMOcyiFCcrx0/S2jGvFlKJ2Iro8rsmYL53dlblp3LkUQVFzEidHhvIPPvcIsxDhl2wkBE+I6YVGzA==} + '@rollup/rollup-linux-riscv64-musl@4.60.0': + resolution: {integrity: sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.48.1': - resolution: {integrity: sha512-w8mULUjmPdWLJgmTYJx/W6Qhln1a+yqvgwmGXcQl2vFBkWsKGUBRbtLRuKJUln8Uaimf07zgJNxOhHOvjSQmBQ==} + '@rollup/rollup-linux-s390x-gnu@4.60.0': + resolution: {integrity: sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.48.1': - resolution: {integrity: sha512-90taWXCWxTbClWuMZD0DKYohY1EovA+W5iytpE89oUPmT5O1HFdf8cuuVIylE6vCbrGdIGv85lVRzTcpTRZ+kA==} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.6.1': resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.48.1': - resolution: {integrity: sha512-2Gu29SkFh1FfTRuN1GR1afMuND2GKzlORQUP3mNMJbqdndOg7gNsa81JnORctazHRokiDzQ5+MLE5XYmZW5VWg==} + '@rollup/rollup-linux-x64-gnu@4.60.0': + resolution: {integrity: sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.60.0': + resolution: {integrity: sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-win32-arm64-msvc@4.48.1': - resolution: {integrity: sha512-6kQFR1WuAO50bxkIlAVeIYsz3RUx+xymwhTo9j94dJ+kmHe9ly7muH23sdfWduD0BA8pD9/yhonUvAjxGh34jQ==} + '@rollup/rollup-openbsd-x64@4.60.0': + resolution: {integrity: sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.0': + resolution: {integrity: sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.0': + resolution: {integrity: sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.48.1': - resolution: {integrity: sha512-RUyZZ/mga88lMI3RlXFs4WQ7n3VyU07sPXmMG7/C1NOi8qisUg57Y7LRarqoGoAiopmGmChUhSwfpvQ3H5iGSQ==} + '@rollup/rollup-win32-ia32-msvc@4.60.0': + resolution: {integrity: sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.48.1': - resolution: {integrity: sha512-8a/caCUN4vkTChxkaIJcMtwIVcBhi4X2PQRoT+yCK3qRYaZ7cURrmJFL5Ux9H9RaMIXj9RuihckdmkBX3zZsgg==} + '@rollup/rollup-win32-x64-gnu@4.60.0': + resolution: {integrity: sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==} cpu: [x64] os: [win32] - '@rrweb/types@2.0.0-alpha.16': - resolution: {integrity: sha512-E6cACNVsm+NUhn7dzocQoKyXI7BHrHRRm5Ab23yrAzEQ2caWocCEYJhqDlc4KRVJBkQfXZfyWm8+2d0uggFuZg==} + '@rollup/rollup-win32-x64-msvc@4.60.0': + resolution: {integrity: sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==} + cpu: [x64] + os: [win32] '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -4167,20 +4833,20 @@ packages: peerDependencies: semantic-release: '>=18.0.0' - '@semantic-release/github@12.0.2': - resolution: {integrity: sha512-qyqLS+aSGH1SfXIooBKjs7mvrv0deg8v+jemegfJg1kq6ji+GJV8CO08VJDEsvjp3O8XJmTTIAjjZbMzagzsdw==} + '@semantic-release/github@12.0.8': + resolution: {integrity: sha512-tej5AAgK5X9wHRoDmYhecMXEHEkFeGOY1XsEblKxu8pIQwahzf1STYyr7iPU6Lpbg6C5I3N2w/ocXrBo+L7jhw==} engines: {node: ^22.14.0 || >= 24.10.0} peerDependencies: semantic-release: '>=24.1.0' - '@semantic-release/npm@13.1.3': - resolution: {integrity: sha512-q7zreY8n9V0FIP1Cbu63D+lXtRAVAIWb30MH5U3TdrfXt6r2MIrWCY0whAImN53qNvSGp0Zt07U95K+Qp9GpEg==} + '@semantic-release/npm@13.1.5': + resolution: {integrity: sha512-Hq5UxzoatN3LHiq2rTsWS54nCdqJHlsssGERCo8WlvdfFA9LoN0vO+OuKVSjtNapIc/S8C2LBj206wKLHg62mg==} engines: {node: ^22.14.0 || >= 24.10.0} peerDependencies: semantic-release: '>=20.1.0' - '@semantic-release/release-notes-generator@14.1.0': - resolution: {integrity: sha512-CcyDRk7xq+ON/20YNR+1I/jP7BYKICr1uKd1HHpROSnnTdGqOTburi4jcRiTYz0cpfhxSloQO3cGhnoot7IEkA==} + '@semantic-release/release-notes-generator@14.1.1': + resolution: {integrity: sha512-Pbd2e2XRMUD0OxehHpgd5/YghsE76cddkRHSoDvKLK+OCy4Ewxn49rWR631MEUU01lgwF/uyVXvbnVuu6+Z6VA==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -4196,101 +4862,119 @@ packages: '@so-ric/colorspace@1.1.6': resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} - '@socket.io/component-emitter@3.1.2': - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@standard-schema/spec@1.0.0': - resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} - '@swagger-api/apidom-ast@1.0.0-rc.1': - resolution: {integrity: sha512-hsAySkWlIjgkQEDu1YEbvnxdEC3rD9bjQf7UYm0vzkvL5PNDd6lHLhxb825bQAfXQjw7WOxtV7eNrgqRQohMDg==} + '@swagger-api/apidom-ast@1.11.0': + resolution: {integrity: sha512-poLd6eNipLCFCrxjZD+E9E0Z85CLfFzueNiVcYj86rwMp2OszYsTzZS2jz82yR/usNCjXCpkQ2xEXWSmDhefPg==} - '@swagger-api/apidom-core@1.0.0-rc.1': - resolution: {integrity: sha512-vlguVts28oYBjCU5ZYfnX6yAFys/dZ1PUZqpYevMIGi8lEvxEfoxKEaUQa1Lr974cfKaVGBs8gNNhvDKXbH/jA==} + '@swagger-api/apidom-core@1.11.0': + resolution: {integrity: sha512-7TvbbC3dG3yM8cjqyrFXoTOpwgOC68+Z17Ro36drJwZ0k/c7QQc0dI/KvTSPHn9UfimEMdZ0q+yIIzqrAiEmww==} - '@swagger-api/apidom-error@1.0.0-rc.1': - resolution: {integrity: sha512-74tTb6QX8VeAvu/9XipXd4Ly3N3q+yJez+lGZD7Qa11E00AhNpzqH7swgZKutLEfq1tHxyGWE1A6xF8IiU4CJg==} + '@swagger-api/apidom-error@1.11.0': + resolution: {integrity: sha512-JPt37oOrf73CAZNQBPffnLzU5iEUs8cT9pFmc9vy2gHQp+vjSKxeJ9F6zagTp8VnLPUq0gVjIvCQvcX8NPW2jA==} - '@swagger-api/apidom-json-pointer@1.0.0-rc.1': - resolution: {integrity: sha512-fNDQozPRuD9ReYcCnIqr5jU0faFDUl3VrUtfeLl3YevxNB+onZkUidUvzUJgDjZK9Se567BgL0rK9hnEO/Q8qw==} + '@swagger-api/apidom-json-pointer@1.11.0': + resolution: {integrity: sha512-11JWHr55FciYGTbcicNZrBsFEwNuLLZybi00YHJ3OBcuXcFJPKmKluLnVL7GhZYEqvLYOcVsCfInYW5MXoj00w==} - '@swagger-api/apidom-ns-api-design-systems@1.0.0-rc.1': - resolution: {integrity: sha512-gV6vQHpdtVKtrV+uUCPwsSL5nX5zD/3vR7dSYE0Lii7f7RkpIXAgQViZSbv7+h8TB20DNobGt+JZH/gGaY+Oxg==} + '@swagger-api/apidom-ns-api-design-systems@1.11.0': + resolution: {integrity: sha512-IskDsUkUtNas4guoChRKKkw0wOst64nRA24WuIjLf8ztfBdcl/oqx/cgy8pwWCUqNYvL9L3+sD5HeuokqMrySw==} - '@swagger-api/apidom-ns-arazzo-1@1.0.0-rc.1': - resolution: {integrity: sha512-Bx3PMLp+613EgSsLLg6Ucg3FtbO2i1bVcFZXgImun5pYNfmtQu21ELfWKj8ty/Ts2zR1VKOn5+i9DyMOH/zpsA==} + '@swagger-api/apidom-ns-arazzo-1@1.11.0': + resolution: {integrity: sha512-n+aGSlLHyrpmCaBa9DBZkIqnNVzYAYSa010MvAwhlwtW3EbFYNwYWinbTwLqCd3leN6XWTvQYCvk0/k7/9Cq4A==} - '@swagger-api/apidom-ns-asyncapi-2@1.0.0-rc.1': - resolution: {integrity: sha512-Vvo1f/H3mUuTny1d+XPudSattDWdHP1VhowxAOAFrnLVM4qvFbeBdzWjmTPEaeRsOz+Vq6rJOC4DPmHmtkR+oQ==} + '@swagger-api/apidom-ns-asyncapi-2@1.11.0': + resolution: {integrity: sha512-SHh3naFZlXFI0gG36tNYvJ/VO8aZsjnXIQAqJHfOE6rrpl5msJrdDatmNczh+57WPZxEZA+KTXWCqNKdeu3G3Q==} - '@swagger-api/apidom-ns-json-schema-2019-09@1.0.0-rc.1': - resolution: {integrity: sha512-1va09+kSTpNKc9oKs0rk2FWP2wk9AAdOcdmLpPEbzMnThQD1DHeBCk5OMStGZlaROxKWMPVZ5EmKy6rTRXvEIQ==} + '@swagger-api/apidom-ns-asyncapi-3@1.11.0': + resolution: {integrity: sha512-4vrgNYDj68hgmgZj1eGBaBr5xqIETWn4jAioiRHek4jV1FLvmxCs3nC2nYs8CzQqqJ1bqirdiirrUpqhaQvTEA==} - '@swagger-api/apidom-ns-json-schema-2020-12@1.0.0-rc.1': - resolution: {integrity: sha512-ixNci2lwVD0yC4lUrmOOhgE/denI8keGVnHXYokbq0QxlQWuwuVzjVEtVMdmEaX3JaYVmEI5tr8K9MPW1zso1A==} + '@swagger-api/apidom-ns-json-schema-2019-09@1.11.0': + resolution: {integrity: sha512-5avPMY1YbQmJIqXlu7rm3yftf4xhT2REBxpEgw8Nc7Zlbn4Z5iGXBsHr60982MwqeE6W8wA+HHQMKHM5siuhdQ==} - '@swagger-api/apidom-ns-json-schema-draft-4@1.0.0-rc.1': - resolution: {integrity: sha512-kLGANNv8oAWWvnVqWat/AqOEo6XBfdMF3I7BLL2eZFBE8bhTbFMvmAvUfnwcehYo3K4vT+J60DWrwqYBoGSSUQ==} + '@swagger-api/apidom-ns-json-schema-2020-12@1.11.0': + resolution: {integrity: sha512-zddyOxWKlQ9WPaZR0e8ykmy8AbGnDvqCqqy6BdYqKZ9Ts8ZK1XwOB2j9ruccZpoiy/rp2tow+CUf3XE5rricmQ==} - '@swagger-api/apidom-ns-json-schema-draft-6@1.0.0-rc.1': - resolution: {integrity: sha512-UzoTSrPOh+dwzSKZmawBwhWg4xGgpdNBmtV7jDJGEyFGsEkPvDBvViq+4sfMxO/BGoqPCD/jdt4yF16AKRxLiw==} + '@swagger-api/apidom-ns-json-schema-draft-4@1.11.0': + resolution: {integrity: sha512-upc0xKb3nxsYPECRDf5UygnZHTSj78xHj5+SBIHNDXoaGDhvMCtWoDVGAKFtZ+jZlIkyJt7cGAeOX0w9IV3XkA==} - '@swagger-api/apidom-ns-json-schema-draft-7@1.0.0-rc.1': - resolution: {integrity: sha512-3alW6gJKeb+DzTu+LYpYyEc5swo3oP8aoatOcVceWo/A/568zfIW0wWssf9WoasI42jEktV17z4A6ZwT6PzYbA==} + '@swagger-api/apidom-ns-json-schema-draft-6@1.11.0': + resolution: {integrity: sha512-sd/U6Y34uRqdgd3Phz1oEhO7UBCn60+OfIasFFpHZcKe7O0jTmayiaJqbpwirhwt7Fv5Ev5m58+y1nVomLnhQw==} - '@swagger-api/apidom-ns-openapi-2@1.0.0-rc.1': - resolution: {integrity: sha512-SJ79fGH+WA7IYEXOJFPjXCB5bg6uoJDmkEYxMtZpN0Q+juFSkMcquh3jVf0j0y+6gFe/MZjIFDHxiBdeJarOig==} + '@swagger-api/apidom-ns-json-schema-draft-7@1.11.0': + resolution: {integrity: sha512-7ptuxmuh2vN1hDr3cLkYm2rl+ak2J1byoGxswucKfSb+7IaFoA36/t7kcOsE/hIO4yI7T3ZPOuNSpeg1NBVjEw==} - '@swagger-api/apidom-ns-openapi-3-0@1.0.0-rc.1': - resolution: {integrity: sha512-TC2EBxBFJWD5pbZKUcbySqCt2nQmeP60ooS4f4Nl5r6vB/BeNbuO4FmO7CDI8OXD7b4J2+ro5KrXMs1EOQ3kVA==} + '@swagger-api/apidom-ns-openapi-2@1.11.0': + resolution: {integrity: sha512-cAIPJhLxm/nj1kzneNySeaTahY+hH5gkGNsgbmifGnLPsC5YOOfEVMKLj18IREdXqdnxJgRbsI9Azl4g09TPkg==} - '@swagger-api/apidom-ns-openapi-3-1@1.0.0-rc.1': - resolution: {integrity: sha512-IY87MhqFBJnzhPWlr/OEVUa3iDjZuiwlyoWX4lw2jbKX+mLDrceGG5nqZawDACAjTjvtsjJcFP81D2VmjHVT5Q==} + '@swagger-api/apidom-ns-openapi-3-0@1.11.0': + resolution: {integrity: sha512-IUEWVSuETE5DdgTJhIt6oZyRTYUV892/I9UdyTResR0Bypc7gy3YXwlzMlUZx73S2klaiFo1dL4iu/fqzA2fEg==} - '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.0.0-rc.1': - resolution: {integrity: sha512-1/koF8VwJHzFwk6FMWen39vpMUNcoCMXVY6MjMGag0h37LY5YAByl0LcYzLa33cvm5KCa23Aa75cu7Ns0SR1HQ==} + '@swagger-api/apidom-ns-openapi-3-1@1.11.0': + resolution: {integrity: sha512-WpUvFgOs4YMUmyeJRQEADps+U5o71YTtzKMPNr1cF1ZHKKkcRMUJL9QlJ4Y9cxAdjo6oXzXZa5922XOpwMYhxA==} - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.0.0-rc.1': - resolution: {integrity: sha512-Gjx1gojtYvGFqKnGttv84ba0RCkY7Xa+12kj9HVik8G+YVzUN78Qt8yu96ak0oXFlY1Ai8MQb5siC8YH4pC8Dg==} + '@swagger-api/apidom-ns-openapi-3-2@1.11.0': + resolution: {integrity: sha512-mUErHIq8rHVoOrkHnRj3mhoNYVIl8th474/m0+E8OB2wBAe0KgiczaJX9KkBQoAo5XIxoRfmI5T3bp+fRabwCA==} - '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.0.0-rc.1': - resolution: {integrity: sha512-RHIly3bprJELMlt91UFqmMbAtIxDyHi8DM27YVXRjrX7zncP6QKyevcg2ajEe8UaNtkCFvPZW9h0gDh/ZW6ZYQ==} + '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.11.0': + resolution: {integrity: sha512-0OdwcnV/QF+Vs3Vj0dTmlRHEp9WQg9aBvWWl8Fq25OviyDhGGRpqgkEAOjtVYCH3XyZ1Xz+jhIDOdd5pxBajsA==} - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.0.0-rc.1': - resolution: {integrity: sha512-a+FweCIFAAnjvEWpMAd93xczbYX7AU4prwAMJ3QpFszltq2K7HKWUN1mMRplYPg5SSRLZojymdyMlu1evuP2Sg==} + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.11.0': + resolution: {integrity: sha512-K714DT6nFW+ZM9LTo+c120zkUjsEcIFO2DU+0cnzReRyenb1x6RZe+uOqTt7iWohnnWp2FV/j0exd/mCsxW65Q==} - '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.0.0-rc.1': - resolution: {integrity: sha512-IKJ95OH35dW1+yGYDoE8uE3movG9z8Nht2QW8Ja75/H/jAFYGCxj56ZborEIiZxp83ItFqxQFn+ZUvwD7bDZew==} + '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.11.0': + resolution: {integrity: sha512-z9K6XEr3AafV2EA+1pfW+8VoMCCSSpm2IU7oUTjSnhxRb5t/DZR4Qg8FEK8tRKdS2BO2kFFLb2xikrY3Qx8B+g==} - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.0.0-rc.1': - resolution: {integrity: sha512-cVu2Ue1U809HiGeAR/54yF42y4UKiWh45sEKzkXPYJUqRUd2Ewyo5KHtlckjNnCDRILZEhaPaZFpxURSbyUeSg==} + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.11.0': + resolution: {integrity: sha512-HPb7Wzr+cj0IJkRRlqsK1tNCQXivuGRP4iB2yek16sQZXo2eqSUZ3j3Lz/WwWgnN/FWGAODm4bj9+EhGQ11TnA==} - '@swagger-api/apidom-parser-adapter-json@1.0.0-rc.1': - resolution: {integrity: sha512-pmWOuZFxSNdbV1xNV0IoIrRiweaVl9yGAiEtiYH0BzbD+yGQSxi1ltMkZDVoyBPbe2NtygFDRaINSDLwuYpUYA==} + '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.11.0': + resolution: {integrity: sha512-sQenLXZRmTDQehe3JCSQpz6jpE3DhMQ0aoe2gpNqo23Gt/4oeW6nAP2h49q9Ne+CHPp0ApFUUyIXF7UTmbUWqA==} - '@swagger-api/apidom-parser-adapter-openapi-json-2@1.0.0-rc.1': - resolution: {integrity: sha512-+OsFBsD9PPqtcgETXU7l00/TMOfbtM+gvafJIdS/a+O1NQ2upAujQB3ArIB3sry3vloorjKmPyY6ZK/8rEKhNA==} + '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.11.0': + resolution: {integrity: sha512-aGnG3AYp4Qsimn1FOP0B9leYCJAQVockzHqyJj30xiNAXquBMXr6lq3L2/AEsmpDGv/x/++YJ4p2ggSxy12QNw==} - '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.0.0-rc.1': - resolution: {integrity: sha512-FEUJ+RaXKMP6LHMVeVyUPKdqjEqMSEZVhpvZt3Kh5fvnZvdgWngqs4gUjxO+dQCDVWkBxH/29uXm2eghdaM2Lw==} + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.11.0': + resolution: {integrity: sha512-iIRlB8B46UPiu0EkKhq1TvwloBgObASJ5ROx8rhT5+Pj+BBegE+KIY02EUKwcz5FgXJrH3XcltLiI7ZA68347Q==} - '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.0.0-rc.1': - resolution: {integrity: sha512-pcfPj3FW2IWPYmU5kE0YB7npqV2vN+DvqUsw1GcDzsb8y2IdkzagHtMPZkM/KrfHFmhsoHm5YNpYC+Vvd2g61Q==} + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.11.0': + resolution: {integrity: sha512-BF2ZyQYMUNrjP1nMneX6ZD2IWBLycWpxg3yllXDCJtfdQT/IMzldIPKCNI9qoBE57lM6j2hpy+Jd86QJk20t2w==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.0.0-rc.1': - resolution: {integrity: sha512-ckt6b1P+iwYkTMibixpo0oKWFm0wOGf88gslMMCo1xNaLVJnjxiadTQ/lNJd58CBJiQeN/dziTkRqGcFDqV9JQ==} + '@swagger-api/apidom-parser-adapter-json@1.11.0': + resolution: {integrity: sha512-DObW0LxYwif0erzGoXiEAZ6ecc/18LIEKxjEAc5Bw2M5I0C/iGW4y/UxAywihGvhMEo1gOvdO6w9Jh6UnuPVmA==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.0.0-rc.1': - resolution: {integrity: sha512-JFyNwcj43cmps18Y+iqyna3uufyib8eLku+z4EhKFRPCuGFQ2bjsfVCFSP+Sv6sJATlagRRcfont+Q0BgNjwvw==} + '@swagger-api/apidom-parser-adapter-openapi-json-2@1.11.0': + resolution: {integrity: sha512-dREUHAEHVry9aSGjqDpYF9Wzm1lgUkV6EgoYDflyQ9HxgCwhucDPFmUgI7UaR0G6bplnJumMcZXh1I1TGn1v7Q==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.0.0-rc.1': - resolution: {integrity: sha512-kLRZYxJdix+irs0HTXJ223rj4Ou8AXo9IHiSf44KTuAZ/bsuakb0P8xROHg5MWTTEHYMfDrdLX+LaUo3b2GFyA==} + '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.11.0': + resolution: {integrity: sha512-U/NZpvuj9IpUS48zF2tYbgW2AtTw6Yi6kXNiHUtgUEomxYdb6XQeKLDGvgeWjgAgfUROohakcH+wx713VCGxfQ==} - '@swagger-api/apidom-parser-adapter-yaml-1-2@1.0.0-rc.1': - resolution: {integrity: sha512-XmRG/5lmoRusCupHEf10OeK1SQnSym4N1OrK+c3OTfN1GGX60Gxu2XCZ70pafJDuu+cvo/F8Db8UX3UOHapjwA==} + '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.11.0': + resolution: {integrity: sha512-fYarNeaz39oKZ6VwqwON+IeJszidZGPvUYDfggLaar81NGimrz07y1U+DhAf96IX3qgUa2J6Fu3Bv1r57hs6Ng==} - '@swagger-api/apidom-reference@1.0.0-rc.1': - resolution: {integrity: sha512-Xj4aYrawCseCf6N6UuGSIaboN60ERmQVcKqXs/rybQz1gnD2AVqb8gklC2sUdOIUyN+ehDy+HDSM8I+yP32J0w==} + '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.11.0': + resolution: {integrity: sha512-jtMoAH3R73bQUc4D2cJTUUvO4iJz9CV1W4+zoU/gT2l6h8Ji5EhZH0/VyynUk4J6mW/GdwxUN/q5z2P/DtSmfA==} + + '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.11.0': + resolution: {integrity: sha512-e8L4kHahgkOIzCCSGs5jTahXLInERNr37teSLS4SuqYgSVWr9AVXuNvpHNYGeMECD8briGIGfAAtnZChCGYrEA==} + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.11.0': + resolution: {integrity: sha512-s+AXnNzLeAk28jUAeXwTSR1AlX+TXIAt2GfFgWUAV+SFw2OhRpoKYLzItN3n2UsHselqHvfyUL9xNCJBZleQtQ==} + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.11.0': + resolution: {integrity: sha512-xyUyehHhB+BSOAT7mYGqmcEozuLKxmx1Hug97O9SVgNU8QTClc95+VWrAHhJbn8juPR6y2vSwm/wrQDwb4yq7w==} + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.11.0': + resolution: {integrity: sha512-u7Y98zdjEs+0Upa8TdxOsb7z8hYJmLz9lVleRiB7rqysVga6oSDI5NAFdLVqMB6uAUuFi/tyiuiFT4Qosfd6Vw==} + + '@swagger-api/apidom-parser-adapter-yaml-1-2@1.11.0': + resolution: {integrity: sha512-FZK9KfwiTnNc+imxg7Wu2ktKhXCYPeFQZ1uZJzJL/hk1n+zyPfRY/4Aue4HzDcG8+wbItd3dRjKClFanVZAXoA==} + + '@swagger-api/apidom-reference@1.11.0': + resolution: {integrity: sha512-ftqegYrxxl9UwQFbdVOtXIqNolVd25M5u53X8fP96Wx6lEVr5Ed7B6+dzch8ttCUmKeoLIeagvt76b6BoYtnLw==} '@swaggerexpert/cookie@2.0.2': resolution: {integrity: sha512-DPI8YJ0Vznk4CT+ekn3rcFNq1uQwvUHZhH6WvTSPD0YKBIlMS9ur2RYKghXuxxOiqOam/i4lHJH4xTIiTgs3Mg==} @@ -4382,8 +5066,8 @@ packages: '@swc/types@0.1.25': resolution: {integrity: sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==} - '@t3-oss/env-core@0.13.10': - resolution: {integrity: sha512-NNFfdlJ+HmPHkLi2HKy7nwuat9SIYOxei9K10lO2YlcSObDILY7mHZNSHsieIM3A0/5OOzw/P/b+yLvPdaG52g==} + '@t3-oss/env-core@0.13.11': + resolution: {integrity: sha512-sM7GYY+KL7H/Hl0BE0inWfk3nRHZOLhmVn7sHGxaZt9FAR6KqREXAE+6TqKfiavfXmpRxO/OZ2QgKRd+oiBYRQ==} peerDependencies: arktype: ^2.1.0 typescript: '>=5.0.0' @@ -4399,8 +5083,8 @@ packages: zod: optional: true - '@t3-oss/env-nextjs@0.13.10': - resolution: {integrity: sha512-JfSA2WXOnvcc/uMdp31paMsfbYhhdvLLRxlwvrnlPE9bwM/n0Z+Qb9xRv48nPpvfMhOrkrTYw1I5Yc06WIKBJQ==} + '@t3-oss/env-nextjs@0.13.11': + resolution: {integrity: sha512-NC+3j7YWgpzdFu1t5y/8wqibTK0lm5RS4bjXA1n8uwik3wIR4iZM4Fa+U2BaMa5k3Qk8RZiYhoAIX0WogmGkzg==} peerDependencies: arktype: ^2.1.0 typescript: '>=5.0.0' @@ -4416,39 +5100,39 @@ packages: zod: optional: true - '@tabler/icons-react@3.36.1': - resolution: {integrity: sha512-/8nOXeNeMoze9xY/QyEKG65wuvRhkT3q9aytaur6Gj8bYU2A98YVJyLc9MRmc5nVvpy+bRlrrwK/Ykr8WGyUWg==} + '@tabler/icons-react@3.44.0': + resolution: {integrity: sha512-8+rvzBbVm/1Z3sG3x7GUNAaxIKxwgz8xaMhRs23nrCnMTKRFAhEC+82zAIFeAA0seXdrAGX5HFCkaLpGK2rVHg==} peerDependencies: react: '>= 16' - '@tabler/icons@3.36.1': - resolution: {integrity: sha512-f4Jg3Fof/Vru5ioix/UO4GX+sdDsF9wQo47FbtvG+utIYYVQ/QVAC0QYgcBbAjQGfbdOh2CCf0BgiFOF9Ixtjw==} + '@tabler/icons@3.44.0': + resolution: {integrity: sha512-Wn0AOZG9sg0L+bjfMqq4eNhC6pQjIrk94LvvWYNYkY8KH8wC3YILRzQlrnVJc4FUeMxH/AK97QsYCX35H3LndA==} '@tanstack/match-sorter-utils@8.19.4': resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.90.16': - resolution: {integrity: sha512-MvtWckSVufs/ja463/K4PyJeqT+HMlJWtw6PrCpywznd2NSgO3m4KwO9RqbFqGg6iDE8vVMFWMeQI4Io3eEYww==} + '@tanstack/query-core@5.100.10': + resolution: {integrity: sha512-8UR0yJR+GiQ40m3lPhUr0xbfAupe6GSQiksSBSa9SM2NjezFyxXCIA69/lz8cSoNKZLrw1/PktIyQBJcVeMi3w==} - '@tanstack/query-devtools@5.92.0': - resolution: {integrity: sha512-N8D27KH1vEpVacvZgJL27xC6yPFUy0Zkezn5gnB3L3gRCxlDeSuiya7fKge8Y91uMTnC8aSxBQhcK6ocY7alpQ==} + '@tanstack/query-devtools@5.100.10': + resolution: {integrity: sha512-3DmJf25hDPus5IpVvp6ujXv6bKV2zPzI9vpbAmpJigsL/H6DPvPjmf7/Q9yVKEke//8fgeQ45abjgnLuyYxAiw==} - '@tanstack/react-query-devtools@5.91.2': - resolution: {integrity: sha512-ZJ1503ay5fFeEYFUdo7LMNFzZryi6B0Cacrgr2h1JRkvikK1khgIq6Nq2EcblqEdIlgB/r7XDW8f8DQ89RuUgg==} + '@tanstack/react-query-devtools@5.100.10': + resolution: {integrity: sha512-zes0+o9ef5rAZXJ9f/SeaLs2nufJaeVkZkl/Or9NGrWVF41kL9Od9ED9nCwtQlgiF2VGtrzhEw5AU/igAO+aAg==} peerDependencies: - '@tanstack/react-query': ^5.90.14 + '@tanstack/react-query': ^5.100.10 react: ^18 || ^19 - '@tanstack/react-query-next-experimental@5.91.0': - resolution: {integrity: sha512-/EbUnRBYInqoyXbPq/25fPko9JsY5r/DQVry8oR2CCU4z4hbb9ABGAOZ9jVt11OaOKxN5SGC8LE0XDSMNZCrKg==} + '@tanstack/react-query-next-experimental@5.100.10': + resolution: {integrity: sha512-/f2DlErD06XbR7k4Q62oFHVcx2z5hOVRewRQV85irU7C0SK4CHuo6n8wLhTTn1npzwS4BVMuocXNNp9MiK62jg==} peerDependencies: - '@tanstack/react-query': ^5.90.8 + '@tanstack/react-query': ^5.100.10 next: ^13 || ^14 || ^15 || ^16 react: ^18 || ^19 - '@tanstack/react-query@5.90.16': - resolution: {integrity: sha512-bpMGOmV4OPmif7TNMteU/Ehf/hoC0Kf98PDc0F4BZkFrEapRMEqI/V6YS0lyzwSV6PQpY1y4xxArUIfBW5LVxQ==} + '@tanstack/react-query@5.100.10': + resolution: {integrity: sha512-FLaZf2RCrA/Zgp4aiu5tG3TyasTRO7aZ99skxQpr3Hg/zXOhu6yq5FZCYQ/tRaJtM9ylnoK8tFK7PolXQadv6Q==} peerDependencies: react: ^18 || ^19 @@ -4472,227 +5156,224 @@ packages: '@tanstack/virtual-core@3.11.2': resolution: {integrity: sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==} - '@testcontainers/mysql@11.11.0': - resolution: {integrity: sha512-2EfFhUDEvEdwBwez+F/NhqP+h2rFzLzHYbRX0N/9/Lgdlq8TbsYWZ9SaWL9V0f1FWX89XnyZrT3i/j7m8MIESg==} + '@testcontainers/mysql@11.14.0': + resolution: {integrity: sha512-0/OKd1gOvnl0qS+RIpmT6J0XKWpjkVyIbOtS3cFTVR8t6Ps7W9TV0U+zp7FPxCmitWuWYPXwH/+RQXF+1jZuZQ==} - '@testcontainers/postgresql@11.11.0': - resolution: {integrity: sha512-Og64I/h5LKLVvUTkAcLeTXfFcMhh3dCHCypN3Uzd+tQMd70SpCfQ0LCP9v/U+MS7JBRzU9EmqhUFkTOm4hyZWw==} + '@testcontainers/postgresql@11.14.0': + resolution: {integrity: sha512-wYbJn8GRTj8qfqzfVubxioYWlHJU/ImIjuzPwyy9C5Qfo6g3GLduPZAj+BifvqTZjgT3gd4gFVLCPhBji7dc1w==} - '@testcontainers/redis@11.11.0': - resolution: {integrity: sha512-IaDPNd1jRkshwJ69D7Nc3OTt5QQG1d4G1TZILSQ7gAVr4OqAJxoA9pV73ZvKIF/8LwxDDg136ApPlU9PcFtIKg==} + '@testcontainers/redis@11.14.0': + resolution: {integrity: sha512-WX005slz2JMQPw2avbSjf5awVjpmFhOs5xCxeGSYLcV5ia4W1edv/P6MdOw4dZnvDQDuN5LfqNoV/ut3XGb2pA==} - '@tiptap/core@3.15.3': - resolution: {integrity: sha512-bmXydIHfm2rEtGju39FiQNfzkFx9CDvJe+xem1dgEZ2P6Dj7nQX9LnA1ZscW7TuzbBRkL5p3dwuBIi3f62A66A==} + '@tiptap/core@3.23.4': + resolution: {integrity: sha512-ni2LWE52bVeSt3L2HVBSmbBw+elc32ATej9C68EyKzN/8vR5ILxFn6RCdDTKm4asmwZyq2jys12dKmBdWMr9QA==} peerDependencies: - '@tiptap/pm': ^3.15.3 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-blockquote@3.15.3': - resolution: {integrity: sha512-13x5UsQXtttFpoS/n1q173OeurNxppsdWgP3JfsshzyxIghhC141uL3H6SGYQLPU31AizgDs2OEzt6cSUevaZg==} + '@tiptap/extension-blockquote@3.23.4': + resolution: {integrity: sha512-7YjSibNlPcy9eGK+tHt5G/Njr7nPxl+rZ3rCC6TwtLIRLSHPnoGDsfFOgTPkXxaQcE1a/VQwemnYfWc3kdIjDQ==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-bold@3.15.3': - resolution: {integrity: sha512-I8JYbkkUTNUXbHd/wCse2bR0QhQtJD7+0/lgrKOmGfv5ioLxcki079Nzuqqay3PjgYoJLIJQvm3RAGxT+4X91w==} + '@tiptap/extension-bold@3.23.4': + resolution: {integrity: sha512-3L9tnZ12i+98u5df2nV2zGu/sc3rhI87E3ocn1YYAO8PJUAgZnMwdet8JawCrS1uut5sRKlxo3SXEmdNfRVm/w==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-bubble-menu@3.15.3': - resolution: {integrity: sha512-e88DG1bTy6hKxrt7iPVQhJnH5/EOrnKpIyp09dfRDgWrrW88fE0Qjys7a/eT8W+sXyXM3z10Ye7zpERWsrLZDg==} + '@tiptap/extension-bubble-menu@3.23.4': + resolution: {integrity: sha512-EPTpL/IFp/aTGZErBq/Mc3dKznj6G/qNEkVYWjueOn1oKApyT0P6WVHGvu/vpMdErhzmoGDuFPPGVS6T8Upx2Q==} peerDependencies: - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-bullet-list@3.15.3': - resolution: {integrity: sha512-MGwEkNT7ltst6XaWf0ObNgpKQ4PvuuV3igkBrdYnQS+qaAx9IF4isygVPqUc9DvjYC306jpyKsNqNrENIXcosA==} + '@tiptap/extension-bullet-list@3.23.4': + resolution: {integrity: sha512-mXB2KZOz1R+E6VNTZ3vzdAk7ZDGKjPmsJEZIQg1B5qRycTKg49/rCCkLA2QnqAwX6BzS3mLLH1RWE2W0oXD7vg==} peerDependencies: - '@tiptap/extension-list': ^3.15.3 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-code-block@3.15.3': - resolution: {integrity: sha512-q1UB9icNfdJppTqMIUWfoRKkx5SSdWIpwZoL2NeOI5Ah3E20/dQKVttIgLhsE521chyvxCYCRaHD5tMNGKfhyw==} + '@tiptap/extension-code-block@3.23.4': + resolution: {integrity: sha512-UEU1w/85CSNKktbhESnIRmtjKcH7DeschReZA8err1wAnYLTKzid5ucnJSJ25iRg2V5Fnuws5gnPT5CVgdfXCQ==} peerDependencies: - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-code@3.15.3': - resolution: {integrity: sha512-x6LFt3Og6MFINYpsMzrJnz7vaT9Yk1t4oXkbJsJRSavdIWBEBcoRudKZ4sSe/AnsYlRJs8FY2uR76mt9e+7xAQ==} + '@tiptap/extension-code@3.23.4': + resolution: {integrity: sha512-C0TeRipMycUEBnV+Mzx6eLp/yZb6Vi/waP3Tkb0lO5/ikg7LWLB7AlmMunjIXEUcR/pJHID/aEh5PfJFpysUDg==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-color@3.15.3': - resolution: {integrity: sha512-GS+LEJ7YC7J6CiQ/caTDVyKg+ZlU4B5ofzAZ0iCWPahjMyUUZImzXvoRlfMumAiPG+IUW9PC2BztSGd3SCLpGA==} + '@tiptap/extension-color@3.23.4': + resolution: {integrity: sha512-8phVTsRgvT+0wnDh+z6eIIa0IksVRnLKM2Av89vPHOFUhCt/bJdolAfXSC+eWqxjgoYOikzi5yk3QHYbGvOu1Q==} peerDependencies: - '@tiptap/extension-text-style': ^3.15.3 + '@tiptap/extension-text-style': 3.23.4 - '@tiptap/extension-document@3.15.3': - resolution: {integrity: sha512-AC72nI2gnogBuETCKbZekn+h6t5FGGcZG2abPGKbz/x9rwpb6qV2hcbAQ30t6M7H6cTOh2/Ut8bEV2MtMB15sw==} + '@tiptap/extension-document@3.23.4': + resolution: {integrity: sha512-YC4G6VkxT629rlqUTwD6XvOpxjvghn7fxrK4RbyKVJY2C6E1vgmX0won1Ast6v+qTE6iONOMS6f6VyPxSGjg4w==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-dropcursor@3.15.3': - resolution: {integrity: sha512-jGI5XZpdo8GSYQFj7HY15/oEwC2m2TqZz0/Fln5qIhY32XlZhWrsMuMI6WbUJrTH16es7xO6jmRlDsc6g+vJWg==} + '@tiptap/extension-dropcursor@3.23.4': + resolution: {integrity: sha512-ujJQUIENk0RwVFCh5g/TOSEv1a7Pnam/cjHmSUqHWUNZkYS9aOqjm+JfURJPCinRS2oHvo3AARul5mkKgDJYcA==} peerDependencies: - '@tiptap/extensions': ^3.15.3 + '@tiptap/extensions': 3.23.4 - '@tiptap/extension-floating-menu@3.15.3': - resolution: {integrity: sha512-+3DVBleKKffadEJEdLYxmYAJOjHjLSqtiSFUE3RABT4V2ka1ODy2NIpyKX0o1SvQ5N1jViYT9Q+yUbNa6zCcDw==} + '@tiptap/extension-floating-menu@3.23.4': + resolution: {integrity: sha512-eAc72bKM26yIPx0jsU8qdjE71vFNVu5R9jGbdItBMFc0SPLS4qY8g+8RJ+iWoLwbcSEpgooLS9D9sLfdAU+Tvw==} peerDependencies: '@floating-ui/dom': ^1.0.0 - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-gapcursor@3.15.3': - resolution: {integrity: sha512-Kaw0sNzP0bQI/xEAMSfIpja6xhsu9WqqAK/puzOIS1RKWO47Wps/tzqdSJ9gfslPIb5uY5mKCfy8UR8Xgiia8w==} + '@tiptap/extension-gapcursor@3.23.4': + resolution: {integrity: sha512-RuyvOlIGP6UpVOc0Lw0L63jKLtYM49CNhPV2OMSfwwwbBZ3pJGos2/SqpYg71d3sn+qpsAopS4Pfr8iPZog73A==} peerDependencies: - '@tiptap/extensions': ^3.15.3 + '@tiptap/extensions': 3.23.4 - '@tiptap/extension-hard-break@3.15.3': - resolution: {integrity: sha512-8HjxmeRbBiXW+7JKemAJtZtHlmXQ9iji398CPQ0yYde68WbIvUhHXjmbJE5pxFvvQTJ/zJv1aISeEOZN2bKBaw==} + '@tiptap/extension-hard-break@3.23.4': + resolution: {integrity: sha512-ODlpZCi7n136BH9luM09EFL8Pg+bbRCd0tzCQM5BKMXRkLitYZA8Gl/f5DLmGJ50wzFsDPXK2Br2g9UvZK7COg==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-heading@3.15.3': - resolution: {integrity: sha512-G1GG6iN1YXPS+75arDpo+bYRzhr3dNDw99c7D7na3aDawa9Qp7sZ/bVrzFUUcVEce0cD6h83yY7AooBxEc67hA==} + '@tiptap/extension-heading@3.23.4': + resolution: {integrity: sha512-8W9Hqi0J69Xbqg08nPf4xRMJXMccaKFAgUE1tvy5PAWJSQxOMwkKQXgZXxwe+80sOMUnV8qveBqUy/ODMPgAxQ==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-highlight@3.15.3': - resolution: {integrity: sha512-ZZyuKGW4WrMx3pBEfsHqOcqEklfiiAjVuvhji9FJcip1w0B2OnMWkgZw7rdAlsQG8pGH6NWh9Gf2DOUsjuAa6A==} + '@tiptap/extension-highlight@3.23.4': + resolution: {integrity: sha512-OyCnpFpLRWg9sWlXVMIsvo2bpf4cp7Gdz5b57eceNsr4Cm5RcHtJTiziKO6kSrSYLWdoL4T9m3SNvF5/7ekx0g==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-horizontal-rule@3.15.3': - resolution: {integrity: sha512-FYkN7L6JsfwwNEntmLklCVKvgL0B0N47OXMacRk6kYKQmVQ4Nvc7q/VJLpD9sk4wh4KT1aiCBfhKEBTu5pv1fg==} + '@tiptap/extension-horizontal-rule@3.23.4': + resolution: {integrity: sha512-EA4kK8ywZ4dQNOdxeZbplmDDs5T5LjMgHpqxRwukj9wwKiILOK5E3fcKm1fCKh9Q02w96jax6YVccHwmgJP3sQ==} peerDependencies: - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-image@3.15.3': - resolution: {integrity: sha512-Tjq9BHlC/0bGR9/uySA0tv6I1Ua1Q5t5P/mdbWyZi4JdUpKHRfgenzfXF5DYnklJ01QJ7uOPSp9sAGgPzBixtQ==} + '@tiptap/extension-image@3.23.4': + resolution: {integrity: sha512-qandp5HLRl+n8D61+LCT67qtb1uSKffyEGD0fVTkg/RfbyFsJvCDFbjVEoiIG8JOx8O5DehgrDCvS35QOWgr2A==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-italic@3.15.3': - resolution: {integrity: sha512-6XeuPjcWy7OBxpkgOV7bD6PATO5jhIxc8SEK4m8xn8nelGTBIbHGqK37evRv+QkC7E0MUryLtzwnmmiaxcKL0Q==} + '@tiptap/extension-italic@3.23.4': + resolution: {integrity: sha512-jUAHi+HZlg47BzgVIy6y/UH5vev7vPQ95jddhB5K3hC122kvWFMXlken7UOnqzbxNcHs2+4Oi/ZJirYMpT4P5w==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-link@3.15.3': - resolution: {integrity: sha512-PdDXyBF9Wco9U1x6e+b7tKBWG+kqBDXDmaYXHkFm/gYuQCQafVJ5mdrDdKgkHDWVnJzMWZXBcZjT9r57qtlLWg==} + '@tiptap/extension-link@3.23.4': + resolution: {integrity: sha512-XjxltY7MomwfTs6jmN6Bw5bb/upb34lpyqv2RiXppFTK25Br7ipksRjUpWpB4/csZeg30qwrLGVKxCol38ffrw==} peerDependencies: - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-list-item@3.15.3': - resolution: {integrity: sha512-CCxL5ek1p0lO5e8aqhnPzIySldXRSigBFk2fP9OLgdl5qKFLs2MGc19jFlx5+/kjXnEsdQTFbGY1Sizzt0TVDw==} + '@tiptap/extension-list-item@3.23.4': + resolution: {integrity: sha512-Q/JXosShD5oyDwukE6igdrZD2lb0ZgyoQTHYchk0pzU4frClFbn3RI1wKP+XeqKLhdO6KH2WZ9rERGH7PtDi7Q==} peerDependencies: - '@tiptap/extension-list': ^3.15.3 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-list-keymap@3.15.3': - resolution: {integrity: sha512-UxqnTEEAKrL+wFQeSyC9z0mgyUUVRS2WTcVFoLZCE6/Xus9F53S4bl7VKFadjmqI4GpDk5Oe2IOUc72o129jWg==} + '@tiptap/extension-list-keymap@3.23.4': + resolution: {integrity: sha512-9FezifCfuoc0o+5K6l4QNOOfelqxnDGg/f9oL1D/LFZPC54bPxpWWft9QCWOqyqZgyLCLjbCjciAlbgkrFUmmw==} peerDependencies: - '@tiptap/extension-list': ^3.15.3 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-list@3.15.3': - resolution: {integrity: sha512-n7y/MF9lAM5qlpuH5IR4/uq+kJPEJpe9NrEiH+NmkO/5KJ6cXzpJ6F4U17sMLf2SNCq+TWN9QK8QzoKxIn50VQ==} + '@tiptap/extension-list@3.23.4': + resolution: {integrity: sha512-yuauDm6qW/7q+ZO0YJBKQEGdnUm6DDTJM8AMp9bMZrT4jRf/zyUtNcZ91QEfFvBcyVuI+10PIOXtNPevhQ741Q==} peerDependencies: - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-ordered-list@3.15.3': - resolution: {integrity: sha512-/8uhw528Iy0c9wF6tHCiIn0ToM0Ml6Ll2c/3iPRnKr4IjXwx2Lr994stUFihb+oqGZwV1J8CPcZJ4Ufpdqi4Dw==} + '@tiptap/extension-ordered-list@3.23.4': + resolution: {integrity: sha512-+3ofyssYnOTa1+nFWEmCAY1ngn8nAV1xo25JnNNC87NMU9WkSgr93jB7/uUJP0uui1C2dBLlaup3XXm108yarw==} peerDependencies: - '@tiptap/extension-list': ^3.15.3 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-paragraph@3.15.3': - resolution: {integrity: sha512-lc0Qu/1AgzcEfS67NJMj5tSHHhH6NtA6uUpvppEKGsvJwgE2wKG1onE4isrVXmcGRdxSMiCtyTDemPNMu6/ozQ==} + '@tiptap/extension-paragraph@3.23.4': + resolution: {integrity: sha512-KbhXjCFzWphvFn5VU7E4dtmYDm+bssI1i0+CnXPWCXkjdaaX88ck68Xp1fKz8/bbI/CqlgiNDO/3TvqgtZ6woQ==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-placeholder@3.15.3': - resolution: {integrity: sha512-XcHHnojT186hKIoOgcPBesXk89+caNGVUdMtc171Vcr/5s0dpnr4q5LfE+YRC+S85CpCxCRRnh84Ou+XRtOqrw==} + '@tiptap/extension-placeholder@3.23.4': + resolution: {integrity: sha512-yHtAZkFR9M2AQmCi555w4ns1BBCqwRyYDYMtd10DBvqPX7T3TmGerPdUfI6sLr74GxnZ5zHOnOYdwAbeG5JzNw==} peerDependencies: - '@tiptap/extensions': ^3.15.3 + '@tiptap/extensions': 3.23.4 - '@tiptap/extension-strike@3.15.3': - resolution: {integrity: sha512-Y1P3eGNY7RxQs2BcR6NfLo9VfEOplXXHAqkOM88oowWWOE7dMNeFFZM9H8HNxoQgXJ7H0aWW9B7ZTWM9hWli2Q==} + '@tiptap/extension-strike@3.23.4': + resolution: {integrity: sha512-Vnq5vW801zPbu1LtKeA5k4R241jY+hRjXeijYwIPxy15KzIiipY12518HiCf6/8kkRbMxgOfdYg9X4BRV3HV3g==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-table-cell@3.15.3': - resolution: {integrity: sha512-n09p9Beq7S36IPaTfWslZ6cvBr8jg7eLNg/2AuW0lwUm5PmKIHc2+HwewtFzkrBCBBKJsfPKZn8bXZNggYshVQ==} + '@tiptap/extension-table-cell@3.23.4': + resolution: {integrity: sha512-GmLLF9w7ExXhieshDnwC2U4kE8EM3TliDnHYX7uXOnSptWqASku6hOFw0f1AT5MDJog9NPzRo+adGVRHS9kjTQ==} peerDependencies: - '@tiptap/extension-table': ^3.15.3 + '@tiptap/extension-table': 3.23.4 - '@tiptap/extension-table-header@3.15.3': - resolution: {integrity: sha512-3NTzfqzCkLxUSMlu/UcqD8Ol9HfDPaxyACkU2W9+EZsOQ19KogfwZYOlTWi7+jI0TkBIq2EKZwzBoplT+WD4oQ==} + '@tiptap/extension-table-header@3.23.4': + resolution: {integrity: sha512-5IXIHjpCpuZ06SmOoVsnK4VoOhd/G6yLiDtP3Azcf+KUI5539ryWE9I9EAqgalV2HcJMMYX9MQpl5WReHRGETw==} peerDependencies: - '@tiptap/extension-table': ^3.15.3 + '@tiptap/extension-table': 3.23.4 - '@tiptap/extension-table-row@3.15.3': - resolution: {integrity: sha512-fNQnZA6SMiFWZMyaaS1Uhk4GtWBfCA74sIWTAEnz60VN8w5NpoOOB9DM6sQ3NeM6KP78sNEbyjtWx7xRMQVpLg==} + '@tiptap/extension-table-row@3.23.4': + resolution: {integrity: sha512-kqQt0I4cm2E+NNLpZ5rtox53Vgzyy19ZczvJ66Ao6BZkXXKqYXSRJc4q0jGNPX8hHhvHBpHmffcz5hdT/1XtNQ==} peerDependencies: - '@tiptap/extension-table': ^3.15.3 + '@tiptap/extension-table': 3.23.4 - '@tiptap/extension-table@3.15.3': - resolution: {integrity: sha512-dJk0u2JX1J/3x/ps641qdxQPOiie5txQhs2M1srgDeeFu//ORCePAxryJCw1bgf0TEVwFWwFTCtcOFR5SSgMZQ==} + '@tiptap/extension-table@3.23.4': + resolution: {integrity: sha512-TRh6JMTRYXCWpwavGt3aAHH2f51ZzkhurfW3XvrURG3It8MvfuuY1xB1xba1ss5c0QLWlrKx6GVaSXrUCdFLlg==} peerDependencies: - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-task-item@3.15.3': - resolution: {integrity: sha512-bkrmouc1rE5n9ONw2G7+zCGfBRoF2HJWq8REThPMzg/6+L5GJJ5YTN4UmncaP48U9jHX8xeihjgg9Ypenjl4lw==} + '@tiptap/extension-task-item@3.23.4': + resolution: {integrity: sha512-b6lmmwCcF5/9WetpgnSa5gxq/dRpJNJNvl4om/XKVRsvC9MQ3GwJMnhjPmcIneop4M5n++644+PJRu/N03uM7w==} peerDependencies: - '@tiptap/extension-list': ^3.15.3 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-task-list@3.15.3': - resolution: {integrity: sha512-nh8iBk1LHVIoqxphLoqZlLAN9fF2i9ZeK+2TjGSS35lfh7sYzRoSjNW0E81Uy48YuCzM1NQYghYR5Qfc7vm4jA==} + '@tiptap/extension-task-list@3.23.4': + resolution: {integrity: sha512-WIz4MHvPZssS5pNTTn2BuriCNrHA6jeS1XiRIqJFrvRXj7Kc9scXtGpne3GmisXDDeDKcP1IjREwQO9nlD8mVw==} peerDependencies: - '@tiptap/extension-list': ^3.15.3 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-text-align@3.15.3': - resolution: {integrity: sha512-hkLeEKm44aqimyjv+D8JUxzDG/iNjDrSCGvGrMOPcpaKn4f8C5z1EKnEufT61RitNPBAxQMXUhmGQUNrmlICmQ==} + '@tiptap/extension-text-align@3.23.4': + resolution: {integrity: sha512-A3WVhAs6YFlkfa7hNgps21QLfitNZyWFBBepQusX35sz6BlaHSy9GVrTR/JjGwGIxhNoqU2SGApvf2xTuX89gQ==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-text-style@3.15.3': - resolution: {integrity: sha512-/M7fuGRPVkeM14rQ1bNiLZUs2N+FuVhIsLEwNKKk7GaTGKHzmkC1b2COmbICivuFYf90KWzaG0R+Pm7cnW6KaA==} + '@tiptap/extension-text-style@3.23.4': + resolution: {integrity: sha512-jb9PBkvqqn14ju37VMYOmmva9t9Th7vutoio9iB7etcu4XhL/4Z8rYPZmO+9+HLros2TQ/1JeCNZzc8LzcuBiA==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-text@3.15.3': - resolution: {integrity: sha512-MhkBz8ZvrqOKtKNp+ZWISKkLUlTrDR7tbKZc2OnNcUTttL9dz0HwT+cg91GGz19fuo7ttDcfsPV6eVmflvGToA==} + '@tiptap/extension-text@3.23.4': + resolution: {integrity: sha512-q9kxver/MR18p66aWZHSPycnr9hcBFyVGeGj8gf+BQCzn5hpvtSYTfLvk1nq8GFhygdQ9/e3f7B5ovrm/jnpvw==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extension-underline@3.15.3': - resolution: {integrity: sha512-r/IwcNN0W366jGu4Y0n2MiFq9jGa4aopOwtfWO4d+J0DyeS2m7Go3+KwoUqi0wQTiVU74yfi4DF6eRsMQ9/iHQ==} + '@tiptap/extension-underline@3.23.4': + resolution: {integrity: sha512-F1ocPT10LV+seky25R1TMCRdc/Iof99jLcDSYDGr6mNEDY4ct2RvOeSM8aDdYq6CkH+vXt3i3JDeRwV23KzswQ==} peerDependencies: - '@tiptap/core': ^3.15.3 + '@tiptap/core': 3.23.4 - '@tiptap/extensions@3.15.3': - resolution: {integrity: sha512-ycx/BgxR4rc9tf3ZyTdI98Z19yKLFfqM3UN+v42ChuIwkzyr9zyp7kG8dB9xN2lNqrD+5y/HyJobz/VJ7T90gA==} + '@tiptap/extensions@3.23.4': + resolution: {integrity: sha512-SlGPXauW8iKWG7wwuwC/0y/smLImp0h6GBIGgNnTBgIP/ThXQnjLMSZH0mW/REO87dQxkku01V3ARRywi+juhg==} peerDependencies: - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/pm@3.15.3': - resolution: {integrity: sha512-Zm1BaU1TwFi3CQiisxjgnzzIus+q40bBKWLqXf6WEaus8Z6+vo1MT2pU52dBCMIRaW9XNDq3E5cmGtMc1AlveA==} + '@tiptap/pm@3.23.4': + resolution: {integrity: sha512-+C5ngcoza47n3MjtjVBqBEBICPC0McdbwzJ+X6SSCviCLoqnSYanv5mIX9HWG0Q4fJ4BkdNM3VibZUxQaTbKyQ==} - '@tiptap/react@3.15.3': - resolution: {integrity: sha512-XvouB+Hrqw8yFmZLPEh+HWlMeRSjZfHSfWfWuw5d8LSwnxnPeu3Bg/rjHrRrdwb+7FumtzOnNWMorpb/PSOttQ==} + '@tiptap/react@3.23.4': + resolution: {integrity: sha512-mb5aIY9PuLreOVLExqs+8BAI20I/8+jCUBfEIqheuFY2GRRuBiwczejSlYuADfVDBbPVN5uPw4UMADCaH5wueQ==} peerDependencies: - '@tiptap/core': ^3.15.3 - '@tiptap/pm': ^3.15.3 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 '@types/react-dom': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tiptap/starter-kit@3.15.3': - resolution: {integrity: sha512-ia+eQr9Mt1ln2UO+kK4kFTJOrZK4GhvZXFjpCCYuHtco3rhr2fZAIxEEY4cl/vo5VO5WWyPqxhkFeLcoWmNjSw==} - - '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@tiptap/starter-kit@3.23.4': + resolution: {integrity: sha512-3VhU+NO6/ec9DMj/5Ej0nzARSq42cXnqW+QHCmTL3FNXkXQz+tw1KlfruT5GGJ3M0RssjWjRC0a39N/4S3qxeA==} '@tree-sitter-grammars/tree-sitter-yaml@0.7.1': resolution: {integrity: sha512-AynBwkIoQCTgjDR33bDUp9Mqq+YTco0is3n5hRApMqG9of/6A4eQsfC1/uSEeHSUyMQSYawcAWamsexnVpIP4Q==} @@ -4702,19 +5383,21 @@ packages: tree-sitter: optional: true - '@trpc/client@11.8.1': - resolution: {integrity: sha512-L/SJFGanr9xGABmuDoeXR4xAdHJmsXsiF9OuH+apecJ+8sUITzVT1EPeqp0ebqA6lBhEl5pPfg3rngVhi/h60Q==} + '@trpc/client@11.17.0': + resolution: {integrity: sha512-KpJBFrbKTDeVCFv/3ckL1XBBH5Yssn8hethI/rUy7GIpTj+VzjtPjykDqJpzobuVOz+d26cXCSu1t4I6MYI5Zg==} + hasBin: true peerDependencies: - '@trpc/server': 11.8.1 + '@trpc/server': 11.17.0 typescript: '>=5.7.2' - '@trpc/next@11.8.1': - resolution: {integrity: sha512-nn9e7+k4uWaZnB2fruH1qoBKni2LG+FRNxvddp1pFzjsyNFdPWFiHWKTM8/McDFw6GQ2CorXs+ceCfgFNA+9zQ==} + '@trpc/next@11.17.0': + resolution: {integrity: sha512-EjwMkyamGjf5aslgfYB70hMKs4cgmsjSJbMinmuXktkGvbmdW54VbV04Sk4o4QTY5b//Rns9dz+ku8DN6lVhvw==} + hasBin: true peerDependencies: '@tanstack/react-query': ^5.59.15 - '@trpc/client': 11.8.1 - '@trpc/react-query': 11.8.1 - '@trpc/server': 11.8.1 + '@trpc/client': 11.17.0 + '@trpc/react-query': 11.17.0 + '@trpc/server': 11.17.0 next: '*' react: '>=16.8.0' react-dom: '>=16.8.0' @@ -4725,56 +5408,67 @@ packages: '@trpc/react-query': optional: true - '@trpc/react-query@11.8.1': - resolution: {integrity: sha512-0Vu55ld/oINb4U6nIPPi7eZMhxUop6K+4QUK90RVsfSD5r+957sM80M4c8bjh/JBZUxMFv9JOhxxlWcrgHxHow==} + '@trpc/react-query@11.17.0': + resolution: {integrity: sha512-AGcl5YAF8NnhBmyJ6PqJqKb1M5VTGSoNRNqJ3orct4o4epdcg0GWhW+qT9q6gPzs/2ImIwYCdfFpgNGdZ9yLHA==} peerDependencies: '@tanstack/react-query': ^5.80.3 - '@trpc/client': 11.8.1 - '@trpc/server': 11.8.1 + '@trpc/client': 11.17.0 + '@trpc/server': 11.17.0 react: '>=18.2.0' - react-dom: '>=18.2.0' typescript: '>=5.7.2' - '@trpc/server@11.8.1': - resolution: {integrity: sha512-P4rzZRpEL7zDFgjxK65IdyH0e41FMFfTkQkuq0BA5tKcr7E6v9/v38DEklCpoDN6sPiB1Sigy/PUEzHENhswDA==} + '@trpc/server@11.17.0': + resolution: {integrity: sha512-jbAOUe0PpUTCYqziyu+8vYXZdDXPudZgnEhWCQ2NjKnVEjfE93RqHTt1oycZJv/HNf51YlRXfEEwSIAbb161rw==} + hasBin: true peerDependencies: typescript: '>=5.7.2' - '@trpc/tanstack-react-query@11.8.1': - resolution: {integrity: sha512-0gBbRmRuU9/IVZgNFJuzY7k6ktnkmqjyP78PtcUBO7EgPlBu1y2MA2TdI5GT/VtNNOOhzkVeQpJqtt+0xQ8TOQ==} + '@trpc/tanstack-react-query@11.17.0': + resolution: {integrity: sha512-OFxjvCgisP0yaCj7lgP6qPaFwJvJDgnrAUxH3cNIPPR89TpYbndn5vsdKNkc7EnvER9b6wq9Yz8aCcPcOBpDXg==} + hasBin: true peerDependencies: '@tanstack/react-query': ^5.80.3 - '@trpc/client': 11.8.1 - '@trpc/server': 11.8.1 + '@trpc/client': 11.17.0 + '@trpc/server': 11.17.0 react: '>=18.2.0' - react-dom: '>=18.2.0' typescript: '>=5.7.2' - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + '@turbo/darwin-64@2.9.14': + resolution: {integrity: sha512-t7QiPflaEyBE4oayeZtSmu4mEfjgIrcNlNNl1z1dmIVPqEdtA7+CfTf8d7KXsOGPh6aNgWjKxyvQg9uGfDQF+A==} + cpu: [x64] + os: [darwin] - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + '@turbo/darwin-arm64@2.9.14': + resolution: {integrity: sha512-d23147mC9BsCPA9mJ0h/ubcpbRgcJBXbcG3+Vq7YLhjz3IXuvQsJ1UXH8f4MD76ZjJ4m/E4aRdJV+MW88CDfbw==} + cpu: [arm64] + os: [darwin] - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@tsconfig/svelte@1.0.13': - resolution: {integrity: sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA==} - - '@turbo/gen@2.7.3': - resolution: {integrity: sha512-lvjv1/fwUewFqew/qdNM//6cC32EIjEAJ2rCx5blL4+BVX16ubHroEGUJRNQegW0hpglTztdJW6DdS3hIuqoCA==} + '@turbo/gen@2.9.14': + resolution: {integrity: sha512-TkvUzfbJj2zB0WaybYd/hzADLqq97ru0OQCiQ1DDnul5spSTq5I8If21K3vUAjKIWAQbCjDqZIPrS1IPG5bLyA==} hasBin: true - '@turbo/workspaces@2.7.3': - resolution: {integrity: sha512-opYsHNZo3qhGJ+qxLSEhNcnf+e8beha/bfinwUH857NFL7oYHsOpVtNJIiwcJYKjZjJO4XtxTLsvAo3CQ5/R5A==} - hasBin: true + '@turbo/linux-64@2.9.14': + resolution: {integrity: sha512-P3ZKB5tuUDdDQWuAsACGUR1qv9W7BNWxdxqVJ0kZNuNNPRaVYTPPikLcp79+GiEcW3npsR+KyP38lnQiBc5aSA==} + cpu: [x64] + os: [linux] - '@types/adm-zip@0.5.7': - resolution: {integrity: sha512-DNEs/QvmyRLurdQPChqq0Md4zGvPwHerAJYWk9l2jCbD1VPpnzRJorOdiq4zsw09NFbYnhfsoEhWtxIzXpn2yw==} + '@turbo/linux-arm64@2.9.14': + resolution: {integrity: sha512-ZRTlzcUMrrPv9ZuDzRF9n60Ym13bKeG9jDB8WjxyLhWNzV+AJQN+zdpIk3NJYf2zQsGUm1mNar2P0elRzLw25g==} + cpu: [arm64] + os: [linux] + + '@turbo/windows-64@2.9.14': + resolution: {integrity: sha512-exanwN6sIduZwykYeiTQj8kCmOhazP5WOz3bvXMcYtjhL6Z3iRWLewKrXCBq0bqwSP3iBMb/AerRCnHI4lx46A==} + cpu: [x64] + os: [win32] + + '@turbo/windows-arm64@2.9.14': + resolution: {integrity: sha512-fVdCsnmYoKICsycbWuuGp6Jvi51/3G/UluFWuAUCvR8PIW5IJkAk5BM9UF8PSm0Q2IphWHFZjYEgjHsh3B9y/g==} + cpu: [arm64] + os: [win32] + + '@types/adm-zip@0.5.8': + resolution: {integrity: sha512-RVVH7QvZYbN+ihqZ4kX/dMiowf6o+Jk1fNwiSdx0NahBJLU787zkULhGhJM8mf/obmLGmgdMM0bXsQTmyfbR7Q==} '@types/aws-lambda@8.10.146': resolution: {integrity: sha512-3BaDXYTh0e6UCJYL/jwV/3+GRslSc08toAiZSmleYtkAUyV5rtvdPYxrG/88uqvTuT6sb27WE9OS90ZNTIuQ0g==} @@ -4809,21 +5503,12 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/cookie@0.4.1': - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - '@types/cookies@0.9.2': resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} - '@types/cors@2.8.17': - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} - '@types/crypto-js@4.2.2': resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} - '@types/css-font-loading-module@0.0.7': - resolution: {integrity: sha512-nl09VhutdjINdWyXxHWN/w9zlNCfr60JUqJbd24YXUuCwgeL0TpFSdElCwb6cxfB6ybE19Gjj4g0jsgkXxKv1Q==} - '@types/css-modules@1.0.5': resolution: {integrity: sha512-oeKafs/df9lwOvtfiXVliZsocFVOexK9PZtLQWuPeuVCFR7jwiqlg60lu80JTe5NFNtH3tnV6Fs/ySR8BUPHAw==} @@ -4863,8 +5548,11 @@ packages: '@types/docker-modem@3.0.6': resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} - '@types/dockerode@3.3.47': - resolution: {integrity: sha512-ShM1mz7rCjdssXt7Xz0u1/R2BJC7piWa3SJpUBiVjCf2A3XNn4cP6pUVaD8bLanpPVVn4IKzJuw3dOvkJ8IbYw==} + '@types/dockerode@4.0.1': + resolution: {integrity: sha512-cmUpB+dPN955PxBEuXE3f6lKO1hHiIGYJA46IVF3BJpNsZGvtBDcRnlrHYHtOH/B6vtDOyl2kZ2ShAu3mgc27Q==} + + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -4878,18 +5566,12 @@ packages: '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/inquirer@6.5.0': - resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} - '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} @@ -4902,30 +5584,15 @@ packages: '@types/keygrip@1.0.6': resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} - '@types/linkify-it@5.0.0': - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - - '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/mdurl@2.0.0': - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node-cron@3.0.11': - resolution: {integrity: sha512-0ikrnug3/IyneSHqCBeslAhlK2aBfYek1fGo4bP4QnZPmiqSGRK+Oy7ZMisLWkesffJvQ1cqAcBnJC+8+nxIAg==} - '@types/node-fetch@2.6.13': resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} @@ -4935,17 +5602,17 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@24.10.7': - resolution: {integrity: sha512-+054pVMzVTmRQV8BhpGv3UyfZ2Llgl8rdpDTon+cUH9+na0ncBVXj3wTUKh14+Kiz18ziM3b4ikpP5/Pc0rQEQ==} + '@types/node@24.12.4': + resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/pg@8.16.0': - resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==} + '@types/pg@8.20.0': + resolution: {integrity: sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==} - '@types/prismjs@1.26.5': - resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} + '@types/prismjs@1.26.6': + resolution: {integrity: sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==} '@types/qs@6.9.16': resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} @@ -4961,8 +5628,8 @@ packages: peerDependencies: '@types/react': ^19.2.0 - '@types/react@19.2.8': - resolution: {integrity: sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==} + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -4988,12 +5655,6 @@ packages: '@types/swagger-ui-react@5.18.0': resolution: {integrity: sha512-c2M9adVG7t28t1pq19K9Jt20VLQf0P/fwJwnfcmsVVsdkwCWhRmbKDu+tIs0/NGwJ/7GY8lBx+iKZxuDI5gDbw==} - '@types/through@0.0.33': - resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} - - '@types/tinycolor2@1.4.6': - resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - '@types/triple-beam@1.3.5': resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} @@ -5018,63 +5679,63 @@ packages: '@types/xml2js@0.4.14': resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} - '@typescript-eslint/eslint-plugin@8.52.0': - resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} + '@typescript-eslint/eslint-plugin@8.58.2': + resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.52.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/parser': ^8.58.2 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.52.0': - resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} + '@typescript-eslint/parser@8.58.2': + resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.52.0': - resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + '@typescript-eslint/project-service@8.58.2': + resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.52.0': - resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} + '@typescript-eslint/scope-manager@8.58.2': + resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.52.0': - resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + '@typescript-eslint/tsconfig-utils@8.58.2': + resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.52.0': - resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} + '@typescript-eslint/type-utils@8.58.2': + resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.52.0': - resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} + '@typescript-eslint/types@8.58.2': + resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.52.0': - resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + '@typescript-eslint/typescript-estree@8.58.2': + resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.52.0': - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + '@typescript-eslint/utils@8.58.2': + resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.52.0': - resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} + '@typescript-eslint/visitor-keys@8.58.2': + resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@umami/node@0.4.0': @@ -5082,9 +5743,10 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher - '@videojs/http-streaming@3.17.2': - resolution: {integrity: sha512-VBQ3W4wnKnVKb/limLdtSD2rAd5cmHN70xoMf4OmuDd0t2kfJX04G+sfw6u2j8oOm2BXYM9E1f4acHruqKnM1g==} + '@videojs/http-streaming@3.17.4': + resolution: {integrity: sha512-XAvdG2dolBuV2Fx8bu1kjmQ2D4TonGzZH68Pgv/O9xMSFWdZtITSMFismeQLEAtMmGwze8qNJp3RgV+jStrJqg==} engines: {node: '>=8', npm: '>=5'} peerDependencies: video.js: ^8.19.0 @@ -5100,54 +5762,54 @@ packages: '@videojs/xhr@2.7.0': resolution: {integrity: sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==} - '@vitejs/plugin-react@5.1.2': - resolution: {integrity: sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==} + '@vitejs/plugin-react@5.2.0': + resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: '>=7.3.1' + vite: '>=8.0.13' - '@vitest/coverage-v8@4.0.16': - resolution: {integrity: sha512-2rNdjEIsPRzsdu6/9Eq0AYAzYdpP6Bx9cje9tL3FE5XzXRQF1fNU9pe/1yE8fCrS0HD+fBtt6gLPh6LI57tX7A==} + '@vitest/coverage-v8@4.1.6': + resolution: {integrity: sha512-36l628fQ/9a/8ihy97eOtEnvWQEdqULQOJtcaxtoNq0G1w3Mxd4szSahOaMM9/NGyZ+hyKcMtIW/WIxq0XQViQ==} peerDependencies: - '@vitest/browser': 4.0.16 - vitest: 4.0.16 + '@vitest/browser': 4.1.6 + vitest: 4.1.6 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.0.16': - resolution: {integrity: sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==} + '@vitest/expect@4.1.6': + resolution: {integrity: sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==} - '@vitest/mocker@4.0.16': - resolution: {integrity: sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==} + '@vitest/mocker@4.1.6': + resolution: {integrity: sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==} peerDependencies: msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@4.0.16': - resolution: {integrity: sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==} + '@vitest/pretty-format@4.1.6': + resolution: {integrity: sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==} - '@vitest/runner@4.0.16': - resolution: {integrity: sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==} + '@vitest/runner@4.1.6': + resolution: {integrity: sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==} - '@vitest/snapshot@4.0.16': - resolution: {integrity: sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==} + '@vitest/snapshot@4.1.6': + resolution: {integrity: sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==} - '@vitest/spy@4.0.16': - resolution: {integrity: sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==} + '@vitest/spy@4.1.6': + resolution: {integrity: sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==} - '@vitest/ui@4.0.16': - resolution: {integrity: sha512-rkoPH+RqWopVxDnCBE/ysIdfQ2A7j1eDmW8tCxxrR9nnFBa9jKf86VgsSAzxBd1x+ny0GC4JgiD3SNfRHv3pOg==} + '@vitest/ui@4.1.6': + resolution: {integrity: sha512-wiu5em68DfGv/2HFvI1Njr7JI2CHcBlQvereSzVG8my53PRxjTNOCsD9VOkRKrsJBDHmyuXvosxWZw7T91a2mw==} peerDependencies: - vitest: 4.0.16 + vitest: 4.1.6 - '@vitest/utils@4.0.16': - resolution: {integrity: sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==} + '@vitest/utils@4.1.6': + resolution: {integrity: sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -5197,9 +5859,7 @@ packages: '@xmldom/xmldom@0.8.10': resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} - - '@xstate/fsm@1.6.5': - resolution: {integrity: sha512-b5o1I6aLNeYlU/3CPlj/Z91ybk1gUsKT+5NAJI+2W4UjvS5KLG28K9v5UvNoFVjHV8PajVZ00RH3vnjyQO7ZAw==} + deprecated: this version has critical issues, please update to the latest version '@xterm/addon-canvas@0.7.0': resolution: {integrity: sha512-LF5LYcfvefJuJ7QotNRdRSPc9YASAVDeoT5uyXS/nZshZXjYplGXRECBGiznwvhNL2I8bq1Lf5MzRwstsYQ2Iw==} @@ -5225,10 +5885,6 @@ packages: abstract-logging@2.0.1: resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -5239,22 +5895,13 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} hasBin: true - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - adm-zip@0.5.16: - resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} + adm-zip@0.5.17: + resolution: {integrity: sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==} engines: {node: '>=12.0'} aes-decrypter@4.0.2: @@ -5264,6 +5911,10 @@ packages: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + agent-base@9.0.0: + resolution: {integrity: sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==} + engines: {node: '>= 20'} + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -5298,18 +5949,11 @@ packages: peerDependencies: ajv: ^8.8.2 - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} ansi-escapes@7.0.0: resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} @@ -5319,10 +5963,6 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - ansi-regex@6.2.2: resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} @@ -5353,9 +5993,6 @@ packages: resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} engines: {node: '>= 14'} - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -5372,10 +6009,6 @@ packages: arktype@2.1.20: resolution: {integrity: sha512-IZCEEXaJ8g+Ijd59WtSYwtjnqXiwM8sWQ5EjGamcto7+HVN9eK0C4p0zDlCuAwWhpqr6fIBkxPuYDl4/Mcj/+Q==} - array-buffer-byte-length@1.0.1: - 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'} @@ -5383,18 +6016,10 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - array-includes@3.1.9: resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -5403,18 +6028,10 @@ packages: resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - array.prototype.flat@1.3.3: resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} - array.prototype.flatmap@1.3.2: - 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'} @@ -5423,10 +6040,6 @@ packages: resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: - 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'} @@ -5437,20 +6050,8 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} - - ast-types@0.14.2: - resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} - engines: {node: '>=4'} - - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} - - ast-v8-to-istanbul@0.3.8: - resolution: {integrity: sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==} + ast-v8-to-istanbul@1.0.0: + resolution: {integrity: sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==} async-lock@1.4.1: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} @@ -5476,8 +6077,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - avvio@9.1.0: - resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} + avvio@9.2.0: + resolution: {integrity: sha512-2t/sy01ArdHHE0vRH5Hsay+RtCZt3dLPji7W7/MMOCEgze5b7SNDC4j5H6FnVgPkI1MTNFGzHdHrVXDDl7QSSQ==} aws-ssl-profiles@1.1.2: resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} @@ -5487,8 +6088,8 @@ packages: resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} engines: {node: '>=4'} - axios@1.12.2: - resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} + axios@1.15.0: + resolution: {integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==} axios@1.9.0: resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} @@ -5503,15 +6104,12 @@ packages: babel-plugin-react-compiler@1.0.0: resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} - babel-plugin-syntax-hermes-parser@0.21.1: - resolution: {integrity: sha512-tUCEa+EykZx3oJXc+PolKz2iwDscCJ2hCONMvEqjAb4jIQH5ZapDd5Brs2Nk4TQpSJ/1Ykz53ksQbevXbF0wxg==} - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - balanced-match@3.0.1: - resolution: {integrity: sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==} - engines: {node: '>= 16'} + balanced-match@4.0.2: + resolution: {integrity: sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==} + engines: {node: 20 || >=22} bare-events@2.5.4: resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} @@ -5546,25 +6144,13 @@ packages: base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} - base64-arraybuffer@1.0.2: - resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} - engines: {node: '>= 0.6.0'} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - base64id@2.0.0: - resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} - engines: {node: ^4.5.0 || >= 5.9} - - baseline-browser-mapping@2.8.29: - resolution: {integrity: sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA==} + baseline-browser-mapping@2.9.19: + resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} hasBin: true - basic-ftp@5.0.5: - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} - engines: {node: '>=10.0.0'} - bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} @@ -5575,9 +6161,9 @@ packages: before-after-hook@4.0.0: resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} - better-sqlite3@12.5.0: - resolution: {integrity: sha512-WwCZ/5Diz7rsF29o27o0Gcc1Du+l7Zsv7SYtVPG0X3G/uUI1LqdxrQI7c9Hs2FWpqXXERjW9hp6g3/tH7DlVKg==} - engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} + better-sqlite3@12.10.0: + resolution: {integrity: sha512-CyzaZRQKyHkB2ZInfTTl2nvT33EbDpjkLEbE8/Zck3Ll6O0qqvuGdrJ45HgtH+HykRg88ITY3AdreBGN70aBSQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x || 26.x} bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} @@ -5597,30 +6183,16 @@ packages: bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - - brace-expansion@4.0.1: - resolution: {integrity: sha512-YClrbvTCXGe70pU2JiEiPLYXO9gQkyxYeKpJIQHVS/gOs6EWMQP2RYBwjFLNT322Ji8TOC3IMPfsYCedNpzKfA==} - engines: {node: '>= 18'} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + engines: {node: 18 || 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.28.0: - resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -5641,9 +6213,6 @@ packages: resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} engines: {node: '>=10.0.0'} - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - byline@5.0.0: resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} engines: {node: '>=0.10.0'} @@ -5652,26 +6221,14 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} - engines: {node: '>= 0.4'} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 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'} - call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -5680,35 +6237,24 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camel-case@3.0.0: - resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} - camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - caniuse-lite@1.0.30001755: - resolution: {integrity: sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA==} + caniuse-lite@1.0.30001766: + resolution: {integrity: sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@6.2.1: - resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -5717,9 +6263,6 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - change-case@3.1.0: - resolution: {integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==} - char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -5736,8 +6279,8 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} chokidar@4.0.0: resolution: {integrity: sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==} @@ -5753,13 +6296,6 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} @@ -5771,34 +6307,18 @@ packages: resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} engines: {node: '>=14.16'} - cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-high@0.4.3: - resolution: {integrity: sha512-YbwZhmK0fpwVn3bsbYiYdkseXFcGvSVkX+fl0CY73PAz77Uzkr46X3Ifs4V7NgwfvCqGx+6C5zEi8SL8m9lqtg==} - hasBin: true - cli-highlight@2.1.11: resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} hasBin: true - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - cli-table3@0.6.5: resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -5814,10 +6334,6 @@ packages: resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} engines: {node: '>=20'} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -5866,10 +6382,6 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@10.0.0: - resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==} - engines: {node: '>=14'} - commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -5888,19 +6400,12 @@ packages: config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} - - constant-case@2.0.0: - resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==} - conventional-changelog-angular@8.0.0: resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} engines: {node: '>=18'} - conventional-changelog-conventionalcommits@9.1.0: - resolution: {integrity: sha512-MnbEysR8wWa8dAEvbj5xcBgJKQlX/m0lhS8DsyAAWDHdfs2faDJxTgzRYlRYpXSe7UiKrIIlB4TrBKU9q9DgkA==} + conventional-changelog-conventionalcommits@9.3.1: + resolution: {integrity: sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw==} engines: {node: '>=18'} conventional-changelog-writer@8.0.0: @@ -5927,12 +6432,11 @@ packages: cookie-es@1.2.2: resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} + cookie-es@3.0.1: + resolution: {integrity: sha512-1HqK6V6Prrm7cHzmjtCzfa370ljqPQoNeWIh5NXYqWwUI2l3DZlzjHHh25ZvJIPfwkiYnCvHykE2MIJkEVD1Rg==} - cookie@1.0.2: - resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} cookies@0.9.1: @@ -5952,10 +6456,6 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -5978,20 +6478,15 @@ packages: resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} engines: {node: '>= 14'} - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + croner@10.0.1: + resolution: {integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==} + engines: {node: '>=18.0'} cross-env@10.1.0: resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} engines: {node: '>=20'} hasBin: true - cross-fetch@4.1.0: - resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -6002,16 +6497,12 @@ packages: crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} - css-tree@3.1.0: - resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} css.escape@1.5.1: @@ -6022,10 +6513,6 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@5.3.4: - resolution: {integrity: sha512-KyOS/kJMEq5O9GdPnaf82noigg5X5DYn0kZPJTaAsCUaBizp6Xa1y9D4Qoqf/JazEXWuruErHgVXwjN5391ZJw==} - engines: {node: '>=20'} - csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -6076,40 +6563,24 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} - engines: {node: '>= 14'} - - data-urls@6.0.0: - resolution: {integrity: sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==} - engines: {node: '>=20'} - - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + data-urls@7.0.0: + resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} 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.19: - resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -6119,33 +6590,6 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -6183,9 +6627,6 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -6197,14 +6638,6 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} - engines: {node: '>= 14'} - - del@5.1.0: - resolution: {integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==} - engines: {node: '>=8'} - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -6221,14 +6654,11 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destr@2.0.3: - resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - destr@2.0.5: resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + detect-indent@7.0.2: + resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} engines: {node: '>=12.20'} detect-libc@1.0.3: @@ -6250,14 +6680,6 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -6265,18 +6687,22 @@ packages: dns-caching@0.2.9: resolution: {integrity: sha512-FSvmI/dC/HXYIyX2m7MvQt36Yut49GCw3hWaDqaTgLLmKyLs5lmv/jhmNKqWjSF2vRGTgFYL0G3mwcjLlKXj0w==} - docker-compose@1.3.0: - resolution: {integrity: sha512-7Gevk/5eGD50+eMD+XDnFnOrruFkL0kSd7jEG4cjmqweDSUhB7i0g8is/nBdVpl+Bx338SqIB2GLKm32M+Vs6g==} + docker-compose@1.4.2: + resolution: {integrity: sha512-rPHigTKGaEHpkUmfd69QgaOp+Os5vGJwG/Ry8lcr8W/382AmI+z/D7qoa9BybKIkqNppaIbs8RYeHSevdQjWww==} engines: {node: '>= 6.0.0'} - docker-modem@5.0.6: - resolution: {integrity: sha512-ens7BiayssQz/uAxGzH8zGXCtiV24rRWXdjNha5V4zSOcxmAZsfGVm/PPFbwQdqEkDnhG+SyR9E3zSHUbOKXBQ==} + docker-modem@5.0.7: + resolution: {integrity: sha512-XJgGhoR/CLpqshm4d3L7rzH6t8NgDFUIIpztYlLHIApeJjMZKYJMz2zxPsYxnejq5h3ELYSw/RBsi3t5h7gNTA==} engines: {node: '>= 8.0'} - dockerode@4.0.9: - resolution: {integrity: sha512-iND4mcOWhPaCNh54WmK/KoSb35AFqPAUWFMffTQcp52uQt36b5uNwEJTSXntJZBbeGad72Crbi/hvDIv6us/6Q==} + dockerode@4.0.10: + resolution: {integrity: sha512-8L/P9JynLBiG7/coiA4FlQXegHltRqS0a+KqI44P1zgQh8QLHTg7FKOwhkBgSJwZTeHsq30WRoVFLuwkfK0YFg==} engines: {node: '>= 8.0'} + dockerode@5.0.0: + resolution: {integrity: sha512-C52mvJ+7lcyhWNfrzVfFsbTrBfy/ezE9FGEYLpu17FUeBcCkxERk9nN7uDl/478ynDiQ4U+5DbQC2vENHkVEtQ==} + engines: {node: '>= 14.17'} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -6287,14 +6713,8 @@ packages: dom-walk@0.1.2: resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - dompurify@3.2.6: - resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} - - dompurify@3.3.1: - resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} - - dot-case@2.1.1: - resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} + dompurify@3.4.3: + resolution: {integrity: sha512-VVwJidIJcp1hpg2OMXML3ZVRPYSZiq4aX7qBh83BSIpOaRDqI+qxhXjjIWnpzkOXhmp0L81lnoME1mnCc9H48A==} dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} @@ -6316,20 +6736,20 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@17.2.3: - resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} engines: {node: '>=12'} drange@1.1.1: resolution: {integrity: sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==} engines: {node: '>=4'} - drizzle-kit@0.31.8: - resolution: {integrity: sha512-O9EC/miwdnRDY10qRxM8P3Pg8hXe3LyU4ZipReKOgTwn4OqANmftj8XJz1UPUAS6NMHf0E2htjsbQujUTkncCg==} + drizzle-kit@0.31.10: + resolution: {integrity: sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw==} hasBin: true - drizzle-orm@0.45.1: - resolution: {integrity: sha512-Te0FOdKIistGNPMq2jscdqngBRfBpC8uMFVwqjf6gtTVJHIQ/dosgV/CLBU2N4ZJBsXL5savCba9b0YJskKdcA==} + drizzle-orm@0.45.2: + resolution: {integrity: sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=4' @@ -6436,17 +6856,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - effect@3.19.4: - resolution: {integrity: sha512-gApFffMwpDVgmw/FzCaYWt6zw4m0xAnQf5+cPS0+Sl85AxfeovJeEIsiEQVlk+ZvtBYcoPXxi65GIyruzanQ5g==} - - electron-to-chromium@1.5.114: - resolution: {integrity: sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==} - - electron-to-chromium@1.5.256: - resolution: {integrity: sha512-uqYq1IQhpXXLX+HgiXdyOZml7spy4xfy42yPxcCCRjswp0fYM2X+JwCON07lqnpLEGVCj739B7Yr+FngmHBMEQ==} - - electron-to-chromium@1.5.55: - resolution: {integrity: sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==} + electron-to-chromium@1.5.282: + resolution: {integrity: sha512-FCPkJtpst28UmFzd903iU7PdeVTfY0KAeJy+Lk0GLZRwgwYHn/irRcaCbQQOmr5Vytc/7rcavsYLvTM8RiHYhQ==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -6470,28 +6881,13 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - engine.io-client@6.5.4: - resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==} - - engine.io-parser@5.2.3: - resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} - engines: {node: '>=10.0.0'} - - engine.io@6.6.2: - resolution: {integrity: sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==} - engines: {node: '>=10.2.0'} - - enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + enhanced-resolve@5.20.1: + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} engines: {node: '>=10.13.0'} - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} + entities@8.0.0: + resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} + engines: {node: '>=20.19.0'} env-ci@11.2.0: resolution: {integrity: sha512-D5kWfzkmaOQDioPmiviWAVtKmpPT4/iJmMVQxWxMPJTFyTkdc5JQUfc5iXEeWxcOdsYTKSAiA/Age4NUOqKsRA==} @@ -6515,22 +6911,10 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.3: - 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-abstract@1.24.0: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} 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'} @@ -6546,49 +6930,40 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + es-module-lexer@2.0.0: + resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - es-shim-unscopables@1.1.0: resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} engines: {node: '>= 0.4'} - es-to-primitive@1.2.1: - 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: - esbuild: '>=0.27.2' + es-toolkit@1.46.1: + resolution: {integrity: sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ==} esbuild@0.25.12: resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} engines: {node: '>=18'} hasBin: true - esbuild@0.27.2: - resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} engines: {node: '>=18'} hasBin: true @@ -6596,10 +6971,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-goat@2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -6612,19 +6983,14 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - eslint-config-prettier@10.1.8: resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.7.3: - resolution: {integrity: sha512-1ik3XQLJoE9d9ljhw60wTQf7rlwnz8tc6vnhSL7/Ciep2+qPMJpNg+mapcmGhirfDSceVNI8r9pv+HyvrBXhpQ==} + eslint-config-turbo@2.9.14: + resolution: {integrity: sha512-8bAXNDwtmHV7CuSDX+FB9+TslZEP8qJoNWY9FQTEhyO42bRimcExxwOh1+K2H2JV2VFXJrkt1KxyJmy2xm8Ukw==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -6681,8 +7047,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-turbo@2.7.3: - resolution: {integrity: sha512-q7kYzJCyvceSLVwHgmn3ZBhqpUihQHxC7LEddq5a1eLe5P+/Ob4TnJrdocP38qO1n9MCuO+cJSUTGUtZb1X3bQ==} + eslint-plugin-turbo@2.9.14: + resolution: {integrity: sha512-ROTlsO1JBJLATxtDNd7t22vviSb0hD8fKnjOO0WRgtxJW3VBRNO3BLAC129GPZSvEvtMH/f71Y2TzrqGPjLpEw==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -6691,21 +7057,21 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@9.39.2: - resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@10.4.0: + resolution: {integrity: sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: jiti: '*' @@ -6713,17 +7079,12 @@ packages: jiti: optional: true - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -6741,9 +7102,6 @@ packages: estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -6761,8 +7119,8 @@ packages: eventemitter3@2.0.3: resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==} - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} @@ -6784,21 +7142,13 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - expect-type@1.2.2: - resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - fast-check@3.23.2: - resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} - engines: {node: '>=8.0.0'} - fast-content-type-parse@3.0.0: resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} @@ -6808,6 +7158,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + fast-equals@5.3.3: resolution: {integrity: sha512-/boTcHZeIAQ2r/tL11voclBHDeP9WPxLt+tyAbVSyyXuUFyh0Tne7gJZTqGbxnvj79TjLdCXLOY7UIPhyG5MTw==} engines: {node: '>=6.0.0'} @@ -6815,26 +7168,18 @@ packages: fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - fast-json-patch@3.1.1: resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-json-stringify@6.0.1: - resolution: {integrity: sha512-s7SJE83QKBZwg54dIbD5rCtzOBVD43V1ReWXXYqBgwCwHLYAAT0RQc/FmrQglXqWPpz6omtryJQOau5jI4Nrvg==} + fast-json-stringify@6.3.0: + resolution: {integrity: sha512-oRCntNDY/329HJPlmdNLIdogNtt6Vyjb1WuT01Soss3slIdyUp8kAcDU3saQTOquEK8KFVfwIIF7FebxUAu+yA==} fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -6842,36 +7187,25 @@ packages: fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-xml-parser@5.3.3: - resolution: {integrity: sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA==} + fast-xml-builder@1.2.0: + resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} + + fast-xml-parser@5.8.0: + resolution: {integrity: sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==} hasBin: true - faster-babel-types@0.1.0: - resolution: {integrity: sha512-0bEgAyXBdX330U6WbY80Q/h8k0NAPT3Z3sRlC6Fiv0kxekow9JQv2KBL55jIDFxNKcixjvByNnTZfH4axKSB9g==} - engines: {node: '>=10'} - peerDependencies: - '@babel/types': ^7 + fastify@5.8.5: + resolution: {integrity: sha512-Yqptv59pQzPgQUSIm87hMqHJmdkb1+GPxdE6vW6FRyVE9G86mt7rOghitiU4JHRaTyDUk9pfeKmDeu70lAwM4Q==} - fastify@5.6.2: - resolution: {integrity: sha512-dPugdGnsvYkBlENLhCgX8yhyGCsCPrpA8lFWbTNU428l+YOnLgYHR69hzV8HWPC79n536EqzqQtvhtdaCE0dKg==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fault@1.0.4: resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - fdir@6.4.4: - resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -6884,12 +7218,6 @@ packages: fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - fetch-retry@6.0.0: - resolution: {integrity: sha512-BUFj1aMubgib37I3v4q78fYo63Po7t4HUPTpQ6/QE6yK6cIQrP+W43FYToeTEyg5m2Y7eFUtijUuAv/PDlWuag==} - - fflate@0.4.8: - resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} - fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} @@ -6897,10 +7225,6 @@ packages: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} @@ -6920,14 +7244,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-my-way@9.3.0: - resolution: {integrity: sha512-eRoFWQw+Yv2tuYlK2pjFS2jGXSxSppAs3hSQjfxVKxM5amECzIgYYc1FEI8ZmhSh/Ig+FrKEz43NLRKJjYCZVg==} + find-my-way@9.5.0: + resolution: {integrity: sha512-VW2RfnmscZO5KgBY5XVyKREMW5nMZcxDy+buTOsL+zIPnBlbKm+00sgzoQzq1EVh4aALZLfKdwv6atBGcjvjrQ==} engines: {node: '>=20'} - find-up-simple@1.0.0: - resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} - engines: {node: '>=18'} - find-up-simple@1.0.1: resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} engines: {node: '>=18'} @@ -6951,14 +7271,14 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -6966,9 +7286,6 @@ packages: debug: optional: true - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -6985,23 +7302,13 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} - from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -7019,10 +7326,6 @@ packages: resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} engines: {node: '>=18'} - function.prototype.name@1.1.6: - 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'} @@ -7050,14 +7353,6 @@ packages: resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} engines: {node: '>=18'} - get-intrinsic@1.2.4: - 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-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -7066,8 +7361,8 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} - get-port@7.1.0: - resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==} + get-port@7.2.0: + resolution: {integrity: sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg==} engines: {node: '>=16'} get-proto@1.0.1: @@ -7078,10 +7373,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-stream@7.0.1: - resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} - engines: {node: '>=16'} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -7090,23 +7381,12 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - get-symbol-description@1.0.2: - 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.13.0: - resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} - - get-tsconfig@4.8.1: - resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} - - get-uri@6.0.3: - resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} - engines: {node: '>= 14'} + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} git-hooks-list@4.1.1: resolution: {integrity: sha512-cmP497iLq54AZnv4YRAEMnEyQ1eIn4tGKbmswqwmFV4GBnAqE8NLtWxxdXa++AalfgL5EBH4IxTPyquEuGY/jA==} @@ -7130,45 +7410,23 @@ packages: glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - glob@13.0.0: - resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} - engines: {node: 20 || >=22} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} global@4.4.0: resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@10.0.2: - resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} - engines: {node: '>=8'} - globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -7179,10 +7437,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - gradient-string@2.0.1: - resolution: {integrity: sha512-+xDOYR2fMa4QHGysTgyQsl8g16mcAKqvvsKI014qYP2XVf1SWUPlD8KhdBJPUM8AVwDUB+ls0NFkqRzAB5URkA==} - engines: {node: '>=10'} - h3@1.15.1: resolution: {integrity: sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==} @@ -7205,18 +7459,10 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.3: - 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'} @@ -7225,10 +7471,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-yarn@2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -7245,25 +7487,12 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - header-case@1.0.1: - resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} - - hermes-estree@0.21.1: - resolution: {integrity: sha512-ayfESdfG0wZM32uGw0CMfcW6pW6RM8htLXZI56A4rr7hIOjmKw+wd3+71wUc1uQfn90ZyY1NMCbQeMnunrIidg==} - - hermes-parser@0.21.1: - resolution: {integrity: sha512-ANsRSBqQHzca7AXbsuwKApSQhAdljPip63MgqLebSVzNUI+A3NDzfiH9Ny4df4fA7Ndso3kPR1V/x1YEc7BYxA==} - highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} highlightjs-vue@1.0.0: resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - hono@4.11.3: - resolution: {integrity: sha512-PmQi306+M/ct/m5s66Hrg+adPnkD5jiO6IjA7WhWw0gSBSo1EcRegwuI1deZ+wd5pzCGynCcn2DprnE4/yEV4w==} - engines: {node: '>=16.9.0'} - hook-std@4.0.0: resolution: {integrity: sha512-IHI4bEVOt3vRUDJ+bFA9VUJlo7SzvFARPNLw75pqSmAOP2HmTWfFJtPvLBrDrlgjEYXY9zs7SFdHPQaJShkSCQ==} engines: {node: '>=20'} @@ -7307,13 +7536,13 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + http-proxy-agent@9.0.0: + resolution: {integrity: sha512-FcF8VhXYLQcxWCnt/cCpT2apKsRDUGeVEeMqGu4HSTu29U8Yw0TLOjdYIlDsYk3IkUh+taX4IDWpPcCqKDhCjA==} + engines: {node: '>= 20'} - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} + https-proxy-agent@9.0.0: + resolution: {integrity: sha512-/MVmHp58WkOypgFhCLk4fzpPcFQvTJ/e6LBI7irpIO2HfxUbpmYoHF+KzipzJpxxzJu7aJNWQ0xojJ/dzV2G5g==} + engines: {node: '>= 20'} human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -7334,10 +7563,13 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} - iconv-lite@0.7.0: - resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} + icu-minify@4.12.0: + resolution: {integrity: sha512-zDmM05uav3t3+kxSfRrNlmyXOdj2b+uHA+p04CG32eJabtaHbugXujuL+YfRkwP9joAnf0Uh+RMGCKD5NLa5rQ==} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -7349,12 +7581,18 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} + immer@10.2.0: + resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==} + + immer@11.1.4: + resolution: {integrity: sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==} + immutable@3.8.2: resolution: {integrity: sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==} engines: {node: '>=0.10.0'} - immutable@5.0.2: - resolution: {integrity: sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==} + immutable@5.1.5: + resolution: {integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -7364,10 +7602,6 @@ packages: resolution: {integrity: sha512-YVt14UZCgsX1vZQ3gKjkWVdBdHQ6eu3MPU1TBgL1H5orXe2+jWD006WCPPtOuwlQm10NuzOW5WawiF1Q9veW8g==} engines: {node: '>=18.20'} - import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} - import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -7383,10 +7617,6 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} - index-to-position@0.1.2: - resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} - engines: {node: '>=18'} - index-to-position@1.2.0: resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} engines: {node: '>=18'} @@ -7395,35 +7625,15 @@ packages: resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} engines: {node: '>= 0.8.0'} - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - inquirer@7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} - - inquirer@8.2.4: - resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} - engines: {node: '>=12.0.0'} - - internal-slot@1.0.7: - 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'} @@ -7432,26 +7642,22 @@ packages: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - intl-messageformat@10.7.1: - resolution: {integrity: sha512-xQuJW2WcyzNJZWUu5xTVPOmNSA1Sowuu/NKFdUid5Fxx/Yl6/s4DefTU/y7zy+irZLDmFGmTLtnM8FqpN05wlA==} - - into-stream@7.0.0: - resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} - engines: {node: '>=12'} + intl-messageformat@11.1.1: + resolution: {integrity: sha512-vnrF2f4vfsdaFY6tuLZfzGcx1GZFMFAq6c7QdK3HSXNcGXEIQncNgbeAcnpjAOszQzq3Jbol2SwgshIGY08WyA==} invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ioredis@5.9.1: - resolution: {integrity: sha512-BXNqFQ66oOsR82g9ajFFsR8ZKrjVvYCLyeML9IvSMAsP56XH2VXBdZjmI11p65nXXJxTEt1hie3J2QeFJVgrtQ==} + ioredis@5.10.1: + resolution: {integrity: sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA==} engines: {node: '>=12.22.0'} ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} - ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + ipaddr.js@2.3.0: + resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} engines: {node: '>= 10'} iron-webcrypto@1.2.1: @@ -7463,10 +7669,6 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-array-buffer@3.0.4: - 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'} @@ -7478,17 +7680,10 @@ packages: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} - 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'} @@ -7500,30 +7695,14 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} - engines: {node: '>= 0.4'} - is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-data-view@1.0.1: - 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'} @@ -7557,17 +7736,6 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-lower-case@1.1.3: - resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==} - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -7576,14 +7744,6 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-npm@5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} - - is-number-object@1.0.7: - 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'} @@ -7596,14 +7756,6 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -7614,10 +7766,6 @@ packages: is-property@1.0.2: resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} - is-regex@1.1.4: - 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'} @@ -7626,10 +7774,6 @@ packages: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: - 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'} @@ -7646,55 +7790,26 @@ packages: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} - is-string@1.0.7: - 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==} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} - is-upper-case@1.1.2: - resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - 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-weakref@1.1.1: resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} @@ -7707,32 +7822,22 @@ packages: resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} engines: {node: '>=18'} - is-yarn-global@0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} - isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} + isexe@3.1.5: + resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} + engines: {node: '>=18'} - isomorphic-dompurify@2.35.0: - resolution: {integrity: sha512-a9+LQqylQCU8f1zmsYmg2tfrbdY2YS/Hc+xntcq/mDI2MY3Q108nq8K23BWDIg6YGC5JsUMC15fj2ZMqCzt/+A==} - engines: {node: '>=20.19.5'} - - isomorphic-fetch@3.0.0: - resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} + isomorphic-dompurify@3.13.0: + resolution: {integrity: sha512-QzgzjAGJN0QoOpLWx7mkMhhTQvQXsBpS6oEi2Wy58mEWwrvaRJrx5hrVEdsM70nNKOwHCHj3bwYkwI+HFd3Khg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} isomorphic-ws@5.0.0: resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} @@ -7751,10 +7856,6 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - istanbul-reports@3.2.0: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} @@ -7766,6 +7867,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.2.3: + resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} + engines: {node: 20 || >=22} + java-properties@1.0.2: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} engines: {node: '>= 0.6.0'} @@ -7777,8 +7882,8 @@ packages: jose@6.0.8: resolution: {integrity: sha512-EyUPtOKyTYq+iMOszO42eobQllaIjJnwkZ2U93aJzNyPibCy7CEvT9UQnaCVB51IAd49gbNdCew1c0LcLTCB2g==} - jotai@2.16.1: - resolution: {integrity: sha512-vrHcAbo3P7Br37C8Bv6JshMtlKMPqqmx0DDREtTjT4nf3QChDrYdbH+4ik/9V0cXA57dK28RkJ5dctYvavcIlg==} + jotai@2.20.0: + resolution: {integrity: sha512-b5GAqgmXmXzB4WPaTH26ppk9Sl7AA9WSQX7yfdM+gJ1rFROiWcVbi97gFuN/yVCojOcbcvop2sfLL+fjxW0JVg==} engines: {node: '>=12.20.0'} peerDependencies: '@babel/core': '>=7.0.0' @@ -7801,16 +7906,12 @@ packages: js-file-download@0.4.12: resolution: {integrity: sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg==} + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -7818,9 +7919,9 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdom@27.4.0: - resolution: {integrity: sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + jsdom@29.1.1: + resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -7845,8 +7946,8 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-schema-ref-resolver@2.0.1: - resolution: {integrity: sha512-HG0SIB9X4J8bwbxCbnd5FfPEbcXAJYTi1pBJeP/QPON+w8ovSME8iRG+ElHNxZNX2Qh6eYn1GdzJFS4cDFfx0Q==} + json-schema-ref-resolver@3.0.0: + resolution: {integrity: sha512-hOrZIVL5jyYFjzk7+y7n5JDzGlU8rfWDuYyHwGa2WA8/pcmMHezp2xsVwxrebD/Q9t8Nc5DboieySDpCp4WG4A==} json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -7881,7 +7982,6 @@ packages: keygrip@1.1.0: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -7890,10 +7990,6 @@ packages: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} @@ -7912,8 +8008,8 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} - ldapts@8.1.3: - resolution: {integrity: sha512-kEU3GDh48ZymnyLGsFprai2v4r7Gyxe6niBlUUw3xnOGpq5O+XODmXJ8gBwbPIg35qt5cnYVC80NNSdAkb2dJg==} + ldapts@8.1.7: + resolution: {integrity: sha512-TJl6T92eIwMf/OJ0hDfKVa6ISwzo+lqCWCI5Mf//ARlKa3LKQZaSrme/H2rCRBhW0DZCQlrsV+fgoW5YHRNLUw==} engines: {node: '>=20'} levn@0.4.1: @@ -7926,11 +8022,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - - linkifyjs@4.3.2: - resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} + linkifyjs@4.3.3: + resolution: {integrity: sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==} load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} @@ -7973,42 +8066,31 @@ packages: lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. - lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} lodash.isstring@4.0.1: resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.uniqby@4.7.0: resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-symbols@3.0.0: - resolution: {integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==} - engines: {node: '>=8'} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} logform@2.7.0: resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} engines: {node: '>= 12.0.0'} - long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -8017,35 +8099,21 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lower-case-first@1.0.2: - resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==} - - lower-case@1.1.4: - resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} - lowlight@1.20.0: resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.2: - resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} - engines: {node: 20 || >=22} - - lru-cache@11.2.4: - resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + lru-cache@11.3.5: + resolution: {integrity: sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==} engines: {node: 20 || >=22} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - - lru.min@1.1.0: - resolution: {integrity: sha512-86xXMB6DiuKrTqkE/lRL0drlNh568awttBPJ7D66fzDHpy6NC5r3N+Ly/lKCS2zjmeGyvFDx670z0cD0PVBwGA==} + lru.min@1.1.4: + resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==} engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} m3u8-parser@7.2.0: @@ -8054,20 +8122,13 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - magicast@0.5.1: - resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==} - - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + magicast@0.5.2: + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - mantine-form-zod-resolver@1.3.0: resolution: {integrity: sha512-XlXXkJCYuUuOllW0zedYW+m/lbdFQ/bso1Vz+pJOYkxgjhoGvzN2EXWCS2+0iTOT9Q7WnOwWvHmvpTJN3PxSXw==} engines: {node: '>=16.6.0'} @@ -8092,10 +8153,6 @@ packages: resolution: {integrity: sha512-3lr8UeB+R+BN9c7eOBkeH1GlHf7+0Kzt0pcEgsT9xoXIA5gfXAzjd1niYiYDsvb62v5rLPqCqDiyYxtmmhGJ3g==} engines: {node: '>= 22.5.0'} - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} - hasBin: true - marked-terminal@7.3.0: resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} engines: {node: '>=16.0.0'} @@ -8135,11 +8192,8 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.12.2: - resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} @@ -8255,25 +8309,17 @@ packages: resolution: {integrity: sha512-bjdr2xW1dBCMsMGGsUeqM4eFI60m94+szhxWys+B1ztIt6gWSfeGBdSVCIawezeHYLYn0j6zrsXdQS/JllBzww==} engines: {node: '>=6'} - minimatch@10.1.1: - resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} - engines: {node: 20 || >=22} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - - minimatch@9.0.0: - resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -8281,22 +8327,15 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} - mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} engines: {node: '>=10'} hasBin: true @@ -8304,10 +8343,6 @@ packages: resolution: {integrity: sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==} hasBin: true - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} @@ -8315,24 +8350,27 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} mux.js@7.1.0: resolution: {integrity: sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==} engines: {node: '>=8', npm: '>=5'} hasBin: true - mysql2@3.16.0: - resolution: {integrity: sha512-AEGW7QLLSuSnjCS4pk3EIqOmogegmze9h8EyrndavUQnIUcfkVal/sK7QznE+a3bc6rzPbAiui9Jcb+96tPwYA==} + mysql2@3.22.3: + resolution: {integrity: sha512-uWWxvZSRvRhtBdh2CdcuK83YcOfPdmEeEYB069bAmPnV93QApDGVPuvCQOLjlh7tYHEWdgQPrn6kosDxHBVLkA==} engines: {node: '>= 8.0'} + peerDependencies: + '@types/node': '>= 8' mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - named-placeholders@1.1.3: - resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} - engines: {node: '>=12.0.0'} + named-placeholders@1.1.6: + resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} + engines: {node: '>=8.0.0'} nan@2.20.0: resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} @@ -8342,21 +8380,12 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.6: - resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} - engines: {node: ^18 || >=20} - hasBin: true - napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} @@ -8371,12 +8400,8 @@ packages: nerf-dart@1.0.0: resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} - - next-auth@5.0.0-beta.30: - resolution: {integrity: sha512-+c51gquM3F6nMVmoAusRJ7RIoY0K4Ts9HCCwyy/BRoe4mp3msZpOzYMyb5LAYc1wSo74PMQkGDcaghIO7W6Xjg==} + next-auth@5.0.0-beta.31: + resolution: {integrity: sha512-1OBgCKPzo+S7UWWMp3xgvGvIJ0OpV7B3vR4ZDRqD9a4Ch+OT6dakLXG9ivhtmIWVa71nTSXattOHyCg8sNi8/Q==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 @@ -8391,21 +8416,21 @@ packages: nodemailer: optional: true - next-intl-swc-plugin-extractor@4.7.0: - resolution: {integrity: sha512-iAqflu2FWdQMWhwB0B2z52X7LmEpvnMNJXqVERZQ7bK5p9iqQLu70ur6Ka6NfiXLxfb+AeAkUX5qIciQOg+87A==} + next-intl-swc-plugin-extractor@4.12.0: + resolution: {integrity: sha512-jUxVEu1Nryjt4YgaDktSys7ioOgQfcNPF/SF2dbPNxbVb6U+P1INRgHeCVN+EC59H2rnTFIQwbddmOCrUWFr3g==} - next-intl@4.7.0: - resolution: {integrity: sha512-gvROzcNr/HM0jTzQlKWQxUNk8jrZ0bREz+bht3wNbv+uzlZ5Kn3J+m+viosub18QJ72S08UJnVK50PXWcUvwpQ==} + next-intl@4.12.0: + resolution: {integrity: sha512-v8KpppWG0yLLlChJ3Of6uoPew9LeRDBAtY6vpJmF7YJmBZlHEzzoEL4w1g1dAU+VleEPNoXNm9hg1eEsKWV5hw==} peerDependencies: next: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 - typescript: ^5.0.0 + typescript: '*' peerDependenciesMeta: typescript: optional: true - next@16.1.1: - resolution: {integrity: sha512-QI+T7xrxt1pF6SQ/JYFz95ro/mg/1Znk5vBebsWwbpejj1T0A23hO7GYEaVac9QUOT2BIMiuzm0L99ooq7k0/w==} + next@16.2.6: + resolution: {integrity: sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -8425,13 +8450,6 @@ packages: sass: optional: true - nice-napi@1.0.2: - resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} - os: ['!win32'] - - no-case@2.3.2: - resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} - node-abi@3.67.0: resolution: {integrity: sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==} engines: {node: '>=10'} @@ -8439,37 +8457,17 @@ packages: node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@3.2.1: - resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} - node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-addon-api@8.3.0: - resolution: {integrity: sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==} - engines: {node: ^18 || ^20 || >= 21} - node-addon-api@8.3.1: resolution: {integrity: sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==} engines: {node: ^18 || ^20 || >= 21} - node-cron@4.2.1: - resolution: {integrity: sha512-lgimEHPE/QDgFlywTd8yTR61ptugX3Qer29efeyWw2rv259HtGBNn1vZVmp8lB9uo9wC0t/AT4iGqXxia+CJFg==} - engines: {node: '>=6.0.0'} - - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - deprecated: Use your platform's native DOMException instead - node-emoji@2.2.0: resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} engines: {node: '>=18'} - node-fetch-commonjs@3.3.2: - resolution: {integrity: sha512-VBlAiynj3VMLrotgwOS3OyECFxas5y7ltLcK4t41lMUZeaK15Ym4QRkqN0EQKAFL42q9i21EPKjzLUPfltR72A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} @@ -8486,10 +8484,6 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-ical@0.22.1: - resolution: {integrity: sha512-rMdc5hhJT3ZPtZIWfEXcetRrPl2xeHGpMJX8lq4VwyLKfOzGr+rXVtx0lD8lSf27Hn3mxrbU3MUcMSMXp4rIQA==} - engines: {node: '>=18'} - node-loader@2.1.0: resolution: {integrity: sha512-OwjPkyh8+7jW8DMd/iq71uU1Sspufr/C2+c3t0p08J3CrM9ApZ4U53xuisNrDXOHyGi5OYHgtfmmh+aK9zJA6g==} engines: {node: '>= 10.13.0'} @@ -8499,16 +8493,6 @@ packages: node-mock-http@1.0.2: resolution: {integrity: sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==} - node-plop@0.26.3: - resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} - engines: {node: '>=8.9.4'} - - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} @@ -8524,9 +8508,9 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} + normalize-url@9.0.0: + resolution: {integrity: sha512-z9nC87iaZXXySbWWtTHfCFJyFvKaUAW6lODhikG7ILSbVgmwuFjUqkgnheHvAUcGedO29e2QGBRXMUD64aurqQ==} + engines: {node: '>=20'} npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} @@ -8618,14 +8602,6 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.2: - 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-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -8634,10 +8610,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.5: - 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'} @@ -8654,10 +8626,6 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} @@ -8669,15 +8637,9 @@ packages: resolution: {integrity: sha512-4+/OFSqOjoyULo7eN7EA97DE0Xydj/PW5aIckxqQIoFjFwqXKuFCvXUJObyJfBF9Khu4RL/jlDRI9FPaMGfPnw==} engines: {node: '>= 20'} - ofetch@1.4.1: - resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} - ofetch@1.5.1: resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} - ohash@1.1.4: - resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} - on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} engines: {node: '>=14.0.0'} @@ -8714,14 +8676,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@4.1.1: - resolution: {integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==} - engines: {node: '>=8'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - orderedmap@2.1.1: resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} @@ -8737,10 +8691,6 @@ packages: resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} engines: {node: '>=18'} - p-is-promise@3.0.0: - resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} - engines: {node: '>=8'} - p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} @@ -8757,10 +8707,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-map@3.0.0: - resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} - engines: {node: '>=8'} - p-map@7.0.3: resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} engines: {node: '>=18'} @@ -8777,22 +8723,11 @@ packages: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} - pac-proxy-agent@7.2.0: - resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} - engines: {node: '>= 14'} - - pac-resolver@7.0.1: - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} - engines: {node: '>= 14'} - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - pako@2.1.0: - resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} - - param-case@2.1.1: - resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} + parchment@3.0.0: + resolution: {integrity: sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -8809,18 +8744,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-json@8.1.0: - resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} - engines: {node: '>=18'} - parse-json@8.3.0: resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} engines: {node: '>=18'} - parse-ms@3.0.0: - resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==} - engines: {node: '>=12'} - parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} @@ -8834,14 +8761,8 @@ packages: parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - parse5@8.0.0: - resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} - - pascal-case@2.0.1: - resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==} - - path-case@2.1.1: - resolution: {integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==} + parse5@8.0.1: + resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} @@ -8851,9 +8772,9 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + path-expression-matcher@1.5.0: + resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} + engines: {node: '>=14.0.0'} path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -8870,44 +8791,41 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.1: - resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} - engines: {node: 20 || >=22} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pg-cloudflare@1.2.7: - resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} + pg-cloudflare@1.3.0: + resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} - pg-connection-string@2.9.1: - resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==} + pg-connection-string@2.12.0: + resolution: {integrity: sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==} pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - pg-pool@3.10.1: - resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==} + pg-pool@3.13.0: + resolution: {integrity: sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==} peerDependencies: pg: '>=8.0' - pg-protocol@1.10.3: - resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} + pg-protocol@1.13.0: + resolution: {integrity: sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==} pg-types@2.2.0: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg@8.16.3: - resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==} + pg@8.20.0: + resolution: {integrity: sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==} engines: {node: '>= 16.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -8918,9 +8836,6 @@ packages: pgpass@1.0.5: resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -8932,27 +8847,24 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} - pino-abstract-transport@2.0.0: - resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} + pino-abstract-transport@3.0.0: + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} - pino-std-serializers@7.0.0: - resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} + pino-std-serializers@7.1.0: + resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} - pino@10.1.0: - resolution: {integrity: sha512-0zZC2ygfdqvqK8zJIr1e+wT1T/L+LF6qvqvbzEQ6tiMAoTqEVK9a1K3YRu8HEUvGEvNqZyPJTtb2sNIoTkB83w==} + pino@10.3.1: + resolution: {integrity: sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==} hasBin: true - piscina@4.6.1: - resolution: {integrity: sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==} - pkcs7@1.0.4: resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==} hasBin: true @@ -8961,13 +8873,13 @@ packages: resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} engines: {node: '>=4'} - playwright-core@1.49.0: - resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + playwright-core@1.60.0: + resolution: {integrity: sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==} engines: {node: '>=18'} hasBin: true - playwright@1.49.0: - resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + playwright@1.60.0: + resolution: {integrity: sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==} engines: {node: '>=18'} hasBin: true @@ -9015,8 +8927,8 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -9046,29 +8958,26 @@ packages: prebuild-install@7.1.2: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-packagejson@2.5.20: - resolution: {integrity: sha512-G8cowPh+QmJJECTZlrPDKWkVVcwrFjF2rGcw546w3N8blLoc4szSs8UUPfFVxHUNLUjiru71Ah83g1lZkeK9Bw==} + prettier-plugin-packagejson@3.0.2: + resolution: {integrity: sha512-kmoj3hEynXwoHDo8ZhmWAIjRBoQWCDUVackiWfSDWdgD0rS3LGB61T9zoVbume/cotYdCoadUh4sqViAmXvpBQ==} peerDependencies: - prettier: '>= 1.16.0' + prettier: ^3 peerDependenciesMeta: prettier: optional: true - prettier@3.7.4: - resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + prettier@3.8.3: + resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} engines: {node: '>=14'} hasBin: true - pretty-ms@8.0.0: - resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==} - engines: {node: '>=14.16'} - pretty-ms@9.2.0: resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} engines: {node: '>=18'} @@ -9096,9 +9005,9 @@ packages: proper-lockfile@4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} - properties-reader@2.3.0: - resolution: {integrity: sha512-z597WicA7nDZxK12kZqHr2TcvwNU1GCfA5UwfDY/HDp3hXPoPlb5rlEx9bwGTiJnc0OqbBTkU975jDToth8Gxw==} - engines: {node: '>=14'} + properties-reader@3.0.1: + resolution: {integrity: sha512-WPn+h9RGEExOKdu4bsF4HksG/uzd3cFq3MFtq8PsFeExPse5Ha/VOjQNyHhjboBFwGXGev6muJYTSPAOkROq2g==} + engines: {node: '>=18'} property-information@7.0.0: resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} @@ -9106,9 +9015,6 @@ packages: prosemirror-changeset@2.3.0: resolution: {integrity: sha512-8wRKhlEwEJ4I13Ju54q2NZR1pVKGTgJ/8XsQ8L5A5uUsQ/YQScQJuEAuh8Bn8i6IwAMjjLRABd9lVli+DlIiVw==} - prosemirror-collab@1.3.1: - resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} - prosemirror-commands@1.6.2: resolution: {integrity: sha512-0nDHH++qcf/BuPLYvmqZTUUsPJUCPBUXt0J1ErTcDIS369CTp773itzLGIgIXG4LJXOlwYCr44+Mh4ii6MP1QA==} @@ -9121,24 +9027,12 @@ packages: prosemirror-history@1.4.1: resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==} - prosemirror-inputrules@1.4.0: - resolution: {integrity: sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==} - prosemirror-keymap@1.2.2: resolution: {integrity: sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==} - prosemirror-markdown@1.13.1: - resolution: {integrity: sha512-Sl+oMfMtAjWtlcZoj/5L/Q39MpEnVZ840Xo330WJWUvgyhNmLBLN7MsHn07s53nG/KImevWHSE6fEj4q/GihHw==} - - prosemirror-menu@1.2.4: - resolution: {integrity: sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==} - prosemirror-model@1.24.1: resolution: {integrity: sha512-YM053N+vTThzlWJ/AtPtF1j0ebO36nvbmDy4U7qA2XQB8JVaQp1FmB9Jhrps8s+z+uxhhVTny4m20ptUvhk0Mg==} - prosemirror-schema-basic@1.2.3: - resolution: {integrity: sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA==} - prosemirror-schema-list@1.5.1: resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} @@ -9148,13 +9042,6 @@ packages: prosemirror-tables@1.6.4: resolution: {integrity: sha512-TkDY3Gw52gRFRfRn2f4wJv5WOgAOXLJA2CQJYIJ5+kdFbfj3acR4JUW6LX2e1hiEBiUwvEhzH5a3cZ5YSztpIA==} - prosemirror-trailing-node@3.0.0: - resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} - peerDependencies: - prosemirror-model: ^1.22.1 - prosemirror-state: ^1.4.2 - prosemirror-view: ^1.33.8 - prosemirror-transform@1.10.2: resolution: {integrity: sha512-2iUq0wv2iRoJO/zj5mv8uDUriOHWzXRnOTVgCzSXnktS/2iQRa3UUQwVlkBlYZFtygw6Nh1+X4mGqoYBINn5KQ==} @@ -9171,31 +9058,20 @@ packages: proxmox-api@1.1.1: resolution: {integrity: sha512-2qH7pxKBBHa7WtEBmxPaBY2FZEH2R04hqr9zD9PmErLzJ7RGGcfNcXoS/v5G4vBM2Igmnx0EAYBstPwwfDwHnA==} - proxy-agent@6.5.0: - resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} - engines: {node: '>= 14'} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} + pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pupa@2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} - - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - qs@6.14.0: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} @@ -9209,6 +9085,14 @@ packages: quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + quill-delta@5.1.0: + resolution: {integrity: sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==} + engines: {node: '>= 12.0.0'} + + quill@2.0.3: + resolution: {integrity: sha512-xEYQBqfYx/sfb33VJiKnSJp8ehloavImQ2A6564GAbqG55PGw1dAWUn1MUbQB62t0azawUS2CZZhWCjO8gRvTw==} + engines: {npm: '>=8.2.3'} + radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} @@ -9249,19 +9133,19 @@ packages: peerDependencies: react: ^15.3.0 || 16 || 17 || 18 - react-dom@19.2.3: - resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + react-dom@19.2.6: + resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==} peerDependencies: - react: ^19.2.3 + react: ^19.2.6 - react-dropzone@14.3.8: - resolution: {integrity: sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug==} + react-dropzone@15.0.0: + resolution: {integrity: sha512-lGjYV/EoqEjEWPnmiSvH4v5IoIAwQM2W4Z1C0Q/Pw2xD0eVzKPS359BQTUMum+1fa0kH2nrKjuavmTPOGhpLPg==} engines: {node: '>= 10.13'} peerDependencies: react: '>= 16.8 || 18.0.0' - react-error-boundary@6.0.3: - resolution: {integrity: sha512-5guqn2UYpCFjE8UDMA8J7Kke+YSGBFrKQRJb3XdcaGZXYINZfQXgBt3ifY6MvjkN7QROc5A8zclyoSCwrcRUKw==} + react-error-boundary@6.1.1: + resolution: {integrity: sha512-BrYwPOdXi5mqkk5lw+Uvt0ThHx32rCt3BkukS4X23A2AIWDPSGX6iaWTc0y9TU/mHDA/6qOSGel+B2ERkOvD1w==} peerDependencies: react: ^18.0.0 || ^19.0.0 @@ -9282,8 +9166,8 @@ packages: peerDependencies: react: ^16.8.4 || ^17.0.0 || ^18.0.0 - react-is@19.2.3: - resolution: {integrity: sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==} + react-is@19.2.6: + resolution: {integrity: sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw==} react-markdown@10.1.0: resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} @@ -9297,6 +9181,13 @@ packages: react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-quill-new@3.8.3: + resolution: {integrity: sha512-c96PYqFTo0pI4R3e79B3rH9LUIce1kIQbmTBu/imJQZk8305ogyLyBqKKjG2UoInDlquXqePSzmBo2aVia3ttw==} + peerDependencies: + quill-delta: ^5.1.0 + react: ^16 || ^17 || ^18 || ^19 + react-dom: ^16 || ^17 || ^18 || ^19 + react-redux@9.2.0: resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} peerDependencies: @@ -9333,22 +9224,12 @@ packages: '@types/react': optional: true - react-scan@0.0.31: - resolution: {integrity: sha512-reHgQnASWVXwHe0Ibk/EbsEPZhKrmNRf8EUNDmjMi1lzXec+Cj9litKxD0TG2ghAwg5V4sT0wzhiOgZSIefeVg==} - hasBin: true - react-simple-code-editor@0.14.1: resolution: {integrity: sha512-BR5DtNRy+AswWJECyA17qhUDvrrCZ6zXOCfkQY5zSmb96BVUbpVAv03WpcjcwtCwiLbIANx3gebHOcXYn1EHow==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - react-smooth@4.0.4: - resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} @@ -9377,8 +9258,8 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' - react@19.2.3: - resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + react@19.2.6: + resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} engines: {node: '>=0.10.0'} read-package-up@11.0.0: @@ -9419,19 +9300,13 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} - recast@0.23.11: - resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} - engines: {node: '>= 4'} - - recharts-scale@0.4.5: - resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - - recharts@2.15.4: - resolution: {integrity: sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==} - engines: {node: '>=14'} + recharts@3.8.1: + resolution: {integrity: sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg==} + engines: {node: '>=18'} peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-is: ^19.2.6 redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} @@ -9446,6 +9321,11 @@ packages: peerDependencies: immutable: ^3.8.1 || ^4.0.0-rc.1 + redux-thunk@3.1.0: + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + redux@5.0.1: resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} @@ -9456,33 +9336,14 @@ packages: refractor@5.0.0: resolution: {integrity: sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==} - regexp.prototype.flags@1.5.2: - 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'} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - registry-auth-token@3.3.2: - resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} - registry-auth-token@5.0.2: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} - registry-url@3.1.0: - resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} - engines: {node: '>=0.10.0'} - - registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} - remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} @@ -9538,10 +9399,6 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - ret@0.2.2: resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} engines: {node: '>=4'} @@ -9554,8 +9411,8 @@ packages: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rfc4648@1.5.4: @@ -9564,55 +9421,20 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup@4.48.1: - resolution: {integrity: sha512-jVG20NvbhTYDkGAty2/Yh7HK6/q3DGSRH4o8ALKGArmMuaauM9kLfoMZ+WliPwA5+JHr2lTn3g557FxBV87ifg==} + rollup@4.60.0: + resolution: {integrity: sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true rope-sequence@1.3.4: resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} - rrdom@0.1.7: - resolution: {integrity: sha512-ZLd8f14z9pUy2Hk9y636cNv5Y2BMnNEY99wxzW9tD2BLDfe1xFxtLjB4q/xCBYo6HRe0wofzKzjm4JojmpBfFw==} - - rrule@2.8.1: - resolution: {integrity: sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==} - - rrweb-player@1.0.0-alpha.4: - resolution: {integrity: sha512-Wlmn9GZ5Fdqa37vd3TzsYdLl/JWEvXNUrLCrYpnOwEgmY409HwVIvvA5aIo7k582LoKgdRCsB87N+f0oWAR0Kg==} - - rrweb-snapshot@2.0.0-alpha.17: - resolution: {integrity: sha512-GBg5pV8LHOTbeVmH2VHLEFR0mc2QpQMzAvcoxEGfPNWgWHc8UvKCyq7pqN1vA+fDZ+yXXbixeO0kB2pzVvFCBw==} - - rrweb-snapshot@2.0.0-alpha.4: - resolution: {integrity: sha512-KQ2OtPpXO5jLYqg1OnXS/Hf+EzqnZyP5A+XPqBCjYpj3XIje/Od4gdUwjbFo3cVuWq5Cw5Y1d3/xwgIS7/XpQQ==} - - rrweb@2.0.0-alpha.4: - resolution: {integrity: sha512-wEHUILbxDPcNwkM3m4qgPgXAiBJyqCbbOHyVoNEVBJzHszWEFYyTbrZqUdeb1EfmTRC2PsumCIkVcomJ/xcOzA==} - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.2: - 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'} @@ -9627,10 +9449,6 @@ packages: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} - safe-regex-test@1.0.3: - 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'} @@ -9645,8 +9463,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.97.2: - resolution: {integrity: sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw==} + sass@1.99.0: + resolution: {integrity: sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==} engines: {node: '>=14.0.0'} hasBin: true @@ -9668,23 +9486,14 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} - secure-json-parse@4.0.0: - resolution: {integrity: sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==} + secure-json-parse@4.1.0: + resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} - semantic-release@25.0.2: - resolution: {integrity: sha512-6qGjWccl5yoyugHt3jTgztJ9Y0JVzyH8/Voc/D8PlLat9pwxQYXz7W1Dpnq5h0/G5GCYGUaDSlYcyk3AMh5A6g==} + semantic-release@25.0.3: + resolution: {integrity: sha512-WRgl5GcypwramYX4HV+eQGzUbD7UUbljVmS+5G1uMwX/wLgYuJAxGeerXJDMO2xshng4+FXqCgyB5QfClV6WjA==} engines: {node: ^22.14.0 || >= 24.10.0} hasBin: true - semver-diff@3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} - - semver-diff@5.0.0: - resolution: {integrity: sha512-0HbGtOm+S7T6NGQ/pxJSJipJvc4DK3FcRVMRkhsIwJDJ4Jcz5DQC1cPPzB5GhzyHjwttW878HaWQq46CkL3cqg==} - engines: {node: '>=12'} - deprecated: Deprecated as the semver package now supports this built-in. - semver-parser@4.1.8: resolution: {integrity: sha512-VFJx75RLTS4hHoiFG+JzDP5dE89JUQS0+/h4Zvcqw8djO6HInA5N7BtvbYBOD6W1u9eOfax7v3xf6CoSIAQBSg==} @@ -9696,46 +9505,17 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} - engines: {node: '>=10'} - hasBin: true - - sentence-case@2.1.1: - resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} - - seq-queue@0.0.5: - resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} - serialize-error@8.1.0: resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==} engines: {node: '>=10'} - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - set-cookie-parser@2.7.1: - resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -9757,8 +9537,8 @@ packages: engines: {node: '>= 0.10'} hasBin: true - sharp@0.34.4: - resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} + sharp@0.34.5: + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: @@ -9817,39 +9597,14 @@ packages: resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - skin-tone@2.0.0: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} engines: {node: '>=8'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - snake-case@2.1.0: - resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} - - socket.io-adapter@2.5.5: - resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} - - socket.io-client@4.7.5: - resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} - engines: {node: '>=10.0.0'} - - socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} - - socket.io@4.8.1: - resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} - engines: {node: '>=10.2.0'} - socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -9858,14 +9613,14 @@ packages: resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sonic-boom@4.2.0: - resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} sort-object-keys@2.0.1: resolution: {integrity: sha512-R89fO+z3x7hiKPXX5P0qim+ge6Y60AjtlW+QQpRozrrNcR1lw9Pkpm5MLB56HoNvdcLHL4wbpq16OcvGpEDJIg==} - sort-package-json@3.5.0: - resolution: {integrity: sha512-moY4UtptUuP5sPuu9H9dp8xHNel7eP5/Kz/7+90jTvC0IOiPH2LigtRM/aSFSxreaWoToHUVUpEV4a2tAs2oKQ==} + sort-package-json@3.6.0: + resolution: {integrity: sha512-fyJsPLhWvY7u2KsKPZn1PixbXp+1m7V8NWqU8CvgFRbMEX41Ffw1kD8n0CfJiGoaSfoAvbrqRRl/DcHO8omQOQ==} engines: {node: '>=20'} hasBin: true @@ -9914,9 +9669,9 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - sqlstring@2.3.3: - resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} - engines: {node: '>= 0.6'} + sql-escaper@1.3.3: + resolution: {integrity: sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==} + engines: {bun: '>=1.0.0', deno: '>=2.0.0', node: '>=12.0.0'} ssh-remote-port-forward@1.0.4: resolution: {integrity: sha512-x0LV1eVDwjf1gmG7TTnfqIzf+3VPRz7vrNIjX6oYLbeCrf/PeVY6hkT68Mg+q02qXxQhrLjB0jfgvhevoCRmLQ==} @@ -9938,8 +9693,8 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + std-env@4.0.0: + resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==} stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} @@ -9985,10 +9740,6 @@ packages: 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'} - string.prototype.trimend@1.0.9: resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} engines: {node: '>= 0.4'} @@ -10034,12 +9785,8 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strnum@2.1.0: - resolution: {integrity: sha512-w0S//9BqZZGw0L0Y8uLSelFGnDJgTyyNQLmSlPnVz43zPAiqu3w4t8J8sDqqANOGeZIZ/9jWuPguYcEnsoHv4A==} + strnum@2.3.0: + resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} @@ -10060,9 +9807,6 @@ packages: babel-plugin-macros: optional: true - sugar-high@0.7.5: - resolution: {integrity: sha512-lfGxo0il0Mx4WLdXEt0WsJ8V3QkQWssXnolj5xBurzlGJW07LuwmJWKtS0B2WJ5XWz1439RHngXAmzsnLD0rFA==} - sugarss@5.0.0: resolution: {integrity: sha512-3//knMoF9btXcxHTbMRckIYjkEzSZ6pZjiaZ3wM6OIpUtQ06Uwqc0XgAr6jf+U74cLLTV/BEgmHWoeXPC+NhdQ==} engines: {node: '>=18.0'} @@ -10100,25 +9844,19 @@ packages: svgson@5.3.1: resolution: {integrity: sha512-qdPgvUNWb40gWktBJnbJRelWcPzkLed/ShhnRsjbayXz8OtdPOzbil9jtiZdrYvSDumAz/VNQr6JaNfPx/gvPA==} - swagger-client@3.36.0: - resolution: {integrity: sha512-9fkjxGHXuKy20jj8zwE6RwgFSOGKAyOD5U7aKgW/+/futtHZHOdZeqiEkb97sptk2rdBv7FEiUQDNlWZR186RA==} + swagger-client@3.37.4: + resolution: {integrity: sha512-3xxqc9s99Vsf47ket2j7D4Tw6b6T7ObNvTqSP009yBeoAo0fy0yprqOVxFISTrvRxN7jgfrEi8GXMhsjzb1M0g==} + engines: {node: '>=22'} - swagger-ui-react@5.31.0: - resolution: {integrity: sha512-E/sTgKADThzpVksaGXbhED0pQCYdajiBNOzvSAan+RhV7pdoi2qvdwWhZsIo8nRvHk9UXJ0nkuxrud854ICr7A==} + swagger-ui-react@5.32.6: + resolution: {integrity: sha512-2q2kXd6eDR+syyWV5HE2CkWANyr2MHPkNezG4M7fC0FPlBUZEsNgyA/2dcb9dIwgE5xd995dO42h89fNMF5/ng==} peerDependencies: react: '>=16.8.0 <20' react-dom: '>=16.8.0 <20' - swap-case@1.1.2: - resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} - symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} - engines: {node: ^14.18.0 || >=16.0.0} - tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} @@ -10126,15 +9864,15 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + tapable@2.3.2: + resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} engines: {node: '>=6'} tar-fs@2.1.4: resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} - tar-fs@3.1.1: - resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==} + tar-fs@3.1.2: + resolution: {integrity: sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -10151,8 +9889,8 @@ packages: resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} engines: {node: '>=14.16'} - terser-webpack-plugin@5.3.14: - resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} + terser-webpack-plugin@5.4.0: + resolution: {integrity: sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -10167,13 +9905,13 @@ packages: uglify-js: optional: true - terser@5.44.1: - resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} engines: {node: '>=10'} hasBin: true - testcontainers@11.11.0: - resolution: {integrity: sha512-nKTJn3n/gkyGg/3SVkOwX+isPOGSHlfI+CWMobSmvQrsj7YW01aWvl2pYIfV4LMd+C8or783yYrzKSK2JlP+Qw==} + testcontainers@11.14.0: + resolution: {integrity: sha512-r9pniwv/iwzyHaI7gwAvAm4Y+IvjJg3vBWdjrUCaDMc2AXIr4jKbq7jJO18Mw2ybs73pZy1Aj7p/4RVBGMRWjg==} text-decoder@1.2.0: resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} @@ -10188,50 +9926,39 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thread-stream@3.1.0: - resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} + thread-stream@4.0.0: + resolution: {integrity: sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==} + engines: {node: '>=20'} through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - time-span@5.1.0: resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} engines: {node: '>=12'} + timezones-ical-library@2.2.0: + resolution: {integrity: sha512-D8pKEBzYnCAGZSEyinMZqh2yTc7ZJqonXtNkpTzhPuJlkJjPEUJOXBs7ExeHcHGBaGpaJRTye5t0mLR20BeklA==} + engines: {node: '>=22.18.0', npm: '>=10.9.3'} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - tinyexec@1.0.2: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinygradient@1.1.5: - resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} - - tinyrainbow@3.0.3: - resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + tinyrainbow@3.1.0: + resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} - title-case@2.1.1: - resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} - tldts-core@6.1.69: resolution: {integrity: sha512-nygxy9n2PBUFQUtAXAc122gGo+04/j5qr5TGQFZTHafTKYvmARVXt2cA5rgero2/dnXUfkdPtiJoKmrd3T+wdA==} @@ -10277,8 +10004,8 @@ packages: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} - tough-cookie@6.0.0: - resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} + tough-cookie@6.0.1: + resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} engines: {node: '>=16'} tr46@0.0.3: @@ -10320,15 +10047,15 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - trpc-to-openapi@3.1.0: - resolution: {integrity: sha512-5hKNl8XxE7QZE5UiaxpyKrRQCk6JRNiei4Ddg9I2Tmk2eEzR3/QhTvTElS32COZY+pWwVtqksVTwVWY8dHxLNw==} + trpc-to-openapi@3.2.0: + resolution: {integrity: sha512-nRexppGtL7og73dI4900xnfiGoOAx9PppAi7CVNeh8JfRHXUJ3lDe4JCjHgDAvC3FPHmwJAGDJ0b0BbRll98YA==} peerDependencies: '@trpc/server': ^11.1.0 zod: ^4.0.0 zod-openapi: ^5.0.1 - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -10336,20 +10063,6 @@ packages: ts-mixer@6.0.4: resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - ts-toolbelt@9.6.0: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} @@ -10366,12 +10079,9 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tsdav@2.1.6: - resolution: {integrity: sha512-ngZCuhQvNClm5YHbuKN7EmRhOpu1XmsJ2+d56rpeiW9ZvXIxtDWyOf8TEojEgrgZVca9XJglVFNHYtyjQSmYOA==} - engines: {node: '>=10'} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tsdav@2.2.2: + resolution: {integrity: sha512-/uC/RItcdYVxUj8b2gT4CorAkUmDFUuzhgS4XVT+OVzGRE80hH5ldubcWH13dHa2T9rNaXu6UIEWHlQ1UL7H1Q==} + engines: {node: '>=18'} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -10385,8 +10095,8 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - tsx@4.20.5: - resolution: {integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==} + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} engines: {node: '>=18.0.0'} hasBin: true @@ -10397,38 +10107,8 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turbo-darwin-64@2.7.3: - resolution: {integrity: sha512-aZHhvRiRHXbJw1EcEAq4aws1hsVVUZ9DPuSFaq9VVFAKCup7niIEwc22glxb7240yYEr1vLafdQ2U294Vcwz+w==} - cpu: [x64] - os: [darwin] - - turbo-darwin-arm64@2.7.3: - resolution: {integrity: sha512-CkVrHSq+Bnhl9sX2LQgqQYVfLTWC2gvI74C4758OmU0djfrssDKU9d4YQF0AYXXhIIRZipSXfxClQziIMD+EAg==} - cpu: [arm64] - os: [darwin] - - turbo-linux-64@2.7.3: - resolution: {integrity: sha512-GqDsCNnzzr89kMaLGpRALyigUklzgxIrSy2pHZVXyifgczvYPnLglex78Aj3T2gu+T3trPPH2iJ+pWucVOCC2Q==} - cpu: [x64] - os: [linux] - - turbo-linux-arm64@2.7.3: - resolution: {integrity: sha512-NdCDTfIcIo3dWjsiaAHlxu5gW61Ed/8maah1IAF/9E3EtX0aAHNiBMbuYLZaR4vRJ7BeVkYB6xKWRtdFLZ0y3g==} - cpu: [arm64] - os: [linux] - - turbo-windows-64@2.7.3: - resolution: {integrity: sha512-7bVvO987daXGSJVYBoG8R4Q+csT1pKIgLJYZevXRQ0Hqw0Vv4mKme/TOjYXs9Qb1xMKh51Tb3bXKDbd8/4G08g==} - cpu: [x64] - os: [win32] - - turbo-windows-arm64@2.7.3: - resolution: {integrity: sha512-nTodweTbPmkvwMu/a55XvjMsPtuyUSC+sV7f/SR57K36rB2I0YG21qNETN+00LOTUW9B3omd8XkiXJkt4kx/cw==} - cpu: [arm64] - os: [win32] - - turbo@2.7.3: - resolution: {integrity: sha512-+HjKlP4OfYk+qzvWNETA3cUO5UuK6b5MSc2UJOKyvBceKucQoQGb2g7HlC2H1GHdkfKrk4YF1VPvROkhVZDDLQ==} + turbo@2.9.14: + resolution: {integrity: sha512-BQqXRr4UoWI3UPFrtznCLykYHxwxWh53iCB57x092jPMjIlW1wnm3N895g5irpiXmnxUhREBB0n6+y8BHhs4nw==} hasBin: true tweetnacl@0.14.5: @@ -10442,10 +10122,6 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} @@ -10458,73 +10134,47 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-fest@5.1.0: - resolution: {integrity: sha512-wQ531tuWvB6oK+pchHIu5lHe5f5wpSCqB8Kf4dWQRbOYc9HTge7JL0G4Qd44bh6QuJCccIzL3bugb8GI0MwHrg==} - engines: {node: '>=20'} - - type-fest@5.2.0: - resolution: {integrity: sha512-xxCJm+Bckc6kQBknN7i9fnP/xobQRsRQxR01CztFkp/h++yfVxUUcmMgfR2HttJx/dpWjS9ubVuyspJv24Q9DA==} + type-fest@5.6.0: + resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} engines: {node: '>=20'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typed-array-buffer@1.0.2: - 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.52.0: - resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} + typescript-eslint@8.58.2: + resolution: {integrity: sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true - uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} @@ -10535,9 +10185,6 @@ packages: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} - 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'} @@ -10551,12 +10198,16 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici@5.29.0: - resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} - engines: {node: '>=14.0'} + undici@6.23.0: + resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} + engines: {node: '>=18.17'} - undici@7.18.2: - resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} + undici@7.24.6: + resolution: {integrity: sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==} + engines: {node: '>=20.18.1'} + + undici@7.25.0: + resolution: {integrity: sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==} engines: {node: '>=20.18.1'} unicode-emoji-modifier-base@1.0.0: @@ -10574,10 +10225,6 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - unique-string@3.0.0: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} engines: {node: '>=12'} @@ -10611,49 +10258,15 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@1.14.1: - resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} - engines: {node: '>=14.0.0'} - peerDependencies: - webpack-sources: ^3 - peerDependenciesMeta: - webpack-sources: - optional: true - unraw@3.0.0: resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==} - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.1.4: - resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-check@1.5.4: - resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} - - update-notifier-cjs@5.1.6: - resolution: {integrity: sha512-wgxdSBWv3x/YpMzsWz5G4p4ec7JWD0HCl8W6bmNB6E5Gwo+1ym5oN4hiXpLf0mPySVEJEIsYlkshnplkg2OP9A==} - engines: {node: '>=14'} - - upper-case-first@1.1.2: - resolution: {integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==} - - upper-case@1.1.3: - resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} - uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -10688,8 +10301,8 @@ packages: peerDependencies: react: '>=16.13' - use-intl@4.7.0: - resolution: {integrity: sha512-jyd8nSErVRRsSlUa+SDobKHo9IiWs5fjcPl9VBUnzUyEQpVM5mwJCgw8eUiylhvBpLQzUGox1KN0XlRivSID9A==} + use-intl@4.12.0: + resolution: {integrity: sha512-r+qVb7UI1+kiOhjYsmsNUCY+jrnjVopwGeFlmMyQj4YInlwZzgMeMSv9n8MqnWWy77HL5BVM8K2WgX50SbtcpA==} peerDependencies: react: ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 @@ -10731,37 +10344,23 @@ packages: uuid@10.0.0: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - victory-vendor@36.9.2: - resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} + victory-vendor@37.3.6: + resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==} - video.js@8.23.4: - resolution: {integrity: sha512-qI0VTlYmKzEqRsz1Nppdfcaww4RSxZAq77z2oNSl3cNg2h6do5C8Ffl0KqWQ1OpD8desWXsCrde7tKJ9gGTEyQ==} + video.js@8.23.7: + resolution: {integrity: sha512-cG4HOygYt+Z8j6Sf5DuK6OgEOoM+g9oGP6vpqoZRaD13aHE4PMITbyjJUXZcIQbgB0wJEadBRaVm5lJIzo2jAA==} videojs-contrib-quality-levels@4.1.0: resolution: {integrity: sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==} @@ -10775,13 +10374,10 @@ packages: videojs-vtt.js@0.15.5: resolution: {integrity: sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==} - vite-tsconfig-paths@6.0.4: - resolution: {integrity: sha512-iIsEJ+ek5KqRTK17pmxtgIxXtqr3qDdE6OxrP9mVeGhVDNXRJTKN/l9oMbujTQNzMLe6XZ8qmpztfbkPu2TiFQ==} + vite-tsconfig-paths@6.1.1: + resolution: {integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==} peerDependencies: - vite: '>=7.3.1' - peerDependenciesMeta: - vite: - optional: true + vite: '>=8.0.13' vite@7.1.12: resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==} @@ -10823,20 +10419,23 @@ packages: yaml: optional: true - vitest@4.0.16: - resolution: {integrity: sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==} + vitest@4.1.6: + resolution: {integrity: sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.16 - '@vitest/browser-preview': 4.0.16 - '@vitest/browser-webdriverio': 4.0.16 - '@vitest/ui': 4.0.16 + '@vitest/browser-playwright': 4.1.6 + '@vitest/browser-preview': 4.1.6 + '@vitest/browser-webdriverio': 4.1.6 + '@vitest/coverage-istanbul': 4.1.6 + '@vitest/coverage-v8': 4.1.6 + '@vitest/ui': 4.1.6 happy-dom: '*' jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -10850,6 +10449,10 @@ packages: optional: true '@vitest/browser-webdriverio': optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true '@vitest/ui': optional: true happy-dom: @@ -10864,34 +10467,24 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - watchpack@2.4.4: - resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + watchpack@2.5.1: + resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} engines: {node: '>=10.13.0'} - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - web-tree-sitter@0.24.5: resolution: {integrity: sha512-+J/2VSHN8J47gQUAvF8KDadrfz6uFYVjxoxbKWDoXVsH2u7yLdarCnIURnrMA6uSRkgX3SdmqM5BOoQjPdSh5w==} webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@8.0.0: - resolution: {integrity: sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==} + webidl-conversions@8.0.1: + resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} engines: {node: '>=20'} - webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + webpack-sources@3.3.4: + resolution: {integrity: sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==} engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.94.0: resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} engines: {node: '>=10.13.0'} @@ -10902,23 +10495,17 @@ packages: webpack-cli: optional: true - whatwg-fetch@3.6.20: - resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@15.1.0: - resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} + whatwg-mimetype@5.0.0: + resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} engines: {node: '>=20'} + whatwg-url@16.0.1: + resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - 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'} @@ -10931,14 +10518,6 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.15: - 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-typed-array@1.1.19: resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} @@ -10958,10 +10537,6 @@ packages: engines: {node: '>=8'} hasBin: true - widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - winston-transport@4.9.0: resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} engines: {node: '>= 12.0.0'} @@ -10977,6 +10552,10 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -10992,23 +10571,8 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.19.0: - resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + ws@8.20.1: + resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -11022,10 +10586,6 @@ packages: xcase@2.0.1: resolution: {integrity: sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==} - xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} - xml-but-prettier@1.0.1: resolution: {integrity: sha512-C2CJaadHrZTqESlH03WOyw0oZTtoy2uEg6dSDF6YRg+9GnYNub53RRemLpnvtbHDFelxMx4LajiFsYeR6XJHgQ==} @@ -11040,6 +10600,10 @@ packages: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + xml-naming@0.1.0: + resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} + engines: {node: '>=16.0.0'} + xml-reader@2.4.3: resolution: {integrity: sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==} @@ -11057,17 +10621,10 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - xmlhttprequest-ssl@2.0.0: - resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} - engines: {node: '>=0.4.0'} - xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - xycolors@0.1.2: - resolution: {integrity: sha512-iUIDKoRUq/6Nfkiwv/PqxR6ENzgLkaaOeWwY54CtObpEwmvQHCvsgxd5xIGfEF/QU75H2quxIffOoU4tf2kKDg==} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -11075,9 +10632,9 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} - engines: {node: '>= 14'} + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} hasBin: true yargs-parser@20.2.9: @@ -11104,14 +10661,14 @@ packages: resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + yoctocolors@2.1.1: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} @@ -11146,38 +10703,29 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@4.2.1: - resolution: {integrity: sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==} + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: - '@acemir/cssom@0.9.28': {} - - '@actions/core@2.0.1': + '@actions/core@3.0.0': dependencies: - '@actions/exec': 2.0.0 - '@actions/http-client': 3.0.0 + '@actions/exec': 3.0.0 + '@actions/http-client': 4.0.0 - '@actions/exec@2.0.0': + '@actions/exec@3.0.0': dependencies: - '@actions/io': 2.0.0 + '@actions/io': 3.0.2 - '@actions/http-client@3.0.0': + '@actions/http-client@4.0.0': dependencies: tunnel: 0.0.6 - undici: 5.29.0 + undici: 6.23.0 - '@actions/io@2.0.0': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@antfu/ni@0.21.12': {} + '@actions/io@3.0.2': {} '@ark/schema@0.46.0': dependencies: @@ -11187,25 +10735,27 @@ snapshots: '@ark/util@0.46.0': optional: true - '@asamuzakjp/css-color@4.1.0': + '@asamuzakjp/css-color@5.1.11': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - lru-cache: 11.2.4 + '@asamuzakjp/generational-cache': 1.0.1 + '@csstools/css-calc': 3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 - '@asamuzakjp/dom-selector@6.7.6': + '@asamuzakjp/dom-selector@7.1.1': dependencies: + '@asamuzakjp/generational-cache': 1.0.1 '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 - css-tree: 3.1.0 + css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.4 + + '@asamuzakjp/generational-cache@1.0.1': {} '@asamuzakjp/nwsapi@2.3.9': {} - '@auth/core@0.41.0': + '@auth/core@0.41.2': dependencies: '@panva/hkdf': 1.2.1 jose: 6.0.8 @@ -11213,74 +10763,33 @@ snapshots: preact: 10.24.3 preact-render-to-string: 6.5.11(preact@10.24.3) - '@auth/core@0.41.1': + '@auth/drizzle-adapter@1.11.2': dependencies: - '@panva/hkdf': 1.2.1 - jose: 6.0.8 - oauth4webapi: 3.3.0 - preact: 10.24.3 - preact-render-to-string: 6.5.11(preact@10.24.3) - - '@auth/drizzle-adapter@1.11.1': - dependencies: - '@auth/core': 0.41.1 + '@auth/core': 0.41.2 transitivePeerDependencies: - '@simplewebauthn/browser' - '@simplewebauthn/server' - nodemailer - '@axiomhq/js@1.0.0-rc.3': + '@babel/code-frame@7.29.0': dependencies: - fetch-retry: 6.0.0 - uuid: 8.3.2 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/code-frame@7.27.1': + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.26.2': {} - - '@babel/compat-data@7.27.5': {} - - '@babel/core@7.26.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.28.4 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/core@7.28.4': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -11290,238 +10799,92 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/core@7.28.5': + '@babel/generator@7.29.0': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.26.2': - dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 - - '@babel/generator@7.28.3': - dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.4 - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - jsesc: 3.0.2 - - '@babel/generator@7.28.5': - dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.0.2 - '@babel/helper-compilation-targets@7.25.9': + '@babel/helper-compilation-targets@7.28.6': dependencies: - '@babel/compat-data': 7.26.2 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.27.5 + '@babel/compat-data': 7.29.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.24.4 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 '@babel/helper-globals@7.28.0': {} - '@babel/helper-module-imports@7.25.9': + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.27.1': + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.3 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': - dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-option@7.25.9': {} - '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.28.4': + '@babel/helpers@7.29.2': dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 - '@babel/parser@7.26.2': + '@babel/parser@7.29.2': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.29.0 - '@babel/parser@7.28.3': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/types': 7.28.4 - - '@babel/parser@7.28.4': - dependencies: - '@babel/types': 7.28.4 - - '@babel/parser@7.28.5': - dependencies: - '@babel/types': 7.28.5 - - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.5)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/runtime-corejs3@7.27.1': dependencies: core-js-pure: 3.38.1 - '@babel/runtime@7.28.4': {} + '@babel/runtime@7.29.2': {} - '@babel/template@7.25.9': + '@babel/template@7.28.6': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 - '@babel/template@7.27.2': + '@babel/traverse@7.29.0': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - - '@babel/traverse@7.25.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.5 - '@babel/template': 7.25.9 - '@babel/types': 7.28.5 - debug: 4.4.3 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/traverse@7.28.3': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.0 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.3 - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/traverse@7.28.4': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/traverse@7.28.5': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.26.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@babel/types@7.28.2': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@babel/types@7.28.4': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@babel/types@7.28.5': + '@babel/types@7.29.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 @@ -11530,108 +10893,80 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@clack/core@0.3.5': + '@bramus/specificity@2.4.2': dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@clack/prompts@0.7.0': - dependencies: - '@clack/core': 0.3.5 - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@clack/prompts@0.8.2': - dependencies: - '@clack/core': 0.3.5 - picocolors: 1.1.1 - sisteransi: 1.0.5 + css-tree: 3.2.1 '@colors/colors@1.5.0': optional: true '@colors/colors@1.6.0': {} - '@cspotcode/source-map-support@0.8.1': + '@csstools/color-helpers@6.0.2': {} + + '@csstools/css-calc@3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@jridgewell/trace-mapping': 0.3.9 + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 - '@csstools/color-helpers@5.1.0': {} - - '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-color-parser@4.1.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/color-helpers': 6.0.2 + '@csstools/css-calc': 3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/color-helpers': 5.1.0 - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-syntax-patches-for-csstree@1.1.3(css-tree@3.2.1)': + optionalDependencies: + css-tree: 3.2.1 + + '@csstools/css-tokenizer@4.0.0': {} + + '@ctrl/deluge@8.0.0': dependencies: - '@csstools/css-tokenizer': 3.0.4 - - '@csstools/css-syntax-patches-for-csstree@1.0.14(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - - '@csstools/css-tokenizer@3.0.4': {} - - '@ctrl/deluge@7.5.0': - dependencies: - '@ctrl/magnet-link': 4.2.0 - '@ctrl/shared-torrent': 6.5.0(ofetch@1.5.1) + '@ctrl/magnet-link': 4.3.0 + '@ctrl/shared-torrent': 6.5.1(ofetch@1.5.1) + cookie-es: 3.0.1 node-fetch-native: 1.6.7 ofetch: 1.5.1 - tough-cookie: 6.0.0 - type-fest: 5.1.0 - ufo: 1.6.1 + type-fest: 5.6.0 + ufo: 1.6.4 uint8array-extras: 1.5.0 - '@ctrl/magnet-link@4.0.2': + '@ctrl/magnet-link@4.3.0': dependencies: rfc4648: 1.5.4 uint8array-extras: 1.5.0 - '@ctrl/magnet-link@4.2.0': + '@ctrl/qbittorrent@9.12.1': dependencies: - rfc4648: 1.5.4 - uint8array-extras: 1.5.0 - - '@ctrl/qbittorrent@9.11.0': - dependencies: - '@ctrl/magnet-link': 4.2.0 - '@ctrl/shared-torrent': 6.5.0(ofetch@1.5.1) - '@ctrl/torrent-file': 4.4.0 - cookie: 1.0.2 + '@ctrl/magnet-link': 4.3.0 + '@ctrl/shared-torrent': 6.5.1(ofetch@1.5.1) + '@ctrl/torrent-file': 4.5.0 + cookie: 1.1.1 node-fetch-native: 1.6.7 ofetch: 1.5.1 - type-fest: 5.2.0 - ufo: 1.6.1 + type-fest: 5.6.0 + ufo: 1.6.4 uint8array-extras: 1.5.0 - '@ctrl/shared-torrent@6.3.0(ofetch@1.4.1)': - dependencies: - ofetch: 1.4.1 - - '@ctrl/shared-torrent@6.5.0(ofetch@1.5.1)': + '@ctrl/shared-torrent@6.5.1(ofetch@1.5.1)': dependencies: ofetch: 1.5.1 - '@ctrl/torrent-file@4.4.0': - dependencies: - uint8array-extras: 1.5.0 + '@ctrl/torrent-file@4.5.0': {} '@ctrl/transmission@7.4.0': dependencies: - '@ctrl/magnet-link': 4.0.2 - '@ctrl/shared-torrent': 6.3.0(ofetch@1.4.1) - ofetch: 1.4.1 + '@ctrl/magnet-link': 4.3.0 + '@ctrl/shared-torrent': 6.5.1(ofetch@1.5.1) + ofetch: 1.5.1 type-fest: 4.41.0 - ufo: 1.6.1 + ufo: 1.6.4 uint8array-extras: 1.5.0 '@dabh/diagnostics@2.0.8': @@ -11640,43 +10975,43 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@dnd-kit/accessibility@3.1.1(react@19.2.3)': + '@dnd-kit/accessibility@3.1.1(react@19.2.6)': dependencies: - react: 19.2.3 + react: 19.2.6 tslib: 2.8.1 - '@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@dnd-kit/accessibility': 3.1.1(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@dnd-kit/accessibility': 3.1.1(react@19.2.6) + '@dnd-kit/utilities': 3.2.2(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': + '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 + '@dnd-kit/core': 6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@dnd-kit/utilities': 3.2.2(react@19.2.6) + react: 19.2.6 tslib: 2.8.1 - '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': + '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 + '@dnd-kit/core': 6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@dnd-kit/utilities': 3.2.2(react@19.2.6) + react: 19.2.6 tslib: 2.8.1 - '@dnd-kit/utilities@3.2.2(react@19.2.3)': + '@dnd-kit/utilities@3.2.2(react@19.2.6)': dependencies: - react: 19.2.3 + react: 19.2.6 tslib: 2.8.1 '@drizzle-team/brocli@0.10.2': {} - '@drizzle-team/brocli@0.11.0': {} + '@drizzle-team/brocli@0.12.0': {} - '@emnapi/runtime@1.6.0': + '@emnapi/runtime@1.9.1': dependencies: tslib: 2.8.1 optional: true @@ -11685,258 +11020,314 @@ snapshots: '@esbuild-kit/core-utils@3.3.2': dependencies: - esbuild: 0.27.2 + esbuild: 0.28.0 source-map-support: 0.5.21 '@esbuild-kit/esm-loader@2.6.5': dependencies: '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.6 '@esbuild/aix-ppc64@0.25.12': optional: true - '@esbuild/aix-ppc64@0.27.2': + '@esbuild/aix-ppc64@0.27.7': + optional: true + + '@esbuild/aix-ppc64@0.28.0': optional: true '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm64@0.27.2': + '@esbuild/android-arm64@0.27.7': + optional: true + + '@esbuild/android-arm64@0.28.0': optional: true '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-arm@0.27.2': + '@esbuild/android-arm@0.27.7': + optional: true + + '@esbuild/android-arm@0.28.0': optional: true '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/android-x64@0.27.2': + '@esbuild/android-x64@0.27.7': + optional: true + + '@esbuild/android-x64@0.28.0': optional: true '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.27.2': + '@esbuild/darwin-arm64@0.27.7': + optional: true + + '@esbuild/darwin-arm64@0.28.0': optional: true '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/darwin-x64@0.27.2': + '@esbuild/darwin-x64@0.27.7': + optional: true + + '@esbuild/darwin-x64@0.28.0': optional: true '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.27.2': + '@esbuild/freebsd-arm64@0.27.7': + optional: true + + '@esbuild/freebsd-arm64@0.28.0': optional: true '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.27.2': + '@esbuild/freebsd-x64@0.27.7': + optional: true + + '@esbuild/freebsd-x64@0.28.0': optional: true '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm64@0.27.2': + '@esbuild/linux-arm64@0.27.7': + optional: true + + '@esbuild/linux-arm64@0.28.0': optional: true '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-arm@0.27.2': + '@esbuild/linux-arm@0.27.7': + optional: true + + '@esbuild/linux-arm@0.28.0': optional: true '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-ia32@0.27.2': + '@esbuild/linux-ia32@0.27.7': + optional: true + + '@esbuild/linux-ia32@0.28.0': optional: true '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-loong64@0.27.2': + '@esbuild/linux-loong64@0.27.7': + optional: true + + '@esbuild/linux-loong64@0.28.0': optional: true '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-mips64el@0.27.2': + '@esbuild/linux-mips64el@0.27.7': + optional: true + + '@esbuild/linux-mips64el@0.28.0': optional: true '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.27.2': + '@esbuild/linux-ppc64@0.27.7': + optional: true + + '@esbuild/linux-ppc64@0.28.0': optional: true '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.27.2': + '@esbuild/linux-riscv64@0.27.7': + optional: true + + '@esbuild/linux-riscv64@0.28.0': optional: true '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-s390x@0.27.2': + '@esbuild/linux-s390x@0.27.7': + optional: true + + '@esbuild/linux-s390x@0.28.0': optional: true '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/linux-x64@0.27.2': + '@esbuild/linux-x64@0.27.7': + optional: true + + '@esbuild/linux-x64@0.28.0': optional: true '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.27.2': + '@esbuild/netbsd-arm64@0.27.7': + optional: true + + '@esbuild/netbsd-arm64@0.28.0': optional: true '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.27.2': + '@esbuild/netbsd-x64@0.27.7': + optional: true + + '@esbuild/netbsd-x64@0.28.0': optional: true '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.27.2': + '@esbuild/openbsd-arm64@0.27.7': + optional: true + + '@esbuild/openbsd-arm64@0.28.0': optional: true '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.27.2': + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openbsd-x64@0.28.0': optional: true '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.2': + '@esbuild/openharmony-arm64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.28.0': optional: true '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/sunos-x64@0.27.2': + '@esbuild/sunos-x64@0.27.7': + optional: true + + '@esbuild/sunos-x64@0.28.0': optional: true '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-arm64@0.27.2': + '@esbuild/win32-arm64@0.27.7': + optional: true + + '@esbuild/win32-arm64@0.28.0': optional: true '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.27.2': + '@esbuild/win32-ia32@0.27.7': + optional: true + + '@esbuild/win32-ia32@0.28.0': optional: true '@esbuild/win32-x64@0.25.12': optional: true - '@esbuild/win32-x64@0.27.2': + '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2)': - dependencies: - eslint: 9.39.2 - eslint-visitor-keys: 3.4.3 + '@esbuild/win32-x64@0.28.0': + optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2)': + '@eslint-community/eslint-utils@4.9.1(eslint@10.4.0)': dependencies: - eslint: 9.39.2 + eslint: 10.4.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} - '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.21.1': + '@eslint/config-array@0.23.5': dependencies: - '@eslint/object-schema': 2.1.7 + '@eslint/object-schema': 3.0.5 debug: 4.4.3 - minimatch: 3.1.2 + minimatch: 10.2.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.4.2': + '@eslint/config-helpers@0.6.0': dependencies: - '@eslint/core': 0.17.0 + '@eslint/core': 1.2.1 - '@eslint/core@0.17.0': + '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': + '@eslint/js@10.0.1(eslint@10.4.0)': + optionalDependencies: + eslint: 10.4.0 + + '@eslint/object-schema@3.0.5': {} + + '@eslint/plugin-kit@0.7.1': dependencies: - ajv: 6.12.6 - debug: 4.4.3 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.1 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.39.2': {} - - '@eslint/object-schema@2.1.7': {} - - '@eslint/plugin-kit@0.4.1': - dependencies: - '@eslint/core': 0.17.0 + '@eslint/core': 1.2.1 levn: 0.4.1 - '@exodus/bytes@1.7.0': {} + '@exodus/bytes@1.15.0(@noble/hashes@2.0.1)': + optionalDependencies: + '@noble/hashes': 2.0.1 - '@extractus/feed-extractor@7.1.7': + '@extractus/feed-extractor@7.2.1': dependencies: - '@ndaidong/bellajs': 12.0.1 - cross-fetch: 4.1.0 - fast-xml-parser: 5.3.3 + '@pwshub/bellajs': 13.0.2 + fast-xml-parser: 5.8.0 html-entities: 2.6.0 - transitivePeerDependencies: - - encoding - '@fastify/ajv-compiler@4.0.2': + '@fastify/ajv-compiler@4.0.5': dependencies: - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) - fast-uri: 3.0.6 - - '@fastify/busboy@2.1.1': {} + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + fast-uri: 3.1.0 '@fastify/error@4.2.0': {} '@fastify/fast-json-stringify-compiler@5.0.3': dependencies: - fast-json-stringify: 6.0.1 + fast-json-stringify: 6.3.0 - '@fastify/forwarded@3.0.0': {} + '@fastify/forwarded@3.0.1': {} '@fastify/merge-json-schemas@0.2.1': dependencies: dequal: 2.0.3 - '@fastify/proxy-addr@5.0.0': + '@fastify/proxy-addr@5.1.0': dependencies: - '@fastify/forwarded': 3.0.0 - ipaddr.js: 2.2.0 + '@fastify/forwarded': 3.0.1 + ipaddr.js: 2.3.0 '@floating-ui/core@1.7.3': dependencies: @@ -11947,45 +11338,52 @@ snapshots: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@floating-ui/react-dom@2.1.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@floating-ui/dom': 1.7.4 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - '@floating-ui/react@0.27.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@floating-ui/react@0.27.16(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@floating-ui/utils': 0.2.10 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) tabbable: 6.2.0 '@floating-ui/utils@0.2.10': {} - '@formatjs/ecma402-abstract@2.2.0': + '@formatjs/ecma402-abstract@3.1.0': dependencies: - '@formatjs/fast-memoize': 2.2.1 - '@formatjs/intl-localematcher': 0.5.5 + '@formatjs/fast-memoize': 3.1.0 + '@formatjs/intl-localematcher': 0.8.0 + decimal.js: 10.6.0 tslib: 2.8.1 - '@formatjs/fast-memoize@2.2.1': + '@formatjs/fast-memoize@3.1.0': dependencies: tslib: 2.8.1 - '@formatjs/icu-messageformat-parser@2.8.0': + '@formatjs/icu-messageformat-parser@3.5.0': dependencies: - '@formatjs/ecma402-abstract': 2.2.0 - '@formatjs/icu-skeleton-parser': 1.8.4 + '@formatjs/ecma402-abstract': 3.1.0 + '@formatjs/icu-skeleton-parser': 2.1.0 tslib: 2.8.1 - '@formatjs/icu-skeleton-parser@1.8.4': + '@formatjs/icu-skeleton-parser@2.1.0': dependencies: - '@formatjs/ecma402-abstract': 2.2.0 + '@formatjs/ecma402-abstract': 3.1.0 tslib: 2.8.1 - '@formatjs/intl-localematcher@0.5.5': + '@formatjs/intl-localematcher@0.8.0': dependencies: + '@formatjs/fast-memoize': 3.1.0 + tslib: 2.8.1 + + '@formatjs/intl-localematcher@0.8.1': + dependencies: + '@formatjs/fast-memoize': 3.1.0 tslib: 2.8.1 '@gitbeaker/core@43.8.0': @@ -12014,7 +11412,7 @@ snapshots: '@grpc/proto-loader@0.7.13': dependencies: lodash.camelcase: 4.3.0 - long: 5.2.3 + long: 5.3.2 protobufjs: 7.4.0 yargs: 17.7.2 @@ -12022,23 +11420,19 @@ snapshots: '@homarr/gridstack@1.12.0': {} - '@homarr/node-unifi@2.6.0(undici@7.18.2)': + '@homarr/node-unifi@2.6.0(undici@7.24.6)': dependencies: axios: 1.9.0 eventemitter2: 6.4.9 - http-cookie-agent: 6.0.8(tough-cookie@5.1.2)(undici@7.18.2) + http-cookie-agent: 6.0.8(tough-cookie@5.1.2)(undici@7.24.6) tough-cookie: 5.1.2 - ws: 8.19.0 + ws: 8.20.1 transitivePeerDependencies: - bufferutil - debug - undici - utf-8-validate - '@hono/node-server@1.13.0(hono@4.11.3)': - dependencies: - hono: 4.11.3 - '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -12052,113 +11446,244 @@ snapshots: '@humanwhocodes/retry@0.4.2': {} - '@ianvs/prettier-plugin-sort-imports@4.7.0(prettier@3.7.4)': + '@ianvs/prettier-plugin-sort-imports@4.7.1(prettier@3.8.3)': dependencies: - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.3 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 - prettier: 3.7.4 - semver: 7.7.2 + '@babel/generator': 7.29.0 + '@babel/parser': 7.29.2 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + prettier: 3.8.3 + semver: 7.7.4 transitivePeerDependencies: - supports-color '@img/colour@1.0.0': optional: true - '@img/sharp-darwin-arm64@0.34.4': + '@img/sharp-darwin-arm64@0.34.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.3 + '@img/sharp-libvips-darwin-arm64': 1.2.4 optional: true - '@img/sharp-darwin-x64@0.34.4': + '@img/sharp-darwin-x64@0.34.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.3 + '@img/sharp-libvips-darwin-x64': 1.2.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.2.3': + '@img/sharp-libvips-darwin-arm64@1.2.4': optional: true - '@img/sharp-libvips-darwin-x64@1.2.3': + '@img/sharp-libvips-darwin-x64@1.2.4': optional: true - '@img/sharp-libvips-linux-arm64@1.2.3': + '@img/sharp-libvips-linux-arm64@1.2.4': optional: true - '@img/sharp-libvips-linux-arm@1.2.3': + '@img/sharp-libvips-linux-arm@1.2.4': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.3': + '@img/sharp-libvips-linux-ppc64@1.2.4': optional: true - '@img/sharp-libvips-linux-s390x@1.2.3': + '@img/sharp-libvips-linux-riscv64@1.2.4': optional: true - '@img/sharp-libvips-linux-x64@1.2.3': + '@img/sharp-libvips-linux-s390x@1.2.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.3': + '@img/sharp-libvips-linux-x64@1.2.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.3': + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': optional: true - '@img/sharp-linux-arm64@0.34.4': + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + optional: true + + '@img/sharp-linux-arm64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.3 + '@img/sharp-libvips-linux-arm64': 1.2.4 optional: true - '@img/sharp-linux-arm@0.34.4': + '@img/sharp-linux-arm@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.3 + '@img/sharp-libvips-linux-arm': 1.2.4 optional: true - '@img/sharp-linux-ppc64@0.34.4': + '@img/sharp-linux-ppc64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.3 + '@img/sharp-libvips-linux-ppc64': 1.2.4 optional: true - '@img/sharp-linux-s390x@0.34.4': + '@img/sharp-linux-riscv64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.3 + '@img/sharp-libvips-linux-riscv64': 1.2.4 optional: true - '@img/sharp-linux-x64@0.34.4': + '@img/sharp-linux-s390x@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.3 + '@img/sharp-libvips-linux-s390x': 1.2.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.4': + '@img/sharp-linux-x64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + '@img/sharp-libvips-linux-x64': 1.2.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.4': + '@img/sharp-linuxmusl-arm64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 optional: true - '@img/sharp-wasm32@0.34.4': + '@img/sharp-linuxmusl-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + optional: true + + '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.6.0 + '@emnapi/runtime': 1.9.1 optional: true - '@img/sharp-win32-arm64@0.34.4': + '@img/sharp-win32-arm64@0.34.5': optional: true - '@img/sharp-win32-ia32@0.34.4': + '@img/sharp-win32-ia32@0.34.5': optional: true - '@img/sharp-win32-x64@0.34.4': + '@img/sharp-win32-x64@0.34.5': optional: true - '@ioredis/commands@1.5.0': {} - - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': + '@immich/sdk@2.7.5': dependencies: - '@isaacs/balanced-match': 4.0.1 + '@oazapfts/runtime': 1.2.0 + + '@inquirer/ansi@1.0.2': {} + + '@inquirer/checkbox@4.3.2(@types/node@24.12.4)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.12.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/confirm@5.1.21(@types/node@24.12.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/core@10.3.2(@types/node@24.12.4)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.12.4) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/editor@4.2.23(@types/node@24.12.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/external-editor': 1.0.3(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/expand@4.0.23(@types/node@24.12.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/external-editor@1.0.3(@types/node@24.12.4)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/figures@1.0.15': {} + + '@inquirer/input@4.3.1(@types/node@24.12.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/number@3.0.23(@types/node@24.12.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/password@4.0.23(@types/node@24.12.4)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/prompts@7.10.1(@types/node@24.12.4)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@24.12.4) + '@inquirer/confirm': 5.1.21(@types/node@24.12.4) + '@inquirer/editor': 4.2.23(@types/node@24.12.4) + '@inquirer/expand': 4.0.23(@types/node@24.12.4) + '@inquirer/input': 4.3.1(@types/node@24.12.4) + '@inquirer/number': 3.0.23(@types/node@24.12.4) + '@inquirer/password': 4.0.23(@types/node@24.12.4) + '@inquirer/rawlist': 4.1.11(@types/node@24.12.4) + '@inquirer/search': 3.2.2(@types/node@24.12.4) + '@inquirer/select': 4.4.2(@types/node@24.12.4) + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/rawlist@4.1.11(@types/node@24.12.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/search@3.2.2(@types/node@24.12.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.12.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/select@4.4.2(@types/node@24.12.4)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.12.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.12.4 + + '@inquirer/type@3.0.10(@types/node@24.12.4)': + optionalDependencies: + '@types/node': 24.12.4 + + '@ioredis/commands@1.5.1': {} '@isaacs/cliui@8.0.2': dependencies: @@ -12169,70 +11694,36 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jellyfin/sdk@0.13.0(axios@1.12.2)': - dependencies: - axios: 1.12.2 + '@isaacs/cliui@9.0.0': {} - '@jridgewell/gen-mapping@0.3.12': + '@jellyfin/sdk@0.13.0(axios@1.15.0)': dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.29 + axios: 1.15.0 '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} - '@jridgewell/source-map@0.3.11': dependencies: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@jridgewell/trace-mapping@0.3.29': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - '@js-sdsl/ordered-map@4.4.2': {} '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': @@ -12246,21 +11737,21 @@ snapshots: '@kubernetes/client-node@1.4.0': dependencies: '@types/js-yaml': 4.0.9 - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/node-fetch': 2.6.13 '@types/stream-buffers': 3.0.7 form-data: 4.0.5 hpagent: 1.2.0 - isomorphic-ws: 5.0.0(ws@8.19.0) - js-yaml: 4.1.0 + isomorphic-ws: 5.0.0(ws@8.20.1) + js-yaml: 4.1.1 jsonpath-plus: 10.3.0 node-fetch: 2.7.0 openid-client: 6.3.3 rfc4648: 1.5.4 socks-proxy-agent: 8.0.5 stream-buffers: 3.0.3 - tar-fs: 3.1.1 - ws: 8.19.0 + tar-fs: 3.1.2 + ws: 8.20.1 transitivePeerDependencies: - bare-buffer - bufferutil @@ -12268,6 +11759,12 @@ snapshots: - supports-color - utf-8-validate + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + '@libsql/client-wasm@0.14.0': dependencies: '@libsql/core': 0.14.0 @@ -12279,183 +11776,130 @@ snapshots: js-base64: 3.7.8 optional: true - '@mantine/charts@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(recharts@2.15.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + '@mantine/charts@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react-is@19.2.6)(react@19.2.6)(redux@5.0.1))': dependencies: - '@mantine/core': 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - recharts: 2.15.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + recharts: 3.8.1(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react-is@19.2.6)(react@19.2.6)(redux@5.0.1) - '@mantine/colors-generator@8.3.12(chroma-js@3.2.0)': + '@mantine/colors-generator@8.3.18(chroma-js@3.2.0)': dependencies: chroma-js: 3.2.0 - '@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@floating-ui/react': 0.27.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) + '@floating-ui/react': 0.27.16(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) clsx: 2.1.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-number-format: 5.4.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react-remove-scroll: 2.7.1(@types/react@19.2.8)(react@19.2.3) - react-textarea-autosize: 8.5.9(@types/react@19.2.8)(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-number-format: 5.4.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react-remove-scroll: 2.7.1(@types/react@19.2.14)(react@19.2.6) + react-textarea-autosize: 8.5.9(@types/react@19.2.14)(react@19.2.6) type-fest: 4.41.0 transitivePeerDependencies: - '@types/react' - '@mantine/dates@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@mantine/core': 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) clsx: 2.1.1 - dayjs: 1.11.19 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + dayjs: 1.11.20 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - '@mantine/dropzone@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@mantine/dropzone@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@mantine/core': 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-dropzone: 14.3.8(react@19.2.3) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-dropzone: 15.0.0(react@19.2.6) - '@mantine/form@8.3.12(react@19.2.3)': + '@mantine/form@8.3.18(react@19.2.6)': dependencies: fast-deep-equal: 3.1.3 klona: 2.0.6 - react: 19.2.3 + react: 19.2.6 - '@mantine/hooks@8.3.12(react@19.2.3)': + '@mantine/hooks@8.3.18(react@19.2.6)': dependencies: - react: 19.2.3 + react: 19.2.6 - '@mantine/modals@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@mantine/modals@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@mantine/core': 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - '@mantine/notifications@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@mantine/notifications@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@mantine/core': 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) - '@mantine/store': 8.3.12(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + '@mantine/store': 8.3.18(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-transition-group: 4.4.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@mantine/spotlight@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@mantine/spotlight@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@mantine/core': 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) - '@mantine/store': 8.3.12(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + '@mantine/store': 8.3.18(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - '@mantine/store@8.3.12(react@19.2.3)': + '@mantine/store@8.3.18(react@19.2.6)': dependencies: - react: 19.2.3 + react: 19.2.6 - '@mantine/tiptap@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(@tiptap/extension-link@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))(@tiptap/react@3.15.3(@floating-ui/dom@1.7.4)(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@mantine/tiptap@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(@tiptap/extension-link@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))(@tiptap/react@3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@mantine/core': 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) - '@tiptap/extension-link': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) - '@tiptap/react': 3.15.3(@floating-ui/dom@1.7.4)(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + '@tiptap/extension-link': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/react': 3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - '@million/install@1.0.14': - dependencies: - '@antfu/ni': 0.21.12 - '@axiomhq/js': 1.0.0-rc.3 - '@babel/parser': 7.28.5 - '@babel/types': 7.26.0 - '@clack/prompts': 0.7.0 - ast-types: 0.14.2 - cli-high: 0.4.3 - diff: 5.2.0 - effect: 3.19.4 - nanoid: 5.1.6 - recast: 0.23.11 - xycolors: 0.1.2 + '@next/env@16.2.6': {} - '@million/lint@1.0.14(webpack-sources@3.3.3)': - dependencies: - '@axiomhq/js': 1.0.0-rc.3 - '@babel/core': 7.26.0 - '@babel/types': 7.26.0 - '@hono/node-server': 1.13.0(hono@4.11.3) - '@million/install': 1.0.14 - '@rollup/pluginutils': 5.1.0 - '@rrweb/types': 2.0.0-alpha.16 - babel-plugin-syntax-hermes-parser: 0.21.1 - ci-info: 4.0.0 - esbuild: 0.27.2 - faster-babel-types: 0.1.0(@babel/types@7.26.0) - hono: 4.11.3 - isomorphic-fetch: 3.0.0 - nanoid: 5.1.6 - ohash: 1.1.4 - pako: 2.1.0 - pathe: 1.1.2 - piscina: 4.6.1 - pretty-ms: 8.0.0 - react-scan: 0.0.31 - rrweb: 2.0.0-alpha.4 - rrweb-player: 1.0.0-alpha.4 - semver: 7.6.3 - socket.io: 4.8.1 - socket.io-client: 4.7.5 - tmp: 0.2.5 - unplugin: 1.14.1(webpack-sources@3.3.3) - update-notifier-cjs: 5.1.6 - transitivePeerDependencies: - - bufferutil - - encoding - - rollup - - supports-color - - utf-8-validate - - webpack-sources - - '@ndaidong/bellajs@12.0.1': {} - - '@next/env@16.1.1': {} - - '@next/eslint-plugin-next@16.1.1': + '@next/eslint-plugin-next@16.2.6': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@16.1.1': + '@next/swc-darwin-arm64@16.2.6': optional: true - '@next/swc-darwin-x64@16.1.1': + '@next/swc-darwin-x64@16.2.6': optional: true - '@next/swc-linux-arm64-gnu@16.1.1': + '@next/swc-linux-arm64-gnu@16.2.6': optional: true - '@next/swc-linux-arm64-musl@16.1.1': + '@next/swc-linux-arm64-musl@16.2.6': optional: true - '@next/swc-linux-x64-gnu@16.1.1': + '@next/swc-linux-x64-gnu@16.2.6': optional: true - '@next/swc-linux-x64-musl@16.1.1': + '@next/swc-linux-x64-musl@16.2.6': optional: true - '@next/swc-win32-arm64-msvc@16.1.1': + '@next/swc-win32-arm64-msvc@16.2.6': optional: true - '@next/swc-win32-x64-msvc@16.1.1': + '@next/swc-win32-x64-msvc@16.2.6': optional: true '@noble/hashes@2.0.1': {} + '@nodable/entities@2.1.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -12466,11 +11910,13 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.20.1 + + '@oazapfts/runtime@1.2.0': {} '@octokit/app@16.1.2': dependencies: - '@octokit/auth-app': 8.1.2 + '@octokit/auth-app': 8.2.0 '@octokit/auth-unauthenticated': 7.0.3 '@octokit/core': 7.0.6 '@octokit/oauth-app': 8.0.3 @@ -12478,7 +11924,7 @@ snapshots: '@octokit/types': 16.0.0 '@octokit/webhooks': 14.0.0 - '@octokit/auth-app@8.1.2': + '@octokit/auth-app@8.2.0': dependencies: '@octokit/auth-oauth-app': 9.0.3 '@octokit/auth-oauth-user': 6.0.2 @@ -12514,11 +11960,6 @@ snapshots: '@octokit/auth-token@6.0.0': {} - '@octokit/auth-unauthenticated@7.0.2': - dependencies: - '@octokit/request-error': 7.0.2 - '@octokit/types': 15.0.1 - '@octokit/auth-unauthenticated@7.0.3': dependencies: '@octokit/request-error': 7.0.2 @@ -12549,7 +11990,7 @@ snapshots: dependencies: '@octokit/auth-oauth-app': 9.0.3 '@octokit/auth-oauth-user': 6.0.2 - '@octokit/auth-unauthenticated': 7.0.2 + '@octokit/auth-unauthenticated': 7.0.3 '@octokit/core': 7.0.6 '@octokit/oauth-authorization-url': 8.0.0 '@octokit/oauth-methods': 6.0.2 @@ -12565,8 +12006,6 @@ snapshots: '@octokit/request-error': 7.0.2 '@octokit/types': 16.0.0 - '@octokit/openapi-types@26.0.0': {} - '@octokit/openapi-types@27.0.0': {} '@octokit/openapi-webhooks-types@11.0.0': {} @@ -12610,10 +12049,6 @@ snapshots: fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.2 - '@octokit/types@15.0.1': - dependencies: - '@octokit/openapi-types': 26.0.0 - '@octokit/types@16.0.0': dependencies: '@octokit/openapi-types': 27.0.0 @@ -12628,7 +12063,7 @@ snapshots: '@panva/hkdf@1.2.1': {} - '@paralleldrive/cuid2@3.1.0': + '@paralleldrive/cuid2@3.3.0': dependencies: '@noble/hashes': 2.0.1 bignumber.js: 9.3.1 @@ -12698,7 +12133,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.2.9': {} + '@playwright/test@1.60.0': + dependencies: + playwright: 1.60.0 '@pnpm/config.env-replace@1.1.0': {} @@ -12737,82 +12174,99 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@remirror/core-constants@3.0.0': {} + '@pwshub/bellajs@13.0.2': {} - '@rolldown/pluginutils@1.0.0-beta.53': {} - - '@rollup/pluginutils@5.1.0': + '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1))(react@19.2.6)': dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 2.3.1 + '@standard-schema/spec': 1.1.0 + '@standard-schema/utils': 0.3.0 + immer: 11.1.4 + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + optionalDependencies: + react: 19.2.6 + react-redux: 9.2.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1) - '@rollup/rollup-android-arm-eabi@4.48.1': + '@rolldown/pluginutils@1.0.0-rc.3': {} + + '@rollup/rollup-android-arm-eabi@4.60.0': optional: true - '@rollup/rollup-android-arm64@4.48.1': + '@rollup/rollup-android-arm64@4.60.0': optional: true - '@rollup/rollup-darwin-arm64@4.48.1': + '@rollup/rollup-darwin-arm64@4.60.0': optional: true - '@rollup/rollup-darwin-x64@4.48.1': + '@rollup/rollup-darwin-x64@4.60.0': optional: true - '@rollup/rollup-freebsd-arm64@4.48.1': + '@rollup/rollup-freebsd-arm64@4.60.0': optional: true - '@rollup/rollup-freebsd-x64@4.48.1': + '@rollup/rollup-freebsd-x64@4.60.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.48.1': + '@rollup/rollup-linux-arm-gnueabihf@4.60.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.48.1': + '@rollup/rollup-linux-arm-musleabihf@4.60.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.48.1': + '@rollup/rollup-linux-arm64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.48.1': + '@rollup/rollup-linux-arm64-musl@4.60.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.48.1': + '@rollup/rollup-linux-loong64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.48.1': + '@rollup/rollup-linux-loong64-musl@4.60.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.48.1': + '@rollup/rollup-linux-ppc64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.48.1': + '@rollup/rollup-linux-ppc64-musl@4.60.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.48.1': + '@rollup/rollup-linux-riscv64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.48.1': + '@rollup/rollup-linux-riscv64-musl@4.60.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.0': optional: true '@rollup/rollup-linux-x64-gnu@4.6.1': optional: true - '@rollup/rollup-linux-x64-musl@4.48.1': + '@rollup/rollup-linux-x64-gnu@4.60.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.48.1': + '@rollup/rollup-linux-x64-musl@4.60.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.48.1': + '@rollup/rollup-openbsd-x64@4.60.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.48.1': + '@rollup/rollup-openharmony-arm64@4.60.0': optional: true - '@rrweb/types@2.0.0-alpha.16': - dependencies: - rrweb-snapshot: 2.0.0-alpha.17 + '@rollup/rollup-win32-arm64-msvc@4.60.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.0': + optional: true '@rtsao/scc@1.1.0': {} @@ -12824,25 +12278,25 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/changelog@6.0.3(semantic-release@25.0.2(typescript@5.9.3))': + '@semantic-release/changelog@6.0.3(semantic-release@25.0.3(typescript@5.9.3))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 fs-extra: 11.2.0 - lodash: 4.17.21 - semantic-release: 25.0.2(typescript@5.9.3) + lodash: 4.18.1 + semantic-release: 25.0.3(typescript@5.9.3) - '@semantic-release/commit-analyzer@13.0.1(semantic-release@25.0.2(typescript@5.9.3))': + '@semantic-release/commit-analyzer@13.0.1(semantic-release@25.0.3(typescript@5.9.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.4.0 + debug: 4.4.3 import-from-esm: 2.0.0 lodash-es: 4.17.21 micromatch: 4.0.8 - semantic-release: 25.0.2(typescript@5.9.3) + semantic-release: 25.0.3(typescript@5.9.3) transitivePeerDependencies: - supports-color @@ -12850,21 +12304,21 @@ snapshots: '@semantic-release/error@4.0.0': {} - '@semantic-release/git@10.0.1(semantic-release@25.0.2(typescript@5.9.3))': + '@semantic-release/git@10.0.1(semantic-release@25.0.3(typescript@5.9.3))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - debug: 4.3.7 + debug: 4.4.3 dir-glob: 3.0.1 execa: 5.1.1 - lodash: 4.17.21 + lodash: 4.18.1 micromatch: 4.0.8 p-reduce: 2.1.0 - semantic-release: 25.0.2(typescript@5.9.3) + semantic-release: 25.0.3(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@semantic-release/github@12.0.2(semantic-release@25.0.2(typescript@5.9.3))': + '@semantic-release/github@12.0.8(semantic-release@25.0.3(typescript@5.9.3))': dependencies: '@octokit/core': 7.0.6 '@octokit/plugin-paginate-rest': 14.0.0(@octokit/core@7.0.6) @@ -12874,22 +12328,22 @@ snapshots: aggregate-error: 5.0.0 debug: 4.4.3 dir-glob: 3.0.1 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + http-proxy-agent: 9.0.0 + https-proxy-agent: 9.0.0 issue-parser: 7.0.1 lodash-es: 4.17.21 mime: 4.0.4 p-filter: 4.1.0 - semantic-release: 25.0.2(typescript@5.9.3) + semantic-release: 25.0.3(typescript@5.9.3) tinyglobby: 0.2.15 - undici: 7.18.2 + undici: 7.25.0 url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/npm@13.1.3(semantic-release@25.0.2(typescript@5.9.3))': + '@semantic-release/npm@13.1.5(semantic-release@25.0.3(typescript@5.9.3))': dependencies: - '@actions/core': 2.0.1 + '@actions/core': 3.0.0 '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 env-ci: 11.2.0 @@ -12897,28 +12351,26 @@ snapshots: fs-extra: 11.2.0 lodash-es: 4.17.21 nerf-dart: 1.0.0 - normalize-url: 8.0.1 + normalize-url: 9.0.0 npm: 11.6.2 rc: 1.2.8 read-pkg: 10.0.0 registry-auth-token: 5.0.2 - semantic-release: 25.0.2(typescript@5.9.3) - semver: 7.7.3 + semantic-release: 25.0.3(typescript@5.9.3) + semver: 7.7.4 tempy: 3.1.0 - '@semantic-release/release-notes-generator@14.1.0(semantic-release@25.0.2(typescript@5.9.3))': + '@semantic-release/release-notes-generator@14.1.1(semantic-release@25.0.3(typescript@5.9.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.4.1 - get-stream: 7.0.1 + debug: 4.4.3 import-from-esm: 2.0.0 - into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 - semantic-release: 25.0.2(typescript@5.9.3) + semantic-release: 25.0.3(typescript@5.9.3) transitivePeerDependencies: - supports-color @@ -12931,24 +12383,24 @@ snapshots: color: 5.0.2 text-hex: 1.0.0 - '@socket.io/component-emitter@3.1.2': {} + '@standard-schema/spec@1.1.0': {} - '@standard-schema/spec@1.0.0': {} + '@standard-schema/utils@0.3.0': {} - '@swagger-api/apidom-ast@1.0.0-rc.1': + '@swagger-api/apidom-ast@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 + '@swagger-api/apidom-error': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) unraw: 3.0.0 - '@swagger-api/apidom-core@1.0.0-rc.1': + '@swagger-api/apidom-core@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-ast': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 + '@swagger-api/apidom-ast': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 '@types/ramda': 0.30.2 minim: 0.23.8 ramda: 0.30.1 @@ -12956,213 +12408,260 @@ snapshots: short-unique-id: 5.3.2 ts-mixer: 6.0.4 - '@swagger-api/apidom-error@1.0.0-rc.1': + '@swagger-api/apidom-error@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-json-pointer@1.0.0-rc.1': + '@swagger-api/apidom-json-pointer@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 '@swaggerexpert/json-pointer': 2.10.2 - '@swagger-api/apidom-ns-api-design-systems@1.0.0-rc.1': + '@swagger-api/apidom-ns-api-design-systems@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-arazzo-1@1.0.0-rc.1': + '@swagger-api/apidom-ns-arazzo-1@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-2020-12': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-asyncapi-2@1.0.0-rc.1': + '@swagger-api/apidom-ns-asyncapi-2@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-draft-7': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-json-schema-draft-7': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-json-schema-2019-09@1.0.0-rc.1': + '@swagger-api/apidom-ns-asyncapi-3@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-draft-7': 1.0.0-rc.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-json-schema-2020-12@1.0.0-rc.1': - dependencies: - '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-2019-09': 1.0.0-rc.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-json-schema-draft-4@1.0.0-rc.1': - dependencies: - '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-ast': 1.0.0-rc.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-json-schema-draft-6@1.0.0-rc.1': - dependencies: - '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-rc.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-json-schema-draft-7@1.0.0-rc.1': - dependencies: - '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-draft-6': 1.0.0-rc.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-openapi-2@1.0.0-rc.1': - dependencies: - '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-asyncapi-2': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-openapi-3-0@1.0.0-rc.1': + '@swagger-api/apidom-ns-json-schema-2019-09@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 + '@swagger-api/apidom-ns-json-schema-draft-7': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-openapi-3-1@1.0.0-rc.1': + '@swagger-api/apidom-ns-json-schema-2020-12@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-ast': 1.0.0-rc.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-json-pointer': 1.0.0-rc.1 - '@swagger-api/apidom-ns-json-schema-2020-12': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 + '@swagger-api/apidom-ns-json-schema-2019-09': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.0.0-rc.1': + '@swagger-api/apidom-ns-json-schema-draft-4@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-api-design-systems': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-rc.1 + '@swagger-api/apidom-ast': 1.11.0 + '@swagger-api/apidom-core': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-json-schema-draft-6@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-json-schema-draft-7@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 + '@swagger-api/apidom-ns-json-schema-draft-6': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-openapi-2@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + optional: true + + '@swagger-api/apidom-ns-openapi-3-0@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-openapi-3-1@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-ast': 1.11.0 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-json-pointer': 1.11.0 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-openapi-3-2@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-ast': 1.11.0 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-json-pointer': 1.11.0 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-api-design-systems': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-api-design-systems': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-api-design-systems': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-arazzo-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-arazzo-1': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-arazzo-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-arazzo-1': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-asyncapi-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-asyncapi-3': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-json@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-ast': 1.0.0-rc.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-asyncapi-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-asyncapi-3': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-json@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-ast': 1.11.0 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) @@ -13171,78 +12670,100 @@ snapshots: web-tree-sitter: 0.24.5 optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-2@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-openapi-json-2@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-2': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-openapi-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-2': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-openapi-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-yaml-1-2@1.0.0-rc.1': + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-ast': 1.0.0-rc.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-yaml-1-2@1.11.0': + dependencies: + '@babel/runtime-corejs3': 7.27.1 + '@swagger-api/apidom-ast': 1.11.0 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 '@tree-sitter-grammars/tree-sitter-yaml': 0.7.1(tree-sitter@0.22.4) '@types/ramda': 0.30.2 ramda: 0.30.1 @@ -13251,38 +12772,42 @@ snapshots: web-tree-sitter: 0.24.5 optional: true - '@swagger-api/apidom-reference@1.0.0-rc.1': + '@swagger-api/apidom-reference@1.11.0': dependencies: '@babel/runtime-corejs3': 7.27.1 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 '@types/ramda': 0.30.2 - axios: 1.12.2 - minimatch: 7.4.6 - process: 0.11.10 + axios: 1.15.0 + minimatch: 10.2.5 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optionalDependencies: - '@swagger-api/apidom-json-pointer': 1.0.0-rc.1 - '@swagger-api/apidom-ns-arazzo-1': 1.0.0-rc.1 - '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-2': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-api-design-systems-json': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-arazzo-json-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-openapi-json-2': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 1.0.0-rc.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-rc.1 + '@swagger-api/apidom-json-pointer': 1.11.0 + '@swagger-api/apidom-ns-arazzo-1': 1.11.0 + '@swagger-api/apidom-ns-asyncapi-2': 1.11.0 + '@swagger-api/apidom-ns-openapi-2': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-api-design-systems-json': 1.11.0 + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 1.11.0 + '@swagger-api/apidom-parser-adapter-arazzo-json-1': 1.11.0 + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1': 1.11.0 + '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-asyncapi-json-3': 1.11.0 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3': 1.11.0 + '@swagger-api/apidom-parser-adapter-json': 1.11.0 + '@swagger-api/apidom-parser-adapter-openapi-json-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 1.11.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 1.11.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 1.11.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 1.11.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2': 1.11.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.0 transitivePeerDependencies: - debug @@ -13350,316 +12875,308 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@t3-oss/env-core@0.13.10(arktype@2.1.20)(typescript@5.9.3)(zod@4.2.1)': + '@t3-oss/env-core@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.4.3)': optionalDependencies: arktype: 2.1.20 typescript: 5.9.3 - zod: 4.2.1 + zod: 4.4.3 - '@t3-oss/env-nextjs@0.13.10(arktype@2.1.20)(typescript@5.9.3)(zod@4.2.1)': + '@t3-oss/env-nextjs@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.4.3)': dependencies: - '@t3-oss/env-core': 0.13.10(arktype@2.1.20)(typescript@5.9.3)(zod@4.2.1) + '@t3-oss/env-core': 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.4.3) optionalDependencies: arktype: 2.1.20 typescript: 5.9.3 - zod: 4.2.1 + zod: 4.4.3 - '@tabler/icons-react@3.36.1(react@19.2.3)': + '@tabler/icons-react@3.44.0(react@19.2.6)': dependencies: - '@tabler/icons': 3.36.1 - react: 19.2.3 + '@tabler/icons': 3.44.0 + react: 19.2.6 - '@tabler/icons@3.36.1': {} + '@tabler/icons@3.44.0': {} '@tanstack/match-sorter-utils@8.19.4': dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.90.16': {} + '@tanstack/query-core@5.100.10': {} - '@tanstack/query-devtools@5.92.0': {} + '@tanstack/query-devtools@5.100.10': {} - '@tanstack/react-query-devtools@5.91.2(@tanstack/react-query@5.90.16(react@19.2.3))(react@19.2.3)': + '@tanstack/react-query-devtools@5.100.10(@tanstack/react-query@5.100.10(react@19.2.6))(react@19.2.6)': dependencies: - '@tanstack/query-devtools': 5.92.0 - '@tanstack/react-query': 5.90.16(react@19.2.3) - react: 19.2.3 + '@tanstack/query-devtools': 5.100.10 + '@tanstack/react-query': 5.100.10(react@19.2.6) + react: 19.2.6 - '@tanstack/react-query-next-experimental@5.91.0(@tanstack/react-query@5.90.16(react@19.2.3))(next@16.1.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3)': + '@tanstack/react-query-next-experimental@5.100.10(@tanstack/react-query@5.100.10(react@19.2.6))(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0))(react@19.2.6)': dependencies: - '@tanstack/react-query': 5.90.16(react@19.2.3) - next: 16.1.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) - react: 19.2.3 + '@tanstack/react-query': 5.100.10(react@19.2.6) + next: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) + react: 19.2.6 - '@tanstack/react-query@5.90.16(react@19.2.3)': + '@tanstack/react-query@5.100.10(react@19.2.6)': dependencies: - '@tanstack/query-core': 5.90.16 - react: 19.2.3 + '@tanstack/query-core': 5.100.10 + react: 19.2.6 - '@tanstack/react-table@8.20.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-table@8.20.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@tanstack/table-core': 8.20.5 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - '@tanstack/react-virtual@3.11.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-virtual@3.11.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@tanstack/virtual-core': 3.11.2 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) '@tanstack/table-core@8.20.5': {} '@tanstack/virtual-core@3.11.2': {} - '@testcontainers/mysql@11.11.0': + '@testcontainers/mysql@11.14.0': dependencies: - testcontainers: 11.11.0 + testcontainers: 11.14.0 transitivePeerDependencies: - bare-buffer - supports-color - '@testcontainers/postgresql@11.11.0': + '@testcontainers/postgresql@11.14.0': dependencies: - testcontainers: 11.11.0 + testcontainers: 11.14.0 transitivePeerDependencies: - bare-buffer - supports-color - '@testcontainers/redis@11.11.0': + '@testcontainers/redis@11.14.0': dependencies: - testcontainers: 11.11.0 + testcontainers: 11.14.0 transitivePeerDependencies: - bare-buffer - supports-color - '@tiptap/core@3.15.3(@tiptap/pm@3.15.3)': + '@tiptap/core@3.23.4(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/pm': 3.15.3 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-blockquote@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-blockquote@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-bold@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-bold@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-bubble-menu@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)': + '@tiptap/extension-bubble-menu@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: '@floating-ui/dom': 1.7.4 - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 optional: true - '@tiptap/extension-bullet-list@3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-bullet-list@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-code-block@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)': + '@tiptap/extension-code-block@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-code@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-code@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-color@3.15.3(@tiptap/extension-text-style@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)))': + '@tiptap/extension-color@3.23.4(@tiptap/extension-text-style@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)))': dependencies: - '@tiptap/extension-text-style': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) + '@tiptap/extension-text-style': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) - '@tiptap/extension-document@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-document@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-dropcursor@3.15.3(@tiptap/extensions@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-dropcursor@3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extensions': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extensions': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-floating-menu@3.15.3(@floating-ui/dom@1.7.4)(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)': + '@tiptap/extension-floating-menu@3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: '@floating-ui/dom': 1.7.4 - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 optional: true - '@tiptap/extension-gapcursor@3.15.3(@tiptap/extensions@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-gapcursor@3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extensions': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extensions': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-hard-break@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-hard-break@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-heading@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-heading@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-highlight@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-highlight@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-horizontal-rule@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)': + '@tiptap/extension-horizontal-rule@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-image@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-image@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-italic@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-italic@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-link@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)': + '@tiptap/extension-link@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 - linkifyjs: 4.3.2 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 + linkifyjs: 4.3.3 - '@tiptap/extension-list-item@3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-list-item@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-list-keymap@3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-list-keymap@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)': + '@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-ordered-list@3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-ordered-list@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-paragraph@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-paragraph@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-placeholder@3.15.3(@tiptap/extensions@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-placeholder@3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extensions': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extensions': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-strike@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-strike@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-table-cell@3.15.3(@tiptap/extension-table@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-table-cell@3.23.4(@tiptap/extension-table@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-table': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-table': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-table-header@3.15.3(@tiptap/extension-table@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-table-header@3.23.4(@tiptap/extension-table@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-table': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-table': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-table-row@3.15.3(@tiptap/extension-table@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-table-row@3.23.4(@tiptap/extension-table@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-table': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-table': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-table@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)': + '@tiptap/extension-table@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-task-item@3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-task-item@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-task-list@3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3))': + '@tiptap/extension-task-list@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-text-align@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-text-align@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-text-style@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-text-style@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-text@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-text@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-underline@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))': + '@tiptap/extension-underline@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extensions@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)': + '@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/pm@3.15.3': + '@tiptap/pm@3.23.4': dependencies: prosemirror-changeset: 2.3.0 - prosemirror-collab: 1.3.1 prosemirror-commands: 1.6.2 prosemirror-dropcursor: 1.8.1 prosemirror-gapcursor: 1.3.2 prosemirror-history: 1.4.1 - prosemirror-inputrules: 1.4.0 prosemirror-keymap: 1.2.2 - prosemirror-markdown: 1.13.1 - prosemirror-menu: 1.2.4 prosemirror-model: 1.24.1 - prosemirror-schema-basic: 1.2.3 prosemirror-schema-list: 1.5.1 prosemirror-state: 1.4.3 prosemirror-tables: 1.6.4 - prosemirror-trailing-node: 3.0.0(prosemirror-model@1.24.1)(prosemirror-state@1.4.3)(prosemirror-view@1.41.4) prosemirror-transform: 1.10.2 prosemirror-view: 1.41.4 - '@tiptap/react@3.15.3(@floating-ui/dom@1.7.4)(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tiptap/react@3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 - '@types/react': 19.2.8 - '@types/react-dom': 19.2.3(@types/react@19.2.8) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) '@types/use-sync-external-store': 0.0.6 fast-equals: 5.3.3 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - use-sync-external-store: 1.4.0(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + use-sync-external-store: 1.4.0(react@19.2.6) optionalDependencies: - '@tiptap/extension-bubble-menu': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) - '@tiptap/extension-floating-menu': 3.15.3(@floating-ui/dom@1.7.4)(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) + '@tiptap/extension-bubble-menu': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-floating-menu': 3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) transitivePeerDependencies: - '@floating-ui/dom' - '@tiptap/starter-kit@3.15.3': + '@tiptap/starter-kit@3.23.4': dependencies: - '@tiptap/core': 3.15.3(@tiptap/pm@3.15.3) - '@tiptap/extension-blockquote': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-bold': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-bullet-list': 3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) - '@tiptap/extension-code': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-code-block': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) - '@tiptap/extension-document': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-dropcursor': 3.15.3(@tiptap/extensions@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) - '@tiptap/extension-gapcursor': 3.15.3(@tiptap/extensions@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) - '@tiptap/extension-hard-break': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-heading': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-horizontal-rule': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) - '@tiptap/extension-italic': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-link': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) - '@tiptap/extension-list': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) - '@tiptap/extension-list-item': 3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) - '@tiptap/extension-list-keymap': 3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) - '@tiptap/extension-ordered-list': 3.15.3(@tiptap/extension-list@3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3)) - '@tiptap/extension-paragraph': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-strike': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-text': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extension-underline': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3)) - '@tiptap/extensions': 3.15.3(@tiptap/core@3.15.3(@tiptap/pm@3.15.3))(@tiptap/pm@3.15.3) - '@tiptap/pm': 3.15.3 - - '@tootallnate/quickjs-emscripten@0.23.0': {} + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/extension-blockquote': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-bold': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-bullet-list': 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-code': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-code-block': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-document': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-dropcursor': 3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-gapcursor': 3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-hard-break': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-heading': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-horizontal-rule': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-italic': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-link': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-list-item': 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-list-keymap': 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-ordered-list': 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-paragraph': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-strike': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-text': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-underline': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extensions': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 '@tree-sitter-grammars/tree-sitter-yaml@0.7.1(tree-sitter@0.22.4)': dependencies: @@ -13669,128 +13186,107 @@ snapshots: tree-sitter: 0.22.4 optional: true - '@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3)': + '@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3)': dependencies: - '@trpc/server': 11.8.1(typescript@5.9.3) + '@trpc/server': 11.17.0(typescript@5.9.3) typescript: 5.9.3 - '@trpc/next@11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(next@16.1.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@trpc/next@11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.6)(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.9.3)': dependencies: - '@trpc/client': 11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.8.1(typescript@5.9.3) - next: 16.1.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@trpc/client': 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.17.0(typescript@5.9.3) + next: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) typescript: 5.9.3 optionalDependencies: - '@tanstack/react-query': 5.90.16(react@19.2.3) - '@trpc/react-query': 11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@tanstack/react-query': 5.100.10(react@19.2.6) + '@trpc/react-query': 11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.6)(typescript@5.9.3) - '@trpc/react-query@11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@trpc/react-query@11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.6)(typescript@5.9.3)': dependencies: - '@tanstack/react-query': 5.90.16(react@19.2.3) - '@trpc/client': 11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.8.1(typescript@5.9.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@tanstack/react-query': 5.100.10(react@19.2.6) + '@trpc/client': 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.17.0(typescript@5.9.3) + react: 19.2.6 typescript: 5.9.3 - '@trpc/server@11.8.1(typescript@5.9.3)': + '@trpc/server@11.17.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@trpc/tanstack-react-query@11.8.1(@tanstack/react-query@5.90.16(react@19.2.3))(@trpc/client@11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@trpc/tanstack-react-query@11.17.0(@tanstack/react-query@5.100.10(react@19.2.6))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.6)(typescript@5.9.3)': dependencies: - '@tanstack/react-query': 5.90.16(react@19.2.3) - '@trpc/client': 11.8.1(@trpc/server@11.8.1(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.8.1(typescript@5.9.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@tanstack/react-query': 5.100.10(react@19.2.6) + '@trpc/client': 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.17.0(typescript@5.9.3) + react: 19.2.6 typescript: 5.9.3 - '@tsconfig/node10@1.0.11': {} + '@turbo/darwin-64@2.9.14': + optional: true - '@tsconfig/node12@1.0.11': {} + '@turbo/darwin-arm64@2.9.14': + optional: true - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@tsconfig/svelte@1.0.13': {} - - '@turbo/gen@2.7.3(@swc/core@1.15.3)(@types/node@24.10.7)(typescript@5.9.3)': + '@turbo/gen@2.9.14(@types/node@24.12.4)': dependencies: - '@turbo/workspaces': 2.7.3 - commander: 10.0.0 - fs-extra: 10.1.0 - inquirer: 8.2.4 - minimatch: 9.0.0 - node-plop: 0.26.3 - picocolors: 1.0.1 - proxy-agent: 6.5.0 - ts-node: 10.9.2(@swc/core@1.15.3)(@types/node@24.10.7)(typescript@5.9.3) - update-check: 1.5.4 - validate-npm-package-name: 5.0.0 + '@inquirer/prompts': 7.10.1(@types/node@24.12.4) + esbuild: 0.25.12 transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - '@types/node' - - supports-color - - typescript - '@turbo/workspaces@2.7.3': - dependencies: - commander: 10.0.0 - execa: 5.1.1 - fast-glob: 3.2.12 - fs-extra: 10.1.0 - gradient-string: 2.0.1 - inquirer: 8.2.4 - js-yaml: 4.1.0 - ora: 4.1.1 - picocolors: 1.0.1 - semver: 7.6.2 - update-check: 1.5.4 + '@turbo/linux-64@2.9.14': + optional: true - '@types/adm-zip@0.5.7': + '@turbo/linux-arm64@2.9.14': + optional: true + + '@turbo/windows-64@2.9.14': + optional: true + + '@turbo/windows-arm64@2.9.14': + optional: true + + '@types/adm-zip@0.5.8': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/aws-lambda@8.10.146': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.29.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.29.0 '@types/bcrypt@6.0.0': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/chai@5.2.2': dependencies: @@ -13800,25 +13296,17 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.10.7 - - '@types/cookie@0.4.1': {} + '@types/node': 24.12.4 '@types/cookies@0.9.2': dependencies: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 24.10.7 - - '@types/cors@2.8.17': - dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/crypto-js@4.2.2': {} - '@types/css-font-loading-module@0.0.7': {} - '@types/css-modules@1.0.5': {} '@types/d3-array@3.2.1': {} @@ -13853,15 +13341,17 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/ssh2': 1.15.1 - '@types/dockerode@3.3.47': + '@types/dockerode@4.0.1': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/ssh2': 1.15.1 + '@types/esrecurse@4.3.1': {} + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.8 @@ -13870,7 +13360,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -13882,22 +13372,12 @@ snapshots: '@types/qs': 6.9.16 '@types/serve-static': 1.15.7 - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 24.10.7 - '@types/hast@3.0.4': dependencies: - '@types/unist': 2.0.11 + '@types/unist': 3.0.3 '@types/http-errors@2.0.4': {} - '@types/inquirer@6.5.0': - dependencies: - '@types/through': 0.0.33 - rxjs: 6.6.7 - '@types/js-yaml@4.0.9': {} '@types/json-schema@7.0.15': {} @@ -13906,30 +13386,17 @@ snapshots: '@types/keygrip@1.0.6': {} - '@types/linkify-it@5.0.0': {} - - '@types/markdown-it@14.1.2': - dependencies: - '@types/linkify-it': 5.0.0 - '@types/mdurl': 2.0.0 - '@types/mdast@4.0.4': dependencies: - '@types/unist': 2.0.11 - - '@types/mdurl@2.0.0': {} + '@types/unist': 3.0.3 '@types/mime@1.3.5': {} - '@types/minimatch@5.1.2': {} - '@types/ms@2.1.0': {} - '@types/node-cron@3.0.11': {} - '@types/node-fetch@2.6.13': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 form-data: 4.0.5 '@types/node-unifi@2.5.1(patch_hash=5e6ae51e2a17a7f9729bfa30b0eb3d0842a5810ac6db47603ab4a6efa1ed84c5)': @@ -13940,19 +13407,19 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@24.10.7': + '@types/node@24.12.4': dependencies: undici-types: 7.16.0 '@types/normalize-package-data@2.4.4': {} - '@types/pg@8.16.0': + '@types/pg@8.20.0': dependencies: - '@types/node': 24.10.7 - pg-protocol: 1.10.3 + '@types/node': 24.12.4 + pg-protocol: 1.13.0 pg-types: 2.2.0 - '@types/prismjs@1.26.5': {} + '@types/prismjs@1.26.6': {} '@types/qs@6.9.16': {} @@ -13962,11 +13429,11 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.2.3(@types/react@19.2.8)': + '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 - '@types/react@19.2.8': + '@types/react@19.2.14': dependencies: csstype: 3.2.3 @@ -13975,21 +13442,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/ssh2@0.5.52': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': @@ -13998,17 +13465,11 @@ snapshots: '@types/stream-buffers@3.0.7': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/swagger-ui-react@5.18.0': dependencies: - '@types/react': 19.2.8 - - '@types/through@0.0.33': - dependencies: - '@types/node': 24.10.7 - - '@types/tinycolor2@1.4.6': {} + '@types/react': 19.2.14 '@types/triple-beam@1.3.5': {} @@ -14025,213 +13486,212 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 '@types/xml2js@0.4.14': dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 - '@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.4.0)(typescript@5.9.3))(eslint@10.4.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/type-utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.52.0 - eslint: 9.39.2 + '@typescript-eslint/parser': 8.58.2(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/type-utils': 8.58.2(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.2 + eslint: 10.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.2(eslint@10.4.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3 - eslint: 9.39.2 + eslint: 10.4.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.52.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.52.0': + '@typescript-eslint/scope-manager@8.58.2': dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 - '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.52.0(eslint@9.39.2)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.58.2(eslint@10.4.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.4.0)(typescript@5.9.3) debug: 4.4.3 - eslint: 9.39.2 - ts-api-utils: 2.4.0(typescript@5.9.3) + eslint: 10.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.52.0': {} + '@typescript-eslint/types@8.58.2': {} - '@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/project-service': 8.58.2(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3 - minimatch: 9.0.5 - semver: 7.7.3 + minimatch: 10.2.5 + semver: 7.7.4 tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.52.0(eslint@9.39.2)(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.2(eslint@10.4.0)(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - eslint: 9.39.2 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + eslint: 10.4.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.52.0': + '@typescript-eslint/visitor-keys@8.58.2': dependencies: - '@typescript-eslint/types': 8.52.0 - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.58.2 + eslint-visitor-keys: 5.0.1 '@umami/node@0.4.0': {} '@ungap/structured-clone@1.3.0': {} - '@videojs/http-streaming@3.17.2(video.js@8.23.4)': + '@videojs/http-streaming@3.17.4(video.js@8.23.7)': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@videojs/vhs-utils': 4.1.1 aes-decrypter: 4.0.2 global: 4.4.0 m3u8-parser: 7.2.0 mpd-parser: 1.3.1 mux.js: 7.1.0 - video.js: 8.23.4 + video.js: 8.23.7 '@videojs/vhs-utils@4.0.0': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 global: 4.4.0 url-toolkit: 2.2.5 '@videojs/vhs-utils@4.1.1': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 global: 4.4.0 '@videojs/xhr@2.7.0': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@5.1.2(vite@7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1))': + '@vitejs/plugin-react@5.2.0(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5) - '@rolldown/pluginutils': 1.0.0-beta.53 + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.0.16(vitest@4.0.16)': + '@vitest/coverage-v8@4.1.6(vitest@4.1.6)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.0.16 - ast-v8-to-istanbul: 0.3.8 + '@vitest/utils': 4.1.6 + ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 - magicast: 0.5.1 + magicast: 0.5.2 obug: 2.1.1 - std-env: 3.10.0 - tinyrainbow: 3.0.3 - vitest: 4.0.16(@types/node@24.10.7)(@vitest/ui@4.0.16)(jsdom@27.4.0(postcss@8.5.6))(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1) - transitivePeerDependencies: - - supports-color + std-env: 4.0.0 + tinyrainbow: 3.1.0 + vitest: 4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(@vitest/ui@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/expect@4.0.16': + '@vitest/expect@4.1.6': dependencies: - '@standard-schema/spec': 1.0.0 + '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.2 - '@vitest/spy': 4.0.16 - '@vitest/utils': 4.0.16 - chai: 6.2.1 - tinyrainbow: 3.0.3 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 + chai: 6.2.2 + tinyrainbow: 3.1.0 - '@vitest/mocker@4.0.16(vite@7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1))': + '@vitest/mocker@4.1.6(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.0.16 + '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/pretty-format@4.0.16': + '@vitest/pretty-format@4.1.6': dependencies: - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 - '@vitest/runner@4.0.16': + '@vitest/runner@4.1.6': dependencies: - '@vitest/utils': 4.0.16 + '@vitest/utils': 4.1.6 pathe: 2.0.3 - '@vitest/snapshot@4.0.16': + '@vitest/snapshot@4.1.6': dependencies: - '@vitest/pretty-format': 4.0.16 + '@vitest/pretty-format': 4.1.6 + '@vitest/utils': 4.1.6 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.0.16': {} + '@vitest/spy@4.1.6': {} - '@vitest/ui@4.0.16(vitest@4.0.16)': + '@vitest/ui@4.1.6(vitest@4.1.6)': dependencies: - '@vitest/utils': 4.0.16 + '@vitest/utils': 4.1.6 fflate: 0.8.2 - flatted: 3.3.3 + flatted: 3.4.2 pathe: 2.0.3 sirv: 3.0.2 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 - vitest: 4.0.16(@types/node@24.10.7)(@vitest/ui@4.0.16)(jsdom@27.4.0(postcss@8.5.6))(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1) + tinyrainbow: 3.1.0 + vitest: 4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(@vitest/ui@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/utils@4.0.16': + '@vitest/utils@4.1.6': dependencies: - '@vitest/pretty-format': 4.0.16 - tinyrainbow: 3.0.3 + '@vitest/pretty-format': 4.1.6 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 '@webassemblyjs/ast@1.14.1': dependencies: @@ -14311,8 +13771,6 @@ snapshots: '@xmldom/xmldom@0.8.10': {} - '@xstate/fsm@1.6.5': {} - '@xterm/addon-canvas@0.7.0(@xterm/xterm@6.0.0)': dependencies: '@xterm/xterm': 6.0.0 @@ -14331,38 +13789,29 @@ snapshots: abstract-logging@2.0.1: {} - accepts@1.3.8: + acorn-import-attributes@1.9.5(acorn@8.16.0): dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 + acorn: 8.16.0 - acorn-import-attributes@1.9.5(acorn@8.15.0): + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 - acorn-jsx@5.3.2(acorn@8.15.0): - dependencies: - acorn: 8.15.0 + acorn@8.16.0: {} - acorn-walk@8.3.4: - dependencies: - acorn: 8.15.0 - - acorn@8.14.0: {} - - acorn@8.15.0: {} - - adm-zip@0.5.16: {} + adm-zip@0.5.17: {} aes-decrypter@4.0.2: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@videojs/vhs-utils': 4.1.1 global: 4.4.0 pkcs7: 1.0.4 agent-base@7.1.3: {} + agent-base@9.0.0: {} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -14373,53 +13822,43 @@ snapshots: clean-stack: 5.2.0 indent-string: 5.0.0 - ajv-formats@2.1.1(ajv@8.17.1): + ajv-formats@2.1.1(ajv@8.18.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.18.0 - ajv-formats@3.0.1(ajv@8.17.1): + ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.18.0 - ajv-keywords@3.5.2(ajv@6.12.6): + ajv-keywords@3.5.2(ajv@6.14.0): dependencies: - ajv: 6.12.6 + ajv: 6.14.0 - ajv-keywords@5.1.0(ajv@8.17.1): + ajv-keywords@5.1.0(ajv@8.18.0): dependencies: - ajv: 8.17.1 + ajv: 8.18.0 fast-deep-equal: 3.1.3 - ajv@6.12.6: + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.17.1: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ansi-align@3.0.1: - dependencies: - string-width: 4.2.3 - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - ansi-escapes@7.0.0: dependencies: environment: 1.1.0 ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} - ansi-regex@6.2.2: {} ansi-styles@3.2.1: @@ -14442,7 +13881,7 @@ snapshots: graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 - lodash: 4.17.21 + lodash: 4.18.1 normalize-path: 3.0.0 readable-stream: 4.5.2 @@ -14456,8 +13895,6 @@ snapshots: tar-stream: 3.1.7 zip-stream: 6.0.1 - arg@4.1.3: {} - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -14474,11 +13911,6 @@ snapshots: '@ark/util': 0.46.0 optional: true - array-buffer-byte-length@1.0.1: - dependencies: - call-bind: 1.0.8 - is-array-buffer: 3.0.4 - array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -14486,15 +13918,6 @@ snapshots: array-ify@1.0.0: {} - array-includes@3.1.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 - array-includes@3.1.9: dependencies: call-bind: 1.0.8 @@ -14506,16 +13929,14 @@ snapshots: is-string: 1.1.1 math-intrinsics: 1.1.0 - array-union@2.1.0: {} - array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.24.0 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 array.prototype.findlastindex@1.2.6: dependencies: @@ -14527,59 +13948,34 @@ snapshots: es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - array.prototype.flat@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.flatmap@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + es-abstract: 1.24.0 + es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 - es-shim-unscopables: 1.0.2 + es-abstract: 1.24.0 + es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.24.0 es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 - - arraybuffer.prototype.slice@1.0.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.7 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 + es-shim-unscopables: 1.1.0 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-abstract: 1.24.0 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -14590,23 +13986,11 @@ snapshots: ast-types-flow@0.0.8: {} - ast-types@0.13.4: - dependencies: - tslib: 2.8.1 - - ast-types@0.14.2: - dependencies: - tslib: 2.8.1 - - ast-types@0.16.1: - dependencies: - tslib: 2.8.1 - - ast-v8-to-istanbul@0.3.8: + ast-v8-to-istanbul@1.0.0: dependencies: '@jridgewell/trace-mapping': 0.3.31 estree-walker: 3.0.3 - js-tokens: 9.0.1 + js-tokens: 10.0.0 async-lock@1.4.1: {} @@ -14626,26 +14010,26 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - avvio@9.1.0: + avvio@9.2.0: dependencies: '@fastify/error': 4.2.0 - fastq: 1.17.1 + fastq: 1.20.1 aws-ssl-profiles@1.1.2: {} axe-core@4.10.0: {} - axios@1.12.2: + axios@1.15.0: dependencies: - follow-redirects: 1.15.9 + follow-redirects: 1.16.0 form-data: 4.0.5 - proxy-from-env: 1.1.0 + proxy-from-env: 2.1.0 transitivePeerDependencies: - debug axios@1.9.0: dependencies: - follow-redirects: 1.15.9 + follow-redirects: 1.16.0 form-data: 4.0.5 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -14657,15 +14041,13 @@ snapshots: babel-plugin-react-compiler@1.0.0: dependencies: - '@babel/types': 7.28.4 - - babel-plugin-syntax-hermes-parser@0.21.1: - dependencies: - hermes-parser: 0.21.1 + '@babel/types': 7.29.0 bail@2.0.2: {} - balanced-match@3.0.1: {} + balanced-match@4.0.2: + dependencies: + jackspeak: 4.2.3 bare-events@2.5.4: optional: true @@ -14694,15 +14076,9 @@ snapshots: base-64@1.0.0: {} - base64-arraybuffer@1.0.2: {} - base64-js@1.5.1: {} - base64id@2.0.0: {} - - baseline-browser-mapping@2.8.29: {} - - basic-ftp@5.0.5: {} + baseline-browser-mapping@2.9.19: {} bcrypt-pbkdf@1.0.2: dependencies: @@ -14710,12 +14086,12 @@ snapshots: bcrypt@6.0.0: dependencies: - node-addon-api: 8.3.0 + node-addon-api: 8.3.1 node-gyp-build: 4.8.4 before-after-hook@4.0.0: {} - better-sqlite3@12.5.0: + better-sqlite3@12.10.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.2 @@ -14742,46 +14118,21 @@ snapshots: bottleneck@2.19.5: {} - boxen@5.1.2: + brace-expansion@5.0.6: dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 - - brace-expansion@4.0.1: - dependencies: - balanced-match: 3.0.1 + balanced-match: 4.0.2 braces@3.0.3: dependencies: fill-range: 7.1.1 - browserslist@4.24.2: + browserslist@4.28.1: dependencies: - caniuse-lite: 1.0.30001755 - electron-to-chromium: 1.5.55 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) - - browserslist@4.24.4: - dependencies: - caniuse-lite: 1.0.30001755 - electron-to-chromium: 1.5.114 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.4) - - browserslist@4.28.0: - dependencies: - baseline-browser-mapping: 2.8.29 - caniuse-lite: 1.0.30001755 - electron-to-chromium: 1.5.256 + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001766 + electron-to-chromium: 1.5.282 node-releases: 2.0.27 - update-browserslist-db: 1.1.4(browserslist@4.28.0) + update-browserslist-db: 1.2.3(browserslist@4.28.1) buffer-crc32@1.0.0: {} @@ -14800,44 +14151,22 @@ snapshots: buildcheck@0.0.6: optional: true - builtins@5.1.0: - dependencies: - semver: 7.7.3 - byline@5.0.0: {} bytes@3.1.2: {} - call-bind-apply-helpers@1.0.1: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.2.6 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 - call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 @@ -14845,20 +14174,13 @@ snapshots: callsites@3.1.0: {} - camel-case@3.0.0: - dependencies: - no-case: 2.3.2 - upper-case: 1.1.3 - camelcase-css@2.0.1: {} - camelcase@6.3.0: {} - - caniuse-lite@1.0.30001755: {} + caniuse-lite@1.0.30001766: {} ccount@2.0.1: {} - chai@6.2.1: {} + chai@6.2.2: {} chalk@2.4.2: dependencies: @@ -14866,11 +14188,6 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@3.0.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -14878,27 +14195,6 @@ snapshots: chalk@5.4.1: {} - change-case@3.1.0: - dependencies: - camel-case: 3.0.0 - constant-case: 2.0.0 - dot-case: 2.1.1 - header-case: 1.0.1 - is-lower-case: 1.1.3 - is-upper-case: 1.1.2 - lower-case: 1.1.4 - lower-case-first: 1.0.2 - no-case: 2.3.2 - param-case: 2.1.1 - pascal-case: 2.0.1 - path-case: 2.1.1 - sentence-case: 2.1.1 - snake-case: 2.1.0 - swap-case: 1.1.2 - title-case: 2.1.1 - upper-case: 1.1.3 - upper-case-first: 1.1.2 - char-regex@1.0.2: {} character-entities-html4@2.1.0: {} @@ -14909,7 +14205,7 @@ snapshots: character-reference-invalid@2.0.1: {} - chardet@0.7.0: {} + chardet@2.1.1: {} chokidar@4.0.0: dependencies: @@ -14921,10 +14217,6 @@ snapshots: chrome-trace-event@1.0.4: {} - ci-info@2.0.0: {} - - ci-info@4.0.0: {} - classnames@2.5.1: {} clean-stack@2.2.0: {} @@ -14933,19 +14225,6 @@ snapshots: dependencies: escape-string-regexp: 5.0.0 - cli-boxes@2.2.1: {} - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-high@0.4.3: - dependencies: - '@clack/prompts': 0.7.0 - sugar-high: 0.7.5 - xycolors: 0.1.2 - yargs: 17.7.2 - cli-highlight@2.1.11: dependencies: chalk: 4.1.2 @@ -14955,15 +14234,13 @@ snapshots: parse5-htmlparser2-tree-adapter: 6.0.1 yargs: 16.2.0 - cli-spinners@2.9.2: {} - cli-table3@0.6.5: dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 - cli-width@3.0.0: {} + cli-width@4.1.0: {} client-only@0.0.1: {} @@ -14985,8 +14262,6 @@ snapshots: strip-ansi: 7.1.2 wrap-ansi: 9.0.2 - clone@1.0.4: {} - clsx@2.1.1: {} cluster-key-slot@1.1.2: {} @@ -15032,8 +14307,6 @@ snapshots: comma-separated-tokens@2.0.3: {} - commander@10.0.0: {} - commander@2.20.3: {} compare-func@2.0.0: @@ -15063,25 +14336,11 @@ snapshots: ini: 1.3.8 proto-list: 1.2.4 - configstore@5.0.1: - dependencies: - dot-prop: 5.3.0 - graceful-fs: 4.2.11 - make-dir: 3.1.0 - unique-string: 2.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 - - constant-case@2.0.0: - dependencies: - snake-case: 2.1.0 - upper-case: 1.1.3 - conventional-changelog-angular@8.0.0: dependencies: compare-func: 2.0.0 - conventional-changelog-conventionalcommits@9.1.0: + conventional-changelog-conventionalcommits@9.3.1: dependencies: compare-func: 2.0.0 @@ -15091,7 +14350,7 @@ snapshots: conventional-commits-filter: 5.0.0 handlebars: 4.7.8 meow: 13.2.0 - semver: 7.7.2 + semver: 7.7.4 conventional-commits-filter@5.0.0: {} @@ -15105,9 +14364,9 @@ snapshots: cookie-es@1.2.2: {} - cookie@0.7.2: {} + cookie-es@3.0.1: {} - cookie@1.0.2: {} + cookie@1.1.1: {} cookies@0.9.1: dependencies: @@ -15126,11 +14385,6 @@ snapshots: core-util-is@1.0.3: {} - cors@2.8.5: - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 @@ -15153,21 +14407,13 @@ snapshots: crc-32: 1.2.2 readable-stream: 4.5.2 - create-require@1.1.1: {} - - crelt@1.0.6: {} + croner@10.0.1: {} cross-env@10.1.0: dependencies: '@epic-web/invariant': 1.0.0 cross-spawn: 7.0.6 - cross-fetch@4.1.0: - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -15180,29 +14426,19 @@ snapshots: crypto-js@4.2.0: {} - crypto-random-string@2.0.0: {} - crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 - css-tree@3.1.0: + css-tree@3.2.1: dependencies: - mdn-data: 2.12.2 + mdn-data: 2.27.1 source-map-js: 1.2.1 css.escape@1.5.1: {} cssesc@3.0.0: {} - cssstyle@5.3.4(postcss@8.5.6): - dependencies: - '@asamuzakjp/css-color': 4.1.0 - '@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6) - css-tree: 3.1.0 - transitivePeerDependencies: - - postcss - csstype@3.2.3: {} d3-array@3.2.4: @@ -15245,18 +14481,12 @@ snapshots: damerau-levenshtein@1.0.8: {} - data-uri-to-buffer@6.0.2: {} - - data-urls@6.0.0: + data-urls@7.0.0(@noble/hashes@2.0.1): dependencies: - whatwg-mimetype: 4.0.0 - whatwg-url: 15.1.0 - - data-view-buffer@1.0.1: - dependencies: - call-bind: 1.0.8 - es-errors: 1.3.0 - is-data-view: 1.0.1 + whatwg-mimetype: 5.0.0 + whatwg-url: 16.0.1(@noble/hashes@2.0.1) + transitivePeerDependencies: + - '@noble/hashes' data-view-buffer@1.0.2: dependencies: @@ -15264,48 +14494,24 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - data-view-byte-length@1.0.1: - dependencies: - call-bind: 1.0.8 - es-errors: 1.3.0 - is-data-view: 1.0.1 - data-view-byte-length@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - data-view-byte-offset@1.0.0: - dependencies: - call-bind: 1.0.8 - es-errors: 1.3.0 - is-data-view: 1.0.1 - data-view-byte-offset@1.0.1: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - dayjs@1.11.19: {} + dayjs@1.11.20: {} debug@3.2.7: dependencies: ms: 2.1.3 - debug@4.3.7: - dependencies: - ms: 2.1.3 - - debug@4.4.0: - dependencies: - ms: 2.1.3 - - debug@4.4.1: - dependencies: - ms: 2.1.3 - debug@4.4.3: dependencies: ms: 2.1.3 @@ -15333,13 +14539,9 @@ snapshots: deepmerge@4.3.1: {} - defaults@1.0.4: - dependencies: - clone: 1.0.4 - define-data-property@1.1.4: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 @@ -15351,23 +14553,6 @@ snapshots: defu@6.1.4: {} - degenerator@5.0.1: - dependencies: - ast-types: 0.13.4 - escodegen: 2.1.0 - esprima: 4.0.1 - - del@5.1.0: - dependencies: - globby: 10.0.2 - graceful-fs: 4.2.11 - is-glob: 4.0.3 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.3 - p-map: 3.0.0 - rimraf: 3.0.2 - slash: 3.0.0 - delayed-stream@1.0.0: {} denque@2.1.0: {} @@ -15376,11 +14561,9 @@ snapshots: dequal@2.0.3: {} - destr@2.0.3: {} - destr@2.0.5: {} - detect-indent@7.0.1: {} + detect-indent@7.0.2: {} detect-libc@1.0.3: {} @@ -15394,23 +14577,19 @@ snapshots: dependencies: dequal: 2.0.3 - diff@4.0.2: {} - - diff@5.2.0: {} - dir-glob@3.0.1: dependencies: path-type: 4.0.0 dns-caching@0.2.9: dependencies: - lru-cache: 11.2.4 + lru-cache: 11.3.5 - docker-compose@1.3.0: + docker-compose@1.4.2: dependencies: - yaml: 2.5.1 + yaml: 2.9.0 - docker-modem@5.0.6: + docker-modem@5.0.7: dependencies: debug: 4.4.3 readable-stream: 3.6.2 @@ -15419,41 +14598,44 @@ snapshots: transitivePeerDependencies: - supports-color - dockerode@4.0.9: + dockerode@4.0.10: dependencies: '@balena/dockerignore': 1.0.2 '@grpc/grpc-js': 1.12.5 '@grpc/proto-loader': 0.7.13 - docker-modem: 5.0.6 + docker-modem: 5.0.7 protobufjs: 7.4.0 tar-fs: 2.1.4 uuid: 10.0.0 transitivePeerDependencies: - supports-color + dockerode@5.0.0: + dependencies: + '@balena/dockerignore': 1.0.2 + '@grpc/grpc-js': 1.12.5 + '@grpc/proto-loader': 0.7.13 + docker-modem: 5.0.7 + protobufjs: 7.4.0 + tar-fs: 2.1.4 + transitivePeerDependencies: + - supports-color + doctrine@2.1.0: dependencies: esutils: 2.0.3 dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 csstype: 3.2.3 dom-walk@0.1.2: {} - dompurify@3.2.6: + dompurify@3.4.3: optionalDependencies: '@types/trusted-types': 2.0.7 - dompurify@3.3.1: - optionalDependencies: - '@types/trusted-types': 2.0.7 - - dot-case@2.1.1: - dependencies: - no-case: 2.3.2 - dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -15461,7 +14643,7 @@ snapshots: dotenv-cli@11.0.0: dependencies: cross-spawn: 7.0.6 - dotenv: 17.2.3 + dotenv: 17.4.2 dotenv-expand: 12.0.3 minimist: 1.2.8 @@ -15473,37 +14655,35 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.2.3: {} + dotenv@17.4.2: {} drange@1.1.1: {} - drizzle-kit@0.31.8: + drizzle-kit@0.31.10: dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 esbuild: 0.25.12 - esbuild-register: 3.6.0(esbuild@0.25.12) - transitivePeerDependencies: - - supports-color + tsx: 4.21.0 - drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(gel@2.0.0)(mysql2@3.16.0)(pg@8.16.3): + drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0): optionalDependencies: '@libsql/client-wasm': 0.14.0 '@types/better-sqlite3': 7.6.13 - '@types/pg': 8.16.0 - better-sqlite3: 12.5.0 + '@types/pg': 8.20.0 + better-sqlite3: 12.10.0 gel: 2.0.0 - mysql2: 3.16.0 - pg: 8.16.3 + mysql2: 3.22.3(@types/node@24.12.4) + pg: 8.20.0 - drizzle-zod@0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(gel@2.0.0)(mysql2@3.16.0)(pg@8.16.3))(zod@4.2.1): + drizzle-zod@0.8.3(drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0))(zod@4.4.3): dependencies: - drizzle-orm: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(gel@2.0.0)(mysql2@3.16.0)(pg@8.16.3) - zod: 4.2.1 + drizzle-orm: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0) + zod: 4.4.3 dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 @@ -15513,16 +14693,7 @@ snapshots: eastasianwidth@0.2.0: {} - effect@3.19.4: - dependencies: - '@standard-schema/spec': 1.0.0 - fast-check: 3.23.2 - - electron-to-chromium@1.5.114: {} - - electron-to-chromium@1.5.256: {} - - electron-to-chromium@1.5.55: {} + electron-to-chromium@1.5.282: {} emoji-regex@10.6.0: {} @@ -15540,45 +14711,12 @@ snapshots: dependencies: once: 1.4.0 - engine.io-client@6.5.4: - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 - engine.io-parser: 5.2.3 - ws: 8.17.1 - xmlhttprequest-ssl: 2.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - engine.io-parser@5.2.3: {} - - engine.io@6.6.2: - dependencies: - '@types/cookie': 0.4.1 - '@types/cors': 2.8.17 - '@types/node': 24.10.7 - accepts: 1.3.8 - base64id: 2.0.0 - cookie: 0.7.2 - cors: 2.8.5 - debug: 4.3.7 - engine.io-parser: 5.2.3 - ws: 8.17.1 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - enhanced-resolve@5.18.3: + enhanced-resolve@5.20.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.3.2 - entities@4.5.0: {} - - entities@6.0.1: {} + entities@8.0.0: {} env-ci@11.2.0: dependencies: @@ -15598,105 +14736,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.3: - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.2 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - 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.1.0 - 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-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -15754,10 +14793,6 @@ snapshots: unbox-primitive: 1.1.0 which-typed-array: 1.1.19 - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.3.0 - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -15765,13 +14800,13 @@ snapshots: es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.24.0 es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 + es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.2.6 + get-intrinsic: 1.3.0 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -15783,20 +14818,12 @@ snapshots: es-module-lexer@1.7.0: {} - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 + es-module-lexer@2.0.0: {} es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: - dependencies: - get-intrinsic: 1.2.6 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 @@ -15804,32 +14831,17 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: - dependencies: - hasown: 2.0.2 - es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - 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.1.0 is-symbol: 1.1.1 - esbuild-register@3.6.0(esbuild@0.25.12): - dependencies: - debug: 4.4.3 - esbuild: 0.25.12 - transitivePeerDependencies: - - supports-color + es-toolkit@1.46.1: {} esbuild@0.25.12: optionalDependencies: @@ -15860,62 +14872,81 @@ snapshots: '@esbuild/win32-ia32': 0.25.12 '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.2: + esbuild@0.27.7: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.2 - '@esbuild/android-arm': 0.27.2 - '@esbuild/android-arm64': 0.27.2 - '@esbuild/android-x64': 0.27.2 - '@esbuild/darwin-arm64': 0.27.2 - '@esbuild/darwin-x64': 0.27.2 - '@esbuild/freebsd-arm64': 0.27.2 - '@esbuild/freebsd-x64': 0.27.2 - '@esbuild/linux-arm': 0.27.2 - '@esbuild/linux-arm64': 0.27.2 - '@esbuild/linux-ia32': 0.27.2 - '@esbuild/linux-loong64': 0.27.2 - '@esbuild/linux-mips64el': 0.27.2 - '@esbuild/linux-ppc64': 0.27.2 - '@esbuild/linux-riscv64': 0.27.2 - '@esbuild/linux-s390x': 0.27.2 - '@esbuild/linux-x64': 0.27.2 - '@esbuild/netbsd-arm64': 0.27.2 - '@esbuild/netbsd-x64': 0.27.2 - '@esbuild/openbsd-arm64': 0.27.2 - '@esbuild/openbsd-x64': 0.27.2 - '@esbuild/openharmony-arm64': 0.27.2 - '@esbuild/sunos-x64': 0.27.2 - '@esbuild/win32-arm64': 0.27.2 - '@esbuild/win32-ia32': 0.27.2 - '@esbuild/win32-x64': 0.27.2 + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + + esbuild@0.28.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.0 + '@esbuild/android-arm': 0.28.0 + '@esbuild/android-arm64': 0.28.0 + '@esbuild/android-x64': 0.28.0 + '@esbuild/darwin-arm64': 0.28.0 + '@esbuild/darwin-x64': 0.28.0 + '@esbuild/freebsd-arm64': 0.28.0 + '@esbuild/freebsd-x64': 0.28.0 + '@esbuild/linux-arm': 0.28.0 + '@esbuild/linux-arm64': 0.28.0 + '@esbuild/linux-ia32': 0.28.0 + '@esbuild/linux-loong64': 0.28.0 + '@esbuild/linux-mips64el': 0.28.0 + '@esbuild/linux-ppc64': 0.28.0 + '@esbuild/linux-riscv64': 0.28.0 + '@esbuild/linux-s390x': 0.28.0 + '@esbuild/linux-x64': 0.28.0 + '@esbuild/netbsd-arm64': 0.28.0 + '@esbuild/netbsd-x64': 0.28.0 + '@esbuild/openbsd-arm64': 0.28.0 + '@esbuild/openbsd-x64': 0.28.0 + '@esbuild/openharmony-arm64': 0.28.0 + '@esbuild/sunos-x64': 0.28.0 + '@esbuild/win32-arm64': 0.28.0 + '@esbuild/win32-ia32': 0.28.0 + '@esbuild/win32-x64': 0.28.0 escalade@3.2.0: {} - escape-goat@2.1.1: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} - escodegen@2.1.0: + eslint-config-prettier@10.1.8(eslint@10.4.0): dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 + eslint: 10.4.0 - eslint-config-prettier@10.1.8(eslint@9.39.2): + eslint-config-turbo@2.9.14(eslint@10.4.0)(turbo@2.9.14): dependencies: - eslint: 9.39.2 - - eslint-config-turbo@2.7.3(eslint@9.39.2)(turbo@2.7.3): - dependencies: - eslint: 9.39.2 - eslint-plugin-turbo: 2.7.3(eslint@9.39.2)(turbo@2.7.3) - turbo: 2.7.3 + eslint: 10.4.0 + eslint-plugin-turbo: 2.9.14(eslint@10.4.0)(turbo@2.9.14) + turbo: 2.9.14 eslint-import-resolver-node@0.3.9: dependencies: @@ -15925,17 +14956,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.58.2(eslint@10.4.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.4.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2)(typescript@5.9.3) - eslint: 9.39.2 + '@typescript-eslint/parser': 8.58.2(eslint@10.4.0)(typescript@5.9.3) + eslint: 10.4.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.58.2(eslint@10.4.0)(typescript@5.9.3))(eslint@10.4.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -15944,13 +14975,13 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.2 + eslint: 10.4.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.58.2(eslint@10.4.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.4.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 - minimatch: 3.1.2 + minimatch: 3.1.5 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.1 @@ -15958,54 +14989,54 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.2(eslint@10.4.0)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2): + eslint-plugin-jsx-a11y@6.10.2(eslint@10.4.0): dependencies: aria-query: 5.3.2 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 + array-includes: 3.1.9 + array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 axe-core: 4.10.0 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.39.2 + eslint: 10.4.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 - minimatch: 3.1.2 + minimatch: 3.1.5 object.fromentries: 2.0.8 - safe-regex-test: 1.0.3 + safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@6.1.1(eslint@9.39.2): + eslint-plugin-react-hooks@6.1.1(eslint@10.4.0): dependencies: - '@babel/core': 7.28.4 - '@babel/parser': 7.28.4 - eslint: 9.39.2 - zod: 4.2.1 - zod-validation-error: 4.0.2(zod@4.2.1) + '@babel/core': 7.29.0 + '@babel/parser': 7.29.2 + eslint: 10.4.0 + zod: 4.4.3 + zod-validation-error: 4.0.2(zod@4.4.3) transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@9.39.2): + eslint-plugin-react@7.37.5(eslint@10.4.0): dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.39.2 + eslint: 10.4.0 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 + minimatch: 3.1.5 object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 @@ -16015,49 +15046,48 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@2.7.3(eslint@9.39.2)(turbo@2.7.3): + eslint-plugin-turbo@2.9.14(eslint@10.4.0)(turbo@2.9.14): dependencies: dotenv: 16.0.3 - eslint: 9.39.2 - turbo: 2.7.3 + eslint: 10.4.0 + turbo: 2.9.14 eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.4.0: + eslint-scope@9.1.2: dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.1: {} + eslint-visitor-keys@5.0.1: {} - eslint@9.39.2: + eslint@10.4.0: dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.39.2 - '@eslint/plugin-kit': 0.4.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.6.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.8 - ajv: 6.12.6 - chalk: 4.1.2 + ajv: 6.14.0 cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -16067,22 +15097,19 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 10.2.5 natural-compare: 1.4.0 optionator: 0.9.4 transitivePeerDependencies: - supports-color - espree@10.4.0: + espree@11.2.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 5.0.1 - esprima@4.0.1: {} - - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -16096,8 +15123,6 @@ snapshots: estree-util-is-identifier-name@3.0.0: {} - estree-walker@2.0.2: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.8 @@ -16110,7 +15135,7 @@ snapshots: eventemitter3@2.0.3: {} - eventemitter3@4.0.7: {} + eventemitter3@5.0.4: {} events@3.3.0: {} @@ -16155,38 +15180,22 @@ snapshots: expand-template@2.0.3: {} - expect-type@1.2.2: {} + expect-type@1.3.0: {} extend@3.0.2: {} - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.2.5 - - fast-check@3.23.2: - dependencies: - pure-rand: 6.1.0 - fast-content-type-parse@3.0.0: {} fast-decode-uri-component@1.0.1: {} fast-deep-equal@3.1.3: {} + fast-diff@1.3.0: {} + fast-equals@5.3.3: {} fast-fifo@1.3.2: {} - fast-glob@3.2.12: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-glob@3.3.1: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -16195,25 +15204,17 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-json-patch@3.1.1: {} fast-json-stable-stringify@2.1.0: {} - fast-json-stringify@6.0.1: + fast-json-stringify@6.3.0: dependencies: '@fastify/merge-json-schemas': 0.2.1 - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) - fast-uri: 3.0.6 - json-schema-ref-resolver: 2.0.1 + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + fast-uri: 3.1.0 + json-schema-ref-resolver: 3.0.0 rfdc: 1.4.1 fast-levenshtein@2.0.6: {} @@ -16222,66 +15223,59 @@ snapshots: dependencies: fast-decode-uri-component: 1.0.1 - fast-uri@3.0.6: {} + fast-uri@3.1.0: {} - fast-xml-parser@5.3.3: + fast-xml-builder@1.2.0: dependencies: - strnum: 2.1.0 + path-expression-matcher: 1.5.0 + xml-naming: 0.1.0 - faster-babel-types@0.1.0(@babel/types@7.26.0): + fast-xml-parser@5.8.0: dependencies: - '@babel/types': 7.26.0 + '@nodable/entities': 2.1.0 + fast-xml-builder: 1.2.0 + path-expression-matcher: 1.5.0 + strnum: 2.3.0 + xml-naming: 0.1.0 - fastify@5.6.2: + fastify@5.8.5: dependencies: - '@fastify/ajv-compiler': 4.0.2 + '@fastify/ajv-compiler': 4.0.5 '@fastify/error': 4.2.0 '@fastify/fast-json-stringify-compiler': 5.0.3 - '@fastify/proxy-addr': 5.0.0 + '@fastify/proxy-addr': 5.1.0 abstract-logging: 2.0.1 - avvio: 9.1.0 - fast-json-stringify: 6.0.1 - find-my-way: 9.3.0 + avvio: 9.2.0 + fast-json-stringify: 6.3.0 + find-my-way: 9.5.0 light-my-request: 6.6.0 - pino: 10.1.0 + pino: 10.3.1 process-warning: 5.0.0 rfdc: 1.4.1 - secure-json-parse: 4.0.0 - semver: 7.7.2 + secure-json-parse: 4.1.0 + semver: 7.7.4 toad-cache: 3.7.0 - fastq@1.17.1: + fastq@1.20.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 fault@1.0.4: dependencies: format: 0.2.2 - fdir@6.4.4(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.4): optionalDependencies: - picomatch: 4.0.3 - - fdir@6.5.0(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 fecha@4.2.3: {} - fetch-retry@6.0.0: {} - - fflate@0.4.8: {} - fflate@0.8.2: {} figures@2.0.0: dependencies: escape-string-regexp: 1.0.5 - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - figures@6.1.0: dependencies: is-unicode-supported: 2.1.0 @@ -16300,14 +15294,12 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-my-way@9.3.0: + find-my-way@9.5.0: dependencies: fast-deep-equal: 3.1.3 fast-querystring: 1.1.2 safe-regex2: 5.0.0 - find-up-simple@1.0.0: {} - find-up-simple@1.0.1: {} find-up@2.1.0: @@ -16328,18 +15320,14 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.4.2 keyv: 4.5.4 - flatted@3.3.3: {} + flatted@3.4.2: {} fn.name@1.1.0: {} - follow-redirects@1.15.9: {} - - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 + follow-redirects@1.16.0: {} for-each@0.3.5: dependencies: @@ -16360,27 +15348,14 @@ snapshots: format@0.2.2: {} - from2@2.3.0: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - fs-constants@1.0.0: {} - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - fs.realpath@1.0.0: {} - fsevents@2.3.2: optional: true @@ -16391,13 +15366,6 @@ snapshots: function-timeout@1.0.2: {} - function.prototype.name@1.1.6: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.7 - functions-have-names: 1.2.3 - function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 @@ -16414,7 +15382,7 @@ snapshots: '@petamoriken/float16': 3.9.3 debug: 4.4.3 env-paths: 3.0.0 - semver: 7.7.3 + semver: 7.7.4 shell-quote: 1.8.3 which: 4.0.0 transitivePeerDependencies: @@ -16431,27 +15399,6 @@ snapshots: get-east-asian-width@1.4.0: {} - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - 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-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -16467,7 +15414,7 @@ snapshots: get-nonce@1.0.1: {} - get-port@7.1.0: {} + get-port@7.2.0: {} get-proto@1.0.1: dependencies: @@ -16476,8 +15423,6 @@ snapshots: get-stream@6.0.1: {} - get-stream@7.0.1: {} - get-stream@8.0.1: {} get-stream@9.0.1: @@ -16485,35 +15430,16 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - get-symbol-description@1.0.2: - dependencies: - call-bind: 1.0.8 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.0: + get-tsconfig@4.13.6: dependencies: resolve-pkg-maps: 1.0.0 - get-tsconfig@4.8.1: - dependencies: - resolve-pkg-maps: 1.0.0 - - get-uri@6.0.3: - dependencies: - basic-ftp: 5.0.5 - data-uri-to-buffer: 6.0.2 - debug: 4.4.3 - fs-extra: 11.2.0 - transitivePeerDependencies: - - supports-color - git-hooks-list@4.1.1: {} git-log-parser@1.2.1: @@ -16542,81 +15468,44 @@ snapshots: foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 - minipass: 7.1.2 + minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@13.0.0: + glob@13.0.6: dependencies: - minimatch: 10.1.1 - minipass: 7.1.2 - path-scurry: 2.0.1 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - global-dirs@3.0.1: - dependencies: - ini: 2.0.0 + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 global@4.4.0: dependencies: min-document: 2.19.0 process: 0.11.10 - globals@11.12.0: {} - - globals@14.0.0: {} - globalthis@1.0.4: dependencies: define-properties: 1.2.1 gopd: 1.2.0 - globby@10.0.2: - dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - glob: 7.2.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - globrex@0.1.2: {} - gopd@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - gopd@1.2.0: {} graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} - gradient-string@2.0.1: - dependencies: - chalk: 4.1.2 - tinygradient: 1.1.5 - h3@1.15.1: dependencies: cookie-es: 1.2.2 crossws: 0.3.5 defu: 6.1.4 - destr: 2.0.3 + destr: 2.0.5 iron-webcrypto: 1.2.1 node-mock-http: 1.0.2 radix3: 1.1.2 - ufo: 1.6.1 + ufo: 1.6.4 uncrypto: 0.1.3 handlebars@4.7.8: @@ -16638,22 +15527,16 @@ snapshots: dependencies: es-define-property: 1.0.1 - 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.1.0 - has-yarn@2.1.0: {} - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -16694,23 +15577,10 @@ snapshots: property-information: 7.0.0 space-separated-tokens: 2.0.2 - header-case@1.0.1: - dependencies: - no-case: 2.3.2 - upper-case: 1.1.3 - - hermes-estree@0.21.1: {} - - hermes-parser@0.21.1: - dependencies: - hermes-estree: 0.21.1 - highlight.js@10.7.3: {} highlightjs-vue@1.0.0: {} - hono@4.11.3: {} - hook-std@4.0.0: {} hosted-git-info@7.0.2: @@ -16719,15 +15589,15 @@ snapshots: hosted-git-info@9.0.2: dependencies: - lru-cache: 11.2.4 + lru-cache: 11.3.5 hpagent@1.2.0: {} - html-encoding-sniffer@6.0.0: + html-encoding-sniffer@6.0.0(@noble/hashes@2.0.1): dependencies: - '@exodus/bytes': 1.7.0 + '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) transitivePeerDependencies: - - '@exodus/crypto' + - '@noble/hashes' html-entities@2.6.0: {} @@ -16735,12 +15605,12 @@ snapshots: html-url-attributes@3.0.1: {} - http-cookie-agent@6.0.8(tough-cookie@5.1.2)(undici@7.18.2): + http-cookie-agent@6.0.8(tough-cookie@5.1.2)(undici@7.24.6): dependencies: agent-base: 7.1.3 tough-cookie: 5.1.2 optionalDependencies: - undici: 7.18.2 + undici: 7.24.6 http-errors@2.0.0: dependencies: @@ -16750,16 +15620,16 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@7.0.2: + http-proxy-agent@9.0.0: dependencies: - agent-base: 7.1.3 + agent-base: 9.0.0 debug: 4.4.3 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6: + https-proxy-agent@9.0.0: dependencies: - agent-base: 7.1.3 + agent-base: 9.0.0 debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -16776,19 +15646,27 @@ snapshots: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.7.0: + iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 + icu-minify@4.12.0: + dependencies: + '@formatjs/icu-messageformat-parser': 3.5.0 + ieee754@1.2.1: {} ignore@5.3.2: {} ignore@7.0.5: {} + immer@10.2.0: {} + + immer@11.1.4: {} + immutable@3.8.2: {} - immutable@5.0.2: {} + immutable@5.1.5: {} import-fresh@3.3.0: dependencies: @@ -16802,8 +15680,6 @@ snapshots: transitivePeerDependencies: - supports-color - import-lazy@2.1.0: {} - import-meta-resolve@4.1.0: {} imurmurhash@0.1.4: {} @@ -16812,65 +15688,16 @@ snapshots: indent-string@5.0.0: {} - index-to-position@0.1.2: {} - index-to-position@1.2.0: {} inflation@2.1.0: {} - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - inherits@2.0.4: {} ini@1.3.8: {} - ini@2.0.0: {} - inline-style-parser@0.2.4: {} - inquirer@7.3.3: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - run-async: 2.4.1 - rxjs: 6.6.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - - inquirer@8.2.4: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.2 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 7.0.0 - - internal-slot@1.0.7: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -16879,25 +15706,20 @@ snapshots: internmap@2.0.3: {} - intl-messageformat@10.7.1: + intl-messageformat@11.1.1: dependencies: - '@formatjs/ecma402-abstract': 2.2.0 - '@formatjs/fast-memoize': 2.2.1 - '@formatjs/icu-messageformat-parser': 2.8.0 + '@formatjs/ecma402-abstract': 3.1.0 + '@formatjs/fast-memoize': 3.1.0 + '@formatjs/icu-messageformat-parser': 3.5.0 tslib: 2.8.1 - into-stream@7.0.0: - dependencies: - from2: 2.3.0 - p-is-promise: 3.0.0 - invariant@2.2.4: dependencies: loose-envify: 1.4.0 - ioredis@5.9.1: + ioredis@5.10.1: dependencies: - '@ioredis/commands': 1.5.0 + '@ioredis/commands': 1.5.1 cluster-key-slot: 1.1.2 debug: 4.4.3 denque: 2.1.0 @@ -16914,7 +15736,7 @@ snapshots: jsbn: 1.1.0 sprintf-js: 1.1.3 - ipaddr.js@2.2.0: {} + ipaddr.js@2.3.0: {} iron-webcrypto@1.2.1: {} @@ -16925,11 +15747,6 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-array-buffer@3.0.4: - dependencies: - call-bind: 1.0.8 - get-intrinsic: 1.3.0 - is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 @@ -16942,19 +15759,10 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-bigint@1.0.4: - 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.8 - has-tostringtag: 1.0.2 - is-boolean-object@1.2.1: dependencies: call-bound: 1.0.4 @@ -16964,32 +15772,16 @@ snapshots: is-callable@1.2.7: {} - is-ci@2.0.0: - dependencies: - ci-info: 2.0.0 - - is-core-module@2.15.1: - dependencies: - hasown: 2.0.2 - is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.1: - dependencies: - is-typed-array: 1.1.13 - is-data-view@1.0.2: dependencies: call-bound: 1.0.4 get-intrinsic: 1.3.0 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.4 @@ -17017,27 +15809,10 @@ snapshots: is-hexadecimal@2.0.1: {} - is-installed-globally@0.4.0: - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - - is-interactive@1.0.0: {} - - is-lower-case@1.1.3: - dependencies: - lower-case: 1.1.4 - is-map@2.0.3: {} is-negative-zero@2.0.3: {} - is-npm@5.0.0: {} - - is-number-object@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -17047,21 +15822,12 @@ snapshots: is-obj@2.0.0: {} - is-path-cwd@2.2.0: {} - - is-path-inside@3.0.3: {} - is-plain-obj@4.1.0: {} is-potential-custom-element-name@1.0.1: {} is-property@1.0.2: {} - is-regex@1.1.4: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -17071,10 +15837,6 @@ snapshots: is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: - dependencies: - call-bind: 1.0.8 - is-shared-array-buffer@1.0.4: dependencies: call-bound: 1.0.4 @@ -17085,53 +15847,25 @@ snapshots: is-stream@4.0.1: {} - is-string@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - is-string@1.1.1: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-symbol@1.0.4: - dependencies: - has-symbols: 1.1.0 - is-symbol@1.1.1: dependencies: call-bound: 1.0.4 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: {} + which-typed-array: 1.1.19 is-unicode-supported@2.1.0: {} - is-upper-case@1.1.2: - dependencies: - upper-case: 1.1.3 - is-weakmap@2.0.2: {} - is-weakref@1.0.2: - dependencies: - call-bind: 1.0.8 - - is-weakref@1.1.0: - dependencies: - call-bound: 1.0.4 - is-weakref@1.1.1: dependencies: call-bound: 1.0.4 @@ -17143,41 +15877,26 @@ snapshots: is-what@5.5.0: {} - is-yarn-global@0.3.0: {} - isarray@1.0.0: {} isarray@2.0.5: {} - isbinaryfile@4.0.10: {} - isexe@2.0.0: {} - isexe@3.1.1: + isexe@3.1.5: optional: true - isomorphic-dompurify@2.35.0(postcss@8.5.6): + isomorphic-dompurify@3.13.0(@noble/hashes@2.0.1): dependencies: - dompurify: 3.3.1 - jsdom: 27.4.0(postcss@8.5.6) + dompurify: 3.4.3 + jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: - - '@exodus/crypto' - - bufferutil + - '@noble/hashes' - canvas - - postcss - - supports-color - - utf-8-validate - isomorphic-fetch@3.0.0: + isomorphic-ws@5.0.0(ws@8.20.1): dependencies: - node-fetch: 2.7.0 - whatwg-fetch: 3.6.20 - transitivePeerDependencies: - - encoding - - isomorphic-ws@5.0.0(ws@8.19.0): - dependencies: - ws: 8.19.0 + ws: 8.20.1 issue-parser@7.0.1: dependencies: @@ -17195,14 +15914,6 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@5.0.6: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - debug: 4.4.3 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 @@ -17211,8 +15922,8 @@ snapshots: iterator.prototype@1.1.4: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 reflect.getprototypeof: 1.0.9 set-function-name: 2.0.2 @@ -17223,77 +15934,67 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.2.3: + dependencies: + '@isaacs/cliui': 9.0.0 + java-properties@1.0.2: {} jest-worker@27.5.1: dependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 merge-stream: 2.0.0 supports-color: 8.1.1 jose@6.0.8: {} - jotai@2.16.1(@babel/core@7.26.0)(@babel/template@7.27.2)(@types/react@19.2.8)(react@19.2.3): + jotai@2.20.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.6): optionalDependencies: - '@babel/core': 7.26.0 - '@babel/template': 7.27.2 - '@types/react': 19.2.8 - react: 19.2.3 - - jotai@2.16.1(@babel/core@7.28.5)(@babel/template@7.27.2)(@types/react@19.2.8)(react@19.2.3): - optionalDependencies: - '@babel/core': 7.28.5 - '@babel/template': 7.27.2 - '@types/react': 19.2.8 - react: 19.2.3 + '@babel/core': 7.29.0 + '@babel/template': 7.28.6 + '@types/react': 19.2.14 + react: 19.2.6 js-base64@3.7.8: optional: true js-file-download@0.4.12: {} + js-tokens@10.0.0: {} + js-tokens@4.0.0: {} - js-tokens@9.0.1: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - js-yaml@4.1.1: dependencies: argparse: 2.0.1 jsbn@1.1.0: {} - jsdom@27.4.0(postcss@8.5.6): + jsdom@29.1.1(@noble/hashes@2.0.1): dependencies: - '@acemir/cssom': 0.9.28 - '@asamuzakjp/dom-selector': 6.7.6 - '@exodus/bytes': 1.7.0 - cssstyle: 5.3.4(postcss@8.5.6) - data-urls: 6.0.0 + '@asamuzakjp/css-color': 5.1.11 + '@asamuzakjp/dom-selector': 7.1.1 + '@bramus/specificity': 2.4.2 + '@csstools/css-syntax-patches-for-csstree': 1.1.3(css-tree@3.2.1) + '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) + css-tree: 3.2.1 + data-urls: 7.0.0(@noble/hashes@2.0.1) decimal.js: 10.6.0 - html-encoding-sniffer: 6.0.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + html-encoding-sniffer: 6.0.0(@noble/hashes@2.0.1) is-potential-custom-element-name: 1.0.1 - parse5: 8.0.0 + lru-cache: 11.3.5 + parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 6.0.0 + tough-cookie: 6.0.1 + undici: 7.25.0 w3c-xmlserializer: 5.0.0 - webidl-conversions: 8.0.0 - whatwg-mimetype: 4.0.0 - whatwg-url: 15.1.0 - ws: 8.19.0 + webidl-conversions: 8.0.1 + whatwg-mimetype: 5.0.0 + whatwg-url: 16.0.1(@noble/hashes@2.0.1) xml-name-validator: 5.0.0 transitivePeerDependencies: - - '@exodus/crypto' - - bufferutil - - postcss - - supports-color - - utf-8-validate + - '@noble/hashes' jsep@1.4.0: {} @@ -17305,7 +16006,7 @@ snapshots: json-parse-even-better-errors@2.3.1: {} - json-schema-ref-resolver@2.0.1: + json-schema-ref-resolver@3.0.0: dependencies: dequal: 2.0.3 @@ -17335,10 +16036,10 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.0 + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 keygrip@1.1.0: dependencies: @@ -17352,8 +16053,6 @@ snapshots: dependencies: is-buffer: 1.1.6 - kleur@4.1.5: {} - klona@2.0.6: {} kuler@2.0.0: {} @@ -17368,10 +16067,9 @@ snapshots: dependencies: readable-stream: 2.3.8 - ldapts@8.1.3: + ldapts@8.1.7: dependencies: strict-event-emitter-types: 2.0.0 - whatwg-url: 15.1.0 levn@0.4.1: dependencies: @@ -17380,17 +16078,13 @@ snapshots: light-my-request@6.6.0: dependencies: - cookie: 1.0.2 + cookie: 1.1.1 process-warning: 4.0.1 - set-cookie-parser: 2.7.1 + set-cookie-parser: 2.7.2 lines-and-columns@1.2.4: {} - linkify-it@5.0.0: - dependencies: - uc.micro: 2.1.0 - - linkifyjs@4.3.2: {} + linkifyjs@4.3.3: {} load-json-file@4.0.0: dependencies: @@ -17430,28 +16124,17 @@ snapshots: lodash.escaperegexp@4.1.2: {} - lodash.get@4.4.2: {} - lodash.isarguments@3.1.0: {} + lodash.isequal@4.5.0: {} + lodash.isplainobject@4.0.6: {} lodash.isstring@4.0.1: {} - lodash.merge@4.6.2: {} - lodash.uniqby@4.7.0: {} - lodash@4.17.21: {} - - log-symbols@3.0.0: - dependencies: - chalk: 2.4.2 - - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 + lodash@4.18.1: {} logform@2.7.0: dependencies: @@ -17462,7 +16145,7 @@ snapshots: safe-stable-stringify: 2.5.0 triple-beam: 1.4.1 - long@5.2.3: {} + long@5.3.2: {} longest-streak@3.1.0: {} @@ -17470,12 +16153,6 @@ snapshots: dependencies: js-tokens: 4.0.0 - lower-case-first@1.0.2: - dependencies: - lower-case: 1.1.4 - - lower-case@1.1.4: {} - lowlight@1.20.0: dependencies: fault: 1.0.4 @@ -17483,21 +16160,17 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.2: {} - - lru-cache@11.2.4: {} + lru-cache@11.3.5: {} lru-cache@5.1.1: dependencies: yallist: 3.1.1 - lru-cache@7.18.3: {} - - lru.min@1.1.0: {} + lru.min@1.1.4: {} m3u8-parser@7.2.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@videojs/vhs-utils': 4.1.1 global: 4.4.0 @@ -17505,56 +16178,41 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magicast@0.5.1: + magicast@0.5.2: dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 source-map-js: 1.2.1 - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - make-dir@4.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 - make-error@1.3.6: {} - - mantine-form-zod-resolver@1.3.0(@mantine/form@8.3.12(react@19.2.3))(zod@4.2.1): + mantine-form-zod-resolver@1.3.0(@mantine/form@8.3.18(react@19.2.6))(zod@4.4.3): dependencies: - '@mantine/form': 8.3.12(react@19.2.3) - zod: 4.2.1 + '@mantine/form': 8.3.18(react@19.2.6) + zod: 4.4.3 - mantine-react-table@2.0.0-beta.9(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/dates@8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(@tabler/icons-react@3.36.1(react@19.2.3))(clsx@2.1.1)(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + mantine-react-table@2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(@tabler/icons-react@3.44.0(react@19.2.6))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - '@mantine/core': 8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/dates': 8.3.12(@mantine/core@8.3.12(@mantine/hooks@8.3.12(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.12(react@19.2.3))(dayjs@1.11.19)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@mantine/hooks': 8.3.12(react@19.2.3) - '@tabler/icons-react': 3.36.1(react@19.2.3) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/dates': 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(dayjs@1.11.20)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + '@tabler/icons-react': 3.44.0(react@19.2.6) '@tanstack/match-sorter-utils': 8.19.4 - '@tanstack/react-table': 8.20.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@tanstack/react-virtual': 3.11.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@tanstack/react-table': 8.20.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@tanstack/react-virtual': 3.11.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6) clsx: 2.1.1 - dayjs: 1.11.19 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + dayjs: 1.11.20 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) maria2@0.4.1: {} - markdown-it@14.1.0: - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - marked-terminal@7.3.0(marked@15.0.11): dependencies: ansi-escapes: 7.0.0 - ansi-regex: 6.1.0 + ansi-regex: 6.2.2 chalk: 5.4.1 cli-highlight: 2.1.11 cli-table3: 0.6.5 @@ -17655,9 +16313,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdn-data@2.12.2: {} - - mdurl@2.0.0: {} + mdn-data@2.27.1: {} media-typer@0.3.0: {} @@ -17825,77 +16481,61 @@ snapshots: minim@0.23.8: dependencies: - lodash: 4.17.21 + lodash: 4.18.1 - minimatch@10.1.1: + minimatch@10.2.5: dependencies: - '@isaacs/brace-expansion': 5.0.0 + brace-expansion: 5.0.6 - minimatch@3.1.2: + minimatch@3.1.5: dependencies: - brace-expansion: 4.0.1 + brace-expansion: 5.0.6 minimatch@5.1.6: dependencies: - brace-expansion: 4.0.1 - - minimatch@7.4.6: - dependencies: - brace-expansion: 4.0.1 - - minimatch@9.0.0: - dependencies: - brace-expansion: 4.0.1 + brace-expansion: 5.0.6 minimatch@9.0.5: dependencies: - brace-expansion: 4.0.1 + brace-expansion: 5.0.6 minimist@1.2.8: {} - minipass@7.1.2: {} - - mitt@3.0.1: {} + minipass@7.1.3: {} mkdirp-classic@0.5.3: {} - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - - mkdirp@1.0.4: {} + mkdirp@3.0.1: {} mpd-parser@1.3.1: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@videojs/vhs-utils': 4.0.0 '@xmldom/xmldom': 0.8.10 global: 4.4.0 - mri@1.2.0: {} - mrmime@2.0.0: {} ms@2.1.3: {} - mute-stream@0.0.8: {} + mute-stream@2.0.0: {} mux.js@7.1.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 global: 4.4.0 - mysql2@3.16.0: + mysql2@3.22.3(@types/node@24.12.4): dependencies: + '@types/node': 24.12.4 aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 - iconv-lite: 0.7.0 - long: 5.2.3 - lru.min: 1.1.0 - named-placeholders: 1.1.3 - seq-queue: 0.0.5 - sqlstring: 2.3.3 + iconv-lite: 0.7.2 + long: 5.3.2 + lru.min: 1.1.4 + named-placeholders: 1.1.6 + sql-escaper: 1.3.3 mz@2.7.0: dependencies: @@ -17903,23 +16543,19 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - named-placeholders@1.1.3: + named-placeholders@1.1.6: dependencies: - lru-cache: 7.18.3 + lru.min: 1.1.4 nan@2.20.0: optional: true nanoid@3.3.11: {} - nanoid@5.1.6: {} - napi-build-utils@1.0.2: {} natural-compare@1.4.0: {} - negotiator@0.6.3: {} - negotiator@1.0.0: {} neo-async@2.6.2: {} @@ -17928,113 +16564,67 @@ snapshots: nerf-dart@1.0.0: {} - netmask@2.0.2: {} - - next-auth@5.0.0-beta.30(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3): + next-auth@5.0.0-beta.31(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0))(react@19.2.6): dependencies: - '@auth/core': 0.41.0 - next: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) - react: 19.2.3 + '@auth/core': 0.41.2 + next: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) + react: 19.2.6 - next-intl-swc-plugin-extractor@4.7.0: {} + next-intl-swc-plugin-extractor@4.12.0: {} - next-intl@4.7.0(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3)(typescript@5.9.3): + next-intl@4.12.0(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0))(react@19.2.6)(typescript@5.9.3): dependencies: - '@formatjs/intl-localematcher': 0.5.5 + '@formatjs/intl-localematcher': 0.8.1 '@parcel/watcher': 2.4.1 '@swc/core': 1.15.3 + icu-minify: 4.12.0 negotiator: 1.0.0 - next: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) - next-intl-swc-plugin-extractor: 4.7.0 + next: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0) + next-intl-swc-plugin-extractor: 4.12.0 po-parser: 2.1.1 - react: 19.2.3 - use-intl: 4.7.0(react@19.2.3) + react: 19.2.6 + use-intl: 4.12.0(react@19.2.6) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - '@swc/helpers' - next@16.1.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2): + next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.99.0): dependencies: - '@next/env': 16.1.1 + '@next/env': 16.2.6 '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.8.29 - caniuse-lite: 1.0.30001755 + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001766 postcss: 8.4.31 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - styled-jsx: 5.1.6(@babel/core@7.26.0)(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.6) optionalDependencies: - '@next/swc-darwin-arm64': 16.1.1 - '@next/swc-darwin-x64': 16.1.1 - '@next/swc-linux-arm64-gnu': 16.1.1 - '@next/swc-linux-arm64-musl': 16.1.1 - '@next/swc-linux-x64-gnu': 16.1.1 - '@next/swc-linux-x64-musl': 16.1.1 - '@next/swc-win32-arm64-msvc': 16.1.1 - '@next/swc-win32-x64-msvc': 16.1.1 + '@next/swc-darwin-arm64': 16.2.6 + '@next/swc-darwin-x64': 16.2.6 + '@next/swc-linux-arm64-gnu': 16.2.6 + '@next/swc-linux-arm64-musl': 16.2.6 + '@next/swc-linux-x64-gnu': 16.2.6 + '@next/swc-linux-x64-musl': 16.2.6 + '@next/swc-win32-arm64-msvc': 16.2.6 + '@next/swc-win32-x64-msvc': 16.2.6 + '@playwright/test': 1.60.0 babel-plugin-react-compiler: 1.0.0 - sass: 1.97.2 - sharp: 0.34.4 + sass: 1.99.0 + sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2): - dependencies: - '@next/env': 16.1.1 - '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.8.29 - caniuse-lite: 1.0.30001755 - postcss: 8.4.31 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.3) - optionalDependencies: - '@next/swc-darwin-arm64': 16.1.1 - '@next/swc-darwin-x64': 16.1.1 - '@next/swc-linux-arm64-gnu': 16.1.1 - '@next/swc-linux-arm64-musl': 16.1.1 - '@next/swc-linux-x64-gnu': 16.1.1 - '@next/swc-linux-x64-musl': 16.1.1 - '@next/swc-win32-arm64-msvc': 16.1.1 - '@next/swc-win32-x64-msvc': 16.1.1 - babel-plugin-react-compiler: 1.0.0 - sass: 1.97.2 - sharp: 0.34.4 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - - nice-napi@1.0.2: - dependencies: - node-addon-api: 3.2.1 - node-gyp-build: 4.8.4 - optional: true - - no-case@2.3.2: - dependencies: - lower-case: 1.1.4 - node-abi@3.67.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 node-abort-controller@3.1.1: {} - node-addon-api@3.2.1: - optional: true - node-addon-api@7.1.1: {} - node-addon-api@8.3.0: {} - - node-addon-api@8.3.1: - optional: true - - node-cron@4.2.1: {} - - node-domexception@1.0.0: {} + node-addon-api@8.3.1: {} node-emoji@2.2.0: dependencies: @@ -18043,11 +16633,6 @@ snapshots: emojilib: 2.4.0 skin-tone: 2.0.0 - node-fetch-commonjs@3.3.2: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 - node-fetch-native@1.6.7: {} node-fetch@2.7.0: @@ -18056,52 +16641,30 @@ snapshots: node-gyp-build@4.8.4: {} - node-ical@0.22.1: - dependencies: - rrule: 2.8.1 - - node-loader@2.1.0(webpack@5.94.0(@swc/core@1.15.3)): + node-loader@2.1.0(webpack@5.94.0): dependencies: loader-utils: 2.0.4 - webpack: 5.94.0(@swc/core@1.15.3) + webpack: 5.94.0 node-mock-http@1.0.2: {} - node-plop@0.26.3: - dependencies: - '@babel/runtime-corejs3': 7.27.1 - '@types/inquirer': 6.5.0 - change-case: 3.1.0 - del: 5.1.0 - globby: 10.0.2 - handlebars: 4.7.8 - inquirer: 7.3.3 - isbinaryfile: 4.0.10 - lodash.get: 4.4.2 - mkdirp: 0.5.6 - resolve: 1.22.8 - - node-releases@2.0.18: {} - - node-releases@2.0.19: {} - node-releases@2.0.27: {} normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.7.3 + semver: 7.7.4 validate-npm-package-license: 3.0.4 normalize-package-data@8.0.0: dependencies: hosted-git-info: 9.0.2 - semver: 7.7.3 + semver: 7.7.4 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} - normalize-url@8.0.1: {} + normalize-url@9.0.0: {} npm-run-path@4.0.1: dependencies: @@ -18122,21 +16685,10 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.2: {} - - object-inspect@1.13.3: {} - object-inspect@1.13.4: {} object-keys@1.1.1: {} - object.assign@4.1.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - object.assign@4.1.7: dependencies: call-bind: 1.0.8 @@ -18157,20 +16709,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 - - object.values@1.2.0: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-abstract: 1.24.0 object.values@1.2.1: dependencies: @@ -18195,19 +16741,11 @@ snapshots: '@octokit/types': 16.0.0 '@octokit/webhooks': 14.0.0 - ofetch@1.4.1: - dependencies: - destr: 2.0.3 - node-fetch-native: 1.6.7 - ufo: 1.6.1 - ofetch@1.5.1: dependencies: destr: 2.0.5 node-fetch-native: 1.6.7 - ufo: 1.6.1 - - ohash@1.1.4: {} + ufo: 1.6.4 on-exit-leak-free@2.1.2: {} @@ -18237,7 +16775,7 @@ snapshots: openapi3-ts@4.4.0: dependencies: - yaml: 2.5.1 + yaml: 2.9.0 openid-client@6.3.3: dependencies: @@ -18253,29 +16791,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@4.1.1: - dependencies: - chalk: 3.0.0 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - log-symbols: 3.0.0 - mute-stream: 0.0.8 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - orderedmap@2.1.1: {} own-keys@1.0.1: @@ -18290,8 +16805,6 @@ snapshots: dependencies: p-map: 7.0.3 - p-is-promise@3.0.0: {} - p-limit@1.3.0: dependencies: p-try: 1.0.0 @@ -18308,10 +16821,6 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map@3.0.0: - dependencies: - aggregate-error: 3.1.0 - p-map@7.0.3: {} p-reduce@2.1.0: {} @@ -18320,31 +16829,9 @@ snapshots: p-try@1.0.0: {} - pac-proxy-agent@7.2.0: - dependencies: - '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.3 - debug: 4.4.3 - get-uri: 6.0.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.5 - transitivePeerDependencies: - - supports-color - - pac-resolver@7.0.1: - dependencies: - degenerator: 5.0.1 - netmask: 2.0.2 - package-json-from-dist@1.0.1: {} - pako@2.1.0: {} - - param-case@2.1.1: - dependencies: - no-case: 2.3.2 + parchment@3.0.0: {} parent-module@1.0.1: dependencies: @@ -18367,25 +16854,17 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-json@8.1.0: - dependencies: - '@babel/code-frame': 7.27.1 - index-to-position: 0.1.2 - type-fest: 4.41.0 - parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 index-to-position: 1.2.0 type-fest: 4.41.0 - parse-ms@3.0.0: {} - parse-ms@4.0.0: {} parse5-htmlparser2-tree-adapter@6.0.1: @@ -18396,24 +16875,15 @@ snapshots: parse5@6.0.1: {} - parse5@8.0.0: + parse5@8.0.1: dependencies: - entities: 6.0.1 - - pascal-case@2.0.1: - dependencies: - camel-case: 3.0.0 - upper-case-first: 1.1.2 - - path-case@2.1.1: - dependencies: - no-case: 2.3.2 + entities: 8.0.0 path-exists@3.0.0: {} path-exists@4.0.0: {} - path-is-absolute@1.0.1: {} + path-expression-matcher@1.5.0: {} path-key@3.1.1: {} @@ -18424,31 +16894,29 @@ snapshots: path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 - minipass: 7.1.2 + minipass: 7.1.3 - path-scurry@2.0.1: + path-scurry@2.0.2: dependencies: - lru-cache: 11.2.2 - minipass: 7.1.2 + lru-cache: 11.3.5 + minipass: 7.1.3 path-type@4.0.0: {} - pathe@1.1.2: {} - pathe@2.0.3: {} - pg-cloudflare@1.2.7: + pg-cloudflare@1.3.0: optional: true - pg-connection-string@2.9.1: {} + pg-connection-string@2.12.0: {} pg-int8@1.0.1: {} - pg-pool@3.10.1(pg@8.16.3): + pg-pool@3.13.0(pg@8.20.0): dependencies: - pg: 8.16.3 + pg: 8.20.0 - pg-protocol@1.10.3: {} + pg-protocol@1.13.0: {} pg-types@2.2.0: dependencies: @@ -18458,70 +16926,64 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg@8.16.3: + pg@8.20.0: dependencies: - pg-connection-string: 2.9.1 - pg-pool: 3.10.1(pg@8.16.3) - pg-protocol: 1.10.3 + pg-connection-string: 2.12.0 + pg-pool: 3.13.0(pg@8.20.0) + pg-protocol: 1.13.0 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: - pg-cloudflare: 1.2.7 + pg-cloudflare: 1.3.0 pgpass@1.0.5: dependencies: split2: 4.2.0 - picocolors@1.0.1: {} - picocolors@1.1.1: {} picomatch-browser@2.2.6: {} picomatch@2.3.1: {} - picomatch@4.0.3: {} + picomatch@4.0.4: {} pify@3.0.0: {} - pino-abstract-transport@2.0.0: + pino-abstract-transport@3.0.0: dependencies: split2: 4.2.0 - pino-std-serializers@7.0.0: {} + pino-std-serializers@7.1.0: {} - pino@10.1.0: + pino@10.3.1: dependencies: '@pinojs/redact': 0.4.0 atomic-sleep: 1.0.0 on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 - pino-std-serializers: 7.0.0 + pino-abstract-transport: 3.0.0 + pino-std-serializers: 7.1.0 process-warning: 5.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 - sonic-boom: 4.2.0 - thread-stream: 3.1.0 - - piscina@4.6.1: - optionalDependencies: - nice-napi: 1.0.2 + sonic-boom: 4.2.1 + thread-stream: 4.0.0 pkcs7@1.0.4: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 pkg-conf@2.1.0: dependencies: find-up: 2.1.0 load-json-file: 4.0.0 - playwright-core@1.49.0: {} + playwright-core@1.60.0: {} - playwright@1.49.0: + playwright@1.60.0: dependencies: - playwright-core: 1.49.0 + playwright-core: 1.60.0 optionalDependencies: fsevents: 2.3.2 @@ -18529,38 +16991,38 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-js@4.0.1(postcss@8.5.6): + postcss-js@4.0.1(postcss@8.5.8): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.6 + postcss: 8.5.8 - postcss-mixins@12.0.0(postcss@8.5.6): + postcss-mixins@12.0.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 - postcss-js: 4.0.1(postcss@8.5.6) - postcss-simple-vars: 7.0.1(postcss@8.5.6) - sugarss: 5.0.0(postcss@8.5.6) - tinyglobby: 0.2.14 + postcss: 8.5.8 + postcss-js: 4.0.1(postcss@8.5.8) + postcss-simple-vars: 7.0.1(postcss@8.5.8) + sugarss: 5.0.0(postcss@8.5.8) + tinyglobby: 0.2.15 - postcss-nested@7.0.2(postcss@8.5.6): + postcss-nested@7.0.2(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-selector-parser: 7.1.0 - postcss-preset-mantine@1.18.0(postcss@8.5.6): + postcss-preset-mantine@1.18.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 - postcss-mixins: 12.0.0(postcss@8.5.6) - postcss-nested: 7.0.2(postcss@8.5.6) + postcss: 8.5.8 + postcss-mixins: 12.0.0(postcss@8.5.8) + postcss-nested: 7.0.2(postcss@8.5.8) postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-simple-vars@7.0.1(postcss@8.5.6): + postcss-simple-vars@7.0.1(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss@8.4.31: dependencies: @@ -18568,7 +17030,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.6: + postcss@8.5.8: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -18602,25 +17064,20 @@ snapshots: pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 - tar-fs: 3.1.1 + tar-fs: 3.1.2 tunnel-agent: 0.6.0 transitivePeerDependencies: - bare-buffer prelude-ls@1.2.1: {} - prettier-plugin-packagejson@2.5.20(prettier@3.7.4): + prettier-plugin-packagejson@3.0.2(prettier@3.8.3): dependencies: - sort-package-json: 3.5.0 - synckit: 0.11.11 + sort-package-json: 3.6.0 optionalDependencies: - prettier: 3.7.4 + prettier: 3.8.3 - prettier@3.7.4: {} - - pretty-ms@8.0.0: - dependencies: - parse-ms: 3.0.0 + prettier@3.8.3: {} pretty-ms@9.2.0: dependencies: @@ -18640,7 +17097,7 @@ snapshots: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react-is: 19.2.3 + react-is: 19.2.6 proper-lockfile@4.1.2: dependencies: @@ -18648,9 +17105,12 @@ snapshots: retry: 0.12.0 signal-exit: 3.0.7 - properties-reader@2.3.0: + properties-reader@3.0.1: dependencies: - mkdirp: 1.0.4 + '@kwsites/file-exists': 1.1.1 + mkdirp: 3.0.1 + transitivePeerDependencies: + - supports-color property-information@7.0.0: {} @@ -18658,10 +17118,6 @@ snapshots: dependencies: prosemirror-transform: 1.10.2 - prosemirror-collab@1.3.1: - dependencies: - prosemirror-state: 1.4.3 - prosemirror-commands@1.6.2: dependencies: prosemirror-model: 1.24.1 @@ -18688,37 +17144,15 @@ snapshots: prosemirror-view: 1.41.4 rope-sequence: 1.3.4 - prosemirror-inputrules@1.4.0: - dependencies: - prosemirror-state: 1.4.3 - prosemirror-transform: 1.10.2 - prosemirror-keymap@1.2.2: dependencies: prosemirror-state: 1.4.3 w3c-keyname: 2.2.8 - prosemirror-markdown@1.13.1: - dependencies: - '@types/markdown-it': 14.1.2 - markdown-it: 14.1.0 - prosemirror-model: 1.24.1 - - prosemirror-menu@1.2.4: - dependencies: - crelt: 1.0.6 - prosemirror-commands: 1.6.2 - prosemirror-history: 1.4.1 - prosemirror-state: 1.4.3 - prosemirror-model@1.24.1: dependencies: orderedmap: 2.1.1 - prosemirror-schema-basic@1.2.3: - dependencies: - prosemirror-model: 1.24.1 - prosemirror-schema-list@1.5.1: dependencies: prosemirror-model: 1.24.1 @@ -18739,14 +17173,6 @@ snapshots: prosemirror-transform: 1.10.2 prosemirror-view: 1.41.4 - prosemirror-trailing-node@3.0.0(prosemirror-model@1.24.1)(prosemirror-state@1.4.3)(prosemirror-view@1.41.4): - dependencies: - '@remirror/core-constants': 3.0.0 - escape-string-regexp: 4.0.0 - prosemirror-model: 1.24.1 - prosemirror-state: 1.4.3 - prosemirror-view: 1.41.4 - prosemirror-transform@1.10.2: dependencies: prosemirror-model: 1.24.1 @@ -18771,43 +17197,24 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 24.10.7 - long: 5.2.3 + '@types/node': 24.12.4 + long: 5.3.2 proxmox-api@1.1.1: dependencies: - undici: 7.18.2 - - proxy-agent@6.5.0: - dependencies: - agent-base: 7.1.3 - debug: 4.4.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - lru-cache: 7.18.3 - pac-proxy-agent: 7.2.0 - proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.5 - transitivePeerDependencies: - - supports-color + undici: 7.24.6 proxy-from-env@1.1.0: {} + proxy-from-env@2.1.0: {} + pump@3.0.2: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - punycode.js@2.3.1: {} - punycode@2.3.1: {} - pupa@2.1.1: - dependencies: - escape-goat: 2.1.1 - - pure-rand@6.1.0: {} - qs@6.14.0: dependencies: side-channel: 1.1.0 @@ -18818,6 +17225,19 @@ snapshots: quick-format-unescaped@4.0.4: {} + quill-delta@5.1.0: + dependencies: + fast-diff: 1.3.0 + lodash.clonedeep: 4.5.0 + lodash.isequal: 4.5.0 + + quill@2.0.3: + dependencies: + eventemitter3: 5.0.4 + lodash-es: 4.17.21 + parchment: 3.0.0 + quill-delta: 5.1.0 + radix3@1.1.2: {} ramda-adjunct@5.1.0(ramda@0.30.1): @@ -18851,61 +17271,61 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-copy-to-clipboard@5.1.0(react@19.2.3): + react-copy-to-clipboard@5.1.0(react@19.2.6): dependencies: copy-to-clipboard: 3.3.3 prop-types: 15.8.1 - react: 19.2.3 + react: 19.2.6 - react-debounce-input@3.3.0(react@19.2.3): + react-debounce-input@3.3.0(react@19.2.6): dependencies: lodash.debounce: 4.0.8 prop-types: 15.8.1 - react: 19.2.3 + react: 19.2.6 - react-dom@19.2.3(react@19.2.3): + react-dom@19.2.6(react@19.2.6): dependencies: - react: 19.2.3 + react: 19.2.6 scheduler: 0.27.0 - react-dropzone@14.3.8(react@19.2.3): + react-dropzone@15.0.0(react@19.2.6): dependencies: attr-accept: 2.2.5 file-selector: 2.1.2 prop-types: 15.8.1 - react: 19.2.3 + react: 19.2.6 - react-error-boundary@6.0.3(react@19.2.3): + react-error-boundary@6.1.1(react@19.2.6): dependencies: - react: 19.2.3 + react: 19.2.6 react-immutable-proptypes@2.2.0(immutable@3.8.2): dependencies: immutable: 3.8.2 invariant: 2.2.4 - react-immutable-pure-component@2.2.2(immutable@3.8.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-immutable-pure-component@2.2.2(immutable@3.8.2)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: immutable: 3.8.2 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - react-inspector@6.0.2(react@19.2.3): + react-inspector@6.0.2(react@19.2.6): dependencies: - react: 19.2.3 + react: 19.2.6 - react-is@19.2.3: {} + react-is@19.2.6: {} - react-markdown@10.1.0(@types/react@19.2.8)(react@19.2.3): + react-markdown@10.1.0(@types/react@19.2.14)(react@19.2.6): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.2.8 + '@types/react': 19.2.14 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.0 - react: 19.2.3 + react: 19.2.6 remark-parse: 11.0.0 remark-rehype: 11.1.1 unified: 11.0.5 @@ -18914,103 +17334,95 @@ snapshots: transitivePeerDependencies: - supports-color - react-number-format@5.4.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-number-format@5.4.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - react-redux@9.2.0(@types/react@19.2.8)(react@19.2.3)(redux@5.0.1): + react-quill-new@3.8.3(quill-delta@5.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + dependencies: + lodash-es: 4.17.21 + quill: 2.0.3 + quill-delta: 5.1.0 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + + react-redux@9.2.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 - react: 19.2.3 - use-sync-external-store: 1.4.0(react@19.2.3) + react: 19.2.6 + use-sync-external-store: 1.4.0(react@19.2.6) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 redux: 5.0.1 react-refresh@0.18.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.2.8)(react@19.2.3): + react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.6): dependencies: - react: 19.2.3 - react-style-singleton: 2.2.3(@types/react@19.2.8)(react@19.2.3) + react: 19.2.6 + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.6) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 - react-remove-scroll@2.7.1(@types/react@19.2.8)(react@19.2.3): + react-remove-scroll@2.7.1(@types/react@19.2.14)(react@19.2.6): dependencies: - react: 19.2.3 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.8)(react@19.2.3) - react-style-singleton: 2.2.3(@types/react@19.2.8)(react@19.2.3) + react: 19.2.6 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.6) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.6) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.8)(react@19.2.3) - use-sidecar: 1.1.3(@types/react@19.2.8)(react@19.2.3) + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.6) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.6) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 - react-scan@0.0.31: + react-simple-code-editor@0.14.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - '@clack/core': 0.3.5 - '@clack/prompts': 0.8.2 - kleur: 4.1.5 - mri: 1.2.0 - playwright: 1.49.0 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - react-simple-code-editor@0.14.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3): - dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - - react-smooth@4.0.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3): - dependencies: - fast-equals: 5.3.3 - prop-types: 15.8.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - - react-style-singleton@2.2.3(@types/react@19.2.8)(react@19.2.3): + react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.6): dependencies: get-nonce: 1.0.1 - react: 19.2.3 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 - react-syntax-highlighter@16.1.0(react@19.2.3): + react-syntax-highlighter@16.1.0(react@19.2.6): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 highlight.js: 10.7.3 highlightjs-vue: 1.0.0 lowlight: 1.20.0 prismjs: 1.30.0 - react: 19.2.3 + react: 19.2.6 refractor: 5.0.0 - react-textarea-autosize@8.5.9(@types/react@19.2.8)(react@19.2.3): + react-textarea-autosize@8.5.9(@types/react@19.2.14)(react@19.2.6): dependencies: - '@babel/runtime': 7.28.4 - react: 19.2.3 - use-composed-ref: 1.3.0(react@19.2.3) - use-latest: 1.2.1(@types/react@19.2.8)(react@19.2.3) + '@babel/runtime': 7.29.2 + react: 19.2.6 + use-composed-ref: 1.3.0(react@19.2.6) + use-latest: 1.2.1(@types/react@19.2.14)(react@19.2.6) transitivePeerDependencies: - '@types/react' - react-transition-group@4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-transition-group@4.4.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - react@19.2.3: {} + react@19.2.6: {} read-package-up@11.0.0: dependencies: - find-up-simple: 1.0.0 + find-up-simple: 1.0.1 read-pkg: 9.0.1 type-fest: 4.41.0 @@ -19018,21 +17430,21 @@ snapshots: dependencies: find-up-simple: 1.0.1 read-pkg: 10.0.0 - type-fest: 5.2.0 + type-fest: 5.6.0 read-pkg@10.0.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 8.0.0 parse-json: 8.3.0 - type-fest: 5.2.0 + type-fest: 5.6.0 unicorn-magic: 0.3.0 read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 - parse-json: 8.1.0 + parse-json: 8.3.0 type-fest: 4.41.0 unicorn-magic: 0.1.0 @@ -19068,30 +17480,25 @@ snapshots: real-require@0.2.0: {} - recast@0.23.11: - dependencies: - ast-types: 0.16.1 - esprima: 4.0.1 - source-map: 0.6.1 - tiny-invariant: 1.3.3 - tslib: 2.8.1 - - recharts-scale@0.4.5: - dependencies: - decimal.js-light: 2.5.1 - - recharts@2.15.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react-is@19.2.6)(react@19.2.6)(redux@5.0.1): dependencies: + '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1))(react@19.2.6) clsx: 2.1.1 - eventemitter3: 4.0.7 - lodash: 4.17.21 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-is: 19.2.3 - react-smooth: 4.0.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - recharts-scale: 0.4.5 + decimal.js-light: 2.5.1 + es-toolkit: 1.46.1 + eventemitter3: 5.0.4 + immer: 10.2.0 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-is: 19.2.6 + react-redux: 9.2.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1) + reselect: 5.1.1 tiny-invariant: 1.3.3 - victory-vendor: 36.9.2 + use-sync-external-store: 1.4.0(react@19.2.6) + victory-vendor: 37.3.6 + transitivePeerDependencies: + - '@types/react' + - redux redis-errors@1.2.0: {} @@ -19103,6 +17510,10 @@ snapshots: dependencies: immutable: 3.8.2 + redux-thunk@3.1.0(redux@5.0.1): + dependencies: + redux: 5.0.1 + redux@5.0.1: {} reflect.getprototypeof@1.0.9: @@ -19110,7 +17521,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 dunder-proto: 1.0.1 - es-abstract: 1.23.7 + es-abstract: 1.24.0 es-errors: 1.3.0 get-intrinsic: 1.3.0 gopd: 1.2.0 @@ -19119,24 +17530,10 @@ snapshots: refractor@5.0.0: dependencies: '@types/hast': 3.0.4 - '@types/prismjs': 1.26.5 + '@types/prismjs': 1.26.6 hastscript: 9.0.1 parse-entities: 4.0.2 - regexp.prototype.flags@1.5.2: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - 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 - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -19146,23 +17543,10 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - registry-auth-token@3.3.2: - dependencies: - rc: 1.2.8 - safe-buffer: 5.2.1 - registry-auth-token@5.0.2: dependencies: '@pnpm/npm-conf': 2.3.1 - registry-url@3.1.0: - dependencies: - rc: 1.2.8 - - registry-url@5.1.0: - dependencies: - rc: 1.2.8 - remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -19213,115 +17597,68 @@ snapshots: resolve@2.0.0-next.5: dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - ret@0.2.2: {} ret@0.5.0: {} retry@0.12.0: {} - reusify@1.0.4: {} + reusify@1.1.0: {} rfc4648@1.5.4: {} rfdc@1.4.1: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup@4.48.1: + rollup@4.60.0: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.48.1 - '@rollup/rollup-android-arm64': 4.48.1 - '@rollup/rollup-darwin-arm64': 4.48.1 - '@rollup/rollup-darwin-x64': 4.48.1 - '@rollup/rollup-freebsd-arm64': 4.48.1 - '@rollup/rollup-freebsd-x64': 4.48.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.48.1 - '@rollup/rollup-linux-arm-musleabihf': 4.48.1 - '@rollup/rollup-linux-arm64-gnu': 4.48.1 - '@rollup/rollup-linux-arm64-musl': 4.48.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.48.1 - '@rollup/rollup-linux-ppc64-gnu': 4.48.1 - '@rollup/rollup-linux-riscv64-gnu': 4.48.1 - '@rollup/rollup-linux-riscv64-musl': 4.48.1 - '@rollup/rollup-linux-s390x-gnu': 4.48.1 - '@rollup/rollup-linux-x64-gnu': 4.48.1 - '@rollup/rollup-linux-x64-musl': 4.48.1 - '@rollup/rollup-win32-arm64-msvc': 4.48.1 - '@rollup/rollup-win32-ia32-msvc': 4.48.1 - '@rollup/rollup-win32-x64-msvc': 4.48.1 + '@rollup/rollup-android-arm-eabi': 4.60.0 + '@rollup/rollup-android-arm64': 4.60.0 + '@rollup/rollup-darwin-arm64': 4.60.0 + '@rollup/rollup-darwin-x64': 4.60.0 + '@rollup/rollup-freebsd-arm64': 4.60.0 + '@rollup/rollup-freebsd-x64': 4.60.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.0 + '@rollup/rollup-linux-arm-musleabihf': 4.60.0 + '@rollup/rollup-linux-arm64-gnu': 4.60.0 + '@rollup/rollup-linux-arm64-musl': 4.60.0 + '@rollup/rollup-linux-loong64-gnu': 4.60.0 + '@rollup/rollup-linux-loong64-musl': 4.60.0 + '@rollup/rollup-linux-ppc64-gnu': 4.60.0 + '@rollup/rollup-linux-ppc64-musl': 4.60.0 + '@rollup/rollup-linux-riscv64-gnu': 4.60.0 + '@rollup/rollup-linux-riscv64-musl': 4.60.0 + '@rollup/rollup-linux-s390x-gnu': 4.60.0 + '@rollup/rollup-linux-x64-gnu': 4.60.0 + '@rollup/rollup-linux-x64-musl': 4.60.0 + '@rollup/rollup-openbsd-x64': 4.60.0 + '@rollup/rollup-openharmony-arm64': 4.60.0 + '@rollup/rollup-win32-arm64-msvc': 4.60.0 + '@rollup/rollup-win32-ia32-msvc': 4.60.0 + '@rollup/rollup-win32-x64-gnu': 4.60.0 + '@rollup/rollup-win32-x64-msvc': 4.60.0 fsevents: 2.3.3 rope-sequence@1.3.4: {} - rrdom@0.1.7: - dependencies: - rrweb-snapshot: 2.0.0-alpha.4 - - rrule@2.8.1: - dependencies: - tslib: 2.8.1 - - rrweb-player@1.0.0-alpha.4: - dependencies: - '@tsconfig/svelte': 1.0.13 - rrweb: 2.0.0-alpha.4 - - rrweb-snapshot@2.0.0-alpha.17: - dependencies: - postcss: 8.5.6 - - rrweb-snapshot@2.0.0-alpha.4: {} - - rrweb@2.0.0-alpha.4: - dependencies: - '@rrweb/types': 2.0.0-alpha.16 - '@types/css-font-loading-module': 0.0.7 - '@xstate/fsm': 1.6.5 - base64-arraybuffer: 1.0.2 - fflate: 0.4.8 - mitt: 3.0.1 - rrdom: 0.1.7 - rrweb-snapshot: 2.0.0-alpha.4 - - run-async@2.4.1: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - rxjs@6.6.7: - dependencies: - tslib: 1.14.1 - rxjs@7.8.2: dependencies: tslib: 2.8.1 - safe-array-concat@1.1.2: - dependencies: - call-bind: 1.0.8 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - 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 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 @@ -19334,12 +17671,6 @@ snapshots: es-errors: 1.3.0 isarray: 2.0.5 - safe-regex-test@1.0.3: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-regex: 1.1.4 - safe-regex-test@1.1.0: dependencies: call-bound: 1.0.4 @@ -19354,10 +17685,10 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.97.2: + sass@1.99.0: dependencies: chokidar: 4.0.0 - immutable: 5.0.2 + immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.4.1 @@ -19373,25 +17704,25 @@ snapshots: schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + ajv: 6.14.0 + ajv-keywords: 3.5.2(ajv@6.14.0) schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) + ajv: 8.18.0 + ajv-formats: 2.1.1(ajv@8.18.0) + ajv-keywords: 5.1.0(ajv@8.18.0) - secure-json-parse@4.0.0: {} + secure-json-parse@4.1.0: {} - semantic-release@25.0.2(typescript@5.9.3): + semantic-release@25.0.3(typescript@5.9.3): dependencies: - '@semantic-release/commit-analyzer': 13.0.1(semantic-release@25.0.2(typescript@5.9.3)) + '@semantic-release/commit-analyzer': 13.0.1(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 12.0.2(semantic-release@25.0.2(typescript@5.9.3)) - '@semantic-release/npm': 13.1.3(semantic-release@25.0.2(typescript@5.9.3)) - '@semantic-release/release-notes-generator': 14.1.0(semantic-release@25.0.2(typescript@5.9.3)) + '@semantic-release/github': 12.0.8(semantic-release@25.0.3(typescript@5.9.3)) + '@semantic-release/npm': 13.1.5(semantic-release@25.0.3(typescript@5.9.3)) + '@semantic-release/release-notes-generator': 14.1.1(semantic-release@25.0.3(typescript@5.9.3)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.9.3) debug: 4.4.3 @@ -19412,54 +17743,26 @@ snapshots: p-reduce: 3.0.0 read-package-up: 12.0.0 resolve-from: 5.0.0 - semver: 7.7.2 - semver-diff: 5.0.0 + semver: 7.7.4 signale: 1.4.0 yargs: 18.0.0 transitivePeerDependencies: - supports-color - typescript - semver-diff@3.1.1: - dependencies: - semver: 6.3.1 - - semver-diff@5.0.0: - dependencies: - semver: 7.7.3 - semver-parser@4.1.8: {} semver-regex@4.0.5: {} semver@6.3.1: {} - semver@7.6.2: {} - - semver@7.6.3: {} - - semver@7.7.1: {} - - semver@7.7.2: {} - - semver@7.7.3: {} - - sentence-case@2.1.1: - dependencies: - no-case: 2.3.2 - upper-case-first: 1.1.2 - - seq-queue@0.0.5: {} + semver@7.7.4: {} serialize-error@8.1.0: dependencies: type-fest: 0.20.2 - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - set-cookie-parser@2.7.1: {} + set-cookie-parser@2.7.2: {} set-function-length@1.2.2: dependencies: @@ -19491,34 +17794,36 @@ snapshots: safe-buffer: 5.2.1 to-buffer: 1.2.1 - sharp@0.34.4: + sharp@0.34.5: dependencies: '@img/colour': 1.0.0 detect-libc: 2.1.2 - semver: 7.7.3 + semver: 7.7.4 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.4 - '@img/sharp-darwin-x64': 0.34.4 - '@img/sharp-libvips-darwin-arm64': 1.2.3 - '@img/sharp-libvips-darwin-x64': 1.2.3 - '@img/sharp-libvips-linux-arm': 1.2.3 - '@img/sharp-libvips-linux-arm64': 1.2.3 - '@img/sharp-libvips-linux-ppc64': 1.2.3 - '@img/sharp-libvips-linux-s390x': 1.2.3 - '@img/sharp-libvips-linux-x64': 1.2.3 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 - '@img/sharp-libvips-linuxmusl-x64': 1.2.3 - '@img/sharp-linux-arm': 0.34.4 - '@img/sharp-linux-arm64': 0.34.4 - '@img/sharp-linux-ppc64': 0.34.4 - '@img/sharp-linux-s390x': 0.34.4 - '@img/sharp-linux-x64': 0.34.4 - '@img/sharp-linuxmusl-arm64': 0.34.4 - '@img/sharp-linuxmusl-x64': 0.34.4 - '@img/sharp-wasm32': 0.34.4 - '@img/sharp-win32-arm64': 0.34.4 - '@img/sharp-win32-ia32': 0.34.4 - '@img/sharp-win32-x64': 0.34.4 + '@img/sharp-darwin-arm64': 0.34.5 + '@img/sharp-darwin-x64': 0.34.5 + '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-linux-arm': 0.34.5 + '@img/sharp-linux-arm64': 0.34.5 + '@img/sharp-linux-ppc64': 0.34.5 + '@img/sharp-linux-riscv64': 0.34.5 + '@img/sharp-linux-s390x': 0.34.5 + '@img/sharp-linux-x64': 0.34.5 + '@img/sharp-linuxmusl-arm64': 0.34.5 + '@img/sharp-linuxmusl-x64': 0.34.5 + '@img/sharp-wasm32': 0.34.5 + '@img/sharp-win32-arm64': 0.34.5 + '@img/sharp-win32-ia32': 0.34.5 + '@img/sharp-win32-x64': 0.34.5 optional: true shebang-command@2.0.0: @@ -19534,27 +17839,27 @@ snapshots: side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map: 1.0.1 side-channel@1.1.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -19585,61 +17890,12 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 - sisteransi@1.0.5: {} - skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 - slash@3.0.0: {} - smart-buffer@4.2.0: {} - snake-case@2.1.0: - dependencies: - no-case: 2.3.2 - - socket.io-adapter@2.5.5: - dependencies: - debug: 4.3.7 - ws: 8.17.1 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - socket.io-client@4.7.5: - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 - engine.io-client: 6.5.4 - socket.io-parser: 4.2.4 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - socket.io-parser@4.2.4: - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 - transitivePeerDependencies: - - supports-color - - socket.io@4.8.1: - dependencies: - accepts: 1.3.8 - base64id: 2.0.0 - cors: 2.8.5 - debug: 4.3.7 - engine.io: 6.6.2 - socket.io-adapter: 2.5.5 - socket.io-parser: 4.2.4 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 @@ -19653,19 +17909,19 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 - sonic-boom@4.2.0: + sonic-boom@4.2.1: dependencies: atomic-sleep: 1.0.0 sort-object-keys@2.0.1: {} - sort-package-json@3.5.0: + sort-package-json@3.6.0: dependencies: - detect-indent: 7.0.1 + detect-indent: 7.0.2 detect-newline: 4.0.1 git-hooks-list: 4.1.1 is-plain-obj: 4.1.0 - semver: 7.7.3 + semver: 7.7.4 sort-object-keys: 2.0.1 tinyglobby: 0.2.15 @@ -19708,7 +17964,7 @@ snapshots: sprintf-js@1.1.3: {} - sqlstring@2.3.3: {} + sql-escaper@1.3.3: {} ssh-remote-port-forward@1.0.4: dependencies: @@ -19731,7 +17987,7 @@ snapshots: statuses@2.0.1: {} - std-env@3.10.0: {} + std-env@4.0.0: {} stop-iteration-iterator@1.1.0: dependencies: @@ -19774,30 +18030,30 @@ snapshots: string.prototype.includes@2.0.1: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.24.0 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.24.0 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.3 + regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 side-channel: 1.1.0 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.24.0 string.prototype.trim@1.2.10: dependencies: @@ -19805,17 +18061,10 @@ snapshots: call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 - string.prototype.trim@1.2.9: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.7 - es-object-atoms: 1.1.1 - string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 @@ -19860,9 +18109,7 @@ snapshots: strip-json-comments@2.0.1: {} - strip-json-comments@3.1.1: {} - - strnum@2.1.0: {} + strnum@2.3.0: {} style-to-js@1.1.16: dependencies: @@ -19872,25 +18119,16 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.6(@babel/core@7.26.0)(react@19.2.3): + styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.6): dependencies: client-only: 0.0.1 - react: 19.2.3 + react: 19.2.6 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.29.0 - styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.3): + sugarss@5.0.0(postcss@8.5.8): dependencies: - client-only: 0.0.1 - react: 19.2.3 - optionalDependencies: - '@babel/core': 7.28.5 - - sugar-high@0.7.5: {} - - sugarss@5.0.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + postcss: 8.5.8 super-regex@1.0.0: dependencies: @@ -19925,22 +18163,22 @@ snapshots: deep-rename-keys: 0.2.1 xml-reader: 2.4.3 - swagger-client@3.36.0: + swagger-client@3.37.4: dependencies: '@babel/runtime-corejs3': 7.27.1 '@scarf/scarf': 1.4.0 - '@swagger-api/apidom-core': 1.0.0-rc.1 - '@swagger-api/apidom-error': 1.0.0-rc.1 - '@swagger-api/apidom-json-pointer': 1.0.0-rc.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-rc.1 - '@swagger-api/apidom-reference': 1.0.0-rc.1 + '@swagger-api/apidom-core': 1.11.0 + '@swagger-api/apidom-error': 1.11.0 + '@swagger-api/apidom-json-pointer': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.0 + '@swagger-api/apidom-ns-openapi-3-2': 1.11.0 + '@swagger-api/apidom-reference': 1.11.0 '@swaggerexpert/cookie': 2.0.2 deepmerge: 4.3.1 fast-json-patch: 3.1.1 js-yaml: 4.1.1 neotraverse: 0.6.18 node-abort-controller: 3.1.1 - node-fetch-commonjs: 3.3.2 openapi-path-templating: 2.2.1 openapi-server-url-templating: 1.3.0 ramda: 0.30.1 @@ -19948,7 +18186,7 @@ snapshots: transitivePeerDependencies: - debug - swagger-ui-react@5.31.0(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + swagger-ui-react@5.32.6(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: '@babel/runtime-corejs3': 7.27.1 '@scarf/scarf': 1.4.0 @@ -19957,31 +18195,31 @@ snapshots: classnames: 2.5.1 css.escape: 1.5.1 deep-extend: 0.6.0 - dompurify: 3.2.6 + dompurify: 3.4.3 ieee754: 1.2.1 immutable: 3.8.2 js-file-download: 0.4.12 js-yaml: 4.1.1 - lodash: 4.17.21 + lodash: 4.18.1 prop-types: 15.8.1 randexp: 0.5.3 randombytes: 2.1.0 - react: 19.2.3 - react-copy-to-clipboard: 5.1.0(react@19.2.3) - react-debounce-input: 3.3.0(react@19.2.3) - react-dom: 19.2.3(react@19.2.3) + react: 19.2.6 + react-copy-to-clipboard: 5.1.0(react@19.2.6) + react-debounce-input: 3.3.0(react@19.2.6) + react-dom: 19.2.6(react@19.2.6) react-immutable-proptypes: 2.2.0(immutable@3.8.2) - react-immutable-pure-component: 2.2.2(immutable@3.8.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react-inspector: 6.0.2(react@19.2.3) - react-redux: 9.2.0(@types/react@19.2.8)(react@19.2.3)(redux@5.0.1) - react-syntax-highlighter: 16.1.0(react@19.2.3) + react-immutable-pure-component: 2.2.2(immutable@3.8.2)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react-inspector: 6.0.2(react@19.2.6) + react-redux: 9.2.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1) + react-syntax-highlighter: 16.1.0(react@19.2.6) redux: 5.0.1 redux-immutable: 4.0.0(immutable@3.8.2) remarkable: 2.0.1 reselect: 5.1.1 serialize-error: 8.1.0 sha.js: 2.4.12 - swagger-client: 3.36.0 + swagger-client: 3.37.4 url-parse: 1.5.10 xml: 1.0.1 xml-but-prettier: 1.0.1 @@ -19990,22 +18228,13 @@ snapshots: - '@types/react' - debug - swap-case@1.1.2: - dependencies: - lower-case: 1.1.4 - upper-case: 1.1.3 - symbol-tree@3.2.4: {} - synckit@0.11.11: - dependencies: - '@pkgr/core': 0.2.9 - tabbable@6.2.0: {} tagged-tag@1.0.0: {} - tapable@2.3.0: {} + tapable@2.3.2: {} tar-fs@2.1.4: dependencies: @@ -20014,7 +18243,7 @@ snapshots: pump: 3.0.2 tar-stream: 2.2.0 - tar-fs@3.1.1: + tar-fs@3.1.2: dependencies: pump: 3.0.2 tar-stream: 3.1.7 @@ -20047,41 +18276,38 @@ snapshots: type-fest: 2.19.0 unique-string: 3.0.0 - terser-webpack-plugin@5.3.14(@swc/core@1.15.3)(webpack@5.94.0(@swc/core@1.15.3)): + terser-webpack-plugin@5.4.0(webpack@5.94.0): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.44.1 - webpack: 5.94.0(@swc/core@1.15.3) - optionalDependencies: - '@swc/core': 1.15.3 + terser: 5.46.1 + webpack: 5.94.0 - terser@5.44.1: + terser@5.46.1: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 + acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 - testcontainers@11.11.0: + testcontainers@11.14.0: dependencies: '@balena/dockerignore': 1.0.2 - '@types/dockerode': 3.3.47 + '@types/dockerode': 4.0.1 archiver: 7.0.1 async-lock: 1.4.1 byline: 5.0.0 debug: 4.4.3 - docker-compose: 1.3.0 - dockerode: 4.0.9 - get-port: 7.1.0 + docker-compose: 1.4.2 + dockerode: 4.0.10 + get-port: 7.2.0 proper-lockfile: 4.1.2 - properties-reader: 2.3.0 + properties-reader: 3.0.1 ssh-remote-port-forward: 1.0.4 - tar-fs: 3.1.1 + tar-fs: 3.1.2 tmp: 0.2.5 - undici: 7.18.2 + undici: 7.25.0 transitivePeerDependencies: - bare-buffer - supports-color @@ -20100,7 +18326,7 @@ snapshots: dependencies: any-promise: 1.3.0 - thread-stream@3.1.0: + thread-stream@4.0.0: dependencies: real-require: 0.2.0 @@ -20109,41 +18335,24 @@ snapshots: readable-stream: 2.3.8 xtend: 4.0.2 - through@2.3.8: {} - time-span@5.1.0: dependencies: convert-hrtime: 5.0.0 + timezones-ical-library@2.2.0: {} + tiny-invariant@1.3.3: {} tinybench@2.9.0: {} - tinycolor2@1.6.0: {} - tinyexec@1.0.2: {} - tinyglobby@0.2.14: - dependencies: - fdir: 6.4.4(picomatch@4.0.3) - picomatch: 4.0.3 - tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 - tinygradient@1.1.5: - dependencies: - '@types/tinycolor2': 1.4.6 - tinycolor2: 1.6.0 - - tinyrainbow@3.0.3: {} - - title-case@2.1.1: - dependencies: - no-case: 2.3.2 - upper-case: 1.1.3 + tinyrainbow@3.1.0: {} tldts-core@6.1.69: {} @@ -20181,7 +18390,7 @@ snapshots: dependencies: tldts: 6.1.69 - tough-cookie@6.0.0: + tough-cookie@6.0.1: dependencies: tldts: 7.0.12 @@ -20221,43 +18430,23 @@ snapshots: trough@2.2.0: {} - trpc-to-openapi@3.1.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.8.1(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.2.1))(zod@4.2.1): + trpc-to-openapi@3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.17.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.4.3))(zod@4.4.3): dependencies: - '@trpc/server': 11.8.1(typescript@5.9.3) + '@trpc/server': 11.17.0(typescript@5.9.3) co-body: 6.2.0 h3: 1.15.1 openapi3-ts: 4.4.0 - zod: 4.2.1 - zod-openapi: 5.3.0(zod@4.2.1) + zod: 4.4.3 + zod-openapi: 5.3.0(zod@4.4.3) optionalDependencies: '@rollup/rollup-linux-x64-gnu': 4.6.1 - ts-api-utils@2.4.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 ts-mixer@6.0.4: {} - ts-node@10.9.2(@swc/core@1.15.3)(@types/node@24.10.7)(typescript@5.9.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 24.10.7 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.9.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.15.3 - ts-toolbelt@9.6.0: {} tsconfck@3.1.3(typescript@5.9.3): @@ -20271,18 +18460,14 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdav@2.1.6: + tsdav@2.2.2: dependencies: base-64: 1.0.0 - cross-fetch: 4.1.0 debug: 4.4.3 xml-js: 1.6.11 transitivePeerDependencies: - - encoding - supports-color - tslib@1.14.1: {} - tslib@2.8.1: {} tsscmp@1.0.6: {} @@ -20290,17 +18475,16 @@ snapshots: tsx@4.20.4: dependencies: esbuild: 0.25.12 - get-tsconfig: 4.8.1 + get-tsconfig: 4.13.6 optionalDependencies: fsevents: 2.3.3 - tsx@4.20.5: + tsx@4.21.0: dependencies: - esbuild: 0.25.12 - get-tsconfig: 4.13.0 + esbuild: 0.27.7 + get-tsconfig: 4.13.6 optionalDependencies: fsevents: 2.3.3 - optional: true tunnel-agent@0.6.0: dependencies: @@ -20308,32 +18492,14 @@ snapshots: tunnel@0.0.6: {} - turbo-darwin-64@2.7.3: - optional: true - - turbo-darwin-arm64@2.7.3: - optional: true - - turbo-linux-64@2.7.3: - optional: true - - turbo-linux-arm64@2.7.3: - optional: true - - turbo-windows-64@2.7.3: - optional: true - - turbo-windows-arm64@2.7.3: - optional: true - - turbo@2.7.3: + turbo@2.9.14: optionalDependencies: - turbo-darwin-64: 2.7.3 - turbo-darwin-arm64: 2.7.3 - turbo-linux-64: 2.7.3 - turbo-linux-arm64: 2.7.3 - turbo-windows-64: 2.7.3 - turbo-windows-arm64: 2.7.3 + '@turbo/darwin-64': 2.9.14 + '@turbo/darwin-arm64': 2.9.14 + '@turbo/linux-64': 2.9.14 + '@turbo/linux-arm64': 2.9.14 + '@turbo/windows-64': 2.9.14 + '@turbo/windows-arm64': 2.9.14 tweetnacl@0.14.5: {} @@ -20343,19 +18509,13 @@ snapshots: type-fest@0.20.2: {} - type-fest@0.21.3: {} - type-fest@1.4.0: {} type-fest@2.19.0: {} type-fest@4.41.0: {} - type-fest@5.1.0: - dependencies: - tagged-tag: 1.0.0 - - type-fest@5.2.0: + type-fest@5.6.0: dependencies: tagged-tag: 1.0.0 @@ -20364,108 +18524,63 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typed-array-buffer@1.0.2: - dependencies: - call-bind: 1.0.8 - es-errors: 1.3.0 - is-typed-array: 1.1.13 - typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 - typed-array-byte-length@1.0.1: - 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.13 - typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 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 - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - 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 + for-each: 0.3.5 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.8 - for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - 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 + for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 reflect.getprototypeof: 1.0.9 - typedarray-to-buffer@3.1.5: - dependencies: - is-typedarray: 1.0.0 - types-ramda@0.30.1: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.52.0(eslint@9.39.2)(typescript@5.9.3): + typescript-eslint@8.58.2(eslint@10.4.0)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) - eslint: 9.39.2 + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.4.0)(typescript@5.9.3))(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.2(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.4.0)(typescript@5.9.3) + eslint: 10.4.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color typescript@5.9.3: {} - uc.micro@2.1.0: {} - - ufo@1.6.1: {} + ufo@1.6.4: {} uglify-js@3.19.3: optional: true uint8array-extras@1.5.0: {} - unbox-primitive@1.0.2: - dependencies: - call-bind: 1.0.8 - has-bigints: 1.0.2 - has-symbols: 1.1.0 - which-boxed-primitive: 1.0.2 - unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -20479,11 +18594,11 @@ snapshots: undici-types@7.16.0: {} - undici@5.29.0: - dependencies: - '@fastify/busboy': 2.1.1 + undici@6.23.0: {} - undici@7.18.2: {} + undici@7.24.6: {} + + undici@7.25.0: {} unicode-emoji-modifier-base@1.0.0: {} @@ -20501,10 +18616,6 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unique-string@2.0.0: - dependencies: - crypto-random-string: 2.0.0 - unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 @@ -20540,65 +18651,14 @@ snapshots: unpipe@1.0.0: {} - unplugin@1.14.1(webpack-sources@3.3.3): - dependencies: - acorn: 8.14.0 - webpack-virtual-modules: 0.6.2 - optionalDependencies: - webpack-sources: 3.3.3 - unraw@3.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.2): + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: - browserslist: 4.24.2 + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 - update-browserslist-db@1.1.3(browserslist@4.24.4): - dependencies: - browserslist: 4.24.4 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-browserslist-db@1.1.4(browserslist@4.28.0): - dependencies: - browserslist: 4.28.0 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-check@1.5.4: - dependencies: - registry-auth-token: 3.3.2 - registry-url: 3.1.0 - - update-notifier-cjs@5.1.6: - dependencies: - boxen: 5.1.2 - chalk: 4.1.2 - configstore: 5.0.1 - has-yarn: 2.1.0 - import-lazy: 2.1.0 - is-ci: 2.0.0 - is-installed-globally: 0.4.0 - is-npm: 5.0.0 - is-yarn-global: 0.3.0 - isomorphic-fetch: 3.0.0 - pupa: 2.1.1 - registry-auth-token: 5.0.2 - registry-url: 5.1.0 - semver: 7.7.1 - semver-diff: 3.1.1 - xdg-basedir: 4.0.0 - transitivePeerDependencies: - - encoding - - upper-case-first@1.1.2: - dependencies: - upper-case: 1.1.3 - - upper-case@1.1.3: {} - uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -20612,74 +18672,65 @@ snapshots: url-toolkit@2.2.5: {} - use-callback-ref@1.3.3(@types/react@19.2.8)(react@19.2.3): + use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.6): dependencies: - react: 19.2.3 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 - use-composed-ref@1.3.0(react@19.2.3): + use-composed-ref@1.3.0(react@19.2.6): dependencies: - react: 19.2.3 + react: 19.2.6 - use-deep-compare-effect@1.8.1(react@19.2.3): + use-deep-compare-effect@1.8.1(react@19.2.6): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 dequal: 2.0.3 - react: 19.2.3 + react: 19.2.6 - use-intl@4.7.0(react@19.2.3): + use-intl@4.12.0(react@19.2.6): dependencies: - '@formatjs/fast-memoize': 2.2.1 + '@formatjs/fast-memoize': 3.1.0 '@schummar/icu-type-parser': 1.21.5 - intl-messageformat: 10.7.1 - react: 19.2.3 + icu-minify: 4.12.0 + intl-messageformat: 11.1.1 + react: 19.2.6 - use-isomorphic-layout-effect@1.1.2(@types/react@19.2.8)(react@19.2.3): + use-isomorphic-layout-effect@1.1.2(@types/react@19.2.14)(react@19.2.6): dependencies: - react: 19.2.3 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 - use-latest@1.2.1(@types/react@19.2.8)(react@19.2.3): + use-latest@1.2.1(@types/react@19.2.14)(react@19.2.6): dependencies: - react: 19.2.3 - use-isomorphic-layout-effect: 1.1.2(@types/react@19.2.8)(react@19.2.3) + react: 19.2.6 + use-isomorphic-layout-effect: 1.1.2(@types/react@19.2.14)(react@19.2.6) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 - use-sidecar@1.1.3(@types/react@19.2.8)(react@19.2.3): + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.6): dependencies: detect-node-es: 1.1.0 - react: 19.2.3 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.14 - use-sync-external-store@1.4.0(react@19.2.3): + use-sync-external-store@1.4.0(react@19.2.6): dependencies: - react: 19.2.3 + react: 19.2.6 util-deprecate@1.0.2: {} uuid@10.0.0: {} - uuid@8.3.2: {} - - v8-compile-cache-lib@3.0.1: {} - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validate-npm-package-name@5.0.0: - dependencies: - builtins: 5.1.0 - - vary@1.1.2: {} - vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 @@ -20690,7 +18741,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - victory-vendor@36.9.2: + victory-vendor@37.3.6: dependencies: '@types/d3-array': 3.2.1 '@types/d3-ease': 3.0.2 @@ -20707,10 +18758,10 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - video.js@8.23.4: + video.js@8.23.7: dependencies: - '@babel/runtime': 7.28.4 - '@videojs/http-streaming': 3.17.2(video.js@8.23.4) + '@babel/runtime': 7.29.2 + '@videojs/http-streaming': 3.17.4(video.js@8.23.7) '@videojs/vhs-utils': 4.1.1 '@videojs/xhr': 2.7.0 aes-decrypter: 4.0.2 @@ -20718,14 +18769,14 @@ snapshots: m3u8-parser: 7.2.0 mpd-parser: 1.3.1 mux.js: 7.1.0 - videojs-contrib-quality-levels: 4.1.0(video.js@8.23.4) + videojs-contrib-quality-levels: 4.1.0(video.js@8.23.7) videojs-font: 4.2.0 videojs-vtt.js: 0.15.5 - videojs-contrib-quality-levels@4.1.0(video.js@8.23.4): + videojs-contrib-quality-levels@4.1.0(video.js@8.23.7): dependencies: global: 4.4.0 - video.js: 8.23.4 + video.js: 8.23.7 videojs-font@4.2.0: {} @@ -20733,72 +18784,62 @@ snapshots: dependencies: global: 4.4.0 - vite-tsconfig-paths@6.0.4(typescript@5.9.3)(vite@7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.9.3) - optionalDependencies: - vite: 7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1): + vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.48.1 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.8 + rollup: 4.60.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.10.7 + '@types/node': 24.12.4 fsevents: 2.3.3 - sass: 1.97.2 - sugarss: 5.0.0(postcss@8.5.6) - terser: 5.44.1 - tsx: 4.20.5 - yaml: 2.5.1 + sass: 1.99.0 + sugarss: 5.0.0(postcss@8.5.8) + terser: 5.46.1 + tsx: 4.21.0 + yaml: 2.9.0 - vitest@4.0.16(@types/node@24.10.7)(@vitest/ui@4.0.16)(jsdom@27.4.0(postcss@8.5.6))(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1): + vitest@4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(@vitest/ui@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.0.16 - '@vitest/mocker': 4.0.16(vite@7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1)) - '@vitest/pretty-format': 4.0.16 - '@vitest/runner': 4.0.16 - '@vitest/snapshot': 4.0.16 - '@vitest/spy': 4.0.16 - '@vitest/utils': 4.0.16 - es-module-lexer: 1.7.0 - expect-type: 1.2.2 + '@vitest/expect': 4.1.6 + '@vitest/mocker': 4.1.6(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.6 + '@vitest/runner': 4.1.6 + '@vitest/snapshot': 4.1.6 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 + es-module-lexer: 2.0.0 + expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 + picomatch: 4.0.4 + std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.2 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 - vite: 7.1.12(@types/node@24.10.7)(sass@1.97.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.44.1)(tsx@4.20.5)(yaml@2.5.1) + tinyrainbow: 3.1.0 + vite: 7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.10.7 - '@vitest/ui': 4.0.16(vitest@4.0.16) - jsdom: 27.4.0(postcss@8.5.6) + '@types/node': 24.12.4 + '@vitest/coverage-v8': 4.1.6(vitest@4.1.6) + '@vitest/ui': 4.1.6(vitest@4.1.6) + jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: - - jiti - - less - - lightningcss - msw - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml w3c-keyname@2.2.8: {} @@ -20806,39 +18847,31 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - watchpack@2.4.4: + watchpack@2.5.1: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - - web-streams-polyfill@3.3.3: {} - web-tree-sitter@0.24.5: optional: true webidl-conversions@3.0.1: {} - webidl-conversions@8.0.0: {} + webidl-conversions@8.0.1: {} - webpack-sources@3.3.3: {} + webpack-sources@3.3.4: {} - webpack-virtual-modules@0.6.2: {} - - webpack@5.94.0(@swc/core@1.15.3): + webpack@5.94.0: dependencies: '@types/estree': 1.0.8 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) - browserslist: 4.28.0 + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) + browserslist: 4.28.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 + enhanced-resolve: 5.20.1 es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -20849,37 +18882,30 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.3.0 - tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.3)(webpack@5.94.0(@swc/core@1.15.3)) - watchpack: 2.4.4 - webpack-sources: 3.3.3 + tapable: 2.3.2 + terser-webpack-plugin: 5.4.0(webpack@5.94.0) + watchpack: 2.5.1 + webpack-sources: 3.3.4 transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - whatwg-fetch@3.6.20: {} + whatwg-mimetype@5.0.0: {} - whatwg-mimetype@4.0.0: {} - - whatwg-url@15.1.0: + whatwg-url@16.0.1(@noble/hashes@2.0.1): dependencies: + '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) tr46: 6.0.0 - webidl-conversions: 8.0.0 + webidl-conversions: 8.0.1 + transitivePeerDependencies: + - '@noble/hashes' whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.0.2: - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.1.1 - is-symbol: 1.0.4 - which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -20898,11 +18924,11 @@ snapshots: is-finalizationregistry: 1.1.1 is-generator-function: 1.0.10 is-regex: 1.2.1 - is-weakref: 1.1.0 + is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 which-collection@1.0.2: dependencies: @@ -20911,23 +18937,6 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.3 - which-typed-array@1.1.15: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - 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.4 - for-each: 0.3.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 @@ -20944,7 +18953,7 @@ snapshots: which@4.0.0: dependencies: - isexe: 3.1.1 + isexe: 3.1.5 optional: true why-is-node-running@2.3.0: @@ -20952,10 +18961,6 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - widest-line@3.1.0: - dependencies: - string-width: 4.2.3 - winston-transport@4.9.0: dependencies: logform: 2.7.0 @@ -20980,6 +18985,12 @@ snapshots: wordwrap@1.0.0: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -21000,21 +19011,10 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@3.0.3: - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - - ws@8.17.1: {} - - ws@8.19.0: {} + ws@8.20.1: {} xcase@2.0.1: {} - xdg-basedir@4.0.0: {} - xml-but-prettier@1.0.1: dependencies: repeat-string: 1.6.1 @@ -21029,6 +19029,8 @@ snapshots: xml-name-validator@5.0.0: {} + xml-naming@0.1.0: {} + xml-reader@2.4.3: dependencies: eventemitter3: 2.0.3 @@ -21045,17 +19047,13 @@ snapshots: xmlchars@2.2.0: {} - xmlhttprequest-ssl@2.0.0: {} - xtend@4.0.2: {} - xycolors@0.1.2: {} - y18n@5.0.8: {} yallist@3.1.1: {} - yaml@2.5.1: {} + yaml@2.9.0: {} yargs-parser@20.2.9: {} @@ -21092,10 +19090,10 @@ snapshots: y18n: 5.0.8 yargs-parser: 22.0.0 - yn@3.1.1: {} - yocto-queue@0.1.0: {} + yoctocolors-cjs@2.1.3: {} + yoctocolors@2.1.1: {} zenscroll@4.0.2: {} @@ -21106,23 +19104,23 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 - zod-form-data@3.0.1(zod@4.2.1): + zod-form-data@3.0.1(zod@4.4.3): dependencies: '@rvf/set-get': 7.0.1 - zod: 4.2.1 + zod: 4.4.3 - zod-openapi@5.3.0(zod@4.2.1): + zod-openapi@5.3.0(zod@4.4.3): dependencies: - zod: 4.2.1 + zod: 4.4.3 - zod-validation-error@4.0.2(zod@4.2.1): + zod-validation-error@4.0.2(zod@4.4.3): dependencies: - zod: 4.2.1 + zod: 4.4.3 - zod-validation-error@5.0.0(zod@4.2.1): + zod-validation-error@5.0.0(zod@4.4.3): dependencies: - zod: 4.2.1 + zod: 4.4.3 - zod@4.2.1: {} + zod@4.4.3: {} zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 8a392051e..b624ee60b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,7 +2,196 @@ packages: - apps/* - packages/* - tooling/* -minimumReleaseAge: 4320 # Only download deps if they are at least 3 days old (in minutes) +catalog: + "@auth/core": ^0.41.2 + "@auth/drizzle-adapter": ^1.11.2 + "@ctrl/deluge": ^8.0.0 + "@ctrl/qbittorrent": ^9.12.1 + "@ctrl/transmission": ^7.4.0 + "@dnd-kit/core": ^6.3.1 + "@dnd-kit/modifiers": ^9.0.0 + "@dnd-kit/sortable": ^10.0.0 + "@dnd-kit/utilities": ^3.2.2 + "@drizzle-team/brocli": ^0.12.0 + "@eslint/js": 10.0.1 + "@extractus/feed-extractor": 7.2.1 + "@gitbeaker/rest": ^43.8.0 + "@homarr/gridstack": ^1.12.0 + "@homarr/node-unifi": ^2.6.0 + "@ianvs/prettier-plugin-sort-imports": ^4.7.1 + "@immich/sdk": ^2.7.5 + "@jellyfin/sdk": ^0.13.0 + "@kubernetes/client-node": ^1.4.0 + "@mantine/charts": ^8.3.18 + "@mantine/colors-generator": ^8.3.18 + "@mantine/core": ^8.3.18 + "@mantine/dates": ^8.3.18 + "@mantine/dropzone": ^8.3.18 + "@mantine/form": ^8.3.18 + "@mantine/hooks": ^8.3.18 + "@mantine/modals": ^8.3.18 + "@mantine/notifications": ^8.3.18 + "@mantine/spotlight": ^8.3.18 + "@mantine/tiptap": ^8.3.18 + "@next/eslint-plugin-next": 16.2.6 + "@octokit/auth-app": ^8.2.0 + "@paralleldrive/cuid2": ^3.3.0 + "@playwright/test": ^1.60.0 + "@semantic-release/changelog": ^6.0.3 + "@semantic-release/commit-analyzer": ^13.0.1 + "@semantic-release/git": ^10.0.1 + "@semantic-release/github": ^12.0.8 + "@semantic-release/npm": ^13.1.5 + "@semantic-release/release-notes-generator": ^14.1.1 + "@t3-oss/env-nextjs": ^0.13.11 + "@tabler/icons-react": ^3.44.0 + "@tanstack/react-query": ^5.100.10 + "@tanstack/react-query-devtools": ^5.100.10 + "@tanstack/react-query-next-experimental": ^5.100.10 + "@testcontainers/mysql": ^11.14.0 + "@testcontainers/postgresql": ^11.14.0 + "@testcontainers/redis": ^11.14.0 + "@tiptap/extension-color": 3.23.4 + "@tiptap/extension-highlight": 3.23.4 + "@tiptap/extension-image": 3.23.4 + "@tiptap/extension-link": ^3.23.4 + "@tiptap/extension-placeholder": ^3.23.4 + "@tiptap/extension-table": 3.23.4 + "@tiptap/extension-table-cell": 3.23.4 + "@tiptap/extension-table-header": 3.23.4 + "@tiptap/extension-table-row": 3.23.4 + "@tiptap/extension-task-item": 3.23.4 + "@tiptap/extension-task-list": 3.23.4 + "@tiptap/extension-text-align": 3.23.4 + "@tiptap/extension-text-style": 3.23.4 + "@tiptap/extension-underline": 3.23.4 + "@tiptap/react": ^3.23.4 + "@tiptap/starter-kit": ^3.23.4 + "@trpc/client": ^11.17.0 + "@trpc/next": ^11.17.0 + "@trpc/react-query": ^11.17.0 + "@trpc/server": ^11.17.0 + "@trpc/tanstack-react-query": ^11.17.0 + "@turbo/gen": ^2.9.14 + "@types/adm-zip": 0.5.8 + "@types/bcrypt": 6.0.0 + "@types/better-sqlite3": 7.6.13 + "@types/chroma-js": 3.1.2 + "@types/cookies": 0.9.2 + "@types/crypto-js": ^4.2.2 + "@types/css-modules": ^1.0.5 + "@types/dockerode": ^4.0.1 + "@types/node": ^24.12.4 + "@types/node-unifi": ^2.5.1 + "@types/pg": ^8.20.0 + "@types/prismjs": ^1.26.6 + "@types/react": 19.2.14 + "@types/react-dom": 19.2.3 + "@types/swagger-ui-react": ^5.18.0 + "@types/video.js": ^7.3.58 + "@types/ws": ^8.18.1 + "@types/xml2js": ^0.4.14 + "@umami/node": ^0.4.0 + "@vitejs/plugin-react": ^5.2.0 + "@vitest/coverage-v8": ^4.1.6 + "@vitest/ui": ^4.1.6 + "@xterm/addon-canvas": ^0.7.0 + "@xterm/addon-fit": 0.11.0 + "@xterm/xterm": ^6.0.0 + adm-zip: 0.5.17 + babel-plugin-react-compiler: ^1.0.0 + bcrypt: ^6.0.0 + better-sqlite3: ^12.10.0 + chroma-js: ^3.2.0 + clsx: ^2.1.1 + concurrently: ^9.2.1 + conventional-changelog-conventionalcommits: ^9.3.1 + cookie: 1.1.1 + cookies: ^0.9.1 + croner: 10.0.1 + cross-env: ^10.1.0 + crypto-js: ^4.2.0 + dayjs: ^1.11.20 + deepmerge: 4.3.1 + dns-caching: ^0.2.9 + dockerode: ^5.0.0 + dotenv: ^17.4.2 + dotenv-cli: ^11.0.0 + drizzle-kit: ^0.31.10 + drizzle-orm: ^0.45.2 + drizzle-zod: ^0.8.3 + esbuild: ^0.28.0 + eslint: ^10.4.0 + eslint-config-prettier: ^10.1.8 + eslint-config-turbo: ^2.9.14 + eslint-plugin-import: ^2.32.0 + eslint-plugin-jsx-a11y: ^6.10.2 + eslint-plugin-react: ^7.37.5 + eslint-plugin-react-hooks: ^6.1.1 + fast-xml-parser: ^5.8.0 + fastify: ^5.8.5 + flag-icons: ^7.5.0 + glob: ^13.0.6 + ical.js: ^2.2.1 + ioredis: 5.10.1 + isomorphic-dompurify: ^3.13.0 + jotai: ^2.20.0 + jsdom: ^29.1.1 + json5: ^2.2.3 + ldapts: 8.1.7 + lodash.clonedeep: ^4.5.0 + mantine-form-zod-resolver: ^1.3.0 + mantine-react-table: 2.0.0-beta.9 + maria2: ^0.4.1 + mysql2: 3.22.3 + next: 16.2.6 + next-auth: 5.0.0-beta.31 + next-intl: 4.12.0 + node-loader: ^2.1.0 + octokit: ^5.0.5 + pg: ^8.20.0 + postcss-preset-mantine: ^1.18.0 + prettier: ^3.8.3 + prettier-plugin-packagejson: ^3.0.2 + prismjs: ^1.30.0 + proxmox-api: 1.1.1 + react: 19.2.6 + react-dom: 19.2.6 + react-error-boundary: ^6.1.1 + react-markdown: ^10.1.0 + react-quill-new: ^3.8.3 + react-simple-code-editor: ^0.14.1 + recharts: ^3.8.1 + sass: ^1.99.0 + semantic-release: ^25.0.3 + semver-parser: ^4.1.8 + superjson: 2.2.6 + svgson: ^5.3.1 + swagger-ui-react: ^5.32.6 + testcontainers: ^11.14.0 + timezones-ical-library: ^2.2.0 + trpc-to-openapi: ^3.2.0 + tsdav: ^2.2.2 + tsx: 4.20.4 + turbo: ^2.9.14 + typescript: ^5.9.3 + typescript-eslint: ^8.58.2 + undici: 7.24.6 + use-deep-compare-effect: ^1.8.1 + video.js: ^8.23.7 + vite-tsconfig-paths: ^6.1.1 + vitest: ^4.1.6 + winston: 3.19.0 + ws: ^8.20.1 + xml2js: ^0.6.2 + yaml: 2.9.0 + zod: ^4.4.3 + zod-form-data: ^3.0.1 + zod-validation-error: ^5.0.0 +catalogMode: strict +minimumReleaseAge: 4320 minimumReleaseAgeExclude: - next - "@next/*" + # Renovate security update: turbo@2.9.14 + - turbo@2.9.14 diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh index c362eac3a..f4d7c9fa4 100644 --- a/scripts/entrypoint.sh +++ b/scripts/entrypoint.sh @@ -18,6 +18,19 @@ if [ "${PUID}" != "0" ] || [ "${PGID}" != "0" ]; then echo "Changing owner to $PUID:$PGID, done." fi +# support _FILE Suffix for environment variables +for file_var in $(env | cut -d '=' -f 1 | grep "_FILE$"); do + target_var=$(echo "$file_var" | cut -d'=' -f1 | sed 's/_FILE//') + file_path=$(printenv "$file_var") + + if [ -f "$file_path" ]; then + export "$target_var"=$(cat "$file_path" | tr -d '\n\r') + echo "Info: Loaded secret for $target_var from $file_path" + else + echo "Warning: Secret file $file_path not found for $target_var" + fi +done + if [ "${PUID}" != "0" ]; then exec su-exec $PUID:$PGID "$@" else diff --git a/scripts/run.sh b/scripts/run.sh index 78659a04a..a9c13a8e1 100644 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -16,8 +16,6 @@ fi # Auth secret is generated every time the container starts as it is required, but not used because we don't need JWTs or Mail hashing export AUTH_SECRET=$(openssl rand -base64 32) -# Cron job API key is generated every time the container starts as it is required for communication between nextjs-api and tasks-api -export CRON_JOB_API_KEY=$(openssl rand -base64 32) # Start nginx proxy # 1. Replace the HOSTNAME in the nginx template file @@ -38,21 +36,13 @@ else REDIS_PID=$! fi - - -node apps/tasks/tasks.cjs & -TASKS_PID=$! - -node apps/websocket/wssServer.cjs & -WSS_PID=$! - node apps/nextjs/server.js & NEXTJS_PID=$! # Function to handle SIGTERM and shut down services terminate() { echo "Received SIGTERM. Shutting down..." - kill -TERM $NGINX_PID $TASKS_PID $WSS_PID $NEXTJS_PID 2>/dev/null + kill -TERM $NGINX_PID $NEXTJS_PID 2>/dev/null wait # kill redis-server last because of logging of other services and only if $REDIS_PID is set if [ -n "$REDIS_PID" ]; then diff --git a/scripts/update-contributors.mjs b/scripts/update-contributors.mjs index 6bf17a250..2c7fb1054 100644 --- a/scripts/update-contributors.mjs +++ b/scripts/update-contributors.mjs @@ -1,14 +1,12 @@ import fs from "fs/promises"; const sources = { - crowdin: [ - { projectId: 534422 }, - { projectId: 742587 }, - ], + crowdin: [{ projectId: 534422 }, { projectId: 742587 }], github: [ { slug: "ajnart", repository: "homarr" }, { slug: "homarr-labs", repository: "homarr" }, ], + opencollective: [{ slug: "homarr" }], }; const env = { @@ -47,11 +45,55 @@ const fetchCrowdinMembers = async (projectId) => { }; const response = await fetch(url, options); - const data = await response.json(); + const result = await response.json(); - return data.data.flatMap((data) => data.data).map(contributor => ({ - username: contributor.username, - avatarUrl: contributor.avatarUrl, + return result.data + .flatMap(({ data }) => data) + .map((contributor) => ({ + username: contributor.username, + avatarUrl: contributor.avatarUrl, + })); +}; + +const fetchOpenCollectiveContributors = async (slug) => { + const query = ` + query($slug: String!) { + account(slug: $slug) { + ... on Organization { + members(role: [BACKER]) { + nodes { + role + account { + id + name + slug + imageUrl + } + } + } + } + } + } + `; + + const response = await fetch("https://api.opencollective.com/graphql/v2", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + query, + variables: { slug }, + }), + }); + + const result = await response.json(); + const members = result.data?.account?.members?.nodes || []; + return members.map((member) => ({ + id: member.account.id, + name: member.account.name, + slug: member.account.slug, + imageUrl: member.account.imageUrl, })); }; @@ -61,6 +103,7 @@ const distinctBy = (callback) => (value, index, self) => { const githubContributors = []; const crowdinContributors = []; +const opencollectiveContributors = []; for (const { repository, slug } of sources.github) { githubContributors.push(...(await fetchGithubContributors(slug, repository))); @@ -77,3 +120,14 @@ for (const { projectId } of sources.crowdin) { } const distinctCrowdinContributors = crowdinContributors.filter(distinctBy((contributor) => contributor.username)); await fs.writeFile("./static-data/translators.json", JSON.stringify(distinctCrowdinContributors)); + +for (const { slug } of sources.opencollective) { + opencollectiveContributors.push(...(await fetchOpenCollectiveContributors(slug))); +} +const distinctOpenCollectiveContributors = opencollectiveContributors.filter( + distinctBy((contributor) => contributor.slug), +); +await fs.writeFile( + "./static-data/opencollective-contributors.json", + JSON.stringify(distinctOpenCollectiveContributors), +); diff --git a/static-data/contributors.json b/static-data/contributors.json index cc863d9e1..ca292cd5f 100644 --- a/static-data/contributors.json +++ b/static-data/contributors.json @@ -1 +1 @@ -[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"tancak","avatar_url":"https://avatars.githubusercontent.com/u/11760749?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"alotlikebeans","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"bo3bdo","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"generalmat82","avatar_url":"https://avatars.githubusercontent.com/u/110256073?v=4"},{"login":"CrazyWolf13","avatar_url":"https://avatars.githubusercontent.com/u/96661824?v=4"},{"login":"noahcroghan","avatar_url":"https://avatars.githubusercontent.com/u/27422774?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"mairas","avatar_url":"https://avatars.githubusercontent.com/u/407010?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"KartulUdus","avatar_url":"https://avatars.githubusercontent.com/u/23346150?v=4"},{"login":"DZ945brH","avatar_url":"https://avatars.githubusercontent.com/u/42635243?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"AartSchinkel","avatar_url":"https://avatars.githubusercontent.com/u/189675191?v=4"}] \ No newline at end of file +[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"alotlikebeans","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"bo3bdo","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"mvanhorn","avatar_url":"https://avatars.githubusercontent.com/u/455140?v=4"},{"login":"SergioChan","avatar_url":"https://avatars.githubusercontent.com/u/10103766?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"kylegrieder","avatar_url":"https://avatars.githubusercontent.com/u/25424229?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"mairas","avatar_url":"https://avatars.githubusercontent.com/u/407010?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"noahcroghan","avatar_url":"https://avatars.githubusercontent.com/u/27422774?v=4"},{"login":"ohmzi","avatar_url":"https://avatars.githubusercontent.com/u/6551272?v=4"},{"login":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?v=4"},{"login":"saschabuehrle","avatar_url":"https://avatars.githubusercontent.com/u/47737812?v=4"},{"login":"StrandedTurtle","avatar_url":"https://avatars.githubusercontent.com/u/132835255?v=4"},{"login":"CrazyWolf13","avatar_url":"https://avatars.githubusercontent.com/u/96661824?v=4"},{"login":"generalmat82","avatar_url":"https://avatars.githubusercontent.com/u/110256073?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"sharpsalat","avatar_url":"https://avatars.githubusercontent.com/u/15666932?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"AartSchinkel","avatar_url":"https://avatars.githubusercontent.com/u/189675191?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"ashtonbatty","avatar_url":"https://avatars.githubusercontent.com/u/230635?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"cethien","avatar_url":"https://avatars.githubusercontent.com/u/60463918?v=4"},{"login":"DZ945brH","avatar_url":"https://avatars.githubusercontent.com/u/42635243?v=4"},{"login":"dgshue","avatar_url":"https://avatars.githubusercontent.com/u/12952156?v=4"},{"login":"KartulUdus","avatar_url":"https://avatars.githubusercontent.com/u/23346150?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"febrile42","avatar_url":"https://avatars.githubusercontent.com/u/14597122?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"KelianB","avatar_url":"https://avatars.githubusercontent.com/u/11216155?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"}] \ No newline at end of file diff --git a/static-data/opencollective-contributors.json b/static-data/opencollective-contributors.json new file mode 100644 index 000000000..fcdf9d4da --- /dev/null +++ b/static-data/opencollective-contributors.json @@ -0,0 +1 @@ +[{"id":"zaxon793-jy8gpl0v-d89pbrkd-emwl5v04","name":"Mike","slug":"guest-5da646e8","imageUrl":"https://images.opencollective.com/guest-5da646e8/avatar.png"},{"id":"ywz9j4av-god8pgwg-db36mr35-nxklb0e7","name":"Guest","slug":"guest-554ec68f","imageUrl":"https://images.opencollective.com/guest-554ec68f/avatar.png"},{"id":"mlo94zn7-x08dpo09-xlxpewga-3vjbrky5","name":"Robert Hermann","slug":"robert-hermann","imageUrl":"https://images.opencollective.com/robert-hermann/avatar.png"},{"id":"zaxon793-jy8gpl0n-8r3pbrkd-emwl5v04","name":"Sebastian Raubuch","slug":"sebastian-raubuch","imageUrl":"https://images.opencollective.com/sebastian-raubuch/avatar.png"},{"id":"nmlo94zn-7x08dpod-ykm6ewga-3vjbrky5","name":"Didier LUTHI","slug":"didier-luthi","imageUrl":"https://images.opencollective.com/didier-luthi/avatar.png"},{"id":"vedj9wro-z3a56dgk-z3z67blg-8x4m0ykn","name":"Guest","slug":"guest-b1459a68","imageUrl":"https://images.opencollective.com/guest-b1459a68/avatar.png"},{"id":"gm9bnk80-437xqry4-8vepvzeo-ljdayw5r","name":"Mohister","slug":"mohister","imageUrl":"https://images.opencollective.com/mohister/1d8a592/avatar.png"},{"id":"vrgbk357-l4x96e70-m0apomew-a0jdyzn8","name":"sidens","slug":"sidens","imageUrl":"https://images.opencollective.com/sidens/avatar.png"},{"id":"mlo94zn7-x08dpo0d-l7epewga-3vjbrky5","name":"Chris","slug":"guest-937065bb","imageUrl":"https://images.opencollective.com/guest-937065bb/avatar.png"},{"id":"k9mbw7y4-8r3zq3ol-7zlq0ej5-lavnodgx","name":"Nick W","slug":"guest-7501840a","imageUrl":"https://images.opencollective.com/guest-7501840a/avatar.png"},{"id":"e0adkjrv-8xwm69o8-5al67z5n-4l93bgoy","name":"Jeppedy","slug":"guest-ab78e46a","imageUrl":"https://images.opencollective.com/guest-ab78e46a/avatar.png"},{"id":"a47byg9n-xozdp8xo-jgm6mjlv-03rek5w8","name":"naru","slug":"guest-02fd264a","imageUrl":"https://images.opencollective.com/guest-02fd264a/avatar.png"},{"id":"3k0exgzn-m8yj64g3-ll865wao-9r7b4dlv","name":"Jared Hocutt","slug":"jared-hocutt","imageUrl":"https://images.opencollective.com/jared-hocutt/avatar.png"},{"id":"eng0kzdy-vor4pz8l-exopbma8-37xlw95j","name":"Incognito","slug":"user-e63f4a5b","imageUrl":"https://images.opencollective.com/user-e63f4a5b/avatar.png"},{"id":"8k03reyd-5agmq50v-8vyplbwo-z7j4nxv9","name":"dazi","slug":"guest-11663a46","imageUrl":"https://images.opencollective.com/guest-11663a46/avatar.png"},{"id":"vedj9wro-z3a56dgd-zwl67blg-8x4m0ykn","name":"ZoopaMario","slug":"zoopamario","imageUrl":"https://images.opencollective.com/zoopamario/bea900d/avatar.png"},{"id":"a47byg9n-xozdp8xe-xmb6mjlv-03rek5w8","name":"FlamebergUA","slug":"guest-a59fd500","imageUrl":"https://images.opencollective.com/guest-a59fd500/avatar.png"},{"id":"8k03reyd-5agmq50y-kzoplbwo-z7j4nxv9","name":"StLCards","slug":"guest-e1de33dc","imageUrl":"https://images.opencollective.com/guest-e1de33dc/avatar.png"},{"id":"ejoxl3az-45w9pa54-dk46y870-mgkbrvdn","name":"Varadha","slug":"guest-6f68eed9","imageUrl":"https://images.opencollective.com/guest-6f68eed9/avatar.png"},{"id":"jrkx5lmn-v904qjl0-3oz68bwa-7zdygoe3","name":"Guest","slug":"guest-6da419b5","imageUrl":"https://images.opencollective.com/guest-6da419b5/avatar.png"},{"id":"mywxoz34-09rl6k3z-lmlqvenb-dj7gk85a","name":"Guest","slug":"guest-122d7e0a","imageUrl":"https://images.opencollective.com/guest-122d7e0a/avatar.png"},{"id":"3z8arxve-ymko60vm-3eaqgl5n-bj9w704d","name":"Ricardo","slug":"ricardo34","imageUrl":"https://images.opencollective.com/ricardo34/avatar.png"},{"id":"e0adkjrv-8xwm69or-reo67z5n-4l93bgoy","name":"GoM","slug":"guest-3944feab","imageUrl":"https://images.opencollective.com/guest-3944feab/avatar.png"},{"id":"gm9bnk80-437xqrnr-r5o6vzeo-ljdayw5r","name":"Brent Maxwell","slug":"brentmaxwell","imageUrl":"https://images.opencollective.com/brentmaxwell/avatar.png"},{"id":"gnxdwzj3-le5mpwzd-ll0py8rv-bko04a97","name":"Eric G","slug":"guest-478270f1","imageUrl":"https://images.opencollective.com/guest-478270f1/avatar.png"},{"id":"v349mrwg-z75lpyjo-ez8pa08d-jeybknox","name":"ninja","slug":"guest-0bb6ba36","imageUrl":"https://images.opencollective.com/guest-0bb6ba36/avatar.png"},{"id":"ywz9j4av-god8pgw0-53y6mr35-nxklb0e7","name":"s11","slug":"guest-6e9a2588","imageUrl":"https://images.opencollective.com/guest-6e9a2588/avatar.png"},{"id":"mlo94zn7-x08dpo30-v73pewga-3vjbrky5","name":"Incognito","slug":"user-cbad11af","imageUrl":"https://images.opencollective.com/user-cbad11af/avatar.png"},{"id":"v349mrwg-z75lpy7l-yzgpa08d-jeybknox","name":"Ronald Simmons","slug":"ronald-simmons","imageUrl":"https://images.opencollective.com/ronald-simmons/avatar.png"},{"id":"7ywz9j4a-vgod8pgl-me9qmr35-nxklb0e7","name":"Joel","slug":"guest-3376ab02","imageUrl":"https://images.opencollective.com/guest-3376ab02/avatar.png"},{"id":"v349mrwg-z75lpyjw-kxzpa08d-jeybknox","name":"Gokay Yamankurt","slug":"gokay-yamankurt","imageUrl":"https://images.opencollective.com/gokay-yamankurt/avatar.png"},{"id":"v349mrwg-z75lpyjv-59rpa08d-jeybknox","name":"Rhiz3K","slug":"rhiz3k","imageUrl":"https://images.opencollective.com/rhiz3k/7287acd/avatar.png"},{"id":"8k03reyd-5agmq5x7-77gplbwo-z7j4nxv9","name":"vukie","slug":"guest-40aabe13","imageUrl":"https://images.opencollective.com/guest-40aabe13/avatar.png"},{"id":"a47byg9n-xozdp84a-rmvqmjlv-03rek5w8","name":"Guest","slug":"guest-2fe979fa","imageUrl":"https://images.opencollective.com/guest-2fe979fa/avatar.png"},{"id":"rxg0j35l-zkwm6vgm-k3x6voe9-8n47daby","name":"AngryPig","slug":"guest-b9e8a062","imageUrl":"https://images.opencollective.com/guest-b9e8a062/avatar.png"}] \ No newline at end of file diff --git a/static-data/translators.json b/static-data/translators.json index 83fbbcf8f..acb321d6e 100644 --- a/static-data/translators.json +++ b/static-data/translators.json @@ -1 +1 @@ -[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/249b02e3368752cb175446082015737c_default.png"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"vittoriosoccorso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16498805/medium/17086b2f1981f734edd1572f79c3158a.jpeg"},{"username":"Worgen325","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16533177/medium/4a62cc6b06095751aeb4b1b3e96db93f.png"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"prubin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17503492/medium/96ac87644691e49c1f983f2f094e541c_default.png"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"Ebedami","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12974801/medium/b596dea5c09454c4c828eac558389755.jpg"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"jeongeon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13362856/medium/eb572f72cde5e5526c517ca3a6489850_default.png"},{"username":"MrTranCFCVN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13439475/medium/a1789d69c85d90c667194b5d6a518c08_default.png"},{"username":"Kf637","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13530622/medium/118b00bb72d01d3229c97409637e25d1_default.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"Wjouter","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14585620/medium/b91a51513332bdc0a0a9ecbed99ecbc3.png"},{"username":"albanobattistella","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14686194/medium/564afcfd76f5cd24751bd669cf4943aa.jpg"},{"username":"Kachelkaiser","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14763406/medium/203a781797da4a18fe0f4e7db8fd547c.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"meviper","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15958903/medium/209f521ce33a05831fa8d7d1b7babc20_default.png"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"},{"username":"xoxyuxu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17176526/medium/108055aa24343043de852e412bec74be.png"},{"username":"cryptodntsleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17249408/medium/b9e15aa2b24a0dbc1e4f194aa8ed5109.png"},{"username":"yaniorg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17261842/medium/7dbfc77f21c826845961243c44540d26.jpg"},{"username":"Vidariondr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17262438/medium/45fbc71be02ef27296b6f423e97b6a03_default.png"},{"username":"Fastery","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17263066/medium/701b0edc59676174863ad651528bbb37.jpeg"},{"username":"stratself","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17290388/medium/57d9d8161b3fd0abf4dc5558b4a1fa05_default.png"},{"username":"wuzeqin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17292606/medium/b9e0308410b31337e2d7aa6ed346d718_default.png"},{"username":"ChristopherBull","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17304338/medium/21a175ce596bfae81430767467908b90.jpeg"},{"username":"darkbcnlord","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17311436/medium/b271bc0b419ec3a26ddb7b63ff8ffc4b.png"},{"username":"zhoran1997","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17344028/medium/c8f450b5a8f1e9494a45dc60af7ce63e.png"},{"username":"gilalves1703","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17447768/medium/3f1de562a5c2391c88bbf8d5cf40a266.png"},{"username":"iServeCloud","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17470960/medium/11649b99d609438d66455a4d2fdc70f7.png"},{"username":"guibolzantvbox","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17474136/medium/59a576e6da538664ceb972253916fa02.jpeg"},{"username":"ivann136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17506062/medium/67d09ada36fac5f444a1f7517e3a97bd_default.png"},{"username":"Maheshivara","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17516082/medium/576e1e6581cf969615b265de6aeff8b7.jpeg"},{"username":"brunogui81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17517542/medium/7c0d174e810435af518fe8e0c05e151f.jpeg"}] \ No newline at end of file +[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/249b02e3368752cb175446082015737c_default.png"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"prubin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17503492/medium/96ac87644691e49c1f983f2f094e541c_default.png"},{"username":"sam-tam-sam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17578052/medium/1628dc2954ce3ae95e0caaa2bd60ab0c.png"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"Ebedami","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12974801/medium/b596dea5c09454c4c828eac558389755.jpg"},{"username":"perrygamerptyt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13117177/medium/1406c949507ecd438480473c8a1f6124.jpg"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"jeongeon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13362856/medium/eb572f72cde5e5526c517ca3a6489850_default.png"},{"username":"MrTranCFCVN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13439475/medium/a1789d69c85d90c667194b5d6a518c08_default.png"},{"username":"Tobost06","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13467449/medium/9227dc07f6366bc060d28304f5cb8ce7.jpeg"},{"username":"Kf637","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13530622/medium/118b00bb72d01d3229c97409637e25d1_default.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"olavinto","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14424644/medium/37c01732bd2b7a272b421807a05ccfeb.png"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"Wjouter","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14585620/medium/b91a51513332bdc0a0a9ecbed99ecbc3.png"},{"username":"albanobattistella","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14686194/medium/564afcfd76f5cd24751bd669cf4943aa.jpg"},{"username":"Kachelkaiser","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14763406/medium/203a781797da4a18fe0f4e7db8fd547c.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"meviper","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15958903/medium/209f521ce33a05831fa8d7d1b7babc20_default.png"},{"username":"GerOriki","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16268376/medium/da00e54b08cd40348231d92873a0cd0a_default.png"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"renan.costaalencar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16938427/medium/6d25b25320c5bde734118dec4af9cd5b.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"},{"username":"xoxyuxu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17176526/medium/108055aa24343043de852e412bec74be.png"},{"username":"cryptodntsleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17249408/medium/b9e15aa2b24a0dbc1e4f194aa8ed5109.png"},{"username":"yaniorg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17261842/medium/7dbfc77f21c826845961243c44540d26.jpg"},{"username":"Vidariondr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17262438/medium/45fbc71be02ef27296b6f423e97b6a03_default.png"},{"username":"Fastery","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17263066/medium/701b0edc59676174863ad651528bbb37.jpeg"},{"username":"stratself","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17290388/medium/57d9d8161b3fd0abf4dc5558b4a1fa05_default.png"},{"username":"wuzeqin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17292606/medium/b9e0308410b31337e2d7aa6ed346d718_default.png"},{"username":"ChristopherBull","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17304338/medium/21a175ce596bfae81430767467908b90.jpeg"},{"username":"darkbcnlord","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17311436/medium/b271bc0b419ec3a26ddb7b63ff8ffc4b.png"},{"username":"zhoran1997","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17344028/medium/c8f450b5a8f1e9494a45dc60af7ce63e.png"},{"username":"gilalves1703","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17447768/medium/3f1de562a5c2391c88bbf8d5cf40a266.png"},{"username":"iServeCloud","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17470960/medium/11649b99d609438d66455a4d2fdc70f7.png"},{"username":"guibolzantvbox","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17474136/medium/59a576e6da538664ceb972253916fa02.jpeg"},{"username":"ivann136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17506062/medium/67d09ada36fac5f444a1f7517e3a97bd_default.png"},{"username":"Maheshivara","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17516082/medium/576e1e6581cf969615b265de6aeff8b7.jpeg"},{"username":"brunogui81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17517542/medium/7c0d174e810435af518fe8e0c05e151f.jpeg"},{"username":"michelwilhelm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17542190/medium/4c6b33fd8993ff565fa75add2ce8355e.jpeg"},{"username":"dias-gxstavo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17547376/medium/8c6b109aae8aeb651192346a39ae9e5b.jpeg"},{"username":"ToxykAuBleu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17614030/medium/8d21e0608560172b121bd46126d827c7.jpeg"},{"username":"e.erdemir","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17617994/medium/7259a29db9941c6171a8cbbd643b92bd.png"},{"username":"sjonkreutz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17618306/medium/7601c45d015189a863656e21348d223b.png"},{"username":"volovich0377","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17620388/medium/c929a8fbd24f96d17620fa497ade7309.png"},{"username":"Hamstio1","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17624898/medium/406e0bf40094c24a01c3064f8f5b2a82.png"},{"username":"i3laa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17627462/medium/613a9d283ed8b69819ee181903851660.jpeg"},{"username":"bastiengrignon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17629884/medium/ddfc3339285bd65195fcd834e512e9b7.jpeg"},{"username":"kauhee","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17644600/medium/def1b9066cf9275b4273a5a5dca7f325.png"},{"username":"hongminzheng","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17683860/medium/a764f4963912777d27a7cd98e136a2b2.png"}] \ No newline at end of file diff --git a/tooling/eslint/base.js b/tooling/eslint/base.js index c84d20581..638928a52 100644 --- a/tooling/eslint/base.js +++ b/tooling/eslint/base.js @@ -1,10 +1,9 @@ -/// - import eslint from "@eslint/js"; import importPlugin from "eslint-plugin-import"; +import { defineConfig } from "eslint/config"; import tseslint from "typescript-eslint"; -export default tseslint.config( +export default defineConfig( { // Globally ignored files ignores: ["**/*.config.js", "**/*.cjs", "**/lang/*.d.json.ts"], diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index bc0d23173..60cee7fb8 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -17,19 +17,20 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@next/eslint-plugin-next": "16.1.1", - "eslint-config-prettier": "^10.1.8", - "eslint-config-turbo": "^2.7.3", - "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^6.1.1", - "typescript-eslint": "^8.52.0" + "@next/eslint-plugin-next": "catalog:", + "eslint-config-prettier": "catalog:", + "eslint-config-turbo": "catalog:", + "eslint-plugin-import": "catalog:", + "eslint-plugin-jsx-a11y": "catalog:", + "eslint-plugin-react": "catalog:", + "eslint-plugin-react-hooks": "catalog:", + "typescript-eslint": "catalog:" }, "devDependencies": { + "@eslint/js": "catalog:", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.39.2", - "typescript": "^5.9.3" + "eslint": "catalog:", + "typescript": "catalog:" } } diff --git a/tooling/eslint/react.js b/tooling/eslint/react.js index abbf8f1d1..d9e9e7355 100644 --- a/tooling/eslint/react.js +++ b/tooling/eslint/react.js @@ -1,3 +1,5 @@ +/// + import reactPlugin from "eslint-plugin-react"; import hooksPlugin from "eslint-plugin-react-hooks"; diff --git a/tooling/eslint/types.d.ts b/tooling/eslint/types.d.ts index 37cfded93..bdee07619 100644 --- a/tooling/eslint/types.d.ts +++ b/tooling/eslint/types.d.ts @@ -1,38 +1,3 @@ -/** - * Since the ecosystem hasn't fully migrated to ESLint's new FlatConfig system yet, - * we "need" to type some of the plugins manually :( - */ - -declare module "@eslint/js" { - // Why the hell doesn't eslint themselves export their types? - import type { Linter } from "eslint"; - - export const configs: { - readonly recommended: { readonly rules: Readonly }; - readonly all: { readonly rules: Readonly }; - }; -} - -declare module "eslint-plugin-import" { - import type { Linter, Rule } from "eslint"; - - export const configs: { - recommended: { rules: Linter.RulesRecord }; - }; - export const rules: Record; -} - -declare module "eslint-plugin-react" { - import type { Linter, Rule } from "eslint"; - - export const configs: { - recommended: { rules: Linter.RulesRecord }; - all: { rules: Linter.RulesRecord }; - "jsx-runtime": { rules: Linter.RulesRecord }; - }; - export const rules: Record; -} - declare module "eslint-plugin-react-hooks" { import type { Linter, Rule } from "eslint"; @@ -46,13 +11,3 @@ declare module "eslint-plugin-react-hooks" { }; export const rules: Record; } - -declare module "@next/eslint-plugin-next" { - import type { Linter, Rule } from "eslint"; - - export const configs: { - recommended: { rules: Linter.RulesRecord }; - "core-web-vitals": { rules: Linter.RulesRecord }; - }; - export const rules: Record; -} diff --git a/tooling/github/setup/action.yml b/tooling/github/setup/action.yml index 71c2fab10..b8374d497 100644 --- a/tooling/github/setup/action.yml +++ b/tooling/github/setup/action.yml @@ -4,14 +4,11 @@ description: "Common setup steps for Actions" runs: using: composite steps: - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 - uses: actions/setup-node@v6 with: - node-version: 24.12.0 + node-version: 24.15.0 cache: "pnpm" - - shell: bash - run: pnpm add -g turbo - - shell: bash run: pnpm install --frozen-lockfile diff --git a/tooling/prettier/package.json b/tooling/prettier/package.json index d91d3eb62..12362e38b 100644 --- a/tooling/prettier/package.json +++ b/tooling/prettier/package.json @@ -10,12 +10,12 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.7.0", - "prettier": "^3.7.4" + "@ianvs/prettier-plugin-sort-imports": "catalog:", + "prettier": "catalog:" }, "devDependencies": { "@homarr/tsconfig": "workspace:^0.1.0", - "prettier-plugin-packagejson": "^2.5.20", - "typescript": "^5.9.3" + "prettier-plugin-packagejson": "catalog:", + "typescript": "catalog:" } } diff --git a/turbo.json b/turbo.json index 208d42365..b43619d8d 100644 --- a/turbo.json +++ b/turbo.json @@ -1,56 +1,19 @@ { "$schema": "https://turborepo.org/schema.json", - "globalDependencies": ["**/.env"], - "globalEnv": [ - "AUTH_LDAP_BASE", - "AUTH_LDAP_BIND_DN", - "AUTH_LDAP_BIND_PASSWORD", - "AUTH_LDAP_GROUP_CLASS", - "AUTH_LDAP_GROUP_FILTER_EXTRA_ARG", - "AUTH_LDAP_GROUP_MEMBER_ATTRIBUTE", - "AUTH_LDAP_GROUP_MEMBER_USER_ATTRIBUTE", - "AUTH_LDAP_SEARCH_SCOPE", - "AUTH_LDAP_URI", - "AUTH_OIDC_CLIENT_ID", - "AUTH_OIDC_CLIENT_NAME", - "AUTH_OIDC_CLIENT_SECRET", - "AUTH_OIDC_FORCE_USERINFO", - "AUTH_OIDC_ISSUER", - "AUTH_OIDC_SCOPE_OVERWRITE", - "AUTH_OIDC_GROUPS_ATTRIBUTE", - "AUTH_OIDC_NAME_ATTRIBUTE_OVERWRITE", - "AUTH_LDAP_USERNAME_ATTRIBUTE", - "AUTH_LDAP_USER_MAIL_ATTRIBUTE", - "AUTH_LDAP_USERNAME_FILTER_EXTRA_ARG", - "AUTH_OIDC_AUTO_LOGIN", - "AUTH_LOGOUT_REDIRECT_URL", - "AUTH_PROVIDERS", - "AUTH_SESSION_EXPIRY_TIME", - "CI", - "DISABLE_REDIS_LOGS", - "DB_URL", - "DB_HOST", - "DB_USER", - "DB_PASSWORD", - "DB_NAME", - "DB_PORT", - "DB_DRIVER", - "DOCKER_HOSTNAMES", - "DOCKER_PORTS", - "NODE_ENV", - "PORT", - "LOCAL_CERTIFICATE_PATH", - "LOG_LEVEL", - "SECRET_ENCRYPTION_KEY", - "SKIP_ENV_VALIDATION" - ], + "remoteCache": { "signature": false }, + "globalEnv": ["CI", "NODE_ENV", "SKIP_ENV_VALIDATION"], "ui": "stream", + "futureFlags": { + "affectedUsingTaskInputs": true + }, "tasks": { "topo": { - "dependsOn": ["^topo"] + "dependsOn": ["^topo"], + "inputs": ["package.json"] }, "build": { "dependsOn": ["^build"], + "inputs": ["$TURBO_DEFAULT$", "!**/*.test.ts", "!**/*.test.tsx", "!**/*.spec.ts", "!**/__tests__/**"], "outputs": [".next/**", "!.next/cache/**", "next-env.d.ts", ".output/**", ".vercel/output/**"] }, "dev": { @@ -58,15 +21,18 @@ "cache": false }, "format": { + "inputs": ["$TURBO_DEFAULT$"], "outputs": ["node_modules/.cache/.prettiercache"], "outputLogs": "new-only" }, "lint": { "dependsOn": ["^topo"], + "inputs": ["$TURBO_DEFAULT$"], "outputs": ["node_modules/.cache/.eslintcache"] }, "typecheck": { "dependsOn": ["^topo"], + "inputs": ["$TURBO_DEFAULT$"], "outputs": ["node_modules/.cache/tsbuildinfo.json"] }, "clean": {