From b11bf367d0567e4c8b9068804442ebd200dab01c Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 21:43:25 +0000 Subject: [PATCH 01/56] fix(deps): update tanstack-query monorepo to ^5.95.0 (#5325) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 6 +-- packages/api/package.json | 2 +- packages/cron-job-api/package.json | 2 +- pnpm-lock.yaml | 86 +++++++++++++++--------------- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index bf5b0375f..0651eed59 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -56,9 +56,9 @@ "@mantine/tiptap": "^8.3.18", "@million/lint": "1.0.14", "@tabler/icons-react": "^3.40.0", - "@tanstack/react-query": "^5.91.2", - "@tanstack/react-query-devtools": "^5.91.3", - "@tanstack/react-query-next-experimental": "^5.91.0", + "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query-devtools": "^5.95.0", + "@tanstack/react-query-next-experimental": "^5.95.0", "@trpc/client": "^11.14.1", "@trpc/next": "^11.14.1", "@trpc/react-query": "^11.14.1", diff --git a/packages/api/package.json b/packages/api/package.json index 74527649e..12fe4490e 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -41,7 +41,7 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@kubernetes/client-node": "^1.4.0", - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.95.0", "@trpc/client": "^11.14.1", "@trpc/react-query": "^11.14.1", "@trpc/server": "^11.14.1", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index e9d085e0e..fc0ab81d6 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -28,7 +28,7 @@ "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/cron-jobs": "workspace:^0.1.0", - "@tanstack/react-query": "^5.91.2", + "@tanstack/react-query": "^5.95.0", "@trpc/client": "^11.14.1", "@trpc/server": "^11.14.1", "@trpc/tanstack-react-query": "^11.14.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43c8166b7..7825c739f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -233,23 +233,23 @@ importers: specifier: ^3.40.0 version: 3.40.0(react@19.2.4) '@tanstack/react-query': - specifier: ^5.91.2 - version: 5.91.3(react@19.2.4) + specifier: ^5.95.0 + version: 5.95.2(react@19.2.4) '@tanstack/react-query-devtools': - specifier: ^5.91.3 - version: 5.91.3(@tanstack/react-query@5.91.3(react@19.2.4))(react@19.2.4) + specifier: ^5.95.0 + version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(react@19.2.4) '@tanstack/react-query-next-experimental': - specifier: ^5.91.0 - version: 5.91.0(@tanstack/react-query@5.91.3(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4) + specifier: ^5.95.0 + version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4) '@trpc/client': specifier: ^11.14.1 version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/next': specifier: ^11.14.1 - version: 11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@trpc/react-query': specifier: ^11.14.1 - version: 11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) '@trpc/server': specifier: ^11.14.1 version: 11.15.0(typescript@5.9.3) @@ -639,20 +639,20 @@ importers: specifier: ^1.4.0 version: 1.4.0 '@tanstack/react-query': - specifier: ^5.91.2 - version: 5.91.3(react@19.2.4) + specifier: ^5.95.0 + version: 5.95.2(react@19.2.4) '@trpc/client': specifier: ^11.14.1 version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/react-query': specifier: ^11.14.1 - version: 11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) '@trpc/server': specifier: ^11.14.1 version: 11.15.0(typescript@5.9.3) '@trpc/tanstack-react-query': specifier: ^11.14.1 - version: 11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) lodash.clonedeep: specifier: ^4.5.0 version: 4.5.0 @@ -954,8 +954,8 @@ importers: specifier: workspace:^0.1.0 version: link:../cron-jobs '@tanstack/react-query': - specifier: ^5.91.2 - version: 5.91.3(react@19.2.4) + specifier: ^5.95.0 + version: 5.95.2(react@19.2.4) '@trpc/client': specifier: ^11.14.1 version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) @@ -964,7 +964,7 @@ importers: version: 11.15.0(typescript@5.9.3) '@trpc/tanstack-react-query': specifier: ^11.14.1 - version: 11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) node-cron: specifier: ^4.2.1 version: 4.2.1 @@ -4647,27 +4647,27 @@ packages: resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.91.2': - resolution: {integrity: sha512-Uz2pTgPC1mhqrrSGg18RKCWT/pkduAYtxbcyIyKBhw7dTWjXZIzqmpzO2lBkyWr4hlImQgpu1m1pei3UnkFRWw==} + '@tanstack/query-core@5.95.2': + resolution: {integrity: sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==} - '@tanstack/query-devtools@5.93.0': - resolution: {integrity: sha512-+kpsx1NQnOFTZsw6HAFCW3HkKg0+2cepGtAWXjiiSOJJ1CtQpt72EE2nyZb+AjAbLRPoeRmPJ8MtQd8r8gsPdg==} + '@tanstack/query-devtools@5.95.2': + resolution: {integrity: sha512-QfaoqBn9uAZ+ICkA8brd1EHj+qBF6glCFgt94U8XP5BT6ppSsDBI8IJ00BU+cAGjQzp6wcKJL2EmRYvxy0TWIg==} - '@tanstack/react-query-devtools@5.91.3': - resolution: {integrity: sha512-nlahjMtd/J1h7IzOOfqeyDh5LNfG0eULwlltPEonYy0QL+nqrBB+nyzJfULV+moL7sZyxc2sHdNJki+vLA9BSA==} + '@tanstack/react-query-devtools@5.95.2': + resolution: {integrity: sha512-AFQFmbznVkbtfpx8VJ2DylW17wWagQel/qLstVLkYmNRo2CmJt3SNej5hvl6EnEeljJIdC3BTB+W7HZtpsH+3g==} peerDependencies: - '@tanstack/react-query': ^5.90.20 + '@tanstack/react-query': ^5.95.2 react: ^18 || ^19 - '@tanstack/react-query-next-experimental@5.91.0': - resolution: {integrity: sha512-/EbUnRBYInqoyXbPq/25fPko9JsY5r/DQVry8oR2CCU4z4hbb9ABGAOZ9jVt11OaOKxN5SGC8LE0XDSMNZCrKg==} + '@tanstack/react-query-next-experimental@5.95.2': + resolution: {integrity: sha512-86DqCinF4EWu/JqhKbjRpp/JXyQd+3RWquKCo1OXxHu8QGGUsql3vb0tjNzrv/GAgg+7VqMc/IqD+dKAlfECTQ==} peerDependencies: - '@tanstack/react-query': ^5.90.8 + '@tanstack/react-query': ^5.95.2 next: ^13 || ^14 || ^15 || ^16 react: ^18 || ^19 - '@tanstack/react-query@5.91.3': - resolution: {integrity: sha512-D8jsCexxS5crZxAeiH6VlLHOUzmHOxeW5c11y8rZu0c34u/cy18hUKQXA/gn1Ila3ZIFzP+Pzv76YnliC0EtZQ==} + '@tanstack/react-query@5.95.2': + resolution: {integrity: sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==} peerDependencies: react: ^18 || ^19 @@ -13437,25 +13437,25 @@ snapshots: dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.91.2': {} + '@tanstack/query-core@5.95.2': {} - '@tanstack/query-devtools@5.93.0': {} + '@tanstack/query-devtools@5.95.2': {} - '@tanstack/react-query-devtools@5.91.3(@tanstack/react-query@5.91.3(react@19.2.4))(react@19.2.4)': + '@tanstack/react-query-devtools@5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(react@19.2.4)': dependencies: - '@tanstack/query-devtools': 5.93.0 - '@tanstack/react-query': 5.91.3(react@19.2.4) + '@tanstack/query-devtools': 5.95.2 + '@tanstack/react-query': 5.95.2(react@19.2.4) react: 19.2.4 - '@tanstack/react-query-next-experimental@5.91.0(@tanstack/react-query@5.91.3(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4)': + '@tanstack/react-query-next-experimental@5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4)': dependencies: - '@tanstack/react-query': 5.91.3(react@19.2.4) + '@tanstack/react-query': 5.95.2(react@19.2.4) next: 16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0) react: 19.2.4 - '@tanstack/react-query@5.91.3(react@19.2.4)': + '@tanstack/react-query@5.95.2(react@19.2.4)': dependencies: - '@tanstack/query-core': 5.91.2 + '@tanstack/query-core': 5.95.2 react: 19.2.4 '@tanstack/react-table@8.20.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': @@ -13734,7 +13734,7 @@ snapshots: '@trpc/server': 11.15.0(typescript@5.9.3) typescript: 5.9.3 - '@trpc/next@11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@trpc/next@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: '@trpc/client': 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': 11.15.0(typescript@5.9.3) @@ -13743,12 +13743,12 @@ snapshots: react-dom: 19.2.4(react@19.2.4) typescript: 5.9.3 optionalDependencies: - '@tanstack/react-query': 5.91.3(react@19.2.4) - '@trpc/react-query': 11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + '@tanstack/react-query': 5.95.2(react@19.2.4) + '@trpc/react-query': 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) - '@trpc/react-query@11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)': + '@trpc/react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@tanstack/react-query': 5.91.3(react@19.2.4) + '@tanstack/react-query': 5.95.2(react@19.2.4) '@trpc/client': 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': 11.15.0(typescript@5.9.3) react: 19.2.4 @@ -13758,9 +13758,9 @@ snapshots: dependencies: typescript: 5.9.3 - '@trpc/tanstack-react-query@11.15.0(@tanstack/react-query@5.91.3(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)': + '@trpc/tanstack-react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@tanstack/react-query': 5.91.3(react@19.2.4) + '@tanstack/react-query': 5.95.2(react@19.2.4) '@trpc/client': 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': 11.15.0(typescript@5.9.3) react: 19.2.4 From 7c8adab06174abc39e9b1c8985b560780b72941c Mon Sep 17 00:00:00 2001 From: "homarr-releases[bot]" <175486441+homarr-releases[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 23:06:11 +0100 Subject: [PATCH 02/56] chore: update bug report template (#5349) Co-authored-by: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index bd3444e2d..ed077718b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -33,6 +33,7 @@ body: options: # The below comment is used to insert a new version with on-release.yml #NEXT_VERSION# + - 1.57.1 - 1.57.0 - 1.56.1 - 1.56.0 From 505a6b3a8970dff14c9c3c5326d200b68c8cb91d Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 23:35:56 +0000 Subject: [PATCH 03/56] chore(deps): update dependency brace-expansion@>=1.0.0 <=1.1.11 to >=5.0.5 [security] (#5340) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index ea050f2d1..9b157a02e 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "@babel/runtime@<7.26.10": ">=7.29.2", "axios@>=1.0.0 <1.8.2": ">=1.13.6", "brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.4", - "brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.4", + "brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.5", "esbuild@<=0.24.2": ">=0.27.4", "form-data@>=4.0.0 <4.0.4": ">=4.0.5", "hono@<4.6.5": ">=4.12.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7825c739f..2c8e8873a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: '@babel/runtime@<7.26.10': '>=7.29.2' axios@>=1.0.0 <1.8.2: '>=1.13.6' brace-expansion@>=2.0.0 <=2.0.1: '>=5.0.4' - brace-expansion@>=1.0.0 <=1.1.11: '>=5.0.4' + brace-expansion@>=1.0.0 <=1.1.11: '>=5.0.5' esbuild@<=0.24.2: '>=0.27.4' form-data@>=4.0.0 <4.0.4: '>=4.0.5' hono@<4.6.5: '>=4.12.8' @@ -5799,6 +5799,10 @@ packages: resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -14765,6 +14769,10 @@ snapshots: dependencies: balanced-match: 4.0.2 + brace-expansion@5.0.5: + dependencies: + balanced-match: 4.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -17625,11 +17633,11 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.1.5: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@5.1.6: dependencies: From 0e3ac069d9d99d1f02d5cb041fabfcc1db8fec0b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 11:35:24 +0000 Subject: [PATCH 04/56] chore(deps): update dependency hono@<4.6.5 to >=4.12.9 (#5352) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 9b157a02e..409f65d3f 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.5", "esbuild@<=0.24.2": ">=0.27.4", "form-data@>=4.0.0 <4.0.4": ">=4.0.5", - "hono@<4.6.5": ">=4.12.8", + "hono@<4.6.5": ">=4.12.9", "linkifyjs@<4.3.2": ">=4.3.2", "nanoid@>=4.0.0 <5.0.9": ">=5.1.7", "prismjs@<1.30.0": ">=1.30.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c8e8873a..0824855f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ overrides: brace-expansion@>=1.0.0 <=1.1.11: '>=5.0.5' esbuild@<=0.24.2: '>=0.27.4' form-data@>=4.0.0 <4.0.4: '>=4.0.5' - hono@<4.6.5: '>=4.12.8' + hono@<4.6.5: '>=4.12.9' linkifyjs@<4.3.2: '>=4.3.2' nanoid@>=4.0.0 <5.0.9: '>=5.1.7' prismjs@<1.30.0: '>=1.30.0' @@ -3336,7 +3336,7 @@ packages: resolution: {integrity: sha512-kz323qIQkNQElEGroo/E9MKPDuIR5pkuk/XEWd50K+cSEKdmdiYx0PKWUdaNY2ecJYngtF+njDMsMKplL6zfEg==} engines: {node: '>=18.14.1'} peerDependencies: - hono: '>=4.12.8' + hono: '>=4.12.9' '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -7352,8 +7352,8 @@ packages: highlightjs-vue@1.0.0: resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - hono@4.12.8: - resolution: {integrity: sha512-VJCEvtrezO1IAR+kqEYnxUOoStaQPGrCmX3j4wDTNOcD1uRPFpGlwQUIW8niPuvHXaTUxeOUl5MMDGrl+tmO9A==} + hono@4.12.9: + resolution: {integrity: sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA==} engines: {node: '>=16.9.0'} hook-std@4.0.0: @@ -11910,9 +11910,9 @@ snapshots: - undici - utf-8-validate - '@hono/node-server@1.13.0(hono@4.12.8)': + '@hono/node-server@1.13.0(hono@4.12.9)': dependencies: - hono: 4.12.8 + hono: 4.12.9 '@humanfs/core@0.19.1': {} @@ -12367,7 +12367,7 @@ snapshots: '@axiomhq/js': 1.0.0-rc.3 '@babel/core': 7.26.0 '@babel/types': 7.26.0 - '@hono/node-server': 1.13.0(hono@4.12.8) + '@hono/node-server': 1.13.0(hono@4.12.9) '@million/install': 1.0.14 '@rollup/pluginutils': 5.1.0 '@rrweb/types': 2.0.0-alpha.16 @@ -12375,7 +12375,7 @@ snapshots: ci-info: 4.0.0 esbuild: 0.27.4 faster-babel-types: 0.1.0(@babel/types@7.26.0) - hono: 4.12.8 + hono: 4.12.9 isomorphic-fetch: 3.0.0 nanoid: 5.1.7 ohash: 1.1.4 @@ -16562,7 +16562,7 @@ snapshots: highlightjs-vue@1.0.0: {} - hono@4.12.8: {} + hono@4.12.9: {} hook-std@4.0.0: {} From 728f7e489aa499bcd7e97c7ec8571e29e7e2cab3 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 13:04:35 +0000 Subject: [PATCH 05/56] fix(deps): update dependency fastify to ^5.8.4 (#5351) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/tasks/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/tasks/package.json b/apps/tasks/package.json index b8ebf997a..b57fc346d 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -39,7 +39,7 @@ "@homarr/widgets": "workspace:^0.1.0", "dayjs": "^1.11.20", "dotenv": "^17.3.1", - "fastify": "^5.8.2", + "fastify": "^5.8.4", "superjson": "2.2.6", "undici": "7.24.5" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0824855f1..0209d3e36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -432,8 +432,8 @@ importers: specifier: ^17.3.1 version: 17.3.1 fastify: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.4 + version: 5.8.4 superjson: specifier: 2.2.6 version: 2.2.6 @@ -6985,8 +6985,8 @@ packages: peerDependencies: '@babel/types': ^7 - fastify@5.8.2: - resolution: {integrity: sha512-lZmt3navvZG915IE+f7/TIVamxIwmBd+OMB+O9WBzcpIwOo6F0LTh0sluoMFk5VkrKTvvrwIaoJPkir4Z+jtAg==} + fastify@5.8.4: + resolution: {integrity: sha512-sa42J1xylbBAYUWALSBoyXKPDUvM3OoNOibIefA+Oha57FryXKKCZarA1iDntOCWp3O35voZLuDg2mdODXtPzQ==} fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -16140,7 +16140,7 @@ snapshots: dependencies: '@babel/types': 7.26.0 - fastify@5.8.2: + fastify@5.8.4: dependencies: '@fastify/ajv-compiler': 4.0.5 '@fastify/error': 4.2.0 From 5d84888a339b1aa837502aa0ad4ba1eb82bc3b1c Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 13:04:53 +0000 Subject: [PATCH 06/56] chore(deps): update dependency vite@>=5.0.0 <=5.4.18 to >=8.0.2 (#5353) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 409f65d3f..80d930acb 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "tar-fs@>=3.0.0 <3.0.9": ">=3.1.2", "tar-fs@>=2.0.0 <2.1.3": ">=3.1.2", "tmp@<=0.2.3": ">=0.2.5", - "vite@>=5.0.0 <=5.4.18": ">=8.0.1" + "vite@>=5.0.0 <=5.4.18": ">=8.0.2" }, "patchedDependencies": { "@types/node-unifi": "patches/@types__node-unifi.patch", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0209d3e36..0b916981a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,7 +23,7 @@ overrides: tar-fs@>=3.0.0 <3.0.9: '>=3.1.2' tar-fs@>=2.0.0 <2.1.3: '>=3.1.2' tmp@<=0.2.3: '>=0.2.5' - vite@>=5.0.0 <=5.4.18: '>=8.0.1' + vite@>=5.0.0 <=5.4.18: '>=8.0.2' patchedDependencies: '@types/node-unifi': @@ -5321,7 +5321,7 @@ packages: resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: '>=8.0.1' + vite: '>=8.0.2' '@vitest/coverage-v8@4.1.0': resolution: {integrity: sha512-nDWulKeik2bL2Va/Wl4x7DLuTKAXa906iRFooIRPR+huHkcvp9QDkPQ2RJdmjOFrqOqvNfoSQLF68deE3xC3CQ==} @@ -10636,7 +10636,7 @@ packages: vite-tsconfig-paths@6.1.1: resolution: {integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==} peerDependencies: - vite: '>=8.0.1' + vite: '>=8.0.2' vite@7.1.12: resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==} From 2fb2981d2fb79ca2ca6a9bc5c08d91c8fa5710e7 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 13:06:24 +0000 Subject: [PATCH 07/56] fix(deps): update trpc monorepo to ^11.15.0 (#5354) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 8 ++++---- packages/api/package.json | 8 ++++---- packages/cron-job-api/package.json | 6 +++--- pnpm-lock.yaml | 22 +++++++++++----------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 0651eed59..5a934a027 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -59,10 +59,10 @@ "@tanstack/react-query": "^5.95.0", "@tanstack/react-query-devtools": "^5.95.0", "@tanstack/react-query-next-experimental": "^5.95.0", - "@trpc/client": "^11.14.1", - "@trpc/next": "^11.14.1", - "@trpc/react-query": "^11.14.1", - "@trpc/server": "^11.14.1", + "@trpc/client": "^11.15.0", + "@trpc/next": "^11.15.0", + "@trpc/react-query": "^11.15.0", + "@trpc/server": "^11.15.0", "@xterm/addon-canvas": "^0.7.0", "@xterm/addon-fit": "0.11.0", "@xterm/xterm": "^6.0.0", diff --git a/packages/api/package.json b/packages/api/package.json index 12fe4490e..303cc9318 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -42,10 +42,10 @@ "@homarr/validation": "workspace:^0.1.0", "@kubernetes/client-node": "^1.4.0", "@tanstack/react-query": "^5.95.0", - "@trpc/client": "^11.14.1", - "@trpc/react-query": "^11.14.1", - "@trpc/server": "^11.14.1", - "@trpc/tanstack-react-query": "^11.14.1", + "@trpc/client": "^11.15.0", + "@trpc/react-query": "^11.15.0", + "@trpc/server": "^11.15.0", + "@trpc/tanstack-react-query": "^11.15.0", "lodash.clonedeep": "^4.5.0", "next": "16.2.1", "react": "19.2.4", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index fc0ab81d6..166d4aa9b 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -29,9 +29,9 @@ "@homarr/core": "workspace:^0.1.0", "@homarr/cron-jobs": "workspace:^0.1.0", "@tanstack/react-query": "^5.95.0", - "@trpc/client": "^11.14.1", - "@trpc/server": "^11.14.1", - "@trpc/tanstack-react-query": "^11.14.1", + "@trpc/client": "^11.15.0", + "@trpc/server": "^11.15.0", + "@trpc/tanstack-react-query": "^11.15.0", "node-cron": "^4.2.1", "react": "19.2.4", "zod": "^4.2.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b916981a..f926e7ddb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -242,16 +242,16 @@ importers: specifier: ^5.95.0 version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4) '@trpc/client': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/next': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) '@trpc/server': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(typescript@5.9.3) '@xterm/addon-canvas': specifier: ^0.7.0 @@ -642,16 +642,16 @@ importers: specifier: ^5.95.0 version: 5.95.2(react@19.2.4) '@trpc/client': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) '@trpc/server': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) lodash.clonedeep: specifier: ^4.5.0 @@ -957,13 +957,13 @@ importers: specifier: ^5.95.0 version: 5.95.2(react@19.2.4) '@trpc/client': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.14.1 + specifier: ^11.15.0 version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) node-cron: specifier: ^4.2.1 From aca893254c5acb4dace0e7a431e23ef384aac05b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 14:34:27 +0000 Subject: [PATCH 08/56] chore(deps): update dependency brace-expansion@>=2.0.0 <=2.0.1 to >=5.0.5 [security] (#5341) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 14 +++----------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 80d930acb..eebc83844 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "@babel/helpers@<7.26.10": ">=7.29.2", "@babel/runtime@<7.26.10": ">=7.29.2", "axios@>=1.0.0 <1.8.2": ">=1.13.6", - "brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.4", + "brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.5", "brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.5", "esbuild@<=0.24.2": ">=0.27.4", "form-data@>=4.0.0 <4.0.4": ">=4.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f926e7ddb..88110bb41 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,7 +8,7 @@ overrides: '@babel/helpers@<7.26.10': '>=7.29.2' '@babel/runtime@<7.26.10': '>=7.29.2' axios@>=1.0.0 <1.8.2: '>=1.13.6' - brace-expansion@>=2.0.0 <=2.0.1: '>=5.0.4' + brace-expansion@>=2.0.0 <=2.0.1: '>=5.0.5' brace-expansion@>=1.0.0 <=1.1.11: '>=5.0.5' esbuild@<=0.24.2: '>=0.27.4' form-data@>=4.0.0 <4.0.4: '>=4.0.5' @@ -5795,10 +5795,6 @@ packages: resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==} engines: {node: 20 || >=22} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} - engines: {node: 18 || 20 || >=22} - brace-expansion@5.0.5: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} @@ -14765,10 +14761,6 @@ snapshots: dependencies: balanced-match: 4.0.2 - brace-expansion@5.0.4: - dependencies: - balanced-match: 4.0.2 - brace-expansion@5.0.5: dependencies: balanced-match: 4.0.2 @@ -17641,11 +17633,11 @@ snapshots: minimatch@5.1.6: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@9.0.5: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimist@1.2.8: {} From 332b6b4f42e7c90570cd4c25a6e6a331a76c660f Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 14:39:28 +0000 Subject: [PATCH 09/56] fix(deps): update tanstack-query monorepo to ^5.95.1 (#5355) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 6 +++--- packages/api/package.json | 2 +- packages/cron-job-api/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 5a934a027..0df989bb8 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -56,9 +56,9 @@ "@mantine/tiptap": "^8.3.18", "@million/lint": "1.0.14", "@tabler/icons-react": "^3.40.0", - "@tanstack/react-query": "^5.95.0", - "@tanstack/react-query-devtools": "^5.95.0", - "@tanstack/react-query-next-experimental": "^5.95.0", + "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query-devtools": "^5.95.1", + "@tanstack/react-query-next-experimental": "^5.95.1", "@trpc/client": "^11.15.0", "@trpc/next": "^11.15.0", "@trpc/react-query": "^11.15.0", diff --git a/packages/api/package.json b/packages/api/package.json index 303cc9318..0fc1c3e65 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -41,7 +41,7 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@kubernetes/client-node": "^1.4.0", - "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query": "^5.95.1", "@trpc/client": "^11.15.0", "@trpc/react-query": "^11.15.0", "@trpc/server": "^11.15.0", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index 166d4aa9b..7a8e3790f 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -28,7 +28,7 @@ "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/cron-jobs": "workspace:^0.1.0", - "@tanstack/react-query": "^5.95.0", + "@tanstack/react-query": "^5.95.1", "@trpc/client": "^11.15.0", "@trpc/server": "^11.15.0", "@trpc/tanstack-react-query": "^11.15.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 88110bb41..81ab6ed00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -233,13 +233,13 @@ importers: specifier: ^3.40.0 version: 3.40.0(react@19.2.4) '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: 5.95.2(react@19.2.4) '@tanstack/react-query-devtools': - specifier: ^5.95.0 + specifier: ^5.95.1 version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(react@19.2.4) '@tanstack/react-query-next-experimental': - specifier: ^5.95.0 + specifier: ^5.95.1 version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4) '@trpc/client': specifier: ^11.15.0 @@ -639,7 +639,7 @@ importers: specifier: ^1.4.0 version: 1.4.0 '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: 5.95.2(react@19.2.4) '@trpc/client': specifier: ^11.15.0 @@ -954,7 +954,7 @@ importers: specifier: workspace:^0.1.0 version: link:../cron-jobs '@tanstack/react-query': - specifier: ^5.95.0 + specifier: ^5.95.1 version: 5.95.2(react@19.2.4) '@trpc/client': specifier: ^11.15.0 From 32218beb7ebddf9abce64123a1b59ebdd3ac129c Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 15:40:16 +0000 Subject: [PATCH 10/56] chore(deps): update vitest monorepo to ^4.1.1 (#5356) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 6 +-- pnpm-lock.yaml | 141 ++++++++++++++++++++++++------------------------- 2 files changed, 71 insertions(+), 76 deletions(-) diff --git a/package.json b/package.json index eebc83844..43665eea8 100644 --- a/package.json +++ b/package.json @@ -45,8 +45,8 @@ "@testcontainers/redis": "^11.13.0", "@turbo/gen": "^2.8.20", "@vitejs/plugin-react": "^5.2.0", - "@vitest/coverage-v8": "^4.1.0", - "@vitest/ui": "^4.1.0", + "@vitest/coverage-v8": "^4.1.1", + "@vitest/ui": "^4.1.1", "conventional-changelog-conventionalcommits": "^9.3.0", "cross-env": "^10.1.0", "jsdom": "^28.1.0", @@ -57,7 +57,7 @@ "turbo": "^2.8.20", "typescript": "^5.9.3", "vite-tsconfig-paths": "^6.1.1", - "vitest": "^4.1.0" + "vitest": "^4.1.1" }, "packageManager": "pnpm@10.32.1", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 81ab6ed00..380f6ee17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,11 +68,11 @@ importers: specifier: ^5.2.0 version: 5.2.0(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) '@vitest/coverage-v8': - specifier: ^4.1.0 - version: 4.1.0(vitest@4.1.0) + specifier: ^4.1.1 + version: 4.1.1(vitest@4.1.1) '@vitest/ui': - specifier: ^4.1.0 - version: 4.1.0(vitest@4.1.0) + specifier: ^4.1.1 + version: 4.1.1(vitest@4.1.1) conventional-changelog-conventionalcommits: specifier: ^9.3.0 version: 9.3.0 @@ -104,8 +104,8 @@ importers: specifier: ^6.1.1 version: 6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) vitest: - specifier: ^4.1.0 - version: 4.1.0(@types/node@24.12.0)(@vitest/ui@4.1.0)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + specifier: ^4.1.1 + version: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) apps/nextjs: dependencies: @@ -5323,48 +5323,48 @@ packages: peerDependencies: vite: '>=8.0.2' - '@vitest/coverage-v8@4.1.0': - resolution: {integrity: sha512-nDWulKeik2bL2Va/Wl4x7DLuTKAXa906iRFooIRPR+huHkcvp9QDkPQ2RJdmjOFrqOqvNfoSQLF68deE3xC3CQ==} + '@vitest/coverage-v8@4.1.1': + resolution: {integrity: sha512-nZ4RWwGCoGOQRMmU/Q9wlUY540RVRxJZ9lxFsFfy0QV7Zmo5VVBhB6Sl9Xa0KIp2iIs3zWfPlo9LcY1iqbpzCw==} peerDependencies: - '@vitest/browser': 4.1.0 - vitest: 4.1.0 + '@vitest/browser': 4.1.1 + vitest: 4.1.1 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.0': - resolution: {integrity: sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA==} + '@vitest/expect@4.1.1': + resolution: {integrity: sha512-xAV0fqBTk44Rn6SjJReEQkHP3RrqbJo6JQ4zZ7/uVOiJZRarBtblzrOfFIZeYUrukp2YD6snZG6IBqhOoHTm+A==} - '@vitest/mocker@4.1.0': - resolution: {integrity: sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw==} + '@vitest/mocker@4.1.1': + resolution: {integrity: sha512-h3BOylsfsCLPeceuCPAAJ+BvNwSENgJa4hXoXu4im0bs9Lyp4URc4JYK4pWLZ4pG/UQn7AT92K6IByi6rE6g3A==} peerDependencies: msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@4.1.0': - resolution: {integrity: sha512-3RZLZlh88Ib0J7NQTRATfc/3ZPOnSUn2uDBUoGNn5T36+bALixmzphN26OUD3LRXWkJu4H0s5vvUeqBiw+kS0A==} + '@vitest/pretty-format@4.1.1': + resolution: {integrity: sha512-GM+TEQN5WhOygr1lp7skeVjdLPqqWMHsfzXrcHAqZJi/lIVh63H0kaRCY8MDhNWikx19zBUK8ceaLB7X5AH9NQ==} - '@vitest/runner@4.1.0': - resolution: {integrity: sha512-Duvx2OzQ7d6OjchL+trw+aSrb9idh7pnNfxrklo14p3zmNL4qPCDeIJAK+eBKYjkIwG96Bc6vYuxhqDXQOWpoQ==} + '@vitest/runner@4.1.1': + resolution: {integrity: sha512-f7+FPy75vN91QGWsITueq0gedwUZy1fLtHOCMeQpjs8jTekAHeKP80zfDEnhrleviLHzVSDXIWuCIOFn3D3f8A==} - '@vitest/snapshot@4.1.0': - resolution: {integrity: sha512-0Vy9euT1kgsnj1CHttwi9i9o+4rRLEaPRSOJ5gyv579GJkNpgJK+B4HSv/rAWixx2wdAFci1X4CEPjiu2bXIMg==} + '@vitest/snapshot@4.1.1': + resolution: {integrity: sha512-kMVSgcegWV2FibXEx9p9WIKgje58lcTbXgnJixfcg15iK8nzCXhmalL0ZLtTWLW9PH1+1NEDShiFFedB3tEgWg==} - '@vitest/spy@4.1.0': - resolution: {integrity: sha512-pz77k+PgNpyMDv2FV6qmk5ZVau6c3R8HC8v342T2xlFxQKTrSeYw9waIJG8KgV9fFwAtTu4ceRzMivPTH6wSxw==} + '@vitest/spy@4.1.1': + resolution: {integrity: sha512-6Ti/KT5OVaiupdIZEuZN7l3CZcR0cxnxt70Z0//3CtwgObwA6jZhmVBA3yrXSVN3gmwjgd7oDNLlsXz526gpRA==} - '@vitest/ui@4.1.0': - resolution: {integrity: sha512-sTSDtVM1GOevRGsCNhp1mBUHKo9Qlc55+HCreFT4fe99AHxl1QQNXSL3uj4Pkjh5yEuWZIx8E2tVC94nnBZECQ==} + '@vitest/ui@4.1.1': + resolution: {integrity: sha512-k0qNVLmCISxoGWvdhOeynlZVrfjx7Xjp95kIptN0fZYyONCgVcKIPn53MpFZ7S+fO6YdKNhgIfl0nu92Q0CCOg==} peerDependencies: - vitest: 4.1.0 + vitest: 4.1.1 - '@vitest/utils@4.1.0': - resolution: {integrity: sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw==} + '@vitest/utils@4.1.1': + resolution: {integrity: sha512-cNxAlaB3sHoCdL6pj6yyUXv9Gry1NHNg0kFTXdvSIZXLHsqKH7chiWOkwJ5s5+d/oMwcoG9T0bKU38JZWKusrQ==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -7065,9 +7065,6 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - flatted@3.4.0: resolution: {integrity: sha512-kC6Bb+ooptOIvWj5B63EQWkF0FEnNjV2ZNkLMLZRDDduIiWeFF4iKnslwhiWxjAdbg4NzTNo6h0qLuvFrcx+Sw==} @@ -10674,21 +10671,21 @@ packages: yaml: optional: true - vitest@4.1.0: - resolution: {integrity: sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw==} + vitest@4.1.1: + resolution: {integrity: sha512-yF+o4POL41rpAzj5KVILUxm1GCjKnELvaqmU9TLLUbMfDzuN0UpUR9uaDs+mCtjPe+uYPksXDRLQGGPvj1cTmA==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.0 - '@vitest/browser-preview': 4.1.0 - '@vitest/browser-webdriverio': 4.1.0 - '@vitest/ui': 4.1.0 + '@vitest/browser-playwright': 4.1.1 + '@vitest/browser-preview': 4.1.1 + '@vitest/browser-webdriverio': 4.1.1 + '@vitest/ui': 4.1.1 happy-dom: '*' jsdom: '*' - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -11178,7 +11175,7 @@ snapshots: '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -13801,7 +13798,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 @@ -14189,10 +14186,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.1.0(vitest@4.1.0)': + '@vitest/coverage-v8@4.1.1(vitest@4.1.1)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.0 + '@vitest/utils': 4.1.1 ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -14201,57 +14198,57 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.0.3 - vitest: 4.1.0(@types/node@24.12.0)(@vitest/ui@4.1.0)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + vitest: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) - '@vitest/expect@4.1.0': + '@vitest/expect@4.1.1': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.2 - '@vitest/spy': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/spy': 4.1.1 + '@vitest/utils': 4.1.1 chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.1.0(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1))': + '@vitest/mocker@4.1.1(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1))': dependencies: - '@vitest/spy': 4.1.0 + '@vitest/spy': 4.1.1 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1) - '@vitest/pretty-format@4.1.0': + '@vitest/pretty-format@4.1.1': dependencies: tinyrainbow: 3.0.3 - '@vitest/runner@4.1.0': + '@vitest/runner@4.1.1': dependencies: - '@vitest/utils': 4.1.0 + '@vitest/utils': 4.1.1 pathe: 2.0.3 - '@vitest/snapshot@4.1.0': + '@vitest/snapshot@4.1.1': dependencies: - '@vitest/pretty-format': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/pretty-format': 4.1.1 + '@vitest/utils': 4.1.1 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.0': {} + '@vitest/spy@4.1.1': {} - '@vitest/ui@4.1.0(vitest@4.1.0)': + '@vitest/ui@4.1.1(vitest@4.1.1)': dependencies: - '@vitest/utils': 4.1.0 + '@vitest/utils': 4.1.1 fflate: 0.8.2 flatted: 3.4.0 pathe: 2.0.3 sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vitest: 4.1.0(@types/node@24.12.0)(@vitest/ui@4.1.0)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + vitest: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) - '@vitest/utils@4.1.0': + '@vitest/utils@4.1.1': dependencies: - '@vitest/pretty-format': 4.1.0 + '@vitest/pretty-format': 4.1.1 convert-source-map: 2.0.0 tinyrainbow: 3.0.3 @@ -16220,11 +16217,9 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.4.0 keyv: 4.5.4 - flatted@3.3.3: {} - flatted@3.4.0: {} fn.name@1.1.0: {} @@ -17299,7 +17294,7 @@ snapshots: magicast@0.5.2: dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 source-map-js: 1.2.1 @@ -20326,15 +20321,15 @@ snapshots: tsx: 4.21.0 yaml: 2.5.1 - vitest@4.1.0(@types/node@24.12.0)(@vitest/ui@4.1.0)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)): + vitest@4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)): dependencies: - '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) - '@vitest/pretty-format': 4.1.0 - '@vitest/runner': 4.1.0 - '@vitest/snapshot': 4.1.0 - '@vitest/spy': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/expect': 4.1.1 + '@vitest/mocker': 4.1.1(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + '@vitest/pretty-format': 4.1.1 + '@vitest/runner': 4.1.1 + '@vitest/snapshot': 4.1.1 + '@vitest/spy': 4.1.1 + '@vitest/utils': 4.1.1 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -20350,7 +20345,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.12.0 - '@vitest/ui': 4.1.0(vitest@4.1.0) + '@vitest/ui': 4.1.1(vitest@4.1.1) jsdom: 28.1.0(@noble/hashes@2.0.1) transitivePeerDependencies: - msw From 682099189b689ea17e16af41fd280a72ed68016f Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 16:41:43 +0000 Subject: [PATCH 11/56] fix(deps): update tanstack-query monorepo to ^5.95.2 (#5357) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 6 +++--- packages/api/package.json | 2 +- packages/cron-job-api/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 0df989bb8..61621ec59 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -56,9 +56,9 @@ "@mantine/tiptap": "^8.3.18", "@million/lint": "1.0.14", "@tabler/icons-react": "^3.40.0", - "@tanstack/react-query": "^5.95.1", - "@tanstack/react-query-devtools": "^5.95.1", - "@tanstack/react-query-next-experimental": "^5.95.1", + "@tanstack/react-query": "^5.95.2", + "@tanstack/react-query-devtools": "^5.95.2", + "@tanstack/react-query-next-experimental": "^5.95.2", "@trpc/client": "^11.15.0", "@trpc/next": "^11.15.0", "@trpc/react-query": "^11.15.0", diff --git a/packages/api/package.json b/packages/api/package.json index 0fc1c3e65..7c9b61fe4 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -41,7 +41,7 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@kubernetes/client-node": "^1.4.0", - "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query": "^5.95.2", "@trpc/client": "^11.15.0", "@trpc/react-query": "^11.15.0", "@trpc/server": "^11.15.0", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index 7a8e3790f..0f4ffe144 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -28,7 +28,7 @@ "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/cron-jobs": "workspace:^0.1.0", - "@tanstack/react-query": "^5.95.1", + "@tanstack/react-query": "^5.95.2", "@trpc/client": "^11.15.0", "@trpc/server": "^11.15.0", "@trpc/tanstack-react-query": "^11.15.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 380f6ee17..0ff3962e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -233,13 +233,13 @@ importers: specifier: ^3.40.0 version: 3.40.0(react@19.2.4) '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: 5.95.2(react@19.2.4) '@tanstack/react-query-devtools': - specifier: ^5.95.1 + specifier: ^5.95.2 version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(react@19.2.4) '@tanstack/react-query-next-experimental': - specifier: ^5.95.1 + specifier: ^5.95.2 version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4) '@trpc/client': specifier: ^11.15.0 @@ -639,7 +639,7 @@ importers: specifier: ^1.4.0 version: 1.4.0 '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: 5.95.2(react@19.2.4) '@trpc/client': specifier: ^11.15.0 @@ -954,7 +954,7 @@ importers: specifier: workspace:^0.1.0 version: link:../cron-jobs '@tanstack/react-query': - specifier: ^5.95.1 + specifier: ^5.95.2 version: 5.95.2(react@19.2.4) '@trpc/client': specifier: ^11.15.0 From 9c134c5ceb742b21b021ef3b49de8cc0d526d460 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 05:17:45 +0000 Subject: [PATCH 12/56] fix(deps): update dependency @ctrl/deluge to ^7.5.3 (#5365) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/integrations/package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 9e98502ed..02c1bc06a 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -25,7 +25,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@ctrl/deluge": "^7.5.2", + "@ctrl/deluge": "^7.5.3", "@ctrl/qbittorrent": "^9.11.2", "@ctrl/transmission": "^7.4.0", "@gitbeaker/rest": "^43.8.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ff3962e4..18a1d91ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1427,8 +1427,8 @@ importers: packages/integrations: dependencies: '@ctrl/deluge': - specifier: ^7.5.2 - version: 7.5.2 + specifier: ^7.5.3 + version: 7.5.3 '@ctrl/qbittorrent': specifier: ^9.11.2 version: 9.11.2 @@ -2785,8 +2785,8 @@ packages: resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} engines: {node: '>=20.19.0'} - '@ctrl/deluge@7.5.2': - resolution: {integrity: sha512-ceejra4uSIwtui4fNvqxRhX8965yNlIc7kSUWSuSjV3qWA3wIf5tu/cqAXr5dHATxBOdzy/5gte2PHlk7XoVQA==} + '@ctrl/deluge@7.5.3': + resolution: {integrity: sha512-EvliA70vc0b/wJf1q1FUBwFrpDnv5TikH7y4in7sUe8RY6OcZ/vNsqZ9luNA2Qvh7c4d4FjqWdVpw1J02favHw==} engines: {node: '>=18'} '@ctrl/magnet-link@4.0.2': @@ -10330,6 +10330,10 @@ packages: resolution: {integrity: sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==} engines: {node: '>=20'} + type-fest@5.5.0: + resolution: {integrity: sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==} + engines: {node: '>=20'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -11446,14 +11450,14 @@ snapshots: '@csstools/css-tokenizer@4.0.0': {} - '@ctrl/deluge@7.5.2': + '@ctrl/deluge@7.5.3': dependencies: '@ctrl/magnet-link': 4.3.0 '@ctrl/shared-torrent': 6.5.1(ofetch@1.5.1) node-fetch-native: 1.6.7 ofetch: 1.5.1 - tough-cookie: 6.0.0 - type-fest: 5.4.4 + tough-cookie: 6.0.1 + type-fest: 5.5.0 ufo: 1.6.3 uint8array-extras: 1.5.0 @@ -19936,6 +19940,10 @@ snapshots: dependencies: tagged-tag: 1.0.0 + type-fest@5.5.0: + dependencies: + tagged-tag: 1.0.0 + type-is@1.6.18: dependencies: media-typer: 0.3.0 From 189806b5a2b8e67f925cc8def6bc8ddefdc5bfc4 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 07:12:11 +0000 Subject: [PATCH 13/56] fix(deps): update dependency fast-xml-parser to ^5.5.9 (#5359) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/definitions/package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/definitions/package.json b/packages/definitions/package.json index 33080232c..5bc7401aa 100644 --- a/packages/definitions/package.json +++ b/packages/definitions/package.json @@ -24,7 +24,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", - "fast-xml-parser": "^5.5.8", + "fast-xml-parser": "^5.5.9", "zod": "^4.2.1" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 18a1d91ad..86ef7dedc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1217,7 +1217,7 @@ importers: specifier: workspace:^0.1.0 version: link:../common fast-xml-parser: - specifier: ^5.5.8 + specifier: ^5.5.9 version: 5.5.9 zod: specifier: ^4.2.1 From cefbf0e2715e9adbc72cdb0b83d84c309e3257d6 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 07:13:39 +0000 Subject: [PATCH 14/56] fix(deps): update dependency typescript-eslint to ^8.57.2 (#5360) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 140 ++++++++++++++++++------------------ tooling/eslint/package.json | 2 +- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86ef7dedc..43e8d1f3b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2368,7 +2368,7 @@ importers: version: 2.8.20(eslint@9.39.4)(turbo@2.8.20) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.57.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4) + version: 2.32.0(@typescript-eslint/parser@8.57.2(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4) eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@9.39.4) @@ -2379,8 +2379,8 @@ importers: specifier: ^6.1.1 version: 6.1.1(eslint@9.39.4) typescript-eslint: - specifier: ^8.57.1 - version: 8.57.1(eslint@9.39.4)(typescript@5.9.3) + specifier: ^8.57.2 + version: 8.57.2(eslint@9.39.4)(typescript@5.9.3) devDependencies: '@homarr/prettier-config': specifier: workspace:^0.1.0 @@ -5235,63 +5235,63 @@ packages: '@types/xml2js@0.4.14': resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} - '@typescript-eslint/eslint-plugin@8.57.1': - resolution: {integrity: sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==} + '@typescript-eslint/eslint-plugin@8.57.2': + resolution: {integrity: sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.57.1 + '@typescript-eslint/parser': ^8.57.2 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.57.1': - resolution: {integrity: sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==} + '@typescript-eslint/parser@8.57.2': + resolution: {integrity: sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.57.1': - resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==} + '@typescript-eslint/project-service@8.57.2': + resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.57.1': - resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==} + '@typescript-eslint/scope-manager@8.57.2': + resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.57.1': - resolution: {integrity: sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==} + '@typescript-eslint/tsconfig-utils@8.57.2': + resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.57.1': - resolution: {integrity: sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==} + '@typescript-eslint/type-utils@8.57.2': + resolution: {integrity: sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.57.1': - resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==} + '@typescript-eslint/types@8.57.2': + resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.57.1': - resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==} + '@typescript-eslint/typescript-estree@8.57.2': + resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.57.1': - resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==} + '@typescript-eslint/utils@8.57.2': + resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.57.1': - resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==} + '@typescript-eslint/visitor-keys@8.57.2': + resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@umami/node@0.4.0': @@ -10376,8 +10376,8 @@ packages: types-ramda@0.30.1: resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} - typescript-eslint@8.57.1: - resolution: {integrity: sha512-fLvZWf+cAGw3tqMCYzGIU6yR8K+Y9NT2z23RwOjlNFF2HwSB3KhdEFI5lSBv8tNmFkkBShSjsCjzx1vahZfISA==} + typescript-eslint@8.57.2: + resolution: {integrity: sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -14055,14 +14055,14 @@ snapshots: dependencies: '@types/node': 24.12.0 - '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.1(eslint@9.39.4)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/type-utils': 8.57.1(eslint@9.39.4)(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@9.39.4)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/parser': 8.57.2(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/type-utils': 8.57.2(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.2 eslint: 9.39.4 ignore: 7.0.5 natural-compare: 1.4.0 @@ -14071,41 +14071,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.1(eslint@9.39.4)(typescript@5.9.3)': + '@typescript-eslint/parser@8.57.2(eslint@9.39.4)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.2 debug: 4.4.3 eslint: 9.39.4 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.57.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) - '@typescript-eslint/types': 8.57.1 + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.57.1': + '@typescript-eslint/scope-manager@8.57.2': dependencies: - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/visitor-keys': 8.57.2 - '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.57.2(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.57.1(eslint@9.39.4)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.57.2(eslint@9.39.4)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@9.39.4)(typescript@5.9.3) debug: 4.4.3 eslint: 9.39.4 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -14113,14 +14113,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.57.1': {} + '@typescript-eslint/types@8.57.2': {} - '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.57.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.57.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/project-service': 8.57.2(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/visitor-keys': 8.57.2 debug: 4.4.3 minimatch: 10.2.2 semver: 7.7.4 @@ -14130,20 +14130,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.57.1(eslint@9.39.4)(typescript@5.9.3)': + '@typescript-eslint/utils@8.57.2(eslint@9.39.4)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) eslint: 9.39.4 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.57.1': + '@typescript-eslint/visitor-keys@8.57.2': dependencies: - '@typescript-eslint/types': 8.57.1 + '@typescript-eslint/types': 8.57.2 eslint-visitor-keys: 5.0.0 '@umami/node@0.4.0': {} @@ -15840,17 +15840,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.4): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.2(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.4): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.57.1(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/parser': 8.57.2(eslint@9.39.4)(typescript@5.9.3) eslint: 9.39.4 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -15861,7 +15861,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.4 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.4) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.2(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.4) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -15873,7 +15873,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.57.1(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/parser': 8.57.2(eslint@9.39.4)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -20022,12 +20022,12 @@ snapshots: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.57.1(eslint@9.39.4)(typescript@5.9.3): + typescript-eslint@8.57.2(eslint@9.39.4)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3) - '@typescript-eslint/parser': 8.57.1(eslint@9.39.4)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/parser': 8.57.2(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@9.39.4)(typescript@5.9.3) eslint: 9.39.4 typescript: 5.9.3 transitivePeerDependencies: diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index b3dc7c716..9506ae4b6 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -24,7 +24,7 @@ "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^6.1.1", - "typescript-eslint": "^8.57.1" + "typescript-eslint": "^8.57.2" }, "devDependencies": { "@homarr/prettier-config": "workspace:^0.1.0", From c2b54ddfaab93daa4e65c0c38bf5c27e4402a492 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 09:40:05 +0000 Subject: [PATCH 15/56] fix(deps): update dependency isomorphic-dompurify to ^3.7.0 (#5366) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 61621ec59..1c6960563 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -73,7 +73,7 @@ "dotenv": "^17.3.1", "flag-icons": "^7.5.0", "glob": "^13.0.6", - "isomorphic-dompurify": "^3.6.0", + "isomorphic-dompurify": "^3.7.0", "jotai": "^2.18.1", "mantine-react-table": "2.0.0-beta.9", "next": "16.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43e8d1f3b..d0e1e334a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -284,7 +284,7 @@ importers: specifier: ^13.0.6 version: 13.0.6 isomorphic-dompurify: - specifier: ^3.6.0 + specifier: ^3.7.0 version: 3.7.1(@noble/hashes@2.0.1) jotai: specifier: ^2.18.1 From 14d87178b5a93bdc6fb74793feed95d014814d0b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 09:45:23 +0000 Subject: [PATCH 16/56] fix(deps): update dependency jotai to ^2.19.0 (#5368) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- packages/spotlight/package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 1c6960563..6393b0702 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -74,7 +74,7 @@ "flag-icons": "^7.5.0", "glob": "^13.0.6", "isomorphic-dompurify": "^3.7.0", - "jotai": "^2.18.1", + "jotai": "^2.19.0", "mantine-react-table": "2.0.0-beta.9", "next": "16.2.1", "postcss-preset-mantine": "^1.18.0", diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index b459c21ea..535831aed 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -37,7 +37,7 @@ "@mantine/hooks": "^8.3.18", "@mantine/spotlight": "^8.3.18", "@tabler/icons-react": "^3.40.0", - "jotai": "^2.18.1", + "jotai": "^2.19.0", "next": "16.2.1", "react": "19.2.4", "react-dom": "19.2.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0e1e334a..7c728c6bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -287,8 +287,8 @@ importers: specifier: ^3.7.0 version: 3.7.1(@noble/hashes@2.0.1) jotai: - specifier: ^2.18.1 - version: 2.18.1(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4) + specifier: ^2.19.0 + version: 2.19.0(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4) mantine-react-table: specifier: 2.0.0-beta.9 version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -1993,8 +1993,8 @@ importers: specifier: ^3.40.0 version: 3.40.0(react@19.2.4) jotai: - specifier: ^2.18.1 - version: 2.18.1(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4) + specifier: ^2.19.0 + version: 2.19.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4) next: specifier: 16.2.1 version: 16.2.1(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0) @@ -7827,8 +7827,8 @@ packages: jose@6.0.8: resolution: {integrity: sha512-EyUPtOKyTYq+iMOszO42eobQllaIjJnwkZ2U93aJzNyPibCy7CEvT9UQnaCVB51IAd49gbNdCew1c0LcLTCB2g==} - jotai@2.18.1: - resolution: {integrity: sha512-e0NOzK+yRFwHo7DOp0DS0Ycq74KMEAObDWFGmfEL28PD9nLqBTt3/Ug7jf9ca72x0gC9LQZG9zH+0ISICmy3iA==} + jotai@2.19.0: + resolution: {integrity: sha512-r2wwxEXP1F2JteDLZEOPoIpAHhV89paKsN5GWVYndPNMMP/uVZDcC+fNj0A8NjKgaPWzdyO8Vp8YcYKe0uCEqQ==} engines: {node: '>=12.20.0'} peerDependencies: '@babel/core': '>=7.0.0' @@ -17016,14 +17016,14 @@ snapshots: jose@6.0.8: {} - jotai@2.18.1(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4): + jotai@2.19.0(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4): optionalDependencies: '@babel/core': 7.26.0 '@babel/template': 7.28.6 '@types/react': 19.2.14 react: 19.2.4 - jotai@2.18.1(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4): + jotai@2.19.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4): optionalDependencies: '@babel/core': 7.29.0 '@babel/template': 7.28.6 From 8d1ff4065d669268f0e6a03f2b68c1ba728a756a Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 10:41:25 +0000 Subject: [PATCH 17/56] fix(deps): update dependency isomorphic-dompurify to ^3.7.1 (#5369) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 6393b0702..04aefe9a4 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -73,7 +73,7 @@ "dotenv": "^17.3.1", "flag-icons": "^7.5.0", "glob": "^13.0.6", - "isomorphic-dompurify": "^3.7.0", + "isomorphic-dompurify": "^3.7.1", "jotai": "^2.19.0", "mantine-react-table": "2.0.0-beta.9", "next": "16.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7c728c6bb..ce738cb9f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -284,7 +284,7 @@ importers: specifier: ^13.0.6 version: 13.0.6 isomorphic-dompurify: - specifier: ^3.7.0 + specifier: ^3.7.1 version: 3.7.1(@noble/hashes@2.0.1) jotai: specifier: ^2.19.0 From 4a5bafa79092b209e94a56f72362011f416bf115 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 14:44:39 +0000 Subject: [PATCH 18/56] fix(deps): update dependency @immich/sdk to ^2.6.2 (#5370) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/integrations/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 02c1bc06a..876022d81 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -38,7 +38,7 @@ "@homarr/redis": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@immich/sdk": "^2.6.1", + "@immich/sdk": "^2.6.2", "@jellyfin/sdk": "^0.13.0", "@octokit/auth-app": "^8.2.0", "ical.js": "^2.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce738cb9f..83e8312b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1466,8 +1466,8 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@immich/sdk': - specifier: ^2.6.1 - version: 2.6.1 + specifier: ^2.6.2 + version: 2.6.2 '@jellyfin/sdk': specifier: ^0.13.0 version: 0.13.0(axios@1.12.2) @@ -3529,8 +3529,8 @@ packages: cpu: [x64] os: [win32] - '@immich/sdk@2.6.1': - resolution: {integrity: sha512-b8G0Qm8FZ4+D4IPq5cbXb3Lh3VvpUSnMf9Uz8nB4Yr8ivPG3TmGcw3lRsB00mdAPyQFuMqB8UL6LiMC6rtWy5Q==} + '@immich/sdk@2.6.2': + resolution: {integrity: sha512-GDUOOyP4q6HDF8X9J/cHUX2sSrlWKKvMntvLgC8J1+vExGKx7FKxZnUybTHDzjefs6c0G8kpVN3UwgCEQXJNDA==} '@inquirer/ansi@1.0.2': resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} @@ -12032,7 +12032,7 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@immich/sdk@2.6.1': + '@immich/sdk@2.6.2': dependencies: '@oazapfts/runtime': 1.2.0 From 6820f8afea622587c1ee18b13d13a041ca0572ee Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2026 16:43:28 +0000 Subject: [PATCH 19/56] fix(deps): update tiptap monorepo to v3.20.5 (#5371) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/widgets/package.json | 32 +- pnpm-lock.yaml | 552 +++++++++++++++++----------------- 2 files changed, 292 insertions(+), 292 deletions(-) diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 4c75fac2b..206d0f2d0 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -52,22 +52,22 @@ "@mantine/core": "^8.3.18", "@mantine/hooks": "^8.3.18", "@tabler/icons-react": "^3.40.0", - "@tiptap/extension-color": "3.20.4", - "@tiptap/extension-highlight": "3.20.4", - "@tiptap/extension-image": "3.20.4", - "@tiptap/extension-link": "^3.20.4", - "@tiptap/extension-placeholder": "^3.20.4", - "@tiptap/extension-table": "3.20.4", - "@tiptap/extension-table-cell": "3.20.4", - "@tiptap/extension-table-header": "3.20.4", - "@tiptap/extension-table-row": "3.20.4", - "@tiptap/extension-task-item": "3.20.4", - "@tiptap/extension-task-list": "3.20.4", - "@tiptap/extension-text-align": "3.20.4", - "@tiptap/extension-text-style": "3.20.4", - "@tiptap/extension-underline": "3.20.4", - "@tiptap/react": "^3.20.4", - "@tiptap/starter-kit": "^3.20.4", + "@tiptap/extension-color": "3.20.5", + "@tiptap/extension-highlight": "3.20.5", + "@tiptap/extension-image": "3.20.5", + "@tiptap/extension-link": "^3.20.5", + "@tiptap/extension-placeholder": "^3.20.5", + "@tiptap/extension-table": "3.20.5", + "@tiptap/extension-table-cell": "3.20.5", + "@tiptap/extension-table-header": "3.20.5", + "@tiptap/extension-table-row": "3.20.5", + "@tiptap/extension-task-item": "3.20.5", + "@tiptap/extension-task-list": "3.20.5", + "@tiptap/extension-text-align": "3.20.5", + "@tiptap/extension-text-style": "3.20.5", + "@tiptap/extension-underline": "3.20.5", + "@tiptap/react": "^3.20.5", + "@tiptap/starter-kit": "^3.20.5", "clsx": "^2.1.1", "dayjs": "^1.11.20", "mantine-form-zod-resolver": "^1.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83e8312b1..99130c6af 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -225,7 +225,7 @@ importers: version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@mantine/tiptap': specifier: ^8.3.18 - version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/react@3.20.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))(@tiptap/react@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@million/lint': specifier: 1.0.14 version: 1.0.14(webpack-sources@3.3.4) @@ -2255,53 +2255,53 @@ importers: specifier: ^3.40.0 version: 3.40.0(react@19.2.4) '@tiptap/extension-color': - specifier: 3.20.4 - version: 3.20.4(@tiptap/extension-text-style@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))) + specifier: 3.20.5 + version: 3.20.5(@tiptap/extension-text-style@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))) '@tiptap/extension-highlight': - specifier: 3.20.4 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) '@tiptap/extension-image': - specifier: 3.20.4 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) '@tiptap/extension-link': - specifier: ^3.20.4 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + specifier: ^3.20.5 + version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) '@tiptap/extension-placeholder': - specifier: ^3.20.4 - version: 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) + specifier: ^3.20.5 + version: 3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) '@tiptap/extension-table': - specifier: 3.20.4 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + specifier: 3.20.5 + version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) '@tiptap/extension-table-cell': - specifier: 3.20.4 - version: 3.20.4(@tiptap/extension-table@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) '@tiptap/extension-table-header': - specifier: 3.20.4 - version: 3.20.4(@tiptap/extension-table@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) '@tiptap/extension-table-row': - specifier: 3.20.4 - version: 3.20.4(@tiptap/extension-table@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) '@tiptap/extension-task-item': - specifier: 3.20.4 - version: 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) '@tiptap/extension-task-list': - specifier: 3.20.4 - version: 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) '@tiptap/extension-text-align': - specifier: 3.20.4 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) '@tiptap/extension-text-style': - specifier: 3.20.4 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) '@tiptap/extension-underline': - specifier: 3.20.4 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) + specifier: 3.20.5 + version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) '@tiptap/react': - specifier: ^3.20.4 - version: 3.20.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: ^3.20.5 + version: 3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tiptap/starter-kit': - specifier: ^3.20.4 - version: 3.20.4 + specifier: ^3.20.5 + version: 3.20.5 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -4700,215 +4700,215 @@ packages: '@testcontainers/redis@11.13.0': resolution: {integrity: sha512-Wx4oFLpR6/khRTFUUX7Nl8cCcjk85mpIWjwTe/PI39skdEG0QaJMAaeZG2r6fEB1YyXtSQGtiZiBUMafbRfh7w==} - '@tiptap/core@3.20.4': - resolution: {integrity: sha512-3i/DG89TFY/b34T5P+j35UcjYuB5d3+9K8u6qID+iUqNPiza015HPIZLuPfE5elNwVdV3EXIoPo0LLeBLgXXAg==} + '@tiptap/core@3.20.5': + resolution: {integrity: sha512-Pkjd41UJ4F6Z8cPV+gEvqnt1VhY2g66xMjbpxREs0ECA5jRezCNKSZcc2pueQRTMtmn1SaSzGM9U/ifhVlVYOA==} peerDependencies: - '@tiptap/pm': ^3.20.4 + '@tiptap/pm': ^3.20.5 - '@tiptap/extension-blockquote@3.20.4': - resolution: {integrity: sha512-9sskyyhYj2oKat//lyZVXCp9YrPt4oJAZnGHYWXS0xlskjsLElrfKKlM4vpbhGss3VrhQRoEGqWLnIaJYPF1zw==} + '@tiptap/extension-blockquote@3.20.5': + resolution: {integrity: sha512-0wU6H/MWWes0rGzgSW6MMU6YDs/3ofUDkqmqCqmb+Siu1ZD0bpzOYpBtujgOYDY8moB9+zCE3G9HSYGcmZxHew==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-bold@3.20.4': - resolution: {integrity: sha512-Md7/mNAeJCY+VLJc8JRGI+8XkVPKiOGB1NgqQPdh3aYtxXQDChQOZoJEQl6TuudDxZ85bLZB67NjZlx3jo8/0g==} + '@tiptap/extension-bold@3.20.5': + resolution: {integrity: sha512-hraiiWkF58n8Jy0Wl3OGwjCTrGWwZZxez/IlexrzKQ/nMFdjDpensZucWwu59zhAM9fqZwGSLDtCFuak03WKnA==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-bubble-menu@3.20.4': - resolution: {integrity: sha512-EXywPlI8wjPcAb8ozymgVhjtMjFrnhtoyNTy8ZcObdpUi5CdO9j892Y7aPbKe5hLhlDpvJk7rMfir4FFKEmfng==} + '@tiptap/extension-bubble-menu@3.20.5': + resolution: {integrity: sha512-6FsASu4o32bp3FzBVb5N2ERjrBy83DtJQAGv9/ycYqsgv2kq9DNlhvtNI7GPiTW7a73ZcImjIX+jEWrARbzOlQ==} peerDependencies: - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 - '@tiptap/extension-bullet-list@3.20.4': - resolution: {integrity: sha512-1RTGrur1EKoxfnLZ3M6xeNj8GITAz74jH2DHGcjLsd2Xr7Q7BozGaIq6GkkvKguMwbI1zCOxTHFCpUETXAIQQA==} + '@tiptap/extension-bullet-list@3.20.5': + resolution: {integrity: sha512-MT3321R6F8AoVUEMJ5RiI0PQMenwvtmrSXoO1ehPCWq5TrSJLyXeZMJvZU+1CgfXk4XQU70RN78ib5+Zg+/FCg==} peerDependencies: - '@tiptap/extension-list': ^3.20.4 + '@tiptap/extension-list': ^3.20.5 - '@tiptap/extension-code-block@3.20.4': - resolution: {integrity: sha512-Zlw3FrXTy01+o1yISeX/LC+iJeHA+ym602bMXGmtA6lyl7QSOSO7WExweJ6xeJGhbCjldwT5al6fkRAs8iGJZg==} + '@tiptap/extension-code-block@3.20.5': + resolution: {integrity: sha512-0YZnqfqZ1IjzKBM4aezw8j3LZWJFEfs4+mbizHNlnZSYpKzpESYLeaLWGO5SpqF9Z8tmYmSoCaf0fqi5LwgdIA==} peerDependencies: - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 - '@tiptap/extension-code@3.20.4': - resolution: {integrity: sha512-7j8Hi964bH1SZ9oLdZC1fkqWz27mliSDV7M8lmL/M14+Qw42D/VOAKS4Aw9OCFtHMlTsjLR6qsoVxL8Lpkt6NA==} + '@tiptap/extension-code@3.20.5': + resolution: {integrity: sha512-jBZK/CfdMvg1gkNK/zNAk02IExpBPwUfNLRPiJvGhReL2Q73naKxZGQGp+5Lej9VaeFB70UKuRma/iIzuZbgsA==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-color@3.20.4': - resolution: {integrity: sha512-+OT9wWEJnqoWmzfqPYt0oWm8LZcH+D44Z3jA2TNzBj4tLGQ2YPxN2SyS12AlRi7MuguVT7utFy7qDXrfir8eUA==} + '@tiptap/extension-color@3.20.5': + resolution: {integrity: sha512-M984t0/z/Vo2b0yMd90WUFoP94yv9MOxif/pWDK52nJrkn70VXOO0AzgWucLKWPDpn9gJZg73ry/GTHMLPuOYQ==} peerDependencies: - '@tiptap/extension-text-style': ^3.20.4 + '@tiptap/extension-text-style': ^3.20.5 - '@tiptap/extension-document@3.20.4': - resolution: {integrity: sha512-zF1CIFVLt8MfSpWWnPwtGyxPOsT0xYM2qJKcXf2yZcTG37wDKmUi6heG53vGigIavbQlLaAFvs+1mNdOu2x/0A==} + '@tiptap/extension-document@3.20.5': + resolution: {integrity: sha512-BpNGHtOTAjjs/6QbkrafMTlaJqb0gsPngFzd5rB0csxx7rYRE9nIEY+oZ44qMw161+2YB4u20L17SX2mUJANBw==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-dropcursor@3.20.4': - resolution: {integrity: sha512-TgMwvZ8myXYdmd6bUV7qkpZXv7ZUiSmX/8eo+iPEzYo2CnDLAGvDKgC50nfq/g87SDvfBgPuAiBfFvsMQQWaTw==} + '@tiptap/extension-dropcursor@3.20.5': + resolution: {integrity: sha512-/lDG9OjvAv0ynmgFH17mt/GUeGT5bqu0iPW8JMgaRqlKawk+uUIv5SF5WkXS4SwxXih+hXdPEQD3PWZnxlQxAQ==} peerDependencies: - '@tiptap/extensions': ^3.20.4 + '@tiptap/extensions': ^3.20.5 - '@tiptap/extension-floating-menu@3.20.4': - resolution: {integrity: sha512-AaPTFhoO8DBIElJyd/RTVJjkctvJuL+GHURX0npbtTxXq5HXbebVwf2ARNR7jMd/GThsmBaNJiGxZg4A2oeDqQ==} + '@tiptap/extension-floating-menu@3.20.5': + resolution: {integrity: sha512-mTzBNUeAocinrxa5xV+5hGnnNCQB0pVI1GSBwUTHwdB7jNwBqfKAILmtLZONgmhxKWLmGa6WCA59sk+yDI+N0A==} peerDependencies: '@floating-ui/dom': ^1.0.0 - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 - '@tiptap/extension-gapcursor@3.20.4': - resolution: {integrity: sha512-JJ6f1iQ1e0s4kISgq55U3UYGwWV/N9f0PYMtB6e3L+SBQjXnywaLK0g6vfN6IvTCC2vdIuqeSOX8VlSO97sJLw==} + '@tiptap/extension-gapcursor@3.20.5': + resolution: {integrity: sha512-H+bRr+mqU/DQq1vfoMlppK1o+RbfSKYBMIcAMHWOez+C96MWfj5bhooVU2HLtl4XGmQxKGr3oEOCKDPdtRNThg==} peerDependencies: - '@tiptap/extensions': ^3.20.4 + '@tiptap/extensions': ^3.20.5 - '@tiptap/extension-hard-break@3.20.4': - resolution: {integrity: sha512-gJbq58d8zB1gzyqVEopowej5CpW4/Fpg6oGJvlZxaCukqd0gJRWGC89K+jE62YA1Td4sfcKrekKvN7jm2y/ZUg==} + '@tiptap/extension-hard-break@3.20.5': + resolution: {integrity: sha512-+aILNDO7BsXf0IJ4/0BYh570usFK3Q1t/ZQd8zhHuO2ATeWeDVu1x2F+ouFS4X8fmoCcioMzw15aoz93GET6kQ==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-heading@3.20.4': - resolution: {integrity: sha512-xsnkmTGggJc5P2iCwS1lv8KFG31xC/GNPJKoi/3UH67j/lKDhA3AdtshsLeyv2FKtTtYDb8oV0IqzHB1MM6a7w==} + '@tiptap/extension-heading@3.20.5': + resolution: {integrity: sha512-zXxuIrCSpzgXzRxgCbRE8DZ/NFuinVaniE3pp/9LYAWgRlsAyko8pI2XrVvzzXmDQqRGi2HrNVkNy1yutUWSWQ==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-highlight@3.20.4': - resolution: {integrity: sha512-CyTVPorVWwE4v89+k1nmaoAvjXLo7/fYWBsYlHW6b9Y1Un0iLANgKMFmmuapyfpaqpvg7V0Eg5ElG9U9+rogVA==} + '@tiptap/extension-highlight@3.20.5': + resolution: {integrity: sha512-rcOOsmpUP7pKRd4TEQocHbKmS7QZZ2aM8N2Rwi5hwgK1ZvqObbcbBIIYpj5Uz72cNmWw26lV+0Y2sGHCsrU4jw==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-horizontal-rule@3.20.4': - resolution: {integrity: sha512-y6joCi49haAA0bo3EGUY+dWUMHH1GPUc84hxrBY/0pMs+Bn+kQ1+DQJErZDTWGJrlHPWU/yekBZT72SNdp0DNA==} + '@tiptap/extension-horizontal-rule@3.20.5': + resolution: {integrity: sha512-4UtpUHg8cRzxWjJUGtni5VnXYbhsO7ygf1H1pr4Rv63XMBg9lfYDeSwByIuVy9biEFP7eGEFnezzb5Zlh1btmQ==} peerDependencies: - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 - '@tiptap/extension-image@3.20.4': - resolution: {integrity: sha512-57w2TevHQljTh6Xiry9duIm7NNOQAUSTwtwRn4GGLoKwHR8qXTxzp513ASrFOgR2kgs2TP471Au6RHf947P+jg==} + '@tiptap/extension-image@3.20.5': + resolution: {integrity: sha512-qxKupWKhX75Xc9GJ9Uel+KIFL9x6tb8W3RvQM1UolyJX/H7wyBO7sXp9XmKRkHZsDXRgLVbnkYBe+X83o16AIA==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-italic@3.20.4': - resolution: {integrity: sha512-4ZqiWr7cmqPFux8tj1ZLiYytyWf343IvQemNX6AvVWvscrJcrfj3YX4Le2BA0RW3A3M6RpLQXXozuF8vxYFDeQ==} + '@tiptap/extension-italic@3.20.5': + resolution: {integrity: sha512-7bZCgdJVTvhR5vSmNgFQbGvgRoC6m26KcUpHqWiKA95kLL5Wk4YlMCIqdiDpvJ1eakeFEvDcGZvFLg5+1NiQ+w==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-link@3.20.4': - resolution: {integrity: sha512-JNDSkWrVdb8NSvbQXwHWvK5tCMbTWwOHFOweknQZ1JPK4dei9FJVofYQaHyW4bJBdcCjds3NZSnXE8DM9iAWmg==} + '@tiptap/extension-link@3.20.5': + resolution: {integrity: sha512-0PukrSYnHX2CrGSThlKfQWxpPWmL7QAvdpDUraKknGvVNSH7tUjchTshy5JdLrn/SQAU92REowRCB6zzCNEFjA==} peerDependencies: - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 - '@tiptap/extension-list-item@3.20.4': - resolution: {integrity: sha512-QoTc5RACXaZF+vIIBBxjGO7D0oWFUDgBKJCpvUZ0CoGGKosnfe4a9I5THFyLj4201cf0oUqgf1oZhTqETGxlVw==} + '@tiptap/extension-list-item@3.20.5': + resolution: {integrity: sha512-pFJCGLIDEin1Xn6B3ctbrZvtYyALARE56ya4SmaNfnl+Hww5MfkRR40obbwYD3byA1yOpr+bECy+I2clQqzTDw==} peerDependencies: - '@tiptap/extension-list': ^3.20.4 + '@tiptap/extension-list': ^3.20.5 - '@tiptap/extension-list-keymap@3.20.4': - resolution: {integrity: sha512-RIqXM649+8IP7p/KVfaGlJiwjCylm1m6OPlaoM3K8O7oEOGRQzNeexexECCD2jsXRxew4E+vBNMD2orXqJmu8A==} + '@tiptap/extension-list-keymap@3.20.5': + resolution: {integrity: sha512-rmrQgOrUb0jKtFzVUfT0UNEST2sGM2Ve4lOl+1luh66RW6TD+gvgMk/qo12/Kffl9PUiqz8oYfk2qXCwFb6Bug==} peerDependencies: - '@tiptap/extension-list': ^3.20.4 + '@tiptap/extension-list': ^3.20.5 - '@tiptap/extension-list@3.20.4': - resolution: {integrity: sha512-X+5plTKhOioNcQ4KsAFJJSb/3+zR8Xhdpow4HzXtoV1KcbdDey1fhZdpsfkbrzCL0s6/wAgwZuAchCK7HujurQ==} + '@tiptap/extension-list@3.20.5': + resolution: {integrity: sha512-s+Y8Q7Orq+WQiwgFB/VPMYZe+6EAR2F69xCpvOynlzTInLO4cF6QpXomuGEYAZxLHe8ZBmeIaR7y8MH/OgjrDw==} peerDependencies: - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 - '@tiptap/extension-ordered-list@3.20.4': - resolution: {integrity: sha512-3budNL8BgBon3TcXZ4hjT0YpFvx1Ka3uSIECKDxHgES+OQcR+6cagxSb60gFEccf3Dr0PIwcVTY6g14lC1qKRQ==} + '@tiptap/extension-ordered-list@3.20.5': + resolution: {integrity: sha512-Y/RIE3AxUNYAFKGMM5FLlTVKxxBvOh4JlLp/qYsOCY2nJdH0Jopl2FpfBYc4xoJwFSk8BELJ4Ow0adcYb15ksg==} peerDependencies: - '@tiptap/extension-list': ^3.20.4 + '@tiptap/extension-list': ^3.20.5 - '@tiptap/extension-paragraph@3.20.4': - resolution: {integrity: sha512-lm6fOScWuZAF/Sfp97igUwFd3L1QHIVLAWP5NVdh0DTLrEIt4rMBmsww+yOpMQRhvz2uTgMbMXynrimhzi/QVw==} + '@tiptap/extension-paragraph@3.20.5': + resolution: {integrity: sha512-mwuhwmff67IpGfOViyRvUC14IlkpsOnB+hSExVnq5+hCntjt/Cr2Z8GGOgzHeIM2FIS0UqX9Lv/b6ttUg4+Now==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-placeholder@3.20.4': - resolution: {integrity: sha512-GB0KWtqm83YHG8cnqBLijvUBm+xvLfQHDfFRRH2fb3EzH3eIsM9jKRC31ADT27RSV1zVpHMFGcP3/pWpdrN1Lw==} + '@tiptap/extension-placeholder@3.20.5': + resolution: {integrity: sha512-PcZJbzJ8j+YcRdYWFjmFFVnOOx3nETA0pzMj9fXADi28vNABnrWLwsHAseh3I5QfLmywKQb9SpTSTU2LxQgBoA==} peerDependencies: - '@tiptap/extensions': ^3.20.4 + '@tiptap/extensions': ^3.20.5 - '@tiptap/extension-strike@3.20.4': - resolution: {integrity: sha512-It1Px9uDGTsVqyyg6cy7DigLoenljpQwqdI0jssM7QclZrHnsrye9fZxBBiiuCzzV1305MxKgHvratkHwqmVNA==} + '@tiptap/extension-strike@3.20.5': + resolution: {integrity: sha512-uwhvmfS4ciGYJRLUg0AHbWsprMCwyWVWd2RXOLRm0ZQeWkvzonPXZhJvzIhIgsFkPLj/dsN5t0+LdiK4UQMnyA==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-table-cell@3.20.4': - resolution: {integrity: sha512-R+AKOPKCq2NwETa4/nsidXnYe7UP8CxdbvJI1r6DMYipdj4ksQI24ij91hkwDLkeAhJyNGKub4soEMRdLgcQyQ==} + '@tiptap/extension-table-cell@3.20.5': + resolution: {integrity: sha512-NEobjpZ9f9CpQjnqTAsUHgcjWjTXcgWxqVfMmOWMyZLVh5kmEzDb7V8+lNplLnUUOFYynJcnzPTV7WieaD6Reg==} peerDependencies: - '@tiptap/extension-table': ^3.20.4 + '@tiptap/extension-table': ^3.20.5 - '@tiptap/extension-table-header@3.20.4': - resolution: {integrity: sha512-f8xlcNfmh2MD+fzPYXhy1zvao5DlWf+Sdd7eQ4G3baui/PdgBpJEroVCPYZIOazVRHL43MFxtvPeSJ5RN6J+bw==} + '@tiptap/extension-table-header@3.20.5': + resolution: {integrity: sha512-pGKVMPpfvKYIIerCUdGXD9OavFRriKd8+9PSoCR1+wtPsD8EhFbGRR3d8InLFq/G7V77pmsO6Tbws5b+M2LGNQ==} peerDependencies: - '@tiptap/extension-table': ^3.20.4 + '@tiptap/extension-table': ^3.20.5 - '@tiptap/extension-table-row@3.20.4': - resolution: {integrity: sha512-bW9pXTMpNmDoZrLVPYylkfhiSwPxTYpubFduW3cjsiSJK046kSw5zOlvlv4+9vZI1TSlA+BFykPeW34YqLbr6Q==} + '@tiptap/extension-table-row@3.20.5': + resolution: {integrity: sha512-zDW4GtnWnKPW3EdPHY5LOhW6ztuIlMxGRUYS7KGVWj9Qm8JWMPWSRsluNwajQacuZOo4ODVfG1GUooFibkjZLA==} peerDependencies: - '@tiptap/extension-table': ^3.20.4 + '@tiptap/extension-table': ^3.20.5 - '@tiptap/extension-table@3.20.4': - resolution: {integrity: sha512-vEHXRL9k9G02pp3P+DyUnN4YRaRAHGfTBC6gck0s9TpsCM9NIchL0qI1fb/u46Bu6UaoMMk58DGr7xaJ29g7KQ==} + '@tiptap/extension-table@3.20.5': + resolution: {integrity: sha512-YvTB5OfGqjqHqutkSyywplouFvJwlsDTpZAjtAh5TzKfOan42aiVepmHVpteoQP6LH0mSjw69RndFMIYhIGmSQ==} peerDependencies: - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 - '@tiptap/extension-task-item@3.20.4': - resolution: {integrity: sha512-mEWyAtZ61USZnKyLDxi2DtnSREfW0yUFXDOFWstNg1i6hva197BuAy6VRQMQxTOq+cFAgAt1MEZKanW0Obsa+g==} + '@tiptap/extension-task-item@3.20.5': + resolution: {integrity: sha512-CJAZf6m9+OwbXdmQWy/tIfZ6/R8ArKEDgW1ljhVii2rhim8J33REMnAwgIHZVUL5Ke0eMgKKcmpHK9rSzQ3DVg==} peerDependencies: - '@tiptap/extension-list': ^3.20.4 + '@tiptap/extension-list': ^3.20.5 - '@tiptap/extension-task-list@3.20.4': - resolution: {integrity: sha512-QvLrpffkxkr7TTgMmk6fnPAE34HYrUosHiuZJpRK008MuJDOoANblS221M4lLuRE73w3KI7hd/fi2CliBcCC4A==} + '@tiptap/extension-task-list@3.20.5': + resolution: {integrity: sha512-umGvSBGePYMuzKzb6GaxL88VBJjM6bnhLHzVfN4w8Y+xi5TOb5GfL70S8KiMOmbAFeCKXKD9EoPdWQU7vJnmWA==} peerDependencies: - '@tiptap/extension-list': ^3.20.4 + '@tiptap/extension-list': ^3.20.5 - '@tiptap/extension-text-align@3.20.4': - resolution: {integrity: sha512-6ZuRyClIyCimXu+S5LQ54DueEsYg5VOVOmubOVbG+WAjM9svn9Z8gv2sNDah2yEqXrX06B02zYcSyMiD7CHbfA==} + '@tiptap/extension-text-align@3.20.5': + resolution: {integrity: sha512-r7xIt6AE1Zf6epMg2GLAD55YIqJewunQnLUeApLkcWdTNuCJqZUrmVIXUvTtj2Ivw0VIaPoCtnB+VBvXEuC3Kg==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-text-style@3.20.4': - resolution: {integrity: sha512-PvW0Ja7ahWpo4bRuR8YCCVv4PH8lXjzhzlBAa4bMbsumOg+GbhX8Su7fwqd+IIPrHqfPXz9HTBMApSfzP6/08A==} + '@tiptap/extension-text-style@3.20.5': + resolution: {integrity: sha512-x1tgCkF+KptIbNajduZFVxU5BazQTzpxmkyBEpXmyeiKrLDDv3IWGUsHXv8FWYUolcF9kmEJY5fIjOutvkF/yQ==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-text@3.20.4': - resolution: {integrity: sha512-jchJcBZixDEO2J66Zx5dchsI2mA6IYsROqF8P1poxL4ienH7RVQRCTsBNnSfIeOtREKKWeOU/tEs5fcpvvGwIQ==} + '@tiptap/extension-text@3.20.5': + resolution: {integrity: sha512-DMa9g5cH2d/Gx1KXtV7txTxaa6FBqgG8glmfug+N93VMb8sEZR1Yu1az++yAep4SGGq9GWIGZCUS3H6W66et6Q==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extension-underline@3.20.4': - resolution: {integrity: sha512-0OjMc3FDujX16G+jhvqcY/mLot8SrNtDu8ggUwNLAfiI/QIvMVgk7giFD71DATC/4Nb8i/iwAEegTD8MxBIXCg==} + '@tiptap/extension-underline@3.20.5': + resolution: {integrity: sha512-HMhr5KIAqZsEhlN8RxKHr/ql1a8OvBa9fLf69IwUVFolBcDExHWUtaEV/axYVRQJvvIy2oKGJxlJWDZ4hkotHQ==} peerDependencies: - '@tiptap/core': ^3.20.4 + '@tiptap/core': ^3.20.5 - '@tiptap/extensions@3.20.4': - resolution: {integrity: sha512-8p6hVT65DjuQjtEdlH6ewX9SOJHlVQAOee3sWIJQmeJNRnZNvqPIBLleebUqDiljNTpxBv6s6QWkSTKgf3btwg==} + '@tiptap/extensions@3.20.5': + resolution: {integrity: sha512-c4am6SznqfMnbUNSh4MvufiD7cMLdqL1BArok22uBgSWkS1sB9RVBYe8+x0jrOkk0UPEVlzDHbQ+nU+WmIyS2Q==} peerDependencies: - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 - '@tiptap/pm@3.20.4': - resolution: {integrity: sha512-rCHYSBToilBEuI6PtjziHDdRkABH/XqwJ7dG4Amn/SD3yGiZKYCiEApQlTUS2zZeo8DsLeuqqqB4vEOeD4OEPg==} + '@tiptap/pm@3.20.5': + resolution: {integrity: sha512-yJhDa7Chx2EqJMX/jlewBv0za7slf1dKHWYve1XaApuVHEkxl0Ul3EDbwnx316vIITkuFW/pWSwkSsAplyBeCw==} - '@tiptap/react@3.20.4': - resolution: {integrity: sha512-1B8iWsHWwb5TeyVaUs8BRPzwWo4PsLQcl03urHaz0zTJ8DauopqvxzV3+lem1OkzRHn7wnrapDvwmIGoROCaQw==} + '@tiptap/react@3.20.5': + resolution: {integrity: sha512-in37o1Eo7JCflcHyK/SDfgkJBgX0LRN3LMk+NdLPTerRnC0zhGLQlpfBL4591TLTOUQde7QIrLv98smYO2mj+w==} peerDependencies: - '@tiptap/core': ^3.20.4 - '@tiptap/pm': ^3.20.4 + '@tiptap/core': ^3.20.5 + '@tiptap/pm': ^3.20.5 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 '@types/react-dom': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tiptap/starter-kit@3.20.4': - resolution: {integrity: sha512-WcyK6hsTl8eBsQhQ+d9Sq8fYZKOYdL+D45MyH3hz583elXqJlW3h3JPFYb0o87gddGxn8Mm57OA/gA1zEdeDMw==} + '@tiptap/starter-kit@3.20.5': + resolution: {integrity: sha512-L5E2TCGK0EiwmGIlwMsiwNTW1TLbfPF1Dsji4bSKRJnPbccZIMCB6qdId8v/Z+QGm85NVcBHeruQrDlKDddXBA==} '@tree-sitter-grammars/tree-sitter-yaml@0.7.1': resolution: {integrity: sha512-AynBwkIoQCTgjDR33bDUp9Mqq+YTco0is3n5hRApMqG9of/6A4eQsfC1/uSEeHSUyMQSYawcAWamsexnVpIP4Q==} @@ -12335,12 +12335,12 @@ snapshots: dependencies: react: 19.2.4 - '@mantine/tiptap@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/react@3.20.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@mantine/tiptap@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))(@tiptap/react@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@mantine/hooks': 8.3.18(react@19.2.4) - '@tiptap/extension-link': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) - '@tiptap/react': 3.20.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@tiptap/extension-link': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/react': 3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react: 19.2.4 react-dom: 19.2.4(react@19.2.4) @@ -13496,168 +13496,168 @@ snapshots: - bare-buffer - supports-color - '@tiptap/core@3.20.4(@tiptap/pm@3.20.4)': + '@tiptap/core@3.20.5(@tiptap/pm@3.20.5)': dependencies: - '@tiptap/pm': 3.20.4 + '@tiptap/pm': 3.20.5 - '@tiptap/extension-blockquote@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-blockquote@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-bold@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-bold@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-bubble-menu@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': + '@tiptap/extension-bubble-menu@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': dependencies: '@floating-ui/dom': 1.7.4 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 optional: true - '@tiptap/extension-bullet-list@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-bullet-list@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': + '@tiptap/extension-code-block@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 - '@tiptap/extension-code@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-code@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-color@3.20.4(@tiptap/extension-text-style@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)))': + '@tiptap/extension-color@3.20.5(@tiptap/extension-text-style@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)))': dependencies: - '@tiptap/extension-text-style': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) + '@tiptap/extension-text-style': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-document@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-document@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-dropcursor@3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-dropcursor@3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extensions': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-floating-menu@3.20.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': + '@tiptap/extension-floating-menu@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': dependencies: '@floating-ui/dom': 1.7.4 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 optional: true - '@tiptap/extension-gapcursor@3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-gapcursor@3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extensions': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-hard-break@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-hard-break@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-heading@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-heading@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-highlight@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-highlight@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-horizontal-rule@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': + '@tiptap/extension-horizontal-rule@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 - '@tiptap/extension-image@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-image@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-italic@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-italic@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-link@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': + '@tiptap/extension-link@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 linkifyjs: 4.3.2 - '@tiptap/extension-list-item@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-list-item@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-list-keymap@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-list-keymap@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': + '@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 - '@tiptap/extension-ordered-list@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-ordered-list@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-paragraph@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-paragraph@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-placeholder@3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-placeholder@3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extensions': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-strike@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-strike@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-table-cell@3.20.4(@tiptap/extension-table@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-table-cell@3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-table': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-table': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-table-header@3.20.4(@tiptap/extension-table@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-table-header@3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-table': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-table': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-table-row@3.20.4(@tiptap/extension-table@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-table-row@3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-table': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-table': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-table@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': + '@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 - '@tiptap/extension-task-item@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-task-item@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-task-list@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': + '@tiptap/extension-task-list@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-text-align@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-text-align@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-text-style@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-text-style@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-text@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-text@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-underline@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': + '@tiptap/extension-underline@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': + '@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 - '@tiptap/pm@3.20.4': + '@tiptap/pm@3.20.5': dependencies: prosemirror-changeset: 2.3.0 prosemirror-collab: 1.3.1 @@ -13678,10 +13678,10 @@ snapshots: prosemirror-transform: 1.10.2 prosemirror-view: 1.41.4 - '@tiptap/react@3.20.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@tiptap/react@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) '@types/use-sync-external-store': 0.0.6 @@ -13690,37 +13690,37 @@ snapshots: react-dom: 19.2.4(react@19.2.4) use-sync-external-store: 1.4.0(react@19.2.4) optionalDependencies: - '@tiptap/extension-bubble-menu': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) - '@tiptap/extension-floating-menu': 3.20.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) + '@tiptap/extension-bubble-menu': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-floating-menu': 3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) transitivePeerDependencies: - '@floating-ui/dom' - '@tiptap/starter-kit@3.20.4': + '@tiptap/starter-kit@3.20.5': dependencies: - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) - '@tiptap/extension-blockquote': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-bold': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-bullet-list': 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) - '@tiptap/extension-code': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-code-block': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) - '@tiptap/extension-document': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-dropcursor': 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) - '@tiptap/extension-gapcursor': 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) - '@tiptap/extension-hard-break': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-heading': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-horizontal-rule': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) - '@tiptap/extension-italic': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-link': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) - '@tiptap/extension-list-item': 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) - '@tiptap/extension-list-keymap': 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) - '@tiptap/extension-ordered-list': 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) - '@tiptap/extension-paragraph': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-strike': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-text': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extension-underline': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) - '@tiptap/pm': 3.20.4 + '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/extension-blockquote': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-bold': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-bullet-list': 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + '@tiptap/extension-code': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-code-block': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-document': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-dropcursor': 3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + '@tiptap/extension-gapcursor': 3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + '@tiptap/extension-hard-break': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-heading': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-horizontal-rule': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-italic': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-link': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-list-item': 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + '@tiptap/extension-list-keymap': 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + '@tiptap/extension-ordered-list': 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + '@tiptap/extension-paragraph': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-strike': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-text': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-underline': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extensions': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/pm': 3.20.5 '@tree-sitter-grammars/tree-sitter-yaml@0.7.1(tree-sitter@0.22.4)': dependencies: From 4f2cc9af2a42e19624def3bdea60fcb00334c483 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:06:11 +0000 Subject: [PATCH 20/56] fix(deps): update dependency undici to v7.24.6 (#5374) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/tasks/package.json | 2 +- packages/common/package.json | 2 +- packages/integrations/package.json | 2 +- packages/request-handler/package.json | 2 +- pnpm-lock.yaml | 41 ++++++++++++++++----------- 5 files changed, 28 insertions(+), 21 deletions(-) diff --git a/apps/tasks/package.json b/apps/tasks/package.json index b57fc346d..1d58843dc 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -41,7 +41,7 @@ "dotenv": "^17.3.1", "fastify": "^5.8.4", "superjson": "2.2.6", - "undici": "7.24.5" + "undici": "7.24.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/common/package.json b/packages/common/package.json index 04af57a08..9c841f0e7 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -34,7 +34,7 @@ "octokit": "^5.0.5", "react": "19.2.4", "react-dom": "19.2.4", - "undici": "7.24.5", + "undici": "7.24.6", "zod": "^4.2.1", "zod-validation-error": "^5.0.0" }, diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 876022d81..eedb34ecf 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -47,7 +47,7 @@ "octokit": "^5.0.5", "proxmox-api": "1.1.1", "tsdav": "^2.1.8", - "undici": "7.24.5", + "undici": "7.24.6", "xml2js": "^0.6.2", "zod": "^4.2.1" }, diff --git a/packages/request-handler/package.json b/packages/request-handler/package.json index f18a1a97a..cf6f14cb7 100644 --- a/packages/request-handler/package.json +++ b/packages/request-handler/package.json @@ -33,7 +33,7 @@ "dayjs": "^1.11.20", "octokit": "^5.0.5", "superjson": "2.2.6", - "undici": "7.24.5", + "undici": "7.24.6", "zod": "^4.2.1" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99130c6af..4c98d85b0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -438,8 +438,8 @@ importers: specifier: 2.2.6 version: 2.2.6 undici: - specifier: 7.24.5 - version: 7.24.5 + specifier: 7.24.6 + version: 7.24.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -862,8 +862,8 @@ importers: specifier: 19.2.4 version: 19.2.4(react@19.2.4) undici: - specifier: 7.24.5 - version: 7.24.5 + specifier: 7.24.6 + version: 7.24.6 zod: specifier: ^4.2.1 version: 4.2.1 @@ -1455,7 +1455,7 @@ importers: version: link:../image-proxy '@homarr/node-unifi': specifier: ^2.6.0 - version: 2.6.0(undici@7.24.5) + version: 2.6.0(undici@7.24.6) '@homarr/redis': specifier: workspace:^0.1.0 version: link:../redis @@ -1493,8 +1493,8 @@ importers: specifier: ^2.1.8 version: 2.1.8 undici: - specifier: 7.24.5 - version: 7.24.5 + specifier: 7.24.6 + version: 7.24.6 xml2js: specifier: ^0.6.2 version: 0.6.2 @@ -1864,8 +1864,8 @@ importers: specifier: 2.2.6 version: 2.2.6 undici: - specifier: 7.24.5 - version: 7.24.5 + specifier: 7.24.6 + version: 7.24.6 zod: specifier: ^4.2.1 version: 4.2.1 @@ -5414,6 +5414,7 @@ packages: '@xmldom/xmldom@0.8.10': resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} + deprecated: this version has critical issues, please update to the latest version '@xstate/fsm@1.6.5': resolution: {integrity: sha512-b5o1I6aLNeYlU/3CPlj/Z91ybk1gUsKT+5NAJI+2W4UjvS5KLG28K9v5UvNoFVjHV8PajVZ00RH3vnjyQO7ZAw==} @@ -10430,6 +10431,10 @@ packages: resolution: {integrity: sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==} engines: {node: '>=20.18.1'} + undici@7.24.6: + resolution: {integrity: sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==} + engines: {node: '>=20.18.1'} + unicode-emoji-modifier-base@1.0.0: resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} engines: {node: '>=4'} @@ -11894,11 +11899,11 @@ snapshots: '@homarr/gridstack@1.12.0': {} - '@homarr/node-unifi@2.6.0(undici@7.24.5)': + '@homarr/node-unifi@2.6.0(undici@7.24.6)': dependencies: axios: 1.9.0 eventemitter2: 6.4.9 - http-cookie-agent: 6.0.8(tough-cookie@5.1.2)(undici@7.24.5) + http-cookie-agent: 6.0.8(tough-cookie@5.1.2)(undici@7.24.6) tough-cookie: 5.1.2 ws: 8.20.0 transitivePeerDependencies: @@ -12872,7 +12877,7 @@ snapshots: p-filter: 4.1.0 semantic-release: 25.0.3(typescript@5.9.3) tinyglobby: 0.2.15 - undici: 7.24.5 + undici: 7.24.6 url-join: 5.0.0 transitivePeerDependencies: - supports-color @@ -16579,12 +16584,12 @@ snapshots: html-url-attributes@3.0.1: {} - http-cookie-agent@6.0.8(tough-cookie@5.1.2)(undici@7.24.5): + http-cookie-agent@6.0.8(tough-cookie@5.1.2)(undici@7.24.6): dependencies: agent-base: 7.1.3 tough-cookie: 5.1.2 optionalDependencies: - undici: 7.24.5 + undici: 7.24.6 http-errors@2.0.0: dependencies: @@ -17066,7 +17071,7 @@ snapshots: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.0 - undici: 7.24.5 + undici: 7.24.6 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -17093,7 +17098,7 @@ snapshots: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 - undici: 7.24.5 + undici: 7.24.6 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -19724,7 +19729,7 @@ snapshots: ssh-remote-port-forward: 1.0.4 tar-fs: 3.1.2 tmp: 0.2.5 - undici: 7.24.5 + undici: 7.24.6 transitivePeerDependencies: - bare-buffer - supports-color @@ -20070,6 +20075,8 @@ snapshots: undici@7.24.5: {} + undici@7.24.6: {} + unicode-emoji-modifier-base@1.0.0: {} unicorn-magic@0.1.0: {} From 7679553f16ff2945a3eb6cb668ca3a701d13d5ce Mon Sep 17 00:00:00 2001 From: Sascha Buehrle <47737812+saschabuehrle@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:21:11 +0200 Subject: [PATCH 21/56] fix: honor trusted certificates in Immich integration requests (#5275) * fix: use trusted-cert fetch for immich sdk requests (fixes #5242) * fix: use testing fetch for Immich connection check * fix: typecheck issues --------- Co-authored-by: Meier Lukas --- .../src/immich/immich-integration.ts | 21 +- pnpm-lock.yaml | 268 +++++++++--------- 2 files changed, 156 insertions(+), 133 deletions(-) diff --git a/packages/integrations/src/immich/immich-integration.ts b/packages/integrations/src/immich/immich-integration.ts index 21019e4b7..9e13ff953 100644 --- a/packages/integrations/src/immich/immich-integration.ts +++ b/packages/integrations/src/immich/immich-integration.ts @@ -1,5 +1,6 @@ import { getAlbumInfo, getAllAlbums, getMyUser, getServerStatistics, init, searchUsers } from "@immich/sdk"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; import { createLogger } from "@homarr/core/infrastructure/logs"; import { ImageProxy } from "@homarr/image-proxy"; @@ -41,7 +42,10 @@ export class ImmichIntegration extends Integration { public async getServerStatsAsync(): Promise { this.initClient(); - const [statistics, users] = await Promise.all([getServerStatistics(), searchUsers()]); + const [statistics, users] = await Promise.all([ + getServerStatistics(this.getRequestOptions()), + searchUsers(this.getRequestOptions()), + ]); return { photoCount: statistics.photos, userCount: users.length, @@ -52,7 +56,7 @@ export class ImmichIntegration extends Integration { public async getAlbumAsync(albumId: string): Promise { this.initClient(); - const album = await getAlbumInfo({ id: albumId }); + const album = await getAlbumInfo({ id: albumId }, this.getRequestOptions()); const imageProxy = new ImageProxy(); return { albumName: album.albumName, @@ -89,17 +93,24 @@ export class ImmichIntegration extends Integration { }[] > { this.initClient(); - const albums = await getAllAlbums({}); + const albums = await getAllAlbums({}, this.getRequestOptions()); return albums.map((album) => ({ id: album.id, albumName: album.albumName, assetCount: album.assetCount })); } - protected async testingAsync(_: IntegrationTestingInput): Promise { + protected async testingAsync(input: IntegrationTestingInput): Promise { this.initClient(); - const user = await getMyUser(); + const user = await getMyUser(this.getRequestOptions(input.fetchAsync)); logger.debug(`Logged in as ${user.name} (${user.id})`); return { success: true }; } + private getRequestOptions(fetchAsync = fetchWithTrustedCertificatesAsync) { + return { + // Undici and node types are not the same + fetch: fetchAsync as unknown as typeof fetch, + }; + } + /** * Sets the credentials and prepares the client for calls. * Must be called before any other functions. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c98d85b0..0fc8bca3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -228,7 +228,7 @@ importers: version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))(@tiptap/react@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@million/lint': specifier: 1.0.14 - version: 1.0.14(webpack-sources@3.3.4) + version: 1.0.14(rollup@4.60.0)(webpack-sources@3.3.4) '@tabler/icons-react': specifier: ^3.40.0 version: 3.40.0(react@19.2.4) @@ -4180,147 +4180,147 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.59.0': - resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + '@rollup/rollup-android-arm-eabi@4.60.0': + resolution: {integrity: sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.59.0': - resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + '@rollup/rollup-android-arm64@4.60.0': + resolution: {integrity: sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.59.0': - resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + '@rollup/rollup-darwin-arm64@4.60.0': + resolution: {integrity: sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.59.0': - resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + '@rollup/rollup-darwin-x64@4.60.0': + resolution: {integrity: sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.59.0': - resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + '@rollup/rollup-freebsd-arm64@4.60.0': + resolution: {integrity: sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.59.0': - resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + '@rollup/rollup-freebsd-x64@4.60.0': + resolution: {integrity: sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': - resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.0': + resolution: {integrity: sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.59.0': - resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + '@rollup/rollup-linux-arm-musleabihf@4.60.0': + resolution: {integrity: sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.59.0': - resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + '@rollup/rollup-linux-arm64-gnu@4.60.0': + resolution: {integrity: sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.59.0': - resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + '@rollup/rollup-linux-arm64-musl@4.60.0': + resolution: {integrity: sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.59.0': - resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + '@rollup/rollup-linux-loong64-gnu@4.60.0': + resolution: {integrity: sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.59.0': - resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + '@rollup/rollup-linux-loong64-musl@4.60.0': + resolution: {integrity: sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.59.0': - resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + '@rollup/rollup-linux-ppc64-gnu@4.60.0': + resolution: {integrity: sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.59.0': - resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + '@rollup/rollup-linux-ppc64-musl@4.60.0': + resolution: {integrity: sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.59.0': - resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + '@rollup/rollup-linux-riscv64-gnu@4.60.0': + resolution: {integrity: sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.59.0': - resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + '@rollup/rollup-linux-riscv64-musl@4.60.0': + resolution: {integrity: sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.59.0': - resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + '@rollup/rollup-linux-s390x-gnu@4.60.0': + resolution: {integrity: sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.59.0': - resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.6.1': resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.59.0': - resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + '@rollup/rollup-linux-x64-gnu@4.60.0': + resolution: {integrity: sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.60.0': + resolution: {integrity: sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.59.0': - resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + '@rollup/rollup-openbsd-x64@4.60.0': + resolution: {integrity: sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.59.0': - resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + '@rollup/rollup-openharmony-arm64@4.60.0': + resolution: {integrity: sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.59.0': - resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + '@rollup/rollup-win32-arm64-msvc@4.60.0': + resolution: {integrity: sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.59.0': - resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + '@rollup/rollup-win32-ia32-msvc@4.60.0': + resolution: {integrity: sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.59.0': - resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + '@rollup/rollup-win32-x64-gnu@4.60.0': + resolution: {integrity: sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.59.0': - resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + '@rollup/rollup-win32-x64-msvc@4.60.0': + resolution: {integrity: sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==} cpu: [x64] os: [win32] @@ -6575,8 +6575,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - effect@3.20.0: - resolution: {integrity: sha512-qMLfDJscrNG8p/aw+IkT9W7fgj50Z4wG5bLBy0Txsxz8iUHjDIkOgO3SV0WZfnQbNG2VJYb0b+rDLMrhM4+Krw==} + effect@3.21.0: + resolution: {integrity: sha512-PPN80qRokCd1f015IANNhrwOnLO7GrrMQfk4/lnZRE/8j7UPWrNNjPV0uBrZutI/nHzernbW+J0hdqQysHiSnQ==} electron-to-chromium@1.5.114: resolution: {integrity: sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==} @@ -8929,6 +8929,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} @@ -9543,8 +9547,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.59.0: - resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + rollup@4.60.0: + resolution: {integrity: sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10054,8 +10058,8 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + tapable@2.3.2: + resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} engines: {node: '>=6'} tar-fs@2.1.4: @@ -11164,7 +11168,7 @@ snapshots: '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) '@babel/helpers': 7.28.4 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/template': 7.27.2 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -11199,7 +11203,7 @@ snapshots: '@babel/generator@7.29.0': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -11363,7 +11367,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@babel/generator': 7.29.0 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/types': 7.29.0 debug: 4.4.3 @@ -12359,19 +12363,19 @@ snapshots: ast-types: 0.14.2 cli-high: 0.4.3 diff: 5.2.2 - effect: 3.20.0 + effect: 3.21.0 nanoid: 5.1.7 recast: 0.23.11 xycolors: 0.1.2 - '@million/lint@1.0.14(webpack-sources@3.3.4)': + '@million/lint@1.0.14(rollup@4.60.0)(webpack-sources@3.3.4)': dependencies: '@axiomhq/js': 1.0.0-rc.3 '@babel/core': 7.26.0 '@babel/types': 7.26.0 '@hono/node-server': 1.13.0(hono@4.12.9) '@million/install': 1.0.14 - '@rollup/pluginutils': 5.1.0 + '@rollup/pluginutils': 5.1.0(rollup@4.60.0) '@rrweb/types': 2.0.0-alpha.16 babel-plugin-syntax-hermes-parser: 0.21.1 ci-info: 4.0.0 @@ -12721,88 +12725,90 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.3': {} - '@rollup/pluginutils@5.1.0': + '@rollup/pluginutils@5.1.0(rollup@4.60.0)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 2.3.1 + optionalDependencies: + rollup: 4.60.0 - '@rollup/rollup-android-arm-eabi@4.59.0': + '@rollup/rollup-android-arm-eabi@4.60.0': optional: true - '@rollup/rollup-android-arm64@4.59.0': + '@rollup/rollup-android-arm64@4.60.0': optional: true - '@rollup/rollup-darwin-arm64@4.59.0': + '@rollup/rollup-darwin-arm64@4.60.0': optional: true - '@rollup/rollup-darwin-x64@4.59.0': + '@rollup/rollup-darwin-x64@4.60.0': optional: true - '@rollup/rollup-freebsd-arm64@4.59.0': + '@rollup/rollup-freebsd-arm64@4.60.0': optional: true - '@rollup/rollup-freebsd-x64@4.59.0': + '@rollup/rollup-freebsd-x64@4.60.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + '@rollup/rollup-linux-arm-gnueabihf@4.60.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.59.0': + '@rollup/rollup-linux-arm-musleabihf@4.60.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.59.0': + '@rollup/rollup-linux-arm64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.59.0': + '@rollup/rollup-linux-arm64-musl@4.60.0': optional: true - '@rollup/rollup-linux-loong64-gnu@4.59.0': + '@rollup/rollup-linux-loong64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-loong64-musl@4.59.0': + '@rollup/rollup-linux-loong64-musl@4.60.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.59.0': + '@rollup/rollup-linux-ppc64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-ppc64-musl@4.59.0': + '@rollup/rollup-linux-ppc64-musl@4.60.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.59.0': + '@rollup/rollup-linux-riscv64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.59.0': + '@rollup/rollup-linux-riscv64-musl@4.60.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.59.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.59.0': + '@rollup/rollup-linux-s390x-gnu@4.60.0': optional: true '@rollup/rollup-linux-x64-gnu@4.6.1': optional: true - '@rollup/rollup-linux-x64-musl@4.59.0': + '@rollup/rollup-linux-x64-gnu@4.60.0': optional: true - '@rollup/rollup-openbsd-x64@4.59.0': + '@rollup/rollup-linux-x64-musl@4.60.0': optional: true - '@rollup/rollup-openharmony-arm64@4.59.0': + '@rollup/rollup-openbsd-x64@4.60.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.59.0': + '@rollup/rollup-openharmony-arm64@4.60.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.59.0': + '@rollup/rollup-win32-arm64-msvc@4.60.0': optional: true - '@rollup/rollup-win32-x64-gnu@4.59.0': + '@rollup/rollup-win32-ia32-msvc@4.60.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.59.0': + '@rollup/rollup-win32-x64-gnu@4.60.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.0': optional: true '@rrweb/types@2.0.0-alpha.16': @@ -15446,7 +15452,7 @@ snapshots: eastasianwidth@0.2.0: {} - effect@3.20.0: + effect@3.21.0: dependencies: '@standard-schema/spec': 1.1.0 fast-check: 3.23.2 @@ -15507,7 +15513,7 @@ snapshots: enhanced-resolve@5.20.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.3.2 entities@4.5.0: {} @@ -16168,6 +16174,10 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + fecha@4.2.3: {} fetch-retry@6.0.0: {} @@ -18185,6 +18195,8 @@ snapshots: picomatch@4.0.3: {} + picomatch@4.0.4: {} + pify@3.0.0: {} pino-abstract-transport@3.0.0: @@ -18912,35 +18924,35 @@ snapshots: rfdc@1.4.1: {} - rollup@4.59.0: + rollup@4.60.0: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.59.0 - '@rollup/rollup-android-arm64': 4.59.0 - '@rollup/rollup-darwin-arm64': 4.59.0 - '@rollup/rollup-darwin-x64': 4.59.0 - '@rollup/rollup-freebsd-arm64': 4.59.0 - '@rollup/rollup-freebsd-x64': 4.59.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 - '@rollup/rollup-linux-arm-musleabihf': 4.59.0 - '@rollup/rollup-linux-arm64-gnu': 4.59.0 - '@rollup/rollup-linux-arm64-musl': 4.59.0 - '@rollup/rollup-linux-loong64-gnu': 4.59.0 - '@rollup/rollup-linux-loong64-musl': 4.59.0 - '@rollup/rollup-linux-ppc64-gnu': 4.59.0 - '@rollup/rollup-linux-ppc64-musl': 4.59.0 - '@rollup/rollup-linux-riscv64-gnu': 4.59.0 - '@rollup/rollup-linux-riscv64-musl': 4.59.0 - '@rollup/rollup-linux-s390x-gnu': 4.59.0 - '@rollup/rollup-linux-x64-gnu': 4.59.0 - '@rollup/rollup-linux-x64-musl': 4.59.0 - '@rollup/rollup-openbsd-x64': 4.59.0 - '@rollup/rollup-openharmony-arm64': 4.59.0 - '@rollup/rollup-win32-arm64-msvc': 4.59.0 - '@rollup/rollup-win32-ia32-msvc': 4.59.0 - '@rollup/rollup-win32-x64-gnu': 4.59.0 - '@rollup/rollup-win32-x64-msvc': 4.59.0 + '@rollup/rollup-android-arm-eabi': 4.60.0 + '@rollup/rollup-android-arm64': 4.60.0 + '@rollup/rollup-darwin-arm64': 4.60.0 + '@rollup/rollup-darwin-x64': 4.60.0 + '@rollup/rollup-freebsd-arm64': 4.60.0 + '@rollup/rollup-freebsd-x64': 4.60.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.0 + '@rollup/rollup-linux-arm-musleabihf': 4.60.0 + '@rollup/rollup-linux-arm64-gnu': 4.60.0 + '@rollup/rollup-linux-arm64-musl': 4.60.0 + '@rollup/rollup-linux-loong64-gnu': 4.60.0 + '@rollup/rollup-linux-loong64-musl': 4.60.0 + '@rollup/rollup-linux-ppc64-gnu': 4.60.0 + '@rollup/rollup-linux-ppc64-musl': 4.60.0 + '@rollup/rollup-linux-riscv64-gnu': 4.60.0 + '@rollup/rollup-linux-riscv64-musl': 4.60.0 + '@rollup/rollup-linux-s390x-gnu': 4.60.0 + '@rollup/rollup-linux-x64-gnu': 4.60.0 + '@rollup/rollup-linux-x64-musl': 4.60.0 + '@rollup/rollup-openbsd-x64': 4.60.0 + '@rollup/rollup-openharmony-arm64': 4.60.0 + '@rollup/rollup-win32-arm64-msvc': 4.60.0 + '@rollup/rollup-win32-ia32-msvc': 4.60.0 + '@rollup/rollup-win32-x64-gnu': 4.60.0 + '@rollup/rollup-win32-x64-msvc': 4.60.0 fsevents: 2.3.3 rope-sequence@1.3.4: {} @@ -19646,7 +19658,7 @@ snapshots: tagged-tag@1.0.0: {} - tapable@2.3.0: {} + tapable@2.3.2: {} tar-fs@2.1.4: dependencies: @@ -20322,10 +20334,10 @@ snapshots: vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1): dependencies: esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 postcss: 8.5.8 - rollup: 4.59.0 + rollup: 4.60.0 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 24.12.0 @@ -20410,7 +20422,7 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.3.0 - tapable: 2.3.0 + tapable: 2.3.2 terser-webpack-plugin: 5.4.0(webpack@5.94.0) watchpack: 2.5.1 webpack-sources: 3.3.4 From d4177afc180897e79e0bc857feb09303299828e9 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:22:44 +0200 Subject: [PATCH 22/56] chore(deps): update pnpm/action-setup action to v5 (#5294) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .github/workflows/deployment-docker-image.yml | 2 +- .github/workflows/update-contributors.yml | 2 +- tooling/github/setup/action.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index b13b1d378..863a1a17d 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -60,7 +60,7 @@ jobs: if: env.SKIP_RELEASE == 'false' with: persist-credentials: false - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 if: env.SKIP_RELEASE == 'false' - uses: actions/setup-node@v6 if: env.SKIP_RELEASE == 'false' diff --git a/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml index c3b7e53f0..870800a7a 100644 --- a/.github/workflows/update-contributors.yml +++ b/.github/workflows/update-contributors.yml @@ -33,7 +33,7 @@ jobs: env: GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v6 with: diff --git a/tooling/github/setup/action.yml b/tooling/github/setup/action.yml index 6051ab5cb..1425fdb72 100644 --- a/tooling/github/setup/action.yml +++ b/tooling/github/setup/action.yml @@ -4,7 +4,7 @@ description: "Common setup steps for Actions" runs: using: composite steps: - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 - uses: actions/setup-node@v6 with: node-version: 24.14.0 From 107ec7737af52dfed4b8ab566d1226303fc31893 Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:23:03 +0200 Subject: [PATCH 23/56] chore(lang): update translations from crowdin (#5350) Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> --- packages/translation/src/lang/ca.json | 8 ++++++++ packages/translation/src/lang/cn.json | 8 ++++++++ packages/translation/src/lang/cr.json | 8 ++++++++ packages/translation/src/lang/cs.json | 8 ++++++++ packages/translation/src/lang/da.json | 8 ++++++++ packages/translation/src/lang/de-CH.json | 8 ++++++++ packages/translation/src/lang/de.json | 8 ++++++++ packages/translation/src/lang/el.json | 8 ++++++++ packages/translation/src/lang/en-gb.json | 8 ++++++++ packages/translation/src/lang/es.json | 8 ++++++++ packages/translation/src/lang/et.json | 8 ++++++++ packages/translation/src/lang/fr.json | 8 ++++++++ packages/translation/src/lang/he.json | 8 ++++++++ packages/translation/src/lang/hr.json | 8 ++++++++ packages/translation/src/lang/hu.json | 8 ++++++++ packages/translation/src/lang/it.json | 8 ++++++++ packages/translation/src/lang/ja.json | 8 ++++++++ packages/translation/src/lang/ko.json | 8 ++++++++ packages/translation/src/lang/lt.json | 8 ++++++++ packages/translation/src/lang/lv.json | 8 ++++++++ packages/translation/src/lang/nl.json | 8 ++++++++ packages/translation/src/lang/no.json | 8 ++++++++ packages/translation/src/lang/pl.json | 8 ++++++++ packages/translation/src/lang/pt.json | 8 ++++++++ packages/translation/src/lang/ro.json | 8 ++++++++ packages/translation/src/lang/ru.json | 8 ++++++++ packages/translation/src/lang/sk.json | 8 ++++++++ packages/translation/src/lang/sl.json | 8 ++++++++ packages/translation/src/lang/sv.json | 8 ++++++++ packages/translation/src/lang/tr.json | 8 ++++++++ packages/translation/src/lang/uk.json | 8 ++++++++ packages/translation/src/lang/vi.json | 8 ++++++++ packages/translation/src/lang/zh.json | 8 ++++++++ 33 files changed, 264 insertions(+) diff --git a/packages/translation/src/lang/ca.json b/packages/translation/src/lang/ca.json index 978817e9b..99a134e6b 100644 --- a/packages/translation/src/lang/ca.json +++ b/packages/translation/src/lang/ca.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json index 33443c465..93c7122f6 100644 --- a/packages/translation/src/lang/cn.json +++ b/packages/translation/src/lang/cn.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "允许地理位置" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "显示内存信息" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "显示运行时间" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "内存", + "gpu": "", "network": "网络" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "内存", + "gpu": "", "network": "网络", "up": "上传", "down": "下载" diff --git a/packages/translation/src/lang/cr.json b/packages/translation/src/lang/cr.json index c6a8b4da3..63ab2b8d7 100644 --- a/packages/translation/src/lang/cr.json +++ b/packages/translation/src/lang/cr.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "crwdns970:0crwdne970:0" + }, + "allowModals": { + "label": "crwdns3992:0crwdne3992:0" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "crwdns1080:0crwdne1080:0" }, + "gpu": { + "label": "crwdns3994:0crwdne3994:0" + }, "showUptime": { "label": "crwdns3446:0crwdne3446:0" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "crwdns3700:0crwdne3700:0", "memory": "crwdns3702:0crwdne3702:0", + "gpu": "crwdns3996:0crwdne3996:0", "network": "crwdns3704:0crwdne3704:0" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "crwdns3604:0crwdne3604:0", "memory": "crwdns3606:0crwdne3606:0", + "gpu": "crwdns3998:0crwdne3998:0", "network": "crwdns3608:0crwdne3608:0", "up": "crwdns3610:0crwdne3610:0", "down": "crwdns3612:0crwdne3612:0" diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json index 124de13bb..e807a0e09 100644 --- a/packages/translation/src/lang/cs.json +++ b/packages/translation/src/lang/cs.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Povolit polohu" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Zobrazit informace o paměti" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json index df562d1ff..67ccdf8ca 100644 --- a/packages/translation/src/lang/da.json +++ b/packages/translation/src/lang/da.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Tillad geolokalisering" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Vis hukommelsesoplysninger" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Vis Oppetid" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "Hukommelse", + "gpu": "", "network": "Netværk" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "", "network": "NET", "up": "OP", "down": "NED" diff --git a/packages/translation/src/lang/de-CH.json b/packages/translation/src/lang/de-CH.json index 62b300aff..3b1c56710 100644 --- a/packages/translation/src/lang/de-CH.json +++ b/packages/translation/src/lang/de-CH.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Geolokalisierung zulassen" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Speicher-Info anzeigen" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/de.json b/packages/translation/src/lang/de.json index aa16650e6..ae6b7b4c6 100644 --- a/packages/translation/src/lang/de.json +++ b/packages/translation/src/lang/de.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Geolokalisierung zulassen" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Speicher-Info anzeigen" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Laufzeit anzeigen" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "Speicher", + "gpu": "", "network": "Netzwerk" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "Arbeitsspeicher", + "gpu": "", "network": "Netzwerk", "up": "OBEN", "down": "UNTEN" diff --git a/packages/translation/src/lang/el.json b/packages/translation/src/lang/el.json index ea7862559..bcb635de7 100644 --- a/packages/translation/src/lang/el.json +++ b/packages/translation/src/lang/el.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Επιτρέπεται ο γεωεντοπισμός" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Εμφάνιση Πληροφοριών Μνήμης" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json index 5042ed477..353bf2d3a 100644 --- a/packages/translation/src/lang/en-gb.json +++ b/packages/translation/src/lang/en-gb.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Allow geolocation" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/es.json b/packages/translation/src/lang/es.json index 507c4630f..4685315ff 100644 --- a/packages/translation/src/lang/es.json +++ b/packages/translation/src/lang/es.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Permitir geolocalización" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Mostrar información de la memoria" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Mostrar tiempo de actividad" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "Memoria", + "gpu": "", "network": "Red" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "", "network": "RED", "up": "ENCENDIDO", "down": "APAGADO" diff --git a/packages/translation/src/lang/et.json b/packages/translation/src/lang/et.json index 2bab54e1e..73acbf075 100644 --- a/packages/translation/src/lang/et.json +++ b/packages/translation/src/lang/et.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json index af40dd744..090dad3db 100644 --- a/packages/translation/src/lang/fr.json +++ b/packages/translation/src/lang/fr.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Autoriser la géolocalisation" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Afficher les infos de la mémoire" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Afficher le temps de disponibilité" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "Mémoire", + "gpu": "", "network": "Réseau" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "RAM", + "gpu": "", "network": "NET", "up": "UP", "down": "HORS SERVICE" diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json index 7e4e13549..212114ea6 100644 --- a/packages/translation/src/lang/he.json +++ b/packages/translation/src/lang/he.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "אפשר מיקום גיאוגרפי" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "הצג מידע זיכרון" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "הצג זמן פעולה" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "מעבד", "memory": "זיכרון", + "gpu": "", "network": "רשת" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "מעבד", "memory": "זיכרון", + "gpu": "", "network": "רשת", "up": "העלאה", "down": "הורדה" diff --git a/packages/translation/src/lang/hr.json b/packages/translation/src/lang/hr.json index 513022ea1..c869f5779 100644 --- a/packages/translation/src/lang/hr.json +++ b/packages/translation/src/lang/hr.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Dopusti geolociranje" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json index c0d07454b..04db91b6f 100644 --- a/packages/translation/src/lang/hu.json +++ b/packages/translation/src/lang/hu.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Geolokáció engedélyezése" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Memóriainformációk megjelenítése" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/it.json b/packages/translation/src/lang/it.json index c0737ed8f..16679b728 100644 --- a/packages/translation/src/lang/it.json +++ b/packages/translation/src/lang/it.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Consenti geo-localizzazione" + }, + "allowModals": { + "label": "Consenti modali" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Mostra Informazioni Memoria" }, + "gpu": { + "label": "Mostra informazioni sulla GPU" + }, "showUptime": { "label": "Mostra Uptime" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "Memoria", + "gpu": "GPU", "network": "Rete" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "GPU", "network": "NET", "up": "SU", "down": "DOWN" diff --git a/packages/translation/src/lang/ja.json b/packages/translation/src/lang/ja.json index aeb7a1da6..63fc1436d 100644 --- a/packages/translation/src/lang/ja.json +++ b/packages/translation/src/lang/ja.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "位置情報を許可する" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "メモリー情報を表示" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "稼働時間を表示" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "メモリ", + "gpu": "", "network": "ネットワーク" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "", "network": "NET", "up": "UP", "down": "DOWN" diff --git a/packages/translation/src/lang/ko.json b/packages/translation/src/lang/ko.json index c7140e4cd..4170c9373 100644 --- a/packages/translation/src/lang/ko.json +++ b/packages/translation/src/lang/ko.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "지리적 위치 허용" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/lt.json b/packages/translation/src/lang/lt.json index 9436577ff..a3268fb95 100644 --- a/packages/translation/src/lang/lt.json +++ b/packages/translation/src/lang/lt.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Leisti nustatyti geografinę buvimo vietą" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/lv.json b/packages/translation/src/lang/lv.json index 05994cbcf..416f8d20e 100644 --- a/packages/translation/src/lang/lv.json +++ b/packages/translation/src/lang/lv.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Atļaut ģeogrāfiskās atrašanās vietas noteikšanu" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Rādīt atmiņas informāciju" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/nl.json b/packages/translation/src/lang/nl.json index eb963c46c..3485be428 100644 --- a/packages/translation/src/lang/nl.json +++ b/packages/translation/src/lang/nl.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Geolocatie toestaan" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Werkgeheugen info weergeven" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Uptime weergeven" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "Processor", "memory": "Geheugen", + "gpu": "", "network": "Netwerk" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "", "network": "NET", "up": "OMHOOG", "down": "OMLAAG" diff --git a/packages/translation/src/lang/no.json b/packages/translation/src/lang/no.json index 690126ff2..7358822d3 100644 --- a/packages/translation/src/lang/no.json +++ b/packages/translation/src/lang/no.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Tillat geolokalisering" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Vis minneinfo" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Vis oppetid" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "Minne", + "gpu": "", "network": "Nettverk" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "Minne", + "gpu": "", "network": "NETT", "up": "OPP", "down": "NED" diff --git a/packages/translation/src/lang/pl.json b/packages/translation/src/lang/pl.json index 9fdba5951..414be2c40 100644 --- a/packages/translation/src/lang/pl.json +++ b/packages/translation/src/lang/pl.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Zezwalaj na geolokalizację" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Pokaż informacje o pamięci" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Pokaż czas pracy" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "Procesor", "memory": "Pamięć", + "gpu": "", "network": "Sieć" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "Procesor", "memory": "Pamięć", + "gpu": "", "network": "Sieć", "up": "Aktywny", "down": "Nieaktywny" diff --git a/packages/translation/src/lang/pt.json b/packages/translation/src/lang/pt.json index 6c47bc477..e4494bde9 100644 --- a/packages/translation/src/lang/pt.json +++ b/packages/translation/src/lang/pt.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Permitir geolocalização" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Mostrar informações da memória" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Exibir tempo de atividade" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "CPU", "memory": "Memória", + "gpu": "", "network": "Rede" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "CPU", "memory": "MEM", + "gpu": "", "network": "REDE", "up": "ENVIO", "down": "RECEBIDO" diff --git a/packages/translation/src/lang/ro.json b/packages/translation/src/lang/ro.json index c97064d78..367759d61 100644 --- a/packages/translation/src/lang/ro.json +++ b/packages/translation/src/lang/ro.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Permiteți geolocalizarea" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Afișare informații memorie" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/ru.json b/packages/translation/src/lang/ru.json index 27444a388..336f932b6 100644 --- a/packages/translation/src/lang/ru.json +++ b/packages/translation/src/lang/ru.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Разрешить геолокацию" + }, + "allowModals": { + "label": "Разрешить модальные окна" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Показать информацию о памяти" }, + "gpu": { + "label": "Показать информацию о GPU" + }, "showUptime": { "label": "Показывать время работы" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "ЦП", "memory": "Память", + "gpu": "GPU", "network": "Сеть" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "ЦП", "memory": "ОЗУ", + "gpu": "GPU", "network": "Сеть", "up": "Исх.", "down": "Вх." diff --git a/packages/translation/src/lang/sk.json b/packages/translation/src/lang/sk.json index 207429c4d..7a0290e2d 100644 --- a/packages/translation/src/lang/sk.json +++ b/packages/translation/src/lang/sk.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Povolenie geografickej lokalizácie" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Zobraziť informácie o pamäti" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Zobraziť Uptime" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/sl.json b/packages/translation/src/lang/sl.json index c98da18f2..9f9c5edf7 100644 --- a/packages/translation/src/lang/sl.json +++ b/packages/translation/src/lang/sl.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Omogočanje zemljepisne lokacije" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/sv.json b/packages/translation/src/lang/sv.json index 38ac40bd7..47628f60b 100644 --- a/packages/translation/src/lang/sv.json +++ b/packages/translation/src/lang/sv.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Tillåt geografisk lokalisering" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Visa minnesinformation" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json index 732858cd4..8c889b755 100644 --- a/packages/translation/src/lang/tr.json +++ b/packages/translation/src/lang/tr.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Coğrafi konuma izin ver (geolocation)" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Bellek Bilgilerini Göster" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "Çalışma Süresini Göster" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "İşlemci", "memory": "Bellek", + "gpu": "", "network": "Ağ" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "İşlemci", "memory": "BELLEK", + "gpu": "", "network": "AĞ", "up": "YÜKLEME", "down": "İNDİRME" diff --git a/packages/translation/src/lang/uk.json b/packages/translation/src/lang/uk.json index 22c8bac56..72f827771 100644 --- a/packages/translation/src/lang/uk.json +++ b/packages/translation/src/lang/uk.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Дозволити геолокацію" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "Показати інформацію про пам'ять" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/vi.json b/packages/translation/src/lang/vi.json index 2a59c0256..acc948451 100644 --- a/packages/translation/src/lang/vi.json +++ b/packages/translation/src/lang/vi.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "Cho phép định vị" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" diff --git a/packages/translation/src/lang/zh.json b/packages/translation/src/lang/zh.json index 97bfe3b04..ed36577fc 100644 --- a/packages/translation/src/lang/zh.json +++ b/packages/translation/src/lang/zh.json @@ -1625,6 +1625,9 @@ }, "allowGeolocation": { "label": "允許地址位置" + }, + "allowModals": { + "label": "" } }, "error": { @@ -1858,6 +1861,9 @@ "memory": { "label": "顯示記憶體訊息" }, + "gpu": { + "label": "" + }, "showUptime": { "label": "" }, @@ -2725,6 +2731,7 @@ "option": { "cpu": "", "memory": "", + "gpu": "", "network": "" } }, @@ -2741,6 +2748,7 @@ "card": { "cpu": "", "memory": "", + "gpu": "", "network": "", "up": "", "down": "" From 9e0c3c0117b8776bac8d30b7a371955d1f7d0127 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:23:46 +0200 Subject: [PATCH 24/56] chore(deps): update pnpm to v10.33.0 (#5372) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- deployments/prebuilt-debian/package.json | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deployments/prebuilt-debian/package.json b/deployments/prebuilt-debian/package.json index bad01df98..e5e1dab70 100644 --- a/deployments/prebuilt-debian/package.json +++ b/deployments/prebuilt-debian/package.json @@ -4,10 +4,10 @@ "dependencies": { "better-sqlite3": "^12.6.2" }, - "packageManager": "pnpm@10.32.1", + "packageManager": "pnpm@10.33.0", "engines": { "node": ">=24.14.0", - "pnpm": ">=10.32.1" + "pnpm": ">=10.33.0" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/package.json b/package.json index 43665eea8..d5300d86e 100644 --- a/package.json +++ b/package.json @@ -59,10 +59,10 @@ "vite-tsconfig-paths": "^6.1.1", "vitest": "^4.1.1" }, - "packageManager": "pnpm@10.32.1", + "packageManager": "pnpm@10.33.0", "engines": { "node": ">=24.14.0", - "pnpm": ">=10.32.1" + "pnpm": ">=10.33.0" }, "pnpm": { "onlyBuiltDependencies": [ From 4aff9819e5cafca5bc36258feb3ec49aabc7f92f Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:24:09 +0200 Subject: [PATCH 25/56] chore(deps): update actions/create-github-app-token action to v3 (#5267) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .github/workflows/automatic-approval.yml | 2 +- .github/workflows/crowdin-schedule-download.yml | 2 +- .github/workflows/deployment-docker-image.yml | 4 ++-- .github/workflows/deployment-weekly-release.yml | 4 ++-- .github/workflows/on-release.yml | 4 ++-- .github/workflows/update-contributors.yml | 2 +- .github/workflows/update-integration-list.yml | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/automatic-approval.yml b/.github/workflows/automatic-approval.yml index a8a7b6feb..daee34a24 100644 --- a/.github/workflows/automatic-approval.yml +++ b/.github/workflows/automatic-approval.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@v6 - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} app-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} diff --git a/.github/workflows/crowdin-schedule-download.yml b/.github/workflows/crowdin-schedule-download.yml index fb0e1d7ba..4a176ca0f 100644 --- a/.github/workflows/crowdin-schedule-download.yml +++ b/.github/workflows/crowdin-schedule-download.yml @@ -19,7 +19,7 @@ jobs: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.CROWDIN_APP_PRIVATE_KEY }} app-id: ${{ secrets.CROWDIN_APP_ID }} diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 863a1a17d..d93618628 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -50,7 +50,7 @@ jobs: - name: Obtain token if: env.SKIP_RELEASE == 'false' id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} @@ -231,7 +231,7 @@ jobs: - name: Obtain token if: needs.release.outputs.skipped == 'false' id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} diff --git a/.github/workflows/deployment-weekly-release.yml b/.github/workflows/deployment-weekly-release.yml index 869894a15..37d0c4364 100644 --- a/.github/workflows/deployment-weekly-release.yml +++ b/.github/workflows/deployment-weekly-release.yml @@ -50,7 +50,7 @@ jobs: args: "Created a release PR ${{ steps.create-pull-request.outputs.url }} for version ${{ steps.semver.outputs.next }} (new behaviour: ${{ steps.semver.outputs.bump }})" - name: Obtain token id: obtainApprovalToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} app-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} @@ -62,7 +62,7 @@ jobs: gh pr review --approve --body "Automatically approved by GitHub Action" - name: Obtain token id: obtainMergeToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} diff --git a/.github/workflows/on-release.yml b/.github/workflows/on-release.yml index f5042d42f..f667d2669 100644 --- a/.github/workflows/on-release.yml +++ b/.github/workflows/on-release.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.HOMARR_DOCS_RELEASE_APP_PRIVATE_KEY }} app-id: ${{ vars.HOMARR_DOCS_RELEASE_APP_ID }} @@ -45,7 +45,7 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} diff --git a/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml index 870800a7a..feb22c52f 100644 --- a/.github/workflows/update-contributors.yml +++ b/.github/workflows/update-contributors.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.HOMARR_UPDATE_CONTRIBUTORS_PRIVATE_KEY }} app-id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} diff --git a/.github/workflows/update-integration-list.yml b/.github/workflows/update-integration-list.yml index 35e012c16..204246d7b 100644 --- a/.github/workflows/update-integration-list.yml +++ b/.github/workflows/update-integration-list.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: private-key: ${{ secrets.HOMARR_UPDATE_CONTRIBUTORS_PRIVATE_KEY }} app-id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} From b07c545f17f4dafa62167047baa9eed4b7ee4395 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:43:58 +0200 Subject: [PATCH 26/56] fix(deps): update dependency node-ical to ^0.23.1 - abandoned (#4856) * fix(deps): update dependency node-ical to ^0.23.1 * fix: date from node-ical represents utc value --------- Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas --- packages/integrations/package.json | 2 +- .../src/nextcloud/nextcloud.integration.ts | 5 +-- pnpm-lock.yaml | 34 +++++++++++++------ 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index eedb34ecf..e5f2b93e4 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -43,7 +43,7 @@ "@octokit/auth-app": "^8.2.0", "ical.js": "^2.2.1", "maria2": "^0.4.1", - "node-ical": "^0.22.1", + "node-ical": "^0.23.1", "octokit": "^5.0.5", "proxmox-api": "1.1.1", "tsdav": "^2.1.8", diff --git a/packages/integrations/src/nextcloud/nextcloud.integration.ts b/packages/integrations/src/nextcloud/nextcloud.integration.ts index 531191cf6..5c8aabc90 100644 --- a/packages/integrations/src/nextcloud/nextcloud.integration.ts +++ b/packages/integrations/src/nextcloud/nextcloud.integration.ts @@ -87,10 +87,7 @@ export class NextcloudIntegration extends Integration implements ICalendarIntegr const durationMs = veventObject.end.getTime() - veventObject.start.getTime(); return startDates.map((startDate) => { - const timezoneOffsetMinutes = veventObject.rrule?.origOptions.tzid - ? dayjs(startDate).tz(veventObject.rrule.origOptions.tzid).utcOffset() - : 0; - const utcStartDate = new Date(startDate.getTime() - timezoneOffsetMinutes * 60 * 1000); + const utcStartDate = dayjs(startDate).tz("UTC").toDate(); const endDate = new Date(utcStartDate.getTime() + durationMs); const dateInMillis = utcStartDate.valueOf(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fc8bca3d..cd8ecb847 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1481,8 +1481,8 @@ importers: specifier: ^0.4.1 version: 0.4.1 node-ical: - specifier: ^0.22.1 - version: 0.22.1 + specifier: ^0.23.1 + version: 0.23.1 octokit: specifier: ^5.0.5 version: 5.0.5 @@ -3704,6 +3704,10 @@ packages: '@js-sdsl/ordered-map@4.4.2': resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + '@js-temporal/polyfill@0.5.1': + resolution: {integrity: sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==} + engines: {node: '>=12'} + '@jsep-plugin/assignment@1.3.0': resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} engines: {node: '>= 10.16.0'} @@ -7866,6 +7870,9 @@ packages: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true + jsbi@4.3.2: + resolution: {integrity: sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==} + jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} @@ -8519,8 +8526,8 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-ical@0.22.1: - resolution: {integrity: sha512-rMdc5hhJT3ZPtZIWfEXcetRrPl2xeHGpMJX8lq4VwyLKfOzGr+rXVtx0lD8lSf27Hn3mxrbU3MUcMSMXp4rIQA==} + node-ical@0.23.1: + resolution: {integrity: sha512-4+FON2u++r7vU9VfTCris9hgxS5darN4P7aQZOJkzDazXLRS7cExb0G5OWO3CzRs8gHd5um1fdSMF0e45f7xAg==} engines: {node: '>=18'} node-loader@2.1.0: @@ -9558,8 +9565,8 @@ packages: rrdom@0.1.7: resolution: {integrity: sha512-ZLd8f14z9pUy2Hk9y636cNv5Y2BMnNEY99wxzW9tD2BLDfe1xFxtLjB4q/xCBYo6HRe0wofzKzjm4JojmpBfFw==} - rrule@2.8.1: - resolution: {integrity: sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==} + rrule-temporal@1.3.0: + resolution: {integrity: sha512-0duSf+wBX4FKNpznFDecEDkIzdoP7n3++Lt9TPpImhaRtENsa/qd3EhpV5Fi1TxVvBFN4ayOXVrK0aPvt+a80g==} rrweb-player@1.0.0-alpha.4: resolution: {integrity: sha512-Wlmn9GZ5Fdqa37vd3TzsYdLl/JWEvXNUrLCrYpnOwEgmY409HwVIvvA5aIo7k582LoKgdRCsB87N+f0oWAR0Kg==} @@ -12213,6 +12220,10 @@ snapshots: '@js-sdsl/ordered-map@4.4.2': {} + '@js-temporal/polyfill@0.5.1': + dependencies: + jsbi: 4.3.2 + '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': dependencies: jsep: 1.4.0 @@ -17062,6 +17073,8 @@ snapshots: dependencies: argparse: 2.0.1 + jsbi@4.3.2: {} + jsbn@1.1.0: {} jsdom@28.1.0(@noble/hashes@2.0.1): @@ -17849,9 +17862,10 @@ snapshots: node-gyp-build@4.8.4: {} - node-ical@0.22.1: + node-ical@0.23.1: dependencies: - rrule: 2.8.1 + '@js-temporal/polyfill': 0.5.1 + rrule-temporal: 1.3.0 node-loader@2.1.0(webpack@5.94.0): dependencies: @@ -18961,9 +18975,9 @@ snapshots: dependencies: rrweb-snapshot: 2.0.0-alpha.4 - rrule@2.8.1: + rrule-temporal@1.3.0: dependencies: - tslib: 2.8.1 + '@js-temporal/polyfill': 0.5.1 rrweb-player@1.0.0-alpha.4: dependencies: From b71718be0950aa3a3fcb2afc708c50db62f3f6ee Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 20:52:12 +0000 Subject: [PATCH 27/56] chore(deps): update dependency proxmox-api>undici to v7.24.6 (#5373) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 ++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index d5300d86e..7f70ac9d9 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "linkifyjs@<4.3.2": ">=4.3.2", "nanoid@>=4.0.0 <5.0.9": ">=5.1.7", "prismjs@<1.30.0": ">=1.30.0", - "proxmox-api>undici": "7.24.5", + "proxmox-api>undici": "7.24.6", "react-is": "^19.2.4", "rollup@>=4.0.0 <4.22.4": ">=4.60.0", "sha.js@<=2.4.11": ">=2.4.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd8ecb847..129e2bc33 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ overrides: linkifyjs@<4.3.2: '>=4.3.2' nanoid@>=4.0.0 <5.0.9: '>=5.1.7' prismjs@<1.30.0: '>=1.30.0' - proxmox-api>undici: 7.24.5 + proxmox-api>undici: 7.24.6 react-is: ^19.2.4 rollup@>=4.0.0 <4.22.4: '>=4.60.0' sha.js@<=2.4.11: '>=2.4.12' @@ -10438,10 +10438,6 @@ packages: resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} engines: {node: '>=18.17'} - undici@7.24.5: - resolution: {integrity: sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==} - engines: {node: '>=20.18.1'} - undici@7.24.6: resolution: {integrity: sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==} engines: {node: '>=20.18.1'} @@ -18507,7 +18503,7 @@ snapshots: proxmox-api@1.1.1: dependencies: - undici: 7.24.5 + undici: 7.24.6 proxy-from-env@1.1.0: {} @@ -20099,8 +20095,6 @@ snapshots: undici@6.23.0: {} - undici@7.24.5: {} - undici@7.24.6: {} unicode-emoji-modifier-base@1.0.0: {} From cc153fff1070f34eada004a8c2f9bfa1270a80e5 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:53:20 +0200 Subject: [PATCH 28/56] chore(deps): update dependency jsdom to v29 (#5274) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 194 +++---------------------------------------------- 2 files changed, 13 insertions(+), 183 deletions(-) diff --git a/package.json b/package.json index 7f70ac9d9..34db5ad8d 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@vitest/ui": "^4.1.1", "conventional-changelog-conventionalcommits": "^9.3.0", "cross-env": "^10.1.0", - "jsdom": "^28.1.0", + "jsdom": "^29.0.1", "json5": "^2.2.3", "prettier": "^3.8.1", "semantic-release": "^25.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 129e2bc33..7bcf95808 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: ^10.1.0 version: 10.1.0 jsdom: - specifier: ^28.1.0 - version: 28.1.0(@noble/hashes@2.0.1) + specifier: ^29.0.1 + version: 29.0.1(@noble/hashes@2.0.1) json5: specifier: ^2.2.3 version: 2.2.3 @@ -105,7 +105,7 @@ importers: version: 6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) vitest: specifier: ^4.1.1 - version: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + version: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) apps/nextjs: dependencies: @@ -2420,9 +2420,6 @@ importers: packages: - '@acemir/cssom@0.9.31': - resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==} - '@actions/core@3.0.0': resolution: {integrity: sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==} @@ -2449,16 +2446,10 @@ packages: '@ark/util@0.46.0': resolution: {integrity: sha512-JPy/NGWn/lvf1WmGCPw2VGpBg5utZraE84I7wli18EDF3p3zc/e9WolT35tINeZO3l7C77SjqRJeAUoT0CvMRg==} - '@asamuzakjp/css-color@4.1.2': - resolution: {integrity: sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==} - '@asamuzakjp/css-color@5.0.1': resolution: {integrity: sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@asamuzakjp/dom-selector@6.8.1': - resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==} - '@asamuzakjp/dom-selector@7.0.3': resolution: {integrity: sha512-Q6mU0Z6bfj6YvnX2k9n0JxiIwrCFN59x/nWmYQnAqP000ruX/yV+5bp/GRcF5T8ncvfwJQ7fgfP74DlpKExILA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -2728,21 +2719,10 @@ packages: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - '@csstools/color-helpers@6.0.1': - resolution: {integrity: sha512-NmXRccUJMk2AWA5A7e5a//3bCIMyOu2hAtdRYrhPPHjDxINuCwX1w6rnIZ4xjLcp0ayv6h8Pc3X0eJUGiAAXHQ==} - engines: {node: '>=20.19.0'} - '@csstools/color-helpers@6.0.2': resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} engines: {node: '>=20.19.0'} - '@csstools/css-calc@3.0.0': - resolution: {integrity: sha512-q4d82GTl8BIlh/dTnVsWmxnbWJeb3kiU8eUH71UxlxnS+WIaALmtzTL8gR15PkYOexMQYVk0CO4qIG93C1IvPA==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.0 - '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-calc@3.1.1': resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==} engines: {node: '>=20.19.0'} @@ -2750,13 +2730,6 @@ packages: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.0.1': - resolution: {integrity: sha512-vYwO15eRBEkeF6xjAno/KQ61HacNhfQuuU/eGwH67DplL0zD5ZixUa563phQvUelA07yDczIXdtmYojCphKJcw==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.0 - '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.0.2': resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} engines: {node: '>=20.19.0'} @@ -2770,9 +2743,6 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.0.26': - resolution: {integrity: sha512-6boXK0KkzT5u5xOgF6TKB+CLq9SOpEGmkZw0g5n9/7yg85wab3UzSxB8TxhLJ31L4SGJ6BCFRw/iftTha1CJXA==} - '@csstools/css-syntax-patches-for-csstree@1.1.1': resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} peerDependencies: @@ -3222,15 +3192,6 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@exodus/bytes@1.11.0': - resolution: {integrity: sha512-wO3vd8nsEHdumsXrjGO/v4p6irbg7hy9kvIeR6i2AwylZSk4HJdWgL0FNaVquW1+AweJcdvU1IEpuIWk/WaPnA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - '@noble/hashes': ^1.8.0 || ^2.0.0 - peerDependenciesMeta: - '@noble/hashes': - optional: true - '@exodus/bytes@1.15.0': resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -6174,10 +6135,6 @@ packages: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} - css-tree@3.1.0: - resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-tree@3.2.1: resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -6190,10 +6147,6 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@6.0.1: - resolution: {integrity: sha512-IoJs7La+oFp/AB033wBStxNOJt4+9hHMxsXUPANcoXL2b3W4DZKghlJ2cI/eyeRZIQ9ysvYEorVhjrcYctWbog==} - engines: {node: '>=20'} - csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -7876,15 +7829,6 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdom@28.1.0: - resolution: {integrity: sha512-0+MoQNYyr2rBHqO1xilltfDjV9G7ymYGlAUazgcDLQaUf8JDHbuGwsxN6U9qWaElZ4w1B2r7yEGIL3GdeW3Rug==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - canvas: ^3.0.0 - peerDependenciesMeta: - canvas: - optional: true - jsdom@29.0.1: resolution: {integrity: sha512-z6JOK5gRO7aMybVq/y/MlIpKh8JIi68FBKMUtKkK2KH/wMSRlCxQ682d08LB9fYXplyY/UXG8P4XXTScmdjApg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} @@ -8082,14 +8026,6 @@ packages: resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} engines: {node: 20 || >=22} - lru-cache@11.2.5: - resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} - engines: {node: 20 || >=22} - - lru-cache@11.2.6: - resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} - engines: {node: 20 || >=22} - lru-cache@11.2.7: resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} @@ -8185,9 +8121,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.12.2: - resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdn-data@2.27.1: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} @@ -10204,10 +10137,6 @@ packages: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} - tough-cookie@6.0.0: - resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} - engines: {node: '>=16'} - tough-cookie@6.0.1: resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} engines: {node: '>=16'} @@ -10771,10 +10700,6 @@ packages: resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} engines: {node: '>=20'} - whatwg-url@16.0.0: - resolution: {integrity: sha512-9CcxtEKsf53UFwkSUZjG+9vydAsFO4lFHBpJUtjBcoJOCJpKnSJNwCw813zrYJHpCJ7sgfbtOe0V5Ku7Pa1XMQ==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - whatwg-url@16.0.1: resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -11024,8 +10949,6 @@ packages: snapshots: - '@acemir/cssom@0.9.31': {} - '@actions/core@3.0.0': dependencies: '@actions/exec': 3.0.0 @@ -11057,14 +10980,6 @@ snapshots: '@ark/util@0.46.0': optional: true - '@asamuzakjp/css-color@4.1.2': - dependencies: - '@csstools/css-calc': 3.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 - lru-cache: 11.2.7 - '@asamuzakjp/css-color@5.0.1': dependencies: '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) @@ -11073,14 +10988,6 @@ snapshots: '@csstools/css-tokenizer': 4.0.0 lru-cache: 11.2.7 - '@asamuzakjp/dom-selector@6.8.1': - dependencies: - '@asamuzakjp/nwsapi': 2.3.9 - bidi-js: 1.0.3 - css-tree: 3.1.0 - is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.6 - '@asamuzakjp/dom-selector@7.0.3': dependencies: '@asamuzakjp/nwsapi': 2.3.9 @@ -11398,7 +11305,7 @@ snapshots: '@bramus/specificity@2.4.2': dependencies: - css-tree: 3.1.0 + css-tree: 3.2.1 '@clack/core@0.3.5': dependencies: @@ -11422,27 +11329,13 @@ snapshots: '@colors/colors@1.6.0': {} - '@csstools/color-helpers@6.0.1': {} - '@csstools/color-helpers@6.0.2': {} - '@csstools/css-calc@3.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': - dependencies: - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-color-parser@4.0.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': - dependencies: - '@csstools/color-helpers': 6.0.1 - '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/color-helpers': 6.0.2 @@ -11454,8 +11347,6 @@ snapshots: dependencies: '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.0.26': {} - '@csstools/css-syntax-patches-for-csstree@1.1.1(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 @@ -11775,10 +11666,6 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@exodus/bytes@1.11.0(@noble/hashes@2.0.1)': - optionalDependencies: - '@noble/hashes': 2.0.1 - '@exodus/bytes@1.15.0(@noble/hashes@2.0.1)': optionalDependencies: '@noble/hashes': 2.0.1 @@ -14220,7 +14107,7 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.0.3 - vitest: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + vitest: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) '@vitest/expect@4.1.1': dependencies: @@ -14266,7 +14153,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vitest: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + vitest: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) '@vitest/utils@4.1.1': dependencies: @@ -15161,11 +15048,6 @@ snapshots: dependencies: type-fest: 1.4.0 - css-tree@3.1.0: - dependencies: - mdn-data: 2.12.2 - source-map-js: 1.2.1 - css-tree@3.2.1: dependencies: mdn-data: 2.27.1 @@ -15175,13 +15057,6 @@ snapshots: cssesc@3.0.0: {} - cssstyle@6.0.1: - dependencies: - '@asamuzakjp/css-color': 4.1.2 - '@csstools/css-syntax-patches-for-csstree': 1.0.26 - css-tree: 3.1.0 - lru-cache: 11.2.5 - csstype@3.2.3: {} d3-array@3.2.4: @@ -15227,7 +15102,7 @@ snapshots: data-urls@7.0.0(@noble/hashes@2.0.1): dependencies: whatwg-mimetype: 5.0.0 - whatwg-url: 16.0.0(@noble/hashes@2.0.1) + whatwg-url: 16.0.1(@noble/hashes@2.0.1) transitivePeerDependencies: - '@noble/hashes' @@ -16585,13 +16460,13 @@ snapshots: hosted-git-info@9.0.2: dependencies: - lru-cache: 11.2.4 + lru-cache: 11.2.7 hpagent@1.2.0: {} html-encoding-sniffer@6.0.0(@noble/hashes@2.0.1): dependencies: - '@exodus/bytes': 1.11.0(@noble/hashes@2.0.1) + '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) transitivePeerDependencies: - '@noble/hashes' @@ -17073,33 +16948,6 @@ snapshots: jsbn@1.1.0: {} - jsdom@28.1.0(@noble/hashes@2.0.1): - dependencies: - '@acemir/cssom': 0.9.31 - '@asamuzakjp/dom-selector': 6.8.1 - '@bramus/specificity': 2.4.2 - '@exodus/bytes': 1.11.0(@noble/hashes@2.0.1) - cssstyle: 6.0.1 - data-urls: 7.0.0(@noble/hashes@2.0.1) - decimal.js: 10.6.0 - html-encoding-sniffer: 6.0.0(@noble/hashes@2.0.1) - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - is-potential-custom-element-name: 1.0.1 - parse5: 8.0.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 6.0.0 - undici: 7.24.6 - w3c-xmlserializer: 5.0.0 - webidl-conversions: 8.0.1 - whatwg-mimetype: 5.0.0 - whatwg-url: 16.0.0(@noble/hashes@2.0.1) - xml-name-validator: 5.0.0 - transitivePeerDependencies: - - '@noble/hashes' - - supports-color - jsdom@29.0.1(@noble/hashes@2.0.1): dependencies: '@asamuzakjp/css-color': 5.0.1 @@ -17298,10 +17146,6 @@ snapshots: lru-cache@11.2.4: {} - lru-cache@11.2.5: {} - - lru-cache@11.2.6: {} - lru-cache@11.2.7: {} lru-cache@5.1.1: @@ -17468,8 +17312,6 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdn-data@2.12.2: {} - mdn-data@2.27.1: {} mdurl@2.0.0: {} @@ -18153,7 +17995,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.2.6 + lru-cache: 11.2.7 minipass: 7.1.3 path-type@4.0.0: {} @@ -19832,10 +19674,6 @@ snapshots: dependencies: tldts: 6.1.69 - tough-cookie@6.0.0: - dependencies: - tldts: 7.0.12 - tough-cookie@6.0.1: dependencies: tldts: 7.0.12 @@ -20356,7 +20194,7 @@ snapshots: tsx: 4.21.0 yaml: 2.5.1 - vitest@4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)): + vitest@4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)): dependencies: '@vitest/expect': 4.1.1 '@vitest/mocker': 4.1.1(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) @@ -20381,7 +20219,7 @@ snapshots: optionalDependencies: '@types/node': 24.12.0 '@vitest/ui': 4.1.1(vitest@4.1.1) - jsdom: 28.1.0(@noble/hashes@2.0.1) + jsdom: 29.0.1(@noble/hashes@2.0.1) transitivePeerDependencies: - msw @@ -20443,14 +20281,6 @@ snapshots: whatwg-mimetype@5.0.0: {} - whatwg-url@16.0.0(@noble/hashes@2.0.1): - dependencies: - '@exodus/bytes': 1.11.0(@noble/hashes@2.0.1) - tr46: 6.0.0 - webidl-conversions: 8.0.1 - transitivePeerDependencies: - - '@noble/hashes' - whatwg-url@16.0.1(@noble/hashes@2.0.1): dependencies: '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) From c19766e53fbd1f379cb435c91595a80e5b56193b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:58:28 +0200 Subject: [PATCH 29/56] chore(deps): update docker/build-push-action action to v7 (#5208) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .github/actions/prebuilt-debian/action.yaml | 2 +- .github/workflows/code-quality.yml | 2 +- .github/workflows/deployment-docker-image.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/actions/prebuilt-debian/action.yaml b/.github/actions/prebuilt-debian/action.yaml index 9770a7eb1..9a3b4a51c 100644 --- a/.github/actions/prebuilt-debian/action.yaml +++ b/.github/actions/prebuilt-debian/action.yaml @@ -19,7 +19,7 @@ runs: - name: Build docker image for ${{ inputs.architecture }} id: build - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: push: false load: true diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index eeaec94f2..a61ef630a 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -89,7 +89,7 @@ jobs: uses: ./tooling/github/setup - name: Build docker image id: build-docker-image - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: platforms: linux/amd64 context: . diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index d93618628..949c38d60 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -139,7 +139,7 @@ jobs: - name: Build and push by digest id: build - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: . network: host @@ -178,7 +178,7 @@ jobs: - name: Build and push by digest id: build - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: . network: host From eb5dd3628a65c84282ce682faf394210af201440 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:58:37 +0200 Subject: [PATCH 30/56] chore(deps): update docker/metadata-action action to v6 (#5207) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .github/workflows/deployment-docker-image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 949c38d60..f02c77780 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -123,7 +123,7 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: "${{ env.GHCR_REPO }}" @@ -162,7 +162,7 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: "${{ env.GHCR_REPO }}" From 336c55b3e944272df839a008d2c82bee93bf451b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:58:47 +0200 Subject: [PATCH 31/56] chore(deps): update docker/setup-buildx-action action to v4 (#5200) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .github/actions/prebuilt-debian/action.yaml | 2 +- .github/workflows/deployment-docker-image.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/prebuilt-debian/action.yaml b/.github/actions/prebuilt-debian/action.yaml index 9a3b4a51c..af1b7fdad 100644 --- a/.github/actions/prebuilt-debian/action.yaml +++ b/.github/actions/prebuilt-debian/action.yaml @@ -15,7 +15,7 @@ runs: with: persist-credentials: false - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build docker image for ${{ inputs.architecture }} id: build diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index f02c77780..6c2ad9d88 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -135,7 +135,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build and push by digest id: build @@ -174,7 +174,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build and push by digest id: build From 2b4c83dccac168ffa6f9b6e184ed004659373cf7 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 23:11:14 +0200 Subject: [PATCH 32/56] fix(deps): update dependency zod to ^4.3.5 - abandoned (#4803) * fix(deps): update dependency zod to ^4.3.5 * fix: omit can not be used with refine * fix: convert intersection to object due to trpc-openapi issue * fix: remove omit after refine --------- Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas --- apps/nextjs/package.json | 2 +- packages/api/package.json | 2 +- packages/api/src/router/user.ts | 4 +- packages/auth/package.json | 2 +- packages/common/package.json | 2 +- packages/core/package.json | 2 +- packages/cron-job-api/package.json | 2 +- packages/definitions/package.json | 2 +- packages/form/package.json | 2 +- packages/forms-collection/package.json | 2 +- packages/integrations/package.json | 2 +- packages/modals-collection/package.json | 2 +- packages/old-import/package.json | 2 +- packages/old-schema/package.json | 2 +- packages/request-handler/package.json | 2 +- packages/validation/package.json | 2 +- packages/validation/src/user.ts | 16 +-- packages/widgets/package.json | 2 +- pnpm-lock.yaml | 130 ++++++++++++------------ 19 files changed, 93 insertions(+), 89 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 04aefe9a4..2ee558537 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -87,7 +87,7 @@ "superjson": "2.2.6", "swagger-ui-react": "^5.32.1", "use-deep-compare-effect": "^1.8.1", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/api/package.json b/packages/api/package.json index 7c9b61fe4..cd25ae6a2 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -52,7 +52,7 @@ "react-dom": "19.2.4", "superjson": "2.2.6", "trpc-to-openapi": "^3.2.0", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/api/src/router/user.ts b/packages/api/src/router/user.ts index 8dd182cfd..954a79815 100644 --- a/packages/api/src/router/user.ts +++ b/packages/api/src/router/user.ts @@ -145,7 +145,7 @@ export const userRouter = createTRPCRouter({ create: permissionRequiredProcedure .requiresPermission("admin") .meta({ openapi: { method: "POST", path: "/api/users", tags: ["users"], protect: true } }) - .input(userCreateSchema) + .input(convertIntersectionToZodObject(userCreateSchema)) .output(z.void()) .mutation(async ({ ctx, input }) => { throwIfCredentialsDisabled(); @@ -376,7 +376,7 @@ export const userRouter = createTRPCRouter({ await ctx.db.delete(users).where(eq(users.id, input.userId)); }), changePassword: protectedProcedure - .input(userChangePasswordApiSchema) + .input(convertIntersectionToZodObject(userChangePasswordApiSchema)) .output(z.void()) .meta({ openapi: { method: "PATCH", path: "/api/users/{userId}/changePassword", tags: ["users"], protect: true } }) .mutation(async ({ ctx, input }) => { diff --git a/packages/auth/package.json b/packages/auth/package.json index b53e67f55..d0f3342e4 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -38,7 +38,7 @@ "next-auth": "5.0.0-beta.30", "react": "19.2.4", "react-dom": "19.2.4", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/common/package.json b/packages/common/package.json index 9c841f0e7..dff3ac1e1 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -35,7 +35,7 @@ "react": "19.2.4", "react-dom": "19.2.4", "undici": "7.24.6", - "zod": "^4.2.1", + "zod": "^4.3.5", "zod-validation-error": "^5.0.0" }, "devDependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index af0d31a56..f638db3a3 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -46,7 +46,7 @@ "pg": "^8.20.0", "superjson": "2.2.6", "winston": "3.19.0", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index 0f4ffe144..989638a66 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -34,7 +34,7 @@ "@trpc/tanstack-react-query": "^11.15.0", "node-cron": "^4.2.1", "react": "19.2.4", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/definitions/package.json b/packages/definitions/package.json index 5bc7401aa..ccf6c70be 100644 --- a/packages/definitions/package.json +++ b/packages/definitions/package.json @@ -25,7 +25,7 @@ "dependencies": { "@homarr/common": "workspace:^0.1.0", "fast-xml-parser": "^5.5.9", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/form/package.json b/packages/form/package.json index 3e404dbe1..05ad74063 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -28,7 +28,7 @@ "@homarr/validation": "workspace:^0.1.0", "@mantine/form": "^8.3.18", "mantine-form-zod-resolver": "^1.3.0", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/forms-collection/package.json b/packages/forms-collection/package.json index 4fd35b4db..6e5e8784c 100644 --- a/packages/forms-collection/package.json +++ b/packages/forms-collection/package.json @@ -32,7 +32,7 @@ "@homarr/validation": "workspace:^0.1.0", "@mantine/core": "^8.3.18", "react": "19.2.4", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/integrations/package.json b/packages/integrations/package.json index e5f2b93e4..9d3c87c89 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -49,7 +49,7 @@ "tsdav": "^2.1.8", "undici": "7.24.6", "xml2js": "^0.6.2", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/modals-collection/package.json b/packages/modals-collection/package.json index 72b7845ad..2e832d6d8 100644 --- a/packages/modals-collection/package.json +++ b/packages/modals-collection/package.json @@ -39,7 +39,7 @@ "next": "16.2.1", "react": "19.2.4", "react-dom": "19.2.4", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/old-import/package.json b/packages/old-import/package.json index df86a28b2..338768f01 100644 --- a/packages/old-import/package.json +++ b/packages/old-import/package.json @@ -44,7 +44,7 @@ "react": "19.2.4", "react-dom": "19.2.4", "superjson": "2.2.6", - "zod": "^4.2.1", + "zod": "^4.3.5", "zod-form-data": "^3.0.1" }, "devDependencies": { diff --git a/packages/old-schema/package.json b/packages/old-schema/package.json index 0c3b01d24..4d814253e 100644 --- a/packages/old-schema/package.json +++ b/packages/old-schema/package.json @@ -23,7 +23,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/request-handler/package.json b/packages/request-handler/package.json index cf6f14cb7..d4291bc43 100644 --- a/packages/request-handler/package.json +++ b/packages/request-handler/package.json @@ -34,7 +34,7 @@ "octokit": "^5.0.5", "superjson": "2.2.6", "undici": "7.24.6", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/validation/package.json b/packages/validation/package.json index 7b91a5d3e..c92eb6764 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -24,7 +24,7 @@ "dependencies": { "@homarr/definitions": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", - "zod": "^4.2.1", + "zod": "^4.3.5", "zod-form-data": "^3.0.1" }, "devDependencies": { diff --git a/packages/validation/src/user.ts b/packages/validation/src/user.ts index c00d9226d..6baaf8150 100644 --- a/packages/validation/src/user.ts +++ b/packages/validation/src/user.ts @@ -57,12 +57,13 @@ export const userBaseCreateSchema = z.object({ password: userPasswordSchema, confirmPassword: z.string(), email: z.string().email().or(z.string().length(0)).optional(), - groupIds: z.array(z.string()), }); -export const userCreateSchema = addConfirmPasswordRefinement(userBaseCreateSchema); +export const userCreateSchema = addConfirmPasswordRefinement(userBaseCreateSchema).and( + z.object({ groupIds: z.array(z.string()) }), +); -export const userInitSchema = addConfirmPasswordRefinement(userBaseCreateSchema.omit({ groupIds: true })); +export const userInitSchema = addConfirmPasswordRefinement(userBaseCreateSchema); export const userSignInSchema = z.object({ name: z.string().min(1), @@ -111,12 +112,15 @@ const baseChangePasswordSchema = z.object({ previousPassword: z.string().min(1), password: userPasswordSchema, confirmPassword: z.string(), - userId: z.string(), }); -export const userChangePasswordSchema = addConfirmPasswordRefinement(baseChangePasswordSchema.omit({ userId: true })); +export const userChangePasswordSchema = addConfirmPasswordRefinement(baseChangePasswordSchema); -export const userChangePasswordApiSchema = addConfirmPasswordRefinement(baseChangePasswordSchema); +export const userChangePasswordApiSchema = addConfirmPasswordRefinement(baseChangePasswordSchema).and( + z.object({ + userId: z.string(), + }), +); export const userChangeHomeBoardsSchema = z.object({ homeBoardId: z.string().nullable(), diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 206d0f2d0..dd8d61aae 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -78,7 +78,7 @@ "react-markdown": "^10.1.0", "recharts": "^2.15.4", "video.js": "^8.23.7", - "zod": "^4.2.1" + "zod": "^4.3.5" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7bcf95808..01a7c5e07 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -326,8 +326,8 @@ importers: specifier: ^1.8.1 version: 1.8.1(react@19.2.4) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -670,10 +670,10 @@ importers: version: 2.2.6 trpc-to-openapi: specifier: ^3.2.0 - version: 3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.2.1))(zod@4.2.1) + version: 3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.5))(zod@4.3.5) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -739,8 +739,8 @@ importers: specifier: 19.2.4 version: 19.2.4(react@19.2.4) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -865,11 +865,11 @@ importers: specifier: 7.24.6 version: 7.24.6 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 zod-validation-error: specifier: ^5.0.0 - version: 5.0.0(zod@4.2.1) + version: 5.0.0(zod@4.3.5) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -891,7 +891,7 @@ importers: dependencies: '@t3-oss/env-nextjs': specifier: ^0.13.11 - version: 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.2.1) + version: 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.5) better-sqlite3: specifier: ^12.6.2 version: 12.6.2 @@ -917,8 +917,8 @@ importers: specifier: 3.19.0 version: 3.19.0 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -972,8 +972,8 @@ importers: specifier: 19.2.4 version: 19.2.4 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1166,7 +1166,7 @@ importers: version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.2.1) + version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.5) mysql2: specifier: 3.20.0 version: 3.20.0(@types/node@24.12.0) @@ -1220,8 +1220,8 @@ importers: specifier: ^5.5.9 version: 5.5.9 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1289,10 +1289,10 @@ importers: version: 8.3.18(react@19.2.4) mantine-form-zod-resolver: specifier: ^1.3.0 - version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.2.1) + version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.5) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1343,8 +1343,8 @@ importers: specifier: 19.2.4 version: 19.2.4 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1499,8 +1499,8 @@ importers: specifier: ^0.6.2 version: 0.6.2 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1612,8 +1612,8 @@ importers: specifier: 19.2.4 version: 19.2.4(react@19.2.4) zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1716,11 +1716,11 @@ importers: specifier: 2.2.6 version: 2.2.6 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 zod-form-data: specifier: ^3.0.1 - version: 3.0.1(zod@4.2.1) + version: 3.0.1(zod@4.3.5) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1747,8 +1747,8 @@ importers: specifier: workspace:^0.1.0 version: link:../common zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1867,8 +1867,8 @@ importers: specifier: 7.24.6 version: 7.24.6 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2149,11 +2149,11 @@ importers: specifier: workspace:^0.1.0 version: link:../translation zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 zod-form-data: specifier: ^3.0.1 - version: 3.0.1(zod@4.2.1) + version: 3.0.1(zod@4.3.5) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2310,7 +2310,7 @@ importers: version: 1.11.20 mantine-form-zod-resolver: specifier: ^1.3.0 - version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.2.1) + version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.5) mantine-react-table: specifier: 2.0.0-beta.9 version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -2333,8 +2333,8 @@ importers: specifier: ^8.23.7 version: 8.23.7 zod: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -10941,8 +10941,8 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@4.2.1: - resolution: {integrity: sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==} + zod@4.3.5: + resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -13318,19 +13318,19 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@t3-oss/env-core@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.2.1)': + '@t3-oss/env-core@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.5)': optionalDependencies: arktype: 2.1.20 typescript: 5.9.3 - zod: 4.2.1 + zod: 4.3.5 - '@t3-oss/env-nextjs@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.2.1)': + '@t3-oss/env-nextjs@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.5)': dependencies: - '@t3-oss/env-core': 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.2.1) + '@t3-oss/env-core': 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.5) optionalDependencies: arktype: 2.1.20 typescript: 5.9.3 - zod: 4.2.1 + zod: 4.3.5 '@tabler/icons-react@3.40.0(react@19.2.4)': dependencies: @@ -15317,10 +15317,10 @@ snapshots: mysql2: 3.20.0(@types/node@24.12.0) pg: 8.20.0 - drizzle-zod@0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.2.1): + drizzle-zod@0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.5): dependencies: drizzle-orm: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) - zod: 4.2.1 + zod: 4.3.5 dunder-proto@1.0.1: dependencies: @@ -15796,8 +15796,8 @@ snapshots: '@babel/core': 7.28.4 '@babel/parser': 7.28.4 eslint: 9.39.4 - zod: 4.2.1 - zod-validation-error: 4.0.2(zod@4.2.1) + zod: 4.3.5 + zod-validation-error: 4.0.2(zod@4.3.5) transitivePeerDependencies: - supports-color @@ -17178,10 +17178,10 @@ snapshots: dependencies: semver: 7.7.4 - mantine-form-zod-resolver@1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.2.1): + mantine-form-zod-resolver@1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.5): dependencies: '@mantine/form': 8.3.18(react@19.2.4) - zod: 4.2.1 + zod: 4.3.5 mantine-react-table@2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: @@ -19714,14 +19714,14 @@ snapshots: trough@2.2.0: {} - trpc-to-openapi@3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.2.1))(zod@4.2.1): + trpc-to-openapi@3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.5))(zod@4.3.5): dependencies: '@trpc/server': 11.15.0(typescript@5.9.3) co-body: 6.2.0 h3: 1.15.1 openapi3-ts: 4.4.0 - zod: 4.2.1 - zod-openapi: 5.3.0(zod@4.2.1) + zod: 4.3.5 + zod-openapi: 5.3.0(zod@4.3.5) optionalDependencies: '@rollup/rollup-linux-x64-gnu': 4.6.1 @@ -20534,23 +20534,23 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 - zod-form-data@3.0.1(zod@4.2.1): + zod-form-data@3.0.1(zod@4.3.5): dependencies: '@rvf/set-get': 7.0.1 - zod: 4.2.1 + zod: 4.3.5 - zod-openapi@5.3.0(zod@4.2.1): + zod-openapi@5.3.0(zod@4.3.5): dependencies: - zod: 4.2.1 + zod: 4.3.5 - zod-validation-error@4.0.2(zod@4.2.1): + zod-validation-error@4.0.2(zod@4.3.5): dependencies: - zod: 4.2.1 + zod: 4.3.5 - zod-validation-error@5.0.0(zod@4.2.1): + zod-validation-error@5.0.0(zod@4.3.5): dependencies: - zod: 4.2.1 + zod: 4.3.5 - zod@4.2.1: {} + zod@4.3.5: {} zwitch@2.0.4: {} From a9582f04edb0e161d1fab6e64b13d0ce463ef341 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 21:50:50 +0000 Subject: [PATCH 33/56] fix(deps): update dependency zod to ^4.3.6 (#5376) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- packages/api/package.json | 2 +- packages/auth/package.json | 2 +- packages/common/package.json | 2 +- packages/core/package.json | 2 +- packages/cron-job-api/package.json | 2 +- packages/definitions/package.json | 2 +- packages/form/package.json | 2 +- packages/forms-collection/package.json | 2 +- packages/integrations/package.json | 2 +- packages/modals-collection/package.json | 2 +- packages/old-import/package.json | 2 +- packages/old-schema/package.json | 2 +- packages/request-handler/package.json | 2 +- packages/validation/package.json | 2 +- packages/widgets/package.json | 2 +- pnpm-lock.yaml | 130 ++++++++++++------------ 17 files changed, 81 insertions(+), 81 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 2ee558537..1c3f1dac7 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -87,7 +87,7 @@ "superjson": "2.2.6", "swagger-ui-react": "^5.32.1", "use-deep-compare-effect": "^1.8.1", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/api/package.json b/packages/api/package.json index cd25ae6a2..cab621016 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -52,7 +52,7 @@ "react-dom": "19.2.4", "superjson": "2.2.6", "trpc-to-openapi": "^3.2.0", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/auth/package.json b/packages/auth/package.json index d0f3342e4..46f903e75 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -38,7 +38,7 @@ "next-auth": "5.0.0-beta.30", "react": "19.2.4", "react-dom": "19.2.4", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/common/package.json b/packages/common/package.json index dff3ac1e1..5e014c671 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -35,7 +35,7 @@ "react": "19.2.4", "react-dom": "19.2.4", "undici": "7.24.6", - "zod": "^4.3.5", + "zod": "^4.3.6", "zod-validation-error": "^5.0.0" }, "devDependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index f638db3a3..2e4b1342f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -46,7 +46,7 @@ "pg": "^8.20.0", "superjson": "2.2.6", "winston": "3.19.0", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index 989638a66..198ef2f40 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -34,7 +34,7 @@ "@trpc/tanstack-react-query": "^11.15.0", "node-cron": "^4.2.1", "react": "19.2.4", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/definitions/package.json b/packages/definitions/package.json index ccf6c70be..34b0e4b34 100644 --- a/packages/definitions/package.json +++ b/packages/definitions/package.json @@ -25,7 +25,7 @@ "dependencies": { "@homarr/common": "workspace:^0.1.0", "fast-xml-parser": "^5.5.9", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/form/package.json b/packages/form/package.json index 05ad74063..31ce91291 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -28,7 +28,7 @@ "@homarr/validation": "workspace:^0.1.0", "@mantine/form": "^8.3.18", "mantine-form-zod-resolver": "^1.3.0", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/forms-collection/package.json b/packages/forms-collection/package.json index 6e5e8784c..abc900cf0 100644 --- a/packages/forms-collection/package.json +++ b/packages/forms-collection/package.json @@ -32,7 +32,7 @@ "@homarr/validation": "workspace:^0.1.0", "@mantine/core": "^8.3.18", "react": "19.2.4", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 9d3c87c89..f94a7b782 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -49,7 +49,7 @@ "tsdav": "^2.1.8", "undici": "7.24.6", "xml2js": "^0.6.2", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/modals-collection/package.json b/packages/modals-collection/package.json index 2e832d6d8..e33ca985b 100644 --- a/packages/modals-collection/package.json +++ b/packages/modals-collection/package.json @@ -39,7 +39,7 @@ "next": "16.2.1", "react": "19.2.4", "react-dom": "19.2.4", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/old-import/package.json b/packages/old-import/package.json index 338768f01..21145a5cb 100644 --- a/packages/old-import/package.json +++ b/packages/old-import/package.json @@ -44,7 +44,7 @@ "react": "19.2.4", "react-dom": "19.2.4", "superjson": "2.2.6", - "zod": "^4.3.5", + "zod": "^4.3.6", "zod-form-data": "^3.0.1" }, "devDependencies": { diff --git a/packages/old-schema/package.json b/packages/old-schema/package.json index 4d814253e..d64229c41 100644 --- a/packages/old-schema/package.json +++ b/packages/old-schema/package.json @@ -23,7 +23,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/request-handler/package.json b/packages/request-handler/package.json index d4291bc43..f8c3f710a 100644 --- a/packages/request-handler/package.json +++ b/packages/request-handler/package.json @@ -34,7 +34,7 @@ "octokit": "^5.0.5", "superjson": "2.2.6", "undici": "7.24.6", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/validation/package.json b/packages/validation/package.json index c92eb6764..0ac311093 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -24,7 +24,7 @@ "dependencies": { "@homarr/definitions": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", - "zod": "^4.3.5", + "zod": "^4.3.6", "zod-form-data": "^3.0.1" }, "devDependencies": { diff --git a/packages/widgets/package.json b/packages/widgets/package.json index dd8d61aae..b09cfe364 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -78,7 +78,7 @@ "react-markdown": "^10.1.0", "recharts": "^2.15.4", "video.js": "^8.23.7", - "zod": "^4.3.5" + "zod": "^4.3.6" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01a7c5e07..a0b03eed0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -326,8 +326,8 @@ importers: specifier: ^1.8.1 version: 1.8.1(react@19.2.4) zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -670,10 +670,10 @@ importers: version: 2.2.6 trpc-to-openapi: specifier: ^3.2.0 - version: 3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.5))(zod@4.3.5) + version: 3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.6))(zod@4.3.6) zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -739,8 +739,8 @@ importers: specifier: 19.2.4 version: 19.2.4(react@19.2.4) zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -865,11 +865,11 @@ importers: specifier: 7.24.6 version: 7.24.6 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 zod-validation-error: specifier: ^5.0.0 - version: 5.0.0(zod@4.3.5) + version: 5.0.0(zod@4.3.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -891,7 +891,7 @@ importers: dependencies: '@t3-oss/env-nextjs': specifier: ^0.13.11 - version: 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.5) + version: 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.6) better-sqlite3: specifier: ^12.6.2 version: 12.6.2 @@ -917,8 +917,8 @@ importers: specifier: 3.19.0 version: 3.19.0 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -972,8 +972,8 @@ importers: specifier: 19.2.4 version: 19.2.4 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1166,7 +1166,7 @@ importers: version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.5) + version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6) mysql2: specifier: 3.20.0 version: 3.20.0(@types/node@24.12.0) @@ -1220,8 +1220,8 @@ importers: specifier: ^5.5.9 version: 5.5.9 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1289,10 +1289,10 @@ importers: version: 8.3.18(react@19.2.4) mantine-form-zod-resolver: specifier: ^1.3.0 - version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.5) + version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.6) zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1343,8 +1343,8 @@ importers: specifier: 19.2.4 version: 19.2.4 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1499,8 +1499,8 @@ importers: specifier: ^0.6.2 version: 0.6.2 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1612,8 +1612,8 @@ importers: specifier: 19.2.4 version: 19.2.4(react@19.2.4) zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1716,11 +1716,11 @@ importers: specifier: 2.2.6 version: 2.2.6 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 zod-form-data: specifier: ^3.0.1 - version: 3.0.1(zod@4.3.5) + version: 3.0.1(zod@4.3.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1747,8 +1747,8 @@ importers: specifier: workspace:^0.1.0 version: link:../common zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1867,8 +1867,8 @@ importers: specifier: 7.24.6 version: 7.24.6 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2149,11 +2149,11 @@ importers: specifier: workspace:^0.1.0 version: link:../translation zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 zod-form-data: specifier: ^3.0.1 - version: 3.0.1(zod@4.3.5) + version: 3.0.1(zod@4.3.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2310,7 +2310,7 @@ importers: version: 1.11.20 mantine-form-zod-resolver: specifier: ^1.3.0 - version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.5) + version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.6) mantine-react-table: specifier: 2.0.0-beta.9 version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -2333,8 +2333,8 @@ importers: specifier: ^8.23.7 version: 8.23.7 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -10941,8 +10941,8 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@4.3.5: - resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -13318,19 +13318,19 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@t3-oss/env-core@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.5)': + '@t3-oss/env-core@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.6)': optionalDependencies: arktype: 2.1.20 typescript: 5.9.3 - zod: 4.3.5 + zod: 4.3.6 - '@t3-oss/env-nextjs@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.5)': + '@t3-oss/env-nextjs@0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.6)': dependencies: - '@t3-oss/env-core': 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.5) + '@t3-oss/env-core': 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.6) optionalDependencies: arktype: 2.1.20 typescript: 5.9.3 - zod: 4.3.5 + zod: 4.3.6 '@tabler/icons-react@3.40.0(react@19.2.4)': dependencies: @@ -15317,10 +15317,10 @@ snapshots: mysql2: 3.20.0(@types/node@24.12.0) pg: 8.20.0 - drizzle-zod@0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.5): + drizzle-zod@0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6): dependencies: drizzle-orm: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) - zod: 4.3.5 + zod: 4.3.6 dunder-proto@1.0.1: dependencies: @@ -15796,8 +15796,8 @@ snapshots: '@babel/core': 7.28.4 '@babel/parser': 7.28.4 eslint: 9.39.4 - zod: 4.3.5 - zod-validation-error: 4.0.2(zod@4.3.5) + zod: 4.3.6 + zod-validation-error: 4.0.2(zod@4.3.6) transitivePeerDependencies: - supports-color @@ -17178,10 +17178,10 @@ snapshots: dependencies: semver: 7.7.4 - mantine-form-zod-resolver@1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.5): + mantine-form-zod-resolver@1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.6): dependencies: '@mantine/form': 8.3.18(react@19.2.4) - zod: 4.3.5 + zod: 4.3.6 mantine-react-table@2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: @@ -19714,14 +19714,14 @@ snapshots: trough@2.2.0: {} - trpc-to-openapi@3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.5))(zod@4.3.5): + trpc-to-openapi@3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.6))(zod@4.3.6): dependencies: '@trpc/server': 11.15.0(typescript@5.9.3) co-body: 6.2.0 h3: 1.15.1 openapi3-ts: 4.4.0 - zod: 4.3.5 - zod-openapi: 5.3.0(zod@4.3.5) + zod: 4.3.6 + zod-openapi: 5.3.0(zod@4.3.6) optionalDependencies: '@rollup/rollup-linux-x64-gnu': 4.6.1 @@ -20534,23 +20534,23 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 - zod-form-data@3.0.1(zod@4.3.5): + zod-form-data@3.0.1(zod@4.3.6): dependencies: '@rvf/set-get': 7.0.1 - zod: 4.3.5 + zod: 4.3.6 - zod-openapi@5.3.0(zod@4.3.5): + zod-openapi@5.3.0(zod@4.3.6): dependencies: - zod: 4.3.5 + zod: 4.3.6 - zod-validation-error@4.0.2(zod@4.3.5): + zod-validation-error@4.0.2(zod@4.3.6): dependencies: - zod: 4.3.5 + zod: 4.3.6 - zod-validation-error@5.0.0(zod@4.3.5): + zod-validation-error@5.0.0(zod@4.3.6): dependencies: - zod: 4.3.5 + zod: 4.3.6 - zod@4.3.5: {} + zod@4.3.6: {} zwitch@2.0.4: {} From ff076582120025e3c5813051746202aa4e956406 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 11:57:00 +0000 Subject: [PATCH 34/56] chore(deps): update node.js (#5364) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .github/workflows/deployment-docker-image.yml | 2 +- .nvmrc | 2 +- Dockerfile | 2 +- deployments/prebuilt-debian/Dockerfile | 2 +- deployments/prebuilt-debian/package.json | 2 +- package.json | 2 +- tooling/github/setup/action.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 6c2ad9d88..03babd093 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -65,7 +65,7 @@ jobs: - uses: actions/setup-node@v6 if: env.SKIP_RELEASE == 'false' with: - node-version: 24.14.0 + node-version: 24.14.1 cache: "pnpm" - run: npm i -g pnpm if: env.SKIP_RELEASE == 'false' diff --git a/.nvmrc b/.nvmrc index d845d9d88..8e3503489 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24.14.0 +24.14.1 diff --git a/Dockerfile b/Dockerfile index a36fbffdb..3db197429 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:24.14.0-alpine AS base +FROM node:24.14.1-alpine AS base FROM base AS builder RUN apk add --no-cache libc6-compat diff --git a/deployments/prebuilt-debian/Dockerfile b/deployments/prebuilt-debian/Dockerfile index ced8d7bdf..8e0319dc5 100644 --- a/deployments/prebuilt-debian/Dockerfile +++ b/deployments/prebuilt-debian/Dockerfile @@ -1,4 +1,4 @@ -FROM node:24.14.0-trixie AS base +FROM node:24.14.1-trixie AS base WORKDIR /app COPY package.json . COPY pnpm-lock.yaml . diff --git a/deployments/prebuilt-debian/package.json b/deployments/prebuilt-debian/package.json index e5e1dab70..cf4ab3695 100644 --- a/deployments/prebuilt-debian/package.json +++ b/deployments/prebuilt-debian/package.json @@ -6,7 +6,7 @@ }, "packageManager": "pnpm@10.33.0", "engines": { - "node": ">=24.14.0", + "node": ">=24.14.1", "pnpm": ">=10.33.0" }, "pnpm": { diff --git a/package.json b/package.json index 34db5ad8d..17f321082 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ }, "packageManager": "pnpm@10.33.0", "engines": { - "node": ">=24.14.0", + "node": ">=24.14.1", "pnpm": ">=10.33.0" }, "pnpm": { diff --git a/tooling/github/setup/action.yml b/tooling/github/setup/action.yml index 1425fdb72..f65a54f40 100644 --- a/tooling/github/setup/action.yml +++ b/tooling/github/setup/action.yml @@ -7,7 +7,7 @@ runs: - uses: pnpm/action-setup@v5 - uses: actions/setup-node@v6 with: - node-version: 24.14.0 + node-version: 24.14.1 cache: "pnpm" - shell: bash From cbb85159d60f3a78f51cac0082191ab6afcf9d7a Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 16:06:32 +0000 Subject: [PATCH 35/56] chore(deps): update vitest monorepo to ^4.1.2 (#5378) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 6 +- pnpm-lock.yaml | 165 ++++++++++++++++++++++++------------------------- 2 files changed, 83 insertions(+), 88 deletions(-) diff --git a/package.json b/package.json index 17f321082..09b5c0392 100644 --- a/package.json +++ b/package.json @@ -45,8 +45,8 @@ "@testcontainers/redis": "^11.13.0", "@turbo/gen": "^2.8.20", "@vitejs/plugin-react": "^5.2.0", - "@vitest/coverage-v8": "^4.1.1", - "@vitest/ui": "^4.1.1", + "@vitest/coverage-v8": "^4.1.2", + "@vitest/ui": "^4.1.2", "conventional-changelog-conventionalcommits": "^9.3.0", "cross-env": "^10.1.0", "jsdom": "^29.0.1", @@ -57,7 +57,7 @@ "turbo": "^2.8.20", "typescript": "^5.9.3", "vite-tsconfig-paths": "^6.1.1", - "vitest": "^4.1.1" + "vitest": "^4.1.2" }, "packageManager": "pnpm@10.33.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0b03eed0..2de6d447d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,11 +68,11 @@ importers: specifier: ^5.2.0 version: 5.2.0(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) '@vitest/coverage-v8': - specifier: ^4.1.1 - version: 4.1.1(vitest@4.1.1) + specifier: ^4.1.2 + version: 4.1.2(vitest@4.1.2) '@vitest/ui': - specifier: ^4.1.1 - version: 4.1.1(vitest@4.1.1) + specifier: ^4.1.2 + version: 4.1.2(vitest@4.1.2) conventional-changelog-conventionalcommits: specifier: ^9.3.0 version: 9.3.0 @@ -104,8 +104,8 @@ importers: specifier: ^6.1.1 version: 6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) vitest: - specifier: ^4.1.1 - version: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + specifier: ^4.1.2 + version: 4.1.2(@types/node@24.12.0)(@vitest/ui@4.1.2)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) apps/nextjs: dependencies: @@ -5288,20 +5288,20 @@ packages: peerDependencies: vite: '>=8.0.2' - '@vitest/coverage-v8@4.1.1': - resolution: {integrity: sha512-nZ4RWwGCoGOQRMmU/Q9wlUY540RVRxJZ9lxFsFfy0QV7Zmo5VVBhB6Sl9Xa0KIp2iIs3zWfPlo9LcY1iqbpzCw==} + '@vitest/coverage-v8@4.1.2': + resolution: {integrity: sha512-sPK//PHO+kAkScb8XITeB1bf7fsk85Km7+rt4eeuRR3VS1/crD47cmV5wicisJmjNdfeokTZwjMk4Mj2d58Mgg==} peerDependencies: - '@vitest/browser': 4.1.1 - vitest: 4.1.1 + '@vitest/browser': 4.1.2 + vitest: 4.1.2 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.1': - resolution: {integrity: sha512-xAV0fqBTk44Rn6SjJReEQkHP3RrqbJo6JQ4zZ7/uVOiJZRarBtblzrOfFIZeYUrukp2YD6snZG6IBqhOoHTm+A==} + '@vitest/expect@4.1.2': + resolution: {integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==} - '@vitest/mocker@4.1.1': - resolution: {integrity: sha512-h3BOylsfsCLPeceuCPAAJ+BvNwSENgJa4hXoXu4im0bs9Lyp4URc4JYK4pWLZ4pG/UQn7AT92K6IByi6rE6g3A==} + '@vitest/mocker@4.1.2': + resolution: {integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -5311,25 +5311,25 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.1': - resolution: {integrity: sha512-GM+TEQN5WhOygr1lp7skeVjdLPqqWMHsfzXrcHAqZJi/lIVh63H0kaRCY8MDhNWikx19zBUK8ceaLB7X5AH9NQ==} + '@vitest/pretty-format@4.1.2': + resolution: {integrity: sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==} - '@vitest/runner@4.1.1': - resolution: {integrity: sha512-f7+FPy75vN91QGWsITueq0gedwUZy1fLtHOCMeQpjs8jTekAHeKP80zfDEnhrleviLHzVSDXIWuCIOFn3D3f8A==} + '@vitest/runner@4.1.2': + resolution: {integrity: sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==} - '@vitest/snapshot@4.1.1': - resolution: {integrity: sha512-kMVSgcegWV2FibXEx9p9WIKgje58lcTbXgnJixfcg15iK8nzCXhmalL0ZLtTWLW9PH1+1NEDShiFFedB3tEgWg==} + '@vitest/snapshot@4.1.2': + resolution: {integrity: sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==} - '@vitest/spy@4.1.1': - resolution: {integrity: sha512-6Ti/KT5OVaiupdIZEuZN7l3CZcR0cxnxt70Z0//3CtwgObwA6jZhmVBA3yrXSVN3gmwjgd7oDNLlsXz526gpRA==} + '@vitest/spy@4.1.2': + resolution: {integrity: sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==} - '@vitest/ui@4.1.1': - resolution: {integrity: sha512-k0qNVLmCISxoGWvdhOeynlZVrfjx7Xjp95kIptN0fZYyONCgVcKIPn53MpFZ7S+fO6YdKNhgIfl0nu92Q0CCOg==} + '@vitest/ui@4.1.2': + resolution: {integrity: sha512-/irhyeAcKS2u6Zokagf9tqZJ0t8S6kMZq4ZG9BHZv7I+fkRrYfQX4w7geYeC2r6obThz39PDxvXQzZX+qXqGeg==} peerDependencies: - vitest: 4.1.1 + vitest: 4.1.2 - '@vitest/utils@4.1.1': - resolution: {integrity: sha512-cNxAlaB3sHoCdL6pj6yyUXv9Gry1NHNg0kFTXdvSIZXLHsqKH7chiWOkwJ5s5+d/oMwcoG9T0bKU38JZWKusrQ==} + '@vitest/utils@4.1.2': + resolution: {integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -7026,6 +7026,9 @@ packages: flatted@3.4.0: resolution: {integrity: sha512-kC6Bb+ooptOIvWj5B63EQWkF0FEnNjV2ZNkLMLZRDDduIiWeFF4iKnslwhiWxjAdbg4NzTNo6h0qLuvFrcx+Sw==} + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} @@ -8865,10 +8868,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} @@ -10088,8 +10087,8 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinyrainbow@3.0.3: - resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + tinyrainbow@3.1.0: + resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} tldts-core@6.1.69: @@ -10616,18 +10615,18 @@ packages: yaml: optional: true - vitest@4.1.1: - resolution: {integrity: sha512-yF+o4POL41rpAzj5KVILUxm1GCjKnELvaqmU9TLLUbMfDzuN0UpUR9uaDs+mCtjPe+uYPksXDRLQGGPvj1cTmA==} + vitest@4.1.2: + resolution: {integrity: sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.1 - '@vitest/browser-preview': 4.1.1 - '@vitest/browser-webdriverio': 4.1.1 - '@vitest/ui': 4.1.1 + '@vitest/browser-playwright': 4.1.2 + '@vitest/browser-preview': 4.1.2 + '@vitest/browser-webdriverio': 4.1.2 + '@vitest/ui': 4.1.2 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -14095,10 +14094,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.1.1(vitest@4.1.1)': + '@vitest/coverage-v8@4.1.2(vitest@4.1.2)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.1 + '@vitest/utils': 4.1.2 ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -14106,60 +14105,60 @@ snapshots: magicast: 0.5.2 obug: 2.1.1 std-env: 4.0.0 - tinyrainbow: 3.0.3 - vitest: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + tinyrainbow: 3.1.0 + vitest: 4.1.2(@types/node@24.12.0)(@vitest/ui@4.1.2)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) - '@vitest/expect@4.1.1': + '@vitest/expect@4.1.2': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.2 - '@vitest/spy': 4.1.1 - '@vitest/utils': 4.1.1 + '@vitest/spy': 4.1.2 + '@vitest/utils': 4.1.2 chai: 6.2.2 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.1(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1))': + '@vitest/mocker@4.1.2(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1))': dependencies: - '@vitest/spy': 4.1.1 + '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1) - '@vitest/pretty-format@4.1.1': + '@vitest/pretty-format@4.1.2': dependencies: - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 - '@vitest/runner@4.1.1': + '@vitest/runner@4.1.2': dependencies: - '@vitest/utils': 4.1.1 + '@vitest/utils': 4.1.2 pathe: 2.0.3 - '@vitest/snapshot@4.1.1': + '@vitest/snapshot@4.1.2': dependencies: - '@vitest/pretty-format': 4.1.1 - '@vitest/utils': 4.1.1 + '@vitest/pretty-format': 4.1.2 + '@vitest/utils': 4.1.2 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.1': {} + '@vitest/spy@4.1.2': {} - '@vitest/ui@4.1.1(vitest@4.1.1)': + '@vitest/ui@4.1.2(vitest@4.1.2)': dependencies: - '@vitest/utils': 4.1.1 + '@vitest/utils': 4.1.2 fflate: 0.8.2 - flatted: 3.4.0 + flatted: 3.4.2 pathe: 2.0.3 sirv: 3.0.2 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 - vitest: 4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + tinyrainbow: 3.1.0 + vitest: 4.1.2(@types/node@24.12.0)(@vitest/ui@4.1.2)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) - '@vitest/utils@4.1.1': + '@vitest/utils@4.1.2': dependencies: - '@vitest/pretty-format': 4.1.1 + '@vitest/pretty-format': 4.1.2 convert-source-map: 2.0.0 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 '@webassemblyjs/ast@1.14.1': dependencies: @@ -16052,10 +16051,6 @@ snapshots: dependencies: format: 0.2.2 - fdir@6.5.0(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - fdir@6.5.0(picomatch@4.0.4): optionalDependencies: picomatch: 4.0.4 @@ -16123,6 +16118,8 @@ snapshots: flatted@3.4.0: {} + flatted@3.4.2: {} + fn.name@1.1.0: {} follow-redirects@1.15.9: {} @@ -18045,8 +18042,6 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.3: {} - picomatch@4.0.4: {} pify@3.0.0: {} @@ -19633,10 +19628,10 @@ snapshots: tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 - tinyrainbow@3.0.3: {} + tinyrainbow@3.1.0: {} tldts-core@6.1.69: {} @@ -20194,31 +20189,31 @@ snapshots: tsx: 4.21.0 yaml: 2.5.1 - vitest@4.1.1(@types/node@24.12.0)(@vitest/ui@4.1.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)): + vitest@4.1.2(@types/node@24.12.0)(@vitest/ui@4.1.2)(jsdom@29.0.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)): dependencies: - '@vitest/expect': 4.1.1 - '@vitest/mocker': 4.1.1(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) - '@vitest/pretty-format': 4.1.1 - '@vitest/runner': 4.1.1 - '@vitest/snapshot': 4.1.1 - '@vitest/spy': 4.1.1 - '@vitest/utils': 4.1.1 + '@vitest/expect': 4.1.2 + '@vitest/mocker': 4.1.2(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) + '@vitest/pretty-format': 4.1.2 + '@vitest/runner': 4.1.2 + '@vitest/snapshot': 4.1.2 + '@vitest/spy': 4.1.2 + '@vitest/utils': 4.1.2 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.2 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 vite: 7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.12.0 - '@vitest/ui': 4.1.1(vitest@4.1.1) + '@vitest/ui': 4.1.2(vitest@4.1.2) jsdom: 29.0.1(@noble/hashes@2.0.1) transitivePeerDependencies: - msw From 545dba0c8f27a257494603fc2def8dda7c5904b5 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 16:07:34 +0000 Subject: [PATCH 36/56] chore(deps): update dependency vite@>=5.0.0 <=5.4.18 to >=8.0.3 (#5377) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 09b5c0392..4bde9a7e8 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "tar-fs@>=3.0.0 <3.0.9": ">=3.1.2", "tar-fs@>=2.0.0 <2.1.3": ">=3.1.2", "tmp@<=0.2.3": ">=0.2.5", - "vite@>=5.0.0 <=5.4.18": ">=8.0.2" + "vite@>=5.0.0 <=5.4.18": ">=8.0.3" }, "patchedDependencies": { "@types/node-unifi": "patches/@types__node-unifi.patch", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2de6d447d..c461d76ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,7 +23,7 @@ overrides: tar-fs@>=3.0.0 <3.0.9: '>=3.1.2' tar-fs@>=2.0.0 <2.1.3: '>=3.1.2' tmp@<=0.2.3: '>=0.2.5' - vite@>=5.0.0 <=5.4.18: '>=8.0.2' + vite@>=5.0.0 <=5.4.18: '>=8.0.3' patchedDependencies: '@types/node-unifi': @@ -5286,7 +5286,7 @@ packages: resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: '>=8.0.2' + vite: '>=8.0.3' '@vitest/coverage-v8@4.1.2': resolution: {integrity: sha512-sPK//PHO+kAkScb8XITeB1bf7fsk85Km7+rt4eeuRR3VS1/crD47cmV5wicisJmjNdfeokTZwjMk4Mj2d58Mgg==} @@ -10573,7 +10573,7 @@ packages: vite-tsconfig-paths@6.1.1: resolution: {integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==} peerDependencies: - vite: '>=8.0.2' + vite: '>=8.0.3' vite@7.1.12: resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==} From 46db8b6ab32406fb4ff7a7a9938692954778a070 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 18:43:59 +0200 Subject: [PATCH 37/56] fix(deps): update dependency better-sqlite3 to ^12.8.0 (#5266) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas --- deployments/prebuilt-debian/package.json | 2 +- deployments/prebuilt-debian/pnpm-lock.yaml | 11 +++++---- packages/core/package.json | 2 +- packages/db/package.json | 2 +- pnpm-lock.yaml | 28 +++++++++++----------- 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/deployments/prebuilt-debian/package.json b/deployments/prebuilt-debian/package.json index cf4ab3695..a03422d93 100644 --- a/deployments/prebuilt-debian/package.json +++ b/deployments/prebuilt-debian/package.json @@ -2,7 +2,7 @@ "name": "homarr-prebuilt-debian", "private": true, "dependencies": { - "better-sqlite3": "^12.6.2" + "better-sqlite3": "^12.8.0" }, "packageManager": "pnpm@10.33.0", "engines": { diff --git a/deployments/prebuilt-debian/pnpm-lock.yaml b/deployments/prebuilt-debian/pnpm-lock.yaml index f18d00d42..2536b3481 100644 --- a/deployments/prebuilt-debian/pnpm-lock.yaml +++ b/deployments/prebuilt-debian/pnpm-lock.yaml @@ -9,16 +9,16 @@ importers: .: dependencies: better-sqlite3: - specifier: ^12.6.2 - version: 12.6.2 + specifier: ^12.8.0 + version: 12.8.0 packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - better-sqlite3@12.6.2: - resolution: {integrity: sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA==} + better-sqlite3@12.8.0: + resolution: {integrity: sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==} engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} bindings@1.5.0: @@ -93,6 +93,7 @@ packages: prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true pump@3.0.3: @@ -147,7 +148,7 @@ snapshots: base64-js@1.5.1: {} - better-sqlite3@12.6.2: + better-sqlite3@12.8.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.3 diff --git a/packages/core/package.json b/packages/core/package.json index 2e4b1342f..2c2c7c8e2 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -38,7 +38,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@t3-oss/env-nextjs": "^0.13.11", - "better-sqlite3": "^12.6.2", + "better-sqlite3": "^12.8.0", "dns-caching": "^0.2.9", "drizzle-orm": "^0.45.1", "ioredis": "5.10.1", diff --git a/packages/db/package.json b/packages/db/package.json index 51dfb5c21..95a6efa60 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -51,7 +51,7 @@ "@paralleldrive/cuid2": "^3.3.0", "@testcontainers/mysql": "^11.13.0", "@testcontainers/postgresql": "^11.13.0", - "better-sqlite3": "^12.6.2", + "better-sqlite3": "^12.8.0", "dotenv": "^17.3.1", "drizzle-kit": "^0.31.10", "drizzle-orm": "^0.45.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c461d76ca..e535f360a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -893,14 +893,14 @@ importers: specifier: ^0.13.11 version: 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.3.6) better-sqlite3: - specifier: ^12.6.2 - version: 12.6.2 + specifier: ^12.8.0 + version: 12.8.0 dns-caching: specifier: ^0.2.9 version: 0.2.9 drizzle-orm: specifier: ^0.45.1 - version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) + version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) ioredis: specifier: 5.10.1 version: 5.10.1 @@ -1153,8 +1153,8 @@ importers: specifier: ^11.13.0 version: 11.13.0 better-sqlite3: - specifier: ^12.6.2 - version: 12.6.2 + specifier: ^12.8.0 + version: 12.8.0 dotenv: specifier: ^17.3.1 version: 17.3.1 @@ -1163,10 +1163,10 @@ importers: version: 0.31.10 drizzle-orm: specifier: ^0.45.1 - version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) + version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6) + version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6) mysql2: specifier: 3.20.0 version: 3.20.0(@types/node@24.12.0) @@ -5731,8 +5731,8 @@ packages: before-after-hook@4.0.0: resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} - better-sqlite3@12.6.2: - resolution: {integrity: sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA==} + better-sqlite3@12.8.0: + resolution: {integrity: sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==} engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} bidi-js@1.0.3: @@ -14624,7 +14624,7 @@ snapshots: before-after-hook@4.0.0: {} - better-sqlite3@12.6.2: + better-sqlite3@12.8.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.2 @@ -15306,19 +15306,19 @@ snapshots: esbuild: 0.25.12 tsx: 4.21.0 - drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0): + drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0): optionalDependencies: '@libsql/client-wasm': 0.14.0 '@types/better-sqlite3': 7.6.13 '@types/pg': 8.20.0 - better-sqlite3: 12.6.2 + better-sqlite3: 12.8.0 gel: 2.0.0 mysql2: 3.20.0(@types/node@24.12.0) pg: 8.20.0 - drizzle-zod@0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6): + drizzle-zod@0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6): dependencies: - drizzle-orm: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.6.2)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) + drizzle-orm: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) zod: 4.3.6 dunder-proto@1.0.1: From e88e3d17c01dab8836bec11d2ac01195f06cdc2e Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 18:52:38 +0200 Subject: [PATCH 38/56] fix(deps): update dependency @ctrl/deluge to v8 (#5367) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/integrations/package.json | 2 +- pnpm-lock.yaml | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index f94a7b782..ff36a5afa 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -25,7 +25,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@ctrl/deluge": "^7.5.3", + "@ctrl/deluge": "^8.0.0", "@ctrl/qbittorrent": "^9.11.2", "@ctrl/transmission": "^7.4.0", "@gitbeaker/rest": "^43.8.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e535f360a..9c29c6146 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1427,8 +1427,8 @@ importers: packages/integrations: dependencies: '@ctrl/deluge': - specifier: ^7.5.3 - version: 7.5.3 + specifier: ^8.0.0 + version: 8.0.0 '@ctrl/qbittorrent': specifier: ^9.11.2 version: 9.11.2 @@ -2755,8 +2755,8 @@ packages: resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} engines: {node: '>=20.19.0'} - '@ctrl/deluge@7.5.3': - resolution: {integrity: sha512-EvliA70vc0b/wJf1q1FUBwFrpDnv5TikH7y4in7sUe8RY6OcZ/vNsqZ9luNA2Qvh7c4d4FjqWdVpw1J02favHw==} + '@ctrl/deluge@8.0.0': + resolution: {integrity: sha512-KKDJpB9gLCwjNsJCbUS0bn9SHMzDILyHrqM2i2ieQjTlVaSjTUDB/cn2RSdSXwy4DLug40yalFRnxoAv1+Tj+Q==} engines: {node: '>=18'} '@ctrl/magnet-link@4.0.2': @@ -6055,6 +6055,9 @@ packages: cookie-es@1.2.2: resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + cookie-es@3.0.1: + resolution: {integrity: sha512-1HqK6V6Prrm7cHzmjtCzfa370ljqPQoNeWIh5NXYqWwUI2l3DZlzjHHh25ZvJIPfwkiYnCvHykE2MIJkEVD1Rg==} + cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} @@ -11352,13 +11355,13 @@ snapshots: '@csstools/css-tokenizer@4.0.0': {} - '@ctrl/deluge@7.5.3': + '@ctrl/deluge@8.0.0': dependencies: '@ctrl/magnet-link': 4.3.0 '@ctrl/shared-torrent': 6.5.1(ofetch@1.5.1) + cookie-es: 3.0.1 node-fetch-native: 1.6.7 ofetch: 1.5.1 - tough-cookie: 6.0.1 type-fest: 5.5.0 ufo: 1.6.3 uint8array-extras: 1.5.0 @@ -14968,6 +14971,8 @@ snapshots: cookie-es@1.2.2: {} + cookie-es@3.0.1: {} + cookie@0.7.2: {} cookie@1.1.1: {} @@ -18569,14 +18574,14 @@ snapshots: dependencies: find-up-simple: 1.0.1 read-pkg: 10.0.0 - type-fest: 5.4.4 + type-fest: 5.5.0 read-pkg@10.0.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 8.0.0 parse-json: 8.3.0 - type-fest: 5.4.4 + type-fest: 5.5.0 unicorn-magic: 0.3.0 read-pkg@9.0.1: From 6a200c39afaa1a9a1057643612065a40ad1cdd82 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Tue, 31 Mar 2026 19:08:02 +0200 Subject: [PATCH 39/56] fix(boards): unable to click on links at settings page (#5230) --- .../boards/[name]/settings/_general.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx index 51be38157..0bfc79173 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx @@ -2,7 +2,7 @@ import { useEffect, useRef } from "react"; import { Button, Grid, Group, Loader, Stack, TextInput } from "@mantine/core"; -import { useDebouncedValue, useDocumentTitle, useFavicon } from "@mantine/hooks"; +import { useDebouncedValue, useDocumentTitle } from "@mantine/hooks"; import { useUpdateBoard } from "@homarr/boards/updater"; import { useZodForm } from "@homarr/form"; @@ -10,6 +10,7 @@ import { IconPicker } from "@homarr/forms-collection"; import { useI18n } from "@homarr/translation/client"; import { boardSavePartialSettingsSchema } from "@homarr/validation/board"; +import { homarrLogoPath } from "~/components/layout/logo/homarr-logo"; import { createMetaTitle } from "~/metadata"; import type { Board } from "../../_types"; import { useSavePartialSettingsMutation } from "./_shared"; @@ -53,7 +54,6 @@ export const GeneralSettingsContent = ({ board }: Props) => { ); useLogoPreview(form.values.logoImageUrl); - useFaviconPreview(form.values.faviconImageUrl); const metaTitleStatus = useMetaTitlePreview(form.values.metaTitle); // Cleanup for not applied changes of the page title and logo image URL @@ -75,6 +75,7 @@ export const GeneralSettingsContent = ({ board }: Props) => { pageTitle: values.pageTitle, logoImageUrl: values.logoImageUrl, }; + updateFavicon(values.faviconImageUrl ?? homarrLogoPath); savePartialSettings({ id: board.id, ...values, @@ -146,7 +147,13 @@ const useMetaTitlePreview = (title: string | null) => { }; }; -const useFaviconPreview = (url: string | null) => { - const [faviconDebounced] = useDebouncedValue(url ?? "", 500); - useFavicon(faviconDebounced); +// Previously we used the useFavicon hook from Mantine +// However if the user tried to click on a link to a different page +// it caused an error "Cannot read properties of null (reading 'removeChild')" +// Probably because the head element was null (https://github.com/mantinedev/mantine/blob/b90d9b81031f45f5d15e75f25138ed6477f65bce/packages/%40mantine/hooks/src/use-favicon/use-favicon.ts#L21) +// See https://github.com/homarr-labs/homarr/issues/4905 +const updateFavicon = (url: string) => { + const link: HTMLLinkElement | null = document.querySelector('link[rel="icon"]'); + if (!link) return; + link.href = url; }; From 2dd3c906c4215b55e23f4b15ba4b423e23be8376 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 19:30:29 +0000 Subject: [PATCH 40/56] fix(deps): update dependency @immich/sdk to ^2.6.3 (#5380) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/integrations/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index ff36a5afa..75985c328 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -38,7 +38,7 @@ "@homarr/redis": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@immich/sdk": "^2.6.2", + "@immich/sdk": "^2.6.3", "@jellyfin/sdk": "^0.13.0", "@octokit/auth-app": "^8.2.0", "ical.js": "^2.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c29c6146..cfc418668 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1466,8 +1466,8 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@immich/sdk': - specifier: ^2.6.2 - version: 2.6.2 + specifier: ^2.6.3 + version: 2.6.3 '@jellyfin/sdk': specifier: ^0.13.0 version: 0.13.0(axios@1.12.2) @@ -3490,8 +3490,8 @@ packages: cpu: [x64] os: [win32] - '@immich/sdk@2.6.2': - resolution: {integrity: sha512-GDUOOyP4q6HDF8X9J/cHUX2sSrlWKKvMntvLgC8J1+vExGKx7FKxZnUybTHDzjefs6c0G8kpVN3UwgCEQXJNDA==} + '@immich/sdk@2.6.3': + resolution: {integrity: sha512-LPQPgmnzRl01aaTpaM3Ts26MM/8swVKKWhDG4DvWHosV2GW+d7+8v7fAEsP8u7z2kvT1h7PKvgLcxpBNGzS3cA==} '@inquirer/ansi@1.0.2': resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} @@ -11933,7 +11933,7 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@immich/sdk@2.6.2': + '@immich/sdk@2.6.3': dependencies: '@oazapfts/runtime': 1.2.0 From a7ed7a459299c53c3ef207ca4d432971484c3574 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Tue, 31 Mar 2026 22:11:08 +0200 Subject: [PATCH 41/56] ci(renovate): update prebuilt-debian lockfile automatically (#5379) --- .github/renovate.json5 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index e3c3e433f..b34d1dcab 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -31,6 +31,12 @@ automerge: false, }, ], + // Updates lockfile for prebuilt-debian after if package.json is updated, otherwise only root lockfile is updated + postUpgradeTasks: { + commands: ["cd deployments/prebuilt-debian && pnpm install --ignore-workspace --lockfile-only"], + fileFilters: ["deployments/prebuilt-debian/pnpm-lock.yaml"], + executionMode: "update", + }, updateInternalDeps: true, rangeStrategy: "bump", automerge: false, From 451e68ab57551e23dd7ae772b7483cc56d57ebbb Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 20:49:58 +0000 Subject: [PATCH 42/56] fix(deps): update trpc monorepo to ^11.15.1 (#5381) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 8 +-- packages/api/package.json | 8 +-- packages/cron-job-api/package.json | 6 +- pnpm-lock.yaml | 112 ++++++++++++++--------------- 4 files changed, 67 insertions(+), 67 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 1c3f1dac7..637a4b011 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -59,10 +59,10 @@ "@tanstack/react-query": "^5.95.2", "@tanstack/react-query-devtools": "^5.95.2", "@tanstack/react-query-next-experimental": "^5.95.2", - "@trpc/client": "^11.15.0", - "@trpc/next": "^11.15.0", - "@trpc/react-query": "^11.15.0", - "@trpc/server": "^11.15.0", + "@trpc/client": "^11.15.1", + "@trpc/next": "^11.15.1", + "@trpc/react-query": "^11.15.1", + "@trpc/server": "^11.15.1", "@xterm/addon-canvas": "^0.7.0", "@xterm/addon-fit": "0.11.0", "@xterm/xterm": "^6.0.0", diff --git a/packages/api/package.json b/packages/api/package.json index cab621016..0d3907c4d 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -42,10 +42,10 @@ "@homarr/validation": "workspace:^0.1.0", "@kubernetes/client-node": "^1.4.0", "@tanstack/react-query": "^5.95.2", - "@trpc/client": "^11.15.0", - "@trpc/react-query": "^11.15.0", - "@trpc/server": "^11.15.0", - "@trpc/tanstack-react-query": "^11.15.0", + "@trpc/client": "^11.15.1", + "@trpc/react-query": "^11.15.1", + "@trpc/server": "^11.15.1", + "@trpc/tanstack-react-query": "^11.15.1", "lodash.clonedeep": "^4.5.0", "next": "16.2.1", "react": "19.2.4", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index 198ef2f40..56c2c6df5 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -29,9 +29,9 @@ "@homarr/core": "workspace:^0.1.0", "@homarr/cron-jobs": "workspace:^0.1.0", "@tanstack/react-query": "^5.95.2", - "@trpc/client": "^11.15.0", - "@trpc/server": "^11.15.0", - "@trpc/tanstack-react-query": "^11.15.0", + "@trpc/client": "^11.15.1", + "@trpc/server": "^11.15.1", + "@trpc/tanstack-react-query": "^11.15.1", "node-cron": "^4.2.1", "react": "19.2.4", "zod": "^4.3.6" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cfc418668..3297d3428 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -242,17 +242,17 @@ importers: specifier: ^5.95.2 version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4) '@trpc/client': - specifier: ^11.15.0 - version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/next': - specifier: ^11.15.0 - version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.15.0 - version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) '@trpc/server': - specifier: ^11.15.0 - version: 11.15.0(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(typescript@5.9.3) '@xterm/addon-canvas': specifier: ^0.7.0 version: 0.7.0(@xterm/xterm@6.0.0) @@ -642,17 +642,17 @@ importers: specifier: ^5.95.2 version: 5.95.2(react@19.2.4) '@trpc/client': - specifier: ^11.15.0 - version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.15.0 - version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) '@trpc/server': - specifier: ^11.15.0 - version: 11.15.0(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.15.0 - version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) lodash.clonedeep: specifier: ^4.5.0 version: 4.5.0 @@ -670,7 +670,7 @@ importers: version: 2.2.6 trpc-to-openapi: specifier: ^3.2.0 - version: 3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.6))(zod@4.3.6) + version: 3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.16.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.6))(zod@4.3.6) zod: specifier: ^4.3.6 version: 4.3.6 @@ -957,14 +957,14 @@ importers: specifier: ^5.95.2 version: 5.95.2(react@19.2.4) '@trpc/client': - specifier: ^11.15.0 - version: 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': - specifier: ^11.15.0 - version: 11.15.0(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.15.0 - version: 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + specifier: ^11.15.1 + version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) node-cron: specifier: ^4.2.1 version: 4.2.1 @@ -4883,21 +4883,21 @@ packages: tree-sitter: optional: true - '@trpc/client@11.15.0': - resolution: {integrity: sha512-8mdFwCU3sK4W6Wg5LIBl5SonYqE4I6UlwR80qL3e7SSxYWHH+ZeQGlBjbLNL3+VsOxXaAAfUJYRCMsEZgQSFPw==} + '@trpc/client@11.16.0': + resolution: {integrity: sha512-TxIzm7OoK3baKZ0XCbuMUbI3GhgjcbKHIc4nWVKaRpCRnbSh0T31BT6fTPYwtnA/Nur8pBCGqC2B4J5hEPiPFQ==} hasBin: true peerDependencies: - '@trpc/server': 11.15.0 + '@trpc/server': 11.16.0 typescript: '>=5.7.2' - '@trpc/next@11.15.0': - resolution: {integrity: sha512-7eydVsBioUrGT7NLvRfFaDfZUSudClcOP6V+s2Ek6aecRGza8RiTu2YDAw1jc4c+1+2c/oe9+5KAZQL/p7o1Gg==} + '@trpc/next@11.16.0': + resolution: {integrity: sha512-6KyedRnGd7wZ44crr7oZ/fHxVDPkyItvg2PS6kfhM5Y6yLlBcEsMOhqxqKQNQZHBjAtnQzZjPuCslP05gZ6BSA==} hasBin: true peerDependencies: '@tanstack/react-query': ^5.59.15 - '@trpc/client': 11.15.0 - '@trpc/react-query': 11.15.0 - '@trpc/server': 11.15.0 + '@trpc/client': 11.16.0 + '@trpc/react-query': 11.16.0 + '@trpc/server': 11.16.0 next: '*' react: '>=16.8.0' react-dom: '>=16.8.0' @@ -4908,28 +4908,28 @@ packages: '@trpc/react-query': optional: true - '@trpc/react-query@11.15.0': - resolution: {integrity: sha512-7Qa/qKydfNPRnRB8tObu1QF8WnBdZh61pHpuCqXz9rocXzw+f40MYBQlMGDI30oPXZU5JYmpNkiuWYhMTOw1Dw==} + '@trpc/react-query@11.16.0': + resolution: {integrity: sha512-ah6ULOu4k7lCEFAEoEgqg14YPVu1lnCVVYcz8TP7avPPKwtcB0CbFKYve3ElRP+V5DoBT75Q+G66bRdR+rQ5fg==} peerDependencies: '@tanstack/react-query': ^5.80.3 - '@trpc/client': 11.15.0 - '@trpc/server': 11.15.0 + '@trpc/client': 11.16.0 + '@trpc/server': 11.16.0 react: '>=18.2.0' typescript: '>=5.7.2' - '@trpc/server@11.15.0': - resolution: {integrity: sha512-qLcodARy05fzMSrNG6VYtynsAmUCRaQ7SDm3Ynvryhylp2Zq4KN28qJeMlMqLeJKwZ05KukkcIsVTKzscWX1pQ==} + '@trpc/server@11.16.0': + resolution: {integrity: sha512-XgGuUMddrUTd04+za/WE5GFuZ1/YU9XQG0t3VL5WOIu2JspkOlq6k4RYEiqS6HSJt+S0RXaPdIoE2anIP/BBRQ==} hasBin: true peerDependencies: typescript: '>=5.7.2' - '@trpc/tanstack-react-query@11.15.0': - resolution: {integrity: sha512-5zKGSw/xNYcCBgyCf+WTrncWNt9997jKShD24F0IVMJnqq3Q4CszoTciVxdc5k4X615MbkO8Oh8tdn62D1FnlA==} + '@trpc/tanstack-react-query@11.16.0': + resolution: {integrity: sha512-kfNYJ5NCk67tmRCO/QWCycJmRamuEKmZf1HRG8yCBl8aTJdTwVq7l6AffFIMab3Q+NmQzwP8XXkAEK/EelKYOA==} hasBin: true peerDependencies: '@tanstack/react-query': ^5.80.3 - '@trpc/client': 11.15.0 - '@trpc/server': 11.15.0 + '@trpc/client': 11.16.0 + '@trpc/server': 11.16.0 react: '>=18.2.0' typescript: '>=5.7.2' @@ -13637,40 +13637,40 @@ snapshots: tree-sitter: 0.22.4 optional: true - '@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3)': + '@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3)': dependencies: - '@trpc/server': 11.15.0(typescript@5.9.3) + '@trpc/server': 11.16.0(typescript@5.9.3) typescript: 5.9.3 - '@trpc/next@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@trpc/next@11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@trpc/client': 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.15.0(typescript@5.9.3) + '@trpc/client': 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.16.0(typescript@5.9.3) next: 16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0) react: 19.2.4 react-dom: 19.2.4(react@19.2.4) typescript: 5.9.3 optionalDependencies: '@tanstack/react-query': 5.95.2(react@19.2.4) - '@trpc/react-query': 11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) + '@trpc/react-query': 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) - '@trpc/react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)': + '@trpc/react-query@11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)': dependencies: '@tanstack/react-query': 5.95.2(react@19.2.4) - '@trpc/client': 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.15.0(typescript@5.9.3) + '@trpc/client': 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.16.0(typescript@5.9.3) react: 19.2.4 typescript: 5.9.3 - '@trpc/server@11.15.0(typescript@5.9.3)': + '@trpc/server@11.16.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@trpc/tanstack-react-query@11.15.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.15.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)': + '@trpc/tanstack-react-query@11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)': dependencies: '@tanstack/react-query': 5.95.2(react@19.2.4) - '@trpc/client': 11.15.0(@trpc/server@11.15.0(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.15.0(typescript@5.9.3) + '@trpc/client': 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.16.0(typescript@5.9.3) react: 19.2.4 typescript: 5.9.3 @@ -19714,9 +19714,9 @@ snapshots: trough@2.2.0: {} - trpc-to-openapi@3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.15.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.6))(zod@4.3.6): + trpc-to-openapi@3.2.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.16.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.3.6))(zod@4.3.6): dependencies: - '@trpc/server': 11.15.0(typescript@5.9.3) + '@trpc/server': 11.16.0(typescript@5.9.3) co-body: 6.2.0 h3: 1.15.1 openapi3-ts: 4.4.0 From a9bcc9d04bdfcf28ea561cd590ca2a4bd775593c Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 23:42:53 +0000 Subject: [PATCH 43/56] fix(deps): update dependency @tabler/icons-react to ^3.41.0 (#5384) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- packages/modals-collection/package.json | 2 +- packages/notifications/package.json | 2 +- packages/spotlight/package.json | 2 +- packages/ui/package.json | 2 +- packages/widgets/package.json | 2 +- pnpm-lock.yaml | 50 ++++++++++++------------- 7 files changed, 31 insertions(+), 31 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 637a4b011..ea627e321 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -55,7 +55,7 @@ "@mantine/modals": "^8.3.18", "@mantine/tiptap": "^8.3.18", "@million/lint": "1.0.14", - "@tabler/icons-react": "^3.40.0", + "@tabler/icons-react": "^3.41.0", "@tanstack/react-query": "^5.95.2", "@tanstack/react-query-devtools": "^5.95.2", "@tanstack/react-query-next-experimental": "^5.95.2", diff --git a/packages/modals-collection/package.json b/packages/modals-collection/package.json index e33ca985b..4349797fd 100644 --- a/packages/modals-collection/package.json +++ b/packages/modals-collection/package.json @@ -34,7 +34,7 @@ "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@mantine/core": "^8.3.18", - "@tabler/icons-react": "^3.40.0", + "@tabler/icons-react": "^3.41.0", "dayjs": "^1.11.20", "next": "16.2.1", "react": "19.2.4", diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 0af9a8e93..ba8f2c6d4 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -25,7 +25,7 @@ "dependencies": { "@homarr/ui": "workspace:^0.1.0", "@mantine/notifications": "^8.3.18", - "@tabler/icons-react": "^3.40.0" + "@tabler/icons-react": "^3.41.0" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index 535831aed..215c68bc6 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -36,7 +36,7 @@ "@mantine/core": "^8.3.18", "@mantine/hooks": "^8.3.18", "@mantine/spotlight": "^8.3.18", - "@tabler/icons-react": "^3.40.0", + "@tabler/icons-react": "^3.41.0", "jotai": "^2.19.0", "next": "16.2.1", "react": "19.2.4", diff --git a/packages/ui/package.json b/packages/ui/package.json index 7a66befa1..0556e69c9 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -33,7 +33,7 @@ "@mantine/core": "^8.3.18", "@mantine/dates": "^8.3.18", "@mantine/hooks": "^8.3.18", - "@tabler/icons-react": "^3.40.0", + "@tabler/icons-react": "^3.41.0", "crypto-js": "^4.2.0", "mantine-react-table": "2.0.0-beta.9", "next": "16.2.1", diff --git a/packages/widgets/package.json b/packages/widgets/package.json index b09cfe364..d1348c707 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -51,7 +51,7 @@ "@mantine/charts": "^8.3.18", "@mantine/core": "^8.3.18", "@mantine/hooks": "^8.3.18", - "@tabler/icons-react": "^3.40.0", + "@tabler/icons-react": "^3.41.0", "@tiptap/extension-color": "3.20.5", "@tiptap/extension-highlight": "3.20.5", "@tiptap/extension-image": "3.20.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3297d3428..56a13a326 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -230,8 +230,8 @@ importers: specifier: 1.0.14 version: 1.0.14(rollup@4.60.0)(webpack-sources@3.3.4) '@tabler/icons-react': - specifier: ^3.40.0 - version: 3.40.0(react@19.2.4) + specifier: ^3.41.0 + version: 3.41.0(react@19.2.4) '@tanstack/react-query': specifier: ^5.95.2 version: 5.95.2(react@19.2.4) @@ -291,7 +291,7 @@ importers: version: 2.19.0(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4) mantine-react-table: specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.41.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) next: specifier: 16.2.1 version: 16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0) @@ -1597,8 +1597,8 @@ importers: specifier: ^8.3.18 version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tabler/icons-react': - specifier: ^3.40.0 - version: 3.40.0(react@19.2.4) + specifier: ^3.41.0 + version: 3.41.0(react@19.2.4) dayjs: specifier: ^1.11.20 version: 1.11.20 @@ -1640,8 +1640,8 @@ importers: specifier: ^8.3.18 version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tabler/icons-react': - specifier: ^3.40.0 - version: 3.40.0(react@19.2.4) + specifier: ^3.41.0 + version: 3.41.0(react@19.2.4) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1990,8 +1990,8 @@ importers: specifier: ^8.3.18 version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tabler/icons-react': - specifier: ^3.40.0 - version: 3.40.0(react@19.2.4) + specifier: ^3.41.0 + version: 3.41.0(react@19.2.4) jotai: specifier: ^2.19.0 version: 2.19.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4) @@ -2040,7 +2040,7 @@ importers: version: 4.3.1 mantine-react-table: specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.41.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) next: specifier: 16.2.1 version: 16.2.1(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0) @@ -2097,14 +2097,14 @@ importers: specifier: ^8.3.18 version: 8.3.18(react@19.2.4) '@tabler/icons-react': - specifier: ^3.40.0 - version: 3.40.0(react@19.2.4) + specifier: ^3.41.0 + version: 3.41.0(react@19.2.4) crypto-js: specifier: ^4.2.0 version: 4.2.0 mantine-react-table: specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.41.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) next: specifier: 16.2.1 version: 16.2.1(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0) @@ -2252,8 +2252,8 @@ importers: specifier: ^8.3.18 version: 8.3.18(react@19.2.4) '@tabler/icons-react': - specifier: ^3.40.0 - version: 3.40.0(react@19.2.4) + specifier: ^3.41.0 + version: 3.41.0(react@19.2.4) '@tiptap/extension-color': specifier: 3.20.5 version: 3.20.5(@tiptap/extension-text-style@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))) @@ -2313,7 +2313,7 @@ importers: version: 1.3.0(@mantine/form@8.3.18(react@19.2.4))(zod@4.3.6) mantine-react-table: specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.41.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) next: specifier: 16.2.1 version: 16.2.1(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0) @@ -4600,13 +4600,13 @@ packages: zod: optional: true - '@tabler/icons-react@3.40.0': - resolution: {integrity: sha512-oO5+6QCnna4a//mYubx4euZfECtzQZFDGsDMIdzZUhbdyBCT+3bRVFBPueGIcemWld4Vb/0UQ39C/cmGfGylAg==} + '@tabler/icons-react@3.41.0': + resolution: {integrity: sha512-8XKc3wZKf1icxqwIPSOO61M+dtf8yJPwAE/rtFAVzc5Ros+OjCqowfcoI5IpKK09RSo8s0hHrWvydGgnXqYILg==} peerDependencies: react: '>= 16' - '@tabler/icons@3.40.0': - resolution: {integrity: sha512-V/Q4VgNPKubRTiLdmWjV/zscYcj5IIk+euicUtaVVqF6luSC9rDngYWgST5/yh3Mrg/mYUwRv1YVTk71Jp0twQ==} + '@tabler/icons@3.41.0': + resolution: {integrity: sha512-arlig0nkaC9UGqTZuT1MMZepX29t3Ysx5HSy2UvmR+CZrhlNxZrCM6Z4qYBoaIO+2ICZykttjBCSpf+p/t0H3w==} '@tanstack/match-sorter-utils@8.19.4': resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} @@ -13334,12 +13334,12 @@ snapshots: typescript: 5.9.3 zod: 4.3.6 - '@tabler/icons-react@3.40.0(react@19.2.4)': + '@tabler/icons-react@3.41.0(react@19.2.4)': dependencies: - '@tabler/icons': 3.40.0 + '@tabler/icons': 3.41.0 react: 19.2.4 - '@tabler/icons@3.40.0': {} + '@tabler/icons@3.41.0': {} '@tanstack/match-sorter-utils@8.19.4': dependencies: @@ -17185,12 +17185,12 @@ snapshots: '@mantine/form': 8.3.18(react@19.2.4) zod: 4.3.6 - mantine-react-table@2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.40.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + mantine-react-table@2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tabler/icons-react@3.41.0(react@19.2.4))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@mantine/dates': 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(dayjs@1.11.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@mantine/hooks': 8.3.18(react@19.2.4) - '@tabler/icons-react': 3.40.0(react@19.2.4) + '@tabler/icons-react': 3.41.0(react@19.2.4) '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/react-table': 8.20.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-virtual': 3.11.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) From b30dbafbbbad468ff37ff11237a64ec29df62345 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 15:13:38 +0000 Subject: [PATCH 44/56] fix(deps): update tiptap monorepo to v3.21.0 (#5386) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/widgets/package.json | 32 +- pnpm-lock.yaml | 552 +++++++++++++++++----------------- 2 files changed, 292 insertions(+), 292 deletions(-) diff --git a/packages/widgets/package.json b/packages/widgets/package.json index d1348c707..46963188d 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -52,22 +52,22 @@ "@mantine/core": "^8.3.18", "@mantine/hooks": "^8.3.18", "@tabler/icons-react": "^3.41.0", - "@tiptap/extension-color": "3.20.5", - "@tiptap/extension-highlight": "3.20.5", - "@tiptap/extension-image": "3.20.5", - "@tiptap/extension-link": "^3.20.5", - "@tiptap/extension-placeholder": "^3.20.5", - "@tiptap/extension-table": "3.20.5", - "@tiptap/extension-table-cell": "3.20.5", - "@tiptap/extension-table-header": "3.20.5", - "@tiptap/extension-table-row": "3.20.5", - "@tiptap/extension-task-item": "3.20.5", - "@tiptap/extension-task-list": "3.20.5", - "@tiptap/extension-text-align": "3.20.5", - "@tiptap/extension-text-style": "3.20.5", - "@tiptap/extension-underline": "3.20.5", - "@tiptap/react": "^3.20.5", - "@tiptap/starter-kit": "^3.20.5", + "@tiptap/extension-color": "3.21.0", + "@tiptap/extension-highlight": "3.21.0", + "@tiptap/extension-image": "3.21.0", + "@tiptap/extension-link": "^3.21.0", + "@tiptap/extension-placeholder": "^3.21.0", + "@tiptap/extension-table": "3.21.0", + "@tiptap/extension-table-cell": "3.21.0", + "@tiptap/extension-table-header": "3.21.0", + "@tiptap/extension-table-row": "3.21.0", + "@tiptap/extension-task-item": "3.21.0", + "@tiptap/extension-task-list": "3.21.0", + "@tiptap/extension-text-align": "3.21.0", + "@tiptap/extension-text-style": "3.21.0", + "@tiptap/extension-underline": "3.21.0", + "@tiptap/react": "^3.21.0", + "@tiptap/starter-kit": "^3.21.0", "clsx": "^2.1.1", "dayjs": "^1.11.20", "mantine-form-zod-resolver": "^1.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56a13a326..869992772 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -225,7 +225,7 @@ importers: version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@mantine/tiptap': specifier: ^8.3.18 - version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))(@tiptap/react@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/react@3.21.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@million/lint': specifier: 1.0.14 version: 1.0.14(rollup@4.60.0)(webpack-sources@3.3.4) @@ -2255,53 +2255,53 @@ importers: specifier: ^3.41.0 version: 3.41.0(react@19.2.4) '@tiptap/extension-color': - specifier: 3.20.5 - version: 3.20.5(@tiptap/extension-text-style@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))) + specifier: 3.21.0 + version: 3.21.0(@tiptap/extension-text-style@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))) '@tiptap/extension-highlight': - specifier: 3.20.5 - version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) '@tiptap/extension-image': - specifier: 3.20.5 - version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) '@tiptap/extension-link': - specifier: ^3.20.5 - version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + specifier: ^3.21.0 + version: 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) '@tiptap/extension-placeholder': - specifier: ^3.20.5 - version: 3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + specifier: ^3.21.0 + version: 3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) '@tiptap/extension-table': - specifier: 3.20.5 - version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + specifier: 3.21.0 + version: 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) '@tiptap/extension-table-cell': - specifier: 3.20.5 - version: 3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/extension-table@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) '@tiptap/extension-table-header': - specifier: 3.20.5 - version: 3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/extension-table@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) '@tiptap/extension-table-row': - specifier: 3.20.5 - version: 3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/extension-table@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) '@tiptap/extension-task-item': - specifier: 3.20.5 - version: 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) '@tiptap/extension-task-list': - specifier: 3.20.5 - version: 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) '@tiptap/extension-text-align': - specifier: 3.20.5 - version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) '@tiptap/extension-text-style': - specifier: 3.20.5 - version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) '@tiptap/extension-underline': - specifier: 3.20.5 - version: 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + specifier: 3.21.0 + version: 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) '@tiptap/react': - specifier: ^3.20.5 - version: 3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: ^3.21.0 + version: 3.21.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tiptap/starter-kit': - specifier: ^3.20.5 - version: 3.20.5 + specifier: ^3.21.0 + version: 3.21.0 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -4665,215 +4665,215 @@ packages: '@testcontainers/redis@11.13.0': resolution: {integrity: sha512-Wx4oFLpR6/khRTFUUX7Nl8cCcjk85mpIWjwTe/PI39skdEG0QaJMAaeZG2r6fEB1YyXtSQGtiZiBUMafbRfh7w==} - '@tiptap/core@3.20.5': - resolution: {integrity: sha512-Pkjd41UJ4F6Z8cPV+gEvqnt1VhY2g66xMjbpxREs0ECA5jRezCNKSZcc2pueQRTMtmn1SaSzGM9U/ifhVlVYOA==} + '@tiptap/core@3.21.0': + resolution: {integrity: sha512-IfnQiuEeabDSPr1C/zHFTbnvlTf5z0DE/d/xz4C6bkL4ZBDJ3rr99h2qsaV0l8F+kbNswZMlQdM8rxNlMy95fQ==} peerDependencies: - '@tiptap/pm': ^3.20.5 + '@tiptap/pm': ^3.21.0 - '@tiptap/extension-blockquote@3.20.5': - resolution: {integrity: sha512-0wU6H/MWWes0rGzgSW6MMU6YDs/3ofUDkqmqCqmb+Siu1ZD0bpzOYpBtujgOYDY8moB9+zCE3G9HSYGcmZxHew==} + '@tiptap/extension-blockquote@3.21.0': + resolution: {integrity: sha512-JDM/RR6rM0dMCZ1UnEf7eqmN6pAdIa2llhN+E24HdTGNJCklMFhLAGE/OT8/1r7M0WWA9GVO7/PTe4EdGh6+lQ==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-bold@3.20.5': - resolution: {integrity: sha512-hraiiWkF58n8Jy0Wl3OGwjCTrGWwZZxez/IlexrzKQ/nMFdjDpensZucWwu59zhAM9fqZwGSLDtCFuak03WKnA==} + '@tiptap/extension-bold@3.21.0': + resolution: {integrity: sha512-iyEJRzG7XTCPlHwEDzUw3HnuYYCfL7lNpcCHmxcpYMrIUA8rv7EUxerIwApT6xY8hQ/07ljuJKgOyPvnJOOzuA==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-bubble-menu@3.20.5': - resolution: {integrity: sha512-6FsASu4o32bp3FzBVb5N2ERjrBy83DtJQAGv9/ycYqsgv2kq9DNlhvtNI7GPiTW7a73ZcImjIX+jEWrARbzOlQ==} + '@tiptap/extension-bubble-menu@3.21.0': + resolution: {integrity: sha512-/fabRRhhf8i4LAx9e8xz9ppqN5KgdJk3TxMuxAD5vAWGsejvhSoPa8O8H/QwwyntXm1Vue8aQiMHsUk48b2hGQ==} peerDependencies: - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 - '@tiptap/extension-bullet-list@3.20.5': - resolution: {integrity: sha512-MT3321R6F8AoVUEMJ5RiI0PQMenwvtmrSXoO1ehPCWq5TrSJLyXeZMJvZU+1CgfXk4XQU70RN78ib5+Zg+/FCg==} + '@tiptap/extension-bullet-list@3.21.0': + resolution: {integrity: sha512-PWNF+xwxgOeXYGD88sCQLKL0eBoQqjUnZNALxBjN3Y7x4llalh42rHOp2Nt2t6UbQgqTBtBzU/uFcussTpxreQ==} peerDependencies: - '@tiptap/extension-list': ^3.20.5 + '@tiptap/extension-list': ^3.21.0 - '@tiptap/extension-code-block@3.20.5': - resolution: {integrity: sha512-0YZnqfqZ1IjzKBM4aezw8j3LZWJFEfs4+mbizHNlnZSYpKzpESYLeaLWGO5SpqF9Z8tmYmSoCaf0fqi5LwgdIA==} + '@tiptap/extension-code-block@3.21.0': + resolution: {integrity: sha512-zrVOcOzDCjHQ8NJcC+qHmZZKiwnP/NMSb3qVJlSMN8TzuHept1MZCDa2Mbo70O6I0txo456SGuXB9sqV1vHmGg==} peerDependencies: - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 - '@tiptap/extension-code@3.20.5': - resolution: {integrity: sha512-jBZK/CfdMvg1gkNK/zNAk02IExpBPwUfNLRPiJvGhReL2Q73naKxZGQGp+5Lej9VaeFB70UKuRma/iIzuZbgsA==} + '@tiptap/extension-code@3.21.0': + resolution: {integrity: sha512-D7wA9jp+4X2r1f3FIoga73s6Rn4rmZY57Jes6a4rK3HY+3yHk1r057pPIZSY8Drfs97jxHQVFdfUYUomLSFYBA==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-color@3.20.5': - resolution: {integrity: sha512-M984t0/z/Vo2b0yMd90WUFoP94yv9MOxif/pWDK52nJrkn70VXOO0AzgWucLKWPDpn9gJZg73ry/GTHMLPuOYQ==} + '@tiptap/extension-color@3.21.0': + resolution: {integrity: sha512-LbzMcUPz148A+4g42GQ3FqkwI4+p8w+9W0s5HAo6aVMjsOaMSL12CqNhG4Kj/6zOq32WkVSa3FxpDNkuMn0jzA==} peerDependencies: - '@tiptap/extension-text-style': ^3.20.5 + '@tiptap/extension-text-style': ^3.21.0 - '@tiptap/extension-document@3.20.5': - resolution: {integrity: sha512-BpNGHtOTAjjs/6QbkrafMTlaJqb0gsPngFzd5rB0csxx7rYRE9nIEY+oZ44qMw161+2YB4u20L17SX2mUJANBw==} + '@tiptap/extension-document@3.21.0': + resolution: {integrity: sha512-7oCyzXI9ChvJQUlr23AURdfVar4OIsrYUvqdhEwo3bjcI/Q/j0KJiXfuh6ZzL5eVaINSailH53sZaGg4THQtUg==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-dropcursor@3.20.5': - resolution: {integrity: sha512-/lDG9OjvAv0ynmgFH17mt/GUeGT5bqu0iPW8JMgaRqlKawk+uUIv5SF5WkXS4SwxXih+hXdPEQD3PWZnxlQxAQ==} + '@tiptap/extension-dropcursor@3.21.0': + resolution: {integrity: sha512-6fsDSVAM2iz7eElvT6iivMrGBGjIP/oPigVZ/SPm6f31phaYhz6TIOEgV/Lr2jaPIOgyK4U0cU4Yd4KUBCmhzQ==} peerDependencies: - '@tiptap/extensions': ^3.20.5 + '@tiptap/extensions': ^3.21.0 - '@tiptap/extension-floating-menu@3.20.5': - resolution: {integrity: sha512-mTzBNUeAocinrxa5xV+5hGnnNCQB0pVI1GSBwUTHwdB7jNwBqfKAILmtLZONgmhxKWLmGa6WCA59sk+yDI+N0A==} + '@tiptap/extension-floating-menu@3.21.0': + resolution: {integrity: sha512-n2HzTB+I/5rAl8R/1sKMv92JiY1oDK1hroXizxEKYa6dskJcAMW0CfYyPcPOZWQQEe7qoeOvQISr2ooLAKW+Mw==} peerDependencies: '@floating-ui/dom': ^1.0.0 - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 - '@tiptap/extension-gapcursor@3.20.5': - resolution: {integrity: sha512-H+bRr+mqU/DQq1vfoMlppK1o+RbfSKYBMIcAMHWOez+C96MWfj5bhooVU2HLtl4XGmQxKGr3oEOCKDPdtRNThg==} + '@tiptap/extension-gapcursor@3.21.0': + resolution: {integrity: sha512-wGjgAoYBTvPAe9QYMI5px355XcNeMkaUrMY9IHbMqgqdmHcDxqooxM4H6sYVX2CRcHwXy4I8NQAoOhSYrQJDMg==} peerDependencies: - '@tiptap/extensions': ^3.20.5 + '@tiptap/extensions': ^3.21.0 - '@tiptap/extension-hard-break@3.20.5': - resolution: {integrity: sha512-+aILNDO7BsXf0IJ4/0BYh570usFK3Q1t/ZQd8zhHuO2ATeWeDVu1x2F+ouFS4X8fmoCcioMzw15aoz93GET6kQ==} + '@tiptap/extension-hard-break@3.21.0': + resolution: {integrity: sha512-6JFVSAOQ1qhQHi9mVcdn2/XO8YIMgYV8zjarzNUzP6Sf2waeE5BLXjlg6rIH/945sY1J+FndTojLru6gQ07a5A==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-heading@3.20.5': - resolution: {integrity: sha512-zXxuIrCSpzgXzRxgCbRE8DZ/NFuinVaniE3pp/9LYAWgRlsAyko8pI2XrVvzzXmDQqRGi2HrNVkNy1yutUWSWQ==} + '@tiptap/extension-heading@3.21.0': + resolution: {integrity: sha512-ji6VJmoRnDzAHYflEYEZohMHRi77UGLW1o3ua7UhI32iJ9nuYssbPNuzEeE4SvENMQwZRszad5+a+dKAa+NC7g==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-highlight@3.20.5': - resolution: {integrity: sha512-rcOOsmpUP7pKRd4TEQocHbKmS7QZZ2aM8N2Rwi5hwgK1ZvqObbcbBIIYpj5Uz72cNmWw26lV+0Y2sGHCsrU4jw==} + '@tiptap/extension-highlight@3.21.0': + resolution: {integrity: sha512-3f/bVgfm2dJZxalh07TThDxcTaeXJ+dpYyRY9trnFeHbhyYQXSy6yzkNhNcYB4Ua5jxpKQv4b9Q448QVh+KNzA==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-horizontal-rule@3.20.5': - resolution: {integrity: sha512-4UtpUHg8cRzxWjJUGtni5VnXYbhsO7ygf1H1pr4Rv63XMBg9lfYDeSwByIuVy9biEFP7eGEFnezzb5Zlh1btmQ==} + '@tiptap/extension-horizontal-rule@3.21.0': + resolution: {integrity: sha512-vNBnOfFEY62CoJPGo4nonRM7RiOvhII1vhoO+WFr1GxDqCAfmEFjToflt7JT1UJdo6lMVcD+aaaAgOiuSz5p6g==} peerDependencies: - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 - '@tiptap/extension-image@3.20.5': - resolution: {integrity: sha512-qxKupWKhX75Xc9GJ9Uel+KIFL9x6tb8W3RvQM1UolyJX/H7wyBO7sXp9XmKRkHZsDXRgLVbnkYBe+X83o16AIA==} + '@tiptap/extension-image@3.21.0': + resolution: {integrity: sha512-W9786a2K4LSZJMPeRLmoDulJeXOsM0ueRV2MHjTol7ikPRauROB7GUbAz9DyPAJHA2AGUfpswnGAYPO3tz5CLg==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-italic@3.20.5': - resolution: {integrity: sha512-7bZCgdJVTvhR5vSmNgFQbGvgRoC6m26KcUpHqWiKA95kLL5Wk4YlMCIqdiDpvJ1eakeFEvDcGZvFLg5+1NiQ+w==} + '@tiptap/extension-italic@3.21.0': + resolution: {integrity: sha512-2I8oPvwyXhRn1k8lbDFIutzvhtLEjoO5mmQCNX4TnT4PdxxaSrK9+ihYg12VeqhUeO7dg1MKiFqws0HVBrwzWg==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-link@3.20.5': - resolution: {integrity: sha512-0PukrSYnHX2CrGSThlKfQWxpPWmL7QAvdpDUraKknGvVNSH7tUjchTshy5JdLrn/SQAU92REowRCB6zzCNEFjA==} + '@tiptap/extension-link@3.21.0': + resolution: {integrity: sha512-oMU7Yve1sbgBsaFAUc2R0GPf4d3ZPVJeMUFC6b6X9rJIvx/IhEUEn9toQcSBGfp02uWK9NdQyIFYFdWlVXH++w==} peerDependencies: - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 - '@tiptap/extension-list-item@3.20.5': - resolution: {integrity: sha512-pFJCGLIDEin1Xn6B3ctbrZvtYyALARE56ya4SmaNfnl+Hww5MfkRR40obbwYD3byA1yOpr+bECy+I2clQqzTDw==} + '@tiptap/extension-list-item@3.21.0': + resolution: {integrity: sha512-1ZymZmlQVbAoC4q5x3cro0v5+3I6l+BHqbhIMQLjQFlAOJfcE0pvqRzAFW7PduxUj41tXEtsYqp2NREvO9F5Fg==} peerDependencies: - '@tiptap/extension-list': ^3.20.5 + '@tiptap/extension-list': ^3.21.0 - '@tiptap/extension-list-keymap@3.20.5': - resolution: {integrity: sha512-rmrQgOrUb0jKtFzVUfT0UNEST2sGM2Ve4lOl+1luh66RW6TD+gvgMk/qo12/Kffl9PUiqz8oYfk2qXCwFb6Bug==} + '@tiptap/extension-list-keymap@3.21.0': + resolution: {integrity: sha512-EzrfW3ASNFPWKhR8sNOq7Kqw4hvaTAOn4dlI7chB8HIANSrlyPOUn+eKAnO6HQgsUgsbjg2GbTUrGrxcoLykUg==} peerDependencies: - '@tiptap/extension-list': ^3.20.5 + '@tiptap/extension-list': ^3.21.0 - '@tiptap/extension-list@3.20.5': - resolution: {integrity: sha512-s+Y8Q7Orq+WQiwgFB/VPMYZe+6EAR2F69xCpvOynlzTInLO4cF6QpXomuGEYAZxLHe8ZBmeIaR7y8MH/OgjrDw==} + '@tiptap/extension-list@3.21.0': + resolution: {integrity: sha512-KeBlEtLrGce2d3dgL89hmwWEtREuzlW4XY5bYWpKNvCbFqvdSb3n7vkdkw32YclZmMWxAcABgW6ucCStkE0rsQ==} peerDependencies: - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 - '@tiptap/extension-ordered-list@3.20.5': - resolution: {integrity: sha512-Y/RIE3AxUNYAFKGMM5FLlTVKxxBvOh4JlLp/qYsOCY2nJdH0Jopl2FpfBYc4xoJwFSk8BELJ4Ow0adcYb15ksg==} + '@tiptap/extension-ordered-list@3.21.0': + resolution: {integrity: sha512-+d+0orokMfqaBfvr9tUBgGvo2ZCV+fR3JzsJTmnLBWOkhBSJN7H4pnfXPTue0qwspUwRmkLJxdIlU+J7HkMrng==} peerDependencies: - '@tiptap/extension-list': ^3.20.5 + '@tiptap/extension-list': ^3.21.0 - '@tiptap/extension-paragraph@3.20.5': - resolution: {integrity: sha512-mwuhwmff67IpGfOViyRvUC14IlkpsOnB+hSExVnq5+hCntjt/Cr2Z8GGOgzHeIM2FIS0UqX9Lv/b6ttUg4+Now==} + '@tiptap/extension-paragraph@3.21.0': + resolution: {integrity: sha512-cMPG/jCoZ9NmLZ5ctFziILaxJGfDtMTb5OLBhifMFZeMVwF1pEJIygDEfnX/HSruv507weZSQG4pERO2tRszMg==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-placeholder@3.20.5': - resolution: {integrity: sha512-PcZJbzJ8j+YcRdYWFjmFFVnOOx3nETA0pzMj9fXADi28vNABnrWLwsHAseh3I5QfLmywKQb9SpTSTU2LxQgBoA==} + '@tiptap/extension-placeholder@3.21.0': + resolution: {integrity: sha512-fs+cQqMh1d1naV6OgOhP/0qbRJwtw8DpQMj3/oqGKbaRRKIeecEaZPXYRd7MYa4e9K0Cfk5Bm0MNs9lwu/BYsw==} peerDependencies: - '@tiptap/extensions': ^3.20.5 + '@tiptap/extensions': ^3.21.0 - '@tiptap/extension-strike@3.20.5': - resolution: {integrity: sha512-uwhvmfS4ciGYJRLUg0AHbWsprMCwyWVWd2RXOLRm0ZQeWkvzonPXZhJvzIhIgsFkPLj/dsN5t0+LdiK4UQMnyA==} + '@tiptap/extension-strike@3.21.0': + resolution: {integrity: sha512-easnVaN11Wl+5fOtfvzJ10J762S9TRXZaMj5rLBGavgf82DCYHqhGhBqpLQrJ41r4nPABGlYvTRoxfvBLB74Lg==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-table-cell@3.20.5': - resolution: {integrity: sha512-NEobjpZ9f9CpQjnqTAsUHgcjWjTXcgWxqVfMmOWMyZLVh5kmEzDb7V8+lNplLnUUOFYynJcnzPTV7WieaD6Reg==} + '@tiptap/extension-table-cell@3.21.0': + resolution: {integrity: sha512-jQc4ruEbLgUMM3PahNZENFEiqg3LPBmrrvm/yhwY3KUaGAGfLVuduCogsbXIwu5OKNdMafH5HJz7CbdYqrOUlA==} peerDependencies: - '@tiptap/extension-table': ^3.20.5 + '@tiptap/extension-table': ^3.21.0 - '@tiptap/extension-table-header@3.20.5': - resolution: {integrity: sha512-pGKVMPpfvKYIIerCUdGXD9OavFRriKd8+9PSoCR1+wtPsD8EhFbGRR3d8InLFq/G7V77pmsO6Tbws5b+M2LGNQ==} + '@tiptap/extension-table-header@3.21.0': + resolution: {integrity: sha512-3IgtyFwBi+um1+HgywHAxLpZjJFoueDM4r2FKroSrvhAl+v1Z6d4BYp8dzRRimlee6QFx0hCE+VXpFvd83aiZw==} peerDependencies: - '@tiptap/extension-table': ^3.20.5 + '@tiptap/extension-table': ^3.21.0 - '@tiptap/extension-table-row@3.20.5': - resolution: {integrity: sha512-zDW4GtnWnKPW3EdPHY5LOhW6ztuIlMxGRUYS7KGVWj9Qm8JWMPWSRsluNwajQacuZOo4ODVfG1GUooFibkjZLA==} + '@tiptap/extension-table-row@3.21.0': + resolution: {integrity: sha512-A1uL9O5atz2ZBtLpikSXBwiULjg3FJBVBIwtpyHkUdA9V13yS/NnFqt2jrKgT1g3EGwGjkqgY7uK9OF8e2XJhg==} peerDependencies: - '@tiptap/extension-table': ^3.20.5 + '@tiptap/extension-table': ^3.21.0 - '@tiptap/extension-table@3.20.5': - resolution: {integrity: sha512-YvTB5OfGqjqHqutkSyywplouFvJwlsDTpZAjtAh5TzKfOan42aiVepmHVpteoQP6LH0mSjw69RndFMIYhIGmSQ==} + '@tiptap/extension-table@3.21.0': + resolution: {integrity: sha512-/iPVM/5TtRy7wGrLW/uL+qjMHsor26P/nH2nHasgPr/EIwliLGhHp9Gwjhix3OTyM2UK+VNcuhH6X50UbcByTQ==} peerDependencies: - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 - '@tiptap/extension-task-item@3.20.5': - resolution: {integrity: sha512-CJAZf6m9+OwbXdmQWy/tIfZ6/R8ArKEDgW1ljhVii2rhim8J33REMnAwgIHZVUL5Ke0eMgKKcmpHK9rSzQ3DVg==} + '@tiptap/extension-task-item@3.21.0': + resolution: {integrity: sha512-Rt7g61pcmgTHTy8mU2MDi4+FERKLAvoejJqmrCKf1CJUGzwWMsyRlKvS7FykpzfSrDiVlE7uSFCUkd/avgV0HQ==} peerDependencies: - '@tiptap/extension-list': ^3.20.5 + '@tiptap/extension-list': ^3.21.0 - '@tiptap/extension-task-list@3.20.5': - resolution: {integrity: sha512-umGvSBGePYMuzKzb6GaxL88VBJjM6bnhLHzVfN4w8Y+xi5TOb5GfL70S8KiMOmbAFeCKXKD9EoPdWQU7vJnmWA==} + '@tiptap/extension-task-list@3.21.0': + resolution: {integrity: sha512-uH2h4Z2JmafFH5TfWYmKbfO7+jt3mgF59ESj+Qc9Szd1j9JJvLOH6anrIxqsyi50jz0QCl/lPv38PKr/ugvjtQ==} peerDependencies: - '@tiptap/extension-list': ^3.20.5 + '@tiptap/extension-list': ^3.21.0 - '@tiptap/extension-text-align@3.20.5': - resolution: {integrity: sha512-r7xIt6AE1Zf6epMg2GLAD55YIqJewunQnLUeApLkcWdTNuCJqZUrmVIXUvTtj2Ivw0VIaPoCtnB+VBvXEuC3Kg==} + '@tiptap/extension-text-align@3.21.0': + resolution: {integrity: sha512-XaoUaq45nai9LLoUStumMItHhhCnmXirPR8mTjEDKZ2QD0Kg/YHEr6guJYc6qKB7YA+Wa1EgBIrZOv1+d2Pdag==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-text-style@3.20.5': - resolution: {integrity: sha512-x1tgCkF+KptIbNajduZFVxU5BazQTzpxmkyBEpXmyeiKrLDDv3IWGUsHXv8FWYUolcF9kmEJY5fIjOutvkF/yQ==} + '@tiptap/extension-text-style@3.21.0': + resolution: {integrity: sha512-MI/3X75D45Wa/+0Fp8nYfNJq5makkjtG7B2/lIzNUe0kEKJ56RVQoV1GQSXxAiFNyAYRfKFq8dJslhesW3EkWA==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-text@3.20.5': - resolution: {integrity: sha512-DMa9g5cH2d/Gx1KXtV7txTxaa6FBqgG8glmfug+N93VMb8sEZR1Yu1az++yAep4SGGq9GWIGZCUS3H6W66et6Q==} + '@tiptap/extension-text@3.21.0': + resolution: {integrity: sha512-Zx8QdB8a5iBuE4uO21c3BjmpBfaJEr2Jd1QFnsdgx11fm6P7dGgZaGko1FaINhfOPRGTN6O/kiF02cDMdOHa/w==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extension-underline@3.20.5': - resolution: {integrity: sha512-HMhr5KIAqZsEhlN8RxKHr/ql1a8OvBa9fLf69IwUVFolBcDExHWUtaEV/axYVRQJvvIy2oKGJxlJWDZ4hkotHQ==} + '@tiptap/extension-underline@3.21.0': + resolution: {integrity: sha512-gGmBEymbWnr8AIS8bI/bPw5rcwo7wAFcBw/TsLd1nAanu1dDqSRNDBrit3m02Ru+D88u2SfNvmbOPI1pz+1f5w==} peerDependencies: - '@tiptap/core': ^3.20.5 + '@tiptap/core': ^3.21.0 - '@tiptap/extensions@3.20.5': - resolution: {integrity: sha512-c4am6SznqfMnbUNSh4MvufiD7cMLdqL1BArok22uBgSWkS1sB9RVBYe8+x0jrOkk0UPEVlzDHbQ+nU+WmIyS2Q==} + '@tiptap/extensions@3.21.0': + resolution: {integrity: sha512-MN1uh5PmHT1F2BNsbc21MIS0AMFFA73oODlp/4ckpBR4o5AxRwV+8f43Cd52UL4MgMkKj/A+QfZ7iK9IDb0h5A==} peerDependencies: - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 - '@tiptap/pm@3.20.5': - resolution: {integrity: sha512-yJhDa7Chx2EqJMX/jlewBv0za7slf1dKHWYve1XaApuVHEkxl0Ul3EDbwnx316vIITkuFW/pWSwkSsAplyBeCw==} + '@tiptap/pm@3.21.0': + resolution: {integrity: sha512-I3sNo7oMMsR6FFz1ecvPb9uCF0VQuS2WV67j8Io2M7DJicRWCE/GM5DaiYjTeWBbnByk6BuG0txoJATAqPVliQ==} - '@tiptap/react@3.20.5': - resolution: {integrity: sha512-in37o1Eo7JCflcHyK/SDfgkJBgX0LRN3LMk+NdLPTerRnC0zhGLQlpfBL4591TLTOUQde7QIrLv98smYO2mj+w==} + '@tiptap/react@3.21.0': + resolution: {integrity: sha512-p+OKJgxmFB3t5nY3mjaqjKaj8vJX9++OkdrZLRxYuG7ScAHemWraWQ25sgNZl1LDaRYrdnNYxx9MP0CXOSB6ew==} peerDependencies: - '@tiptap/core': ^3.20.5 - '@tiptap/pm': ^3.20.5 + '@tiptap/core': ^3.21.0 + '@tiptap/pm': ^3.21.0 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 '@types/react-dom': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tiptap/starter-kit@3.20.5': - resolution: {integrity: sha512-L5E2TCGK0EiwmGIlwMsiwNTW1TLbfPF1Dsji4bSKRJnPbccZIMCB6qdId8v/Z+QGm85NVcBHeruQrDlKDddXBA==} + '@tiptap/starter-kit@3.21.0': + resolution: {integrity: sha512-w7fWxglDtqXFBgRYH+LforJyUboSAQllnWQbGVSTyX4rsICqZjkb3f6CTSUWpGoGKmlmbb2ZpEuoik7tur9d8Q==} '@tree-sitter-grammars/tree-sitter-yaml@0.7.1': resolution: {integrity: sha512-AynBwkIoQCTgjDR33bDUp9Mqq+YTco0is3n5hRApMqG9of/6A4eQsfC1/uSEeHSUyMQSYawcAWamsexnVpIP4Q==} @@ -12240,12 +12240,12 @@ snapshots: dependencies: react: 19.2.4 - '@mantine/tiptap@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))(@tiptap/react@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@mantine/tiptap@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@mantine/hooks@8.3.18(react@19.2.4))(@tiptap/extension-link@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))(@tiptap/react@3.21.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.4))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@mantine/hooks': 8.3.18(react@19.2.4) - '@tiptap/extension-link': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/react': 3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@tiptap/extension-link': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) + '@tiptap/react': 3.21.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react: 19.2.4 react-dom: 19.2.4(react@19.2.4) @@ -13403,168 +13403,168 @@ snapshots: - bare-buffer - supports-color - '@tiptap/core@3.20.5(@tiptap/pm@3.20.5)': + '@tiptap/core@3.21.0(@tiptap/pm@3.21.0)': dependencies: - '@tiptap/pm': 3.20.5 + '@tiptap/pm': 3.21.0 - '@tiptap/extension-blockquote@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-blockquote@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-bold@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-bold@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-bubble-menu@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': + '@tiptap/extension-bubble-menu@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': dependencies: '@floating-ui/dom': 1.7.4 - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 optional: true - '@tiptap/extension-bullet-list@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-bullet-list@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-code-block@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': + '@tiptap/extension-code-block@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 - '@tiptap/extension-code@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-code@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-color@3.20.5(@tiptap/extension-text-style@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)))': + '@tiptap/extension-color@3.21.0(@tiptap/extension-text-style@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)))': dependencies: - '@tiptap/extension-text-style': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) + '@tiptap/extension-text-style': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) - '@tiptap/extension-document@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-document@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-dropcursor@3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-dropcursor@3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extensions': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-floating-menu@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': + '@tiptap/extension-floating-menu@3.21.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': dependencies: '@floating-ui/dom': 1.7.4 - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 optional: true - '@tiptap/extension-gapcursor@3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-gapcursor@3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extensions': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-hard-break@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-hard-break@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-heading@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-heading@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-highlight@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-highlight@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-horizontal-rule@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': + '@tiptap/extension-horizontal-rule@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 - '@tiptap/extension-image@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-image@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-italic@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-italic@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-link@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': + '@tiptap/extension-link@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 linkifyjs: 4.3.2 - '@tiptap/extension-list-item@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-list-item@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-list-keymap@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-list-keymap@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': + '@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 - '@tiptap/extension-ordered-list@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-ordered-list@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-paragraph@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-paragraph@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-placeholder@3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-placeholder@3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extensions': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-strike@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-strike@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-table-cell@3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-table-cell@3.21.0(@tiptap/extension-table@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-table': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-table': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-table-header@3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-table-header@3.21.0(@tiptap/extension-table@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-table': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-table': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-table-row@3.20.5(@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-table-row@3.21.0(@tiptap/extension-table@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-table': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-table': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-table@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': + '@tiptap/extension-table@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 - '@tiptap/extension-task-item@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-task-item@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-task-list@3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5))': + '@tiptap/extension-task-list@3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) - '@tiptap/extension-text-align@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-text-align@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-text-style@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-text-style@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-text@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-text@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extension-underline@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))': + '@tiptap/extension-underline@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) - '@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)': + '@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 - '@tiptap/pm@3.20.5': + '@tiptap/pm@3.21.0': dependencies: prosemirror-changeset: 2.3.0 prosemirror-collab: 1.3.1 @@ -13585,10 +13585,10 @@ snapshots: prosemirror-transform: 1.10.2 prosemirror-view: 1.41.4 - '@tiptap/react@3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@tiptap/react@3.21.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) '@types/use-sync-external-store': 0.0.6 @@ -13597,37 +13597,37 @@ snapshots: react-dom: 19.2.4(react@19.2.4) use-sync-external-store: 1.4.0(react@19.2.4) optionalDependencies: - '@tiptap/extension-bubble-menu': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-floating-menu': 3.20.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) + '@tiptap/extension-bubble-menu': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) + '@tiptap/extension-floating-menu': 3.21.0(@floating-ui/dom@1.7.4)(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) transitivePeerDependencies: - '@floating-ui/dom' - '@tiptap/starter-kit@3.20.5': + '@tiptap/starter-kit@3.21.0': dependencies: - '@tiptap/core': 3.20.5(@tiptap/pm@3.20.5) - '@tiptap/extension-blockquote': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-bold': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-bullet-list': 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) - '@tiptap/extension-code': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-code-block': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-document': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-dropcursor': 3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) - '@tiptap/extension-gapcursor': 3.20.5(@tiptap/extensions@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) - '@tiptap/extension-hard-break': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-heading': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-horizontal-rule': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-italic': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-link': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-list': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/extension-list-item': 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) - '@tiptap/extension-list-keymap': 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) - '@tiptap/extension-ordered-list': 3.20.5(@tiptap/extension-list@3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5)) - '@tiptap/extension-paragraph': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-strike': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-text': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extension-underline': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5)) - '@tiptap/extensions': 3.20.5(@tiptap/core@3.20.5(@tiptap/pm@3.20.5))(@tiptap/pm@3.20.5) - '@tiptap/pm': 3.20.5 + '@tiptap/core': 3.21.0(@tiptap/pm@3.21.0) + '@tiptap/extension-blockquote': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-bold': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-bullet-list': 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) + '@tiptap/extension-code': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-code-block': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) + '@tiptap/extension-document': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-dropcursor': 3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) + '@tiptap/extension-gapcursor': 3.21.0(@tiptap/extensions@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) + '@tiptap/extension-hard-break': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-heading': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-horizontal-rule': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) + '@tiptap/extension-italic': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-link': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) + '@tiptap/extension-list': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) + '@tiptap/extension-list-item': 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) + '@tiptap/extension-list-keymap': 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) + '@tiptap/extension-ordered-list': 3.21.0(@tiptap/extension-list@3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0)) + '@tiptap/extension-paragraph': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-strike': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-text': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extension-underline': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0)) + '@tiptap/extensions': 3.21.0(@tiptap/core@3.21.0(@tiptap/pm@3.21.0))(@tiptap/pm@3.21.0) + '@tiptap/pm': 3.21.0 '@tree-sitter-grammars/tree-sitter-yaml@0.7.1(tree-sitter@0.22.4)': dependencies: From f380b383a38e7a9f5dbb40ef204b067d1297404a Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 18:13:33 +0200 Subject: [PATCH 45/56] chore(lang): updated translations from crowdin * chore(lang): update translations from crowdin * chore(lang): update translations from crowdin --------- Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas --- packages/translation/src/lang/en-gb.json | 126 ++++++++-------- packages/translation/src/lang/hu.json | 180 +++++++++++------------ packages/translation/src/lang/pt.json | 120 +++++++-------- 3 files changed, 213 insertions(+), 213 deletions(-) diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json index 353bf2d3a..ba132f380 100644 --- a/packages/translation/src/lang/en-gb.json +++ b/packages/translation/src/lang/en-gb.json @@ -1125,17 +1125,17 @@ "userAvatar": { "menu": { "switchToDarkMode": "Switch to dark mode", - "switchToLightMode": "Switch to light mode", - "management": "Management", - "preferences": "Your preferences", - "logout": "Log-out", + "switchToLightMode": "التبديل إلى الوضع الفاتح", + "management": "الإدارة", + "preferences": "تفضيلاتك", + "logout": "تسجيل الخروج", "login": "Log-in", - "homeBoard": "Your home board", + "homeBoard": "لوحة منزلك", "loggedOut": "Logged out", - "updateAvailable": "New update available: {tag}" + "updateAvailable": "{countUpdates} يتوفر تحديث جديد: {tag}" } }, - "dangerZone": "Danger zone", + "dangerZone": "المنطقة الخطرة", "noResults": "No results have been found", "unsavedChanges": "You have unsaved changes!", "servers": "Servers", @@ -3157,98 +3157,98 @@ }, "navbar": { "items": { - "home": "", - "boards": "", - "apps": "", - "integrations": "", - "searchEngies": "", - "medias": "", + "home": "الصفحة الرئسية", + "boards": "الألواح", + "apps": "التطبيقات", + "integrations": "التكاملات", + "searchEngies": "محركات البحث", + "medias": "الوسائط", "users": { - "label": "", + "label": "المستخدمين", "items": { - "manage": "", - "invites": "", - "groups": "" + "manage": "إدارة المستخدمين", + "invites": "الدعوات", + "groups": "المجموعات" } }, "tools": { - "label": "", + "label": "الأدوات", "items": { - "docker": "", + "docker": "الحاويات", "kubernetes": "", - "logs": "", - "api": "", - "certificates": "", - "tasks": "" + "logs": "السجلات", + "api": "API", + "certificates": "الشهادات", + "tasks": "المهام" } }, - "settings": "", + "settings": "الإعدادات", "help": { - "label": "", + "label": "المساعدة", "items": { - "documentation": "", - "submitIssue": "", - "discord": "", - "sourceCode": "" + "documentation": "المستندات", + "submitIssue": "إبلاغ عن مشكلة", + "discord": "مجتمع ديسكورد", + "sourceCode": "كود المصدر" } }, - "about": "" + "about": "حول" } }, "page": { "home": { "statistic": { - "board": "", - "user": "", - "invite": "", - "integration": "", - "app": "", - "group": "", - "searchEngine": "", - "media": "" + "board": "الألواح", + "user": "مستخدمين", + "invite": "دعوات", + "integration": "التكاملات", + "app": "البرامج", + "group": "المجموعات", + "searchEngine": "محركات البحث", + "media": "الوسائط" }, "statisticLabel": { - "boards": "", - "resources": "", - "authentication": "", - "authorization": "" + "boards": "اللوحات", + "resources": "الموارد", + "authentication": "المصادقة", + "authorization": "الأذونات" }, "heroBanner": { - "title": "", - "subtitle": "" + "title": "مرحبًا بعودتك إلى", + "subtitle": "{app} اللوحات" } }, "board": { - "title": "", + "title": "لوحاتك", "action": { "new": { - "label": "" + "label": "لوحة جديدة" }, "open": { - "label": "" + "label": "فتح اللوحة" }, "settings": { - "label": "" + "label": "الإعدادات" }, "setHomeBoard": { - "label": "", + "label": "تعيينه كلوحة رئيسية", "badge": { - "label": "", + "label": "الرئيسية", "tooltip": "" } }, "setMobileHomeBoard": { - "label": "", + "label": "تعيينه كصفحتك الرئيسية للجوال", "badge": { - "label": "", + "label": "الجوال", "tooltip": "" } }, "duplicate": { - "label": "" + "label": "تكرار اللوحة" }, "delete": { - "label": "", + "label": "حذف نهائيًا", "confirm": { "title": "", "description": "" @@ -3337,10 +3337,10 @@ } }, "invite": { - "title": "", + "title": "إدارة دعوات المستخدمين", "action": { "new": { - "title": "", + "title": "دعوة جديدة", "description": "" }, "copy": { @@ -3356,13 +3356,13 @@ }, "field": { "id": { - "label": "" + "label": "المعرّف" }, "creator": { - "label": "" + "label": "المنشئ" }, "expirationDate": { - "label": "" + "label": "انتهاء الصلاحية" }, "token": { "label": "" @@ -4129,7 +4129,7 @@ "manage": { "label": "", "boards": { - "label": "" + "label": "الألواح" }, "integrations": { "label": "", @@ -4162,7 +4162,7 @@ } }, "users": { - "label": "", + "label": "المستخدمين", "create": { "label": "" }, @@ -4173,7 +4173,7 @@ "label": "" }, "invites": { - "label": "" + "label": "الدعوات" } }, "tools": { @@ -4230,7 +4230,7 @@ } }, "search": { - "placeholder": "", + "placeholder": "البحث عن", "nothingFound": "", "error": { "fetch": "" diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json index 04db91b6f..7b541e118 100644 --- a/packages/translation/src/lang/hu.json +++ b/packages/translation/src/lang/hu.json @@ -51,7 +51,7 @@ "title": "Import token megadása", "field": { "token": { - "label": "", + "label": "Token", "description": "Írja be a megjelenített import tokent az előző homarr példányból" } }, @@ -153,10 +153,10 @@ "label": "Ikonok használata a pingekhez" }, "defaultSearchEngine": { - "label": "" + "label": "Alapértelmezett kereső" }, "openSearchInNewTab": { - "label": "" + "label": "Nyissa meg a keresési eredményeket új ablakban" } }, "error": { @@ -219,10 +219,10 @@ "changeSearchPreferences": { "notification": { "success": { - "message": "" + "message": "A keresési beállítások sikeresen megváltoztak" }, "error": { - "message": "" + "message": "A keresési beállításokat nem sikerült megváltoztatni" } } }, @@ -307,12 +307,12 @@ "name": "Név", "members": "Tagok", "homeBoard": { - "label": "", - "description": "" + "label": "Főoldal", + "description": "Csak a csoport számára elérhető oldalak választhatók ki" }, "mobileBoard": { - "label": "", - "description": "" + "label": "Mobiloldal", + "description": "Csak a csoport számára elérhető oldalak választhatók ki" } }, "permission": { @@ -514,12 +514,12 @@ "board": { "notification": { "success": { - "title": "", - "message": "" + "title": "Beállítások elmentve", + "message": "Oldal beállítások sikeresen elmentve" }, "error": { - "title": "", - "message": "" + "title": "Nem sikerült menteni a beállításokat", + "message": "Az oldalbeállítások nem menthetők" } } } @@ -527,21 +527,21 @@ "changePosition": { "notification": { "success": { - "message": "" + "message": "Pozíció sikeresen megváltozott" }, "error": { - "message": "" + "message": "Pozíció nem módosítható" } } } }, "defaultGroup": { - "name": "", - "description": "" + "name": "Alapértelmezett csoport", + "description": "{name} - Minden bejelentkezett felhasználó" } }, "app": { - "search": "", + "search": "Alkalmazás megtalálása", "page": { "list": { "title": "Alkalmazások", @@ -599,12 +599,12 @@ "label": "Leírás" }, "url": { - "label": "" + "label": "Url" }, "useDifferentUrlForPing": { "checkbox": { - "label": "", - "description": "" + "label": "Más URL használata a ping-hez", + "description": "Hasznos, ha a Homarr közvetlenül, egy belső hosztnév vagy hálózaton keresztül fér hozzá, hogy elkerülje az internetszolgáltató által használt sávszélesség terhelését" } } }, @@ -612,17 +612,17 @@ "select": { "label": "Alkalmazás kiválasztása", "notFound": "Nem található alkalmazás", - "search": "", - "noResults": "", - "action": "", - "title": "" + "search": "Alkalmazás keresése", + "noResults": "Nincs találat", + "action": "Kiválasztás {app}", + "title": "Válassz egy programot az oldalhoz adáshoz" }, "create": { - "title": "", - "description": "", - "action": "" + "title": "Új alkalmazás készítése", + "description": "Új alkalmazás létrehozása ", + "action": "Alkalmazás készítő megnyitása" }, - "add": "" + "add": "Alkalmazás hozzáadása" } }, "integration": { @@ -649,14 +649,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Meglévő", + "label": "Meglévő alkalmazás kiválasztása" }, "new": { - "title": "", + "title": "Új", "url": { - "label": "", - "description": "" + "label": "Alkalmazás url", + "description": "Az url, amelyre az alkalmazás a műszerfalról történő eléréskor irányít" } } } @@ -676,9 +676,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Alkalmazás megtalálása", + "remove": "Leválasztás", + "select": "Válasszon ki egy alkalmazást a hivatkozáshoz" } } }, @@ -702,21 +702,21 @@ "label": "Név" }, "url": { - "label": "" + "label": "Url" }, "attemptSearchEngineCreation": { - "label": "", - "description": "" + "label": "Keresőmotor létrehozása", + "description": "A \"{kind}\" integráció használható a keresőmotorokkal. Jelölje be ezt a jelölőnégyzetet, ha automatikusan szeretné konfigurálni a keresőmotort." }, "app": { - "sectionTitle": "" + "sectionTitle": "Hivattkozott alkalmazás" }, "createApp": { - "label": "", - "description": "" + "label": "Alkalmazás létrehozása", + "description": "Hozzon létre egy alkalmazást, amelynek ugyanaz a neve és ikonja van, mint az integrációnak. Hagyja üresen az alábbi beviteli mezőt, hogy az alkalmazás az integrációs URL-lel jöjjön létre." }, "appHref": { - "placeholder": "" + "placeholder": "Egyéni alkalmazás URL" } }, "action": { @@ -730,59 +730,59 @@ "error": { "common": { "cause": { - "title": "" + "title": "Részletesebb leírás a problémáról" } }, "unknown": { - "title": "", - "description": "" + "title": "Ismeretlen hiba", + "description": "Egy ismeretlen hiba történt, nyissa meg a részleteket alul, hogy többet megtudjon" }, "parse": { - "title": "", - "description": "" + "title": "Elemzési hiba", + "description": "A válasz nem volt elemezhető. Kérjük, ellenőrizze, hogy az URL a szolgáltatás alap URL-jére mutat-e." }, "authorization": { - "title": "", - "description": "" + "title": "Hitelesítési hiba", + "description": "A kérés nem volt engedélyezett. Kérjük, ellenőrizze, hogy a hitelesítő adatok helyesek-e, és hogy a megfelelő engedélyekkel vannak-e beállítva." }, "statusCode": { - "title": "", - "description": "", - "otherDescription": "", + "title": "Válaszhiba", + "description": "Váratlan {statusCode} ({reason}) választ kapott a címen. Kérjük, ellenőrizze, hogy az URL az integráció alap URL-jére mutat-e.", + "otherDescription": "Váratlan {statusCode} választ kapott a címen. Kérjük, ellenőrizze, hogy az URL az integráció alap URL-jére mutat-e.", "reason": { - "badRequest": "", - "notFound": "", - "tooManyRequests": "", - "internalServerError": "", - "serviceUnavailable": "", - "gatewayTimeout": "" + "badRequest": "Hibás kérés", + "notFound": "Nem található", + "tooManyRequests": "Túl sok kérés", + "internalServerError": "Belső szerverhiba", + "serviceUnavailable": "A szolgáltatás nem elérhető", + "gatewayTimeout": "Átjáró időtúllépés" } }, "certificate": { - "title": "", + "title": "Tanúsítványhiba", "description": { - "expired": "", - "notYetValid": "", - "untrusted": "", - "hostnameMismatch": "" + "expired": "A tanúsítvány lejárt.", + "notYetValid": "A tanúsítvány még nem érvényes.", + "untrusted": "A tanúsítvány nem megbízható.", + "hostnameMismatch": "A tanúsítványban szereplő hosztnév nem egyezik meg az URL-lel." }, "alert": { "permission": { - "title": "", - "message": "" + "title": "Nincsenek megfelelő engedélyek", + "message": "Önnek nincs joga tanúsítványokat megbízhatónak nyilvánítani vagy feltölteni. Kérjük, lépjen kapcsolatba a rendszergazdájával, hogy feltölthesse a szükséges gyökér tanúsítványt." }, "hostnameMismatch": { - "title": "", - "message": "" + "title": "Állomásnév eltérés", + "message": "A tanúsítványban szereplő hosztnév nem egyezik meg azzal a hosztnévvel, amelyhez kapcsolódik. Ez biztonsági kockázatot jelezhet, de mégis dönthet úgy, hogy megbízik ebben a tanúsítványban." }, "extract": { - "title": "", - "message": "" + "title": "A tanúsító hatóság (CA) tanúsítványának kinyerése sikertelen", + "message": "Csak a lánc nélküli, önaláírt tanúsítványok tölthetők le automatikusan. Ha önaláírt tanúsítványt használ, kérjük, feltétlenül töltse fel manuálisan a tanúsító hatóság (CA) tanúsítványát. Az ehhez szükséges lépések leírását itt találja: ." } }, "action": { "retry": { - "label": "" + "label": "Újrapróbál" }, "trust": { "label": "" @@ -920,8 +920,8 @@ "message": "Az útvonal valószínűleg nem helyes" }, "tooManyRequests": { - "title": "", - "message": "" + "title": "Túl sok kérés adott idő alatt", + "message": "Túl sok kérést küldött. Valószínűleg a célrendszer korlátozza vagy elutasítja a kéréseket" } } }, @@ -955,36 +955,36 @@ "newLabel": "Új jelszó" }, "tokenId": { - "label": "", - "newLabel": "" + "label": "Token azonosító", + "newLabel": "Új token azonosító" }, "realm": { - "label": "", - "newLabel": "" + "label": "Tartomány", + "newLabel": "Új tartomány" }, "personalAccessToken": { - "label": "", - "newLabel": "" + "label": "Személyes Hozzáférési Token", + "newLabel": "Új Személyes Hozzáférési Token" }, "topic": { - "label": "", - "newLabel": "" + "label": "Téma", + "newLabel": "Új téma" }, "url": { - "label": "", - "newLabel": "" + "label": "Url", + "newLabel": "Új url" }, "opnsenseApiKey": { - "label": "", - "newLabel": "" + "label": "API kulcs (Kulcs)", + "newLabel": "Új API Kulcs (Kulcs)" }, "opnsenseApiSecret": { - "label": "", - "newLabel": "" + "label": "Api Kulcs (Titkos)", + "newLabel": "Új API Kulcs (Titkos)" }, "githubAppId": { - "label": "", - "newLabel": "" + "label": "App Azonosító", + "newLabel": "Új App Azonosító" }, "githubInstallationId": { "label": "", diff --git a/packages/translation/src/lang/pt.json b/packages/translation/src/lang/pt.json index e4494bde9..0362995fe 100644 --- a/packages/translation/src/lang/pt.json +++ b/packages/translation/src/lang/pt.json @@ -1627,7 +1627,7 @@ "label": "Permitir geolocalização" }, "allowModals": { - "label": "" + "label": "Permitir modais" } }, "error": { @@ -1862,7 +1862,7 @@ "label": "Mostrar informações da memória" }, "gpu": { - "label": "" + "label": "Mostrar informações da GPU" }, "showUptime": { "label": "Exibir tempo de atividade" @@ -2003,58 +2003,58 @@ } }, "tracearr": { - "name": "", - "description": "", + "name": "Tracearr", + "description": "Monitoramento avançado de servidor de mídia com dados detalhados de transmissão e transcodificação\n", "option": { "showStreams": { - "label": "" + "label": "Exibir transmissões ativas" }, "showStats": { - "label": "" + "label": "Exibir resumo de estatísticas" }, "showRecentActivity": { - "label": "" + "label": "Exibir Atividade Recente" }, "showViolations": { - "label": "" + "label": "Mostrar Violações" } }, "stats": { - "activeStreams": "", - "totalUsers": "", - "transcodes": "", - "bandwidth": "" + "activeStreams": "Streams Ativas", + "totalUsers": "Total de usuários", + "transcodes": "Transcodificações", + "bandwidth": "Largura da banda" }, "streams": { - "empty": "", - "user": "", - "media": "", - "state": "", - "quality": "", - "device": "", - "progress": "", + "empty": "Sem transmissões ativas", + "user": "Usuário", + "media": "Mídia", + "state": "Estado", + "quality": "Qualidade", + "device": "Dispositivo", + "progress": "Progresso", "videoDecision": { - "directPlay": "", - "transcode": "", - "directStream": "" + "directPlay": "Reprodução direta", + "transcode": "Transcodificação", + "directStream": "Transmissão direta" } }, "recentActivity": { - "title": "", - "empty": "", - "watched": "", - "partial": "" + "title": "Atividade recente", + "empty": "Nenhuma atividade recente", + "watched": "Assistido", + "partial": "Parcial" }, "violations": { - "title": "", - "empty": "", - "rule": "", - "user": "" + "title": "Violações", + "empty": "Não há violações recentes", + "rule": "Regra", + "user": "Usuário" }, - "noSectionsEnabled": "", + "noSectionsEnabled": "Nenhuma seção habilitada", "error": { - "noIntegration": "", - "internalServerError": "" + "noIntegration": "Nenhuma integração Coolify configurada", + "internalServerError": "Falha ao buscar dados do Tracearr" } }, "common": { @@ -2153,50 +2153,50 @@ } }, "immich-serverStats": { - "name": "", - "description": "", + "name": "Estatísticas do Servidor Immich", + "description": "Informações sobre sua instância do Immich", "option": { "showUsers": { - "label": "", - "description": "" + "label": "Mostrar usuários", + "description": "Mostrar a contagem de usuários na sua instância" }, "showPhotos": { - "label": "", - "description": "" + "label": "Mostrar Fotos", + "description": "Mostrar a contagem de fotos na sua instância" }, "showVideos": { - "label": "", - "description": "" + "label": "Mostrar vídeos", + "description": "Mostrar contagem de vídeos na sua instância" }, "showStorage": { - "label": "", - "description": "" + "label": "Mostrar armazenamento", + "description": "Mostrar a quantidade total de armazenamento utilizado" } }, - "users": "", - "photos": "", - "videos": "", - "storage": "" + "users": "Usuários", + "photos": "Fotos", + "videos": "Vídeos", + "storage": "Armazenamento Utilizado" }, "immich-albumCarousel": { - "name": "", + "name": "Álbum do Immich", "option": { "albumId": { - "label": "", - "description": "" + "label": "ID do Álbum", + "description": "Esta é uma identificação única que se refere ao seu álbum Immich. Você pode encontrar essa identificação abrindo um álbum e copiando a string única da URL, por exemplo 'a21aca09-9f05-47dc-b1a1-7b53c547226e'" }, "rotationIntervalSeconds": { - "label": "", - "description": "" + "label": "Intervalo em segundos", + "description": "Girar entre as imagens no álbum a cada X segundos. Deve ser pelo menos 1. Deve estar abaixo de 3600." }, "showPhotoInfo": { - "label": "", - "description": "" + "label": "Mostrar informações da foto", + "description": "Exibir a data da imagem e o índice atual na parte inferior da apresentação" } }, - "description": "", - "noAlbumSelected": "", - "noPhotos": "" + "description": "Apresentação de imagens em seu álbum Imich", + "noAlbumSelected": "Nenhum álbum selecionado, edite o widget e escolha um álbum", + "noPhotos": "Nenhuma foto neste álbum" }, "downloads": { "name": "Cliente de Download", @@ -2731,7 +2731,7 @@ "option": { "cpu": "CPU", "memory": "Memória", - "gpu": "", + "gpu": "GPU", "network": "Rede" } }, @@ -2748,7 +2748,7 @@ "card": { "cpu": "CPU", "memory": "MEM", - "gpu": "", + "gpu": "GPU", "network": "REDE", "up": "ENVIO", "down": "RECEBIDO" @@ -3583,7 +3583,7 @@ "label": "Clima" }, "tracearr": { - "label": "" + "label": "Tracearr" } }, "interval": { From 0a78e3f12aa99509f42d7af647a478c5abaf5c96 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 19:02:54 +0000 Subject: [PATCH 46/56] fix(deps): update dependency drizzle-orm to ^0.45.2 (#5388) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/core/package.json | 2 +- packages/db/package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 2c2c7c8e2..92ca35f88 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -40,7 +40,7 @@ "@t3-oss/env-nextjs": "^0.13.11", "better-sqlite3": "^12.8.0", "dns-caching": "^0.2.9", - "drizzle-orm": "^0.45.1", + "drizzle-orm": "^0.45.2", "ioredis": "5.10.1", "mysql2": "3.20.0", "pg": "^8.20.0", diff --git a/packages/db/package.json b/packages/db/package.json index 95a6efa60..e322c0374 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -54,7 +54,7 @@ "better-sqlite3": "^12.8.0", "dotenv": "^17.3.1", "drizzle-kit": "^0.31.10", - "drizzle-orm": "^0.45.1", + "drizzle-orm": "^0.45.2", "drizzle-zod": "^0.8.3", "mysql2": "3.20.0", "pg": "^8.20.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 869992772..0eb2b3369 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -899,8 +899,8 @@ importers: specifier: ^0.2.9 version: 0.2.9 drizzle-orm: - specifier: ^0.45.1 - version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) + specifier: ^0.45.2 + version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) ioredis: specifier: 5.10.1 version: 5.10.1 @@ -1162,11 +1162,11 @@ importers: specifier: ^0.31.10 version: 0.31.10 drizzle-orm: - specifier: ^0.45.1 - version: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) + specifier: ^0.45.2 + version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6) + version: 0.8.3(drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6) mysql2: specifier: 3.20.0 version: 3.20.0(@types/node@24.12.0) @@ -6427,8 +6427,8 @@ packages: resolution: {integrity: sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw==} hasBin: true - drizzle-orm@0.45.1: - resolution: {integrity: sha512-Te0FOdKIistGNPMq2jscdqngBRfBpC8uMFVwqjf6gtTVJHIQ/dosgV/CLBU2N4ZJBsXL5savCba9b0YJskKdcA==} + drizzle-orm@0.45.2: + resolution: {integrity: sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=4' @@ -15311,7 +15311,7 @@ snapshots: esbuild: 0.25.12 tsx: 4.21.0 - drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0): + drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0): optionalDependencies: '@libsql/client-wasm': 0.14.0 '@types/better-sqlite3': 7.6.13 @@ -15321,9 +15321,9 @@ snapshots: mysql2: 3.20.0(@types/node@24.12.0) pg: 8.20.0 - drizzle-zod@0.8.3(drizzle-orm@0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6): + drizzle-zod@0.8.3(drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0))(zod@4.3.6): dependencies: - drizzle-orm: 0.45.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) + drizzle-orm: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.8.0)(gel@2.0.0)(mysql2@3.20.0(@types/node@24.12.0))(pg@8.20.0) zod: 4.3.6 dunder-proto@1.0.1: From c363cf8457c9e659e8b0793389e45b623c57d569 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 19:09:32 +0000 Subject: [PATCH 47/56] chore(deps): update dependency axios@>=1.0.0 <1.8.2 to >=1.14.0 (#5389) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4bde9a7e8..0de126907 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "overrides": { "@babel/helpers@<7.26.10": ">=7.29.2", "@babel/runtime@<7.26.10": ">=7.29.2", - "axios@>=1.0.0 <1.8.2": ">=1.13.6", + "axios@>=1.0.0 <1.8.2": ">=1.14.0", "brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.5", "brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.5", "esbuild@<=0.24.2": ">=0.27.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0eb2b3369..a844edc8a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: overrides: '@babel/helpers@<7.26.10': '>=7.29.2' '@babel/runtime@<7.26.10': '>=7.29.2' - axios@>=1.0.0 <1.8.2: '>=1.13.6' + axios@>=1.0.0 <1.8.2: '>=1.14.0' brace-expansion@>=2.0.0 <=2.0.1: '>=5.0.5' brace-expansion@>=1.0.0 <=1.1.11: '>=5.0.5' esbuild@<=0.24.2: '>=0.27.4' From fa40b6b647b884a7f10c268a22330e0e68b50d4d Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 18:50:09 +0000 Subject: [PATCH 48/56] fix(deps): update turbo monorepo to ^2.8.21 (#5391) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 90 ++++++++++++++++++------------------- tooling/eslint/package.json | 2 +- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index 0de126907..958de7525 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@semantic-release/npm": "^13.1.5", "@semantic-release/release-notes-generator": "^14.1.0", "@testcontainers/redis": "^11.13.0", - "@turbo/gen": "^2.8.20", + "@turbo/gen": "^2.8.21", "@vitejs/plugin-react": "^5.2.0", "@vitest/coverage-v8": "^4.1.2", "@vitest/ui": "^4.1.2", @@ -54,7 +54,7 @@ "prettier": "^3.8.1", "semantic-release": "^25.0.3", "testcontainers": "^11.13.0", - "turbo": "^2.8.20", + "turbo": "^2.8.21", "typescript": "^5.9.3", "vite-tsconfig-paths": "^6.1.1", "vitest": "^4.1.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a844edc8a..a374d09bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -62,8 +62,8 @@ importers: specifier: ^11.13.0 version: 11.13.0 '@turbo/gen': - specifier: ^2.8.20 - version: 2.8.20(@types/node@24.12.0) + specifier: ^2.8.21 + version: 2.8.21(@types/node@24.12.0) '@vitejs/plugin-react': specifier: ^5.2.0 version: 5.2.0(vite@7.1.12(@types/node@24.12.0)(sass@1.98.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.5.1)) @@ -95,8 +95,8 @@ importers: specifier: ^11.13.0 version: 11.13.0 turbo: - specifier: ^2.8.20 - version: 2.8.20 + specifier: ^2.8.21 + version: 2.8.21 typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2364,8 +2364,8 @@ importers: specifier: ^10.1.8 version: 10.1.8(eslint@9.39.4) eslint-config-turbo: - specifier: ^2.8.20 - version: 2.8.20(eslint@9.39.4)(turbo@2.8.20) + specifier: ^2.8.21 + version: 2.8.21(eslint@9.39.4)(turbo@2.8.21) eslint-plugin-import: specifier: ^2.32.0 version: 2.32.0(@typescript-eslint/parser@8.57.2(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4) @@ -4936,37 +4936,37 @@ packages: '@tsconfig/svelte@1.0.13': resolution: {integrity: sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA==} - '@turbo/darwin-64@2.8.20': - resolution: {integrity: sha512-FQ9EX1xMU5nbwjxXxM3yU88AQQ6Sqc6S44exPRroMcx9XZHqqppl5ymJF0Ig/z3nvQNwDmz1Gsnvxubo+nXWjQ==} + '@turbo/darwin-64@2.8.21': + resolution: {integrity: sha512-kfGoM0Iw8ZNZpbds+4IzOe0hjvHldqJwUPRAjXJi3KBxg/QOZL95N893SRoMtf2aJ+jJ3dk32yPkp8rvcIjP9g==} cpu: [x64] os: [darwin] - '@turbo/darwin-arm64@2.8.20': - resolution: {integrity: sha512-Gpyh9ATFGThD6/s9L95YWY54cizg/VRWl2B67h0yofG8BpHf67DFAh9nuJVKG7bY0+SBJDAo5cMur+wOl9YOYw==} + '@turbo/darwin-arm64@2.8.21': + resolution: {integrity: sha512-o9HEflxUEyr987x0cTUzZBhDOyL6u95JmdmlkH2VyxAw7zq2sdtM5e72y9ufv2N5SIoOBw1fVn9UES5VY5H6vQ==} cpu: [arm64] os: [darwin] - '@turbo/gen@2.8.20': - resolution: {integrity: sha512-SazKn5Pc9mitpc3uc6Pmf+QhkNtvF5t6Ro0V1cuc0QFhblbfw4KwWqFnnfTEmGzgDtb2CZJB3BK8LFMBX52eLg==} + '@turbo/gen@2.8.21': + resolution: {integrity: sha512-6MIArRRT2Re6Y3xF+Cn/aJY9zZZpsZro3LeDWpIOyTNscAIz0pRNfIHNlvwlwSHEkL9haVxQenuJxogFR3IVEQ==} hasBin: true - '@turbo/linux-64@2.8.20': - resolution: {integrity: sha512-p2QxWUYyYUgUFG0b0kR+pPi8t7c9uaVlRtjTTI1AbCvVqkpjUfCcReBn6DgG/Hu8xrWdKLuyQFaLYFzQskZbcA==} + '@turbo/linux-64@2.8.21': + resolution: {integrity: sha512-uTxlCcXWy5h1fSSymP8XSJ+AudzEHMDV3IDfKX7+DGB8kgJ+SLoTUAH7z4OFA7I/l2sznz0upPdbNNZs91YMag==} cpu: [x64] os: [linux] - '@turbo/linux-arm64@2.8.20': - resolution: {integrity: sha512-Gn5yjlZGLRZWarLWqdQzv0wMqyBNIdq1QLi48F1oY5Lo9kiohuf7BPQWtWxeNVS2NgJ1+nb/DzK1JduYC4AWOA==} + '@turbo/linux-arm64@2.8.21': + resolution: {integrity: sha512-cdHIcxNcihHHkCHp0Y4Zb60K4Qz+CK4xw1gb6s/t/9o4SMeMj+hTBCtoW6QpPnl9xPYmxuTou8Zw6+cylTnREg==} cpu: [arm64] os: [linux] - '@turbo/windows-64@2.8.20': - resolution: {integrity: sha512-vyaDpYk/8T6Qz5V/X+ihKvKFEZFUoC0oxYpC1sZanK6gaESJlmV3cMRT3Qhcg4D2VxvtC2Jjs9IRkrZGL+exLw==} + '@turbo/windows-64@2.8.21': + resolution: {integrity: sha512-/iBj4OzbqEY8CX+eaeKbBTMZv2CLXNrt0692F7HnK7LcyYwyDecaAiSET6ZzL4opT7sbwkKvzAC/fhqT3Quu1A==} cpu: [x64] os: [win32] - '@turbo/windows-arm64@2.8.20': - resolution: {integrity: sha512-voicVULvUV5yaGXo0Iue13BcHGYW3u0VgqSbfQwBaHbpj1zLjYV4KIe+7fYIo6DO8FVUJzxFps3ODCQG/Wy2Qw==} + '@turbo/windows-arm64@2.8.21': + resolution: {integrity: sha512-95tMA/ZbIidJFUUtkmqioQ1gf3n3I1YbRP3ZgVdWTVn2qVbkodcIdGXBKRHHrIbRsLRl99SiHi/L7IxhpZDagQ==} cpu: [arm64] os: [win32] @@ -6715,8 +6715,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.8.20: - resolution: {integrity: sha512-zT17KSqM4gTrChIocN+WfSdjg21QZTCDrcssylFab/wxu6S1EHDbt0JOna9b8rH5OKafZxDuFxKMV8BkulWShg==} + eslint-config-turbo@2.8.21: + resolution: {integrity: sha512-JhZDxUYLPR9/rfWaMvYpjnEsxrPe3Nb5cu5CjazmxiygFpgV+RFBiW2DCeVfsvce85AjAdt4148MPAzu5WbmEA==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -6773,8 +6773,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-turbo@2.8.20: - resolution: {integrity: sha512-sMDremg73XbX+Imh7iDRS3TAro5jIf7CdzSqrT50wCGhClbiUvmWcLomnX+ldUbfTy+OvtqOeePvTivJMR87eQ==} + eslint-plugin-turbo@2.8.21: + resolution: {integrity: sha512-GkbB1vfyq3TxQIavl391Jyyt5gz4XZBwejkcKbRj93gpla1TMjQePr5sUXQZJ9h5Okt361gFkoBV2Li8zytEGA==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -10242,8 +10242,8 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turbo@2.8.20: - resolution: {integrity: sha512-Rb4qk5YT8RUwwdXtkLpkVhNEe/lor6+WV7S5tTlLpxSz6MjV5Qi8jGNn4gS6NAvrYGA/rNrE6YUQM85sCZUDbQ==} + turbo@2.8.21: + resolution: {integrity: sha512-FlJ8OD5Qcp0jTAM7E4a/RhUzRNds2GzKlyxHKA6N247VLy628rrxAGlMpIXSz6VB430+TiQDJ/SMl6PL1lu6wQ==} hasBin: true tweetnacl@0.14.5: @@ -13676,29 +13676,29 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/darwin-64@2.8.20': + '@turbo/darwin-64@2.8.21': optional: true - '@turbo/darwin-arm64@2.8.20': + '@turbo/darwin-arm64@2.8.21': optional: true - '@turbo/gen@2.8.20(@types/node@24.12.0)': + '@turbo/gen@2.8.21(@types/node@24.12.0)': dependencies: '@inquirer/prompts': 7.10.1(@types/node@24.12.0) esbuild: 0.25.12 transitivePeerDependencies: - '@types/node' - '@turbo/linux-64@2.8.20': + '@turbo/linux-64@2.8.21': optional: true - '@turbo/linux-arm64@2.8.20': + '@turbo/linux-arm64@2.8.21': optional: true - '@turbo/windows-64@2.8.20': + '@turbo/windows-64@2.8.21': optional: true - '@turbo/windows-arm64@2.8.20': + '@turbo/windows-arm64@2.8.21': optional: true '@types/adm-zip@0.5.8': @@ -15723,11 +15723,11 @@ snapshots: dependencies: eslint: 9.39.4 - eslint-config-turbo@2.8.20(eslint@9.39.4)(turbo@2.8.20): + eslint-config-turbo@2.8.21(eslint@9.39.4)(turbo@2.8.21): dependencies: eslint: 9.39.4 - eslint-plugin-turbo: 2.8.20(eslint@9.39.4)(turbo@2.8.20) - turbo: 2.8.20 + eslint-plugin-turbo: 2.8.21(eslint@9.39.4)(turbo@2.8.21) + turbo: 2.8.21 eslint-import-resolver-node@0.3.9: dependencies: @@ -15827,11 +15827,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@2.8.20(eslint@9.39.4)(turbo@2.8.20): + eslint-plugin-turbo@2.8.21(eslint@9.39.4)(turbo@2.8.21): dependencies: dotenv: 16.0.3 eslint: 9.39.4 - turbo: 2.8.20 + turbo: 2.8.21 eslint-scope@5.1.1: dependencies: @@ -19778,14 +19778,14 @@ snapshots: tunnel@0.0.6: {} - turbo@2.8.20: + turbo@2.8.21: optionalDependencies: - '@turbo/darwin-64': 2.8.20 - '@turbo/darwin-arm64': 2.8.20 - '@turbo/linux-64': 2.8.20 - '@turbo/linux-arm64': 2.8.20 - '@turbo/windows-64': 2.8.20 - '@turbo/windows-arm64': 2.8.20 + '@turbo/darwin-64': 2.8.21 + '@turbo/darwin-arm64': 2.8.21 + '@turbo/linux-64': 2.8.21 + '@turbo/linux-arm64': 2.8.21 + '@turbo/windows-64': 2.8.21 + '@turbo/windows-arm64': 2.8.21 tweetnacl@0.14.5: {} diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index 9506ae4b6..521a95853 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -19,7 +19,7 @@ "dependencies": { "@next/eslint-plugin-next": "16.2.1", "eslint-config-prettier": "^10.1.8", - "eslint-config-turbo": "^2.8.20", + "eslint-config-turbo": "^2.8.21", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", From 531bfd6fcfb4f7dbbbb8cb1dafa53fddc883bbc1 Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 18:53:29 +0000 Subject: [PATCH 49/56] chore(lang): updated translations from crowdin * chore(lang): update translations from crowdin * chore(lang): update translations from crowdin * chore(lang): update translations from crowdin --------- Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas --- packages/translation/src/lang/fr.json | 56 +++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json index 090dad3db..bc814c21f 100644 --- a/packages/translation/src/lang/fr.json +++ b/packages/translation/src/lang/fr.json @@ -114,7 +114,7 @@ }, "invite": { "title": "Rejoignez Homarr", - "subtitle": "Bienvenue sur Homarr! Veuillez créer votre compte", + "subtitle": "Bienvenue sur Homarr ! Veuillez créer votre compte", "description": "Vous avez été invité par {username}" }, "init": { @@ -177,7 +177,7 @@ } }, "forgotPassword": { - "label": "Mot de passe oublié?", + "label": "Mot de passe oublié ?", "description": "Un administrateur peut utiliser la commande suivante pour réinitialiser votre mot de passe :" } }, @@ -578,7 +578,7 @@ }, "delete": { "title": "Supprimer l'app", - "message": "Êtes-vous sûr de vouloir supprimer l'app {name}?", + "message": "Êtes-vous sûr de vouloir supprimer l'app {name} ?", "notification": { "success": { "title": "Suppression effectuée avec succès", @@ -684,7 +684,7 @@ }, "delete": { "title": "Supprimer l'intégration", - "message": "Êtes-vous sûr(e) de vouloir supprimer l'intégration {name}?", + "message": "Êtes-vous sûr(e) de vouloir supprimer l'intégration {name} ?", "notification": { "success": { "title": "Suppression réussie", @@ -742,7 +742,7 @@ "description": "La réponse n'a pas pu être analysée. Veuillez vérifier que l'URL pointe vers l'URL de base du service." }, "authorization": { - "title": "", + "title": "Erreur d'autorisation", "description": "La requête n'a pas été autorisée. Veuillez vérifier que les informations d'identification sont correctes et que vous les avez configurées avec suffisamment d'autorisations." }, "statusCode": { @@ -794,7 +794,7 @@ "hostnameMismatch": { "confirm": { "title": "Faire confiant à l'incohérence du nom d'hôte", - "message": "" + "message": "Êtes-vous sûr de vouloir faire confiance ce certificat avec un nom d'hôte incohérent ?" }, "notification": { "success": { @@ -1164,8 +1164,8 @@ "number": "Ce champ doit être inférieur ou égal à {maximum}" }, "custom": { - "passwordsDoNotMatch": "Les mots de passe ne correspondent pas.", - "passwordRequirements": "Le mot de passe ne respecte pas les exigences requises.", + "passwordsDoNotMatch": "Les mots de passe ne correspondent pas", + "passwordRequirements": "Le mot de passe ne respecte pas les exigences requises", "boardAlreadyExists": "Un tableau avec ce nom existe déjà", "invalidFileType": "Type de fichier invalide, {expected} attendu", "invalidFileName": "Nom de fichier invalide", @@ -1248,7 +1248,7 @@ "action": { "create": "Nouvel élément", "import": "Importer un élément", - "edit": "Editer l'élément", + "edit": "Éditer l'élément", "moveResize": "Déplacer / redimensionner l'élément", "duplicate": "Dupliquer l'élément", "remove": "Supprimer l'élément" @@ -1281,7 +1281,7 @@ } }, "edit": { - "title": "Editer l'élément", + "title": "Éditer l'élément", "advancedOptions": { "label": "Options avancées", "title": "Options avancées de l'élément" @@ -1309,7 +1309,7 @@ "widget": { "app": { "name": "App", - "description": "Intégre une application dans le tableau.", + "description": "Intègre une application dans le tableau.", "option": { "appId": { "label": "Choisir une application" @@ -1637,7 +1637,7 @@ } }, "smartHome-entityState": { - "name": "Etat de l'entité", + "name": "État de l'entité", "description": "Affichez l'état d'une entité et optionnellement activez la", "option": { "entityId": { @@ -1883,16 +1883,16 @@ "popover": { "information": "Information", "processor": "Processeur : {cpuModelName}", - "memory": "Mémoire: {memory}GiB", - "memoryAvailable": "Disponible: {memoryAvailable}GiB ({percent}%)", + "memory": "Mémoire : {memory}GiB", + "memoryAvailable": "Disponible : {memoryAvailable}GiB ({percent}%)", "version": "Version : {version}", - "uptime": "Disponibilité: {months} Mois, {days} Jours, {hours} Heures, {minutes} Minutes", - "loadAverage": "Charge moyenne:", + "uptime": "Disponibilité : {months} Mois, {days} Jours, {hours} Heures, {minutes} Minutes", + "loadAverage": "Charge moyenne :", "minute": "1 minute", "minutes": "{count} minutes", "used": "Utilisé ", "available": "Disponible", - "lastSeen": "Dernière mise à jour de statut: {lastSeen}" + "lastSeen": "Dernière mise à jour de statut : {lastSeen}" }, "memory": {}, "error": { @@ -1928,7 +1928,7 @@ "memory": "Mémoire", "storage": "Stockage", "uptime": "Disponibilité", - "haState": "Etat HA", + "haState": "État HA", "storageType": { "local": "Stockage local", "shared": "Stockage partagé" @@ -2062,7 +2062,7 @@ "query": "Ville / Code Postal", "latitude": "Latitude", "longitude": "Longitude", - "disabledTooltip": "Veuillez saisir une ville ou un code postal.", + "disabledTooltip": "Veuillez saisir une ville ou un code postal", "unknownLocation": "Lieu inconnu", "search": "Rechercher", "table": { @@ -2081,7 +2081,7 @@ } }, "integration": { - "noData": "Aucune intégration trouvée.", + "noData": "Aucune intégration trouvée", "description": "Cliquez sur pour créer une nouvelle intégration" }, "app": { @@ -2097,7 +2097,7 @@ }, "video": { "name": "Flux vidéo", - "description": "Intégre un flux vidéo ou une vidéo provenant d'une caméra ou d'un site web", + "description": "Intègre un flux vidéo ou une vidéo provenant d'une caméra ou d'un site web", "option": { "feedUrl": { "label": "URL du flux" @@ -2110,7 +2110,7 @@ "label": "Muet" }, "hasControls": { - "label": "Afficher les controles" + "label": "Afficher les contrôles" } }, "error": { @@ -2336,7 +2336,7 @@ "pause": "Mettre en pause l'élément", "resume": "Reprendre l'élément", "delete": { - "title": "Supprimer l'élement", + "title": "Supprimer l'élément", "modalTitle": "Êtes-vous sûr de vouloir supprimer cette tâche ?", "entry": "Supprimer l'entrée", "entryAndFiles": "Supprimer l'entrée et le(s) fichier(s)" @@ -2548,7 +2548,7 @@ "allImagesAlreadyImported": "Toutes les images déjà importées", "onlyAdminCanImport": "Seuls les administrateurs peuvent importer depuis docker", "selectAll": "Tout sélectionner", - "deselectAll": "Tout déselectionner" + "deselectAll": "Tout désélectionner" }, "provider": { "label": "Fournisseur" @@ -2673,7 +2673,7 @@ }, "error": { "integrationsDisconnected": "Aucune donnée disponible, toutes les intégrations sont déconnectées", - "unknownContentOption": "Option de contenu inconnue pour le widget d'état du réseau: " + "unknownContentOption": "Option de contenu inconnue pour le widget d'état du réseau : " }, "name": "État du réseau", "description": "Afficher les périphériques connectés sur un réseau" @@ -2765,7 +2765,7 @@ "label": "Mode d'affichage", "option": { "percentage": { - "label": "Pourcentage (ex : 70%)" + "label": "Pourcentage (ex : 76%)" }, "absolute": { "label": "Valeurs absolues (ex. : 800 Go / 1 To)" @@ -2973,7 +2973,7 @@ }, "customCss": { "label": "CSS personnalisé pour ce tableau", - "description": "En outre, vous pouvez personnaliser votre tableau de bord à l'aide de CSS. Réservé aux utilisateurs expérimentés.", + "description": "De plus, personnalisez votre tableau de bord à l'aide de CSS, recommandé uniquement pour les utilisateurs expérimentés", "customClassesAlert": { "title": "Classes personnalisées", "description": "Vous pouvez ajouter des classes personnalisées aux éléments de votre tableau dans les options avancées de chaque élément et les utiliser dans le CSS personnalisé ci-dessus." @@ -3251,7 +3251,7 @@ "label": "Supprimer définitivement", "confirm": { "title": "Supprimer le tableau de bord", - "description": "Êtes-vous sûr de vouloir supprimer le tableau {name}?" + "description": "Êtes-vous sûr de vouloir supprimer le tableau {name} ?" } } }, From 05af82bc02e4bab61cd89db3585e416f36d70727 Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 01:17:29 +0000 Subject: [PATCH 50/56] chore(lang): updated translations from crowdin * chore(lang): update translations from crowdin * chore(lang): update translations from crowdin * chore(lang): update translations from crowdin * chore(lang): update translations from crowdin --------- Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas --- packages/translation/src/lang/en-gb.json | 118 +++++++++++------------ 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json index ba132f380..bda80ea94 100644 --- a/packages/translation/src/lang/en-gb.json +++ b/packages/translation/src/lang/en-gb.json @@ -1627,7 +1627,7 @@ "label": "Allow geolocation" }, "allowModals": { - "label": "" + "label": "Allow modals" } }, "error": { @@ -1859,110 +1859,110 @@ "label": "Show CPU Info" }, "memory": { - "label": "" + "label": "Show Memory Info" }, "gpu": { - "label": "" + "label": "Show GPU Info" }, "showUptime": { - "label": "" + "label": "Show Uptime" }, "fileSystem": { - "label": "" + "label": "Show Filesystem Info" }, "defaultTab": { - "label": "" + "label": "Default tab" }, "visibleClusterSections": { - "label": "" + "label": "Visible cluster sections" }, "sectionIndicatorRequirement": { - "label": "" + "label": "Section indicator requirement" } }, "popover": { - "information": "", - "processor": "", - "memory": "", - "memoryAvailable": "", - "version": "", - "uptime": "", - "loadAverage": "", - "minute": "", - "minutes": "", - "used": "", - "available": "", - "lastSeen": "" + "information": "Information", + "processor": "Processor: {cpuModelName}", + "memory": "Memory: {memory}GiB", + "memoryAvailable": "Available: {memoryAvailable}GiB ({percent}%)", + "version": "Version: {version}", + "uptime": "Uptime: {months} Months, {days} Days, {hours} Hours, {minutes} Minutes", + "loadAverage": "Load average:", + "minute": "1 minute", + "minutes": "{count} minutes", + "used": "Used", + "available": "Available", + "lastSeen": "Last status update: {lastSeen}" }, "memory": {}, "error": { - "internalServerError": "" + "internalServerError": "Failed to fetch health status" }, "cluster": { "summary": { - "cpu": "", - "memory": "" + "cpu": "CPU", + "memory": "RAM" }, "resource": { "node": { - "name": "" + "name": "Nodes" }, "qemu": { - "name": "" + "name": "VMs" }, "lxc": { - "name": "" + "name": "LXCs" }, "storage": { - "name": "" + "name": "Storage" } }, "popover": { "rightSection": { - "node": "", - "vmId": "", - "plugin": "" + "node": "Node", + "vmId": "VM ID", + "plugin": "Plugin" }, "detail": { - "cpu": "", - "memory": "", - "storage": "", - "uptime": "", - "haState": "", + "cpu": "Cores", + "memory": "Memory", + "storage": "Storage", + "uptime": "Uptime", + "haState": "HA State", "storageType": { - "local": "", - "shared": "" + "local": "Local storage", + "shared": "Shared storage" } } }, "table": { "header": { - "name": "", - "cpu": "", - "memory": "", - "node": "" + "name": "Name", + "cpu": "CPU", + "memory": "RAM", + "node": "Node" } } } }, "dockerContainers": { - "name": "", - "description": "", + "name": "Docker stats", + "description": "Stats of your containers (This widget can only be added with administrator privileges)", "option": { "enableRowSorting": { - "label": "" + "label": "Enable items sorting" }, "defaultSort": { - "label": "", + "label": "Column used for sorting by default", "option": { - "name": "", - "state": "", - "cpuUsage": "", - "memoryUsage": "" + "name": "Name", + "state": "State", + "cpuUsage": "CPU usage", + "memoryUsage": "Memory usage" } }, "descendingDefaultSort": { - "label": "" + "label": "Invert sorting" } }, "error": { @@ -4390,13 +4390,13 @@ "title": "", "option": { "documentation": { - "label": "" + "label": "Documentation" }, "submitIssue": { - "label": "" + "label": "Submit an issue" }, "discord": { - "label": "" + "label": "Community Discord" } } } @@ -4405,20 +4405,20 @@ "home": { "group": { "search": { - "title": "", + "title": "Search", "option": { "other": { - "label": "" + "label": "Search with another search engine" }, "no-default": { - "label": "", - "description": "" + "label": "No default search engine", + "description": "Set a default search engine in preferences" }, "search": { - "label": "" + "label": "Search for \"{query}\" with {name}" }, "from-integration": { - "description": "" + "description": "Start typing to search" } } }, From e92c407bebb56a29e707400390a0f8703b45538a Mon Sep 17 00:00:00 2001 From: "homarr-update-contributors[bot]" <210161987+homarr-update-contributors[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 13:24:06 +0000 Subject: [PATCH 51/56] chore: update contributors (#5394) Co-authored-by: Homarr Update Contributors <210161987+homarr-update-contributors[bot]@users.noreply.github.com> --- static-data/contributors.json | 2 +- static-data/translators.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/static-data/contributors.json b/static-data/contributors.json index feb7fbd32..7fad06cd7 100644 --- a/static-data/contributors.json +++ b/static-data/contributors.json @@ -1 +1 @@ -[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"tancak","avatar_url":"https://avatars.githubusercontent.com/u/11760749?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"alotlikebeans","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"bo3bdo","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"SergioChan","avatar_url":"https://avatars.githubusercontent.com/u/10103766?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"noahcroghan","avatar_url":"https://avatars.githubusercontent.com/u/27422774?v=4"},{"login":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?v=4"},{"login":"StrandedTurtle","avatar_url":"https://avatars.githubusercontent.com/u/132835255?v=4"},{"login":"CrazyWolf13","avatar_url":"https://avatars.githubusercontent.com/u/96661824?v=4"},{"login":"generalmat82","avatar_url":"https://avatars.githubusercontent.com/u/110256073?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"mairas","avatar_url":"https://avatars.githubusercontent.com/u/407010?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"KartulUdus","avatar_url":"https://avatars.githubusercontent.com/u/23346150?v=4"},{"login":"DZ945brH","avatar_url":"https://avatars.githubusercontent.com/u/42635243?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"AartSchinkel","avatar_url":"https://avatars.githubusercontent.com/u/189675191?v=4"}] \ No newline at end of file +[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"tancak","avatar_url":"https://avatars.githubusercontent.com/u/11760749?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"alotlikebeans","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"bo3bdo","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"SergioChan","avatar_url":"https://avatars.githubusercontent.com/u/10103766?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"mairas","avatar_url":"https://avatars.githubusercontent.com/u/407010?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"noahcroghan","avatar_url":"https://avatars.githubusercontent.com/u/27422774?v=4"},{"login":"Rhiz3K","avatar_url":"https://avatars.githubusercontent.com/u/33246262?v=4"},{"login":"saschabuehrle","avatar_url":"https://avatars.githubusercontent.com/u/47737812?v=4"},{"login":"StrandedTurtle","avatar_url":"https://avatars.githubusercontent.com/u/132835255?v=4"},{"login":"CrazyWolf13","avatar_url":"https://avatars.githubusercontent.com/u/96661824?v=4"},{"login":"generalmat82","avatar_url":"https://avatars.githubusercontent.com/u/110256073?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"mvanhorn","avatar_url":"https://avatars.githubusercontent.com/u/455140?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"KelianB","avatar_url":"https://avatars.githubusercontent.com/u/11216155?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"KartulUdus","avatar_url":"https://avatars.githubusercontent.com/u/23346150?v=4"},{"login":"dgshue","avatar_url":"https://avatars.githubusercontent.com/u/12952156?v=4"},{"login":"DZ945brH","avatar_url":"https://avatars.githubusercontent.com/u/42635243?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"AartSchinkel","avatar_url":"https://avatars.githubusercontent.com/u/189675191?v=4"}] \ No newline at end of file diff --git a/static-data/translators.json b/static-data/translators.json index fa37c19b1..2e6b4e63c 100644 --- a/static-data/translators.json +++ b/static-data/translators.json @@ -1 +1 @@ -[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/249b02e3368752cb175446082015737c_default.png"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"vittoriosoccorso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16498805/medium/17086b2f1981f734edd1572f79c3158a.jpeg"},{"username":"Worgen325","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16533177/medium/4a62cc6b06095751aeb4b1b3e96db93f.png"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"prubin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17503492/medium/96ac87644691e49c1f983f2f094e541c_default.png"},{"username":"sam-tam-sam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17578052/medium/1628dc2954ce3ae95e0caaa2bd60ab0c.png"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"Ebedami","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12974801/medium/b596dea5c09454c4c828eac558389755.jpg"},{"username":"perrygamerptyt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13117177/medium/1406c949507ecd438480473c8a1f6124.jpg"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"jeongeon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13362856/medium/eb572f72cde5e5526c517ca3a6489850_default.png"},{"username":"MrTranCFCVN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13439475/medium/a1789d69c85d90c667194b5d6a518c08_default.png"},{"username":"Tobost06","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13467449/medium/9227dc07f6366bc060d28304f5cb8ce7.jpeg"},{"username":"Kf637","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13530622/medium/118b00bb72d01d3229c97409637e25d1_default.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"Wjouter","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14585620/medium/b91a51513332bdc0a0a9ecbed99ecbc3.png"},{"username":"albanobattistella","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14686194/medium/564afcfd76f5cd24751bd669cf4943aa.jpg"},{"username":"Kachelkaiser","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14763406/medium/203a781797da4a18fe0f4e7db8fd547c.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"meviper","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15958903/medium/209f521ce33a05831fa8d7d1b7babc20_default.png"},{"username":"GerOriki","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16268376/medium/da00e54b08cd40348231d92873a0cd0a_default.png"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"},{"username":"xoxyuxu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17176526/medium/108055aa24343043de852e412bec74be.png"},{"username":"cryptodntsleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17249408/medium/b9e15aa2b24a0dbc1e4f194aa8ed5109.png"},{"username":"yaniorg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17261842/medium/7dbfc77f21c826845961243c44540d26.jpg"},{"username":"Vidariondr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17262438/medium/45fbc71be02ef27296b6f423e97b6a03_default.png"},{"username":"Fastery","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17263066/medium/701b0edc59676174863ad651528bbb37.jpeg"},{"username":"stratself","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17290388/medium/57d9d8161b3fd0abf4dc5558b4a1fa05_default.png"},{"username":"wuzeqin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17292606/medium/b9e0308410b31337e2d7aa6ed346d718_default.png"},{"username":"ChristopherBull","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17304338/medium/21a175ce596bfae81430767467908b90.jpeg"},{"username":"darkbcnlord","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17311436/medium/b271bc0b419ec3a26ddb7b63ff8ffc4b.png"},{"username":"zhoran1997","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17344028/medium/c8f450b5a8f1e9494a45dc60af7ce63e.png"},{"username":"gilalves1703","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17447768/medium/3f1de562a5c2391c88bbf8d5cf40a266.png"},{"username":"iServeCloud","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17470960/medium/11649b99d609438d66455a4d2fdc70f7.png"},{"username":"guibolzantvbox","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17474136/medium/59a576e6da538664ceb972253916fa02.jpeg"},{"username":"ivann136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17506062/medium/67d09ada36fac5f444a1f7517e3a97bd_default.png"},{"username":"Maheshivara","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17516082/medium/576e1e6581cf969615b265de6aeff8b7.jpeg"},{"username":"brunogui81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17517542/medium/7c0d174e810435af518fe8e0c05e151f.jpeg"},{"username":"michelwilhelm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17542190/medium/4c6b33fd8993ff565fa75add2ce8355e.jpeg"},{"username":"dias-gxstavo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17547376/medium/8c6b109aae8aeb651192346a39ae9e5b.jpeg"},{"username":"e.erdemir","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17617994/medium/7259a29db9941c6171a8cbbd643b92bd.png"},{"username":"sjonkreutz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17618306/medium/7601c45d015189a863656e21348d223b.png"},{"username":"Hamstio1","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17624898/medium/406e0bf40094c24a01c3064f8f5b2a82.png"},{"username":"i3laa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17627462/medium/613a9d283ed8b69819ee181903851660.jpeg"},{"username":"bastiengrignon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17629884/medium/ddfc3339285bd65195fcd834e512e9b7.jpeg"}] \ No newline at end of file +[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/249b02e3368752cb175446082015737c_default.png"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"vittoriosoccorso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16498805/medium/17086b2f1981f734edd1572f79c3158a.jpeg"},{"username":"Worgen325","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16533177/medium/4a62cc6b06095751aeb4b1b3e96db93f.png"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"prubin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17503492/medium/96ac87644691e49c1f983f2f094e541c_default.png"},{"username":"sam-tam-sam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17578052/medium/1628dc2954ce3ae95e0caaa2bd60ab0c.png"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"Ebedami","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12974801/medium/b596dea5c09454c4c828eac558389755.jpg"},{"username":"perrygamerptyt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13117177/medium/1406c949507ecd438480473c8a1f6124.jpg"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"jeongeon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13362856/medium/eb572f72cde5e5526c517ca3a6489850_default.png"},{"username":"MrTranCFCVN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13439475/medium/a1789d69c85d90c667194b5d6a518c08_default.png"},{"username":"Tobost06","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13467449/medium/9227dc07f6366bc060d28304f5cb8ce7.jpeg"},{"username":"Kf637","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13530622/medium/118b00bb72d01d3229c97409637e25d1_default.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"Wjouter","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14585620/medium/b91a51513332bdc0a0a9ecbed99ecbc3.png"},{"username":"albanobattistella","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14686194/medium/564afcfd76f5cd24751bd669cf4943aa.jpg"},{"username":"Kachelkaiser","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14763406/medium/203a781797da4a18fe0f4e7db8fd547c.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"meviper","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15958903/medium/209f521ce33a05831fa8d7d1b7babc20_default.png"},{"username":"GerOriki","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16268376/medium/da00e54b08cd40348231d92873a0cd0a_default.png"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"},{"username":"xoxyuxu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17176526/medium/108055aa24343043de852e412bec74be.png"},{"username":"cryptodntsleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17249408/medium/b9e15aa2b24a0dbc1e4f194aa8ed5109.png"},{"username":"yaniorg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17261842/medium/7dbfc77f21c826845961243c44540d26.jpg"},{"username":"Vidariondr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17262438/medium/45fbc71be02ef27296b6f423e97b6a03_default.png"},{"username":"Fastery","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17263066/medium/701b0edc59676174863ad651528bbb37.jpeg"},{"username":"stratself","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17290388/medium/57d9d8161b3fd0abf4dc5558b4a1fa05_default.png"},{"username":"wuzeqin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17292606/medium/b9e0308410b31337e2d7aa6ed346d718_default.png"},{"username":"ChristopherBull","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17304338/medium/21a175ce596bfae81430767467908b90.jpeg"},{"username":"darkbcnlord","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17311436/medium/b271bc0b419ec3a26ddb7b63ff8ffc4b.png"},{"username":"zhoran1997","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17344028/medium/c8f450b5a8f1e9494a45dc60af7ce63e.png"},{"username":"gilalves1703","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17447768/medium/3f1de562a5c2391c88bbf8d5cf40a266.png"},{"username":"iServeCloud","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17470960/medium/11649b99d609438d66455a4d2fdc70f7.png"},{"username":"guibolzantvbox","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17474136/medium/59a576e6da538664ceb972253916fa02.jpeg"},{"username":"ivann136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17506062/medium/67d09ada36fac5f444a1f7517e3a97bd_default.png"},{"username":"Maheshivara","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17516082/medium/576e1e6581cf969615b265de6aeff8b7.jpeg"},{"username":"brunogui81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17517542/medium/7c0d174e810435af518fe8e0c05e151f.jpeg"},{"username":"michelwilhelm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17542190/medium/4c6b33fd8993ff565fa75add2ce8355e.jpeg"},{"username":"dias-gxstavo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17547376/medium/8c6b109aae8aeb651192346a39ae9e5b.jpeg"},{"username":"ToxykAuBleu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17614030/medium/8d21e0608560172b121bd46126d827c7.jpeg"},{"username":"e.erdemir","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17617994/medium/7259a29db9941c6171a8cbbd643b92bd.png"},{"username":"sjonkreutz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17618306/medium/7601c45d015189a863656e21348d223b.png"},{"username":"volovich0377","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17620388/medium/c929a8fbd24f96d17620fa497ade7309.png"},{"username":"Hamstio1","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17624898/medium/406e0bf40094c24a01c3064f8f5b2a82.png"},{"username":"i3laa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17627462/medium/613a9d283ed8b69819ee181903851660.jpeg"},{"username":"bastiengrignon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17629884/medium/ddfc3339285bd65195fcd834e512e9b7.jpeg"},{"username":"kauhee","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17644600/medium/def1b9066cf9275b4273a5a5dca7f325.png"}] \ No newline at end of file From c977b84e2d84d5724219f5ff5f99bc550438e168 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Fri, 3 Apr 2026 18:26:52 +0200 Subject: [PATCH 52/56] fix: node-ical prevents many trpc queries from loading (#5395) --- packages/integrations/package.json | 2 +- .../src/nextcloud/nextcloud.integration.ts | 74 ++- packages/integrations/test/nextcloud.spec.ts | 454 ++++++++++++++++++ pnpm-lock.yaml | 41 +- 4 files changed, 521 insertions(+), 50 deletions(-) create mode 100644 packages/integrations/test/nextcloud.spec.ts diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 75985c328..406fedc1c 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -43,9 +43,9 @@ "@octokit/auth-app": "^8.2.0", "ical.js": "^2.2.1", "maria2": "^0.4.1", - "node-ical": "^0.23.1", "octokit": "^5.0.5", "proxmox-api": "1.1.1", + "timezones-ical-library": "^2.1.3", "tsdav": "^2.1.8", "undici": "7.24.6", "xml2js": "^0.6.2", diff --git a/packages/integrations/src/nextcloud/nextcloud.integration.ts b/packages/integrations/src/nextcloud/nextcloud.integration.ts index 5c8aabc90..ff41d8300 100644 --- a/packages/integrations/src/nextcloud/nextcloud.integration.ts +++ b/packages/integrations/src/nextcloud/nextcloud.integration.ts @@ -2,8 +2,9 @@ import type { Agent } from "https"; import dayjs from "dayjs"; import timezone from "dayjs/plugin/timezone"; import utc from "dayjs/plugin/utc"; +import ICAL from "ical.js"; import type { RequestInit as NodeFetchRequestInit } from "node-fetch"; -import * as ical from "node-ical"; +import { tzlib_get_ical_block, tzlib_get_timezones } from "timezones-ical-library"; import { DAVClient } from "tsdav"; import { z } from "zod"; @@ -21,6 +22,20 @@ import type { CalendarEvent } from "../interfaces/calendar/calendar-types"; import type { Notification } from "../interfaces/notifications/notification-types"; import type { INotificationsIntegration } from "../interfaces/notifications/notifications-integration"; +// Register all existing timezones +if (ICAL.TimezoneService.count === 0) { + const timezones = tzlib_get_timezones() as string[]; + for (const tzid of timezones) { + ICAL.TimezoneService.register( + new ICAL.Timezone({ + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-non-null-assertion + component: new ICAL.Component(ICAL.parse((tzlib_get_ical_block(tzid) as string[])[0]!)), + tzid, + }), + ); + } +} + const notificationSchema = z.object({ ocs: z.object({ data: z.array( @@ -68,39 +83,64 @@ export class NextcloudIntegration extends Integration implements ICalendarIntegr return calendarEvents .map((event) => { - // @ts-expect-error the typescript definitions for this package are wrong - // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access - const icalData = ical.default.parseICS(event.data) as ical.CalendarResponse; - const veventObject = Object.values(icalData).find((data) => data.type === "VEVENT"); - - if (!veventObject) { - throw new Error(`Invalid event data object: ${JSON.stringify(event.data)}. Unable to process the calendar.`); + if (typeof event.data !== "string") { + return []; } + const comp = ICAL.Component.fromString(event.data); + const veventComponent = comp.getFirstSubcomponent("vevent"); + + if (!veventComponent) { + return []; + } + + const veventObject = new ICAL.Event(veventComponent); logger.debug(`Converting VEVENT event to ${event.etag} from Nextcloud: ${JSON.stringify(veventObject)}`); const eventUrlWithoutHost = new URL(event.url).pathname; const eventSlug = Buffer.from(eventUrlWithoutHost).toString("base64url"); - const startDates = veventObject.rrule ? veventObject.rrule.between(start, end) : [veventObject.start]; + const durationMs = veventObject.duration.toSeconds() * 1000; - const durationMs = veventObject.end.getTime() - veventObject.start.getTime(); + // Handle recurring events + let startDates: Date[]; + if (veventObject.isRecurring()) { + const iterator = veventObject.iterator(); + startDates = []; + + // Iterate through occurrences within the time range + let next: ICAL.Time | undefined; + // next actually returns undefined when there are no more occurrences + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + while ((next = iterator.next())) { + const nextStartDate = next.convertToZone(ICAL.Timezone.utcTimezone).toJSDate(); + if (nextStartDate > end) break; + const nextEndDate = new Date(nextStartDate.getTime() + durationMs); + if (nextEndDate < start) continue; + + startDates.push(nextStartDate); + } + } else { + startDates = [veventObject.startDate.convertToZone(ICAL.Timezone.utcTimezone).toJSDate()]; + } return startDates.map((startDate) => { - const utcStartDate = dayjs(startDate).tz("UTC").toDate(); - const endDate = new Date(utcStartDate.getTime() + durationMs); - const dateInMillis = utcStartDate.valueOf(); + const endDate = new Date(startDate.getTime() + durationMs); + const dateInMillis = startDate.valueOf(); + + // Get color property from the component + const colorProperty = veventComponent.getFirstProperty("color"); + const color = colorProperty?.getFirstValue() as string | undefined; return { title: veventObject.summary, subTitle: null, - description: veventObject.description, - startDate: utcStartDate, + description: veventObject.description || null, + startDate, endDate, image: null, location: veventObject.location || null, - indicatorColor: - "color" in veventObject && typeof veventObject.color === "string" ? veventObject.color : "#ff8600", + indicatorColor: color ?? "#ff8600", links: [ { href: this.externalUrl( diff --git a/packages/integrations/test/nextcloud.spec.ts b/packages/integrations/test/nextcloud.spec.ts new file mode 100644 index 000000000..cef3ae494 --- /dev/null +++ b/packages/integrations/test/nextcloud.spec.ts @@ -0,0 +1,454 @@ +/* eslint-disable @typescript-eslint/no-non-null-assertion */ +import type { StartedTestContainer } from "testcontainers"; +import { GenericContainer, getContainerRuntimeClient, ImageName, Wait } from "testcontainers"; +import { afterAll, beforeAll, describe, expect, test, vi } from "vitest"; + +import { createId } from "@homarr/common"; +import { createDb } from "@homarr/db/test"; + +import { NextcloudIntegration } from "../src"; + +// Mock the database +vi.mock("@homarr/db", async (importActual) => { + // eslint-disable-next-line @typescript-eslint/consistent-type-imports + const actual = await importActual(); + return { + ...actual, + db: createDb(), + }; +}); + +// Mock certificate verification +vi.mock("@homarr/core/infrastructure/certificates", async (importActual) => { + // eslint-disable-next-line @typescript-eslint/consistent-type-imports + const actual = await importActual(); + return { + ...actual, + getTrustedCertificateHostnamesAsync: vi.fn().mockImplementation(() => { + return Promise.resolve([]); + }), + }; +}); + +const IMAGE_NAME = "nextcloud:latest"; +const DEFAULT_USERNAME = "admin"; +const DEFAULT_PASSWORD = "admin123"; + +interface CalendarTestEvent { + summary: string; + description?: string; + location?: string; + color?: string; + dtstart: string; + dtend: string; + rrule?: string; + timezone?: string; +} + +describe("Nextcloud integration", () => { + let startedContainer: StartedTestContainer | null = null; + let nextcloudIntegration: NextcloudIntegration | null = null; + + beforeAll(async () => { + const containerRuntimeClient = await getContainerRuntimeClient(); + await containerRuntimeClient.image.pull(ImageName.fromString(IMAGE_NAME)); + + startedContainer = await prepareNextcloudContainerAsync(); + nextcloudIntegration = createNextcloudIntegration(startedContainer); + }, 100_000); + + afterAll(async () => { + if (startedContainer) { + await startedContainer.stop(); + startedContainer = null; + } + }); + + describe("Test connection", () => { + test("Test connection > Should work with valid credentials", async () => { + // Act + const result = await nextcloudIntegration!.testConnectionAsync(); + + // Assert + expect(result.success).toBe(true); + }, 20_000); + + test("Test connection > Should fail with invalid credentials", async () => { + // Arrange + const invalidIntegration = createNextcloudIntegration(startedContainer!, "wrong-user", "wrong-pass"); + + // Act + const result = await invalidIntegration.testConnectionAsync(); + + // Assert + expect(result.success).toBe(false); + }, 20_000); + }); + + describe("Retrieve calendar events", () => { + test("Retrieve calendar events > Should retrieve all fields correctly", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Test Meeting", + description: "This is a test meeting", + location: "Conference Room A", + color: "#FF5733", + dtstart: "20260415T140000Z", + dtend: "20260415T150000Z", + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + const retrievedEvent = relevantEvents[0]; + expect(retrievedEvent).toMatchObject({ + title: testEvent.summary, + description: testEvent.description, + location: testEvent.location, + indicatorColor: testEvent.color, + }); + expect(retrievedEvent!.startDate.toISOString()).toBe("2026-04-15T14:00:00.000Z"); + expect(retrievedEvent!.endDate?.toISOString()).toBe("2026-04-15T15:00:00.000Z"); + }, 20_000); + test("Retrieve calendar events > Should work with only required fields", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Simple Event", + dtstart: "20260415T140000Z", + dtend: "20260415T150000Z", + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + const retrievedEvent = relevantEvents[0]; + expect(retrievedEvent?.location).toBeNull(); + expect(retrievedEvent?.description).toBeNull(); + expect(retrievedEvent?.indicatorColor).toBe("#ff8600"); // Default color + }, 20_000); + test("Retrieve calendar events > Should work with timezone specified", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Timezone Event", + dtstart: "20260415T140000", + dtend: "20260415T150000", + timezone: "Asia/Tokyo", + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + const retrievedEvent = relevantEvents[0]; + + expect(retrievedEvent!.startDate.toISOString()).toBe("2026-04-15T05:00:00.000Z"); // 14:00 in Tokyo is 05:00 UTC + expect(retrievedEvent!.endDate?.toISOString()).toBe("2026-04-15T06:00:00.000Z"); // 15:00 in Tokyo is 06:00 UTC + }, 120_000); + test("Retrieve calendar events > Should work with event that starts before the range but ends within the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Early Meeting", + dtstart: "20260401T230000Z", // Starts before the range + dtend: "20260402T010000Z", // Ends within the range + }; + const start = new Date("2026-04-02T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + }, 20_000); + test("Retrieve calendar events > Should work with event that starts within the range but ends after the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Late Meeting", + dtstart: "20260430T230000Z", // Starts within the range + dtend: "20260501T010000Z", // Ends after the range + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + }, 20_000); + test("Retrieve calendar events > Should not retrieve events outside the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Out of Range Meeting", + dtstart: "20260301T140000Z", // Starts before the range + dtend: "20260301T150000Z", // Ends before the range + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(0); + }, 20_000); + test("Retrieve calendar events > Should work with events that begin before the range and end after the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Spanning Meeting", + dtstart: "20260330T230000Z", // Starts before the range + dtend: "20260501T010000Z", // Ends after the range + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(1); + }, 20_000); + test("Retrieve calendar events > Should work with recurring events first occurrence before the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Recurring Meeting", + dtstart: "20260330T140000Z", // First occurrence starts before the range + dtend: "20260330T150000Z", + rrule: "FREQ=DAILY;COUNT=5", // Daily for 5 occurrences + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(3); + }, 20_000); + test("Retrieve calendar events > Should work with recurring events that go beyond the range", async () => { + // Arrange + const calendarName = createId(); + const testEvent: CalendarTestEvent = { + summary: "Working Week", + dtstart: "20260302T090000Z", + dtend: "20260306T170000Z", + rrule: "FREQ=WEEKLY;COUNT=10", + }; + const start = new Date("2026-04-01T00:00:00Z"); + const end = new Date("2026-04-30T23:59:59Z"); + + await createCalendarAsync(startedContainer!, calendarName); + await createCalendarEventAsync(startedContainer!, calendarName, testEvent); + + // Act + const events = await nextcloudIntegration!.getCalendarEventsAsync(start, end); + + // Assert + const relevantEvents = events.filter((event) => event.title === testEvent.summary); + expect(relevantEvents).toHaveLength(5); + }); + }); +}); + +/** + * Prepares a Nextcloud container with proper configuration + */ +async function prepareNextcloudContainerAsync(): Promise { + const container = createNextcloudContainer(); + const startedContainer = await container.start(); + + return startedContainer; +} + +/** + * Creates a Nextcloud container with proper configuration + */ +function createNextcloudContainer() { + return new GenericContainer(IMAGE_NAME) + .withEnvironment({ + NEXTCLOUD_ADMIN_USER: DEFAULT_USERNAME, + NEXTCLOUD_ADMIN_PASSWORD: DEFAULT_PASSWORD, + NEXTCLOUD_TRUSTED_DOMAINS: "*", + SQLITE_DATABASE: "nextcloud", // Use SQLite for faster startup + }) + .withExposedPorts(80) + .withWaitStrategy(Wait.forHttp("/status.php", 80).forStatusCode(200)) + .withStartupTimeout(120_000); +} + +/** + * Creates a Nextcloud integration instance + */ +function createNextcloudIntegration( + container: StartedTestContainer, + username?: string, + password?: string, +): NextcloudIntegration { + return new NextcloudIntegration({ + id: "1", + decryptedSecrets: [ + { + kind: "username", + value: username ?? DEFAULT_USERNAME, + }, + { + kind: "password", + value: password ?? DEFAULT_PASSWORD, + }, + ], + name: "Nextcloud", + url: `http://${container.getHost()}:${container.getMappedPort(80)}`, + externalUrl: null, + }); +} + +/** + * Creates a calendar in Nextcloud via OCS API + */ +async function createCalendarAsync(container: StartedTestContainer, calendarName: string): Promise { + const host = container.getHost(); + const port = container.getMappedPort(80); + const url = `http://${host}:${port}/remote.php/dav/calendars/${DEFAULT_USERNAME}/${calendarName}`; + + const auth = Buffer.from(`${DEFAULT_USERNAME}:${DEFAULT_PASSWORD}`).toString("base64"); + + const response = await fetch(url, { + method: "MKCALENDAR", + headers: { + Authorization: `Basic ${auth}`, + "Content-Type": "application/xml", + }, + body: ` + + + + ${calendarName} + + + `, + }); + + if (!response.ok && response.status !== 201) { + throw new Error(`Failed to create calendar: ${response.status} ${response.statusText}`); + } +} + +/** + * Creates a calendar event in Nextcloud via CalDAV + */ +async function createCalendarEventAsync( + container: StartedTestContainer, + calendarName: string, + event: CalendarTestEvent, +): Promise { + const host = container.getHost(); + const port = container.getMappedPort(80); + const id = createId(); + const url = `http://${host}:${port}/remote.php/dav/calendars/${DEFAULT_USERNAME}/${calendarName}/${id}.ics`; + + const auth = Buffer.from(`${DEFAULT_USERNAME}:${DEFAULT_PASSWORD}`).toString("base64"); + + // Build iCalendar format + const icalData = buildICalEvent(id, event); + + const response = await fetch(url, { + method: "PUT", + headers: { + Authorization: `Basic ${auth}`, + "Content-Type": "text/calendar", + }, + body: icalData, + }); + + if (!response.ok && response.status !== 201) { + throw new Error(`Failed to create event: ${response.status} ${response.statusText}`); + } +} + +/** + * Builds an iCalendar format string from event data + */ +function buildICalEvent(uid: string, event: CalendarTestEvent): string { + const lines = [ + "BEGIN:VCALENDAR", + "VERSION:2.0", + "PRODID:-//Homarr Tests//EN", + "BEGIN:VEVENT", + `UID:${uid}`, + `DTSTAMP:${new Date().toISOString().replace(/[-:]/g, "").split(".")[0]}Z`, + `DTSTART${event.timezone ? `;TZID=${event.timezone}` : ""}:${event.dtstart}`, + `DTEND${event.timezone ? `;TZID=${event.timezone}` : ""}:${event.dtend}`, + `SUMMARY:${event.summary}`, + ]; + + if (event.description) { + lines.push(`DESCRIPTION:${event.description}`); + } + + if (event.location) { + lines.push(`LOCATION:${event.location}`); + } + + if (event.color) { + lines.push(`COLOR:${event.color}`); + } + + if (event.rrule) { + lines.push(`RRULE:${event.rrule}`); + } + + lines.push("END:VEVENT", "END:VCALENDAR"); + + return lines.join("\r\n"); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a374d09bd..dfde55696 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1480,15 +1480,15 @@ importers: maria2: specifier: ^0.4.1 version: 0.4.1 - node-ical: - specifier: ^0.23.1 - version: 0.23.1 octokit: specifier: ^5.0.5 version: 5.0.5 proxmox-api: specifier: 1.1.1 version: 1.1.1 + timezones-ical-library: + specifier: ^2.1.3 + version: 2.1.3 tsdav: specifier: ^2.1.8 version: 2.1.8 @@ -3665,10 +3665,6 @@ packages: '@js-sdsl/ordered-map@4.4.2': resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} - '@js-temporal/polyfill@0.5.1': - resolution: {integrity: sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==} - engines: {node: '>=12'} - '@jsep-plugin/assignment@1.3.0': resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} engines: {node: '>= 10.16.0'} @@ -7829,9 +7825,6 @@ packages: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true - jsbi@4.3.2: - resolution: {integrity: sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==} - jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} @@ -8465,10 +8458,6 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-ical@0.23.1: - resolution: {integrity: sha512-4+FON2u++r7vU9VfTCris9hgxS5darN4P7aQZOJkzDazXLRS7cExb0G5OWO3CzRs8gHd5um1fdSMF0e45f7xAg==} - engines: {node: '>=18'} - node-loader@2.1.0: resolution: {integrity: sha512-OwjPkyh8+7jW8DMd/iq71uU1Sspufr/C2+c3t0p08J3CrM9ApZ4U53xuisNrDXOHyGi5OYHgtfmmh+aK9zJA6g==} engines: {node: '>= 10.13.0'} @@ -9500,9 +9489,6 @@ packages: rrdom@0.1.7: resolution: {integrity: sha512-ZLd8f14z9pUy2Hk9y636cNv5Y2BMnNEY99wxzW9tD2BLDfe1xFxtLjB4q/xCBYo6HRe0wofzKzjm4JojmpBfFw==} - rrule-temporal@1.3.0: - resolution: {integrity: sha512-0duSf+wBX4FKNpznFDecEDkIzdoP7n3++Lt9TPpImhaRtENsa/qd3EhpV5Fi1TxVvBFN4ayOXVrK0aPvt+a80g==} - rrweb-player@1.0.0-alpha.4: resolution: {integrity: sha512-Wlmn9GZ5Fdqa37vd3TzsYdLl/JWEvXNUrLCrYpnOwEgmY409HwVIvvA5aIo7k582LoKgdRCsB87N+f0oWAR0Kg==} @@ -10076,6 +10062,10 @@ packages: resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} engines: {node: '>=12'} + timezones-ical-library@2.1.3: + resolution: {integrity: sha512-3ihogrr88TefPpa2og2fHw22VsWxlPUN4YDiLZRV9pbRsmguMyDsHhm8i0kkj7ihQYFgERZkj6eVOYY+TSOaOw==} + engines: {node: '>=22.18.0', npm: '>=10.9.3'} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -12105,10 +12095,6 @@ snapshots: '@js-sdsl/ordered-map@4.4.2': {} - '@js-temporal/polyfill@0.5.1': - dependencies: - jsbi: 4.3.2 - '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': dependencies: jsep: 1.4.0 @@ -16946,8 +16932,6 @@ snapshots: dependencies: argparse: 2.0.1 - jsbi@4.3.2: {} - jsbn@1.1.0: {} jsdom@29.0.1(@noble/hashes@2.0.1): @@ -17702,11 +17686,6 @@ snapshots: node-gyp-build@4.8.4: {} - node-ical@0.23.1: - dependencies: - '@js-temporal/polyfill': 0.5.1 - rrule-temporal: 1.3.0 - node-loader@2.1.0(webpack@5.94.0): dependencies: loader-utils: 2.0.4 @@ -18813,10 +18792,6 @@ snapshots: dependencies: rrweb-snapshot: 2.0.0-alpha.4 - rrule-temporal@1.3.0: - dependencies: - '@js-temporal/polyfill': 0.5.1 - rrweb-player@1.0.0-alpha.4: dependencies: '@tsconfig/svelte': 1.0.13 @@ -19625,6 +19600,8 @@ snapshots: dependencies: convert-hrtime: 5.0.0 + timezones-ical-library@2.1.3: {} + tiny-invariant@1.3.3: {} tinybench@2.9.0: {} From 72a93e681f3701459176692857220730c279f80b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 16:48:45 +0000 Subject: [PATCH 53/56] fix(deps): update trpc monorepo to ^11.16.0 (#5392) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 8 ++++---- packages/api/package.json | 8 ++++---- packages/cron-job-api/package.json | 6 +++--- pnpm-lock.yaml | 24 +++++++++++++----------- 4 files changed, 24 insertions(+), 22 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index ea627e321..5845f2ac7 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -59,10 +59,10 @@ "@tanstack/react-query": "^5.95.2", "@tanstack/react-query-devtools": "^5.95.2", "@tanstack/react-query-next-experimental": "^5.95.2", - "@trpc/client": "^11.15.1", - "@trpc/next": "^11.15.1", - "@trpc/react-query": "^11.15.1", - "@trpc/server": "^11.15.1", + "@trpc/client": "^11.16.0", + "@trpc/next": "^11.16.0", + "@trpc/react-query": "^11.16.0", + "@trpc/server": "^11.16.0", "@xterm/addon-canvas": "^0.7.0", "@xterm/addon-fit": "0.11.0", "@xterm/xterm": "^6.0.0", diff --git a/packages/api/package.json b/packages/api/package.json index 0d3907c4d..0de085d2c 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -42,10 +42,10 @@ "@homarr/validation": "workspace:^0.1.0", "@kubernetes/client-node": "^1.4.0", "@tanstack/react-query": "^5.95.2", - "@trpc/client": "^11.15.1", - "@trpc/react-query": "^11.15.1", - "@trpc/server": "^11.15.1", - "@trpc/tanstack-react-query": "^11.15.1", + "@trpc/client": "^11.16.0", + "@trpc/react-query": "^11.16.0", + "@trpc/server": "^11.16.0", + "@trpc/tanstack-react-query": "^11.16.0", "lodash.clonedeep": "^4.5.0", "next": "16.2.1", "react": "19.2.4", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index 56c2c6df5..7a715adb7 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -29,9 +29,9 @@ "@homarr/core": "workspace:^0.1.0", "@homarr/cron-jobs": "workspace:^0.1.0", "@tanstack/react-query": "^5.95.2", - "@trpc/client": "^11.15.1", - "@trpc/server": "^11.15.1", - "@trpc/tanstack-react-query": "^11.15.1", + "@trpc/client": "^11.16.0", + "@trpc/server": "^11.16.0", + "@trpc/tanstack-react-query": "^11.16.0", "node-cron": "^4.2.1", "react": "19.2.4", "zod": "^4.3.6" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfde55696..4ff2b5231 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -242,16 +242,16 @@ importers: specifier: ^5.95.2 version: 5.95.2(@tanstack/react-query@5.95.2(react@19.2.4))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react@19.2.4) '@trpc/client': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/next': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(next@16.2.1(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.98.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) '@trpc/server': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(typescript@5.9.3) '@xterm/addon-canvas': specifier: ^0.7.0 @@ -642,16 +642,16 @@ importers: specifier: ^5.95.2 version: 5.95.2(react@19.2.4) '@trpc/client': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) '@trpc/server': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) lodash.clonedeep: specifier: ^4.5.0 @@ -957,13 +957,13 @@ importers: specifier: ^5.95.2 version: 5.95.2(react@19.2.4) '@trpc/client': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.15.1 + specifier: ^11.16.0 version: 11.16.0(@tanstack/react-query@5.95.2(react@19.2.4))(@trpc/client@11.16.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.16.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3) node-cron: specifier: ^4.2.1 @@ -3780,10 +3780,12 @@ packages: '@million/install@1.0.14': resolution: {integrity: sha512-xZvj4AEHc5hyn8RCiLl9dYNqggj2fa0lgNvUkCiJyhRJPNE2hZrUa/Ka0Weu82VpBaO//zujG0YErk7osjNXPA==} + deprecated: This package is no longer maintained hasBin: true '@million/lint@1.0.14': resolution: {integrity: sha512-u6/kglVwZRu5+GMmtkNlGLqJVkgTl0TtM+hLa9rBg7pldx+5NG5bk45NvL37uZmAr2Xfa1C6qHb7GrFwfP372g==} + deprecated: This package is no longer maintained hasBin: true '@ndaidong/bellajs@12.0.1': From 279d830b7914d3e64a54cf9952ae96726ee84ad2 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 17:25:35 +0000 Subject: [PATCH 54/56] chore(deps): update dependency conventional-changelog-conventionalcommits to ^9.3.1 (#5396) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 958de7525..4e3412253 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@vitejs/plugin-react": "^5.2.0", "@vitest/coverage-v8": "^4.1.2", "@vitest/ui": "^4.1.2", - "conventional-changelog-conventionalcommits": "^9.3.0", + "conventional-changelog-conventionalcommits": "^9.3.1", "cross-env": "^10.1.0", "jsdom": "^29.0.1", "json5": "^2.2.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ff2b5231..1c9e211e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,8 +74,8 @@ importers: specifier: ^4.1.2 version: 4.1.2(vitest@4.1.2) conventional-changelog-conventionalcommits: - specifier: ^9.3.0 - version: 9.3.0 + specifier: ^9.3.1 + version: 9.3.1 cross-env: specifier: ^10.1.0 version: 10.1.0 @@ -6025,8 +6025,8 @@ packages: resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} engines: {node: '>=18'} - conventional-changelog-conventionalcommits@9.3.0: - resolution: {integrity: sha512-kYFx6gAyjSIMwNtASkI3ZE99U1fuVDJr0yTYgVy+I2QG46zNZfl2her+0+eoviG82c5WQvW1jMt1eOQTeJLodA==} + conventional-changelog-conventionalcommits@9.3.1: + resolution: {integrity: sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw==} engines: {node: '>=18'} conventional-changelog-writer@8.0.0: @@ -14935,7 +14935,7 @@ snapshots: dependencies: compare-func: 2.0.0 - conventional-changelog-conventionalcommits@9.3.0: + conventional-changelog-conventionalcommits@9.3.1: dependencies: compare-func: 2.0.0 From abb2dfc92ab51b16e7172374cfee8b9c0c752454 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Fri, 3 Apr 2026 20:23:15 +0200 Subject: [PATCH 55/56] feat(integrations): add search.ch integration with timetable widget (#5180) --- packages/api/src/router/widgets/index.ts | 1 + packages/api/src/router/widgets/timetable.ts | 43 ++++++ packages/cron-jobs/src/index.ts | 2 + .../src/jobs/integrations/timetable.ts | 20 +++ packages/definitions/src/integration.ts | 10 ++ packages/definitions/src/widget.ts | 1 + packages/integrations/src/base/creator.ts | 2 + .../timetable/timetable-integration.ts | 6 + .../interfaces/timetable/timetable-types.ts | 33 ++++ .../src/search-ch/search-ch-integration.ts | 141 ++++++++++++++++++ packages/integrations/src/types.ts | 1 + packages/request-handler/src/timetable.ts | 36 +++++ packages/translation/src/lang/en.json | 14 ++ packages/widgets/src/_inputs/index.ts | 2 + .../_inputs/widget-dynamic-select-input.tsx | 92 ++++++++++++ packages/widgets/src/index.tsx | 2 + packages/widgets/src/options.ts | 17 +++ packages/widgets/src/timetable/component.tsx | 75 ++++++++++ packages/widgets/src/timetable/index.ts | 37 +++++ 19 files changed, 535 insertions(+) create mode 100644 packages/api/src/router/widgets/timetable.ts create mode 100644 packages/cron-jobs/src/jobs/integrations/timetable.ts create mode 100644 packages/integrations/src/interfaces/timetable/timetable-integration.ts create mode 100644 packages/integrations/src/interfaces/timetable/timetable-types.ts create mode 100644 packages/integrations/src/search-ch/search-ch-integration.ts create mode 100644 packages/request-handler/src/timetable.ts create mode 100644 packages/widgets/src/_inputs/widget-dynamic-select-input.tsx create mode 100644 packages/widgets/src/timetable/component.tsx create mode 100644 packages/widgets/src/timetable/index.ts diff --git a/packages/api/src/router/widgets/index.ts b/packages/api/src/router/widgets/index.ts index 126ec4ad2..e58c62e6a 100644 --- a/packages/api/src/router/widgets/index.ts +++ b/packages/api/src/router/widgets/index.ts @@ -26,5 +26,6 @@ export const widgetRouter = createTRPCRouter({ networkController: lazy(() => import("./network-controller").then((mod) => mod.networkControllerRouter)), firewall: lazy(() => import("./firewall").then((mod) => mod.firewallRouter)), notifications: lazy(() => import("./notifications").then((mod) => mod.notificationsRouter)), + timetable: lazy(() => import("./timetable").then((mod) => mod.timetableRouter)), tracearr: lazy(() => import("./tracearr").then((mod) => mod.tracearrRouter)), }); diff --git a/packages/api/src/router/widgets/timetable.ts b/packages/api/src/router/widgets/timetable.ts new file mode 100644 index 000000000..787be4c37 --- /dev/null +++ b/packages/api/src/router/widgets/timetable.ts @@ -0,0 +1,43 @@ +import z from "zod"; + +import { getIntegrationKindsByCategory } from "@homarr/definitions"; +import { timetableOptionsSchema } from "@homarr/integrations/types"; +import { + timetableGetTimetableRequestHandler, + timetableSearchStationsRequestHandler, +} from "@homarr/request-handler/timetable"; + +import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createTRPCRouter, publicProcedure } from "../../trpc"; + +export const timetableRouter = createTRPCRouter({ + getTimetable: publicProcedure + .concat(createOneIntegrationMiddleware("query", ...getIntegrationKindsByCategory("timetable"))) + .input(timetableOptionsSchema) + .query(async ({ input, ctx }) => { + const innerHandler = timetableGetTimetableRequestHandler.handler(ctx.integration, { + stationId: input.stationId, + limit: input.limit, + }); + + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + + return data; + }), + searchStations: publicProcedure + .concat(createOneIntegrationMiddleware("query", ...getIntegrationKindsByCategory("timetable"))) + .input( + z.object({ + query: z.string(), + }), + ) + .query(async ({ input, ctx }) => { + const innerHandler = timetableSearchStationsRequestHandler.handler(ctx.integration, { + query: input.query, + }); + + const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); + + return data; + }), +}); diff --git a/packages/cron-jobs/src/index.ts b/packages/cron-jobs/src/index.ts index 5ab802124..7f2b2349f 100644 --- a/packages/cron-jobs/src/index.ts +++ b/packages/cron-jobs/src/index.ts @@ -18,6 +18,7 @@ import { mediaServerJob } from "./jobs/integrations/media-server"; import { mediaTranscodingJob } from "./jobs/integrations/media-transcoding"; import { networkControllerJob } from "./jobs/integrations/network-controller"; import { refreshNotificationsJob } from "./jobs/integrations/notifications"; +import { timetableJob } from "./jobs/integrations/timetable"; import { tracearrJob } from "./jobs/integrations/tracearr"; import { minecraftServerStatusJob } from "./jobs/minecraft-server-status"; import { pingJob } from "./jobs/ping"; @@ -51,6 +52,7 @@ export const jobGroup = createCronJobGroup({ firewallInterfaces: firewallInterfacesJob, refreshNotifications: refreshNotificationsJob, weather: weatherJob, + timetable: timetableJob, tracearr: tracearrJob, }); diff --git a/packages/cron-jobs/src/jobs/integrations/timetable.ts b/packages/cron-jobs/src/jobs/integrations/timetable.ts new file mode 100644 index 000000000..b3964dc38 --- /dev/null +++ b/packages/cron-jobs/src/jobs/integrations/timetable.ts @@ -0,0 +1,20 @@ +import { EVERY_5_MINUTES } from "@homarr/cron-jobs-core/expressions"; +import { createRequestIntegrationJobHandler } from "@homarr/request-handler/lib/cached-request-integration-job-handler"; +import { timetableGetTimetableRequestHandler } from "@homarr/request-handler/timetable"; + +import { createCronJob } from "../../lib"; + +export const timetableJob = createCronJob("timetable", EVERY_5_MINUTES).withCallback( + createRequestIntegrationJobHandler(timetableGetTimetableRequestHandler.handler, { + widgetKinds: ["timetable"], + getInput: { + timetable: (options) => + options.station + ? { + stationId: options.station.value, + limit: 10, + } + : [], + }, + }), +); diff --git a/packages/definitions/src/integration.ts b/packages/definitions/src/integration.ts index 06f6aa73f..317fd1f7a 100644 --- a/packages/definitions/src/integration.ts +++ b/packages/definitions/src/integration.ts @@ -334,6 +334,15 @@ export const integrationDefs = { // @ts-expect-error - docs page will be created when integration is merged documentationUrl: createDocumentationLink("/docs/integrations/coolify"), }, + searchCh: { + name: "Search.ch", + secretKinds: [[]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/search-ch.png", + defaultUrl: "https://search.ch", + category: ["timetable"], + // @ts-expect-error - docs page will be created when integration is merged + documentationUrl: createDocumentationLink("/docs/integrations/search-ch"), + }, immich: { name: "Immich", secretKinds: [["apiKey"]], @@ -434,6 +443,7 @@ export const integrationCategories = [ "releasesProvider", "notifications", "firewall", + "timetable", "photoService", "mediaMonitoring", ] as const; diff --git a/packages/definitions/src/widget.ts b/packages/definitions/src/widget.ts index cf94bd3fa..732b3f1bc 100644 --- a/packages/definitions/src/widget.ts +++ b/packages/definitions/src/widget.ts @@ -31,6 +31,7 @@ export const widgetKinds = [ "systemResources", "coolify", "systemDisks", + "timetable", "immich-serverStats", "immich-albumCarousel", "tracearr", diff --git a/packages/integrations/src/base/creator.ts b/packages/integrations/src/base/creator.ts index b35fa5f63..c0743b5d4 100644 --- a/packages/integrations/src/base/creator.ts +++ b/packages/integrations/src/base/creator.ts @@ -40,6 +40,7 @@ import { PlexIntegration } from "../plex/plex-integration"; import { ProwlarrIntegration } from "../prowlarr/prowlarr-integration"; import { ProxmoxIntegration } from "../proxmox/proxmox-integration"; import { QuayIntegration } from "../quay/quay-integration"; +import { SearchChIntegration } from "../search-ch/search-ch-integration"; import { SeerrIntegration } from "../seerr/seerr-integration"; import { TracearrIntegration } from "../tracearr/tracearr-integration"; import { TrueNasIntegration } from "../truenas/truenas-integration"; @@ -114,6 +115,7 @@ export const integrationCreators = { coolify: CoolifyIntegration, tracearr: TracearrIntegration, glances: GlancesIntegration, + searchCh: SearchChIntegration, immich: ImmichIntegration, } satisfies Record Promise]>; diff --git a/packages/integrations/src/interfaces/timetable/timetable-integration.ts b/packages/integrations/src/interfaces/timetable/timetable-integration.ts new file mode 100644 index 000000000..74e9d3c02 --- /dev/null +++ b/packages/integrations/src/interfaces/timetable/timetable-integration.ts @@ -0,0 +1,6 @@ +import type { Station, Timetable, TimetableOptions } from "./timetable-types"; + +export interface TimetableIntegration { + searchStationsAsync(query: string): Promise; + getTimetableAsync(options: TimetableOptions): Promise; +} diff --git a/packages/integrations/src/interfaces/timetable/timetable-types.ts b/packages/integrations/src/interfaces/timetable/timetable-types.ts new file mode 100644 index 000000000..72350b5a3 --- /dev/null +++ b/packages/integrations/src/interfaces/timetable/timetable-types.ts @@ -0,0 +1,33 @@ +import z from "zod"; + +export interface Station { + id: string; + name: string; +} + +export const timetableOptionsSchema = z.object({ + stationId: z.string(), + limit: z.number().default(10), +}); + +export type TimetableOptions = z.infer; + +export interface TimetableEntry { + timestamp: Date; + delay: number; + line: { + name: string; + color: string | null; + } | null; + location: string; + platform: { + name: string; + hasChanged: boolean; + } | null; +} + +export interface Timetable { + stationId: string; + timestamp: Date; + entries: TimetableEntry[]; +} diff --git a/packages/integrations/src/search-ch/search-ch-integration.ts b/packages/integrations/src/search-ch/search-ch-integration.ts new file mode 100644 index 000000000..cbaf8e80d --- /dev/null +++ b/packages/integrations/src/search-ch/search-ch-integration.ts @@ -0,0 +1,141 @@ +import z from "zod"; + +import { ResponseError } from "@homarr/common/server"; +import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; + +import type { IntegrationTestingInput } from "../base/integration"; +import { Integration } from "../base/integration"; +import { TestConnectionError } from "../base/test-connection/test-connection-error"; +import type { TestingResult } from "../base/test-connection/test-connection-service"; +import type { TimetableIntegration } from "../interfaces/timetable/timetable-integration"; +import type { Station, Timetable, TimetableOptions } from "../interfaces/timetable/timetable-types"; + +const supportedStationTypes = ["bus", "tram", "train", "ship", "cablecar", "funicular", "chairlift"]; + +export class SearchChIntegration extends Integration implements TimetableIntegration { + protected async testingAsync(input: IntegrationTestingInput): Promise { + const response = await input.fetchAsync(this.url("/timetable/api/completion.json", { term: "Zürich" })); + + if (!response.ok) { + return TestConnectionError.StatusResult(response); + } + + return { + success: true, + }; + } + + /** + * Searches for stations matching the given query. + * @param query The search query for station names. + * @returns A list of stations matching the search query. + * @docs https://search.ch/fahrplan/api/help + */ + public async searchStationsAsync(query: string): Promise { + const response = await fetchWithTrustedCertificatesAsync( + this.url("/timetable/api/completion.json", { + term: query, + show_ids: 1, + nofavorites: 1, + }), + ); + + if (!response.ok) { + throw new ResponseError(response); + } + + const data = await searchSchema.parseAsync(await response.json()); + + return ( + data + // Remove completions like addresses, we only want stations. + .filter((item) => supportedStationTypes.some((type) => item.iconclass.endsWith(type))) + .map((item) => (item.id !== undefined ? { id: item.id, name: item.label } : null)) + .filter((item) => item !== null) + ); + } + + /** + * Gets the departure timetable for a given station. + * @param options Timetable options including station ID and limit. + * @returns timetable for the given station. + * @docs https://search.ch/fahrplan/api/help + */ + public async getTimetableAsync(options: TimetableOptions): Promise { + const now = new Date(); + // The following format is used [01.01.2000, 23:59:00]. The API allows usage of DD.MM.YYYY format and HH:mm format + const [date, time] = now.toLocaleString("en-CH", { timeZone: "Europe/Zurich" }).split(", ") as [string, string]; + + const response = await fetchWithTrustedCertificatesAsync( + this.url("/timetable/api/stationboard.json", { + stop: options.stationId, + limit: options.limit, + show_delays: 1, + show_tracks: 1, + date, + time: time.substring(0, 5), // Only keep the HH:mm part of the time, as that's what the API expects + }), + ); + + if (!response.ok) { + throw new ResponseError(response); + } + + const data = await timetableSchema.parseAsync(await response.json()); + + return { + stationId: options.stationId, + timestamp: now, + entries: data.connections.map((connection) => { + // Color is in format A35~F10~ for foreground and background color. Some only have ~~ and therefore no color + const color = connection.color.split("~")[0]; + + return { + timestamp: connection.time, + line: connection.line + ? { + name: connection.line, + color: color && color.length >= 1 ? `#${color}` : null, + } + : null, + location: connection.terminal.name, + delay: connection.dep_delay, + platform: connection.track + ? { + // If the track name contains "!", it indicates a change in the track + // so we remove the "!" from the name and set hasChanged to true + name: connection.track.replace("!", ""), + hasChanged: connection.track.includes("!"), + } + : null, + }; + }), + }; + } +} + +const timetableSchema = z.object({ + connections: z.array( + z.object({ + time: z.string().transform((str) => new Date(str)), + line: z.string().optional(), + color: z.string(), + terminal: z.object({ + name: z.string(), + }), + track: z.string().optional(), + dep_delay: z + .string() + .optional() + .transform((str) => (str ? parseInt(str) : 0)), + }), + ), +}); + +const searchSchema = z.array( + z.object({ + id: z.string().optional(), + label: z.string(), + iconclass: z.string(), // This is in format sl-icon-type-{type} + }), +); diff --git a/packages/integrations/src/types.ts b/packages/integrations/src/types.ts index debdd041b..7c7bc4780 100644 --- a/packages/integrations/src/types.ts +++ b/packages/integrations/src/types.ts @@ -12,4 +12,5 @@ export * from "./unifi-controller/unifi-controller-types"; export * from "./opnsense/opnsense-types"; export * from "./interfaces/media-releases"; export * from "./coolify/coolify-types"; +export * from "./interfaces/timetable/timetable-types"; export * from "./tracearr/tracearr-types"; diff --git a/packages/request-handler/src/timetable.ts b/packages/request-handler/src/timetable.ts new file mode 100644 index 000000000..0946ac67d --- /dev/null +++ b/packages/request-handler/src/timetable.ts @@ -0,0 +1,36 @@ +import dayjs from "dayjs"; + +import type { IntegrationKindByCategory } from "@homarr/definitions"; +import { createIntegrationAsync } from "@homarr/integrations"; +import type { Station, Timetable } from "@homarr/integrations/types"; + +import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; + +export const timetableSearchStationsRequestHandler = createCachedIntegrationRequestHandler< + Station[], + IntegrationKindByCategory<"timetable">, + { query: string } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.searchStationsAsync(input.query); + }, + queryKey: "timetableSearchStations", + cacheDuration: dayjs.duration(1, "day"), +}); + +export const timetableGetTimetableRequestHandler = createCachedIntegrationRequestHandler< + Timetable, + IntegrationKindByCategory<"timetable">, + { stationId: string; limit: number } +>({ + async requestAsync(integration, input) { + const integrationInstance = await createIntegrationAsync(integration); + return await integrationInstance.getTimetableAsync({ + stationId: input.stationId, + limit: input.limit, + }); + }, + queryKey: "timetableGetTimetable", + cacheDuration: dayjs.duration(1, "minute"), +}); diff --git a/packages/translation/src/lang/en.json b/packages/translation/src/lang/en.json index 75812b45e..a069f9c4e 100644 --- a/packages/translation/src/lang/en.json +++ b/packages/translation/src/lang/en.json @@ -1525,6 +1525,17 @@ "offline": "Offline" } }, + "timetable": { + "name": "Timetable", + "description": "Displays departure times for a station", + "title": "Departures {station}", + "noStation": "No station selected", + "option": { + "station": { + "label": "Station" + } + } + }, "notebook": { "name": "Notebook", "description": "A simple notebook widget that supports markdown", @@ -3513,6 +3524,9 @@ "minecraftServerStatus": { "label": "Minecraft server status" }, + "timetable": { + "label": "Timetable" + }, "iconsUpdater": { "label": "Icons Updater" }, diff --git a/packages/widgets/src/_inputs/index.ts b/packages/widgets/src/_inputs/index.ts index b19ab8c9c..7018e8dc2 100644 --- a/packages/widgets/src/_inputs/index.ts +++ b/packages/widgets/src/_inputs/index.ts @@ -1,5 +1,6 @@ import type { WidgetOptionType } from "../options"; import { WidgetAppInput } from "./widget-app-input"; +import { WidgetDynamicSelectInput } from "./widget-dynamic-select-input"; import { WidgetLocationInput } from "./widget-location-input"; import { WidgetMultiTextInput } from "./widget-multi-text-input"; import { WidgetMultiReleasesRepositoriesInput } from "./widget-multiReleasesRepositories-input"; @@ -23,6 +24,7 @@ const mapping = { app: WidgetAppInput, sortableItemList: WidgetSortedItemListInput, multiReleasesRepositories: WidgetMultiReleasesRepositoriesInput, + dynamicSelect: WidgetDynamicSelectInput, } satisfies Record; export const getInputForType = (type: TType) => { diff --git a/packages/widgets/src/_inputs/widget-dynamic-select-input.tsx b/packages/widgets/src/_inputs/widget-dynamic-select-input.tsx new file mode 100644 index 000000000..39b70b325 --- /dev/null +++ b/packages/widgets/src/_inputs/widget-dynamic-select-input.tsx @@ -0,0 +1,92 @@ +"use client"; + +import { useState } from "react"; +import { Group, Loader, Select } from "@mantine/core"; +import { useDebouncedValue } from "@mantine/hooks"; +import { IconCheck } from "@tabler/icons-react"; + +import { translateIfNecessary } from "@homarr/translation"; +import { useI18n } from "@homarr/translation/client"; + +import type { CommonWidgetInputProps } from "./common"; +import { useWidgetInputTranslation } from "./common"; +import { useFormContext } from "./form"; + +export interface DynamicSelectOption { + value: string; + label: string; +} + +export const WidgetDynamicSelectInput = ({ property, kind, options }: CommonWidgetInputProps<"dynamicSelect">) => { + const t = useI18n(); + const tWidget = useWidgetInputTranslation(kind, property); + const form = useFormContext(); + const inputProps = form.getInputProps(`options.${property}`); + const [search, setSearch] = useState(""); + const [debouncedSearch] = useDebouncedValue(search, 300); + const { isPending, options: selectOptions } = options.useOptions(debouncedSearch, form.values.integrationIds); + const value = inputProps.value as DynamicSelectOption | null; + const onChange = inputProps.onChange as (value: DynamicSelectOption | null) => void; + + return ( +