Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1463dde802 | ||
|
|
7debe34e24 | ||
|
|
0d67c5a451 | ||
|
|
2db0fe15fb | ||
|
|
4b85afbb87 | ||
|
|
536f82af04 | ||
|
|
445e191490 |
No files matched your search
@@ -33,6 +33,7 @@ body:
|
||||
options:
|
||||
# The below comment is used to insert a new version with on-release.yml
|
||||
#NEXT_VERSION#
|
||||
- 1.66.0
|
||||
- 1.65.0
|
||||
- 1.64.0
|
||||
- 1.62.0
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
import { TRPCError } from "@trpc/server";
|
||||
import SuperJSON from "superjson";
|
||||
import { z } from "zod/v4";
|
||||
|
||||
import { eq } from "@homarr/db";
|
||||
import { getServerSettingsAsync } from "@homarr/db/queries";
|
||||
import { boards, items } from "@homarr/db/schema";
|
||||
|
||||
import type { WidgetOptionsSettings } from "../../../../widgets/src";
|
||||
import { createTRPCRouter, publicProcedure } from "../../trpc";
|
||||
import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc";
|
||||
import { throwIfActionForbiddenAsync } from "../board/board-access";
|
||||
|
||||
export const optionsRouter = createTRPCRouter({
|
||||
getWidgetOptionSettings: publicProcedure.query(async ({ ctx }): Promise<WidgetOptionsSettings> => {
|
||||
@@ -16,4 +23,33 @@ export const optionsRouter = createTRPCRouter({
|
||||
},
|
||||
};
|
||||
}),
|
||||
saveItemOptions: protectedProcedure
|
||||
.input(
|
||||
z.object({
|
||||
itemId: z.string(),
|
||||
boardId: z.string(),
|
||||
newOptions: z.record(z.string(), z.unknown()),
|
||||
}),
|
||||
)
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
await throwIfActionForbiddenAsync(ctx, eq(boards.id, input.boardId), "modify");
|
||||
|
||||
const item = await ctx.db.query.items.findFirst({
|
||||
where: eq(items.id, input.itemId),
|
||||
});
|
||||
|
||||
if (item?.boardId !== input.boardId) {
|
||||
throw new TRPCError({
|
||||
code: "NOT_FOUND",
|
||||
message: "Specified item was not found",
|
||||
});
|
||||
}
|
||||
|
||||
const options = SuperJSON.parse<Record<string, unknown>>(item.options);
|
||||
Object.assign(options, input.newOptions);
|
||||
await ctx.db
|
||||
.update(items)
|
||||
.set({ options: SuperJSON.stringify(options) })
|
||||
.where(eq(items.id, input.itemId));
|
||||
}),
|
||||
});
|
||||
@@ -647,9 +647,13 @@ const seedDemoUserAsync = async (db: Database) => {
|
||||
|
||||
const seedDefaultCustomWidgetsAsync = async (db: Database) => {
|
||||
const seedIds = CUSTOM_WIDGET_SEEDS.map((s) => s.id);
|
||||
const beforeCount = await db.$count(customWidgetDefinitions, inArray(customWidgetDefinitions.id, seedIds));
|
||||
const existing = await db.query.customWidgetDefinitions.findMany({
|
||||
columns: { id: true },
|
||||
where: inArray(customWidgetDefinitions.id, seedIds),
|
||||
});
|
||||
const existingIds = new Set(existing.map((row) => row.id));
|
||||
|
||||
const seedValues = CUSTOM_WIDGET_SEEDS.map((seed) => {
|
||||
const seedValues = CUSTOM_WIDGET_SEEDS.filter((seed) => !existingIds.has(seed.id)).map((seed) => {
|
||||
const parsed = customWidgetImportSchema.parse(seed.data);
|
||||
return {
|
||||
id: seed.id,
|
||||
@@ -668,22 +672,14 @@ const seedDefaultCustomWidgetsAsync = async (db: Database) => {
|
||||
};
|
||||
});
|
||||
|
||||
if (seedValues.length === 0) return;
|
||||
|
||||
await db
|
||||
.insert(customWidgetDefinitions)
|
||||
.values(seedValues)
|
||||
.onConflictDoNothing({ target: customWidgetDefinitions.id });
|
||||
|
||||
const afterCount = await db.$count(customWidgetDefinitions, inArray(customWidgetDefinitions.id, seedIds));
|
||||
const createdCount = afterCount - beforeCount;
|
||||
|
||||
if (createdCount === 0) {
|
||||
if (seedValues.length === 0) {
|
||||
console.log("Skipping seeding of default custom widgets as they already exist");
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Created ${createdCount} default custom widgets through seeding process`);
|
||||
await db.insert(customWidgetDefinitions).values(seedValues);
|
||||
|
||||
console.log(`Created ${seedValues.length} default custom widgets through seeding process`);
|
||||
};
|
||||
|
||||
const seedBoardWidgetsAsync = async (db: Database) => {
|
||||
|
||||
@@ -98,7 +98,6 @@ export type HomarrDocumentationPath =
|
||||
| "/docs/tags/puid"
|
||||
| "/docs/tags/redis"
|
||||
| "/docs/tags/responsive"
|
||||
| "/docs/tags/restore"
|
||||
| "/docs/tags/roles"
|
||||
| "/docs/tags/search-engines"
|
||||
| "/docs/tags/search"
|
||||
@@ -180,6 +179,7 @@ export type HomarrDocumentationPath =
|
||||
| "/docs/integrations/github"
|
||||
| "/docs/integrations/gitlab"
|
||||
| "/docs/integrations/glances"
|
||||
| "/docs/integrations/gotify"
|
||||
| "/docs/integrations/home-assistant"
|
||||
| "/docs/integrations/ical"
|
||||
| "/docs/integrations/immich"
|
||||
@@ -233,7 +233,6 @@ export type HomarrDocumentationPath =
|
||||
| "/docs/management/search-engines"
|
||||
| "/docs/management/settings"
|
||||
| "/docs/management/tasks"
|
||||
| "/docs/management/tools/backup"
|
||||
| "/docs/management/users"
|
||||
| "/docs/widgets/anchor-note"
|
||||
| "/docs/widgets/app"
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Hole 摘要",
|
||||
"description": "显示 DNS Hole 的摘要",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "crwdns5635:0crwdne5635:0",
|
||||
"description": "crwdns5637:0crwdne5637:0",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": "crwdns5639:0crwdne5639:0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "crwdns768:0crwdne768:0",
|
||||
"description": "crwdns770:0crwdne770:0",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "Zobrazí shrnutí vaší DNS Hole",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Hole Oversigt",
|
||||
"description": "Viser oversigten over dit DNS-hul",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Hole Zusammenfassung",
|
||||
"description": "Zeigt die Zusammenfassung deines DNS Holes an",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Hole Zusammenfassung",
|
||||
"description": "Zeigt die Zusammenfassung deines DNS Holes an",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
"action": {
|
||||
"scratch": "Start from scratch",
|
||||
"importOldmarr": "Import from a Homarr version before v1.0",
|
||||
"restoreSqlite": "",
|
||||
"restoreSqliteDescription": "",
|
||||
"backToOptions": ""
|
||||
"restoreSqlite": "Restore from SQLite backup",
|
||||
"restoreSqliteDescription": "Upload a full SQLite database backup from a previous Homarr instance. This will restore all boards, users, apps, integrations, and settings.",
|
||||
"backToOptions": "← Back to setup options"
|
||||
}
|
||||
},
|
||||
"import": {
|
||||
@@ -115,24 +115,24 @@
|
||||
}
|
||||
},
|
||||
"urlTemplate": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"hint": "",
|
||||
"warning": "",
|
||||
"preview": "",
|
||||
"label": "Base URL",
|
||||
"placeholder": "homelab.local or 192.168.1.1",
|
||||
"hint": "Enter your base domain or IP to auto-fill integration URLs",
|
||||
"warning": "Setting your base URL now will auto-fill all integration URLs, saving you time during setup",
|
||||
"preview": "e.g. {example}",
|
||||
"mode": {
|
||||
"subdomain": "",
|
||||
"hostPort": ""
|
||||
"subdomain": "Subdomain",
|
||||
"hostPort": "Host:Port"
|
||||
}
|
||||
},
|
||||
"docker": {
|
||||
"detected": "",
|
||||
"detectedBreakdown": "",
|
||||
"summary": "",
|
||||
"appBadge": "",
|
||||
"appSectionLabel": "",
|
||||
"scanning": "",
|
||||
"scanningDescription": ""
|
||||
"detected": "Docker detected {count} services",
|
||||
"detectedBreakdown": "{integrations} integrations · {apps} apps",
|
||||
"summary": "Homarr detected {apps} apps, {integrations} of which have integrations built-in",
|
||||
"appBadge": "App",
|
||||
"appSectionLabel": "Apps to add to dashboard ({count} selected)",
|
||||
"scanning": "Scanning Docker...",
|
||||
"scanningDescription": "Looking for running containers on your system"
|
||||
}
|
||||
},
|
||||
"finish": {
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Hole Summary",
|
||||
"description": "Displays the summary of your DNS Hole",
|
||||
@@ -5704,10 +5713,10 @@
|
||||
"option": {
|
||||
"google": {
|
||||
"name": "",
|
||||
"description": ""
|
||||
"description": "Search the web with Google"
|
||||
},
|
||||
"bing": {
|
||||
"name": "",
|
||||
"name": "Bing",
|
||||
"description": "Search the web with Bing"
|
||||
},
|
||||
"duckduckgo": {
|
||||
@@ -6089,46 +6098,46 @@
|
||||
"description": "These are all the apps you've added — links to your self-hosted services. Each app has an icon, optional health check, and a status badge on the dashboard."
|
||||
},
|
||||
"appsCreate": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Add an App",
|
||||
"description": "Register a new service here. Give it a name, URL, and icon — it will appear as a tile on your boards with live status monitoring."
|
||||
},
|
||||
"integrationsList": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Your Integrations",
|
||||
"description": "These are the services connected to Homarr — Sonarr, Radarr, Plex, Jellyfin, and 50+ more. All credentials are encrypted at rest."
|
||||
},
|
||||
"integrationsCreate": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Add an Integration",
|
||||
"description": "Connect a new service here. Pick the type, enter the URL and API key — Homarr validates the connection before saving."
|
||||
},
|
||||
"usersList": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Your Users",
|
||||
"description": "See everyone who has access. Organise users into groups and control who can view or edit each board."
|
||||
},
|
||||
"usersCreate": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Create a User",
|
||||
"description": "Add a new user account here. You can also use invite links for easy onboarding. That's the tour — you're all set!"
|
||||
}
|
||||
},
|
||||
"board": {
|
||||
"welcome": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "This is your board",
|
||||
"description": "A drag-and-drop dashboard where you arrange apps and widgets. Press Ctrl+K anytime to search for apps, boards, and actions."
|
||||
},
|
||||
"editMode": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Edit Mode",
|
||||
"description": "Click here to enter edit mode. You can then add widgets, apps, and sections — drag to reposition, resize with the corner handle. Click again to save your changes."
|
||||
},
|
||||
"settings": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Board Settings",
|
||||
"description": "Change this board's name, columns, background, colours, and who can access it. Each board can be public or private."
|
||||
},
|
||||
"switcher": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Switch Boards",
|
||||
"description": "Jump between boards. Create separate dashboards for different purposes — media, networking, per-user, or anything you like."
|
||||
},
|
||||
"userMenu": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Your Profile",
|
||||
"description": "Change your colour scheme, language, home board, and preferences. You can also jump to the management area from here."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "Resumen del agujero DNS",
|
||||
"description": "Muestra el resumen de tu agujero DNS",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "Résumé du puit DNS",
|
||||
"description": "Affiche le résumé de votre puit DNS",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "סיכום חור אבטחה DNS",
|
||||
"description": "מציג את הסיכום חור אבטחת DNS שלך",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Blokkoló Összefoglaló",
|
||||
"description": "Megjeleníti a DNS Blokkoló összefoglalóját",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "Riepilogo del filtraggio DNS",
|
||||
"description": "Mostra il riepilogo del tuo filtro DNS",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Hole 概要",
|
||||
"description": "DNS Hole の概要を表示します",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS-hole overzicht",
|
||||
"description": "Toont het overzicht van je DNS-hole",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Hole Sammendrag",
|
||||
"description": "Viser sammendrag av DNS Hole",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "Podsumowanie Hole DNS",
|
||||
"description": "Wyświetla podsumowanie Twojego hosta DNS",
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
"action": {
|
||||
"scratch": "Começar do zero",
|
||||
"importOldmarr": "Importe de uma instância do Homarr anterior a 1.0",
|
||||
"restoreSqlite": "",
|
||||
"restoreSqliteDescription": "",
|
||||
"backToOptions": ""
|
||||
"restoreSqlite": "Restaurar do backup SQLite",
|
||||
"restoreSqliteDescription": "Fazer o upload de um backup completo do banco de dados SQLite de uma instância anterior da Homarr. Isso restaurará todos os painéis, usuários, apps, integrações e configurações.",
|
||||
"backToOptions": "← Retorna às opções de instalação"
|
||||
}
|
||||
},
|
||||
"import": {
|
||||
@@ -94,45 +94,45 @@
|
||||
"subtitle": "Definir as configurações do servidor."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "",
|
||||
"subtitle": "",
|
||||
"description": "",
|
||||
"title": "Integrações",
|
||||
"subtitle": "Selecione os serviços que você usa.",
|
||||
"description": "Escolha as integrações que deseja conectar. Vamos configurar seu painel com os widgets correspondentes automaticamente.",
|
||||
"action": {
|
||||
"continue": "",
|
||||
"skip": ""
|
||||
"continue": "Continuar",
|
||||
"skip": "Pular por enquanto"
|
||||
},
|
||||
"configure": {
|
||||
"progress": "",
|
||||
"skip": "",
|
||||
"finishing": "",
|
||||
"progress": "{current} de {total}",
|
||||
"skip": "Pular esta integração",
|
||||
"finishing": "Configurando seu painel...",
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
"title": "Falha na configuração",
|
||||
"message": "Algo deu errado ao configurar seu painel. Por favor, tente novamente."
|
||||
},
|
||||
"helpers": {
|
||||
"tooltip": "",
|
||||
"description": ""
|
||||
"tooltip": "Auxiliares de URL",
|
||||
"description": "Esses auxiliares tentam adivinhar a URL dos seus serviços. Se não funcionar, digite o endereço manualmente."
|
||||
}
|
||||
},
|
||||
"urlTemplate": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"hint": "",
|
||||
"warning": "",
|
||||
"preview": "",
|
||||
"label": "URL base",
|
||||
"placeholder": "homelab.local ou 192.168.1.1",
|
||||
"hint": "Digite seu domínio base ou IP para preencher automaticamente as URLs das integrações",
|
||||
"warning": "Definir sua URL base agora preencherá automaticamente todas as URLs das integrações, economizando tempo durante a configuração",
|
||||
"preview": "ex.: {example}",
|
||||
"mode": {
|
||||
"subdomain": "",
|
||||
"hostPort": ""
|
||||
"subdomain": "Subdomínio",
|
||||
"hostPort": "Host:Porta"
|
||||
}
|
||||
},
|
||||
"docker": {
|
||||
"detected": "",
|
||||
"detectedBreakdown": "",
|
||||
"summary": "",
|
||||
"appBadge": "",
|
||||
"appSectionLabel": "",
|
||||
"scanning": "",
|
||||
"scanningDescription": ""
|
||||
"detected": "Docker detectou {count} serviços",
|
||||
"detectedBreakdown": "{integrations} integrações · {apps} apps",
|
||||
"summary": "O Homarr detectou {apps} apps, dos quais {integrations} possuem integrações nativas",
|
||||
"appBadge": "App",
|
||||
"appSectionLabel": "Apps para adicionar ao painel ({count} selecionados)",
|
||||
"scanning": "Verificando Docker...",
|
||||
"scanningDescription": "Procurando contêineres em execução no seu sistema"
|
||||
}
|
||||
},
|
||||
"finish": {
|
||||
@@ -177,7 +177,7 @@
|
||||
},
|
||||
"password": {
|
||||
"label": "Senha",
|
||||
"suggestionsTitle": "",
|
||||
"suggestionsTitle": "Sugestões de senha",
|
||||
"suggestion": {
|
||||
"length": "Inclua pelo menos 8 caracteres",
|
||||
"lowercase": "Inclui letras minúsculas",
|
||||
@@ -687,94 +687,94 @@
|
||||
"customWidget": {
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
"noResults": "",
|
||||
"loading": ""
|
||||
"title": "Widgets Personalizados",
|
||||
"noResults": "Nenhum widget personalizado ainda. Crie o seu primeiro!",
|
||||
"loading": "Carregando..."
|
||||
},
|
||||
"create": {
|
||||
"title": "",
|
||||
"subtitle": ""
|
||||
"title": "Criar widget personalizado",
|
||||
"subtitle": "Defina uma URL de API, autenticação e como exibir os dados de resposta."
|
||||
},
|
||||
"edit": {
|
||||
"title": ""
|
||||
"title": "Editar widget personalizado"
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"create": "",
|
||||
"import": "",
|
||||
"save": "",
|
||||
"delete": "",
|
||||
"deleteConfirm": "",
|
||||
"export": "",
|
||||
"addMapping": "",
|
||||
"addColumn": "",
|
||||
"edit": "",
|
||||
"removeMapping": "",
|
||||
"removeColumn": "",
|
||||
"addItem": "",
|
||||
"removeItem": "",
|
||||
"addBar": "",
|
||||
"duplicate": "",
|
||||
"create": "Criar",
|
||||
"import": "Importar",
|
||||
"save": "Salvar",
|
||||
"delete": "Excluir widget personalizado",
|
||||
"deleteConfirm": "Tem certeza de que deseja excluir \"{name}\"? Esta ação não pode ser desfeita.",
|
||||
"export": "Exportar",
|
||||
"addMapping": "Adicionar Mapeamento",
|
||||
"addColumn": "Adicionar Coluna",
|
||||
"edit": "Editar",
|
||||
"removeMapping": "Remover Mapeamento",
|
||||
"removeColumn": "Remover coluna",
|
||||
"addItem": "Adicionar Item",
|
||||
"removeItem": "Remover item",
|
||||
"addBar": "Adicionar barra",
|
||||
"duplicate": "Duplicar",
|
||||
"copyAiPrompt": "",
|
||||
"enable": "",
|
||||
"disable": "",
|
||||
"menu": ""
|
||||
"enable": "Habilitado",
|
||||
"disable": "Desabilitado",
|
||||
"menu": "Ações"
|
||||
},
|
||||
"field": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"iconUrl": "",
|
||||
"url": "",
|
||||
"authType": "",
|
||||
"name": "Nome",
|
||||
"description": "Descrição",
|
||||
"iconUrl": "URL do ícone",
|
||||
"url": "URL",
|
||||
"authType": "Tipo de Autenticação",
|
||||
"headerName": "",
|
||||
"method": "",
|
||||
"requestBody": "",
|
||||
"method": "Método",
|
||||
"requestBody": "Corpo da requisição",
|
||||
"displayType": "",
|
||||
"jsonPath": "",
|
||||
"jsonPathHint": "",
|
||||
"jsonPath": "Caminho JSON",
|
||||
"jsonPathHint": "Usar sintaxe JSONPath para extrair valores, por exemplo, $.data.temperature ou $.items[0].name",
|
||||
"label": "",
|
||||
"unit": "",
|
||||
"mappings": "",
|
||||
"tablePath": "",
|
||||
"tablePathHint": "",
|
||||
"columns": "",
|
||||
"header": "",
|
||||
"items": "",
|
||||
"gridColumns": "",
|
||||
"cardStyle": "",
|
||||
"bars": "",
|
||||
"valuePath": "",
|
||||
"maxPath": "",
|
||||
"showPercentage": "",
|
||||
"barSize": "",
|
||||
"goodValues": "",
|
||||
"mappings": "Mapeamentos",
|
||||
"tablePath": "Caminho Array JSON",
|
||||
"tablePathHint": "Caminho para o array na resposta, por exemplo, $.data.items",
|
||||
"columns": "Colunas",
|
||||
"header": "Header (cabeçalho)",
|
||||
"items": "Itens",
|
||||
"gridColumns": "Colunas da grade",
|
||||
"cardStyle": "Estilo de cartão",
|
||||
"bars": "Barras",
|
||||
"valuePath": "Caminho do valor JSON",
|
||||
"maxPath": "Caminho do Max Valor JSON",
|
||||
"showPercentage": "Mostrar porcentagem",
|
||||
"barSize": "Tamanho da barra",
|
||||
"goodValues": "Valores bons (separados por vírgula)",
|
||||
"dotSize": "",
|
||||
"valueSize": "",
|
||||
"valueSize": "Tamanho do valor",
|
||||
"labelPosition": "",
|
||||
"kvLayout": "",
|
||||
"striped": "",
|
||||
"compact": "",
|
||||
"maxHeight": "",
|
||||
"color": "",
|
||||
"kvLayout": "Layout",
|
||||
"striped": "Linhas Listradas",
|
||||
"compact": "Modo Compacto",
|
||||
"maxHeight": "Altura máxima (px)",
|
||||
"color": "Cor",
|
||||
"buttonLabel": "",
|
||||
"buttonColor": "",
|
||||
"confirmText": "",
|
||||
"confirmTextHint": "",
|
||||
"successMessage": "",
|
||||
"successMessageHint": "",
|
||||
"enabled": "",
|
||||
"buttonColor": "Cor do botão",
|
||||
"confirmText": "Texto de confirmação",
|
||||
"confirmTextHint": "Se definido, um diálogo de confirmação irá aparecer antes de executar a solicitação",
|
||||
"successMessage": "Mensagem de Sucesso",
|
||||
"successMessageHint": "Mensagem mostrada após execução com sucesso",
|
||||
"enabled": "Habilitado",
|
||||
"template": {
|
||||
"label": "",
|
||||
"label": "Template JSX",
|
||||
"description": ""
|
||||
}
|
||||
},
|
||||
"placeholder": {
|
||||
"exampleLabel": "",
|
||||
"exampleLabel": "Temperatura da CPU",
|
||||
"exampleLabelShort": "",
|
||||
"exampleHeader": "",
|
||||
"exampleHeader": "Nome",
|
||||
"exampleUnit": "",
|
||||
"iconUrl": "",
|
||||
"url": "",
|
||||
"iconUrl": "https://...",
|
||||
"url": "https://api.exemplo.com/br/api/v1/status",
|
||||
"headerName": "",
|
||||
"jsonPath": "",
|
||||
"tablePath": "",
|
||||
@@ -790,35 +790,35 @@
|
||||
"subtle": ""
|
||||
},
|
||||
"layoutOption": {
|
||||
"list": "",
|
||||
"grid": ""
|
||||
"list": "Lista",
|
||||
"grid": "Grade"
|
||||
},
|
||||
"sizeOption": {
|
||||
"sm": "",
|
||||
"md": "",
|
||||
"lg": "",
|
||||
"xl": ""
|
||||
"sm": "Pequeno",
|
||||
"md": "Médio",
|
||||
"lg": "Grande",
|
||||
"xl": "Extra grande"
|
||||
},
|
||||
"labelPositionOption": {
|
||||
"above": "",
|
||||
"below": ""
|
||||
"above": "Acima",
|
||||
"below": "Abaixo"
|
||||
},
|
||||
"fieldset": {
|
||||
"general": "",
|
||||
"connection": "",
|
||||
"display": ""
|
||||
"general": "Geral",
|
||||
"connection": "Conexão com API",
|
||||
"display": "Configurações de tela"
|
||||
},
|
||||
"displayTypeDescription": {
|
||||
"singleValue": "",
|
||||
"keyValue": "",
|
||||
"table": "",
|
||||
"statGrid": "",
|
||||
"progressBars": "",
|
||||
"statusIndicator": "",
|
||||
"statGrid": "Estatísticas coloridas em uma grade — como Pi-Hole ou Widgets Rápidos",
|
||||
"progressBars": "Barras de progresso mostrando uso ou conclusão — para disco, memória, quotas",
|
||||
"statusIndicator": "Pontos de status coloridos mostrando estados online/offline ou de saúde",
|
||||
"countGrid": "",
|
||||
"raw": "",
|
||||
"actionButton": "",
|
||||
"customJsx": ""
|
||||
"raw": "Saída JSON impressa para depuração",
|
||||
"actionButton": "Um botão que aciona uma solicitação quando clicado",
|
||||
"customJsx": "Layout JSX personalizado usando componentes Mantine na lista branca com ligação completa de dados de API"
|
||||
},
|
||||
"method": {
|
||||
"GET": "",
|
||||
@@ -848,42 +848,42 @@
|
||||
},
|
||||
"secret": {
|
||||
"apiKey": "",
|
||||
"username": "",
|
||||
"password": "",
|
||||
"username": "Usuário",
|
||||
"password": "Senha",
|
||||
"savedPlaceholder": ""
|
||||
},
|
||||
"preview": {
|
||||
"title": "",
|
||||
"title": "Pré-visualizar",
|
||||
"test": "",
|
||||
"hint": "",
|
||||
"rawResponse": ""
|
||||
"hint": "Clique em Testar para visualizar a resposta da API com sua configuração atual.",
|
||||
"rawResponse": "Resposta JSON Bruta"
|
||||
},
|
||||
"notification": {
|
||||
"created": "",
|
||||
"updated": "",
|
||||
"deleted": "",
|
||||
"imported": "",
|
||||
"created": "Widget \"{name}\" criado com sucesso.",
|
||||
"updated": "Widget \"{name}atualizado com sucesso.",
|
||||
"deleted": "Widget \"{name}excluído.",
|
||||
"imported": "Widget importado com sucesso.",
|
||||
"aiPromptCopied": "",
|
||||
"aiPromptDescription": "",
|
||||
"aiPromptCopy": "",
|
||||
"aiPromptNoResponse": "",
|
||||
"aiPromptCopyError": "",
|
||||
"createError": "",
|
||||
"updateError": "",
|
||||
"importError": "",
|
||||
"exportError": "",
|
||||
"duplicated": "",
|
||||
"duplicateError": "",
|
||||
"toggleError": "",
|
||||
"deleteError": "",
|
||||
"previewError": "",
|
||||
"executed": "",
|
||||
"executeError": ""
|
||||
"aiPromptDescription": "Copie um prompt pré-construído para colar qualquer chatbot de AI (ChatGPT, Claude, Gemini...). Ele inclui o esquema completo de widget e a sua resposta de API para que a AI possa gerar uma configuração JSON pronta para importar para você.",
|
||||
"aiPromptCopy": "Copiar para área de transferência",
|
||||
"aiPromptNoResponse": "Dica: Execute um teste primeiro para incluir a sua API de resposta no prompt para melhores resultados.",
|
||||
"aiPromptCopyError": "Falha ao copiar prompt para área de transferência. O seu navegador pode não suportar este recurso.",
|
||||
"createError": "Falha ao criar widget. Verifique se o endpoint API está acessível.",
|
||||
"updateError": "Falha ao atualizar o widget. Suas alterações não foram salvas.",
|
||||
"importError": "Falha ao importar o widget. Certifique-se de que o arquivo seja um widget personalizado válido exportado em JSON.",
|
||||
"exportError": "Falha ao exportar o widget.",
|
||||
"duplicated": "Widget \"{name}duplicado.",
|
||||
"duplicateError": "Falha ao duplicar o widget.",
|
||||
"toggleError": "Falha ao alternar o status do widget.",
|
||||
"deleteError": "Falha ao excluir o widget.",
|
||||
"previewError": "Falha ao buscar a pré-visualização. Verifique a URL e tente novamente.",
|
||||
"executed": "Ação executada com sucesso.",
|
||||
"executeError": "A ação falhou: {error}"
|
||||
},
|
||||
"table": {
|
||||
"name": "",
|
||||
"url": "",
|
||||
"display": ""
|
||||
"name": "Nome",
|
||||
"url": "URL",
|
||||
"display": "Exibição"
|
||||
},
|
||||
"widget": {
|
||||
"disabled": ""
|
||||
@@ -983,46 +983,46 @@
|
||||
"placeholder": "URL de aplicativo personalizada"
|
||||
},
|
||||
"apiKeySettings": {
|
||||
"label": ""
|
||||
"label": "Obter chave de API"
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"create": "Nova integração"
|
||||
},
|
||||
"grid": {
|
||||
"widgetCount": "",
|
||||
"noWidgets": "",
|
||||
"detected": ""
|
||||
"widgetCount": "{count} widgets",
|
||||
"noWidgets": "Sem widgets",
|
||||
"detected": "Detectado via Docker"
|
||||
},
|
||||
"category": {
|
||||
"dnsHole": "",
|
||||
"mediaService": "",
|
||||
"calendar": "",
|
||||
"mediaSearch": "",
|
||||
"mediaRelease": "",
|
||||
"mediaRequest": "",
|
||||
"downloadClient": "",
|
||||
"usenet": "",
|
||||
"torrent": "",
|
||||
"miscellaneous": "",
|
||||
"smartHomeServer": "",
|
||||
"indexerManager": "",
|
||||
"dnsHole": "DNS",
|
||||
"mediaService": "Mídia",
|
||||
"calendar": "Calendário",
|
||||
"mediaSearch": "Busca",
|
||||
"mediaRelease": "Lançamentos",
|
||||
"mediaRequest": "Solicitações",
|
||||
"downloadClient": "Downloads",
|
||||
"usenet": "Usenet",
|
||||
"torrent": "Torrent",
|
||||
"miscellaneous": "Diversos",
|
||||
"smartHomeServer": "Casa Inteligente",
|
||||
"indexerManager": "Indexador",
|
||||
"healthMonitoring": "",
|
||||
"search": "",
|
||||
"mediaTranscoding": "",
|
||||
"networkController": "",
|
||||
"releasesProvider": "",
|
||||
"notifications": "",
|
||||
"search": "Busca",
|
||||
"mediaTranscoding": "Transcodificação",
|
||||
"networkController": "Rede",
|
||||
"releasesProvider": "Lançamentos",
|
||||
"notifications": "Notificações",
|
||||
"firewall": "Firewall",
|
||||
"timetable": "",
|
||||
"photoService": "",
|
||||
"documents": "",
|
||||
"notes": "",
|
||||
"mediaMonitoring": "",
|
||||
"speedtest": "",
|
||||
"analytics": "",
|
||||
"mediaLibrary": "",
|
||||
"uptimeMonitoring": ""
|
||||
"photoService": "Fotos",
|
||||
"documents": "Documentos",
|
||||
"notes": "Anotações",
|
||||
"mediaMonitoring": "Monitoramento",
|
||||
"speedtest": "Teste de Velocidade",
|
||||
"analytics": "Análises",
|
||||
"mediaLibrary": "Biblioteca de mídia",
|
||||
"uptimeMonitoring": "Monitoramento do Uptime"
|
||||
},
|
||||
"testConnection": {
|
||||
"action": {
|
||||
@@ -1297,7 +1297,7 @@
|
||||
"newLabel": "Nova chave privada"
|
||||
},
|
||||
"slug": {
|
||||
"label": "",
|
||||
"label": "Slug página de status",
|
||||
"newLabel": ""
|
||||
}
|
||||
}
|
||||
@@ -1329,7 +1329,7 @@
|
||||
},
|
||||
"paperlessNgx": {
|
||||
"name": "",
|
||||
"description": ""
|
||||
"description": "Sistema de gerenciamento de documentos para arquivamento e organização de documentos digitalizados"
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
@@ -1384,7 +1384,7 @@
|
||||
"add": "Adicionar",
|
||||
"apply": "Aplicar",
|
||||
"backToOverview": "Voltar à visão geral",
|
||||
"skip": "",
|
||||
"skip": "Pular",
|
||||
"change": "Alterar",
|
||||
"create": "Criar",
|
||||
"createAnother": "Criar e recomeçar",
|
||||
@@ -1621,11 +1621,11 @@
|
||||
"edit": {
|
||||
"title": "Editar item",
|
||||
"tab": {
|
||||
"widget": "",
|
||||
"app": ""
|
||||
"widget": "Editar widget",
|
||||
"app": "Editar aplicativo"
|
||||
},
|
||||
"app": {
|
||||
"propagationNotice": ""
|
||||
"propagationNotice": "As alterações deste aplicativo serão aplicadas em todos os lugares em que for usado em todos os painéis."
|
||||
},
|
||||
"advancedOptions": {
|
||||
"label": "Opções avançadas",
|
||||
@@ -1731,7 +1731,7 @@
|
||||
"label": "Abrir em nova guia"
|
||||
},
|
||||
"withBorder": {
|
||||
"label": ""
|
||||
"label": "Mostrar bordas"
|
||||
},
|
||||
"items": {
|
||||
"label": "Marcadores",
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "Monitore o status do ArchiveTeam Warrior, projetos e trabalhos de arquivamento ativos.",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": "Mostrar mensagens de transmissão"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "Resumo do DNS Hole",
|
||||
"description": "Exibe o resumo do seu DNS Hole",
|
||||
@@ -2390,31 +2399,31 @@
|
||||
}
|
||||
},
|
||||
"ups": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"name": "UPS",
|
||||
"description": "Monitore o status de seus dispositivos UPS através de um servidor NUT",
|
||||
"option": {
|
||||
"showBattery": {
|
||||
"label": ""
|
||||
"label": "Exibir bateria"
|
||||
},
|
||||
"showLoad": {
|
||||
"label": ""
|
||||
"label": "Mostrar carga"
|
||||
},
|
||||
"showVoltage": {
|
||||
"label": ""
|
||||
"label": "Mostrar tensão"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"online": "",
|
||||
"onBattery": "",
|
||||
"lowBattery": "",
|
||||
"charging": "",
|
||||
"unknown": ""
|
||||
"online": "Online",
|
||||
"onBattery": "Na bateria",
|
||||
"lowBattery": "Bateria fraca",
|
||||
"charging": "Carregando",
|
||||
"unknown": "Desconhecido"
|
||||
},
|
||||
"field": {
|
||||
"runtime": "",
|
||||
"load": "",
|
||||
"input": "",
|
||||
"output": ""
|
||||
"runtime": "Tempo de execução",
|
||||
"load": "Carga",
|
||||
"input": "Entrada",
|
||||
"output": "Saída"
|
||||
},
|
||||
"error": {
|
||||
"internalServerError": ""
|
||||
@@ -2669,8 +2678,8 @@
|
||||
}
|
||||
},
|
||||
"paperlessNgx": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"name": "Paperless-ngx",
|
||||
"description": "Visão geral do seu arquivo de documentos Paperless-ngx",
|
||||
"documentsTotal": "",
|
||||
"documentsInbox": "",
|
||||
"correspondents": "",
|
||||
@@ -4133,7 +4142,7 @@
|
||||
"items": {
|
||||
"documentation": "Documentação",
|
||||
"submitIssue": "Enviar um problema",
|
||||
"discord": "Discórdia da comunidade",
|
||||
"discord": "Discord da comunidade",
|
||||
"sourceCode": "Código-fonte"
|
||||
}
|
||||
},
|
||||
@@ -5741,7 +5750,7 @@
|
||||
"label": "Reportar um problema"
|
||||
},
|
||||
"discord": {
|
||||
"label": "Discórdia da comunidade"
|
||||
"label": "Discord da comunidade"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "Сводка DNS-фильтра",
|
||||
"description": "Отображает сводную информацию о вашем DNS-фильтре",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "Zhrnutie dier DNS",
|
||||
"description": "Zobrazí súhrn vašej diery DNS",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Çözümleyici Özeti",
|
||||
"description": "DNS Çözümleyici özetini görüntüler",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
|
||||
@@ -1739,6 +1739,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiveTeamWarrior": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"option": {
|
||||
"showBroadcastMessage": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"dnsHoleSummary": {
|
||||
"name": "DNS Hole 概況",
|
||||
"description": "顯示 DNS Hole 的概況",
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
.beszelStatsSystemToggle {
|
||||
opacity: 0;
|
||||
transition: opacity 150ms ease;
|
||||
}
|
||||
|
||||
.beszelStatsWrapper:hover .beszelStatsSystemToggle {
|
||||
opacity: 1;
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
left: 6px;
|
||||
z-index: 1;
|
||||
}
|
||||
@@ -1,10 +1,13 @@
|
||||
"use client";
|
||||
|
||||
import { useCallback, useMemo } from "react";
|
||||
import { ActionIcon, Button, Center, Menu, ScrollArea, Select, SimpleGrid, Stack, Text } from "@mantine/core";
|
||||
import { Button, Center, Menu, ScrollArea, Select, SimpleGrid, Stack, Text } from "@mantine/core";
|
||||
import { IconPlugConnectedX, IconServer, IconQuestionMark } from "@tabler/icons-react";
|
||||
|
||||
import { clientApi } from "@homarr/api/client";
|
||||
import { useSession } from "@homarr/auth/client";
|
||||
import { constructBoardPermissions } from "@homarr/auth/shared";
|
||||
import { useOptionalBoard } from "@homarr/boards/context";
|
||||
import type { BeszelContainerStatsRecord, BeszelSystemStatsRecord } from "@homarr/integrations/types";
|
||||
import { useScopedI18n } from "@homarr/translation/client";
|
||||
|
||||
@@ -49,9 +52,15 @@ export default function BeszelSystemStatsWidget({
|
||||
integrationIds,
|
||||
isEditMode,
|
||||
width,
|
||||
boardId,
|
||||
itemId,
|
||||
setOptions,
|
||||
}: WidgetComponentProps<"beszelSystemStats">) {
|
||||
const t = useScopedI18n("widget.beszelSystemStats");
|
||||
const board = useOptionalBoard();
|
||||
const { data: session } = useSession();
|
||||
const hasChangeAccess = board ? constructBoardPermissions(board, session).hasChangeAccess : false;
|
||||
const { mutate: saveItemOptions } = clientApi.widget.options.saveItemOptions.useMutation();
|
||||
const { data: systemsResult = [], isPending: systemsPending } = clientApi.widget.beszel.getSystems.useQuery(
|
||||
{ integrationIds },
|
||||
{ staleTime: 30 * 1000 },
|
||||
@@ -68,8 +77,13 @@ export default function BeszelSystemStatsWidget({
|
||||
const systemReady = !systemsPending && (selectedSystem === "" || systemExists);
|
||||
|
||||
const handleSelectSystem = useCallback(
|
||||
(value: string) => setOptions({ newOptions: { systemId: value } }),
|
||||
[setOptions],
|
||||
(value: string) => {
|
||||
setOptions({ newOptions: { systemId: value } });
|
||||
if (hasChangeAccess && boardId && itemId) {
|
||||
saveItemOptions({ boardId, itemId, newOptions: { systemId: value } });
|
||||
}
|
||||
},
|
||||
[setOptions, hasChangeAccess, boardId, itemId, saveItemOptions],
|
||||
);
|
||||
|
||||
const showDocker = options.showDockerCpu || options.showDockerMemory || options.showDockerNetwork;
|
||||
@@ -208,40 +222,27 @@ export default function BeszelSystemStatsWidget({
|
||||
}
|
||||
|
||||
return (
|
||||
<ScrollArea
|
||||
h="100%"
|
||||
className={classes.beszelStatsWrapper}
|
||||
style={{ pointerEvents: (isEditMode && "none") || undefined }}
|
||||
>
|
||||
<ScrollArea h="100%" style={{ pointerEvents: (isEditMode && "none") || undefined }}>
|
||||
<Stack gap="md" p="sm">
|
||||
{!isEditMode && systems.length > 1 && (
|
||||
<Menu
|
||||
trigger="click-hover"
|
||||
openDelay={100}
|
||||
closeDelay={300}
|
||||
position="bottom-start"
|
||||
withArrow
|
||||
shadow="md"
|
||||
withinPortal
|
||||
>
|
||||
<Menu position="bottom-start" withArrow shadow="md" withinPortal>
|
||||
<Menu.Target>
|
||||
<ActionIcon
|
||||
variant="subtle"
|
||||
size="sm"
|
||||
<Button
|
||||
variant="default"
|
||||
size="compact-xs"
|
||||
leftSection={<IconServer size={14} />}
|
||||
className={classes.beszelStatsSystemToggle}
|
||||
style={{ position: "absolute", top: 6, left: 6, zIndex: 1 }}
|
||||
title={selectedLabel}
|
||||
>
|
||||
<IconServer size={14} />
|
||||
</ActionIcon>
|
||||
{selectedLabel}
|
||||
</Button>
|
||||
</Menu.Target>
|
||||
<Menu.Dropdown>
|
||||
{systems.map((s) => (
|
||||
<Menu.Item
|
||||
key={s.value}
|
||||
fz="xs"
|
||||
fw={(s.value === selectedSystem && 600) || 400}
|
||||
c={(s.value !== selectedSystem && "dimmed") || undefined}
|
||||
fw={s.value === selectedSystem ? 600 : 400}
|
||||
c={s.value !== selectedSystem ? "dimmed" : undefined}
|
||||
onClick={() => handleSelectSystem(s.value)}
|
||||
>
|
||||
{s.label}
|
||||
|
||||
Generated
+84
-171
@@ -106,7 +106,7 @@ catalogs:
|
||||
specifier: ^1.60.0
|
||||
version: 1.60.0
|
||||
'@scalar/api-reference-react':
|
||||
specifier: ^0.9.45
|
||||
specifier: ^0.9.46
|
||||
version: 0.9.46
|
||||
'@semantic-release/changelog':
|
||||
specifier: ^6.0.3
|
||||
@@ -145,14 +145,14 @@ catalogs:
|
||||
specifier: ^5.101.0
|
||||
version: 5.101.0
|
||||
'@testcontainers/mysql':
|
||||
specifier: ^12.0.1
|
||||
version: 12.0.1
|
||||
specifier: ^12.0.2
|
||||
version: 12.0.2
|
||||
'@testcontainers/postgresql':
|
||||
specifier: ^12.0.1
|
||||
version: 12.0.1
|
||||
specifier: ^12.0.2
|
||||
version: 12.0.2
|
||||
'@testcontainers/redis':
|
||||
specifier: ^12.0.1
|
||||
version: 12.0.1
|
||||
specifier: ^12.0.2
|
||||
version: 12.0.2
|
||||
'@tiptap/extension-color':
|
||||
specifier: 3.26.0
|
||||
version: 3.26.0
|
||||
@@ -382,8 +382,8 @@ catalogs:
|
||||
specifier: ^3.16.0
|
||||
version: 3.16.0
|
||||
jotai:
|
||||
specifier: ^2.20.0
|
||||
version: 2.20.0
|
||||
specifier: ^2.20.1
|
||||
version: 2.20.1
|
||||
jsdom:
|
||||
specifier: ^29.1.1
|
||||
version: 29.1.1
|
||||
@@ -496,8 +496,8 @@ catalogs:
|
||||
specifier: ^5.3.1
|
||||
version: 5.3.1
|
||||
testcontainers:
|
||||
specifier: ^12.0.1
|
||||
version: 12.0.1
|
||||
specifier: ^12.0.2
|
||||
version: 12.0.2
|
||||
timezones-ical-library:
|
||||
specifier: ^2.2.0
|
||||
version: 2.2.0
|
||||
@@ -615,7 +615,7 @@ importers:
|
||||
version: 14.1.1(semantic-release@25.0.5(typescript@6.0.3))
|
||||
'@testcontainers/redis':
|
||||
specifier: 'catalog:'
|
||||
version: 12.0.1
|
||||
version: 12.0.2
|
||||
'@turbo/gen':
|
||||
specifier: 'catalog:'
|
||||
version: 2.9.18(@types/node@24.13.1)
|
||||
@@ -651,7 +651,7 @@ importers:
|
||||
version: 25.0.5(typescript@6.0.3)
|
||||
testcontainers:
|
||||
specifier: 'catalog:'
|
||||
version: 12.0.1
|
||||
version: 12.0.2
|
||||
turbo:
|
||||
specifier: 'catalog:'
|
||||
version: 2.9.18
|
||||
@@ -985,7 +985,7 @@ importers:
|
||||
version: 3.16.0(@noble/hashes@2.0.1)
|
||||
jotai:
|
||||
specifier: 'catalog:'
|
||||
version: 2.20.0(@babel/core@7.29.0)(@babel/template@7.29.7)(@types/react@19.2.17)(react@19.2.7)
|
||||
version: 2.20.1(@babel/core@7.29.0)(@babel/template@7.29.7)(@types/react@19.2.17)(react@19.2.7)
|
||||
jszip:
|
||||
specifier: 'catalog:'
|
||||
version: 3.10.1
|
||||
@@ -1685,10 +1685,10 @@ importers:
|
||||
version: 3.3.0
|
||||
'@testcontainers/mysql':
|
||||
specifier: 'catalog:'
|
||||
version: 12.0.1
|
||||
version: 12.0.2
|
||||
'@testcontainers/postgresql':
|
||||
specifier: 'catalog:'
|
||||
version: 12.0.1
|
||||
version: 12.0.2
|
||||
better-sqlite3:
|
||||
specifier: 'catalog:'
|
||||
version: 12.10.0
|
||||
@@ -2372,7 +2372,7 @@ importers:
|
||||
version: 3.44.0(react@19.2.7)
|
||||
jotai:
|
||||
specifier: 'catalog:'
|
||||
version: 2.20.0(@babel/core@7.29.0)(@babel/template@7.29.7)(@types/react@19.2.17)(react@19.2.7)
|
||||
version: 2.20.1(@babel/core@7.29.0)(@babel/template@7.29.7)(@types/react@19.2.17)(react@19.2.7)
|
||||
next:
|
||||
specifier: 'catalog:'
|
||||
version: 16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.100.0)
|
||||
@@ -5241,10 +5241,6 @@ packages:
|
||||
'@ioredis/commands@1.10.0':
|
||||
resolution: {integrity: sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q==}
|
||||
|
||||
'@isaacs/cliui@8.0.2':
|
||||
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
'@isaacs/cliui@9.0.0':
|
||||
resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -6259,10 +6255,6 @@ packages:
|
||||
'@pinojs/redact@0.4.0':
|
||||
resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==}
|
||||
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@playwright/test@1.60.0':
|
||||
resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -7196,14 +7188,14 @@ packages:
|
||||
peerDependencies:
|
||||
vue: ^2.7.0 || ^3.0.0
|
||||
|
||||
'@testcontainers/mysql@12.0.1':
|
||||
resolution: {integrity: sha512-/vC3XP+TbCC/Vvn7lATNolIFA+AcWArBIfEV/zRPGts+ntGh7t1jCMEyMF9kfOTKrQwCc0a+w2IwfAYY7b2jTQ==}
|
||||
'@testcontainers/mysql@12.0.2':
|
||||
resolution: {integrity: sha512-FIE8Fxhci5Lml4OlaCdqV0YPd4/Kn/GuJ/k24EVLI0k03eTvVfDuVKPShWtHEO0yEjJxSUOuUKOykn39nF+R2A==}
|
||||
|
||||
'@testcontainers/postgresql@12.0.1':
|
||||
resolution: {integrity: sha512-6SyyduUM6lTAo4UwKG1aCochP6wTe0k7/W/m5uODZQMUrV3STk6/28Km3474JLGZdw/P793BUEF2IeU7rDyoEg==}
|
||||
'@testcontainers/postgresql@12.0.2':
|
||||
resolution: {integrity: sha512-dHBi6H2+op11hd2EwSdsEKJpf0BTHvtOkNoh/CBLxFrla1kTIqsm3se4CuMma7+yraIdEblW91sSaH9xeV6UOA==}
|
||||
|
||||
'@testcontainers/redis@12.0.1':
|
||||
resolution: {integrity: sha512-x5iDR6Y2Mc+2rTJYSQlRTtBMCPt77pKxDogpqRwXgJVmWoDrWFpiFcA/dw6IEoNuyxYUg03tbS8/VzCJI5JX6A==}
|
||||
'@testcontainers/redis@12.0.2':
|
||||
resolution: {integrity: sha512-Yjb3TkBx1y5/vkI+P/Gv9WDX9obPoqu+9cw65L0tLWHZhzkeoqdTIABmv6m1JFZzZzuuXuRjS1Fd4QkmFlEWyQ==}
|
||||
|
||||
'@tiptap/core@3.26.0':
|
||||
resolution: {integrity: sha512-7jTed/RirIVsp+lLdLvGzGqF3EBGpnGHGYKOwz6t28V2BIJLAFdUhfEVdWie7xPxQNWK0TP+fPlsqZS0vxfHBg==}
|
||||
@@ -8273,13 +8265,9 @@ packages:
|
||||
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
archiver-utils@5.0.2:
|
||||
resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==}
|
||||
engines: {node: '>= 14'}
|
||||
|
||||
archiver@7.0.1:
|
||||
resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==}
|
||||
engines: {node: '>= 14'}
|
||||
archiver@8.0.0:
|
||||
resolution: {integrity: sha512-fV1orZfsnPn9BaSByR/qE67rJCLJEy2Ox5bq7nJh+jquWaNh6Sfec75kJ2T6PtdGUbPQlrVoSVCEOa5SdiTQ1g==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
arg@5.0.2:
|
||||
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||
@@ -8890,9 +8878,9 @@ packages:
|
||||
compare-func@2.0.0:
|
||||
resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
|
||||
|
||||
compress-commons@6.0.2:
|
||||
resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==}
|
||||
engines: {node: '>= 14'}
|
||||
compress-commons@7.0.1:
|
||||
resolution: {integrity: sha512-g0S8KAD8qf4+V//pr3BfB1aBnARLXNz2Gx+jmHU0LEriUuoQUOPOulVquHKTJ8+EAIIO7fhseNDr9wK5Q9FKBQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
compressible@2.0.18:
|
||||
resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
|
||||
@@ -9056,9 +9044,9 @@ packages:
|
||||
engines: {node: '>=0.8'}
|
||||
hasBin: true
|
||||
|
||||
crc32-stream@6.0.0:
|
||||
resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==}
|
||||
engines: {node: '>= 14'}
|
||||
crc32-stream@7.0.1:
|
||||
resolution: {integrity: sha512-IBWsY8xznyQrcHn8h4bC8/4ErNke5elzgG8GcqF4RFPw6aHkWWRc7Tgw6upjaTX/CT/yQgqYENkxYsTYN+hW2g==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
crelt@1.0.6:
|
||||
resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
|
||||
@@ -10179,10 +10167,6 @@ packages:
|
||||
debug:
|
||||
optional: true
|
||||
|
||||
foreground-child@3.3.1:
|
||||
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
form-data-encoder@2.1.4:
|
||||
resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
|
||||
engines: {node: '>= 14.17'}
|
||||
@@ -10333,11 +10317,6 @@ packages:
|
||||
glob-to-regexp@0.4.1:
|
||||
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
|
||||
|
||||
glob@10.5.0:
|
||||
resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
|
||||
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
|
||||
hasBin: true
|
||||
|
||||
glob@13.0.6:
|
||||
resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
@@ -11025,9 +11004,6 @@ packages:
|
||||
resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
jackspeak@3.4.3:
|
||||
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
|
||||
|
||||
jackspeak@4.2.3:
|
||||
resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==}
|
||||
engines: {node: 20 || >=22}
|
||||
@@ -11065,8 +11041,8 @@ packages:
|
||||
jose@6.2.3:
|
||||
resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==}
|
||||
|
||||
jotai@2.20.0:
|
||||
resolution: {integrity: sha512-b5GAqgmXmXzB4WPaTH26ppk9Sl7AA9WSQX7yfdM+gJ1rFROiWcVbi97gFuN/yVCojOcbcvop2sfLL+fjxW0JVg==}
|
||||
jotai@2.20.1:
|
||||
resolution: {integrity: sha512-dnuKfU/GLi8B28RRMjQ3AfoN7kfzP8o41+AX2FmITZqEMY8PHnjABq+VkEooomLwYaGjda+pgy0yFSjaHX/ZPg==}
|
||||
engines: {node: '>=12.20.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': '>=7.0.0'
|
||||
@@ -11809,14 +11785,6 @@ packages:
|
||||
minimatch@3.1.5:
|
||||
resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
|
||||
|
||||
minimatch@5.1.6:
|
||||
resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
minimatch@9.0.5:
|
||||
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
|
||||
minimist@1.2.8:
|
||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||
|
||||
@@ -12311,9 +12279,6 @@ packages:
|
||||
resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
package-json-from-dist@1.0.1:
|
||||
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
|
||||
|
||||
package-json@8.1.1:
|
||||
resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
|
||||
engines: {node: '>=14.16'}
|
||||
@@ -12421,10 +12386,6 @@ packages:
|
||||
resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
path-scurry@1.11.1:
|
||||
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
|
||||
engines: {node: '>=16 || 14 >=14.18'}
|
||||
|
||||
path-scurry@2.0.2:
|
||||
resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
@@ -13381,8 +13342,9 @@ packages:
|
||||
resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
readdir-glob@1.1.3:
|
||||
resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==}
|
||||
readdir-glob@3.0.0:
|
||||
resolution: {integrity: sha512-AhNB2KgKeVJr16nK9LLZbJNWnYoT23ZrumNKFDebHBdkC8KHSqWo871JAUhoWC/RtjEVdqNMFpM6qrwRbaUqpw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
readdirp@3.6.0:
|
||||
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
||||
@@ -14269,8 +14231,8 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
testcontainers@12.0.1:
|
||||
resolution: {integrity: sha512-EMjjfMNJf3HlL7V3elkxqKUO1r3CtqNBTdmKGwwma/lOtUGfoWvFJ0WQ/KQf1DHEMnRjLWzW4cXbv/Tndsbcbw==}
|
||||
testcontainers@12.0.2:
|
||||
resolution: {integrity: sha512-UNkC3cSGrsNyyDShaES1/tUHqPNQiH7aUXBPYMO2iAY4tdCI2uVdEagBCrLN0RQ1qxDPWU733OuEaDNQs0vanw==}
|
||||
|
||||
text-decoder@1.2.0:
|
||||
resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==}
|
||||
@@ -14563,6 +14525,10 @@ packages:
|
||||
resolution: {integrity: sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==}
|
||||
engines: {node: '>=20.18.1'}
|
||||
|
||||
undici@8.4.1:
|
||||
resolution: {integrity: sha512-RNHlB4fxZK0IrkhBsxhlbx7s8kFWwr7rzzOqj5nvZugw3ig3RsB7KW3zVlV0eu8POl+rx5d1hmL7rRg0z1owow==}
|
||||
engines: {node: '>=22.19.0'}
|
||||
|
||||
unhead@2.1.15:
|
||||
resolution: {integrity: sha512-MCt5T90mCWyr3Z6pUCdM9lVRXoMoVBlL7z7U4CYVIiaDiuzad/UCfLuMqz5MeNmpZUgoBCQnrucJimU7EZR+XA==}
|
||||
|
||||
@@ -15205,9 +15171,9 @@ packages:
|
||||
resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
zip-stream@6.0.1:
|
||||
resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
|
||||
engines: {node: '>= 14'}
|
||||
zip-stream@7.0.5:
|
||||
resolution: {integrity: sha512-dSvYKdvLsAHCDqPOhIwk/q5CvuWtTB3Dgpoe0uVEFjTzIOAmsQpprX25InCvrvJsirEbu1OHyy67n/kAj1Sw/w==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
zod-form-data@3.0.2:
|
||||
resolution: {integrity: sha512-iN8oSINKqNHJ90T+SHUvHg2gfvF+gyVvg4nK1RYYhMUDUpUWaqwqawLbJNDxxrM59pgE0kdcMfqKVwK55Bm5cw==}
|
||||
@@ -18721,15 +18687,6 @@ snapshots:
|
||||
|
||||
'@ioredis/commands@1.10.0': {}
|
||||
|
||||
'@isaacs/cliui@8.0.2':
|
||||
dependencies:
|
||||
string-width: 5.1.2
|
||||
string-width-cjs: string-width@4.2.3
|
||||
strip-ansi: 7.1.2
|
||||
strip-ansi-cjs: strip-ansi@6.0.1
|
||||
wrap-ansi: 8.1.0
|
||||
wrap-ansi-cjs: wrap-ansi@7.0.0
|
||||
|
||||
'@isaacs/cliui@9.0.0': {}
|
||||
|
||||
'@jellyfin/sdk@0.13.0(axios@1.15.0)':
|
||||
@@ -18745,7 +18702,7 @@ snapshots:
|
||||
'@jest/schemas': 29.6.3
|
||||
'@types/istanbul-lib-coverage': 2.0.6
|
||||
'@types/istanbul-reports': 3.0.4
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
'@types/yargs': 17.0.35
|
||||
chalk: 4.1.2
|
||||
|
||||
@@ -19859,9 +19816,6 @@ snapshots:
|
||||
|
||||
'@pinojs/redact@0.4.0': {}
|
||||
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
optional: true
|
||||
|
||||
'@playwright/test@1.60.0':
|
||||
dependencies:
|
||||
playwright: 1.60.0
|
||||
@@ -20292,7 +20246,7 @@ snapshots:
|
||||
'@scalar/icons@0.7.3(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@phosphor-icons/core': 2.1.1
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
chalk: 5.6.2
|
||||
vue: 3.5.35(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
@@ -20927,23 +20881,23 @@ snapshots:
|
||||
'@tanstack/virtual-core': 3.17.0
|
||||
vue: 3.5.35(typescript@6.0.3)
|
||||
|
||||
'@testcontainers/mysql@12.0.1':
|
||||
'@testcontainers/mysql@12.0.2':
|
||||
dependencies:
|
||||
testcontainers: 12.0.1
|
||||
testcontainers: 12.0.2
|
||||
transitivePeerDependencies:
|
||||
- bare-buffer
|
||||
- supports-color
|
||||
|
||||
'@testcontainers/postgresql@12.0.1':
|
||||
'@testcontainers/postgresql@12.0.2':
|
||||
dependencies:
|
||||
testcontainers: 12.0.1
|
||||
testcontainers: 12.0.2
|
||||
transitivePeerDependencies:
|
||||
- bare-buffer
|
||||
- supports-color
|
||||
|
||||
'@testcontainers/redis@12.0.1':
|
||||
'@testcontainers/redis@12.0.2':
|
||||
dependencies:
|
||||
testcontainers: 12.0.1
|
||||
testcontainers: 12.0.2
|
||||
transitivePeerDependencies:
|
||||
- bare-buffer
|
||||
- supports-color
|
||||
@@ -21476,7 +21430,7 @@ snapshots:
|
||||
|
||||
'@types/http-proxy@1.17.17':
|
||||
dependencies:
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
|
||||
'@types/istanbul-lib-coverage@2.0.6': {}
|
||||
|
||||
@@ -21591,7 +21545,7 @@ snapshots:
|
||||
'@types/send@0.17.4':
|
||||
dependencies:
|
||||
'@types/mime': 1.3.5
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
|
||||
'@types/serve-index@1.9.4':
|
||||
dependencies:
|
||||
@@ -21605,7 +21559,7 @@ snapshots:
|
||||
|
||||
'@types/set-cookie-parser@2.4.10':
|
||||
dependencies:
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
optional: true
|
||||
|
||||
'@types/sockjs@0.3.36':
|
||||
@@ -21614,11 +21568,11 @@ snapshots:
|
||||
|
||||
'@types/ssh2-streams@0.1.12':
|
||||
dependencies:
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
|
||||
'@types/ssh2@0.5.52':
|
||||
dependencies:
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
'@types/ssh2-streams': 0.1.12
|
||||
|
||||
'@types/ssh2@1.15.1':
|
||||
@@ -22127,25 +22081,17 @@ snapshots:
|
||||
normalize-path: 3.0.0
|
||||
picomatch: 2.3.1
|
||||
|
||||
archiver-utils@5.0.2:
|
||||
archiver@8.0.0:
|
||||
dependencies:
|
||||
glob: 10.5.0
|
||||
graceful-fs: 4.2.11
|
||||
is-stream: 2.0.1
|
||||
lazystream: 1.0.1
|
||||
lodash: 4.18.1
|
||||
normalize-path: 3.0.0
|
||||
readable-stream: 4.5.2
|
||||
|
||||
archiver@7.0.1:
|
||||
dependencies:
|
||||
archiver-utils: 5.0.2
|
||||
async: 3.2.6
|
||||
buffer-crc32: 1.0.0
|
||||
is-stream: 4.0.1
|
||||
lazystream: 1.0.1
|
||||
normalize-path: 3.0.0
|
||||
readable-stream: 4.5.2
|
||||
readdir-glob: 1.1.3
|
||||
readdir-glob: 3.0.0
|
||||
tar-stream: 3.1.7
|
||||
zip-stream: 6.0.1
|
||||
zip-stream: 7.0.5
|
||||
|
||||
arg@5.0.2: {}
|
||||
|
||||
@@ -22220,7 +22166,7 @@ snapshots:
|
||||
axios@1.15.0:
|
||||
dependencies:
|
||||
follow-redirects: 1.16.0
|
||||
form-data: 4.0.5
|
||||
form-data: 4.0.6
|
||||
proxy-from-env: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
@@ -22779,11 +22725,11 @@ snapshots:
|
||||
array-ify: 1.0.0
|
||||
dot-prop: 5.3.0
|
||||
|
||||
compress-commons@6.0.2:
|
||||
compress-commons@7.0.1:
|
||||
dependencies:
|
||||
crc-32: 1.2.2
|
||||
crc32-stream: 6.0.0
|
||||
is-stream: 2.0.1
|
||||
crc32-stream: 7.0.1
|
||||
is-stream: 4.0.1
|
||||
normalize-path: 3.0.0
|
||||
readable-stream: 4.5.2
|
||||
|
||||
@@ -22947,7 +22893,7 @@ snapshots:
|
||||
|
||||
crc-32@1.2.2: {}
|
||||
|
||||
crc32-stream@6.0.0:
|
||||
crc32-stream@7.0.1:
|
||||
dependencies:
|
||||
crc-32: 1.2.2
|
||||
readable-stream: 4.5.2
|
||||
@@ -24197,11 +24143,6 @@ snapshots:
|
||||
|
||||
follow-redirects@1.16.0: {}
|
||||
|
||||
foreground-child@3.3.1:
|
||||
dependencies:
|
||||
cross-spawn: 7.0.6
|
||||
signal-exit: 4.1.0
|
||||
|
||||
form-data-encoder@2.1.4: {}
|
||||
|
||||
form-data@4.0.5:
|
||||
@@ -24342,15 +24283,6 @@ snapshots:
|
||||
|
||||
glob-to-regexp@0.4.1: {}
|
||||
|
||||
glob@10.5.0:
|
||||
dependencies:
|
||||
foreground-child: 3.3.1
|
||||
jackspeak: 3.4.3
|
||||
minimatch: 9.0.5
|
||||
minipass: 7.1.3
|
||||
package-json-from-dist: 1.0.1
|
||||
path-scurry: 1.11.1
|
||||
|
||||
glob@13.0.6:
|
||||
dependencies:
|
||||
minimatch: 10.2.5
|
||||
@@ -25158,12 +25090,6 @@ snapshots:
|
||||
html-escaper: 2.0.2
|
||||
istanbul-lib-report: 3.0.1
|
||||
|
||||
jackspeak@3.4.3:
|
||||
dependencies:
|
||||
'@isaacs/cliui': 8.0.2
|
||||
optionalDependencies:
|
||||
'@pkgjs/parseargs': 0.11.0
|
||||
|
||||
jackspeak@4.2.3:
|
||||
dependencies:
|
||||
'@isaacs/cliui': 9.0.0
|
||||
@@ -25173,7 +25099,7 @@ snapshots:
|
||||
jest-util@29.7.0:
|
||||
dependencies:
|
||||
'@jest/types': 29.6.3
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
chalk: 4.1.2
|
||||
ci-info: 3.9.0
|
||||
graceful-fs: 4.2.11
|
||||
@@ -25181,13 +25107,13 @@ snapshots:
|
||||
|
||||
jest-worker@27.5.1:
|
||||
dependencies:
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
merge-stream: 2.0.0
|
||||
supports-color: 8.1.1
|
||||
|
||||
jest-worker@29.7.0:
|
||||
dependencies:
|
||||
'@types/node': 24.13.1
|
||||
'@types/node': 24.13.2
|
||||
jest-util: 29.7.0
|
||||
merge-stream: 2.0.0
|
||||
supports-color: 8.1.1
|
||||
@@ -25208,7 +25134,7 @@ snapshots:
|
||||
|
||||
jose@6.2.3: {}
|
||||
|
||||
jotai@2.20.0(@babel/core@7.29.0)(@babel/template@7.29.7)(@types/react@19.2.17)(react@19.2.7):
|
||||
jotai@2.20.1(@babel/core@7.29.0)(@babel/template@7.29.7)(@types/react@19.2.17)(react@19.2.7):
|
||||
optionalDependencies:
|
||||
'@babel/core': 7.29.0
|
||||
'@babel/template': 7.29.7
|
||||
@@ -26210,14 +26136,6 @@ snapshots:
|
||||
dependencies:
|
||||
brace-expansion: 5.0.6
|
||||
|
||||
minimatch@5.1.6:
|
||||
dependencies:
|
||||
brace-expansion: 5.0.6
|
||||
|
||||
minimatch@9.0.5:
|
||||
dependencies:
|
||||
brace-expansion: 5.0.6
|
||||
|
||||
minimist@1.2.8: {}
|
||||
|
||||
minipass@7.1.3: {}
|
||||
@@ -26666,8 +26584,6 @@ snapshots:
|
||||
|
||||
p-try@1.0.0: {}
|
||||
|
||||
package-json-from-dist@1.0.1: {}
|
||||
|
||||
package-json@8.1.1:
|
||||
dependencies:
|
||||
got: 12.6.1
|
||||
@@ -26776,11 +26692,6 @@ snapshots:
|
||||
dependencies:
|
||||
path-root-regex: 0.1.2
|
||||
|
||||
path-scurry@1.11.1:
|
||||
dependencies:
|
||||
lru-cache: 10.4.3
|
||||
minipass: 7.1.3
|
||||
|
||||
path-scurry@2.0.2:
|
||||
dependencies:
|
||||
lru-cache: 11.3.5
|
||||
@@ -27895,9 +27806,9 @@ snapshots:
|
||||
process: 0.11.10
|
||||
string_decoder: 1.3.0
|
||||
|
||||
readdir-glob@1.1.3:
|
||||
readdir-glob@3.0.0:
|
||||
dependencies:
|
||||
minimatch: 5.1.6
|
||||
minimatch: 10.2.5
|
||||
|
||||
readdirp@3.6.0:
|
||||
dependencies:
|
||||
@@ -29003,11 +28914,11 @@ snapshots:
|
||||
commander: 2.20.3
|
||||
source-map-support: 0.5.21
|
||||
|
||||
testcontainers@12.0.1:
|
||||
testcontainers@12.0.2:
|
||||
dependencies:
|
||||
'@balena/dockerignore': 1.0.2
|
||||
'@types/dockerode': 4.0.1
|
||||
archiver: 7.0.1
|
||||
archiver: 8.0.0
|
||||
async-lock: 1.4.1
|
||||
byline: 5.0.0
|
||||
debug: 4.4.3
|
||||
@@ -29019,7 +28930,7 @@ snapshots:
|
||||
ssh-remote-port-forward: 1.0.4
|
||||
tar-fs: 3.1.2
|
||||
tmp: 0.2.7
|
||||
undici: 7.25.0
|
||||
undici: 8.4.1
|
||||
transitivePeerDependencies:
|
||||
- bare-buffer
|
||||
- supports-color
|
||||
@@ -29279,6 +29190,8 @@ snapshots:
|
||||
|
||||
undici@7.27.2: {}
|
||||
|
||||
undici@8.4.1: {}
|
||||
|
||||
unhead@2.1.15:
|
||||
dependencies:
|
||||
hookable: 6.1.1
|
||||
@@ -30135,10 +30048,10 @@ snapshots:
|
||||
|
||||
yoctocolors@2.1.1: {}
|
||||
|
||||
zip-stream@6.0.1:
|
||||
zip-stream@7.0.5:
|
||||
dependencies:
|
||||
archiver-utils: 5.0.2
|
||||
compress-commons: 6.0.2
|
||||
compress-commons: 7.0.1
|
||||
normalize-path: 3.0.0
|
||||
readable-stream: 4.5.2
|
||||
|
||||
zod-form-data@3.0.2(zod@4.4.3):
|
||||
|
||||
+6
-6
@@ -49,9 +49,9 @@ catalog:
|
||||
"@tanstack/react-query": ^5.101.0
|
||||
"@tanstack/react-query-devtools": ^5.101.0
|
||||
"@tanstack/react-query-next-experimental": ^5.101.0
|
||||
"@testcontainers/mysql": ^12.0.1
|
||||
"@testcontainers/postgresql": ^12.0.1
|
||||
"@testcontainers/redis": ^12.0.1
|
||||
"@testcontainers/mysql": ^12.0.2
|
||||
"@testcontainers/postgresql": ^12.0.2
|
||||
"@testcontainers/redis": ^12.0.2
|
||||
"@tiptap/extension-color": 3.26.0
|
||||
"@tiptap/extension-highlight": 3.26.0
|
||||
"@tiptap/extension-image": 3.26.0
|
||||
@@ -88,7 +88,7 @@ catalog:
|
||||
"@types/prismjs": ^1.26.6
|
||||
"@types/react": 19.2.17
|
||||
"@types/react-dom": 19.2.3
|
||||
"@scalar/api-reference-react": ^0.9.45
|
||||
"@scalar/api-reference-react": ^0.9.46
|
||||
"@types/video.js": ^7.3.58
|
||||
"@types/ws": ^8.18.1
|
||||
"@types/xml2js": ^0.4.14
|
||||
@@ -131,7 +131,7 @@ catalog:
|
||||
ical.js: ^2.2.1
|
||||
ioredis: 5.11.1
|
||||
isomorphic-dompurify: ^3.16.0
|
||||
jotai: ^2.20.0
|
||||
jotai: ^2.20.1
|
||||
jsdom: ^29.1.1
|
||||
json5: ^2.2.3
|
||||
jsonpath-plus: ^10.4.0
|
||||
@@ -168,7 +168,7 @@ catalog:
|
||||
semver-parser: ^4.2.1
|
||||
superjson: 2.2.6
|
||||
svgson: ^5.3.1
|
||||
testcontainers: ^12.0.1
|
||||
testcontainers: ^12.0.2
|
||||
timezones-ical-library: ^2.2.0
|
||||
trpc-to-mcp: ^1.3.2
|
||||
trpc-to-openapi: ^3.3.0
|
||||
|
||||
Reference in new issue
Block a user