From ed249ce7ebe190f7bf0025796b680d0ba9f674a8 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 15 Mar 2026 15:30:21 +0000
Subject: [PATCH] merge: integrate dev branch (v1.56.0), resolve all conflicts
Resolves 15 conflicted files from dev merge:
- Version bumps to v1.56.0, pnpm 10.32.0, turbo 2.8.15
- New integrations: tracearr (from dev)
- New widgets: tracearr (from dev)
- Updated dependencies: mysql2, typescript-eslint, isomorphic-dompurify
- Keeps our custom server changes: esbuild, fastify, cron-job-api deps
- Keeps our docker:test scripts and APPROACHES.md
Co-authored-by: ajnart <49837342+ajnart@users.noreply.github.com>
---
.github/ISSUE_TEMPLATE/bug_report.yml | 1 +
CHANGELOG.md | 33 +
apps/nextjs/package.json | 4 +-
deployments/prebuilt-debian/package.json | 4 +-
docs/README.md | 11 +-
package.json | 12 +-
packages/api/src/router/board.ts | 2 +-
packages/api/src/router/widgets/index.ts | 1 +
packages/api/src/router/widgets/tracearr.ts | 48 +
packages/common/src/date.ts | 11 +
packages/core/package.json | 2 +-
packages/cron-jobs/src/index.ts | 2 +
.../src/jobs/integrations/tracearr.ts | 14 +
packages/db/package.json | 2 +-
.../src/docs/homarr-docs-sitemap.ts | 7 +
packages/definitions/src/integration.ts | 8 +
packages/definitions/src/widget.ts | 1 +
.../src/icon-picker/icon-picker.tsx | 13 +-
packages/integrations/src/base/creator.ts | 2 +
packages/integrations/src/base/integration.ts | 12 +-
.../src/glances/glances-integration.ts | 13 +-
packages/integrations/src/index.ts | 2 +
.../src/tracearr/tracearr-integration.ts | 220 +++++
.../src/tracearr/tracearr-types.ts | 233 +++++
.../src/truenas/truenas-integration.ts | 29 +-
packages/integrations/src/types.ts | 1 +
packages/request-handler/src/tracearr.ts | 19 +
packages/spotlight/package.json | 2 +-
packages/translation/src/lang/ca.json | 58 ++
packages/translation/src/lang/cn.json | 58 ++
packages/translation/src/lang/cr.json | 58 ++
packages/translation/src/lang/cs.json | 58 ++
packages/translation/src/lang/da.json | 58 ++
packages/translation/src/lang/de-CH.json | 58 ++
packages/translation/src/lang/de.json | 58 ++
packages/translation/src/lang/el.json | 58 ++
packages/translation/src/lang/en-gb.json | 58 ++
packages/translation/src/lang/en.json | 59 ++
packages/translation/src/lang/es.json | 58 ++
packages/translation/src/lang/et.json | 58 ++
packages/translation/src/lang/fr.json | 58 ++
packages/translation/src/lang/he.json | 58 ++
packages/translation/src/lang/hr.json | 58 ++
packages/translation/src/lang/hu.json | 58 ++
packages/translation/src/lang/it.json | 58 ++
packages/translation/src/lang/ja.json | 58 ++
packages/translation/src/lang/ko.json | 58 ++
packages/translation/src/lang/lt.json | 58 ++
packages/translation/src/lang/lv.json | 58 ++
packages/translation/src/lang/nl.json | 58 ++
packages/translation/src/lang/no.json | 58 ++
packages/translation/src/lang/pl.json | 58 ++
packages/translation/src/lang/pt.json | 58 ++
packages/translation/src/lang/ro.json | 58 ++
packages/translation/src/lang/ru.json | 58 ++
packages/translation/src/lang/sk.json | 58 ++
packages/translation/src/lang/sl.json | 58 ++
packages/translation/src/lang/sv.json | 58 ++
packages/translation/src/lang/tr.json | 58 ++
packages/translation/src/lang/uk.json | 58 ++
packages/translation/src/lang/vi.json | 58 ++
packages/translation/src/lang/zh.json | 58 ++
packages/widgets/src/index.tsx | 2 +
packages/widgets/src/releases/index.ts | 2 +-
packages/widgets/src/tracearr/component.tsx | 131 +++
packages/widgets/src/tracearr/index.ts | 32 +
.../src/tracearr/recent-activity-section.tsx | 56 ++
.../widgets/src/tracearr/stats-section.tsx | 49 +
.../widgets/src/tracearr/streams-section.tsx | 128 +++
.../src/tracearr/violations-section.tsx | 66 ++
pnpm-lock.yaml | 904 +++++++-----------
static-data/contributors.json | 2 +-
static-data/translators.json | 2 +-
tooling/eslint/package.json | 4 +-
74 files changed, 3449 insertions(+), 611 deletions(-)
create mode 100644 packages/api/src/router/widgets/tracearr.ts
create mode 100644 packages/cron-jobs/src/jobs/integrations/tracearr.ts
create mode 100644 packages/integrations/src/tracearr/tracearr-integration.ts
create mode 100644 packages/integrations/src/tracearr/tracearr-types.ts
create mode 100644 packages/request-handler/src/tracearr.ts
create mode 100644 packages/widgets/src/tracearr/component.tsx
create mode 100644 packages/widgets/src/tracearr/index.ts
create mode 100644 packages/widgets/src/tracearr/recent-activity-section.tsx
create mode 100644 packages/widgets/src/tracearr/stats-section.tsx
create mode 100644 packages/widgets/src/tracearr/streams-section.tsx
create mode 100644 packages/widgets/src/tracearr/violations-section.tsx
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index a01813e91..c6d6e5fdf 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -33,6 +33,7 @@ body:
options:
# The below comment is used to insert a new version with on-release.yml
#NEXT_VERSION#
+ - 1.56.0
- 1.55.0
- 1.54.0
- 1.53.0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0138ebbfc..fe0c7ad47 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,36 @@
+## [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
diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json
index 0ad137ba6..1696403e0 100644
--- a/apps/nextjs/package.json
+++ b/apps/nextjs/package.json
@@ -80,8 +80,8 @@
"fastify": "^5.7.4",
"flag-icons": "^7.5.0",
"glob": "^13.0.6",
- "isomorphic-dompurify": "^3.0.0",
- "jotai": "^2.18.0",
+ "isomorphic-dompurify": "^3.1.0",
+ "jotai": "^2.18.1",
"mantine-react-table": "2.0.0-beta.9",
"next": "16.1.6",
"postcss-preset-mantine": "^1.18.0",
diff --git a/deployments/prebuilt-debian/package.json b/deployments/prebuilt-debian/package.json
index 71f07e59a..a774856f4 100644
--- a/deployments/prebuilt-debian/package.json
+++ b/deployments/prebuilt-debian/package.json
@@ -4,10 +4,10 @@
"dependencies": {
"better-sqlite3": "^12.6.2"
},
- "packageManager": "pnpm@10.31.0",
+ "packageManager": "pnpm@10.32.0",
"engines": {
"node": ">=24.14.0",
- "pnpm": ">=10.31.0"
+ "pnpm": ">=10.32.0"
},
"pnpm": {
"onlyBuiltDependencies": [
diff --git a/docs/README.md b/docs/README.md
index d23e83b74..9990b959b 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -330,6 +330,13 @@
+
+
+
+ Tracearr
+
+ |
+
@@ -342,8 +349,8 @@
TrueNAS
- |
-
+ |
+
diff --git a/package.json b/package.json
index 822b246b0..62814f0dd 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "homarr",
- "version": "1.55.0",
+ "version": "1.56.0",
"private": true,
"scripts": {
"build": "cross-env CI=true turbo build",
@@ -46,7 +46,7 @@
"@semantic-release/npm": "^13.1.5",
"@semantic-release/release-notes-generator": "^14.1.0",
"@testcontainers/redis": "^11.12.0",
- "@turbo/gen": "^2.8.14",
+ "@turbo/gen": "^2.8.15",
"@vitejs/plugin-react": "^5.1.4",
"@vitest/coverage-v8": "^4.0.18",
"@vitest/ui": "^4.0.18",
@@ -57,15 +57,15 @@
"prettier": "^3.8.1",
"semantic-release": "^25.0.3",
"testcontainers": "^11.12.0",
- "turbo": "^2.8.14",
+ "turbo": "^2.8.15",
"typescript": "^5.9.3",
"vite-tsconfig-paths": "^6.1.1",
"vitest": "^4.0.18"
},
- "packageManager": "pnpm@10.31.0",
+ "packageManager": "pnpm@10.32.0",
"engines": {
"node": ">=24.14.0",
- "pnpm": ">=10.31.0"
+ "pnpm": ">=10.32.0"
},
"pnpm": {
"onlyBuiltDependencies": [
@@ -87,7 +87,7 @@
"brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.4",
"esbuild@<=0.24.2": ">=0.27.3",
"form-data@>=4.0.0 <4.0.4": ">=4.0.5",
- "hono@<4.6.5": ">=4.12.5",
+ "hono@<4.6.5": ">=4.12.7",
"linkifyjs@<4.3.2": ">=4.3.2",
"nanoid@>=4.0.0 <5.0.9": ">=5.1.6",
"prismjs@<1.30.0": ">=1.30.0",
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/widgets/index.ts b/packages/api/src/router/widgets/index.ts
index 0484c875c..126ec4ad2 100644
--- a/packages/api/src/router/widgets/index.ts
+++ b/packages/api/src/router/widgets/index.ts
@@ -26,4 +26,5 @@ export const widgetRouter = createTRPCRouter({
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)),
+ tracearr: lazy(() => import("./tracearr").then((mod) => mod.tracearrRouter)),
});
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/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/core/package.json b/packages/core/package.json
index bb2695f9a..167ea4099 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -42,7 +42,7 @@
"dns-caching": "^0.2.9",
"drizzle-orm": "^0.45.1",
"ioredis": "5.10.0",
- "mysql2": "3.19.0",
+ "mysql2": "3.19.1",
"pg": "^8.20.0",
"superjson": "2.2.6",
"winston": "3.19.0",
diff --git a/packages/cron-jobs/src/index.ts b/packages/cron-jobs/src/index.ts
index 7d1bc2023..5ab802124 100644
--- a/packages/cron-jobs/src/index.ts
+++ b/packages/cron-jobs/src/index.ts
@@ -18,6 +18,7 @@ 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 { tracearrJob } from "./jobs/integrations/tracearr";
import { minecraftServerStatusJob } from "./jobs/minecraft-server-status";
import { pingJob } from "./jobs/ping";
import { rssFeedsJob } from "./jobs/rss-feeds";
@@ -50,6 +51,7 @@ export const jobGroup = createCronJobGroup({
firewallInterfaces: firewallInterfacesJob,
refreshNotifications: refreshNotificationsJob,
weather: weatherJob,
+ tracearr: tracearrJob,
});
export type JobGroupKeys = ReturnType<(typeof jobGroup)["getKeys"]>[number];
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/db/package.json b/packages/db/package.json
index a17d467fc..c585cb2e1 100644
--- a/packages/db/package.json
+++ b/packages/db/package.json
@@ -56,7 +56,7 @@
"drizzle-kit": "^0.31.9",
"drizzle-orm": "^0.45.1",
"drizzle-zod": "^0.8.3",
- "mysql2": "3.19.0",
+ "mysql2": "3.19.1",
"pg": "^8.20.0",
"superjson": "2.2.6"
},
diff --git a/packages/definitions/src/docs/homarr-docs-sitemap.ts b/packages/definitions/src/docs/homarr-docs-sitemap.ts
index 7d8447264..555dad16c 100644
--- a/packages/definitions/src/docs/homarr-docs-sitemap.ts
+++ b/packages/definitions/src/docs/homarr-docs-sitemap.ts
@@ -109,7 +109,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"
@@ -164,6 +166,7 @@ export type HomarrDocumentationPath =
| "/docs/integrations/glances"
| "/docs/integrations/home-assistant"
| "/docs/integrations/ical"
+ | "/docs/integrations/immich"
| "/docs/integrations/jellyfin"
| "/docs/integrations/jellyseerr"
| "/docs/integrations/kubernetes"
@@ -189,6 +192,7 @@ export type HomarrDocumentationPath =
| "/docs/integrations/slskd"
| "/docs/integrations/sonarr"
| "/docs/integrations/tdarr"
+ | "/docs/integrations/tracearr"
| "/docs/integrations/transmission"
| "/docs/integrations/truenas"
| "/docs/integrations/unifi-controller"
@@ -214,6 +218,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"
@@ -231,6 +237,7 @@ export type HomarrDocumentationPath =
| "/docs/widgets/smart-home-execute-automation"
| "/docs/widgets/stock-price"
| "/docs/widgets/system-resources"
+ | "/docs/widgets/tracearr"
| "/docs/widgets/video"
| "/docs/widgets/weather"
| ""
diff --git a/packages/definitions/src/integration.ts b/packages/definitions/src/integration.ts
index f4edb4c17..7f889733c 100644
--- a/packages/definitions/src/integration.ts
+++ b/packages/definitions/src/integration.ts
@@ -342,6 +342,13 @@ export const integrationDefs = {
// @ts-expect-error TS2345
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"),
+ },
// 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",
@@ -429,6 +436,7 @@ export const integrationCategories = [
"notifications",
"firewall",
"photoService",
+ "mediaMonitoring",
] as const;
export type IntegrationCategory = (typeof integrationCategories)[number];
diff --git a/packages/definitions/src/widget.ts b/packages/definitions/src/widget.ts
index 4dcfccfd9..cf94bd3fa 100644
--- a/packages/definitions/src/widget.ts
+++ b/packages/definitions/src/widget.ts
@@ -33,5 +33,6 @@ export const widgetKinds = [
"systemDisks",
"immich-serverStats",
"immich-albumCarousel",
+ "tracearr",
] as const;
export type WidgetKind = (typeof widgetKinds)[number];
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/integrations/src/base/creator.ts b/packages/integrations/src/base/creator.ts
index 69db53a92..b35fa5f63 100644
--- a/packages/integrations/src/base/creator.ts
+++ b/packages/integrations/src/base/creator.ts
@@ -41,6 +41,7 @@ import { ProwlarrIntegration } from "../prowlarr/prowlarr-integration";
import { ProxmoxIntegration } from "../proxmox/proxmox-integration";
import { QuayIntegration } from "../quay/quay-integration";
import { SeerrIntegration } from "../seerr/seerr-integration";
+import { TracearrIntegration } from "../tracearr/tracearr-integration";
import { TrueNasIntegration } from "../truenas/truenas-integration";
import { UnifiControllerIntegration } from "../unifi-controller/unifi-controller-integration";
import { UnraidIntegration } from "../unraid/unraid-integration";
@@ -111,6 +112,7 @@ export const integrationCreators = {
truenas: TrueNasIntegration,
unraid: UnraidIntegration,
coolify: CoolifyIntegration,
+ tracearr: TracearrIntegration,
glances: GlancesIntegration,
immich: ImmichIntegration,
} satisfies Record Promise]>;
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/glances/glances-integration.ts b/packages/integrations/src/glances/glances-integration.ts
index e4e859151..2d1f8601f 100644
--- a/packages/integrations/src/glances/glances-integration.ts
+++ b/packages/integrations/src/glances/glances-integration.ts
@@ -95,7 +95,18 @@ export class GlancesIntegration extends Integration implements ISystemHealthMoni
}
}
-const regex = /^(?:(?\d+) days, )?(?\d+):(?\d+):(?\d+)$/m;
+// 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({
diff --git a/packages/integrations/src/index.ts b/packages/integrations/src/index.ts
index 6a72787d0..3514e022b 100644
--- a/packages/integrations/src/index.ts
+++ b/packages/integrations/src/index.ts
@@ -30,6 +30,7 @@ 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";
// Types
export type { IntegrationInput } from "./base/integration";
@@ -56,6 +57,7 @@ export type {
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 { TracearrDashboardData } from "./tracearr/tracearr-types";
// Schemas
export { downloadClientItemSchema } from "./interfaces/downloads/download-client-items";
diff --git a/packages/integrations/src/tracearr/tracearr-integration.ts b/packages/integrations/src/tracearr/tracearr-integration.ts
new file mode 100644
index 000000000..0ad7001a2
--- /dev/null
+++ b/packages/integrations/src/tracearr/tracearr-integration.ts
@@ -0,0 +1,220 @@
+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, stream.id, "avatar");
+ }
+ if (stream.posterUrl) {
+ stream.posterUrl = await this.proxyImageAsync(imageProxy, stream.posterUrl, stream.id, "poster");
+ }
+ 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,
+ violation.user.id,
+ "avatar",
+ );
+ 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,
+ session.user.id,
+ "avatar",
+ );
+ 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,
+ url: string | null | undefined,
+ uniqueId: string,
+ discriminator: string,
+ ): Promise {
+ if (!url) return null;
+ try {
+ // ImageProxy doesn't support fallback urls so we need to remove them
+ const cleanUrl = url.replace(/&fallback=[^&]+/, "").replace(/\?fallback=[^&]+&?/, "?");
+ // Build the full URL, then inject _uid as the FIRST query param.
+ // This is critical because ImageProxy uses bcrypt which truncates at 72 bytes.
+ // Without this, all long avatar/poster URLs from the same session hash identically
+ // since they share the same first 72+ bytes.
+ const baseUrl = this.url(cleanUrl as `/${string}`).toString();
+ const prefix = `_uid=${discriminator}_${uniqueId}&`;
+ const fullUrl = baseUrl.includes("?") ? baseUrl.replace("?", `?${prefix}`) : `${baseUrl}?${prefix}`;
+
+ 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 4ff38d819..a712bc076 100644
--- a/packages/integrations/src/truenas/truenas-integration.ts
+++ b/packages/integrations/src/truenas/truenas-integration.ts
@@ -126,11 +126,28 @@ export class TrueNasIntegration extends Integration implements ISystemHealthMoni
},
]);
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(),
- count: result.length,
+ totalCount: result.length,
+ activeCount: activePools.length,
});
- return result;
+ return activePools;
}
/**
@@ -388,9 +405,11 @@ const poolSchema = z.array(
name: z.string(),
status: z.string(),
healthy: z.boolean(),
- free: z.number().min(0),
- size: z.number(),
- allocated: z.number(),
+ // 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(),
}),
);
diff --git a/packages/integrations/src/types.ts b/packages/integrations/src/types.ts
index d4be3a9c2..debdd041b 100644
--- a/packages/integrations/src/types.ts
+++ b/packages/integrations/src/types.ts
@@ -12,3 +12,4 @@ export * from "./unifi-controller/unifi-controller-types";
export * from "./opnsense/opnsense-types";
export * from "./interfaces/media-releases";
export * from "./coolify/coolify-types";
+export * from "./tracearr/tracearr-types";
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/spotlight/package.json b/packages/spotlight/package.json
index d7d062f73..4a573d3ab 100644
--- a/packages/spotlight/package.json
+++ b/packages/spotlight/package.json
@@ -37,7 +37,7 @@
"@mantine/hooks": "^8.3.16",
"@mantine/spotlight": "^8.3.16",
"@tabler/icons-react": "^3.40.0",
- "jotai": "^2.18.0",
+ "jotai": "^2.18.1",
"next": "16.1.6",
"react": "19.2.4",
"react-dom": "19.2.4",
diff --git a/packages/translation/src/lang/ca.json b/packages/translation/src/lang/ca.json
index 8ca578001..978817e9b 100644
--- a/packages/translation/src/lang/ca.json
+++ b/packages/translation/src/lang/ca.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json
index 4313f8ae6..33443c465 100644
--- a/packages/translation/src/lang/cn.json
+++ b/packages/translation/src/lang/cn.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "城市/邮编",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "天气"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/cr.json b/packages/translation/src/lang/cr.json
index e48e49fc9..c6a8b4da3 100644
--- a/packages/translation/src/lang/cr.json
+++ b/packages/translation/src/lang/cr.json
@@ -1996,6 +1996,61 @@
"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"
+ }
+ },
"common": {
"location": {
"query": "crwdns1110:0crwdne1110:0",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "crwdns3724:0crwdne3724:0"
+ },
+ "tracearr": {
+ "label": "crwdns3990:0crwdne3990:0"
}
},
"interval": {
diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json
index 076cd5503..124de13bb 100644
--- a/packages/translation/src/lang/cs.json
+++ b/packages/translation/src/lang/cs.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json
index 1832c62b2..df562d1ff 100644
--- a/packages/translation/src/lang/da.json
+++ b/packages/translation/src/lang/da.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "By / Postnummer",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Vejr"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/de-CH.json b/packages/translation/src/lang/de-CH.json
index baa31d6c0..62b300aff 100644
--- a/packages/translation/src/lang/de-CH.json
+++ b/packages/translation/src/lang/de-CH.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "Stadt / Postleitzahl",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/de.json b/packages/translation/src/lang/de.json
index 063762b6b..e5a34d96f 100644
--- a/packages/translation/src/lang/de.json
+++ b/packages/translation/src/lang/de.json
@@ -1996,6 +1996,61 @@
"title": "Instanzen"
}
},
+ "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": ""
+ }
+ },
"common": {
"location": {
"query": "Stadt / Postleitzahl",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Wetter"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/el.json b/packages/translation/src/lang/el.json
index d559d5ede..ea7862559 100644
--- a/packages/translation/src/lang/el.json
+++ b/packages/translation/src/lang/el.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json
index 427405d46..ae9fbfe1f 100644
--- a/packages/translation/src/lang/en-gb.json
+++ b/packages/translation/src/lang/en-gb.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/en.json b/packages/translation/src/lang/en.json
index 4580d847d..77d37810f 100644
--- a/packages/translation/src/lang/en.json
+++ b/packages/translation/src/lang/en.json
@@ -1996,6 +1996,62 @@
"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"
+ }
+ },
"common": {
"location": {
"query": "City / Postal code",
@@ -3518,6 +3574,9 @@
},
"weather": {
"label": "Weather"
+ },
+ "tracearr": {
+ "label": "Tracearr"
}
},
"interval": {
diff --git a/packages/translation/src/lang/es.json b/packages/translation/src/lang/es.json
index caef0b44f..507c4630f 100644
--- a/packages/translation/src/lang/es.json
+++ b/packages/translation/src/lang/es.json
@@ -1996,6 +1996,61 @@
"title": "Instancias"
}
},
+ "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": ""
+ }
+ },
"common": {
"location": {
"query": "Ciudad / Código postal",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Tiempo"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/et.json b/packages/translation/src/lang/et.json
index d34963192..2bab54e1e 100644
--- a/packages/translation/src/lang/et.json
+++ b/packages/translation/src/lang/et.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json
index 242880219..d66bf74c0 100644
--- a/packages/translation/src/lang/fr.json
+++ b/packages/translation/src/lang/fr.json
@@ -1996,6 +1996,61 @@
"title": "Instances"
}
},
+ "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": ""
+ }
+ },
"common": {
"location": {
"query": "Ville / Code Postal",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Météo"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json
index 77d418aa2..7e4e13549 100644
--- a/packages/translation/src/lang/he.json
+++ b/packages/translation/src/lang/he.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "עיר / מיקוד",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "מזג אוויר"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/hr.json b/packages/translation/src/lang/hr.json
index 154fa356e..513022ea1 100644
--- a/packages/translation/src/lang/hr.json
+++ b/packages/translation/src/lang/hr.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json
index 27173745d..c0d07454b 100644
--- a/packages/translation/src/lang/hu.json
+++ b/packages/translation/src/lang/hu.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/it.json b/packages/translation/src/lang/it.json
index 5a4ace6a7..8a755b3e4 100644
--- a/packages/translation/src/lang/it.json
+++ b/packages/translation/src/lang/it.json
@@ -1996,6 +1996,61 @@
"title": "Istanze"
}
},
+ "tracearr": {
+ "name": "",
+ "description": "",
+ "option": {
+ "showStreams": {
+ "label": ""
+ },
+ "showStats": {
+ "label": ""
+ },
+ "showRecentActivity": {
+ "label": ""
+ },
+ "showViolations": {
+ "label": ""
+ }
+ },
+ "stats": {
+ "activeStreams": "",
+ "totalUsers": "Utenti Totali",
+ "transcodes": "",
+ "bandwidth": ""
+ },
+ "streams": {
+ "empty": "",
+ "user": "Utente",
+ "media": "",
+ "state": "",
+ "quality": "",
+ "device": "Dispositivo",
+ "progress": "Avanzamento",
+ "videoDecision": {
+ "directPlay": "",
+ "transcode": "",
+ "directStream": ""
+ }
+ },
+ "recentActivity": {
+ "title": "",
+ "empty": "",
+ "watched": "",
+ "partial": "Parziale"
+ },
+ "violations": {
+ "title": "Violazioni",
+ "empty": "Nessuna violazione recente",
+ "rule": "Regola",
+ "user": "Utente"
+ },
+ "noSectionsEnabled": "Nessuna sezione abilitata",
+ "error": {
+ "noIntegration": "",
+ "internalServerError": ""
+ }
+ },
"common": {
"location": {
"query": "Città / Codice postale",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Meteo"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/ja.json b/packages/translation/src/lang/ja.json
index 4bb723fe4..aeb7a1da6 100644
--- a/packages/translation/src/lang/ja.json
+++ b/packages/translation/src/lang/ja.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "都市/郵便番号",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "天気"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/ko.json b/packages/translation/src/lang/ko.json
index c35951fbf..c7140e4cd 100644
--- a/packages/translation/src/lang/ko.json
+++ b/packages/translation/src/lang/ko.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/lt.json b/packages/translation/src/lang/lt.json
index b4edcf533..9436577ff 100644
--- a/packages/translation/src/lang/lt.json
+++ b/packages/translation/src/lang/lt.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/lv.json b/packages/translation/src/lang/lv.json
index 46e842de4..05994cbcf 100644
--- a/packages/translation/src/lang/lv.json
+++ b/packages/translation/src/lang/lv.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/nl.json b/packages/translation/src/lang/nl.json
index 5e247eb04..fc29c0e77 100644
--- a/packages/translation/src/lang/nl.json
+++ b/packages/translation/src/lang/nl.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "Stad / postcode",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Weer"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/no.json b/packages/translation/src/lang/no.json
index 28ae94b35..690126ff2 100644
--- a/packages/translation/src/lang/no.json
+++ b/packages/translation/src/lang/no.json
@@ -1996,6 +1996,61 @@
"title": "Instanser"
}
},
+ "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": ""
+ }
+ },
"common": {
"location": {
"query": "By / Postnummer",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Vær"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/pl.json b/packages/translation/src/lang/pl.json
index 3c5640fed..9fdba5951 100644
--- a/packages/translation/src/lang/pl.json
+++ b/packages/translation/src/lang/pl.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "Miasto / kod pocztowy",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Pogoda"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/pt.json b/packages/translation/src/lang/pt.json
index 9f8e0a24c..6c47bc477 100644
--- a/packages/translation/src/lang/pt.json
+++ b/packages/translation/src/lang/pt.json
@@ -1996,6 +1996,61 @@
"title": "Instâncias"
}
},
+ "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": ""
+ }
+ },
"common": {
"location": {
"query": "Cidade / CEP",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Clima"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/ro.json b/packages/translation/src/lang/ro.json
index ade452703..c97064d78 100644
--- a/packages/translation/src/lang/ro.json
+++ b/packages/translation/src/lang/ro.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/ru.json b/packages/translation/src/lang/ru.json
index cac32b8d6..1639b85c4 100644
--- a/packages/translation/src/lang/ru.json
+++ b/packages/translation/src/lang/ru.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "Город / Почтовый индекс",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Погода"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/sk.json b/packages/translation/src/lang/sk.json
index bce8513d5..207429c4d 100644
--- a/packages/translation/src/lang/sk.json
+++ b/packages/translation/src/lang/sk.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "Mesto / PSČ",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/sl.json b/packages/translation/src/lang/sl.json
index 5bb55ff5d..c98da18f2 100644
--- a/packages/translation/src/lang/sl.json
+++ b/packages/translation/src/lang/sl.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/sv.json b/packages/translation/src/lang/sv.json
index 8ac90b168..38ac40bd7 100644
--- a/packages/translation/src/lang/sv.json
+++ b/packages/translation/src/lang/sv.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json
index 8f7067a2e..732858cd4 100644
--- a/packages/translation/src/lang/tr.json
+++ b/packages/translation/src/lang/tr.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "Şehir / Posta kodu",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": "Hava Durumu"
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/uk.json b/packages/translation/src/lang/uk.json
index 502d45d14..22c8bac56 100644
--- a/packages/translation/src/lang/uk.json
+++ b/packages/translation/src/lang/uk.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "Місто / Поштовий індекс",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/vi.json b/packages/translation/src/lang/vi.json
index c4d0196e4..2a59c0256 100644
--- a/packages/translation/src/lang/vi.json
+++ b/packages/translation/src/lang/vi.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/translation/src/lang/zh.json b/packages/translation/src/lang/zh.json
index 3f1abd055..97bfe3b04 100644
--- a/packages/translation/src/lang/zh.json
+++ b/packages/translation/src/lang/zh.json
@@ -1996,6 +1996,61 @@
"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": ""
+ }
+ },
"common": {
"location": {
"query": "城市 / 郵遞區號",
@@ -3518,6 +3573,9 @@
},
"weather": {
"label": ""
+ },
+ "tracearr": {
+ "label": ""
}
},
"interval": {
diff --git a/packages/widgets/src/index.tsx b/packages/widgets/src/index.tsx
index f1782a6c9..6f5f2b03d 100644
--- a/packages/widgets/src/index.tsx
+++ b/packages/widgets/src/index.tsx
@@ -42,6 +42,7 @@ import * as smartHomeExecuteAutomation from "./smart-home/execute-automation";
import * as stockPrice from "./stocks";
import * as systemDisks from "./system-disks";
import * as systemResources from "./system-resources";
+import * as tracearr from "./tracearr";
import * as video from "./video";
import * as weather from "./weather";
@@ -83,6 +84,7 @@ export const widgetImports = {
systemDisks,
"immich-serverStats": immichServerStats,
"immich-albumCarousel": immichAlbumCarousel,
+ tracearr,
} satisfies WidgetImportRecord;
export type WidgetImports = typeof widgetImports;
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/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/pnpm-lock.yaml b/pnpm-lock.yaml
index 547102aae..c7477b635 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,7 +12,7 @@ overrides:
brace-expansion@>=1.0.0 <=1.1.11: '>=5.0.4'
esbuild@<=0.24.2: '>=0.27.3'
form-data@>=4.0.0 <4.0.4: '>=4.0.5'
- hono@<4.6.5: '>=4.12.5'
+ hono@<4.6.5: '>=4.12.7'
linkifyjs@<4.3.2: '>=4.3.2'
nanoid@>=4.0.0 <5.0.9: '>=5.1.6'
prismjs@<1.30.0: '>=1.30.0'
@@ -62,8 +62,8 @@ importers:
specifier: ^11.12.0
version: 11.12.0
'@turbo/gen':
- specifier: ^2.8.14
- version: 2.8.14(@types/node@24.12.0)
+ specifier: ^2.8.15
+ version: 2.8.16(@types/node@24.12.0)
'@vitejs/plugin-react':
specifier: ^5.1.4
version: 5.1.4(vite@7.1.12(@types/node@24.12.0)(sass@1.97.3)(sugarss@5.0.0(postcss@8.5.6))(terser@5.46.0)(tsx@4.21.0)(yaml@2.5.1))
@@ -95,8 +95,8 @@ importers:
specifier: ^11.12.0
version: 11.12.0
turbo:
- specifier: ^2.8.14
- version: 2.8.14
+ specifier: ^2.8.15
+ version: 2.8.16
typescript:
specifier: ^5.9.3
version: 5.9.3
@@ -139,18 +139,9 @@ importers:
'@homarr/core':
specifier: workspace:^0.1.0
version: link:../../packages/core
- '@homarr/cron-job-api':
- specifier: workspace:^0.1.0
- version: link:../../packages/cron-job-api
'@homarr/cron-job-status':
specifier: workspace:^0.1.0
version: link:../../packages/cron-job-status
- '@homarr/cron-jobs':
- specifier: workspace:^0.1.0
- version: link:../../packages/cron-jobs
- '@homarr/cron-jobs-core':
- specifier: workspace:^0.1.0
- version: link:../../packages/cron-jobs-core
'@homarr/db':
specifier: workspace:^0.1.0
version: link:../../packages/db
@@ -193,15 +184,9 @@ importers:
'@homarr/old-schema':
specifier: workspace:^0.1.0
version: link:../../packages/old-schema
- '@homarr/ping':
- specifier: workspace:^0.1.0
- version: link:../../packages/ping
'@homarr/redis':
specifier: workspace:^0.1.0
version: link:../../packages/redis
- '@homarr/request-handler':
- specifier: workspace:^0.1.0
- version: link:../../packages/request-handler
'@homarr/server-settings':
specifier: workspace:^0.1.0
version: link:../../packages/server-settings
@@ -292,9 +277,6 @@ importers:
dotenv:
specifier: ^17.3.1
version: 17.3.1
- fastify:
- specifier: ^5.7.4
- version: 5.8.2
flag-icons:
specifier: ^7.5.0
version: 7.5.0
@@ -302,11 +284,11 @@ importers:
specifier: ^13.0.6
version: 13.0.6
isomorphic-dompurify:
- specifier: ^3.0.0
- version: 3.0.0(@noble/hashes@2.0.1)
+ specifier: ^3.1.0
+ version: 3.1.0(@noble/hashes@2.0.1)
jotai:
- specifier: ^2.18.0
- version: 2.18.0(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4)
+ specifier: ^2.18.1
+ version: 2.18.1(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4)
mantine-react-table:
specifier: 2.0.0-beta.9
version: 2.0.0-beta.9(@mantine/core@8.3.16(@mantine/hooks@8.3.16(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.16(@mantine/core@8.3.16(@mantine/hooks@8.3.16(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.16(react@19.2.4))(dayjs@1.11.19)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.16(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.19)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -343,9 +325,6 @@ importers:
use-deep-compare-effect:
specifier: ^1.8.1
version: 1.8.1(react@19.2.4)
- ws:
- specifier: ^8.19.0
- version: 8.19.0
zod:
specifier: ^4.2.1
version: 4.2.1
@@ -377,27 +356,18 @@ importers:
'@types/swagger-ui-react':
specifier: ^5.18.0
version: 5.18.0
- '@types/ws':
- specifier: ^8.18.1
- version: 8.18.1
concurrently:
specifier: ^9.2.1
version: 9.2.1
- esbuild:
- specifier: ^0.27.3
- version: 0.27.3
eslint:
specifier: ^9.39.4
version: 9.39.4
node-loader:
specifier: ^2.1.0
- version: 2.1.0(webpack@5.94.0(esbuild@0.27.3))
+ version: 2.1.0(webpack@5.94.0)
prettier:
specifier: ^3.8.1
version: 3.8.1
- tsx:
- specifier: 4.20.4
- version: 4.20.4
typescript:
specifier: ^5.9.3
version: 5.9.3
@@ -930,13 +900,13 @@ importers:
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.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.0(@types/node@24.12.0))(pg@8.20.0)
+ version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.1(@types/node@24.12.0))(pg@8.20.0)
ioredis:
specifier: 5.10.0
version: 5.10.0
mysql2:
- specifier: 3.19.0
- version: 3.19.0(@types/node@24.12.0)
+ specifier: 3.19.1
+ version: 3.19.1(@types/node@24.12.0)
pg:
specifier: ^8.20.0
version: 8.20.0
@@ -1193,13 +1163,13 @@ importers:
version: 0.31.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.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.0(@types/node@24.12.0))(pg@8.20.0)
+ version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.1(@types/node@24.12.0))(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.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.2.1)
+ version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.1(@types/node@24.12.0))(pg@8.20.0))(zod@4.2.1)
mysql2:
- specifier: 3.19.0
- version: 3.19.0(@types/node@24.12.0)
+ specifier: 3.19.1
+ version: 3.19.1(@types/node@24.12.0)
pg:
specifier: ^8.20.0
version: 8.20.0
@@ -2023,8 +1993,8 @@ importers:
specifier: ^3.40.0
version: 3.40.0(react@19.2.4)
jotai:
- specifier: ^2.18.0
- version: 2.18.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4)
+ specifier: ^2.18.1
+ version: 2.18.1(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4)
next:
specifier: 16.1.6
version: 16.1.6(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.97.3)
@@ -2394,11 +2364,11 @@ importers:
specifier: ^10.1.8
version: 10.1.8(eslint@9.39.4)
eslint-config-turbo:
- specifier: ^2.8.14
- version: 2.8.14(eslint@9.39.4)(turbo@2.8.14)
+ specifier: ^2.8.15
+ version: 2.8.16(eslint@9.39.4)(turbo@2.8.16)
eslint-plugin-import:
specifier: ^2.32.0
- version: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)
+ version: 2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)
eslint-plugin-jsx-a11y:
specifier: ^6.10.2
version: 6.10.2(eslint@9.39.4)
@@ -2409,8 +2379,8 @@ importers:
specifier: ^6.1.1
version: 6.1.1(eslint@9.39.4)
typescript-eslint:
- specifier: ^8.56.1
- version: 8.56.1(eslint@9.39.4)(typescript@5.9.3)
+ specifier: ^8.57.0
+ version: 8.57.0(eslint@9.39.4)(typescript@5.9.3)
devDependencies:
'@homarr/prettier-config':
specifier: workspace:^0.1.0
@@ -3310,7 +3280,7 @@ packages:
resolution: {integrity: sha512-kz323qIQkNQElEGroo/E9MKPDuIR5pkuk/XEWd50K+cSEKdmdiYx0PKWUdaNY2ecJYngtF+njDMsMKplL6zfEg==}
engines: {node: '>=18.14.1'}
peerDependencies:
- hono: '>=4.12.5'
+ hono: '>=4.12.7'
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
@@ -4901,33 +4871,33 @@ packages:
'@tsconfig/svelte@1.0.13':
resolution: {integrity: sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA==}
- '@turbo/gen-darwin-64@2.8.14':
- resolution: {integrity: sha512-cbYPRLEVk1RXOw4AsJatP3XouZaRWG11kzo1Oj6Ei9i4G7CiQ0e6Ps58eW9anX1MIZ5WZLIxXsB74cLkLuPsEQ==}
+ '@turbo/gen-darwin-64@2.8.16':
+ resolution: {integrity: sha512-WhRCknwFe4/1UAd24i+gUqGK8Hko06gaRVT0eL7H+cMO8ucBBueyvSx/zBiYvI6mnTkiVvf9frAhEKczJNdfaw==}
cpu: [x64]
os: [darwin]
- '@turbo/gen-darwin-arm64@2.8.14':
- resolution: {integrity: sha512-wHuMmRrlyCZ2yIeRStSTQaw150+3X0TuQGyu+KaNst2Xwj2J1KKBvSpLr/JK3IE5KmpLCLd5zG9SYYudgg0rQg==}
+ '@turbo/gen-darwin-arm64@2.8.16':
+ resolution: {integrity: sha512-AZOzR0Q8LP11EXR4PzmS0hawWVfNn5cMKaE7tIcej0JhX15tdCtYyPRy3mvyiukairhT18E0M5gxn+I6sbG5uQ==}
cpu: [arm64]
os: [darwin]
- '@turbo/gen-linux-64@2.8.14':
- resolution: {integrity: sha512-b9y2ekqF12vwsZUb9DFLwu0Wl7HTeJYNqprkwxufE15G+WyLHaDmWcDdaD38JXzSbGBeSIMBx84VkezN+DyuwA==}
+ '@turbo/gen-linux-64@2.8.16':
+ resolution: {integrity: sha512-zS3Tg3kZffCFkRr41Tly7CHJffYrjCEGwCPMzguUpsnsqA6SRQuzrvQPzamZ/RLXwKDLBY2UtUr5NqQhtJA3fA==}
cpu: [x64]
os: [linux]
- '@turbo/gen-linux-arm64@2.8.14':
- resolution: {integrity: sha512-TlFV8zV5l1OUpT0MHrMsZ0980gHHWo15+QJ9FFbwaFfiQYuwS/rFih3YuyetciHyuxXww7z9ZzUofE/XMeUi7Q==}
+ '@turbo/gen-linux-arm64@2.8.16':
+ resolution: {integrity: sha512-+SLJP0oG1jDj1It8IuW00dXREqL2kNY110DRZZzkVcLvcvbrCNGLYpjUhKfqjV0MapmLlb7++1lbNNNCPQ7h0g==}
cpu: [arm64]
os: [linux]
- '@turbo/gen-windows-64@2.8.14':
- resolution: {integrity: sha512-VwcALslezMPB5dRoS2YMtBAmwdvQnXbdd2/FBayo186kGU02sKH1b++dTs0VLlBM1n7amPWDfg46AH8kaG6M1Q==}
+ '@turbo/gen-windows-64@2.8.16':
+ resolution: {integrity: sha512-a5+vw5XfGeBqX54mfYRvLb/rq5Z6Ys5cihNAre0+NZaSNufjj+uWnK4NeMNLXcihJZhOvbAwphPvJuPgKW5hCg==}
cpu: [x64]
os: [win32]
- '@turbo/gen@2.8.14':
- resolution: {integrity: sha512-mv4ZVMitAj5rl38Go2aUVbPt5YiLLaCFHUhINb1bLEjuiiwb8kCEQn0ghUZ1hJ2oNxXEd8aWtqNdX7lgdX5Nsw==}
+ '@turbo/gen@2.8.16':
+ resolution: {integrity: sha512-17IFXcVnQ8qaC8kMtRKqFXZKerSpXunIu1E3F9eHSeBIVm2jr4x9KpQdgbXSgLZuLfPCb099JJdgpgPI7tJxNw==}
hasBin: true
'@types/adm-zip@0.5.7':
@@ -5035,17 +5005,14 @@ 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/inquirer@9.0.9':
+ resolution: {integrity: sha512-/mWx5136gts2Z2e5izdoRCo46lPp5TMs9R15GTSsgg/XnZyxDWVqoVU3R9lWnccKpqwsJLvRoxbCjoJtZB7DSw==}
'@types/js-yaml@4.0.9':
resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
@@ -5074,10 +5041,6 @@ packages:
'@types/mime@1.3.5':
resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
- '@types/minimatch@6.0.0':
- resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==}
- deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.
-
'@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
@@ -5102,6 +5065,9 @@ packages:
'@types/pg@8.18.0':
resolution: {integrity: sha512-gT+oueVQkqnj6ajGJXblFR4iavIXWsGAFCk3dP4Kki5+a9R4NMt0JARdk6s8cUKcfUoqP5dAtDSLU8xYUTFV+Q==}
+ '@types/picomatch@4.0.2':
+ resolution: {integrity: sha512-qHHxQ+P9PysNEGbALT8f8YOSHW0KJu6l2xU8DYY0fu/EmGxXdVnuTLvFUvBgPJMSqXq29SYHveejeAha+4AYgA==}
+
'@types/prismjs@1.26.6':
resolution: {integrity: sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==}
@@ -5173,63 +5139,63 @@ packages:
'@types/xml2js@0.4.14':
resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==}
- '@typescript-eslint/eslint-plugin@8.56.1':
- resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==}
+ '@typescript-eslint/eslint-plugin@8.57.0':
+ resolution: {integrity: sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.56.1
+ '@typescript-eslint/parser': ^8.57.0
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.56.1':
- resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==}
+ '@typescript-eslint/parser@8.57.0':
+ resolution: {integrity: sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.56.1':
- resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==}
+ '@typescript-eslint/project-service@8.57.0':
+ resolution: {integrity: sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@8.56.1':
- resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==}
+ '@typescript-eslint/scope-manager@8.57.0':
+ resolution: {integrity: sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/tsconfig-utils@8.56.1':
- resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==}
+ '@typescript-eslint/tsconfig-utils@8.57.0':
+ resolution: {integrity: sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@8.56.1':
- resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==}
+ '@typescript-eslint/type-utils@8.57.0':
+ resolution: {integrity: sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/types@8.56.1':
- resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==}
+ '@typescript-eslint/types@8.57.0':
+ resolution: {integrity: sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.56.1':
- resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==}
+ '@typescript-eslint/typescript-estree@8.57.0':
+ resolution: {integrity: sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/utils@8.56.1':
- resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==}
+ '@typescript-eslint/utils@8.57.0':
+ resolution: {integrity: sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/visitor-keys@8.56.1':
- resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==}
+ '@typescript-eslint/visitor-keys@8.57.0':
+ resolution: {integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@umami/node@0.4.0':
@@ -5535,10 +5501,6 @@ packages:
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'}
@@ -5821,9 +5783,6 @@ 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'}
@@ -5857,8 +5816,8 @@ 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==}
+ change-case@5.4.4:
+ resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
char-regex@1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
@@ -5876,9 +5835,6 @@ 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==}
@@ -5931,14 +5887,14 @@ packages:
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'}
@@ -5957,6 +5913,10 @@ 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'}
@@ -6027,9 +5987,6 @@ packages:
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'}
@@ -6311,6 +6268,9 @@ 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'}
@@ -6322,10 +6282,6 @@ packages:
defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
- 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'}
@@ -6379,6 +6335,9 @@ packages:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
dns-caching@0.2.9:
resolution: {integrity: sha512-FSvmI/dC/HXYIyX2m7MvQt36Yut49GCw3hWaDqaTgLLmKyLs5lmv/jhmNKqWjSF2vRGTgFYL0G3mwcjLlKXj0w==}
@@ -6407,11 +6366,8 @@ packages:
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.3.3:
+ resolution: {integrity: sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==}
dot-prop@5.3.0:
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
@@ -6735,8 +6691,8 @@ packages:
peerDependencies:
eslint: '>=7.0.0'
- eslint-config-turbo@2.8.14:
- resolution: {integrity: sha512-WYB0jwiITLpiWx42J7p1XNSAzRxAwmX9qpRBCIH4+R/9mgp72o8GtUKLX8vgxK4c8Vwqiedv4MqPwDxJurrVWQ==}
+ eslint-config-turbo@2.8.16:
+ resolution: {integrity: sha512-7JY6vlgFZWUH1YlLpxQjgia3bjcIpWxYahDQ/XfXSU5etv2KyEPY/O6jK/8Tg+Z2xjZm8ZQFgqK15K5MLIQAFA==}
peerDependencies:
eslint: '>6.6.0'
turbo: '>2.0.0'
@@ -6793,8 +6749,8 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- eslint-plugin-turbo@2.8.14:
- resolution: {integrity: sha512-AU3H0trwN9AoDZHHIx+TWSLc/AXIqk0iB93dy5zF5EmhAS3KTVPlFRJHWXc4BdKo8gy/Z11DKrZZQTpqIZ8k4A==}
+ eslint-plugin-turbo@2.8.16:
+ resolution: {integrity: sha512-fhvTLe0PnyV72npfBi/IwwVMzkTnUw9MxS2S2Q0Oo1aed7woAtHwSL5DEdTTV6tXZSKbqRHaIbjV6rwx+1iRYA==}
peerDependencies:
eslint: '>6.6.0'
turbo: '>2.0.0'
@@ -6907,10 +6863,6 @@ packages:
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'}
@@ -7000,10 +6952,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'}
@@ -7098,9 +7046,6 @@ packages:
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}
@@ -7200,6 +7145,9 @@ packages:
get-tsconfig@4.13.6:
resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==}
+ get-tsconfig@4.8.1:
+ resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
+
git-hooks-list@4.1.1:
resolution: {integrity: sha512-cmP497iLq54AZnv4YRAEMnEyQ1eIn4tGKbmswqwmFV4GBnAqE8NLtWxxdXa++AalfgL5EBH4IxTPyquEuGY/jA==}
@@ -7229,10 +7177,6 @@ packages:
resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
engines: {node: 18 || 20 || >=22}
- glob@7.2.3:
- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- 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
-
global-dirs@3.0.1:
resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
engines: {node: '>=10'}
@@ -7248,10 +7192,6 @@ packages:
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==}
@@ -7330,9 +7270,6 @@ 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==}
@@ -7345,8 +7282,8 @@ packages:
highlightjs-vue@1.0.0:
resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==}
- hono@4.12.5:
- resolution: {integrity: sha512-3qq+FUBtlTHhtYxbxheZgY8NIFnkkC/MR8u5TTsr7YZ3wixryQ3cCwn3iZbg8p8B88iDBBAYSfZDS75t8MN7Vg==}
+ hono@4.12.7:
+ resolution: {integrity: sha512-jq9l1DM0zVIvsm3lv9Nw9nlJnMNPOcAtsbsgiUhWcFzPE99Gvo6yRTlszSLLYacMeQ6quHD6hMfId8crVHvexw==}
engines: {node: '>=16.9.0'}
hook-std@4.0.0:
@@ -7479,10 +7416,6 @@ 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==}
@@ -7496,9 +7429,9 @@ packages:
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@9.3.8:
+ resolution: {integrity: sha512-pFGGdaHrmRKMh4WoDDSowddgjT1Vkl90atobmTeSmcPGdYiwikch/m/Ef5wRaiamHejtw0cUUMMerzDUXCci2w==}
+ engines: {node: '>=18'}
internal-slot@1.0.7:
resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
@@ -7641,8 +7574,9 @@ packages:
resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
engines: {node: '>=10'}
- is-lower-case@1.1.3:
- resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==}
+ is-interactive@1.0.0:
+ resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
+ engines: {node: '>=8'}
is-map@2.0.3:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
@@ -7672,10 +7606,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'}
@@ -7749,13 +7679,14 @@ packages:
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'}
@@ -7788,9 +7719,9 @@ packages:
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'}
+ isbinaryfile@5.0.7:
+ resolution: {integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==}
+ engines: {node: '>= 18.0.0'}
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
@@ -7799,8 +7730,8 @@ packages:
resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==}
engines: {node: '>=18'}
- isomorphic-dompurify@3.0.0:
- resolution: {integrity: sha512-5K+MYP7Nrg74+Bi+QmQGzQ/FgEOyVHWsN8MuJy5wYQxxBRxPnWsD25Tjjt5FWYhan3OQ+vNLubyNJH9dfG03lQ==}
+ isomorphic-dompurify@3.1.0:
+ resolution: {integrity: sha512-mwWh3/+EQPeBvUAfZZDG5Tmyvr/yKxKB8VYSdw6c+3hMfW4FZZ93kxdohpHmtmSRUWX/jOJQtVObeA6cBLvosA==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
isomorphic-fetch@3.0.0:
@@ -7849,8 +7780,8 @@ packages:
jose@6.0.8:
resolution: {integrity: sha512-EyUPtOKyTYq+iMOszO42eobQllaIjJnwkZ2U93aJzNyPibCy7CEvT9UQnaCVB51IAd49gbNdCew1c0LcLTCB2g==}
- jotai@2.18.0:
- resolution: {integrity: sha512-XI38kGWAvtxAZ+cwHcTgJsd+kJOJGf3OfL4XYaXWZMZ7IIY8e53abpIHvtVn1eAgJ5dlgwlGFnP4psrZ/vZbtA==}
+ jotai@2.18.1:
+ resolution: {integrity: sha512-e0NOzK+yRFwHo7DOp0DS0Ycq74KMEAObDWFGmfEL28PD9nLqBTt3/Ug7jf9ca72x0gC9LQZG9zH+0ISICmy3iA==}
engines: {node: '>=12.20.0'}
peerDependencies:
'@babel/core': '>=7.0.0'
@@ -8045,10 +7976,6 @@ 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==}
@@ -8067,6 +7994,10 @@ packages:
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
logform@2.7.0:
resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==}
engines: {node: '>= 12.0.0'}
@@ -8081,12 +8012,6 @@ 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==}
@@ -8351,10 +8276,6 @@ packages:
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@3.0.1:
resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
engines: {node: '>=10'}
@@ -8375,8 +8296,9 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- mute-stream@0.0.8:
- resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+ mute-stream@1.0.0:
+ resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
mute-stream@2.0.0:
resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==}
@@ -8387,8 +8309,8 @@ packages:
engines: {node: '>=8', npm: '>=5'}
hasBin: true
- mysql2@3.19.0:
- resolution: {integrity: sha512-760Ay9HViAUT7V8QkYxrIx/LHJPGWtE+D/31VuiDm1eu2IFaUIqMcK7+hVHnmgnC7JnnwreFKsZoa8K6BnGl8Q==}
+ mysql2@3.19.1:
+ resolution: {integrity: sha512-yn4zh+Uxu5J3Zvi6Ao96lJ7BSBRkspHflWQAmOPND+htbpIKDQw99TTvPzgihKO/QyMickZopO4OsnixnpcUwA==}
engines: {node: '>= 8.0'}
peerDependencies:
'@types/node': '>= 8'
@@ -8491,9 +8413,6 @@ packages:
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'}
@@ -8561,9 +8480,9 @@ 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-plop@0.32.3:
+ resolution: {integrity: sha512-tn+OxutdqhvoByKJ7p84FZBSUDfUB76bcvj0ugLBvgE9V52LFcnz8cauCDKi6otnctvFCqa9XkrU35pBY5Baig==}
+ engines: {node: '>=18'}
node-releases@2.0.18:
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
@@ -8776,6 +8695,10 @@ packages:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
+ 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==}
@@ -8811,10 +8734,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'}
@@ -8837,9 +8756,6 @@ packages:
pako@2.1.0:
resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
- param-case@2.1.1:
- resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==}
-
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
@@ -8879,12 +8795,6 @@ packages:
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==}
-
path-exists@3.0.0:
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
engines: {node: '>=4'}
@@ -8893,10 +8803,6 @@ 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-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
@@ -9562,6 +9468,11 @@ packages:
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+ resolve@1.22.11:
+ resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
@@ -9596,11 +9507,6 @@ 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==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -9627,17 +9533,13 @@ packages:
rrweb@2.0.0-alpha.4:
resolution: {integrity: sha512-wEHUILbxDPcNwkM3m4qgPgXAiBJyqCbbOHyVoNEVBJzHszWEFYyTbrZqUdeb1EfmTRC2PsumCIkVcomJ/xcOzA==}
- run-async@2.4.1:
- resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
+ run-async@3.0.0:
+ resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==}
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==}
@@ -9738,9 +9640,6 @@ packages:
engines: {node: '>=10'}
hasBin: true
- sentence-case@2.1.1:
- resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==}
-
serialize-error@8.1.0:
resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==}
engines: {node: '>=10'}
@@ -9835,17 +9734,10 @@ packages:
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==}
@@ -10120,9 +10012,6 @@ packages:
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==}
@@ -10205,9 +10094,6 @@ packages:
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'}
@@ -10230,8 +10116,8 @@ packages:
resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==}
engines: {node: '>=14.0.0'}
- title-case@2.1.1:
- resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==}
+ title-case@4.3.2:
+ resolution: {integrity: sha512-I/nkcBo73mO42Idfv08jhInV61IMb61OdIFxk+B4Gu1oBjWBPOLmhZdsli+oJCVaD+86pYQA93cJfFt224ZFAA==}
tldts-core@6.1.69:
resolution: {integrity: sha512-nygxy9n2PBUFQUtAXAc122gGo+04/j5qr5TGQFZTHafTKYvmARVXt2cA5rgero2/dnXUfkdPtiJoKmrd3T+wdA==}
@@ -10357,9 +10243,6 @@ packages:
resolution: {integrity: sha512-zvQvhZLzTaEmNNgJbBlUYT/JOq9Xpw/xkxCqs7IT2d2/7o7pss0iZOlZXuHJ5VcvSvTny42Vc6+6GyzZcrCJ1g==}
engines: {node: '>=18'}
- tslib@1.14.1:
- resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
-
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@@ -10384,38 +10267,38 @@ packages:
resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
- turbo-darwin-64@2.8.14:
- resolution: {integrity: sha512-9sFi7n2lLfEsGWi5OEoA/eTtQU2BPKtzSYKqufMtDeRmqMT9vKjbv9gJCRkllSVE9BOXA0qXC3diyX8V8rKIKw==}
+ turbo-darwin-64@2.8.16:
+ resolution: {integrity: sha512-KWa4hUMWrpADC6Q/wIHRkBLw6X6MV9nx6X7hSXbTrrMz0KdaKhmfudUZ3sS76bJFmgArBU25cSc0AUyyrswYxg==}
cpu: [x64]
os: [darwin]
- turbo-darwin-arm64@2.8.14:
- resolution: {integrity: sha512-aS4yJuy6A1PCLws+PJpZP0qCURG8Y5iVx13z/WAbKyeDTY6W6PiGgcEllSaeLGxyn++382ztN/EZH85n2zZ6VQ==}
+ turbo-darwin-arm64@2.8.16:
+ resolution: {integrity: sha512-NBgaqBDLQSZlJR4D5XCkQq6noaO0RvIgwm5eYFJYL3bH5dNu8o0UBpq7C5DYnQI8+ybyoHFjT5/icN4LeUYLow==}
cpu: [arm64]
os: [darwin]
- turbo-linux-64@2.8.14:
- resolution: {integrity: sha512-XC6wPUDJkakjhNLaS0NrHDMiujRVjH+naEAwvKLArgqRaFkNxjmyNDRM4eu3soMMFmjym6NTxYaF74rvET+Orw==}
+ turbo-linux-64@2.8.16:
+ resolution: {integrity: sha512-VYPdcCRevI9kR/hr1H1xwXy7QQt/jNKiim1e1mjANBXD2E9VZWMkIL74J1Huad5MbU3/jw7voHOqDPLJPC2p6w==}
cpu: [x64]
os: [linux]
- turbo-linux-arm64@2.8.14:
- resolution: {integrity: sha512-ChfE7isyVNjZrVSPDwcfqcHLG/FuIBbOFxnt1FM8vSuBGzHAs8AlTdwFNIxlEMJfZ8Ad9mdMxdmsCUPIWiQ6cg==}
+ turbo-linux-arm64@2.8.16:
+ resolution: {integrity: sha512-beq8tgUVI3uwkQkXJMiOr/hfxQRw54M3elpBwqgYFfemiK5LhCjjcwO0DkE8GZZfElBIlk+saMAQOZy3885wNQ==}
cpu: [arm64]
os: [linux]
- turbo-windows-64@2.8.14:
- resolution: {integrity: sha512-FTbIeQL1ycLFW2t9uQNMy+bRSzi3Xhwun/e7ZhFBdM+U0VZxxrtfYEBM9CHOejlfqomk6Jh7aRz0sJoqYn39Hg==}
+ turbo-windows-64@2.8.16:
+ resolution: {integrity: sha512-Ig7b46iUgiOIkea/D3Z7H+zNzvzSnIJcLYFpZLA0RxbUTrbLhv9qIPwv3pT9p/abmu0LXVKHxaOo+p26SuDhzw==}
cpu: [x64]
os: [win32]
- turbo-windows-arm64@2.8.14:
- resolution: {integrity: sha512-KgZX12cTyhY030qS7ieT8zRkhZZE2VWJasDFVUSVVn17nR7IShpv68/7j5UqJNeRLIGF1XPK0phsP5V5yw3how==}
+ turbo-windows-arm64@2.8.16:
+ resolution: {integrity: sha512-fOWjbEA2PiE2HEnFQrwNZKYEdjewyPc2no9GmrXklZnTCuMsxeCN39aVlKpKpim03Zq/ykIuvApGwq8ZbfS2Yw==}
cpu: [arm64]
os: [win32]
- turbo@2.8.14:
- resolution: {integrity: sha512-UCTxeMNYT1cKaHiIFdLCQ7ulI+jw5i5uOnJOrRXsgUD7G3+OjlUjwVd7JfeVt2McWSVGjYA3EVW/v1FSsJ5DtA==}
+ turbo@2.8.16:
+ resolution: {integrity: sha512-u6e9e3cTTpE2adQ1DYm3A3r8y3LAONEx1jYvJx6eIgSY4bMLxIxs0riWzI0Z/IK903ikiUzRPZ2c1Ph5lVLkhA==}
hasBin: true
tweetnacl@0.14.5:
@@ -10491,8 +10374,8 @@ packages:
types-ramda@0.30.1:
resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==}
- typescript-eslint@8.56.1:
- resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==}
+ typescript-eslint@8.57.0:
+ resolution: {integrity: sha512-W8GcigEMEeB07xEZol8oJ26rigm3+bfPHxHvwbYUlu1fUDsGuQ7Hiskx5xGW/xM4USc9Ephe3jtv7ZYPQntHeA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
@@ -10643,12 +10526,6 @@ packages:
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==}
@@ -10853,6 +10730,9 @@ packages:
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'}
@@ -11986,9 +11866,9 @@ snapshots:
- undici
- utf-8-validate
- '@hono/node-server@1.13.0(hono@4.12.5)':
+ '@hono/node-server@1.13.0(hono@4.12.7)':
dependencies:
- hono: 4.12.5
+ hono: 4.12.7
'@humanfs/core@0.19.1': {}
@@ -12435,7 +12315,7 @@ snapshots:
'@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.12.5)
+ '@hono/node-server': 1.13.0(hono@4.12.7)
'@million/install': 1.0.14
'@rollup/pluginutils': 5.1.0
'@rrweb/types': 2.0.0-alpha.16
@@ -12443,7 +12323,7 @@ snapshots:
ci-info: 4.0.0
esbuild: 0.27.3
faster-babel-types: 0.1.0(@babel/types@7.26.0)
- hono: 4.12.5
+ hono: 4.12.7
isomorphic-fetch: 3.0.0
nanoid: 5.1.6
ohash: 1.1.4
@@ -13825,31 +13705,31 @@ snapshots:
'@tsconfig/svelte@1.0.13': {}
- '@turbo/gen-darwin-64@2.8.14':
+ '@turbo/gen-darwin-64@2.8.16':
optional: true
- '@turbo/gen-darwin-arm64@2.8.14':
+ '@turbo/gen-darwin-arm64@2.8.16':
optional: true
- '@turbo/gen-linux-64@2.8.14':
+ '@turbo/gen-linux-64@2.8.16':
optional: true
- '@turbo/gen-linux-arm64@2.8.14':
+ '@turbo/gen-linux-arm64@2.8.16':
optional: true
- '@turbo/gen-windows-64@2.8.14':
+ '@turbo/gen-windows-64@2.8.16':
optional: true
- '@turbo/gen@2.8.14(@types/node@24.12.0)':
+ '@turbo/gen@2.8.16(@types/node@24.12.0)':
dependencies:
'@inquirer/prompts': 7.10.1(@types/node@24.12.0)
- node-plop: 0.26.3
+ node-plop: 0.32.3(@types/node@24.12.0)
optionalDependencies:
- '@turbo/gen-darwin-64': 2.8.14
- '@turbo/gen-darwin-arm64': 2.8.14
- '@turbo/gen-linux-64': 2.8.14
- '@turbo/gen-linux-arm64': 2.8.14
- '@turbo/gen-windows-64': 2.8.14
+ '@turbo/gen-darwin-64': 2.8.16
+ '@turbo/gen-darwin-arm64': 2.8.16
+ '@turbo/gen-linux-64': 2.8.16
+ '@turbo/gen-linux-arm64': 2.8.16
+ '@turbo/gen-windows-64': 2.8.16
transitivePeerDependencies:
- '@types/node'
@@ -13983,21 +13863,16 @@ snapshots:
'@types/qs': 6.9.16
'@types/serve-static': 1.15.7
- '@types/glob@7.2.0':
- dependencies:
- '@types/minimatch': 6.0.0
- '@types/node': 24.12.0
-
'@types/hast@3.0.4':
dependencies:
'@types/unist': 2.0.11
'@types/http-errors@2.0.4': {}
- '@types/inquirer@6.5.0':
+ '@types/inquirer@9.0.9':
dependencies:
'@types/through': 0.0.33
- rxjs: 6.6.7
+ rxjs: 7.8.2
'@types/js-yaml@4.0.9': {}
@@ -14022,10 +13897,6 @@ snapshots:
'@types/mime@1.3.5': {}
- '@types/minimatch@6.0.0':
- dependencies:
- minimatch: 10.2.2
-
'@types/ms@2.1.0': {}
'@types/node-cron@3.0.11': {}
@@ -14055,6 +13926,8 @@ snapshots:
pg-protocol: 1.12.0
pg-types: 2.2.0
+ '@types/picomatch@4.0.2': {}
+
'@types/prismjs@1.26.6': {}
'@types/qs@6.9.16': {}
@@ -14132,14 +14005,14 @@ snapshots:
dependencies:
'@types/node': 24.12.0
- '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3)':
+ '@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.56.1(eslint@9.39.4)(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 8.56.1
- '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4)(typescript@5.9.3)
- '@typescript-eslint/utils': 8.56.1(eslint@9.39.4)(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.56.1
+ '@typescript-eslint/parser': 8.57.0(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.57.0
+ '@typescript-eslint/type-utils': 8.57.0(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.57.0(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.57.0
eslint: 9.39.4
ignore: 7.0.5
natural-compare: 1.4.0
@@ -14148,41 +14021,41 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.56.1(eslint@9.39.4)(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.57.0(eslint@9.39.4)(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.56.1
- '@typescript-eslint/types': 8.56.1
- '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.56.1
+ '@typescript-eslint/scope-manager': 8.57.0
+ '@typescript-eslint/types': 8.57.0
+ '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.57.0
debug: 4.4.3
eslint: 9.39.4
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)':
+ '@typescript-eslint/project-service@8.57.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3)
- '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.57.0
debug: 4.4.3
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.56.1':
+ '@typescript-eslint/scope-manager@8.57.0':
dependencies:
- '@typescript-eslint/types': 8.56.1
- '@typescript-eslint/visitor-keys': 8.56.1
+ '@typescript-eslint/types': 8.57.0
+ '@typescript-eslint/visitor-keys': 8.57.0
- '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)':
+ '@typescript-eslint/tsconfig-utils@8.57.0(typescript@5.9.3)':
dependencies:
typescript: 5.9.3
- '@typescript-eslint/type-utils@8.56.1(eslint@9.39.4)(typescript@5.9.3)':
+ '@typescript-eslint/type-utils@8.57.0(eslint@9.39.4)(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.56.1
- '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
- '@typescript-eslint/utils': 8.56.1(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/types': 8.57.0
+ '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.57.0(eslint@9.39.4)(typescript@5.9.3)
debug: 4.4.3
eslint: 9.39.4
ts-api-utils: 2.4.0(typescript@5.9.3)
@@ -14190,14 +14063,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.56.1': {}
+ '@typescript-eslint/types@8.57.0': {}
- '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)':
+ '@typescript-eslint/typescript-estree@8.57.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3)
- '@typescript-eslint/types': 8.56.1
- '@typescript-eslint/visitor-keys': 8.56.1
+ '@typescript-eslint/project-service': 8.57.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.57.0
+ '@typescript-eslint/visitor-keys': 8.57.0
debug: 4.4.3
minimatch: 10.2.2
semver: 7.7.4
@@ -14207,20 +14080,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.56.1(eslint@9.39.4)(typescript@5.9.3)':
+ '@typescript-eslint/utils@8.57.0(eslint@9.39.4)(typescript@5.9.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4)
- '@typescript-eslint/scope-manager': 8.56.1
- '@typescript-eslint/types': 8.56.1
- '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.57.0
+ '@typescript-eslint/types': 8.57.0
+ '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3)
eslint: 9.39.4
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.56.1':
+ '@typescript-eslint/visitor-keys@8.57.0':
dependencies:
- '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/types': 8.57.0
eslint-visitor-keys: 5.0.0
'@umami/node@0.4.0': {}
@@ -14596,8 +14469,6 @@ 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
@@ -14933,11 +14804,6 @@ 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: {}
@@ -14963,26 +14829,7 @@ 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
+ change-case@5.4.4: {}
char-regex@1.0.2: {}
@@ -14994,8 +14841,6 @@ snapshots:
character-reference-invalid@2.0.1: {}
- chardet@0.7.0: {}
-
chardet@2.1.1: {}
chokidar@4.0.0:
@@ -15042,14 +14887,14 @@ 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: {}
@@ -15072,6 +14917,8 @@ 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: {}
@@ -15155,11 +15002,6 @@ snapshots:
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
@@ -15413,6 +15255,10 @@ 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
@@ -15427,17 +15273,6 @@ snapshots:
defu@6.1.4: {}
- 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: {}
@@ -15470,6 +15305,8 @@ snapshots:
dependencies:
path-type: 4.0.0
+ dlv@1.1.3: {}
+
dns-caching@0.2.9:
dependencies:
lru-cache: 11.2.4
@@ -15514,14 +15351,10 @@ snapshots:
optionalDependencies:
'@types/trusted-types': 2.0.7
- dompurify@3.3.1:
+ dompurify@3.3.3:
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
@@ -15554,19 +15387,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
- drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.0(@types/node@24.12.0))(pg@8.20.0):
+ drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.1(@types/node@24.12.0))(pg@8.20.0):
optionalDependencies:
'@libsql/client-wasm': 0.14.0
'@types/better-sqlite3': 7.6.13
'@types/pg': 8.18.0
better-sqlite3: 12.6.2
gel: 2.0.0
- mysql2: 3.19.0(@types/node@24.12.0)
+ mysql2: 3.19.1(@types/node@24.12.0)
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.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.2.1):
+ 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.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.1(@types/node@24.12.0))(pg@8.20.0))(zod@4.2.1):
dependencies:
- drizzle-orm: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.0(@types/node@24.12.0))(pg@8.20.0)
+ drizzle-orm: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.19.1(@types/node@24.12.0))(pg@8.20.0)
zod: 4.2.1
dunder-proto@1.0.1:
@@ -15971,11 +15804,11 @@ snapshots:
dependencies:
eslint: 9.39.4
- eslint-config-turbo@2.8.14(eslint@9.39.4)(turbo@2.8.14):
+ eslint-config-turbo@2.8.16(eslint@9.39.4)(turbo@2.8.16):
dependencies:
eslint: 9.39.4
- eslint-plugin-turbo: 2.8.14(eslint@9.39.4)(turbo@2.8.14)
- turbo: 2.8.14
+ eslint-plugin-turbo: 2.8.16(eslint@9.39.4)(turbo@2.8.16)
+ turbo: 2.8.16
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -15985,17 +15818,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.4):
+ eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.4):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 8.56.1(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.57.0(eslint@9.39.4)(typescript@5.9.3)
eslint: 9.39.4
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -16006,7 +15839,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.39.4
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.4)
+ eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.4)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -16018,7 +15851,7 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.56.1(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.57.0(eslint@9.39.4)(typescript@5.9.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -16075,11 +15908,11 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
- eslint-plugin-turbo@2.8.14(eslint@9.39.4)(turbo@2.8.14):
+ eslint-plugin-turbo@2.8.16(eslint@9.39.4)(turbo@2.8.16):
dependencies:
dotenv: 16.0.3
eslint: 9.39.4
- turbo: 2.8.14
+ turbo: 2.8.16
eslint-scope@5.1.1:
dependencies:
@@ -16221,12 +16054,6 @@ snapshots:
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
@@ -16323,10 +16150,6 @@ snapshots:
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
@@ -16418,8 +16241,6 @@ snapshots:
jsonfile: 6.1.0
universalify: 2.0.1
- fs.realpath@1.0.0: {}
-
fsevents@2.3.2:
optional: true
@@ -16540,6 +16361,10 @@ snapshots:
dependencies:
resolve-pkg-maps: 1.0.0
+ get-tsconfig@4.8.1:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
git-hooks-list@4.1.1: {}
git-log-parser@1.2.1:
@@ -16578,15 +16403,6 @@ snapshots:
minipass: 7.1.3
path-scurry: 2.0.2
- glob@7.2.3:
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.5
- once: 1.4.0
- path-is-absolute: 1.0.1
-
global-dirs@3.0.1:
dependencies:
ini: 2.0.0
@@ -16603,17 +16419,6 @@ snapshots:
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.1
- glob: 7.2.3
- ignore: 5.3.2
- merge2: 1.4.1
- slash: 3.0.0
-
globrex@0.1.2: {}
gopd@1.0.1:
@@ -16713,11 +16518,6 @@ 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:
@@ -16728,7 +16528,7 @@ snapshots:
highlightjs-vue@1.0.0: {}
- hono@4.12.5: {}
+ hono@4.12.7: {}
hook-std@4.0.0: {}
@@ -16839,11 +16639,6 @@ snapshots:
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: {}
@@ -16852,21 +16647,22 @@ snapshots:
inline-style-parser@0.2.4: {}
- inquirer@7.3.3:
+ inquirer@9.3.8(@types/node@24.12.0):
dependencies:
+ '@inquirer/external-editor': 1.0.3(@types/node@24.12.0)
+ '@inquirer/figures': 1.0.15
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
+ cli-width: 4.1.0
+ mute-stream: 1.0.0
+ ora: 5.4.1
+ run-async: 3.0.0
+ rxjs: 7.8.2
string-width: 4.2.3
strip-ansi: 6.0.1
- through: 2.3.8
+ wrap-ansi: 6.2.0
+ yoctocolors-cjs: 2.1.3
+ transitivePeerDependencies:
+ - '@types/node'
internal-slot@1.0.7:
dependencies:
@@ -17025,9 +16821,7 @@ snapshots:
global-dirs: 3.0.1
is-path-inside: 3.0.3
- is-lower-case@1.1.3:
- dependencies:
- lower-case: 1.1.4
+ is-interactive@1.0.0: {}
is-map@2.0.3: {}
@@ -17048,8 +16842,6 @@ snapshots:
is-obj@2.0.0: {}
- is-path-cwd@2.2.0: {}
-
is-path-inside@3.0.3: {}
is-plain-obj@4.1.0: {}
@@ -17115,11 +16907,9 @@ snapshots:
is-typedarray@1.0.0: {}
- is-unicode-supported@2.1.0: {}
+ is-unicode-supported@0.1.0: {}
- is-upper-case@1.1.2:
- dependencies:
- upper-case: 1.1.3
+ is-unicode-supported@2.1.0: {}
is-weakmap@2.0.2: {}
@@ -17148,16 +16938,16 @@ snapshots:
isarray@2.0.5: {}
- isbinaryfile@4.0.10: {}
+ isbinaryfile@5.0.7: {}
isexe@2.0.0: {}
isexe@3.1.5:
optional: true
- isomorphic-dompurify@3.0.0(@noble/hashes@2.0.1):
+ isomorphic-dompurify@3.1.0(@noble/hashes@2.0.1):
dependencies:
- dompurify: 3.3.1
+ dompurify: 3.3.3
jsdom: 28.1.0(@noble/hashes@2.0.1)
transitivePeerDependencies:
- '@noble/hashes'
@@ -17225,14 +17015,14 @@ snapshots:
jose@6.0.8: {}
- jotai@2.18.0(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4):
+ jotai@2.18.1(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4):
optionalDependencies:
'@babel/core': 7.26.0
'@babel/template': 7.28.6
'@types/react': 19.2.14
react: 19.2.4
- jotai@2.18.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4):
+ jotai@2.18.1(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4):
optionalDependencies:
'@babel/core': 7.29.0
'@babel/template': 7.28.6
@@ -17419,8 +17209,6 @@ snapshots:
lodash.escaperegexp@4.1.2: {}
- lodash.get@4.4.2: {}
-
lodash.isarguments@3.1.0: {}
lodash.isplainobject@4.0.6: {}
@@ -17433,6 +17221,11 @@ snapshots:
lodash@4.17.21: {}
+ log-symbols@4.1.0:
+ dependencies:
+ chalk: 4.1.2
+ is-unicode-supported: 0.1.0
+
logform@2.7.0:
dependencies:
'@colors/colors': 1.6.0
@@ -17450,12 +17243,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
@@ -17835,10 +17622,6 @@ snapshots:
mkdirp-classic@0.5.3: {}
- mkdirp@0.5.6:
- dependencies:
- minimist: 1.2.8
-
mkdirp@3.0.1: {}
mpd-parser@1.3.1:
@@ -17854,7 +17637,7 @@ snapshots:
ms@2.1.3: {}
- mute-stream@0.0.8: {}
+ mute-stream@1.0.0: {}
mute-stream@2.0.0: {}
@@ -17863,7 +17646,7 @@ snapshots:
'@babel/runtime': 7.28.6
global: 4.4.0
- mysql2@3.19.0(@types/node@24.12.0):
+ mysql2@3.19.1(@types/node@24.12.0):
dependencies:
'@types/node': 24.12.0
aws-ssl-profiles: 1.1.2
@@ -17989,10 +17772,6 @@ snapshots:
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.4
@@ -18037,26 +17816,27 @@ snapshots:
dependencies:
rrule: 2.8.1
- node-loader@2.1.0(webpack@5.94.0(esbuild@0.27.3)):
+ node-loader@2.1.0(webpack@5.94.0):
dependencies:
loader-utils: 2.0.4
- webpack: 5.94.0(esbuild@0.27.3)
+ webpack: 5.94.0
node-mock-http@1.0.2: {}
- node-plop@0.26.3:
+ node-plop@0.32.3(@types/node@24.12.0):
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
+ '@types/inquirer': 9.0.9
+ '@types/picomatch': 4.0.2
+ change-case: 5.4.4
+ dlv: 1.1.3
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
+ inquirer: 9.3.8(@types/node@24.12.0)
+ isbinaryfile: 5.0.7
+ resolve: 1.22.11
+ tinyglobby: 0.2.15
+ title-case: 4.3.2
+ transitivePeerDependencies:
+ - '@types/node'
node-releases@2.0.18: {}
@@ -18230,6 +18010,18 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
+ 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:
@@ -18262,10 +18054,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: {}
@@ -18278,10 +18066,6 @@ snapshots:
pako@2.1.0: {}
- param-case@2.1.1:
- dependencies:
- no-case: 2.3.2
-
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
@@ -18330,21 +18114,10 @@ snapshots:
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
-
path-exists@3.0.0: {}
path-exists@4.0.0: {}
- path-is-absolute@1.0.1: {}
-
path-key@3.1.1: {}
path-key@4.0.0: {}
@@ -19115,6 +18888,12 @@ snapshots:
resolve-pkg-maps@1.0.0: {}
+ resolve@1.22.11:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
resolve@1.22.8:
dependencies:
is-core-module: 2.16.1
@@ -19144,10 +18923,6 @@ snapshots:
rfdc@1.4.1: {}
- rimraf@3.0.2:
- dependencies:
- glob: 7.2.3
-
rollup@4.48.1:
dependencies:
'@types/estree': 1.0.8
@@ -19206,16 +18981,12 @@ snapshots:
rrdom: 0.1.7
rrweb-snapshot: 2.0.0-alpha.4
- run-async@2.4.1: {}
+ run-async@3.0.0: {}
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
@@ -19345,11 +19116,6 @@ snapshots:
semver@7.7.4: {}
- sentence-case@2.1.1:
- dependencies:
- no-case: 2.3.2
- upper-case-first: 1.1.2
-
serialize-error@8.1.0:
dependencies:
type-fest: 0.20.2
@@ -19486,14 +19252,8 @@ snapshots:
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
@@ -19886,11 +19646,6 @@ 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: {}
tabbable@6.2.0: {}
@@ -19949,15 +19704,13 @@ snapshots:
type-fest: 2.19.0
unique-string: 3.0.0
- terser-webpack-plugin@5.3.17(esbuild@0.27.3)(webpack@5.94.0(esbuild@0.27.3)):
+ terser-webpack-plugin@5.3.17(webpack@5.94.0):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
schema-utils: 4.3.3
terser: 5.46.0
- webpack: 5.94.0(esbuild@0.27.3)
- optionalDependencies:
- esbuild: 0.27.3
+ webpack: 5.94.0
terser@5.46.0:
dependencies:
@@ -20010,8 +19763,6 @@ 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
@@ -20029,10 +19780,7 @@ snapshots:
tinyrainbow@3.0.3: {}
- title-case@2.1.1:
- dependencies:
- no-case: 2.3.2
- upper-case: 1.1.3
+ title-case@4.3.2: {}
tldts-core@6.1.69: {}
@@ -20150,8 +19898,6 @@ snapshots:
- encoding
- supports-color
- tslib@1.14.1: {}
-
tslib@2.8.1: {}
tsscmp@1.0.6: {}
@@ -20159,7 +19905,7 @@ snapshots:
tsx@4.20.4:
dependencies:
esbuild: 0.25.12
- get-tsconfig: 4.13.6
+ get-tsconfig: 4.8.1
optionalDependencies:
fsevents: 2.3.3
@@ -20177,32 +19923,32 @@ snapshots:
tunnel@0.0.6: {}
- turbo-darwin-64@2.8.14:
+ turbo-darwin-64@2.8.16:
optional: true
- turbo-darwin-arm64@2.8.14:
+ turbo-darwin-arm64@2.8.16:
optional: true
- turbo-linux-64@2.8.14:
+ turbo-linux-64@2.8.16:
optional: true
- turbo-linux-arm64@2.8.14:
+ turbo-linux-arm64@2.8.16:
optional: true
- turbo-windows-64@2.8.14:
+ turbo-windows-64@2.8.16:
optional: true
- turbo-windows-arm64@2.8.14:
+ turbo-windows-arm64@2.8.16:
optional: true
- turbo@2.8.14:
+ turbo@2.8.16:
optionalDependencies:
- turbo-darwin-64: 2.8.14
- turbo-darwin-arm64: 2.8.14
- turbo-linux-64: 2.8.14
- turbo-linux-arm64: 2.8.14
- turbo-windows-64: 2.8.14
- turbo-windows-arm64: 2.8.14
+ turbo-darwin-64: 2.8.16
+ turbo-darwin-arm64: 2.8.16
+ turbo-linux-64: 2.8.16
+ turbo-linux-arm64: 2.8.16
+ turbo-windows-64: 2.8.16
+ turbo-windows-arm64: 2.8.16
tweetnacl@0.14.5: {}
@@ -20302,12 +20048,12 @@ snapshots:
dependencies:
ts-toolbelt: 9.6.0
- typescript-eslint@8.56.1(eslint@9.39.4)(typescript@5.9.3):
+ typescript-eslint@8.57.0(eslint@9.39.4)(typescript@5.9.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3)
- '@typescript-eslint/parser': 8.56.1(eslint@9.39.4)(typescript@5.9.3)
- '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
- '@typescript-eslint/utils': 8.56.1(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/eslint-plugin': 8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.57.0(eslint@9.39.4)(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.57.0(eslint@9.39.4)(typescript@5.9.3)
eslint: 9.39.4
typescript: 5.9.3
transitivePeerDependencies:
@@ -20459,12 +20205,6 @@ snapshots:
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
@@ -20671,6 +20411,10 @@ snapshots:
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:
@@ -20684,7 +20428,7 @@ snapshots:
webpack-virtual-modules@0.6.2: {}
- webpack@5.94.0(esbuild@0.27.3):
+ webpack@5.94.0:
dependencies:
'@types/estree': 1.0.8
'@webassemblyjs/ast': 1.14.1
@@ -20706,7 +20450,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.3.0
- terser-webpack-plugin: 5.3.17(esbuild@0.27.3)(webpack@5.94.0(esbuild@0.27.3))
+ terser-webpack-plugin: 5.3.17(webpack@5.94.0)
watchpack: 2.5.1
webpack-sources: 3.3.4
transitivePeerDependencies:
diff --git a/static-data/contributors.json b/static-data/contributors.json
index 5cfd10c72..4f1b6aff8 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":"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":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?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":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?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":"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":"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":"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":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?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":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?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
diff --git a/static-data/translators.json b/static-data/translators.json
index 48d67c9f9..128610dcf 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":"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":"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":"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"}]
\ 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":"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":"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":"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":"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":"e.erdemir","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17617994/medium/7259a29db9941c6171a8cbbd643b92bd.png"}]
\ No newline at end of file
diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json
index 31517b177..e2857e0f2 100644
--- a/tooling/eslint/package.json
+++ b/tooling/eslint/package.json
@@ -19,12 +19,12 @@
"dependencies": {
"@next/eslint-plugin-next": "16.1.6",
"eslint-config-prettier": "^10.1.8",
- "eslint-config-turbo": "^2.8.14",
+ "eslint-config-turbo": "^2.8.15",
"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.56.1"
+ "typescript-eslint": "^8.57.0"
},
"devDependencies": {
"@homarr/prettier-config": "workspace:^0.1.0",
|