Compare commits

..
8 changed files with 726 additions and 655 deletions

No files matched your search

+40
View File
@@ -1,3 +1,43 @@
## [1.63.0](https://github.com/homarr-labs/homarr/compare/v1.62.0...v1.63.0) (2026-05-29)
### Features
* **auth:** support custom token endpoint auth methods ([#5806](https://github.com/homarr-labs/homarr/issues/5806)) ([be61602](https://github.com/homarr-labs/homarr/commit/be61602576a8bec4bb7e4928d36e0854e926264d))
* auto-open widget settings on add with all integrations pre-selected ([#5767](https://github.com/homarr-labs/homarr/issues/5767)) ([f10bb3a](https://github.com/homarr-labs/homarr/commit/f10bb3ae23fefc9779332733706aa567cc40ba48))
* **board:** persist category collapse state in localStorage for guests ([#5714](https://github.com/homarr-labs/homarr/issues/5714)) ([66212b4](https://github.com/homarr-labs/homarr/commit/66212b4e475738e61d2ea78f3a7e72d7a610bf12)), closes [#3355](https://github.com/homarr-labs/homarr/issues/3355)
* **manage:** unified management page layout ([#5758](https://github.com/homarr-labs/homarr/issues/5758)) ([c252b4f](https://github.com/homarr-labs/homarr/commit/c252b4f9accc4523f222354c73f687714640701f))
* **users:** rework general settings ([#4915](https://github.com/homarr-labs/homarr/issues/4915)) ([2991777](https://github.com/homarr-labs/homarr/commit/2991777b0a0ae72522d0769a86a91250d618dbe6))
### Bug Fixes
* matine ui fixes for concistency ([#5733](https://github.com/homarr-labs/homarr/issues/5733)) ([4454e3f](https://github.com/homarr-labs/homarr/commit/4454e3fb7afa624ee2f1eaec015f2725e664ac46))
* parse Speedtest Tracker created_at as local time ([#5751](https://github.com/homarr-labs/homarr/issues/5751)) ([b19549b](https://github.com/homarr-labs/homarr/commit/b19549b601636bcbc2fadaa270a77a9fdb48b77a))
* prevent GitHub releases check from blocking app on API failure ([#5807](https://github.com/homarr-labs/homarr/issues/5807)) ([6cc2ac5](https://github.com/homarr-labs/homarr/commit/6cc2ac56a920563c47aaaab1b33b19a9b6d5ecee))
* **ui:** use imported theme instead of undefined createTheme ([4a67bf0](https://github.com/homarr-labs/homarr/commit/4a67bf0ef30ff8d10b06d2d3719ccab792395669))
### Performance Improvements
* **boards:** parallelize board page data fetching ([#5736](https://github.com/homarr-labs/homarr/issues/5736)) ([8f03a38](https://github.com/homarr-labs/homarr/commit/8f03a38de5b9b385da7ffcc9a963be00710acb5e))
## [1.62.0](https://github.com/homarr-labs/homarr/compare/v1.61.1...v1.62.0) (2026-05-22)
### Features
* **seed:** add demo mode with pre-seeded user ([#5739](https://github.com/homarr-labs/homarr/issues/5739)) ([dade477](https://github.com/homarr-labs/homarr/commit/dade477b3226765eb614e66588ebee84c45cb688))
### Bug Fixes
* **deps:** update dependency better-sqlite3 to ^12.10.0 ([#5727](https://github.com/homarr-labs/homarr/issues/5727)) ([044ad9e](https://github.com/homarr-labs/homarr/commit/044ad9edf9c1dc9b50b9591dea0b5f0cce4be01a))
* **docker:** improve icon matching ([#5693](https://github.com/homarr-labs/homarr/issues/5693)) ([7cd30b6](https://github.com/homarr-labs/homarr/commit/7cd30b640cbf47e4678abda18f83c0924f039b1b))
* exclude .env files from Docker build context ([#5738](https://github.com/homarr-labs/homarr/issues/5738)) ([fa73763](https://github.com/homarr-labs/homarr/commit/fa737638a812372d904207fe7af5bd7c6f53d159))
* **tracearr:** support absolute image urls ([#5654](https://github.com/homarr-labs/homarr/issues/5654)) ([7a12721](https://github.com/homarr-labs/homarr/commit/7a1272146c597c1f9df89d74b8389f70e7cdd61a))
### Performance Improvements
* (next branch) reduce idle memory on startup ([#5637](https://github.com/homarr-labs/homarr/issues/5637)) ([5ee84f8](https://github.com/homarr-labs/homarr/commit/5ee84f8cf464c308729281cb4db572950ba85a82))
* **boards:** remove loading overlay and show board immediately ([#5735](https://github.com/homarr-labs/homarr/issues/5735)) ([df4b57b](https://github.com/homarr-labs/homarr/commit/df4b57bd414d4402522f9210b1470d0561c37274))
* **memory:** combine 3 node processes into one ([#5600](https://github.com/homarr-labs/homarr/issues/5600)) ([a1aa550](https://github.com/homarr-labs/homarr/commit/a1aa5505a365688b456090a882770e561479833e))
## [1.61.1](https://github.com/homarr-labs/homarr/compare/v1.61.0...v1.61.1) (2026-05-18) ## [1.61.1](https://github.com/homarr-labs/homarr/compare/v1.61.0...v1.61.1) (2026-05-18)
### Bug Fixes ### Bug Fixes
@@ -107,23 +107,6 @@ export function DockerTable(initialData: RouterOutputs["docker"]["getContainers"
refetchOnReconnect: false, refetchOnReconnect: false,
}); });
const relativeTime = useTimeAgo(data.timestamp); const relativeTime = useTimeAgo(data.timestamp);
const utils = clientApi.useUtils();
const { mutate, isPending } = clientApi.docker.invalidate.useMutation({
async onSuccess() {
await utils.docker.getContainers.invalidate();
showSuccessNotification({
title: tDocker("action.refresh.notification.success.title"),
message: tDocker("action.refresh.notification.success.message"),
});
},
onError() {
showErrorNotification({
title: tDocker("action.refresh.notification.error.title"),
message: tDocker("action.refresh.notification.error.message"),
});
},
});
const table = useTranslatedMantineReactTable({ const table = useTranslatedMantineReactTable({
data: data.containers, data: data.containers,
enableDensityToggle: false, enableDensityToggle: false,
@@ -142,11 +125,35 @@ export function DockerTable(initialData: RouterOutputs["docker"]["getContainers"
}, },
initialState: { density: "xs", showGlobalFilter: true }, initialState: { density: "xs", showGlobalFilter: true },
renderTopToolbarCustomActions: () => ( renderTopToolbarCustomActions: () => {
<Button variant="default" rightSection={<IconRefresh size="1rem" />} onClick={() => mutate()} loading={isPending}> const utils = clientApi.useUtils();
{tDocker("action.refresh.label")} const { mutate, isPending } = clientApi.docker.invalidate.useMutation({
</Button> async onSuccess() {
), await utils.docker.getContainers.invalidate();
showSuccessNotification({
title: tDocker("action.refresh.notification.success.title"),
message: tDocker("action.refresh.notification.success.message"),
});
},
onError() {
showErrorNotification({
title: tDocker("action.refresh.notification.error.title"),
message: tDocker("action.refresh.notification.error.message"),
});
},
});
return (
<Button
variant="default"
rightSection={<IconRefresh size="1rem" />}
onClick={() => mutate()}
loading={isPending}
>
{tDocker("action.refresh.label")}
</Button>
);
},
renderToolbarAlertBannerContent: ({ groupedAlert, table }) => { renderToolbarAlertBannerContent: ({ groupedAlert, table }) => {
const dockerContainers = table.getSelectedRowModel().rows.map((row) => row.original); const dockerContainers = table.getSelectedRowModel().rows.map((row) => row.original);
return ( return (
+2 -2
View File
@@ -6,9 +6,9 @@
}, },
"engines": { "engines": {
"node": ">=24.16.0", "node": ">=24.16.0",
"pnpm": ">=10.34.1" "pnpm": ">=10.33.4"
}, },
"packageManager": "pnpm@10.34.1", "packageManager": "pnpm@10.33.4",
"pnpm": { "pnpm": {
"onlyBuiltDependencies": [ "onlyBuiltDependencies": [
"better-sqlite3" "better-sqlite3"
+7 -7
View File
@@ -1,6 +1,6 @@
{ {
"name": "homarr", "name": "homarr",
"version": "1.61.1", "version": "1.63.0",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "cross-env CI=true turbo build", "build": "cross-env CI=true turbo build",
@@ -60,9 +60,9 @@
}, },
"engines": { "engines": {
"node": ">=24.16.0", "node": ">=24.16.0",
"pnpm": ">=10.34.1" "pnpm": ">=10.33.4"
}, },
"packageManager": "pnpm@10.34.1", "packageManager": "pnpm@10.33.4",
"pnpm": { "pnpm": {
"onlyBuiltDependencies": [ "onlyBuiltDependencies": [
"@tree-sitter-grammars/tree-sitter-yaml", "@tree-sitter-grammars/tree-sitter-yaml",
@@ -76,14 +76,14 @@
"tree-sitter-json" "tree-sitter-json"
], ],
"overrides": { "overrides": {
"@babel/helpers@<7.26.10": ">=7.29.7", "@babel/helpers@<7.26.10": ">=7.29.2",
"@babel/runtime@<7.26.10": ">=7.29.7", "@babel/runtime@<7.26.10": ">=7.29.2",
"axios@>=1.0.0 <1.8.2": ">=1.16.1", "axios@>=1.0.0 <1.8.2": ">=1.16.1",
"brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.6", "brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.6",
"brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.6", "brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.6",
"esbuild@<=0.24.2": ">=0.28.0", "esbuild@<=0.24.2": ">=0.28.0",
"form-data@>=4.0.0 <4.0.4": ">=4.0.5", "form-data@>=4.0.0 <4.0.4": ">=4.0.5",
"hono@<4.6.5": ">=4.12.23", "hono@<4.6.5": ">=4.12.22",
"linkifyjs@<4.3.2": ">=4.3.3", "linkifyjs@<4.3.2": ">=4.3.3",
"nanoid@>=4.0.0 <5.0.9": ">=5.1.11", "nanoid@>=4.0.0 <5.0.9": ">=5.1.11",
"prismjs@<1.30.0": ">=1.30.0", "prismjs@<1.30.0": ">=1.30.0",
@@ -93,7 +93,7 @@
"sha.js@<=2.4.11": ">=2.4.12", "sha.js@<=2.4.11": ">=2.4.12",
"tar-fs@>=3.0.0 <3.0.9": ">=3.1.2", "tar-fs@>=3.0.0 <3.0.9": ">=3.1.2",
"tar-fs@>=2.0.0 <2.1.3": ">=3.1.2", "tar-fs@>=2.0.0 <2.1.3": ">=3.1.2",
"tmp@<=0.2.3": ">=0.2.7", "tmp@<=0.2.3": ">=0.2.5",
"vite@>=5.0.0 <=5.4.18": ">=8.0.14" "vite@>=5.0.0 <=5.4.18": ">=8.0.14"
}, },
"patchedDependencies": { "patchedDependencies": {
+5 -5
View File
@@ -1056,7 +1056,7 @@
} }
}, },
"noResults": { "noResults": {
"title": "Nessun media caricato" "title": ""
} }
}, },
"common": { "common": {
@@ -1088,8 +1088,8 @@
"checkLogs": "Controlla i log per maggiori dettagli", "checkLogs": "Controlla i log per maggiori dettagli",
"tryAgain": "Riprova", "tryAgain": "Riprova",
"loading": "Caricamento", "loading": "Caricamento",
"show": "Visualizza", "show": "",
"hide": "Nascondi" "hide": ""
}, },
"here": "qui", "here": "qui",
"iconPicker": { "iconPicker": {
@@ -1255,7 +1255,7 @@
"label": { "label": {
"create": "Nuova categoria", "create": "Nuova categoria",
"changePosition": "Cambia posizione", "changePosition": "Cambia posizione",
"settings": "Impostazioni" "settings": ""
} }
}, },
"openAllInNewTabs": { "openAllInNewTabs": {
@@ -3459,7 +3459,7 @@
"private": "Questa board è privata" "private": "Questa board è privata"
}, },
"noResults": { "noResults": {
"title": "Ancora nessuna board" "title": ""
}, },
"modal": { "modal": {
"createBoard": { "createBoard": {
+106 -106
View File
@@ -82,7 +82,7 @@
"form": { "form": {
"name": { "name": {
"label": "Gruppens namn", "label": "Gruppens namn",
"description": "Namnet måste matcha admin-grupp i extern tjänst" "description": ""
} }
} }
}, },
@@ -159,7 +159,7 @@
"label": "Visa sökresultat i ny flik" "label": "Visa sökresultat i ny flik"
}, },
"ddgBangs": { "ddgBangs": {
"label": "Aktivera DuckDuckGo bangs" "label": ""
} }
}, },
"error": { "error": {
@@ -252,10 +252,10 @@
"changeDdgBangs": { "changeDdgBangs": {
"notification": { "notification": {
"success": { "success": {
"message": "DuckDuckGo bangs inställningen ändrad" "message": ""
}, },
"error": { "error": {
"message": "DuckDuckGo bangs inställningen kunde inte ändras" "message": ""
} }
} }
}, },
@@ -350,12 +350,12 @@
"description": "Tillåt medlemmar att addera valfri applikation på sina tavlor" "description": "Tillåt medlemmar att addera valfri applikation på sina tavlor"
}, },
"modify-all": { "modify-all": {
"label": "Modifiera alla appar", "label": "",
"description": "Tillåt att medlemmar modifierar alla appar" "description": ""
}, },
"full-all": { "full-all": {
"label": "Fullständiga rättigheter till appar", "label": "",
"description": "Tillåt att medlemmar hanterar, använder och raderar alla appar" "description": ""
} }
} }
}, },
@@ -363,20 +363,20 @@
"title": "Tavlor", "title": "Tavlor",
"item": { "item": {
"create": { "create": {
"label": "Skapa tavlor", "label": "",
"description": "Tillåt att medlemmar skapar tavlor" "description": ""
}, },
"view-all": { "view-all": {
"label": "Se alla tavlor", "label": "",
"description": "Tillåt att medlemmar ser alla tavlor" "description": ""
}, },
"modify-all": { "modify-all": {
"label": "Modifiera alla tavlor", "label": "",
"description": "Tillåt att medlemmar modifierar alla tavlor (Detta inkluderar inte åtkomstkontroll eller farozonen)" "description": ""
}, },
"full-all": { "full-all": {
"label": "Fullständiga rättigheter till tavlor", "label": "",
"description": "Tillåt att medlemmar ser, modifierar och tar bort alla tavlor (detta inkluderar åtkomstkontroll och farozonen)" "description": ""
} }
} }
}, },
@@ -392,38 +392,38 @@
"description": "Tillåter medlemmar att addera valfri integration till sina tavlor" "description": "Tillåter medlemmar att addera valfri integration till sina tavlor"
}, },
"interact-all": { "interact-all": {
"label": "Interagera med alla integrationer", "label": "",
"description": "Tillåt att medlemmar interagerar med alla integrationer" "description": ""
}, },
"full-all": { "full-all": {
"label": "Fullständiga rättigheter till integrationer", "label": "",
"description": "Tillåt att medlemmar hanterar, använder och interagerar med alla integrationer" "description": ""
} }
} }
}, },
"media": { "media": {
"title": "Media", "title": "",
"item": { "item": {
"upload": { "upload": {
"label": "Ladda upp media", "label": "",
"description": "Tillåt att medlemmar laddar upp media" "description": ""
}, },
"view-all": { "view-all": {
"label": "Se all media", "label": "",
"description": "Tillåt att medlemmar ser all media" "description": ""
}, },
"full-all": { "full-all": {
"label": "Fullständiga rättigheter till media", "label": "",
"description": "Tillåt att medlemmar hanterar och raderar all media" "description": ""
} }
} }
}, },
"other": { "other": {
"title": "Annat", "title": "",
"item": { "item": {
"view-logs": { "view-logs": {
"label": "Se loggar", "label": "",
"description": "Tillåt att medlemmar ser loggar" "description": ""
} }
} }
}, },
@@ -435,32 +435,32 @@
"description": "Tillåt medlemmar att skapa sökmotorer" "description": "Tillåt medlemmar att skapa sökmotorer"
}, },
"modify-all": { "modify-all": {
"label": "Modifiera alla sökmotorer", "label": "",
"description": "Tillåt att medlemmar modifierar alla sökmotorer" "description": ""
}, },
"full-all": { "full-all": {
"label": "Fullständiga rättigheter till sökmotorer", "label": "",
"description": "Tillåt att medlemmar hanterar och raderar alla sökmotorer" "description": ""
} }
} }
} }
}, },
"memberNotice": { "memberNotice": {
"mixed": "Vissa medlemmar är från externa tjänster och kan inte hantera här", "mixed": "",
"external": "Alla medlemmar är från externa tjänster och kan inte hanteras här" "external": ""
}, },
"reservedNotice": { "reservedNotice": {
"message": "Denna grupp är reserverad för systemet så vissa åtgärder är begränsade. <checkoutDocs></checkoutDocs>" "message": ""
}, },
"action": { "action": {
"create": { "create": {
"label": "Addera en grupp", "label": "Addera en grupp",
"notification": { "notification": {
"success": { "success": {
"message": "Gruppen har skapats" "message": ""
}, },
"error": { "error": {
"message": "Gruppen kunde inte skapas" "message": ""
} }
} }
}, },
@@ -470,7 +470,7 @@
"confirm": "Är du säker på att du vill överföra ägarskapet för gruppen {name} till {username}?", "confirm": "Är du säker på att du vill överföra ägarskapet för gruppen {name} till {username}?",
"notification": { "notification": {
"success": { "success": {
"message": "Överfört grupp {group} till {user}" "message": ""
}, },
"error": { "error": {
"message": "Kunde inte överföra ägarskap" "message": "Kunde inte överföra ägarskap"
@@ -501,38 +501,38 @@
"notification": { "notification": {
"success": { "success": {
"title": "Behörigheter sparade", "title": "Behörigheter sparade",
"message": "Rättigheterna sparade" "message": ""
}, },
"error": { "error": {
"title": "Rättigheterna ej sparade", "title": "",
"message": "Rättigheterna har inte sparats" "message": ""
} }
} }
}, },
"update": { "update": {
"notification": { "notification": {
"success": { "success": {
"message": "Gruppen {name} har sparats" "message": ""
}, },
"error": { "error": {
"message": "Kunde inte spara gruppen {name}" "message": ""
} }
} }
}, },
"select": { "select": {
"label": "Välj en grupp", "label": "Välj en grupp",
"notFound": "Ingen grupp hittad" "notFound": ""
}, },
"settings": { "settings": {
"board": { "board": {
"notification": { "notification": {
"success": { "success": {
"title": "Inställningarna sparades", "title": "Inställningarna sparades",
"message": "Inställningarna för tavlan har sparats" "message": ""
}, },
"error": { "error": {
"title": "Kunde inte spara inställningarna", "title": "Kunde inte spara inställningarna",
"message": "Kunde inte spara inställningarna för tavlan" "message": ""
} }
} }
} }
@@ -540,10 +540,10 @@
"changePosition": { "changePosition": {
"notification": { "notification": {
"success": { "success": {
"message": "Ordning ändrad" "message": ""
}, },
"error": { "error": {
"message": "Ordningen kunde ändras" "message": ""
} }
} }
} }
@@ -559,20 +559,20 @@
"list": { "list": {
"title": "Applikationer", "title": "Applikationer",
"noResults": { "noResults": {
"title": "Det finns inga appar ännu", "title": "",
"action": "Skapa din första app" "action": ""
} }
}, },
"create": { "create": {
"title": "Addera applikation", "title": "Addera applikation",
"notification": { "notification": {
"success": { "success": {
"title": "Skapandet lyckades", "title": "",
"message": "Appen skapades framgångsrikt" "message": ""
}, },
"error": { "error": {
"title": "Skapandet misslyckades", "title": "",
"message": "Appen kunde inte skapas" "message": ""
} }
} }
}, },
@@ -581,11 +581,11 @@
"notification": { "notification": {
"success": { "success": {
"title": "Ändringarna har sparats", "title": "Ändringarna har sparats",
"message": "Appen sparades" "message": ""
}, },
"error": { "error": {
"title": "Misslyckades med att spara ändringarna", "title": "Misslyckades med att spara ändringarna",
"message": "Appen kunde inte sparas" "message": ""
} }
} }
}, },
@@ -594,12 +594,12 @@
"message": "Är du säker på att du vill ta bort applikationen {name}?", "message": "Är du säker på att du vill ta bort applikationen {name}?",
"notification": { "notification": {
"success": { "success": {
"title": "Borttagning lyckades", "title": "",
"message": "Appen har tagits bort" "message": ""
}, },
"error": { "error": {
"title": "Borttagning misslyckades", "title": "",
"message": "Kunde inte ta bort appen" "message": ""
} }
} }
} }
@@ -612,21 +612,21 @@
"label": "Beskrivning" "label": "Beskrivning"
}, },
"url": { "url": {
"label": "URL" "label": ""
}, },
"useDifferentUrlForPing": { "useDifferentUrlForPing": {
"checkbox": { "checkbox": {
"label": "Använd annan URL för ping", "label": "",
"description": "Användbart om Homarr kan komma åt appen direkt via ett internt host-namn eller nätverk för att undvika bandbreddsanvändning hos internetleverantör" "description": ""
} }
} }
}, },
"action": { "action": {
"select": { "select": {
"label": "Välj app", "label": "",
"notFound": "Ingen app hittades", "notFound": "",
"search": "Sök efter en applikation", "search": "Sök efter en applikation",
"noResults": "Inga resultat", "noResults": "",
"action": "Välj {app}", "action": "Välj {app}",
"title": "Välj en applikation att lägga till på tavlan" "title": "Välj en applikation att lägga till på tavlan"
}, },
@@ -642,56 +642,56 @@
"page": { "page": {
"list": { "list": {
"title": "Integrationer", "title": "Integrationer",
"search": "Sök integrationer", "search": "",
"noResults": { "noResults": {
"title": "Det finns inga integrationer ännu" "title": ""
} }
}, },
"create": { "create": {
"title": "Ny {name} integration", "title": "",
"notification": { "notification": {
"success": { "success": {
"title": "Skapandet lyckades", "title": "",
"message": "Integrationen har skapats" "message": ""
}, },
"error": { "error": {
"title": "Skapandet misslyckades", "title": "",
"message": "Integrationen kunde inte skapas" "message": ""
} }
}, },
"app": { "app": {
"option": { "option": {
"existing": { "existing": {
"title": "Befintlig", "title": "",
"label": "Välj befintlig app" "label": ""
}, },
"new": { "new": {
"title": "Ny", "title": "",
"url": { "url": {
"label": "App URL", "label": "",
"description": "URL:en som appen kommer att öppna när den används från tavlan" "description": ""
} }
} }
} }
} }
}, },
"edit": { "edit": {
"title": "Redigera {name} integration", "title": "",
"notification": { "notification": {
"success": { "success": {
"title": "Ändringarna har sparats", "title": "Ändringarna har sparats",
"message": "Integrationen sparad" "message": ""
}, },
"error": { "error": {
"title": "Kunde inte tillämpa ändringar", "title": "",
"message": "Integrationen kunde inte sparas" "message": ""
} }
}, },
"app": { "app": {
"action": { "action": {
"add": "Länka en app", "add": "",
"remove": "Ta bort länk", "remove": "",
"select": "Välj en app att länka till" "select": ""
} }
} }
}, },
@@ -700,12 +700,12 @@
"message": "Är du säker på att du vill ta bort integrationen {name}?", "message": "Är du säker på att du vill ta bort integrationen {name}?",
"notification": { "notification": {
"success": { "success": {
"title": "Borttagning lyckades", "title": "",
"message": "Integrationen har tagits bort" "message": ""
}, },
"error": { "error": {
"title": "Borttagning misslyckades", "title": "",
"message": "Kunde inte ta bort integrationen" "message": ""
} }
} }
} }
@@ -715,44 +715,44 @@
"label": "Namn" "label": "Namn"
}, },
"url": { "url": {
"label": "URL" "label": ""
}, },
"attemptSearchEngineCreation": { "attemptSearchEngineCreation": {
"label": "Skapa sökmotor", "label": "",
"description": "Integrationen \"{kind}\" kan inte användas med sökmotorer. Markera detta för att automatiskt konfigurera sökmotorn." "description": ""
}, },
"app": { "app": {
"sectionTitle": "Länkad app" "sectionTitle": ""
}, },
"createApp": { "createApp": {
"label": "Skapa app", "label": "",
"description": "Skapa en app med samma namn och ikon som integrationen. Lämna fältet nedan tomt för att skapa en app med integrationens URL." "description": ""
}, },
"appHref": { "appHref": {
"placeholder": "Egen app-URL" "placeholder": ""
} }
}, },
"action": { "action": {
"create": "Ny integration" "create": ""
}, },
"testConnection": { "testConnection": {
"action": { "action": {
"create": "Testa anslutningen och skapa", "create": "",
"edit": "Testa anslutningen och skapa" "edit": ""
}, },
"error": { "error": {
"common": { "common": {
"cause": { "cause": {
"title": "Orsak med mer detaljer" "title": ""
} }
}, },
"unknown": { "unknown": {
"title": "Okänt fel", "title": "",
"description": "Ett okänt fel inträffade, öppna orsaken nedan för att se mer detaljer" "description": ""
}, },
"parse": { "parse": {
"title": "Parsningsfel", "title": "",
"description": "Svaret kunde inte analyseras. Verifiera att URL pekar på bas-URL för tjänsten." "description": ""
}, },
"authorization": { "authorization": {
"title": "", "title": "",
+507 -483
View File
File diff suppressed because it is too large. Load diff
+30 -30
View File
@@ -6,7 +6,7 @@ catalog:
"@auth/core": ^0.41.2 "@auth/core": ^0.41.2
"@auth/drizzle-adapter": ^1.11.2 "@auth/drizzle-adapter": ^1.11.2
"@ctrl/deluge": ^8.0.0 "@ctrl/deluge": ^8.0.0
"@ctrl/qbittorrent": ^9.12.2 "@ctrl/qbittorrent": ^9.12.1
"@ctrl/transmission": ^7.4.0 "@ctrl/transmission": ^7.4.0
"@dnd-kit/core": ^6.3.1 "@dnd-kit/core": ^6.3.1
"@dnd-kit/modifiers": ^9.0.0 "@dnd-kit/modifiers": ^9.0.0
@@ -20,17 +20,17 @@ catalog:
"@immich/sdk": ^2.7.5 "@immich/sdk": ^2.7.5
"@jellyfin/sdk": ^0.13.0 "@jellyfin/sdk": ^0.13.0
"@kubernetes/client-node": ^1.4.0 "@kubernetes/client-node": ^1.4.0
"@mantine/charts": ^9.2.2 "@mantine/charts": ^9.2.1
"@mantine/colors-generator": ^9.2.2 "@mantine/colors-generator": ^9.2.1
"@mantine/core": ^9.2.2 "@mantine/core": ^9.2.1
"@mantine/dates": ^9.2.2 "@mantine/dates": ^9.2.1
"@mantine/dropzone": ^9.2.2 "@mantine/dropzone": ^9.2.1
"@mantine/form": ^9.2.2 "@mantine/form": ^9.2.1
"@mantine/hooks": ^9.2.2 "@mantine/hooks": ^9.2.1
"@mantine/modals": ^9.2.2 "@mantine/modals": ^9.2.1
"@mantine/notifications": ^9.2.2 "@mantine/notifications": ^9.2.1
"@mantine/spotlight": ^9.2.2 "@mantine/spotlight": ^9.2.1
"@mantine/tiptap": ^9.2.2 "@mantine/tiptap": ^9.2.1
"@next/eslint-plugin-next": 16.2.6 "@next/eslint-plugin-next": 16.2.6
"@octokit/auth-app": ^8.2.0 "@octokit/auth-app": ^8.2.0
"@paralleldrive/cuid2": ^3.3.0 "@paralleldrive/cuid2": ^3.3.0
@@ -43,12 +43,12 @@ catalog:
"@semantic-release/release-notes-generator": ^14.1.1 "@semantic-release/release-notes-generator": ^14.1.1
"@t3-oss/env-nextjs": ^0.13.11 "@t3-oss/env-nextjs": ^0.13.11
"@tabler/icons-react": ^3.44.0 "@tabler/icons-react": ^3.44.0
"@tanstack/react-query": ^5.100.14 "@tanstack/react-query": ^5.100.13
"@tanstack/react-query-devtools": ^5.100.14 "@tanstack/react-query-devtools": ^5.100.13
"@tanstack/react-query-next-experimental": ^5.100.14 "@tanstack/react-query-next-experimental": ^5.100.13
"@testcontainers/mysql": ^12.0.1 "@testcontainers/mysql": ^12.0.0
"@testcontainers/postgresql": ^12.0.1 "@testcontainers/postgresql": ^12.0.0
"@testcontainers/redis": ^12.0.1 "@testcontainers/redis": ^12.0.0
"@tiptap/extension-color": 3.23.6 "@tiptap/extension-color": 3.23.6
"@tiptap/extension-highlight": 3.23.6 "@tiptap/extension-highlight": 3.23.6
"@tiptap/extension-image": 3.23.6 "@tiptap/extension-image": 3.23.6
@@ -70,7 +70,7 @@ catalog:
"@trpc/react-query": ^11.17.0 "@trpc/react-query": ^11.17.0
"@trpc/server": ^11.17.0 "@trpc/server": ^11.17.0
"@trpc/tanstack-react-query": ^11.17.0 "@trpc/tanstack-react-query": ^11.17.0
"@turbo/gen": ^2.9.16 "@turbo/gen": ^2.9.14
"@types/adm-zip": 0.5.8 "@types/adm-zip": 0.5.8
"@types/bcrypt": 6.0.0 "@types/bcrypt": 6.0.0
"@types/better-sqlite3": 7.6.13 "@types/better-sqlite3": 7.6.13
@@ -109,7 +109,7 @@ catalog:
croner: 10.0.1 croner: 10.0.1
cross-env: ^10.1.0 cross-env: ^10.1.0
crypto-js: ^4.2.0 crypto-js: ^4.2.0
dayjs: ^1.11.21 dayjs: ^1.11.20
deepmerge: 4.3.1 deepmerge: 4.3.1
dns-caching: ^0.2.9 dns-caching: ^0.2.9
dockerode: ^5.0.0 dockerode: ^5.0.0
@@ -124,30 +124,30 @@ catalog:
flag-icons: ^7.5.0 flag-icons: ^7.5.0
glob: ^13.0.6 glob: ^13.0.6
ical.js: ^2.2.1 ical.js: ^2.2.1
ioredis: 5.11.0 ioredis: 5.10.1
isomorphic-dompurify: ^3.15.0 isomorphic-dompurify: ^3.14.0
jotai: ^2.20.0 jotai: ^2.20.0
jsdom: ^29.1.1 jsdom: ^29.1.1
json5: ^2.2.3 json5: ^2.2.3
ldapts: 8.1.8 ldapts: 8.1.8
lodash.clonedeep: ^4.5.0 lodash.clonedeep: ^4.5.0
mantine-react-table: npm:mantine-react-table-open@9.0.3 mantine-react-table: 2.0.0-beta.9
maria2: ^0.4.1 maria2: ^0.4.1
mysql2: 3.22.4 mysql2: 3.22.3
next: 16.2.6 next: 16.2.6
next-auth: 5.0.0-beta.31 next-auth: 5.0.0-beta.31
next-intl: 4.13.0 next-intl: 4.12.0
node-loader: ^2.1.0 node-loader: ^2.1.0
octokit: ^5.0.5 octokit: ^5.0.5
oxfmt: ^0.52.0 oxfmt: ^0.51.0
oxlint: ^1.67.0 oxlint: ^1.66.0
pg: ^8.21.0 pg: ^8.21.0
postcss-preset-mantine: ^1.18.0 postcss-preset-mantine: ^1.18.0
prismjs: ^1.30.0 prismjs: ^1.30.0
proxmox-api: 1.1.1 proxmox-api: 1.1.1
react: 19.2.6 react: 19.2.6
react-dom: 19.2.6 react-dom: 19.2.6
react-error-boundary: ^6.1.2 react-error-boundary: ^6.1.1
react-markdown: ^10.1.0 react-markdown: ^10.1.0
react-quill-new: ^3.8.3 react-quill-new: ^3.8.3
react-simple-code-editor: ^0.14.1 react-simple-code-editor: ^0.14.1
@@ -158,12 +158,12 @@ catalog:
superjson: 2.2.6 superjson: 2.2.6
svgson: ^5.3.1 svgson: ^5.3.1
swagger-ui-react: ^5.32.6 swagger-ui-react: ^5.32.6
testcontainers: ^12.0.1 testcontainers: ^12.0.0
timezones-ical-library: ^2.2.0 timezones-ical-library: ^2.2.0
trpc-to-openapi: ^3.3.0 trpc-to-openapi: ^3.3.0
tsdav: ^2.2.2 tsdav: ^2.2.2
tsx: 4.20.4 tsx: 4.20.4
turbo: ^2.9.16 turbo: ^2.9.14
typescript: ^5.9.3 typescript: ^5.9.3
undici: 7.24.6 undici: 7.24.6
use-deep-compare-effect: ^1.8.1 use-deep-compare-effect: ^1.8.1