From b030c128c1c8c1af7392c4a8ac1afded0c3e2c08 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 21:22:24 +0000 Subject: [PATCH 01/33] chore(deps): update dependency hono@<4.6.5 to >=4.10.3 [security] (#4347) 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 03dfc1e02..f3bedcd66 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "brace-expansion@>=1.0.0 <=1.1.11": ">=4.0.1", "esbuild@<=0.24.2": ">=0.25.11", "form-data@>=4.0.0 <4.0.4": ">=4.0.4", - "hono@<4.6.5": ">=4.10.2", + "hono@<4.6.5": ">=4.10.3", "linkifyjs@<4.3.2": ">=4.3.2", "nanoid@>=4.0.0 <5.0.9": ">=5.1.6", "prismjs@<1.30.0": ">=1.30.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01c18729b..04ca869b4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ overrides: brace-expansion@>=1.0.0 <=1.1.11: '>=4.0.1' esbuild@<=0.24.2: '>=0.25.11' form-data@>=4.0.0 <4.0.4: '>=4.0.4' - hono@<4.6.5: '>=4.10.2' + hono@<4.6.5: '>=4.10.3' linkifyjs@<4.3.2: '>=4.3.2' nanoid@>=4.0.0 <5.0.9: '>=5.1.6' prismjs@<1.30.0: '>=1.30.0' @@ -3117,7 +3117,7 @@ packages: resolution: {integrity: sha512-kz323qIQkNQElEGroo/E9MKPDuIR5pkuk/XEWd50K+cSEKdmdiYx0PKWUdaNY2ecJYngtF+njDMsMKplL6zfEg==} engines: {node: '>=18.14.1'} peerDependencies: - hono: '>=4.10.2' + hono: '>=4.10.3' '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -6981,8 +6981,8 @@ packages: highlightjs-vue@1.0.0: resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - hono@4.10.2: - resolution: {integrity: sha512-p6fyzl+mQo6uhESLxbF5WlBOAJMDh36PljwlKtP5V1v09NxlqGru3ShK+4wKhSuhuYf8qxMmrivHOa/M7q0sMg==} + hono@4.10.3: + resolution: {integrity: sha512-2LOYWUbnhdxdL8MNbNg9XZig6k+cZXm5IjHn2Aviv7honhBMOHb+jxrKIeJRZJRmn+htUCKhaicxwXuUDlchRA==} engines: {node: '>=16.9.0'} hook-std@4.0.0: @@ -11601,9 +11601,9 @@ snapshots: - undici - utf-8-validate - '@hono/node-server@1.13.0(hono@4.10.2)': + '@hono/node-server@1.13.0(hono@4.10.3)': dependencies: - hono: 4.10.2 + hono: 4.10.3 '@humanfs/core@0.19.1': {} @@ -11942,7 +11942,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.10.2) + '@hono/node-server': 1.13.0(hono@4.10.3) '@million/install': 1.0.14 '@rollup/pluginutils': 5.1.0 '@rrweb/types': 2.0.0-alpha.16 @@ -11950,7 +11950,7 @@ snapshots: ci-info: 4.0.0 esbuild: 0.25.11 faster-babel-types: 0.1.0(@babel/types@7.26.0) - hono: 4.10.2 + hono: 4.10.3 isomorphic-fetch: 3.0.0 nanoid: 5.1.6 ohash: 1.1.4 @@ -16210,7 +16210,7 @@ snapshots: highlightjs-vue@1.0.0: {} - hono@4.10.2: {} + hono@4.10.3: {} hook-std@4.0.0: {} From 074d27e37e3430e7e98cf28e2876afe009811027 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 25 Oct 2025 10:00:19 +0200 Subject: [PATCH 02/33] fix(deps): update dependency @paralleldrive/cuid2 to v3 (#4343) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/common/package.json | 2 +- packages/db/package.json | 2 +- pnpm-lock.yaml | 37 ++++++++++++++++++++++++------------ 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/packages/common/package.json b/packages/common/package.json index a5b9682bb..469891c5d 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -29,7 +29,7 @@ "dependencies": { "@homarr/core": "workspace:^0.1.0", "@homarr/log": "workspace:^0.1.0", - "@paralleldrive/cuid2": "^2.2.2", + "@paralleldrive/cuid2": "^3.1.0", "dayjs": "^1.11.18", "dns-caching": "^0.2.7", "next": "15.5.6", diff --git a/packages/db/package.json b/packages/db/package.json index 47bfd3cd6..4a1a48b1a 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -50,7 +50,7 @@ "@homarr/log": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", "@mantine/core": "^8.3.5", - "@paralleldrive/cuid2": "^2.2.2", + "@paralleldrive/cuid2": "^3.1.0", "@testcontainers/mysql": "^11.7.1", "@testcontainers/postgresql": "^11.7.1", "better-sqlite3": "^12.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 04ca869b4..712748949 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -872,8 +872,8 @@ importers: specifier: workspace:^0.1.0 version: link:../log '@paralleldrive/cuid2': - specifier: ^2.2.2 - version: 2.2.2 + specifier: ^3.1.0 + version: 3.1.0 dayjs: specifier: ^1.11.18 version: 1.11.18 @@ -1151,8 +1151,8 @@ importers: specifier: ^8.3.5 version: 8.3.5(@mantine/hooks@8.3.5(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@paralleldrive/cuid2': - specifier: ^2.2.2 - version: 2.2.2 + specifier: ^3.1.0 + version: 3.1.0 '@testcontainers/mysql': specifier: ^11.7.1 version: 11.7.1 @@ -3518,9 +3518,9 @@ packages: cpu: [x64] os: [win32] - '@noble/hashes@1.5.0': - resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} - engines: {node: ^14.21.3 || >=16} + '@noble/hashes@2.0.1': + resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} + engines: {node: '>= 20.19.0'} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -3687,8 +3687,9 @@ packages: '@panva/hkdf@1.2.1': resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==} - '@paralleldrive/cuid2@2.2.2': - resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} + '@paralleldrive/cuid2@3.1.0': + resolution: {integrity: sha512-UhTJsF2XGlIFmGGTUKBfmNCX+B/UCv3w0OHhq2CJIsfH33GN1lkgjATozG+Pf7s3ACcUdM4qaWgzy4Rr8PlUdA==} + hasBin: true '@parcel/watcher-android-arm64@2.4.1': resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} @@ -5320,6 +5321,9 @@ packages: big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -6245,6 +6249,9 @@ packages: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} + error-causes@3.0.2: + resolution: {integrity: sha512-i0B8zq1dHL6mM85FGoxaJnVtx6LD5nL2v0hlpGdntg5FOSyzQ46c9lmz5qx0xRS2+PWHGOHcYxGIBC5Le2dRMw==} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -12007,7 +12014,7 @@ snapshots: '@next/swc-win32-x64-msvc@15.5.6': optional: true - '@noble/hashes@1.5.0': {} + '@noble/hashes@2.0.1': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -12227,9 +12234,11 @@ snapshots: '@panva/hkdf@1.2.1': {} - '@paralleldrive/cuid2@2.2.2': + '@paralleldrive/cuid2@3.1.0': dependencies: - '@noble/hashes': 1.5.0 + '@noble/hashes': 2.0.1 + bignumber.js: 9.3.1 + error-causes: 3.0.2 '@parcel/watcher-android-arm64@2.4.1': optional: true @@ -14270,6 +14279,8 @@ snapshots: big.js@5.2.2: {} + bignumber.js@9.3.1: {} + bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -15135,6 +15146,8 @@ snapshots: environment@1.1.0: {} + error-causes@3.0.2: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 From 94eafddc729f7786e3800cb097afa1522d1fcba6 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 25 Oct 2025 10:01:51 +0200 Subject: [PATCH 03/33] chore(deps): update semantic-release monorepo (#4318) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 6 +- pnpm-lock.yaml | 323 ++++++++++++++++++++++++++----------------------- 2 files changed, 176 insertions(+), 153 deletions(-) diff --git a/package.json b/package.json index f3bedcd66..736e9ab7c 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,8 @@ "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^11.0.6", - "@semantic-release/npm": "^12.0.2", + "@semantic-release/github": "^12.0.0", + "@semantic-release/npm": "^13.1.1", "@semantic-release/release-notes-generator": "^14.1.0", "@testcontainers/redis": "^11.7.1", "@turbo/gen": "^2.5.8", @@ -51,7 +51,7 @@ "cross-env": "^10.1.0", "jsdom": "^27.0.1", "prettier": "^3.6.2", - "semantic-release": "^24.2.9", + "semantic-release": "^25.0.1", "testcontainers": "^11.7.1", "turbo": "^2.5.8", "typescript": "^5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 712748949..fc8460c63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,22 +42,22 @@ importers: version: link:tooling/prettier '@semantic-release/changelog': specifier: ^6.0.3 - version: 6.0.3(semantic-release@24.2.9(typescript@5.9.3)) + version: 6.0.3(semantic-release@25.0.1(typescript@5.9.3)) '@semantic-release/commit-analyzer': specifier: ^13.0.1 - version: 13.0.1(semantic-release@24.2.9(typescript@5.9.3)) + version: 13.0.1(semantic-release@25.0.1(typescript@5.9.3)) '@semantic-release/git': specifier: ^10.0.1 - version: 10.0.1(semantic-release@24.2.9(typescript@5.9.3)) + version: 10.0.1(semantic-release@25.0.1(typescript@5.9.3)) '@semantic-release/github': - specifier: ^11.0.6 - version: 11.0.6(semantic-release@24.2.9(typescript@5.9.3)) + specifier: ^12.0.0 + version: 12.0.0(semantic-release@25.0.1(typescript@5.9.3)) '@semantic-release/npm': - specifier: ^12.0.2 - version: 12.0.2(semantic-release@24.2.9(typescript@5.9.3)) + specifier: ^13.1.1 + version: 13.1.1(semantic-release@25.0.1(typescript@5.9.3)) '@semantic-release/release-notes-generator': specifier: ^14.1.0 - version: 14.1.0(semantic-release@24.2.9(typescript@5.9.3)) + version: 14.1.0(semantic-release@25.0.1(typescript@5.9.3)) '@testcontainers/redis': specifier: ^11.7.1 version: 11.7.1 @@ -86,8 +86,8 @@ importers: specifier: ^3.6.2 version: 3.6.2 semantic-release: - specifier: ^24.2.9 - version: 24.2.9(typescript@5.9.3) + specifier: ^25.0.1 + version: 25.0.1(typescript@5.9.3) testcontainers: specifier: ^11.7.1 version: 11.7.1 @@ -2458,6 +2458,18 @@ importers: packages: + '@actions/core@1.11.1': + resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} + + '@actions/exec@1.1.1': + resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} + + '@actions/http-client@2.2.3': + resolution: {integrity: sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==} + + '@actions/io@1.1.3': + resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -3031,6 +3043,10 @@ packages: '@fastify/ajv-compiler@4.0.2': resolution: {integrity: sha512-Rkiu/8wIjpsf46Rr+Fitd3HRP+VsxUFDDeag0hs9L0ksfnwx2g7SPQQTFL0E8Qv+rfXzQOxBJnjUB9ITUDjfWQ==} + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + '@fastify/error@4.2.0': resolution: {integrity: sha512-RSo3sVDXfHskiBZKBPRgnQTtIqpi/7zhJOEmAxCiBcM7d0uwdGdxLlsCaLzGs8v8NnxIRlfG0N51p5yFaOentQ==} @@ -3562,26 +3578,14 @@ packages: resolution: {integrity: sha512-vjcPRP1xsKWdYKiyKmHkLFCxeH4QvVTv05VJlZxwNToslBFcHRJlsWRaoI2+2JGCf9tIM99x8cN0b1rlAHJiQw==} engines: {node: '>= 20'} - '@octokit/core@7.0.2': - resolution: {integrity: sha512-ODsoD39Lq6vR6aBgvjTnA3nZGliknKboc9Gtxr7E4WDNqY24MxANKcuDQSF0jzapvGb3KWOEDrKfve4HoWGK+g==} - engines: {node: '>= 20'} - '@octokit/core@7.0.5': resolution: {integrity: sha512-t54CUOsFMappY1Jbzb7fetWeO0n6K0k/4+/ZpkS+3Joz8I4VcvY9OiEBFRYISqaI2fq5sCiPtAjRDOzVYG8m+Q==} engines: {node: '>= 20'} - '@octokit/endpoint@11.0.0': - resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} - engines: {node: '>= 20'} - '@octokit/endpoint@11.0.1': resolution: {integrity: sha512-7P1dRAZxuWAOPI7kXfio88trNi/MegQ0IJD3vfgC3b+LZo1Qe6gRJc2v0mz2USWWJOKrB2h5spXCzGbw+fAdqA==} engines: {node: '>= 20'} - '@octokit/graphql@9.0.1': - resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} - engines: {node: '>= 20'} - '@octokit/graphql@9.0.2': resolution: {integrity: sha512-iz6KzZ7u95Fzy9Nt2L8cG88lGRMr/qy1Q36ih/XVzMIlPDMYwaNLE/ENhqmIzgPrlNWiYJkwmveEetvxAgFBJw==} engines: {node: '>= 20'} @@ -3598,9 +3602,6 @@ packages: resolution: {integrity: sha512-xi6Iut3izMCFzXBJtxxJehxJmAKjE8iwj6L5+raPRwlTNKAbOOBJX7/Z8AF5apD4aXvc2skwIdOnC+CQ4QuA8Q==} engines: {node: '>= 20'} - '@octokit/openapi-types@25.1.0': - resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} - '@octokit/openapi-types@26.0.0': resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} @@ -3613,12 +3614,6 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-paginate-rest@13.0.0': - resolution: {integrity: sha512-nPXM3wgil9ONnAINcm8cN+nwso4QhNB13PtnlRFkYFHCUIogcH9DHak/StQYcwkkjuc7pUluLG1AWZNscgvH7Q==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': '>=6' - '@octokit/plugin-paginate-rest@13.2.1': resolution: {integrity: sha512-Tj4PkZyIL6eBMYcG/76QGsedF0+dWVeLhYprTmuFVVxzDW7PQh23tM0TP0z+1MvSkxB29YFZwnUX+cXfTiSdyw==} engines: {node: '>= 20'} @@ -3631,24 +3626,12 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-retry@8.0.1': - resolution: {integrity: sha512-KUoYR77BjF5O3zcwDQHRRZsUvJwepobeqiSSdCJ8lWt27FZExzb0GgVxrhhfuyF6z2B2zpO0hN5pteni1sqWiw==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': '>=7' - '@octokit/plugin-retry@8.0.2': resolution: {integrity: sha512-mVPCe77iaD8g1lIX46n9bHPUirFLzc3BfIzsZOpB7bcQh1ecS63YsAgcsyMGqvGa2ARQWKEFTrhMJX2MLJVHVw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=7' - '@octokit/plugin-throttling@11.0.1': - resolution: {integrity: sha512-S+EVhy52D/272L7up58dr3FNSMXWuNZolkL4zMJBNIfIxyZuUcczsQAU4b5w6dewJXnKYVgSHSV5wxitMSW1kw==} - engines: {node: '>= 20'} - peerDependencies: - '@octokit/core': ^7.0.0 - '@octokit/plugin-throttling@11.0.2': resolution: {integrity: sha512-ntNIig4zZhQVOZF4fG9Wt8QCoz9ehb+xnlUwp74Ic2ANChCk8oKmRwV9zDDCtrvU1aERIOvtng8wsalEX7Jk5Q==} engines: {node: '>= 20'} @@ -3659,17 +3642,10 @@ packages: resolution: {integrity: sha512-CZpFwV4+1uBrxu7Cw8E5NCXDWFNf18MSY23TdxCBgjw1tXXHvTrZVsXlW8hgFTOLw8RQR1BBrMvYRtuyaijHMA==} engines: {node: '>= 20'} - '@octokit/request@10.0.2': - resolution: {integrity: sha512-iYj4SJG/2bbhh+iIpFmG5u49DtJ4lipQ+aPakjL9OKpsGY93wM8w06gvFbEQxcMsZcCvk5th5KkIm2m8o14aWA==} - engines: {node: '>= 20'} - '@octokit/request@10.0.5': resolution: {integrity: sha512-TXnouHIYLtgDhKo+N6mXATnDBkV05VwbR0TtMWpgTHIoQdRQfCSzmy/LGqR1AbRMbijq/EckC/E3/ZNcU92NaQ==} engines: {node: '>= 20'} - '@octokit/types@14.1.0': - resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} - '@octokit/types@15.0.0': resolution: {integrity: sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==} @@ -3990,15 +3966,15 @@ packages: peerDependencies: semantic-release: '>=18.0.0' - '@semantic-release/github@11.0.6': - resolution: {integrity: sha512-ctDzdSMrT3H+pwKBPdyCPty6Y47X8dSrjd3aPZ5KKIKKWTwZBE9De8GtsH3TyAlw3Uyo2stegMx6rJMXKpJwJA==} - engines: {node: '>=20.8.1'} + '@semantic-release/github@12.0.0': + resolution: {integrity: sha512-louWFjzZ+1dogfJTY8IuJuBcBUOTliYhBUYNcomnTfj0i959wtRQbr1POgdCoTHK7ut4N/0LNlYTH8SvSJM3hg==} + engines: {node: ^22.14.0 || >= 24.10.0} peerDependencies: semantic-release: '>=24.1.0' - '@semantic-release/npm@12.0.2': - resolution: {integrity: sha512-+M9/Lb35IgnlUO6OSJ40Ie+hUsZLuph2fqXC/qrKn0fMvUU/jiCjpoL6zEm69vzcmaZJ8yNKtMBEKHWN49WBbQ==} - engines: {node: '>=20.8.1'} + '@semantic-release/npm@13.1.1': + resolution: {integrity: sha512-c4tlp3STYaTYORmMcLjiTaI8SLoxJ0Uf7IXkem8EyihuOM624wnaGuH4OuY2HHcsHDerNAQNzZ8VO6d4PMHSzA==} + engines: {node: ^22.14.0 || >= 24.10.0} peerDependencies: semantic-release: '>=20.1.0' @@ -5555,6 +5531,10 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -6191,6 +6171,9 @@ packages: electron-to-chromium@1.5.55: resolution: {integrity: sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -6237,6 +6220,10 @@ packages: resolution: {integrity: sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==} engines: {node: ^18.17 || >=20.6.1} + env-ci@11.2.0: + resolution: {integrity: sha512-D5kWfzkmaOQDioPmiviWAVtKmpPT4/iJmMVQxWxMPJTFyTkdc5JQUfc5iXEeWxcOdsYTKSAiA/Age4NUOqKsRA==} + engines: {node: ^18.17 || >=20.6.1} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -6777,6 +6764,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -7000,9 +6991,9 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} - hosted-git-info@8.0.2: - resolution: {integrity: sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==} - engines: {node: ^18.17.0 || >=20.5.0} + hosted-git-info@9.0.2: + resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} + engines: {node: ^20.17.0 || >=22.9.0} hpagent@1.2.0: resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} @@ -8274,9 +8265,9 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} - npm@10.9.3: - resolution: {integrity: sha512-6Eh1u5Q+kIVXeA8e7l2c/HpnFFcwrkt37xDMujD5be1gloWa9p6j3Fsv3mByXXmqJHy+2cElRMML8opNT7xIJQ==} - engines: {node: ^18.17.0 || >=20.5.0} + npm@11.6.2: + resolution: {integrity: sha512-7iKzNfy8lWYs3zq4oFPa8EXZz5xt9gQNKJZau3B1ErLBb6bF7sBJ00x09485DOvRT2l5Gerbl3VlZNT57MxJVA==} + engines: {node: ^20.17.0 || >=22.9.0} hasBin: true bundledDependencies: - '@isaacs/string-locale-compare' @@ -8308,7 +8299,6 @@ packages: - libnpmdiff - libnpmexec - libnpmfund - - libnpmhook - libnpmorg - libnpmpack - libnpmpublish @@ -8322,7 +8312,6 @@ packages: - ms - node-gyp - nopt - - normalize-package-data - npm-audit-report - npm-install-checks - npm-package-arg @@ -8346,7 +8335,6 @@ packages: - treeverse - validate-npm-package-name - which - - write-file-atomic oauth4webapi@3.3.0: resolution: {integrity: sha512-ZlozhPlFfobzh3hB72gnBFLjXpugl/dljz1fJSRdqaV2r3D5dmi5lg2QWI0LmUYuazmE+b5exsloEv6toUtw9g==} @@ -9403,9 +9391,9 @@ packages: secure-json-parse@4.0.0: resolution: {integrity: sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==} - semantic-release@24.2.9: - resolution: {integrity: sha512-phCkJ6pjDi9ANdhuF5ElS10GGdAKY6R1Pvt9lT3SFhOwM4T7QZE7MLpBDbNruUx/Q3gFD92/UOFringGipRqZA==} - engines: {node: '>=20.8.1'} + semantic-release@25.0.1: + resolution: {integrity: sha512-0OCYLm0AfVilNGukM+w0C4aptITfuW1Mhvmz8LQliLeYbPOTFRCIJzoltWWx/F5zVFe6np9eNatBUHdAvMFeZg==} + engines: {node: ^22.14.0 || >= 24.10.0} hasBin: true semver-diff@3.1.1: @@ -9699,6 +9687,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string.prototype.includes@2.0.1: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} @@ -10143,6 +10135,10 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + turbo-darwin-64@2.5.8: resolution: {integrity: sha512-Dh5bCACiHO8rUXZLpKw+m3FiHtAp2CkanSyJre+SInEvEr5kIxjGvCK/8MFX8SFRjQuhjtvpIvYYZJB4AGCxNQ==} cpu: [x64] @@ -10300,6 +10296,10 @@ packages: undici-types@7.14.0: resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} + engines: {node: '>=14.0'} + undici@7.16.0: resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} engines: {node: '>=20.18.1'} @@ -10743,6 +10743,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -10842,6 +10846,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} @@ -10850,6 +10858,10 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yargs@18.0.0: + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -10894,6 +10906,22 @@ packages: snapshots: + '@actions/core@1.11.1': + dependencies: + '@actions/exec': 1.1.1 + '@actions/http-client': 2.2.3 + + '@actions/exec@1.1.1': + dependencies: + '@actions/io': 1.1.3 + + '@actions/http-client@2.2.3': + dependencies: + tunnel: 0.0.6 + undici: 5.29.0 + + '@actions/io@1.1.3': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -11494,6 +11522,8 @@ snapshots: ajv-formats: 3.0.1(ajv@8.17.1) fast-uri: 3.0.6 + '@fastify/busboy@2.1.1': {} + '@fastify/error@4.2.0': {} '@fastify/fast-json-stringify-compiler@5.0.3': @@ -12079,16 +12109,6 @@ snapshots: '@octokit/request-error': 7.0.1 '@octokit/types': 15.0.0 - '@octokit/core@7.0.2': - dependencies: - '@octokit/auth-token': 6.0.0 - '@octokit/graphql': 9.0.1 - '@octokit/request': 10.0.2 - '@octokit/request-error': 7.0.1 - '@octokit/types': 14.1.0 - before-after-hook: 4.0.0 - universal-user-agent: 7.0.2 - '@octokit/core@7.0.5': dependencies: '@octokit/auth-token': 6.0.0 @@ -12099,22 +12119,11 @@ snapshots: before-after-hook: 4.0.0 universal-user-agent: 7.0.2 - '@octokit/endpoint@11.0.0': - dependencies: - '@octokit/types': 14.1.0 - universal-user-agent: 7.0.2 - '@octokit/endpoint@11.0.1': dependencies: '@octokit/types': 15.0.0 universal-user-agent: 7.0.2 - '@octokit/graphql@9.0.1': - dependencies: - '@octokit/request': 10.0.5 - '@octokit/types': 14.1.0 - universal-user-agent: 7.0.2 - '@octokit/graphql@9.0.2': dependencies: '@octokit/request': 10.0.5 @@ -12141,8 +12150,6 @@ snapshots: '@octokit/request-error': 7.0.1 '@octokit/types': 15.0.0 - '@octokit/openapi-types@25.1.0': {} - '@octokit/openapi-types@26.0.0': {} '@octokit/openapi-webhooks-types@11.0.0': {} @@ -12151,11 +12158,6 @@ snapshots: dependencies: '@octokit/core': 7.0.5 - '@octokit/plugin-paginate-rest@13.0.0(@octokit/core@7.0.2)': - dependencies: - '@octokit/core': 7.0.2 - '@octokit/types': 14.1.0 - '@octokit/plugin-paginate-rest@13.2.1(@octokit/core@7.0.5)': dependencies: '@octokit/core': 7.0.5 @@ -12166,13 +12168,6 @@ snapshots: '@octokit/core': 7.0.5 '@octokit/types': 15.0.1 - '@octokit/plugin-retry@8.0.1(@octokit/core@7.0.2)': - dependencies: - '@octokit/core': 7.0.2 - '@octokit/request-error': 7.0.1 - '@octokit/types': 14.1.0 - bottleneck: 2.19.5 - '@octokit/plugin-retry@8.0.2(@octokit/core@7.0.5)': dependencies: '@octokit/core': 7.0.5 @@ -12180,12 +12175,6 @@ snapshots: '@octokit/types': 15.0.0 bottleneck: 2.19.5 - '@octokit/plugin-throttling@11.0.1(@octokit/core@7.0.2)': - dependencies: - '@octokit/core': 7.0.2 - '@octokit/types': 14.1.0 - bottleneck: 2.19.5 - '@octokit/plugin-throttling@11.0.2(@octokit/core@7.0.5)': dependencies: '@octokit/core': 7.0.5 @@ -12196,14 +12185,6 @@ snapshots: dependencies: '@octokit/types': 15.0.0 - '@octokit/request@10.0.2': - dependencies: - '@octokit/endpoint': 11.0.0 - '@octokit/request-error': 7.0.1 - '@octokit/types': 14.1.0 - fast-content-type-parse: 3.0.0 - universal-user-agent: 7.0.2 - '@octokit/request@10.0.5': dependencies: '@octokit/endpoint': 11.0.1 @@ -12212,10 +12193,6 @@ snapshots: fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.2 - '@octokit/types@14.1.0': - dependencies: - '@octokit/openapi-types': 25.1.0 - '@octokit/types@15.0.0': dependencies: '@octokit/openapi-types': 26.0.0 @@ -12431,15 +12408,15 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/changelog@6.0.3(semantic-release@24.2.9(typescript@5.9.3))': + '@semantic-release/changelog@6.0.3(semantic-release@25.0.1(typescript@5.9.3))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 fs-extra: 11.2.0 lodash: 4.17.21 - semantic-release: 24.2.9(typescript@5.9.3) + semantic-release: 25.0.1(typescript@5.9.3) - '@semantic-release/commit-analyzer@13.0.1(semantic-release@24.2.9(typescript@5.9.3))': + '@semantic-release/commit-analyzer@13.0.1(semantic-release@25.0.1(typescript@5.9.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 @@ -12449,7 +12426,7 @@ snapshots: import-from-esm: 2.0.0 lodash-es: 4.17.21 micromatch: 4.0.8 - semantic-release: 24.2.9(typescript@5.9.3) + semantic-release: 25.0.1(typescript@5.9.3) transitivePeerDependencies: - supports-color @@ -12457,7 +12434,7 @@ snapshots: '@semantic-release/error@4.0.0': {} - '@semantic-release/git@10.0.1(semantic-release@24.2.9(typescript@5.9.3))': + '@semantic-release/git@10.0.1(semantic-release@25.0.1(typescript@5.9.3))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 @@ -12467,19 +12444,19 @@ snapshots: lodash: 4.17.21 micromatch: 4.0.8 p-reduce: 2.1.0 - semantic-release: 24.2.9(typescript@5.9.3) + semantic-release: 25.0.1(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@semantic-release/github@11.0.6(semantic-release@24.2.9(typescript@5.9.3))': + '@semantic-release/github@12.0.0(semantic-release@25.0.1(typescript@5.9.3))': dependencies: - '@octokit/core': 7.0.2 - '@octokit/plugin-paginate-rest': 13.0.0(@octokit/core@7.0.2) - '@octokit/plugin-retry': 8.0.1(@octokit/core@7.0.2) - '@octokit/plugin-throttling': 11.0.1(@octokit/core@7.0.2) + '@octokit/core': 7.0.5 + '@octokit/plugin-paginate-rest': 13.2.1(@octokit/core@7.0.5) + '@octokit/plugin-retry': 8.0.2(@octokit/core@7.0.5) + '@octokit/plugin-throttling': 11.0.2(@octokit/core@7.0.5) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - debug: 4.4.1 + debug: 4.4.3 dir-glob: 3.0.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -12487,30 +12464,32 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.4 p-filter: 4.1.0 - semantic-release: 24.2.9(typescript@5.9.3) + semantic-release: 25.0.1(typescript@5.9.3) tinyglobby: 0.2.15 url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/npm@12.0.2(semantic-release@24.2.9(typescript@5.9.3))': + '@semantic-release/npm@13.1.1(semantic-release@25.0.1(typescript@5.9.3))': dependencies: + '@actions/core': 1.11.1 '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 + env-ci: 11.2.0 execa: 9.5.2 fs-extra: 11.2.0 lodash-es: 4.17.21 nerf-dart: 1.0.0 normalize-url: 8.0.1 - npm: 10.9.3 + npm: 11.6.2 rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 24.2.9(typescript@5.9.3) - semver: 7.7.1 + semantic-release: 25.0.1(typescript@5.9.3) + semver: 7.7.2 tempy: 3.1.0 - '@semantic-release/release-notes-generator@14.1.0(semantic-release@24.2.9(typescript@5.9.3))': + '@semantic-release/release-notes-generator@14.1.0(semantic-release@25.0.1(typescript@5.9.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 @@ -12522,7 +12501,7 @@ snapshots: into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 - semantic-release: 24.2.9(typescript@5.9.3) + semantic-release: 25.0.1(typescript@5.9.3) transitivePeerDependencies: - supports-color @@ -14534,6 +14513,12 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + cliui@9.0.1: + dependencies: + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.2 + clone@1.0.4: {} clsx@2.1.1: {} @@ -15080,6 +15065,8 @@ snapshots: electron-to-chromium@1.5.55: {} + emoji-regex@10.6.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -15139,6 +15126,11 @@ snapshots: execa: 8.0.1 java-properties: 1.0.2 + env-ci@11.2.0: + dependencies: + execa: 8.0.1 + java-properties: 1.0.2 + env-paths@2.2.1: {} env-paths@3.0.0: @@ -15946,6 +15938,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.4.0: {} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 @@ -16231,9 +16225,9 @@ snapshots: dependencies: lru-cache: 10.4.3 - hosted-git-info@8.0.2: + hosted-git-info@9.0.2: dependencies: - lru-cache: 10.4.3 + lru-cache: 11.2.2 hpagent@1.2.0: {} @@ -17620,7 +17614,7 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 - npm@10.9.3: {} + npm@11.6.2: {} oauth4webapi@3.3.0: {} @@ -18878,13 +18872,13 @@ snapshots: secure-json-parse@4.0.0: {} - semantic-release@24.2.9(typescript@5.9.3): + semantic-release@25.0.1(typescript@5.9.3): dependencies: - '@semantic-release/commit-analyzer': 13.0.1(semantic-release@24.2.9(typescript@5.9.3)) + '@semantic-release/commit-analyzer': 13.0.1(semantic-release@25.0.1(typescript@5.9.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 11.0.6(semantic-release@24.2.9(typescript@5.9.3)) - '@semantic-release/npm': 12.0.2(semantic-release@24.2.9(typescript@5.9.3)) - '@semantic-release/release-notes-generator': 14.1.0(semantic-release@24.2.9(typescript@5.9.3)) + '@semantic-release/github': 12.0.0(semantic-release@25.0.1(typescript@5.9.3)) + '@semantic-release/npm': 13.1.1(semantic-release@25.0.1(typescript@5.9.3)) + '@semantic-release/release-notes-generator': 14.1.0(semantic-release@25.0.1(typescript@5.9.3)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.9.3) debug: 4.4.3 @@ -18895,7 +18889,7 @@ snapshots: get-stream: 6.0.1 git-log-parser: 1.2.1 hook-std: 4.0.0 - hosted-git-info: 8.0.2 + hosted-git-info: 9.0.2 import-from-esm: 2.0.0 lodash-es: 4.17.21 marked: 15.0.11 @@ -18908,7 +18902,7 @@ snapshots: semver: 7.7.2 semver-diff: 5.0.0 signale: 1.4.0 - yargs: 17.7.2 + yargs: 18.0.0 transitivePeerDependencies: - supports-color - typescript @@ -19264,6 +19258,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.0 + string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.7 @@ -19816,6 +19816,8 @@ snapshots: dependencies: safe-buffer: 5.2.1 + tunnel@0.0.6: {} + turbo-darwin-64@2.5.8: optional: true @@ -19989,6 +19991,10 @@ snapshots: undici-types@7.14.0: {} + undici@5.29.0: + dependencies: + '@fastify/busboy': 2.1.1 + undici@7.16.0: {} unicode-emoji-modifier-base@1.0.0: {} @@ -20535,6 +20541,12 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} write-file-atomic@3.0.3: @@ -20598,6 +20610,8 @@ snapshots: yargs-parser@21.1.1: {} + yargs-parser@22.0.0: {} + yargs@16.2.0: dependencies: cliui: 7.0.4 @@ -20618,6 +20632,15 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yargs@18.0.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 7.2.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + yn@3.1.1: {} yocto-queue@0.1.0: {} From ef18c58f5b09bafd697365a0182ab7bc8719db2b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 25 Oct 2025 10:02:42 +0200 Subject: [PATCH 04/33] fix(deps): update dependency node-ical to ^0.22.1 (#4346) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/integrations/package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index b19e8cc88..3e36a435d 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -43,7 +43,7 @@ "@octokit/auth-app": "^8.1.1", "ical.js": "^2.2.1", "maria2": "^0.4.1", - "node-ical": "^0.22.0", + "node-ical": "^0.22.1", "octokit": "^5.0.4", "proxmox-api": "1.1.1", "tsdav": "^2.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc8460c63..c8da3d6bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1488,7 +1488,7 @@ importers: specifier: ^0.4.1 version: 0.4.1 node-ical: - specifier: ^0.22.0 + specifier: ^0.22.1 version: 0.22.1 octokit: specifier: ^5.0.4 From ddb8a996319a60344ac75957eef8eb04840add90 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 25 Oct 2025 08:02:56 +0000 Subject: [PATCH 05/33] chore(deps): update node.js to v22.21.0 (#4349) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .nvmrc | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.nvmrc b/.nvmrc index 442c7587a..aa50a62f2 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.20.0 +22.21.0 diff --git a/package.json b/package.json index 736e9ab7c..4e4c0d127 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ }, "packageManager": "pnpm@10.18.3", "engines": { - "node": ">=22.20.0" + "node": ">=22.21.0" }, "pnpm": { "onlyBuiltDependencies": [ From d9d9afd5e33b18c980c9d096f17393a71961f5f1 Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Sat, 25 Oct 2025 08:03:49 +0000 Subject: [PATCH 06/33] chore(lang): updated translations from crowdin Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> --- packages/translation/src/lang/ca.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/cn.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/cr.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/cs.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/da.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/de-CH.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/de.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/el.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/en-gb.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/es.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/et.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/fr.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/he.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/hr.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/hu.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/it.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/ja.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/ko.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/lt.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/lv.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/nl.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/no.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/pl.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/pt.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/ro.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/ru.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/sk.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/sl.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/sv.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/tr.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/uk.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/vi.json | 26 ++++++++++++++++++++++++ packages/translation/src/lang/zh.json | 26 ++++++++++++++++++++++++ 33 files changed, 858 insertions(+) diff --git a/packages/translation/src/lang/ca.json b/packages/translation/src/lang/ca.json index d29e8d8df..5e67c3462 100644 --- a/packages/translation/src/lang/ca.json +++ b/packages/translation/src/lang/ca.json @@ -645,6 +645,21 @@ "title": "Creació fallida", "message": "No s'ha pogut crear la integració" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "No s'han pogut aplicar els canvis", "message": "No s'ha pogut desar la integració" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Crea un motor de cerca", "description": "La integració \"{kind}\" es pot utilitzar amb els motors de cerca. Seleccioneu aquesta opció per configurar el motor de cerca automàticament." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "", "apply": "", "backToOverview": "", + "change": "", "create": "", "createAnother": "", "edit": "", diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json index 4d14ec958..0819a4c92 100644 --- a/packages/translation/src/lang/cn.json +++ b/packages/translation/src/lang/cn.json @@ -645,6 +645,21 @@ "title": "创建失败", "message": "无法创建组件" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "无法应用更改", "message": "无法保存此集成" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "创建搜索引擎", "description": "集成“{kind}”可以与搜索引擎一起使用。勾选此项可自动配置搜索引擎。" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "创建应用", "description": "创建一个具有与集成相同名称和图标的应用程序。 留空下面的输入字段使用集成URL创建应用程序。" @@ -1026,6 +1051,7 @@ "add": "添加", "apply": "应用", "backToOverview": "返回概览", + "change": "", "create": "创建", "createAnother": "创建并重新开始", "edit": "编辑", diff --git a/packages/translation/src/lang/cr.json b/packages/translation/src/lang/cr.json index a040dc76b..943409778 100644 --- a/packages/translation/src/lang/cr.json +++ b/packages/translation/src/lang/cr.json @@ -645,6 +645,21 @@ "title": "crwdns346:0crwdne346:0", "message": "crwdns348:0crwdne348:0" } + }, + "app": { + "option": { + "existing": { + "title": "crwdns3786:0crwdne3786:0", + "label": "crwdns3788:0crwdne3788:0" + }, + "new": { + "title": "crwdns3790:0crwdne3790:0", + "url": { + "label": "crwdns3792:0crwdne3792:0", + "description": "crwdns3794:0crwdne3794:0" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "crwdns356:0crwdne356:0", "message": "crwdns358:0crwdne358:0" } + }, + "app": { + "action": { + "add": "crwdns3796:0crwdne3796:0", + "remove": "crwdns3798:0crwdne3798:0", + "select": "crwdns3800:0crwdne3800:0" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "crwdns2512:0crwdne2512:0", "description": "crwdns2514:0{kind}crwdne2514:0" }, + "app": { + "sectionTitle": "crwdns3802:0crwdne3802:0" + }, "createApp": { "label": "crwdns3050:0crwdne3050:0", "description": "crwdns3052:0crwdne3052:0" @@ -1026,6 +1051,7 @@ "add": "crwdns512:0crwdne512:0", "apply": "crwdns514:0crwdne514:0", "backToOverview": "crwdns516:0crwdne516:0", + "change": "crwdns3804:0crwdne3804:0", "create": "crwdns518:0crwdne518:0", "createAnother": "crwdns2720:0crwdne2720:0", "edit": "crwdns520:0crwdne520:0", diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json index ea0a5e8d8..1b539a018 100644 --- a/packages/translation/src/lang/cs.json +++ b/packages/translation/src/lang/cs.json @@ -645,6 +645,21 @@ "title": "Vytvoření se nezdařilo", "message": "Integraci se nepodařilo vytvořit" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Nepodařilo se uložit změny", "message": "Integraci se nepodařilo uložit" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Přidat", "apply": "Použít", "backToOverview": "Zpět na přehled", + "change": "", "create": "Vytvořit", "createAnother": "", "edit": "Upravit", diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json index c820319f4..c970437b4 100644 --- a/packages/translation/src/lang/da.json +++ b/packages/translation/src/lang/da.json @@ -645,6 +645,21 @@ "title": "Oprettelse mislykkedes", "message": "Integration kunne ikke oprettes" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Kan ikke anvende ændringer", "message": "Integration kunne ikke gemmes" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Opret Søgemaskine", "description": "Integration \"{kind}\" kan bruges med søgemaskinerne. Markér dette for automatisk at konfigurere søgemaskinen." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Opret app", "description": "Opret en app med samme navn og ikon som integrationen. Lad input-feltet være tomt for at oprette app'en med integrations-URL'en." @@ -1026,6 +1051,7 @@ "add": "Tilføj", "apply": "Anvend", "backToOverview": "Tilbage til oversigt", + "change": "", "create": "Opret", "createAnother": "Opret og start forfra", "edit": "Rediger", diff --git a/packages/translation/src/lang/de-CH.json b/packages/translation/src/lang/de-CH.json index 36907d646..2e8d5f319 100644 --- a/packages/translation/src/lang/de-CH.json +++ b/packages/translation/src/lang/de-CH.json @@ -645,6 +645,21 @@ "title": "Erstellig isch fählgschlage", "message": "D Integration het nid chönne erstäut werde" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Änderige chöi nöd aawendet werde", "message": "D Integration het nöd chönne gspichert werde" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Suechmaschine erstelle", "description": "Integration '{kind}' cha als Suechmaschine verwendet werde. Wähl das us, um se outomatisch als Suechmaschine z konfiguriere." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "App ersteue", "description": "Mach en App mit de gleiche Name und dem gleiche Icon wie d'Integration. Lass d'Eingabefeld unger im Fall leer, um d'App mit em Integrations-URL z'schaffe." @@ -1026,6 +1051,7 @@ "add": "Hinzufügen", "apply": "Übernehmen", "backToOverview": "Zurück zur Übersicht", + "change": "", "create": "Erstellen", "createAnother": "Erstellen und neu starten", "edit": "Bearbeiten", diff --git a/packages/translation/src/lang/de.json b/packages/translation/src/lang/de.json index 3aea61030..3d57085d8 100644 --- a/packages/translation/src/lang/de.json +++ b/packages/translation/src/lang/de.json @@ -645,6 +645,21 @@ "title": "Erstellung fehlgeschlagen", "message": "Die Integration konnte nicht erstellt werden" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Änderungen konnten nicht angewendet werden", "message": "Die Integration konnte nicht gespeichert werden" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Suchmaschinen anlegen", "description": "Integration \"{kind}\" kann mit den Suchmaschinen verwendet werden. Wählen Sie dies, um die Suchmaschine automatisch zu konfigurieren." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "App erstellen", "description": "Eine App mit dem gleichen Namen und Symbol wie die Integration erstellen. Lassen Sie das Eingabefeld unter leer, um die App mit der Integrations URL zu erstellen." @@ -1026,6 +1051,7 @@ "add": "Hinzufügen", "apply": "Übernehmen", "backToOverview": "Zurück zur Übersicht", + "change": "", "create": "Erstellen", "createAnother": "Erstellen und neu starten", "edit": "Bearbeiten", diff --git a/packages/translation/src/lang/el.json b/packages/translation/src/lang/el.json index 468ef4491..5d0b26de3 100644 --- a/packages/translation/src/lang/el.json +++ b/packages/translation/src/lang/el.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Προσθήκη", "apply": "Εφαρμογή", "backToOverview": "", + "change": "", "create": "Δημιουργία", "createAnother": "", "edit": "Επεξεργασία", diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json index 0a1a0c15a..8f13322a5 100644 --- a/packages/translation/src/lang/en-gb.json +++ b/packages/translation/src/lang/en-gb.json @@ -645,6 +645,21 @@ "title": "Creation failed", "message": "The integration was unable to be created" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Changes have not been applied", "message": "The integration was unable to be saved" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Create a search engine", "description": "Integration, {kind} can be used with the search engine. Please check this to automatically configure the search engine." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Create application", "description": "Create an application with the same information as the integration. Please leave the input field below empty to create the application with the integration URL." @@ -1026,6 +1051,7 @@ "add": "Add", "apply": "Apply", "backToOverview": "Back to overview", + "change": "", "create": "Create", "createAnother": "Create and start over", "edit": "Edit", diff --git a/packages/translation/src/lang/es.json b/packages/translation/src/lang/es.json index 97788ece4..3aac475db 100644 --- a/packages/translation/src/lang/es.json +++ b/packages/translation/src/lang/es.json @@ -645,6 +645,21 @@ "title": "No se ha podido crear", "message": "La integración no pudo ser creada" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "No se pudieron aplicar los cambios", "message": "La integración no pudo ser creada" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Crear motor de búsqueda", "description": "La integración \"{kind}\" se puede utilizar con los motores de búsqueda. Marque esta opción para configurar automáticamente el motor de búsqueda." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Crear aplicación", "description": "Crea una aplicación con el mismo nombre e icono que la integración. Deja vacío el campo de entrada de abajo para crear la aplicación con la URL de la integración." @@ -1026,6 +1051,7 @@ "add": "Añadir", "apply": "Aplicar", "backToOverview": "Volver a la vista general", + "change": "", "create": "Crear", "createAnother": "Crear e iniciar de nuevo", "edit": "Editar", diff --git a/packages/translation/src/lang/et.json b/packages/translation/src/lang/et.json index 758ecd7f3..3b0adc11b 100644 --- a/packages/translation/src/lang/et.json +++ b/packages/translation/src/lang/et.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "", "apply": "", "backToOverview": "", + "change": "", "create": "", "createAnother": "", "edit": "", diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json index fe092cc5d..7a75ae544 100644 --- a/packages/translation/src/lang/fr.json +++ b/packages/translation/src/lang/fr.json @@ -645,6 +645,21 @@ "title": "Échec de la création", "message": "L'intégration n'a pas pu être créée" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Impossible d'appliquer les modifications", "message": "L'intégration n'a pas pu être enregistrée" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Créer un moteur de recherche", "description": "L'intégration \"{kind}\" peut être utilisée avec les moteurs de recherche. Cochez ceci pour configurer automatiquement le moteur de recherche." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Créer une application", "description": "Créer une application avec le même nom et l'icône que l'intégration. Laissez le champ de saisie ci-dessous vide pour créer l'application avec l'URL d'intégration." @@ -1026,6 +1051,7 @@ "add": "Ajouter", "apply": "Appliquer", "backToOverview": "Retourner à l'aperçu", + "change": "", "create": "Créer", "createAnother": "Créer et recommencer", "edit": "Modifier", diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json index 9d97269e2..740ec24aa 100644 --- a/packages/translation/src/lang/he.json +++ b/packages/translation/src/lang/he.json @@ -645,6 +645,21 @@ "title": "היצירה נכשלה", "message": "לא ניתן ליצור את האינטגרציה" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "לא ניתן להחיל שינויים", "message": "לא ניתן היה לשמור את האינטגרציה" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "יצירת מנוע חיפוש", "description": "אינטגרציה {kind} יכולה לשמש עם מנועי חיפוש. סמן עבור הגדרה אוטומטית של מנוע חיפוש." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "יצירת אפליקציה", "description": "יצירת אפליקציה עם אותו שם וסמל כמו האינטגרציה. יש להשאיר את שדה הקלט למטה ריק כדי ליצור את האפליקציה עם כתובת האתר לאינטגרציה." @@ -1026,6 +1051,7 @@ "add": "הוסף", "apply": "החל", "backToOverview": "חזרה לסקירה כללית", + "change": "", "create": "צור", "createAnother": "צור והתחל מחדש", "edit": "עריכה", diff --git a/packages/translation/src/lang/hr.json b/packages/translation/src/lang/hr.json index 3153a7db7..6a2a6e6dd 100644 --- a/packages/translation/src/lang/hr.json +++ b/packages/translation/src/lang/hr.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Dodaj", "apply": "", "backToOverview": "", + "change": "", "create": "Stvoriti", "createAnother": "", "edit": "Uredi", diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json index 6246216b7..8eb6b57c1 100644 --- a/packages/translation/src/lang/hu.json +++ b/packages/translation/src/lang/hu.json @@ -645,6 +645,21 @@ "title": "A létrehozás nem sikerült", "message": "Az integráció nem hozható létre" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Nem sikerült alkalmazni a változtatásokat", "message": "Az integrációt nem sikerült menteni" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Hozzáadás", "apply": "Alkalmaz", "backToOverview": "Vissza az áttekintéshez", + "change": "", "create": "Létrehozás", "createAnother": "", "edit": "Szerkesztés", diff --git a/packages/translation/src/lang/it.json b/packages/translation/src/lang/it.json index 9456a3cf4..0132af836 100644 --- a/packages/translation/src/lang/it.json +++ b/packages/translation/src/lang/it.json @@ -645,6 +645,21 @@ "title": "Creazione fallita", "message": "Non è stato possibile creare l'integrazione" } + }, + "app": { + "option": { + "existing": { + "title": "Esistente", + "label": "Seleziona app esistente" + }, + "new": { + "title": "", + "url": { + "label": "Url app", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Impossibile applicare le modifiche", "message": "Non è stato possibile salvare l'integrazione" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Crea Motore Di Ricerca", "description": "Integrazione \"{kind}\" può essere utilizzato con i motori di ricerca. Selezionare questa opzione per configurare automaticamente il motore di ricerca." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Crea app", "description": "Crea un'app con lo stesso nome ed icona dell'integrazione. Lasciare vuoto il campo di input qui sotto per creare l'applicazione con l'URL di integrazione." @@ -1026,6 +1051,7 @@ "add": "Aggiungi", "apply": "Applica", "backToOverview": "Torna alla panoramica", + "change": "", "create": "Crea", "createAnother": "", "edit": "Modifica", diff --git a/packages/translation/src/lang/ja.json b/packages/translation/src/lang/ja.json index a6ed25ba2..d4da6b72c 100644 --- a/packages/translation/src/lang/ja.json +++ b/packages/translation/src/lang/ja.json @@ -645,6 +645,21 @@ "title": "作成失敗", "message": "連携機能を作成できません" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "変更の適用失敗", "message": "連携機能を保存できません" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "検索エンジンを作成", "description": "連携機能 \"{kind}\" は、検索エンジンで使用できます。検索エンジンを自動的に設定するには、これにチェックを入れてください。" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "アプリの作成", "description": "連携機能と同じ名前とアイコンを持つアプリを作成します。 アプリケーションを作成するには、以下の入力フィールドを空のままにしてください。" @@ -1026,6 +1051,7 @@ "add": "追加", "apply": "適用", "backToOverview": "概要に戻る", + "change": "", "create": "作成", "createAnother": "作成・新規入力", "edit": "編集", diff --git a/packages/translation/src/lang/ko.json b/packages/translation/src/lang/ko.json index 278bec58d..c063c2976 100644 --- a/packages/translation/src/lang/ko.json +++ b/packages/translation/src/lang/ko.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "추가", "apply": "", "backToOverview": "", + "change": "", "create": "만들기", "createAnother": "", "edit": "수정", diff --git a/packages/translation/src/lang/lt.json b/packages/translation/src/lang/lt.json index 6803395c9..1b3a24fe9 100644 --- a/packages/translation/src/lang/lt.json +++ b/packages/translation/src/lang/lt.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "", "apply": "", "backToOverview": "", + "change": "", "create": "Sukurti", "createAnother": "", "edit": "", diff --git a/packages/translation/src/lang/lv.json b/packages/translation/src/lang/lv.json index fe17c202b..89dd729f4 100644 --- a/packages/translation/src/lang/lv.json +++ b/packages/translation/src/lang/lv.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Pievienot", "apply": "Lietot", "backToOverview": "", + "change": "", "create": "Izveidot", "createAnother": "", "edit": "Rediģēt", diff --git a/packages/translation/src/lang/nl.json b/packages/translation/src/lang/nl.json index 6e1db002e..0b6f73a4f 100644 --- a/packages/translation/src/lang/nl.json +++ b/packages/translation/src/lang/nl.json @@ -645,6 +645,21 @@ "title": "Aanmaken mislukt", "message": "De integratie kon niet worden aangemaakt" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Kan wijzigingen niet toepassen", "message": "De integratie kon niet worden opgeslagen" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Zoekmachine aanmaken", "description": "Integratie \"{kind}\" kan worden gebruikt met de zoekmachines. Controleer dit om automatisch de zoekmachine te configureren." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "App aanmaken", "description": "Maak een app n met dezelfde naam en icoon als de integratie. Laat het invoerveld hieronder leeg om de app te maken met de integratie-URL." @@ -1026,6 +1051,7 @@ "add": "Toevoegen", "apply": "Toepassen", "backToOverview": "Terug naar overzicht", + "change": "", "create": "Aanmaken", "createAnother": "Aanmaken en opnieuw beginnen", "edit": "Bewerken", diff --git a/packages/translation/src/lang/no.json b/packages/translation/src/lang/no.json index 31a7ff41e..d4596df47 100644 --- a/packages/translation/src/lang/no.json +++ b/packages/translation/src/lang/no.json @@ -645,6 +645,21 @@ "title": "Opprettelse mislyktes", "message": "Integrasjonen kunne ikke opprettes" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Kunne ikke fullføre endringer", "message": "Integrasjonen kunne ikke lagres" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Opprett søkemotor", "description": "Integrasjon \"{kind}\" kan brukes med søkemotorene. Huk av her for å automatisk konfigurere søkemotor." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Legg til", "apply": "Bruk", "backToOverview": "Tilbake til oversikt", + "change": "", "create": "Opprett", "createAnother": "Opprett og start på nytt", "edit": "Rediger", diff --git a/packages/translation/src/lang/pl.json b/packages/translation/src/lang/pl.json index 5e9cf13b4..2228f7aa5 100644 --- a/packages/translation/src/lang/pl.json +++ b/packages/translation/src/lang/pl.json @@ -645,6 +645,21 @@ "title": "Nie udało się utworzyć", "message": "Integracja nie może zostać utworzona" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Nie można wprowadzić zmian", "message": "Integracja nie mogła zostać zapisana" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Utwórz wyszukiwarkę", "description": "Integracja \"{kind}\" może być używana z wyszukiwarkami. Zaznacz to, aby automatycznie skonfigurować wyszukiwarkę." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Stwórz aplikację", "description": "Utwórz aplikację o tej samej nazwie i ikonie, co integracja. Poniższe pole pozostaw puste, aby utworzyć aplikację z URL integracji." @@ -1026,6 +1051,7 @@ "add": "Dodaj", "apply": "Zastosuj", "backToOverview": "Powrót do widoku ogólnego", + "change": "", "create": "Utwórz", "createAnother": "Utwórz i zacznij od nowa", "edit": "Edytuj", diff --git a/packages/translation/src/lang/pt.json b/packages/translation/src/lang/pt.json index 12703cd1f..dbc71a242 100644 --- a/packages/translation/src/lang/pt.json +++ b/packages/translation/src/lang/pt.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Adicionar", "apply": "Aplicar", "backToOverview": "", + "change": "", "create": "Criar", "createAnother": "", "edit": "Editar", diff --git a/packages/translation/src/lang/ro.json b/packages/translation/src/lang/ro.json index 476a71115..e8101d110 100644 --- a/packages/translation/src/lang/ro.json +++ b/packages/translation/src/lang/ro.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Adaugă", "apply": "Aplică", "backToOverview": "", + "change": "", "create": "Creează", "createAnother": "", "edit": "Editare", diff --git a/packages/translation/src/lang/ru.json b/packages/translation/src/lang/ru.json index a473d4ce7..6933b3fd9 100644 --- a/packages/translation/src/lang/ru.json +++ b/packages/translation/src/lang/ru.json @@ -645,6 +645,21 @@ "title": "Не удалось создать", "message": "Не удалось создать интеграцию" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Не удалось сохранить", "message": "Не удалось сохранить интеграцию" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Создать поисковую систему", "description": "Интеграцию \"{kind}\" можно использовать с поисковыми системами. Включите эту опцию для автоматической настройки поисковой системы." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Добавить", "apply": "Применить", "backToOverview": "Вернуться к обзору", + "change": "", "create": "Создать", "createAnother": "Создать и начать заново", "edit": "Редактировать", diff --git a/packages/translation/src/lang/sk.json b/packages/translation/src/lang/sk.json index 8f12af284..177ea8aee 100644 --- a/packages/translation/src/lang/sk.json +++ b/packages/translation/src/lang/sk.json @@ -645,6 +645,21 @@ "title": "Vytvorenie zlyhalo", "message": "Integráciu nebolo možné vytvoriť" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Nie je možné použiť zmeny", "message": "Integráciu sa nepodarilo uložiť" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Vytvorte vyhľadávače", "description": "Integrácia \"{kind}\" môže byť použitá s vyhľadávačmi. Toto začiarknite, ak chcete automaticky nakonfigurovať vyhľadávací nástroj." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Vytvoriť aplikáciu", "description": "Vytvorte aplikáciu s rovnakým názvom a ikonou ako integrácia. Ak chcete vytvoriť aplikáciu s integračnou webovou adresou, ponechajte vstupné pole nižšie prázdne." @@ -1026,6 +1051,7 @@ "add": "Pridať", "apply": "Použiť", "backToOverview": "Späť na prehľad", + "change": "", "create": "Vytvoriť", "createAnother": "Vytvorte a začnite odznova", "edit": "Upraviť", diff --git a/packages/translation/src/lang/sl.json b/packages/translation/src/lang/sl.json index 6c8c211ab..36a201943 100644 --- a/packages/translation/src/lang/sl.json +++ b/packages/translation/src/lang/sl.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Dodaj", "apply": "Uporabi", "backToOverview": "", + "change": "", "create": "Ustvarite spletno stran", "createAnother": "", "edit": "Uredi", diff --git a/packages/translation/src/lang/sv.json b/packages/translation/src/lang/sv.json index 482eb0b22..b8e8a738a 100644 --- a/packages/translation/src/lang/sv.json +++ b/packages/translation/src/lang/sv.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Lägg till", "apply": "Använd", "backToOverview": "Tillbaka till översikten", + "change": "", "create": "Addera", "createAnother": "Addera och börja om", "edit": "Redigera", diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json index f725237e6..cbeddb5a5 100644 --- a/packages/translation/src/lang/tr.json +++ b/packages/translation/src/lang/tr.json @@ -645,6 +645,21 @@ "title": "Oluşturma başarısız oldu", "message": "Entegrasyon oluşturulamadı" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Değişiklikler uygulanamıyor", "message": "Entegrasyon kaydedilemedi" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Arama Motoru Oluştur", "description": "\"{kind}\" entegrasyonu arama motorlarıyla kullanılabilir. Arama motorunu otomatik olarak yapılandırmak için bunu işaretleyin." }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Uygulama oluştur", "description": "Entegrasyon ile aynı adı ve simgeyi taşıyan bir uygulama oluşturun. Uygulamayı entegrasyon URL'si ile oluşturmak için aşağıdaki alanını boş bırakın." @@ -1026,6 +1051,7 @@ "add": "Ekle", "apply": "Uygula", "backToOverview": "Genel bakışa dön", + "change": "", "create": "Oluştur", "createAnother": "Kaydet ve Yeni Oluştur", "edit": "Düzenle", diff --git a/packages/translation/src/lang/uk.json b/packages/translation/src/lang/uk.json index be1b19d26..dc1d422fa 100644 --- a/packages/translation/src/lang/uk.json +++ b/packages/translation/src/lang/uk.json @@ -645,6 +645,21 @@ "title": "Не вдалося створити", "message": "Не вдалося створити інтеграцію" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "Не вдалося застосувати зміни", "message": "Не вдалося зберегти інтеграцію" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Створення пошукових систем", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "", "description": "" @@ -1026,6 +1051,7 @@ "add": "Додати", "apply": "Застосувати", "backToOverview": "Назад до огляду", + "change": "", "create": "Створити", "createAnother": "", "edit": "Редагувати", diff --git a/packages/translation/src/lang/vi.json b/packages/translation/src/lang/vi.json index 4b6643e40..879bcb087 100644 --- a/packages/translation/src/lang/vi.json +++ b/packages/translation/src/lang/vi.json @@ -645,6 +645,21 @@ "title": "", "message": "" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "", "message": "" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "Tạo công cụ tìm kiếm", "description": "" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "Tạo ứng dụng", "description": "" @@ -1026,6 +1051,7 @@ "add": "Thêm", "apply": "Áp dụng", "backToOverview": "Trở về mục tổng quan", + "change": "", "create": "Tạo nên", "createAnother": "", "edit": "Sửa", diff --git a/packages/translation/src/lang/zh.json b/packages/translation/src/lang/zh.json index 1ab2083dd..2b6491908 100644 --- a/packages/translation/src/lang/zh.json +++ b/packages/translation/src/lang/zh.json @@ -645,6 +645,21 @@ "title": "創建失敗", "message": "此集成無法被創建" } + }, + "app": { + "option": { + "existing": { + "title": "", + "label": "" + }, + "new": { + "title": "", + "url": { + "label": "", + "description": "" + } + } + } } }, "edit": { @@ -658,6 +673,13 @@ "title": "無法應用變更", "message": "集成無法被儲存" } + }, + "app": { + "action": { + "add": "", + "remove": "", + "select": "" + } } }, "delete": { @@ -686,6 +708,9 @@ "label": "創建搜尋引擎", "description": "集成 {kind} 可以與搜尋引擎共同使用,勾選此選項可自動設定搜尋引擎" }, + "app": { + "sectionTitle": "" + }, "createApp": { "label": "創建應用程式", "description": "建立一個與集成相同名稱和圖示的應用程式,將下方輸入欄位留空,以使用集成網址創建應用程式" @@ -1026,6 +1051,7 @@ "add": "新增", "apply": "應用", "backToOverview": "返回總覽", + "change": "", "create": "創建", "createAnother": "創建並重新開始", "edit": "編輯", From 945d2a124495bb4bdef07d13a13d3788ebe2b8c2 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 25 Oct 2025 10:06:52 +0200 Subject: [PATCH 07/33] chore: update bug report template --- .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 044d32bbe..3b99e37f2 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.43.0 - 1.42.1 - 1.42.0 - 1.41.0 From 1abece05ae681af715b040963ad6ef0b5b05eb3b Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 00:53:29 +0000 Subject: [PATCH 08/33] chore(lang): updated translations from crowdin Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> --- packages/translation/src/lang/da.json | 20 ++++---- packages/translation/src/lang/es.json | 20 ++++---- packages/translation/src/lang/he.json | 70 +++++++++++++-------------- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json index c970437b4..abaca1718 100644 --- a/packages/translation/src/lang/da.json +++ b/packages/translation/src/lang/da.json @@ -649,14 +649,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Eksisterende", + "label": "Vælg eksisterende app" }, "new": { - "title": "", + "title": "Ny", "url": { - "label": "", - "description": "" + "label": "App url", + "description": "Webadressen som app'en vil åbne, når den tilgås fra betjeningspanelet" } } } @@ -676,9 +676,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Link en app", + "remove": "Fjern link", + "select": "Vælg en app der skal linkes" } } }, @@ -709,7 +709,7 @@ "description": "Integration \"{kind}\" kan bruges med søgemaskinerne. Markér dette for automatisk at konfigurere søgemaskinen." }, "app": { - "sectionTitle": "" + "sectionTitle": "Linket App" }, "createApp": { "label": "Opret app", @@ -1051,7 +1051,7 @@ "add": "Tilføj", "apply": "Anvend", "backToOverview": "Tilbage til oversigt", - "change": "", + "change": "Skift", "create": "Opret", "createAnother": "Opret og start forfra", "edit": "Rediger", diff --git a/packages/translation/src/lang/es.json b/packages/translation/src/lang/es.json index 3aac475db..ffb18a030 100644 --- a/packages/translation/src/lang/es.json +++ b/packages/translation/src/lang/es.json @@ -649,14 +649,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Existente", + "label": "Seleccionar aplicación existente" }, "new": { - "title": "", + "title": "Nueva", "url": { - "label": "", - "description": "" + "label": "URL de aplicación", + "description": "La URL que abrirá la aplicación cuando se acceda desde el panel de control" } } } @@ -676,9 +676,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Vincular una aplicación", + "remove": "Desvincular", + "select": "Selecciona una aplicación para vincular" } } }, @@ -709,7 +709,7 @@ "description": "La integración \"{kind}\" se puede utilizar con los motores de búsqueda. Marque esta opción para configurar automáticamente el motor de búsqueda." }, "app": { - "sectionTitle": "" + "sectionTitle": "Aplicación vinculada" }, "createApp": { "label": "Crear aplicación", @@ -1051,7 +1051,7 @@ "add": "Añadir", "apply": "Aplicar", "backToOverview": "Volver a la vista general", - "change": "", + "change": "Modificar", "create": "Crear", "createAnother": "Crear e iniciar de nuevo", "edit": "Editar", diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json index 740ec24aa..bb41d30dd 100644 --- a/packages/translation/src/lang/he.json +++ b/packages/translation/src/lang/he.json @@ -649,14 +649,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "קיים", + "label": "בחירת אפליקציה קיימת" }, "new": { - "title": "", + "title": "חדש", "url": { - "label": "", - "description": "" + "label": "כתובת אתר של אפליקציה", + "description": "כתובת האתר שהאפליקציה תפתח בעת גישה אליה מלוח המחוונים" } } } @@ -676,9 +676,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "קישור אפליקציה", + "remove": "בטל קישור", + "select": "בחר אפליקציה לקישור" } } }, @@ -709,7 +709,7 @@ "description": "אינטגרציה {kind} יכולה לשמש עם מנועי חיפוש. סמן עבור הגדרה אוטומטית של מנוע חיפוש." }, "app": { - "sectionTitle": "" + "sectionTitle": "אפליקציה מקושרת" }, "createApp": { "label": "יצירת אפליקציה", @@ -971,8 +971,8 @@ "newLabel": "נושא חדש" }, "url": { - "label": "", - "newLabel": "" + "label": "כתובת אתר", + "newLabel": "כתובת אתר חדשה" }, "opnsenseApiKey": { "label": "מפתח API (מפתח)", @@ -1051,7 +1051,7 @@ "add": "הוסף", "apply": "החל", "backToOverview": "חזרה לסקירה כללית", - "change": "", + "change": "לשנות", "create": "צור", "createAnother": "צור והתחל מחדש", "edit": "עריכה", @@ -1174,8 +1174,8 @@ }, "unit": { "speed": { - "kilometersPerHour": "", - "milesPerHour": "" + "kilometersPerHour": "קמ\"ש", + "milesPerHour": "מייל/שעה" } } }, @@ -1190,7 +1190,7 @@ "label": "כותרת" }, "customCssClasses": { - "label": "" + "label": "מחלקות עיצוב מותאמות אישית" }, "borderColor": { "label": "צבע מסגרת" @@ -1743,7 +1743,7 @@ "name": "לוח שנה", "description": "הצג אירועים מהאינטגרציות שלך בתצוגת לוח שנה בתוך פרק זמן יחסי מסוים", "duration": { - "allDay": "" + "allDay": "כל היום" }, "option": { "releaseType": { @@ -1780,7 +1780,7 @@ "description": "רק במזג אוויר נוכחי" }, "useImperialSpeed": { - "label": "" + "label": "השתמש במייל לשעה עבור מהירות הרוח" }, "location": { "label": "מיקום מזג האוויר" @@ -2020,21 +2020,21 @@ "name": "שם", "id": "מזהה", "metadata": { - "title": "", + "title": "סטטיסטיקות לחנונים", "video": { - "title": "", - "resolution": "" + "title": "וידאו", + "resolution": "רזולוציה" }, "audio": { - "title": "", - "channelCount": "", - "codec": "" + "title": "אודיו", + "channelCount": "ערוצי אודיו", + "codec": "מקודדי אודיו" }, "transcoding": { - "title": "", - "container": "", - "resolution": "", - "target": "" + "title": "המרה", + "container": "מיכל", + "resolution": "רזולוציה", + "target": "קידוד יעד" } } } @@ -2563,7 +2563,7 @@ "description": "שימוש במעבד, זיכרון, דיסק וחומרה אחרת של המערכת שלך", "option": { "hasShadow": { - "label": "" + "label": "הפעלת הצללת תרשים" }, "visibleCharts": { "label": "תרשימים גלויים", @@ -2575,12 +2575,12 @@ } }, "labelDisplayMode": { - "label": "", + "label": "מצב תצוגת תוויות", "option": { - "textWithIcon": "", - "text": "", - "icon": "", - "hidden": "" + "textWithIcon": "הצג טקסט עם סמל", + "text": "הצג רק טקסט", + "icon": "הצג רק אייקון", + "hidden": "הסתר תוויות" } } }, @@ -3013,8 +3013,8 @@ "integration": "אינטגרציות", "app": "אפליקציות", "group": "קבוצות", - "searchEngine": "", - "media": "" + "searchEngine": "מנועי חיפוש", + "media": "מדיה" }, "statisticLabel": { "boards": "לוחות", From fc46d88071255fc434bc92ca96a00f59031644dd Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 02:06:12 +0000 Subject: [PATCH 09/33] chore(deps): update dependency @types/node to ^22.18.12 (#4350) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- apps/tasks/package.json | 2 +- pnpm-lock.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 215ba0f1a..efa764ed0 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -94,7 +94,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/chroma-js": "3.1.1", - "@types/node": "^22.18.11", + "@types/node": "^22.18.12", "@types/prismjs": "^1.26.5", "@types/react": "19.2.2", "@types/react-dom": "19.2.2", diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 7bf4fe99a..ccb3b866f 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -47,7 +47,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node": "^22.18.11", + "@types/node": "^22.18.12", "dotenv-cli": "^10.0.0", "esbuild": "^0.25.11", "eslint": "^9.38.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8da3d6bf..a9bf74ced 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -339,7 +339,7 @@ importers: specifier: 3.1.1 version: 3.1.1 '@types/node': - specifier: ^22.18.11 + specifier: ^22.18.12 version: 22.18.12 '@types/prismjs': specifier: ^1.26.5 @@ -448,7 +448,7 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node': - specifier: ^22.18.11 + specifier: ^22.18.12 version: 22.18.12 dotenv-cli: specifier: ^10.0.0 From f96cbe06525515112fad466cb8a5f33d74517aba Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 03:23:16 +0000 Subject: [PATCH 10/33] fix(deps): update dependency typescript-eslint to ^8.46.2 (#4352) 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 a9bf74ced..7a834c17a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2406,7 +2406,7 @@ importers: version: 2.5.8(eslint@9.38.0)(turbo@2.5.8) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0) + version: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0) eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@9.38.0) @@ -2417,8 +2417,8 @@ importers: specifier: ^6.1.1 version: 6.1.1(eslint@9.38.0) typescript-eslint: - specifier: ^8.46.1 - version: 8.46.1(eslint@9.38.0)(typescript@5.9.3) + specifier: ^8.46.2 + version: 8.46.2(eslint@9.38.0)(typescript@5.9.3) devDependencies: '@homarr/prettier-config': specifier: workspace:^0.1.0 @@ -4735,63 +4735,63 @@ packages: '@types/xml2js@0.4.14': resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} - '@typescript-eslint/eslint-plugin@8.46.1': - resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} + '@typescript-eslint/eslint-plugin@8.46.2': + resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.46.1 + '@typescript-eslint/parser': ^8.46.2 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.46.1': - resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} + '@typescript-eslint/parser@8.46.2': + resolution: {integrity: sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.46.1': - resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} + '@typescript-eslint/project-service@8.46.2': + resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.46.1': - resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} + '@typescript-eslint/scope-manager@8.46.2': + resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.46.1': - resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} + '@typescript-eslint/tsconfig-utils@8.46.2': + resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.46.1': - resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} + '@typescript-eslint/type-utils@8.46.2': + resolution: {integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.46.1': - resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} + '@typescript-eslint/types@8.46.2': + resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.46.1': - resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} + '@typescript-eslint/typescript-estree@8.46.2': + resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.46.1': - resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} + '@typescript-eslint/utils@8.46.2': + resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.46.1': - resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} + '@typescript-eslint/visitor-keys@8.46.2': + resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@umami/node@0.4.0': @@ -10250,8 +10250,8 @@ packages: types-ramda@0.30.1: resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} - typescript-eslint@8.46.1: - resolution: {integrity: sha512-VHgijW803JafdSsDO8I761r3SHrgk4T00IdyQ+/UsthtgPRsBWQLqoSxOolxTpxRKi1kGXK0bSz4CoAc9ObqJA==} + typescript-eslint@8.46.2: + resolution: {integrity: sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -13558,14 +13558,14 @@ snapshots: dependencies: '@types/node': 22.18.12 - '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.1(eslint@9.38.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/type-utils': 8.46.1(eslint@9.38.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.38.0)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.1 + '@typescript-eslint/parser': 8.46.2(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.2 + '@typescript-eslint/type-utils': 8.46.2(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.2(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.2 eslint: 9.38.0 graphemer: 1.4.0 ignore: 7.0.4 @@ -13575,41 +13575,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.1(eslint@9.38.0)(typescript@5.9.3)': + '@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.1 + '@typescript-eslint/scope-manager': 8.46.2 + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.2 debug: 4.4.3 eslint: 9.38.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.46.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) - '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) + '@typescript-eslint/types': 8.46.2 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.46.1': + '@typescript-eslint/scope-manager@8.46.2': dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/visitor-keys': 8.46.2 - '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.46.1(eslint@9.38.0)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.46.2(eslint@9.38.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.2(eslint@9.38.0)(typescript@5.9.3) debug: 4.4.3 eslint: 9.38.0 ts-api-utils: 2.1.0(typescript@5.9.3) @@ -13617,14 +13617,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.46.1': {} + '@typescript-eslint/types@8.46.2': {} - '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.46.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 + '@typescript-eslint/project-service': 8.46.2(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/visitor-keys': 8.46.2 debug: 4.4.3 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -13635,20 +13635,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.1(eslint@9.38.0)(typescript@5.9.3)': + '@typescript-eslint/utils@8.46.2(eslint@9.38.0)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.2 + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) eslint: 9.38.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.46.1': + '@typescript-eslint/visitor-keys@8.46.2': dependencies: - '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/types': 8.46.2 eslint-visitor-keys: 4.2.1 '@umami/node@0.4.0': {} @@ -15442,17 +15442,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.46.1(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.2(eslint@9.38.0)(typescript@5.9.3) eslint: 9.38.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -15463,7 +15463,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.38.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -15475,7 +15475,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.46.1(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.2(eslint@9.38.0)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -19947,12 +19947,12 @@ snapshots: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.46.1(eslint@9.38.0)(typescript@5.9.3): + typescript-eslint@8.46.2(eslint@9.38.0)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0)(typescript@5.9.3) - '@typescript-eslint/parser': 8.46.1(eslint@9.38.0)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.2(eslint@9.38.0)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.2(eslint@9.38.0)(typescript@5.9.3) eslint: 9.38.0 typescript: 5.9.3 transitivePeerDependencies: diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index cc2e34c1a..6a5bbb2e4 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.46.1" + "typescript-eslint": "^8.46.2" }, "devDependencies": { "@homarr/prettier-config": "workspace:^0.1.0", From 29da5cc90544b7319e421cb37bcf0d5c9da10ea9 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 03:23:45 +0000 Subject: [PATCH 11/33] chore(deps): update dependency node to v22.21.0 (#4354) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .github/workflows/deployment-docker-image.yml | 2 +- tooling/github/setup/action.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 4d980912a..2b5fdabbf 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -64,7 +64,7 @@ jobs: - uses: actions/setup-node@v5 if: env.SKIP_RELEASE == 'false' with: - node-version: 22.20.0 + node-version: 22.21.0 cache: "pnpm" - run: npm i -g pnpm if: env.SKIP_RELEASE == 'false' diff --git a/tooling/github/setup/action.yml b/tooling/github/setup/action.yml index 2a553d2c6..5743b0193 100644 --- a/tooling/github/setup/action.yml +++ b/tooling/github/setup/action.yml @@ -7,7 +7,7 @@ runs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v5 with: - node-version: 22.20.0 + node-version: 22.21.0 cache: "pnpm" - shell: bash From 3c4c26ee214a37193aea31b69ce75322862fc534 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 14:28:07 +0000 Subject: [PATCH 12/33] fix(deps): update dependency ioredis to v5.8.2 (#4357) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/core/package.json | 2 +- packages/redis/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 1b1ec734c..6207ade4f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -25,7 +25,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@t3-oss/env-nextjs": "^0.13.8", - "ioredis": "5.8.1", + "ioredis": "5.8.2", "zod": "^4.1.12" }, "devDependencies": { diff --git a/packages/redis/package.json b/packages/redis/package.json index 659f8b525..78dcc3c85 100644 --- a/packages/redis/package.json +++ b/packages/redis/package.json @@ -27,7 +27,7 @@ "@homarr/db": "workspace:^", "@homarr/definitions": "workspace:^", "@homarr/log": "workspace:^", - "ioredis": "5.8.1", + "ioredis": "5.8.2", "superjson": "2.2.2" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a834c17a..ace17d521 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -924,8 +924,8 @@ importers: specifier: ^0.13.8 version: 0.13.8(arktype@2.1.20)(typescript@5.9.3)(zod@4.1.12) ioredis: - specifier: 5.8.1 - version: 5.8.1 + specifier: 5.8.2 + version: 5.8.2 zod: specifier: ^4.1.12 version: 4.1.12 @@ -1850,8 +1850,8 @@ importers: specifier: workspace:^ version: link:../log ioredis: - specifier: 5.8.1 - version: 5.8.1 + specifier: 5.8.2 + version: 5.8.2 superjson: specifier: 2.2.2 version: 2.2.2 @@ -7161,8 +7161,8 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ioredis@5.8.1: - resolution: {integrity: sha512-Qho8TgIamqEPdgiMadJwzRMW3TudIg6vpg4YONokGDudy4eqRIJtDbVX72pfLBcWxvbn3qm/40TyGUObdW4tLQ==} + ioredis@5.8.2: + resolution: {integrity: sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==} engines: {node: '>=12.22.0'} ip-address@9.0.5: @@ -16403,7 +16403,7 @@ snapshots: dependencies: loose-envify: 1.4.0 - ioredis@5.8.1: + ioredis@5.8.2: dependencies: '@ioredis/commands': 1.4.0 cluster-key-slot: 1.1.2 From 0491598d59e4cc96d87bd45c7de5368f6d0a2886 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 14:28:32 +0000 Subject: [PATCH 13/33] chore(deps): update pnpm to v10.19.0 (#4358) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4e4c0d127..c766fdd28 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.2.4" }, - "packageManager": "pnpm@10.18.3", + "packageManager": "pnpm@10.19.0", "engines": { "node": ">=22.21.0" }, From 554d19a458e856141f90e795ecebabf205e945e9 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 17:12:05 +0000 Subject: [PATCH 14/33] fix(deps): update dependency @jellyfin/sdk to ^0.12.0 (#4359) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/integrations/package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 3e36a435d..b1799ce95 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -39,7 +39,7 @@ "@homarr/redis": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@jellyfin/sdk": "^0.11.0", + "@jellyfin/sdk": "^0.12.0", "@octokit/auth-app": "^8.1.1", "ical.js": "^2.2.1", "maria2": "^0.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ace17d521..2b0b9de46 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1476,8 +1476,8 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@jellyfin/sdk': - specifier: ^0.11.0 - version: 0.11.0(axios@1.12.2) + specifier: ^0.12.0 + version: 0.12.0(axios@1.12.2) '@octokit/auth-app': specifier: ^8.1.1 version: 8.1.1 @@ -3314,10 +3314,10 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jellyfin/sdk@0.11.0': - resolution: {integrity: sha512-WmM4as9ptqH+CvC2YsUefNWQDmu2aWIamwAoj7h2BFR6l019pcRFG5FT22egwbdizR6DfdpmsoAWB4x9QCzcEQ==} + '@jellyfin/sdk@0.12.0': + resolution: {integrity: sha512-do3cks7TD316Qw27lBMHZQ7ufaS1MC8HMsQF5rFv5/DUInuwEOqWthqVyHl3sIjThOThF1zxQyE6OdpUl0dNUg==} peerDependencies: - axios: '>=1.12.2' + axios: ^1.12.0 '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} @@ -11771,7 +11771,7 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jellyfin/sdk@0.11.0(axios@1.12.2)': + '@jellyfin/sdk@0.12.0(axios@1.12.2)': dependencies: axios: 1.12.2 From 6e6c9122257934402848d6fdc51e6ccdfc2dcca0 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 19:33:05 +0000 Subject: [PATCH 15/33] fix(deps): update dependency mysql2 to v3.15.3 (#4360) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/db/package.json | 2 +- pnpm-lock.yaml | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/db/package.json b/packages/db/package.json index 4a1a48b1a..04a035258 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -58,7 +58,7 @@ "drizzle-kit": "^0.31.5", "drizzle-orm": "^0.44.6", "drizzle-zod": "^0.8.3", - "mysql2": "3.15.2", + "mysql2": "3.15.3", "pg": "^8.16.3", "superjson": "2.2.2" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b0b9de46..93814229e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1170,13 +1170,13 @@ importers: version: 0.31.5 drizzle-orm: specifier: ^0.44.6 - version: 0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.2)(pg@8.16.3) + version: 0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3) drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.2)(pg@8.16.3))(zod@4.1.12) + version: 0.8.3(drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3))(zod@4.1.12) mysql2: - specifier: 3.15.2 - version: 3.15.2 + specifier: 3.15.3 + version: 3.15.3 pg: specifier: ^8.16.3 version: 8.16.3 @@ -8058,8 +8058,8 @@ packages: engines: {node: '>=8', npm: '>=5'} hasBin: true - mysql2@3.15.2: - resolution: {integrity: sha512-kFm5+jbwR5mC+lo+3Cy46eHiykWSpUtTLOH3GE+AR7GeLq8PgfJcvpMiyVWk9/O53DjQsqm6a3VOOfq7gYWFRg==} + mysql2@3.15.3: + resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==} engines: {node: '>= 8.0'} mz@2.7.0: @@ -10943,7 +10943,7 @@ snapshots: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - lru-cache: 11.1.0 + lru-cache: 11.2.2 '@asamuzakjp/dom-selector@6.7.2': dependencies: @@ -15029,19 +15029,19 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.2)(pg@8.16.3): + drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3): optionalDependencies: '@libsql/client-wasm': 0.14.0 '@types/better-sqlite3': 7.6.13 '@types/pg': 8.15.5 better-sqlite3: 12.4.1 gel: 2.0.0 - mysql2: 3.15.2 + mysql2: 3.15.3 pg: 8.16.3 - drizzle-zod@0.8.3(drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.2)(pg@8.16.3))(zod@4.1.12): + drizzle-zod@0.8.3(drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3))(zod@4.1.12): dependencies: - drizzle-orm: 0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.2)(pg@8.16.3) + drizzle-orm: 0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3) zod: 4.1.12 dunder-proto@1.0.1: @@ -17402,7 +17402,7 @@ snapshots: '@babel/runtime': 7.28.4 global: 4.4.0 - mysql2@3.15.2: + mysql2@3.15.3: dependencies: aws-ssl-profiles: 1.1.2 denque: 2.1.0 From ce6338840c20fc46048687ed5566ff12fa4b2502 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 10:36:32 +0000 Subject: [PATCH 16/33] fix(deps): update dependency next-intl to v4.4.0 (#4365) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/translation/package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/translation/package.json b/packages/translation/package.json index 67a643891..c2b232a98 100644 --- a/packages/translation/package.json +++ b/packages/translation/package.json @@ -33,7 +33,7 @@ "deepmerge": "4.3.1", "mantine-react-table": "2.0.0-beta.9", "next": "15.5.6", - "next-intl": "4.3.12", + "next-intl": "4.4.0", "react": "19.2.0", "react-dom": "19.2.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 93814229e..e9757f3f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2089,8 +2089,8 @@ importers: specifier: 15.5.6 version: 15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) next-intl: - specifier: 4.3.12 - version: 4.3.12(next@15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0)(typescript@5.9.3) + specifier: 4.4.0 + version: 4.4.0(next@15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0)(typescript@5.9.3) react: specifier: 19.2.0 version: 19.2.0 @@ -8126,10 +8126,10 @@ packages: nodemailer: optional: true - next-intl@4.3.12: - resolution: {integrity: sha512-yAmrQ3yx0zpNva/knniDvam3jT2d01Lv2aRgRxUIDL9zm9O4AsDjWbDIxX13t5RNf0KVnKkxH+iRcqEAmWecPg==} + next-intl@4.4.0: + resolution: {integrity: sha512-QHqnP9V9Pe7Tn0PdVQ7u1Z8k9yCkW5SJKeRy2g5gxzhSt/C01y3B9qNxuj3Fsmup/yreIHe6osxU6sFa+9WIkQ==} peerDependencies: - next: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 + next: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 typescript: ^5.0.0 peerDependenciesMeta: @@ -10427,8 +10427,8 @@ packages: peerDependencies: react: '>=16.13' - use-intl@4.3.12: - resolution: {integrity: sha512-RxW2/D17irlDOJOzClKl+kWA7ReGLpo/A8f/LF7w1kIxO6mPKVh422JJ/pDCcvtYFCI4aPtn1AXUfELKbM+7tg==} + use-intl@4.4.0: + resolution: {integrity: sha512-smFekJWtokDRBLC5/ZumlBREzdXOkw06+56Ifj2uRe9266Mk+yWQm2PcJO+EwlOE5sHIXHixOTzN6V8E0RGUbw==} peerDependencies: react: ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 @@ -17453,13 +17453,13 @@ snapshots: next: 15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) react: 19.2.0 - next-intl@4.3.12(next@15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0)(typescript@5.9.3): + next-intl@4.4.0(next@15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0)(typescript@5.9.3): dependencies: '@formatjs/intl-localematcher': 0.5.5 negotiator: 1.0.0 next: 15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) react: 19.2.0 - use-intl: 4.3.12(react@19.2.0) + use-intl: 4.4.0(react@19.2.0) optionalDependencies: typescript: 5.9.3 @@ -20135,7 +20135,7 @@ snapshots: dequal: 2.0.3 react: 19.2.0 - use-intl@4.3.12(react@19.2.0): + use-intl@4.4.0(react@19.2.0): dependencies: '@formatjs/fast-memoize': 2.2.1 '@schummar/icu-type-parser': 1.21.5 From 18cc04e7f2740226f7bc7c75c0b0cdaec7cda6f8 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 11:28:47 +0000 Subject: [PATCH 17/33] fix(deps): update dependency superjson to v2.2.3 (#4364) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- apps/tasks/package.json | 2 +- packages/analytics/package.json | 2 +- packages/api/package.json | 2 +- packages/db/package.json | 2 +- packages/log/package.json | 2 +- packages/old-import/package.json | 2 +- packages/redis/package.json | 2 +- packages/request-handler/package.json | 2 +- pnpm-lock.yaml | 62 +++++++++++++-------------- 10 files changed, 40 insertions(+), 40 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index efa764ed0..4ed3f7e7c 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -84,7 +84,7 @@ "react-error-boundary": "^6.0.0", "react-simple-code-editor": "^0.14.1", "sass": "^1.93.2", - "superjson": "2.2.2", + "superjson": "2.2.3", "swagger-ui-react": "^5.29.5", "use-deep-compare-effect": "^1.8.1", "zod": "^4.1.12" diff --git a/apps/tasks/package.json b/apps/tasks/package.json index ccb3b866f..62bcd8568 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -40,7 +40,7 @@ "dayjs": "^1.11.18", "dotenv": "^17.2.3", "fastify": "^5.6.1", - "superjson": "2.2.2", + "superjson": "2.2.3", "undici": "7.16.0" }, "devDependencies": { diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 0c97c51c8..38dff5180 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -26,7 +26,7 @@ "@homarr/log": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", "@umami/node": "^0.4.0", - "superjson": "2.2.2" + "superjson": "2.2.3" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/api/package.json b/packages/api/package.json index 7a9457b98..d34328079 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -52,7 +52,7 @@ "next": "15.5.6", "react": "19.2.0", "react-dom": "19.2.0", - "superjson": "2.2.2", + "superjson": "2.2.3", "trpc-to-openapi": "^3.1.0", "zod": "^4.1.12" }, diff --git a/packages/db/package.json b/packages/db/package.json index 04a035258..cdefa56d9 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -60,7 +60,7 @@ "drizzle-zod": "^0.8.3", "mysql2": "3.15.3", "pg": "^8.16.3", - "superjson": "2.2.2" + "superjson": "2.2.3" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/log/package.json b/packages/log/package.json index adf4f6fcd..32b8418ec 100644 --- a/packages/log/package.json +++ b/packages/log/package.json @@ -25,7 +25,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/core": "workspace:^0.1.0", - "superjson": "2.2.2", + "superjson": "2.2.3", "winston": "3.18.3", "zod": "^4.1.12" }, diff --git a/packages/old-import/package.json b/packages/old-import/package.json index 870f9dd8e..42dd7c8ce 100644 --- a/packages/old-import/package.json +++ b/packages/old-import/package.json @@ -43,7 +43,7 @@ "next": "15.5.6", "react": "19.2.0", "react-dom": "19.2.0", - "superjson": "2.2.2", + "superjson": "2.2.3", "zod": "^4.1.12", "zod-form-data": "^3.0.1" }, diff --git a/packages/redis/package.json b/packages/redis/package.json index 78dcc3c85..ce0c5a7e3 100644 --- a/packages/redis/package.json +++ b/packages/redis/package.json @@ -28,7 +28,7 @@ "@homarr/definitions": "workspace:^", "@homarr/log": "workspace:^", "ioredis": "5.8.2", - "superjson": "2.2.2" + "superjson": "2.2.3" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/request-handler/package.json b/packages/request-handler/package.json index bfe3cc047..2a420268a 100644 --- a/packages/request-handler/package.json +++ b/packages/request-handler/package.json @@ -31,7 +31,7 @@ "@homarr/redis": "workspace:^0.1.0", "dayjs": "^1.11.18", "octokit": "^5.0.4", - "superjson": "2.2.2", + "superjson": "2.2.3", "undici": "7.16.0", "zod": "^4.1.12" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e9757f3f5..9dcd5d18d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -314,8 +314,8 @@ importers: specifier: ^1.93.2 version: 1.93.2 superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 swagger-ui-react: specifier: ^5.29.5 version: 5.29.5(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -432,8 +432,8 @@ importers: specifier: ^5.6.1 version: 5.6.1 superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 undici: specifier: 7.16.0 version: 7.16.0 @@ -545,8 +545,8 @@ importers: specifier: ^0.4.0 version: 0.4.0 superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -660,8 +660,8 @@ importers: specifier: 19.2.0 version: 19.2.0(react@19.2.0) superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 trpc-to-openapi: specifier: ^3.1.0 version: 3.1.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.6.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.1.12))(zod@4.1.12) @@ -1181,8 +1181,8 @@ importers: specifier: ^8.16.3 version: 8.16.3 superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1537,8 +1537,8 @@ importers: specifier: workspace:^0.1.0 version: link:../core superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 winston: specifier: 3.18.3 version: 3.18.3 @@ -1751,8 +1751,8 @@ importers: specifier: 19.2.0 version: 19.2.0(react@19.2.0) superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 zod: specifier: ^4.1.12 version: 4.1.12 @@ -1853,8 +1853,8 @@ importers: specifier: 5.8.2 version: 5.8.2 superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1902,8 +1902,8 @@ importers: specifier: ^5.0.4 version: 5.0.4 superjson: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 undici: specifier: 7.16.0 version: 7.16.0 @@ -5670,9 +5670,9 @@ packages: resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} engines: {node: '>= 0.8'} - copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} + copy-anything@4.0.5: + resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + engines: {node: '>=18'} copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} @@ -7437,9 +7437,9 @@ packages: resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} engines: {node: '>= 0.4'} - is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} + is-what@5.5.0: + resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} + engines: {node: '>=18'} is-yarn-global@0.3.0: resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} @@ -9797,8 +9797,8 @@ packages: resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} engines: {node: '>=18'} - superjson@2.2.2: - resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + superjson@2.2.3: + resolution: {integrity: sha512-ay3d+LW/S6yppKoTz3Bq4mG0xrS5bFwfWEBmQfbC7lt5wmtk+Obq0TxVuA9eYRirBTQb1K3eEpBRHMQEo0WyVw==} engines: {node: '>=16'} supports-color@5.5.0: @@ -14662,9 +14662,9 @@ snapshots: depd: 2.0.0 keygrip: 1.1.0 - copy-anything@3.0.5: + copy-anything@4.0.5: dependencies: - is-what: 4.1.16 + is-what: 5.5.0 copy-to-clipboard@3.3.3: dependencies: @@ -16663,7 +16663,7 @@ snapshots: call-bind: 1.0.8 get-intrinsic: 1.3.0 - is-what@4.1.16: {} + is-what@5.5.0: {} is-yarn-global@0.3.0: {} @@ -19393,9 +19393,9 @@ snapshots: function-timeout: 1.0.2 time-span: 5.1.0 - superjson@2.2.2: + superjson@2.2.3: dependencies: - copy-anything: 3.0.5 + copy-anything: 4.0.5 supports-color@5.5.0: dependencies: From 7329135fd85906602a16a9bdc16a1ef1cc4607c5 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:00:55 +0000 Subject: [PATCH 18/33] fix(deps): update testcontainers-node monorepo to ^11.7.2 (#4366) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- packages/db/package.json | 4 ++-- pnpm-lock.yaml | 46 ++++++++++++++++++++-------------------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index c766fdd28..d42216891 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "@semantic-release/github": "^12.0.0", "@semantic-release/npm": "^13.1.1", "@semantic-release/release-notes-generator": "^14.1.0", - "@testcontainers/redis": "^11.7.1", + "@testcontainers/redis": "^11.7.2", "@turbo/gen": "^2.5.8", "@vitejs/plugin-react": "^5.0.4", "@vitest/coverage-v8": "^3.2.4", @@ -52,7 +52,7 @@ "jsdom": "^27.0.1", "prettier": "^3.6.2", "semantic-release": "^25.0.1", - "testcontainers": "^11.7.1", + "testcontainers": "^11.7.2", "turbo": "^2.5.8", "typescript": "^5.9.3", "vite-tsconfig-paths": "^5.1.4", diff --git a/packages/db/package.json b/packages/db/package.json index cdefa56d9..e9ffefcf1 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -51,8 +51,8 @@ "@homarr/server-settings": "workspace:^0.1.0", "@mantine/core": "^8.3.5", "@paralleldrive/cuid2": "^3.1.0", - "@testcontainers/mysql": "^11.7.1", - "@testcontainers/postgresql": "^11.7.1", + "@testcontainers/mysql": "^11.7.2", + "@testcontainers/postgresql": "^11.7.2", "better-sqlite3": "^12.4.1", "dotenv": "^17.2.3", "drizzle-kit": "^0.31.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9dcd5d18d..e35fca2e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,8 +59,8 @@ importers: specifier: ^14.1.0 version: 14.1.0(semantic-release@25.0.1(typescript@5.9.3)) '@testcontainers/redis': - specifier: ^11.7.1 - version: 11.7.1 + specifier: ^11.7.2 + version: 11.7.2 '@turbo/gen': specifier: ^2.5.8 version: 2.5.8(@types/node@24.7.0)(typescript@5.9.3) @@ -89,8 +89,8 @@ importers: specifier: ^25.0.1 version: 25.0.1(typescript@5.9.3) testcontainers: - specifier: ^11.7.1 - version: 11.7.1 + specifier: ^11.7.2 + version: 11.7.2 turbo: specifier: ^2.5.8 version: 2.5.8 @@ -1154,11 +1154,11 @@ importers: specifier: ^3.1.0 version: 3.1.0 '@testcontainers/mysql': - specifier: ^11.7.1 - version: 11.7.1 + specifier: ^11.7.2 + version: 11.7.2 '@testcontainers/postgresql': - specifier: ^11.7.1 - version: 11.7.1 + specifier: ^11.7.2 + version: 11.7.2 better-sqlite3: specifier: ^12.4.1 version: 12.4.1 @@ -4192,14 +4192,14 @@ packages: '@tanstack/virtual-core@3.11.2': resolution: {integrity: sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==} - '@testcontainers/mysql@11.7.1': - resolution: {integrity: sha512-/5jZWI/i5+bUQpRopPSt9YZFOxIFu2bNT/tHTpJih1kzdhwdfYfRRLHmCg7i1bs9iHT/ZaTFtYmJwN/e7R9/pA==} + '@testcontainers/mysql@11.7.2': + resolution: {integrity: sha512-zKXpEC8dsBeqx+r8UcZR0bkS1OEz3CpT2cTaaJ1bVf9bWgBtDjcgJorXxUgSgpcy4Jd4bRfZNU3fhpnj2lZn5Q==} - '@testcontainers/postgresql@11.7.1': - resolution: {integrity: sha512-8PfGNqwdyoMPQuubZM0wd07/tfi4vhLAjXP791tM105vSCmzCOhLfYu2CIq04GKVlmW1J5z5nOZWLNlU9WrUuQ==} + '@testcontainers/postgresql@11.7.2': + resolution: {integrity: sha512-sG0J/q/i2XWToDzoGhwNT+z1ae/65wvINg4t171rGRYdtW777w5rvin4hkT7poe5thsTrs6zBkrlF+r55Zt5/g==} - '@testcontainers/redis@11.7.1': - resolution: {integrity: sha512-nyM7HjtF1lSiL6MjI3uQpJCYxvkwxtqYlButCLT3wJOnCPomiAe2OoWPmsVpI1FvbAcTrm2ck4r5Jzx5GXbMUQ==} + '@testcontainers/redis@11.7.2': + resolution: {integrity: sha512-6AuHSV0DRsKL8CcuRevZnsLjBXhj5HjNL1HuD8dayzorMmcSzPiQ3EZriq2kYthDViFq4r6zxA8QLlTjsAT+dA==} '@tiptap/core@2.26.3': resolution: {integrity: sha512-TaOJzu2v5ufsOx+yu94NqXE504zmupVdFCxH1g3hk5fzZ3gT57Lh9R/27OjwM4e6o+Z3DXDl8yfFMHIcR3zUkg==} @@ -9900,8 +9900,8 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - testcontainers@11.7.1: - resolution: {integrity: sha512-fjut+07G4Avp6Lly/6hQePpUpQFv9ZyQd+7JC5iCDKg+dWa2Sw7fXD3pBrkzslYFfKqGx9M6kyIaLpg9VeMsjw==} + testcontainers@11.7.2: + resolution: {integrity: sha512-jeFzeyzLhIouRAbLnQNapJ2esBs/mvXkkYvO1/vSZehT3/7+Q557qaNxwKwMqAbfxfSh7gcx1OLlMsQUZ9JLdA==} text-decoder@1.2.0: resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} @@ -12943,23 +12943,23 @@ snapshots: '@tanstack/virtual-core@3.11.2': {} - '@testcontainers/mysql@11.7.1': + '@testcontainers/mysql@11.7.2': dependencies: - testcontainers: 11.7.1 + testcontainers: 11.7.2 transitivePeerDependencies: - bare-buffer - supports-color - '@testcontainers/postgresql@11.7.1': + '@testcontainers/postgresql@11.7.2': dependencies: - testcontainers: 11.7.1 + testcontainers: 11.7.2 transitivePeerDependencies: - bare-buffer - supports-color - '@testcontainers/redis@11.7.1': + '@testcontainers/redis@11.7.2': dependencies: - testcontainers: 11.7.1 + testcontainers: 11.7.2 transitivePeerDependencies: - bare-buffer - supports-color @@ -19565,7 +19565,7 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 - testcontainers@11.7.1: + testcontainers@11.7.2: dependencies: '@balena/dockerignore': 1.0.2 '@types/dockerode': 3.3.44 From 920a33861f933d09e62f54fe1eb1d308c2e08655 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 07:32:04 +0000 Subject: [PATCH 19/33] chore(deps): update dependency vite@>=5.0.0 <=5.4.18 to >=7.1.12 (#4370) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index d42216891..2da4e4687 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "tar-fs@>=3.0.0 <3.0.9": ">=3.1.1", "tar-fs@>=2.0.0 <2.1.3": ">=3.1.1", "tmp@<=0.2.3": ">=0.2.5", - "vite@>=5.0.0 <=5.4.18": ">=7.1.11" + "vite@>=5.0.0 <=5.4.18": ">=7.1.12" }, "patchedDependencies": { "@types/node-unifi": "patches/@types__node-unifi.patch", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e35fca2e9..3749ed8a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,7 +23,7 @@ overrides: tar-fs@>=3.0.0 <3.0.9: '>=3.1.1' tar-fs@>=2.0.0 <2.1.3: '>=3.1.1' tmp@<=0.2.3: '>=0.2.5' - vite@>=5.0.0 <=5.4.18: '>=7.1.11' + vite@>=5.0.0 <=5.4.18: '>=7.1.12' patchedDependencies: '@types/node-unifi': @@ -66,7 +66,7 @@ importers: version: 2.5.8(@types/node@24.7.0)(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^5.0.4 - version: 5.0.4(vite@7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) + version: 5.0.4(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) '@vitest/coverage-v8': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) @@ -99,7 +99,7 @@ importers: version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) + version: 5.1.4(typescript@5.9.3)(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) vitest: specifier: ^3.2.4 version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) @@ -4821,7 +4821,7 @@ packages: resolution: {integrity: sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: '>=7.1.11' + vite: '>=7.1.12' '@vitest/coverage-v8@3.2.4': resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} @@ -4839,7 +4839,7 @@ packages: resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: msw: ^2.4.9 - vite: '>=7.1.11' + vite: '>=7.1.12' peerDependenciesMeta: msw: optional: true @@ -10526,13 +10526,13 @@ packages: vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=7.1.11' + vite: '>=7.1.12' peerDependenciesMeta: vite: optional: true - vite@7.1.11: - resolution: {integrity: sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==} + vite@7.1.12: + resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -13683,7 +13683,7 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@5.0.4(vite@7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': + '@vitejs/plugin-react@5.0.4(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -13691,7 +13691,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) transitivePeerDependencies: - supports-color @@ -13722,13 +13722,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': + '@vitest/mocker@3.2.4(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -20245,7 +20245,7 @@ snapshots: debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) transitivePeerDependencies: - '@types/node' - jiti @@ -20260,18 +20260,18 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.9.3) optionalDependencies: - vite: 7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) transitivePeerDependencies: - supports-color - typescript - vite@7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1): + vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1): dependencies: esbuild: 0.25.11 fdir: 6.5.0(picomatch@4.0.3) @@ -20292,7 +20292,7 @@ snapshots: dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) + '@vitest/mocker': 3.2.4(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -20310,7 +20310,7 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.11(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) vite-node: 3.2.4(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) why-is-node-running: 2.3.0 optionalDependencies: From 136ed8e8b401b801ba16f2079bdfb5aeebe9f57f Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 13:43:01 +0000 Subject: [PATCH 20/33] fix(deps): update tiptap monorepo to v2.26.4 (#4371) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/widgets/package.json | 32 +-- pnpm-lock.yaml | 444 +++++++++++++++++----------------- 2 files changed, 238 insertions(+), 238 deletions(-) diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 08000d3d5..1c9aa25ca 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -52,22 +52,22 @@ "@mantine/core": "^8.3.5", "@mantine/hooks": "^8.3.5", "@tabler/icons-react": "^3.35.0", - "@tiptap/extension-color": "2.26.3", - "@tiptap/extension-highlight": "2.26.3", - "@tiptap/extension-image": "2.26.3", - "@tiptap/extension-link": "^2.26.3", - "@tiptap/extension-placeholder": "^2.26.3", - "@tiptap/extension-table": "2.26.3", - "@tiptap/extension-table-cell": "2.26.3", - "@tiptap/extension-table-header": "2.26.3", - "@tiptap/extension-table-row": "2.26.3", - "@tiptap/extension-task-item": "2.26.3", - "@tiptap/extension-task-list": "2.26.3", - "@tiptap/extension-text-align": "2.26.3", - "@tiptap/extension-text-style": "2.26.3", - "@tiptap/extension-underline": "2.26.3", - "@tiptap/react": "^2.26.3", - "@tiptap/starter-kit": "^2.26.3", + "@tiptap/extension-color": "2.26.4", + "@tiptap/extension-highlight": "2.26.4", + "@tiptap/extension-image": "2.26.4", + "@tiptap/extension-link": "^2.26.4", + "@tiptap/extension-placeholder": "^2.26.4", + "@tiptap/extension-table": "2.26.4", + "@tiptap/extension-table-cell": "2.26.4", + "@tiptap/extension-table-header": "2.26.4", + "@tiptap/extension-table-row": "2.26.4", + "@tiptap/extension-task-item": "2.26.4", + "@tiptap/extension-task-list": "2.26.4", + "@tiptap/extension-text-align": "2.26.4", + "@tiptap/extension-text-style": "2.26.4", + "@tiptap/extension-underline": "2.26.4", + "@tiptap/react": "^2.26.4", + "@tiptap/starter-kit": "^2.26.4", "clsx": "^2.1.1", "dayjs": "^1.11.18", "mantine-form-zod-resolver": "^1.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3749ed8a4..43dcf43ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -228,7 +228,7 @@ importers: version: 8.3.5(@mantine/core@8.3.5(@mantine/hooks@8.3.5(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mantine/hooks@8.3.5(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@mantine/tiptap': specifier: ^8.3.5 - version: 8.3.5(@mantine/core@8.3.5(@mantine/hooks@8.3.5(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mantine/hooks@8.3.5(react@19.2.0))(@tiptap/extension-link@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3))(@tiptap/react@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 8.3.5(@mantine/core@8.3.5(@mantine/hooks@8.3.5(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mantine/hooks@8.3.5(react@19.2.0))(@tiptap/extension-link@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4))(@tiptap/react@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@million/lint': specifier: 1.0.14 version: 1.0.14(webpack-sources@3.2.3) @@ -2293,53 +2293,53 @@ importers: specifier: ^3.35.0 version: 3.35.0(react@19.2.0) '@tiptap/extension-color': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/extension-text-style@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/extension-text-style@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))) '@tiptap/extension-highlight': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/extension-image': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/extension-link': - specifier: ^2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) + specifier: ^2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) '@tiptap/extension-placeholder': - specifier: ^2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) + specifier: ^2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) '@tiptap/extension-table': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) '@tiptap/extension-table-cell': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/extension-table-header': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/extension-table-row': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/extension-task-item': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) '@tiptap/extension-task-list': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/extension-text-align': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/extension-text-style': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/extension-underline': - specifier: 2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + specifier: 2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) '@tiptap/react': - specifier: ^2.26.3 - version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: ^2.26.4 + version: 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tiptap/starter-kit': - specifier: ^2.26.3 - version: 2.26.3 + specifier: ^2.26.4 + version: 2.26.4 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -4201,206 +4201,206 @@ packages: '@testcontainers/redis@11.7.2': resolution: {integrity: sha512-6AuHSV0DRsKL8CcuRevZnsLjBXhj5HjNL1HuD8dayzorMmcSzPiQ3EZriq2kYthDViFq4r6zxA8QLlTjsAT+dA==} - '@tiptap/core@2.26.3': - resolution: {integrity: sha512-TaOJzu2v5ufsOx+yu94NqXE504zmupVdFCxH1g3hk5fzZ3gT57Lh9R/27OjwM4e6o+Z3DXDl8yfFMHIcR3zUkg==} + '@tiptap/core@2.26.4': + resolution: {integrity: sha512-F8t0Nc1OeV51CCHR1WYVMg/gOzHD2fJALUpMxF67/LDjFnxM/rarsqTQnLZuBoP9U3TfbNLSAQLZ4TCnBZnXRA==} peerDependencies: '@tiptap/pm': ^2.7.0 - '@tiptap/extension-blockquote@2.26.3': - resolution: {integrity: sha512-brz8+wh03TuMevNUztTSC9BzZEsLCNakPJCCicD8FRpBJoLj4benT6T3GYVdMhkk4BmhpruSFZB0FPY+rxCVlA==} + '@tiptap/extension-blockquote@2.26.4': + resolution: {integrity: sha512-VGE1QDmdhAtP6/01KAeURxy7uJZo+h9U5eE0tkMY+UP6NJemqoskCSZQi0L789inQwoVsgJ7Rua8N38lRicvQA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-bold@2.26.3': - resolution: {integrity: sha512-ssXKQxSwQ+Webv65emK/A1d13iTvnfbw8I2wlzuxsrMChyb4wH2HyqI5N4g0FpLqCpkXFumforoY+0XKktve+w==} + '@tiptap/extension-bold@2.26.4': + resolution: {integrity: sha512-fsvaIUg9QiYMhJqAAljyZUnJ15S+sMZJyvZLkyTr4tYfKevhnLnTkN8ju1IsiGFWkdmgKGF6DO57zX+geLFs9A==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-bubble-menu@2.26.3': - resolution: {integrity: sha512-vliC5bv/md4qkguqqL8w7LW8jnXBD1FLdSMDavHRVwdRaRnEfLRAIY7Oxtc1Voy3+762tfn912TuwDlCOPsNSQ==} + '@tiptap/extension-bubble-menu@2.26.4': + resolution: {integrity: sha512-w7W+Llf+/ucpl+Fr5Rc0hx4XimS0RF/f2MY4evr5ayCBwYewNx8bcYRS78jL5r5fti6dJYyFeSHFz6pLbdZtsw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-bullet-list@2.26.3': - resolution: {integrity: sha512-pfBMOup1JbXgf2aVTtG1A5t7qFZJrpD+wNPuypjF2YWmCl/pAlwbPFz9hNuWyZq14+QoQg5tML1/G1M7cgrrtw==} + '@tiptap/extension-bullet-list@2.26.4': + resolution: {integrity: sha512-oEdXrkLJO0D9qHMzazQOsKurhGaOk4onbM/91AZZCXWRfcsZOjduuNT96nk7FrsLOdatQshFxW1wPYkglBZEIA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-code-block@2.26.3': - resolution: {integrity: sha512-3DbzKRfMqw9EGS7mGkpyopbRWTO+qpV52Mby4Ll2+OfhvGnHzSN4Q7xOsp+VeZr14GMEmua5Oq2e/gRypqXatQ==} + '@tiptap/extension-code-block@2.26.4': + resolution: {integrity: sha512-e2zc/E1o3jgI3FhGAdxBZR1bp2PAVhAK5Q4zEX33rei7Tygioa7sbIBvW+a4Fx5+H+zp4q5rklb6gDMNnSw9qw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-code@2.26.3': - resolution: {integrity: sha512-bAkUNzV+tA1J1RYbtbAGTFqkRw9+yRpAd+d3S9jy/dAD+uOe1ZD1EIngyEf2GTonnoy4bpDYtytbCjUt9PozoA==} + '@tiptap/extension-code@2.26.4': + resolution: {integrity: sha512-YNKoiUwBVuBav9ZvKm/rJDZ+SkdSr4mw54OalMF7T1XhJpFRWnGi3FxI28M4ZNFy1aLPqLVjWCH5/i6rjv+YQw==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-color@2.26.3': - resolution: {integrity: sha512-ijwfLpLWXDi797aKtQLPnMYrIQuC2g/Sqw+1k+tDNCfAgqK1LaALGiqf8j1vAcdE0tHdl37PIjud3Qv0hh6J5w==} + '@tiptap/extension-color@2.26.4': + resolution: {integrity: sha512-/r88vvIKp77qYhlZ1tDPNEb8yxwNQ7m/+1dRkg/lTbbdfMTM1m0RTRrUJGFsJL1EZhCbxuUo2OUCE+2XKTAu6A==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/extension-text-style': ^2.7.0 - '@tiptap/extension-document@2.26.3': - resolution: {integrity: sha512-gcJg4Otchilr4eSUwhPNwbhPUkEYvXhkUZ/1MAhVGD40Ovq2P8ZWkJipA3tKOCJinL5MJK59ccZBstnKSTw+JA==} + '@tiptap/extension-document@2.26.4': + resolution: {integrity: sha512-CYg74gNpztFIeU6DGJG/8rjzmk/ZB9t+q0+U97kTfV9tb0NB+//vfFQU2VR2wcayGihxXQXqQKzx3PsiiSH5/w==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-dropcursor@2.26.3': - resolution: {integrity: sha512-54rgDTmRStVmXZR7KdCvSOCAbumh5luXgticUkRM8OM8PBe1c0T9X8jfV7+XEFGugRVl8mtCZZpgUt5vhuxHog==} + '@tiptap/extension-dropcursor@2.26.4': + resolution: {integrity: sha512-JySrOi9oNRuJ7hl8YXdpcYiV3WXk1oZ1Wj1HLx29usk+GCMR9vQoqN3QRhNVOcP9xG01p/4lHlePzgfKYUlkew==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-floating-menu@2.26.3': - resolution: {integrity: sha512-i2dsIMa0L6vjCPnTiXjPZXZqUu3sIIIAI+E1T4p0FsGYjjPTmN+AgkJqeO3bbe5XHmWcWKtgQevNCMF0kmU5rQ==} + '@tiptap/extension-floating-menu@2.26.4': + resolution: {integrity: sha512-ah9qfzZJbWTGz698lBLk7a0kRbDmPsS3yovzilS2FBMSBfKyoslThGHstIT9FHcvTNwlK9+pnPt2P8nJn8Ncmw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-gapcursor@2.26.3': - resolution: {integrity: sha512-ZDNSkpz7ik2PJOjrys27rwko5Ufe6GtLjaAxjvkWmyzcgAOTadDeth9NaRdBVMDGgSLBKbXihYZZXLkiAP9RLA==} + '@tiptap/extension-gapcursor@2.26.4': + resolution: {integrity: sha512-OrvnZxs9A/wpvjq6scOxEiLahJr7q0XweBe42u8O/DQoM9ZITBcEDBcG05F4YMPDBiAPv29q1L8ej5KDZ4yGfw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-hard-break@2.26.3': - resolution: {integrity: sha512-KJWUi+2KOZejVRb2KI0NM3LgCpNimxcunbOCKsZKygV/UByzhUl7UaCAIa+ySMM+kbu/Ec3hkTzafGfaU9ZkLg==} + '@tiptap/extension-hard-break@2.26.4': + resolution: {integrity: sha512-W9pITO64t37rtFFBDQeDYAGh0jq/RyUiaDQ1rzOCOCg1KlCmcKwWkXOs5pSF70VaefRhNE7y7jM2fMGOLPLJkQ==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-heading@2.26.3': - resolution: {integrity: sha512-bp7YildFOustuGJGl8TInG26h7xbcpBKskm49TjwyBjUqRHPGH4V11554afStAr+bsTlPN4TDXt7extvq3UYLA==} + '@tiptap/extension-heading@2.26.4': + resolution: {integrity: sha512-73CpXKCTyWPe1j6PBo2avNjNdtqEf5HU6GxfV32Zl0t76vRkwp1yLFOiZgJfir9c8CQB3coW6/itaCTozM//PA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-highlight@2.26.3': - resolution: {integrity: sha512-cW5V+9es7UPLUQgU4I9gqj9w4G4PgWwJMxB107ChCAsFEb2IvC2fDcwRCHY+xiLJGPq0xZag/kvtx0uZkovITw==} + '@tiptap/extension-highlight@2.26.4': + resolution: {integrity: sha512-UKwH7kCf6BLOBZFmwz+AJSxd8uNyRqq4LX6+hDZfGjWWCfeSOFhakKS6Z1Rebs5eGDvoX65V20nLL5yyVHnnEQ==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-history@2.26.3': - resolution: {integrity: sha512-Qg4+WWf/hDgiBspxLbrhrIFUy7lzi2eBKPSoF/haEYFw/t/FeN60NXYYYtpLimUNpUzyJSOSIwsngFcVJO5X+g==} + '@tiptap/extension-history@2.26.4': + resolution: {integrity: sha512-Z9QBePNCES8wuEeorSrINLEhrlddfVQI2gx3BZJyjFdDiTSI4bX5Iai5k/azbbBUgzJIzsPOjibqcIJTqmBcfw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-horizontal-rule@2.26.3': - resolution: {integrity: sha512-NhlJEDj0b/P1Rj4UOMgt4CjS4IXEhXQFsdiXmsYZxchfr4J72HrsOfZs4vAqIQbkrLgUlYEr/DGMNWzME78FrA==} + '@tiptap/extension-horizontal-rule@2.26.4': + resolution: {integrity: sha512-Z51x9mAnXOCKvpzh7FiHrCHYk1rtFCZcQrIoosva2pyH1raD4dp8WhJf5owOkBW1+F6Svuy0ulhW1ce3BWTCfg==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-image@2.26.3': - resolution: {integrity: sha512-juAAY1QuzCgfl66Q8AHITLVKbwXpv+BmLNCi8Cl4j6a+IkySzcS8gENJee0hMMyRvc9K1U75o4vokvy580u4kA==} + '@tiptap/extension-image@2.26.4': + resolution: {integrity: sha512-cS5M+CbjhXBjaYPhNK9QQ/T9gMyxdwAWTzkKuKlXgpQhVPj43RJhhx9HP5vrPCYLvgiVRys5n99+61JHD8LbqA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-italic@2.26.3': - resolution: {integrity: sha512-DJX31JQsyerqoNM+hAtbjHoJ42W/EpnMMCtQr/gRS8ssEdrVtcDDhSO2tkaP6dNjhG8zH2hKYsXpLCCFdDgvwg==} + '@tiptap/extension-italic@2.26.4': + resolution: {integrity: sha512-s1KqOejvPR8LhNIeCfXonXEJPKMS/R9sCx9eWHsVTsYvD3+RKxyw/UDTZ29jGOWLn0qlepL/tA032hH3x3qBlQ==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-link@2.26.3': - resolution: {integrity: sha512-cNYqAeiaG/65ctVEUOHt1MQnTF1JcdZqBkN9pLf3grzcmkmdr3w1/JbKOphZc84vOB2rxuhGZx9NFV2lrC5Qwg==} + '@tiptap/extension-link@2.26.4': + resolution: {integrity: sha512-FaoWLFvx79WTZU/EK5WcaSzre1xEkq0GyeMru/hEgwJW1sF5QSOji5jPA72UBophNv4P02okKvlTJLNmmHmUDA==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-list-item@2.26.3': - resolution: {integrity: sha512-9qU0SoC+tDSKYhfdWFS3dkioEk3ml1ycBeRmOxh7h+w0ezmTomiT5yvc9t3KM30ps8n1p78sIPo19GF65u1dFQ==} + '@tiptap/extension-list-item@2.26.4': + resolution: {integrity: sha512-mSIkBqAwSG1ABRfaUvMjsUMrVotjDDw6LZZ2MdF48d/PDiCXDrBe/BHXPyD8lUZpVRTBbw4U95ai4RP/urSimg==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-ordered-list@2.26.3': - resolution: {integrity: sha512-x6G0qA7dAvSq+kphA7P64m+ScoVEAW8s9pl7o3jIJzcIW/LrbL1xkyOjbgCvGEvwyQVsgyqtLQDQ2oeloosDBw==} + '@tiptap/extension-ordered-list@2.26.4': + resolution: {integrity: sha512-TAi9zMdyE3WlXC8u9eZBdo6UnlcjoBAaF1rwZt4bneAMsS6ksdpyTYoLkazxpMS7IHEwY8zB4hfQrUkk/TBf2g==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-paragraph@2.26.3': - resolution: {integrity: sha512-eBC5UsaTJRUMhePtK1dcCAfes0CpqqFiewpIM0lWk4XMtpG2aoczVVVkImybbFKfqsvEEo3vgHJ2YiE5YZFCSg==} + '@tiptap/extension-paragraph@2.26.4': + resolution: {integrity: sha512-3ZLqtxtN0ymHzgTFoHcs/wkptLMDFNjqsK/CuShBwWmlh5OOe1CmJ0WadBuydjgngMle4urS4+7i6c9kfgOWSg==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-placeholder@2.26.3': - resolution: {integrity: sha512-HDF4FZj8CmQQvbSyXb/G+Ujqoue7TMQPMAe1h1OMJAXq856Y0AsVLXYKiBojUTfI11I7zVwYe08D8atIXHLZZw==} + '@tiptap/extension-placeholder@2.26.4': + resolution: {integrity: sha512-hhBV4t4nojCA4Gyk6k/nPDGg8OuxPjdmtQJUo6Rj0YcSZ2qYdfUTpyfULeFSld85uyuLnQ7H2wSNKoSEpGuQmw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-strike@2.26.3': - resolution: {integrity: sha512-Po3al5hP0IwvHHIHYy3DbUvCD/kbYTsi3sWTjPAB9QgqaoJGl+jyhIyha8FsR+U3MCIIJIekMktI5o1+ySMGpg==} + '@tiptap/extension-strike@2.26.4': + resolution: {integrity: sha512-r65un0UFa0caHBGQlfO+4zaFY+TKeoQ2svCNs8OWHgqVBbqzeuGKKyV++2rUPvTIu5/4K34IOpeEoonkLZYTog==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-table-cell@2.26.3': - resolution: {integrity: sha512-m/uZSeXuRAJaLedq0MOu9ZGibh4kkovXX0i5Oj6K9lT+TtBLQBNCSABQeOCe2FFPXhpWRpnhZrqhJgdo/n9BSg==} + '@tiptap/extension-table-cell@2.26.4': + resolution: {integrity: sha512-HLdgbeBmvoHdb5iuykCLBGiHZdPGwJIpnACUS0fn0uG9MRiLkKX7EcYxNvpTNGtyWDDm46zv9edO0zx/44/ETg==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-table-header@2.26.3': - resolution: {integrity: sha512-8+P3j5kNE04zbqGqwEFKJ82ECBoRfx6PaPkoNlftBkRnAQIWajdPcLxLpBPak1tHw9sEtnZg38aBFz7kQLcklg==} + '@tiptap/extension-table-header@2.26.4': + resolution: {integrity: sha512-xrsE6su4LxpVCcVBBQm3okY6NE9IJ9VQhldioigV0ACd5yVeOuS2ff0B0DpKvOwCFM2wLfwL6ZN5tl9ELQ/71g==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-table-row@2.26.3': - resolution: {integrity: sha512-eJC9/iWAEi/7nxL7I/3d+pUOarp8ns8cQoN0xbZnQ40irSzNXY6vpCskVm+1IulhgCbGyOtjiS8z06wBck1X9Q==} + '@tiptap/extension-table-row@2.26.4': + resolution: {integrity: sha512-FOhs9UcRvev3va20hcoyK7Wnzq/Yb+h5+KW9qsstKcK+UQ1QWfVCtuLzJF/dTup0CDQ2lBTUrArgd5fFcZKTAw==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-table@2.26.3': - resolution: {integrity: sha512-Ycvem797qPazgY+9OUXL8EXS2XCnb45y1IPi6gOhP1DStaGSVMhNBWvuLipSbu8UBpB+yIJ4/sqIvlLqsZQceQ==} + '@tiptap/extension-table@2.26.4': + resolution: {integrity: sha512-KdIpm2VUM+Q/msDthRANQxyUZfcwW1p6EFmBNY2aL/BicdbwbZIGJVeO0MRFBFW65GqqN30hfhpSTsHsHd8m3Q==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-task-item@2.26.3': - resolution: {integrity: sha512-Pe2B/57qNPW1XlH44qdwYeKyBGYKw6TiPXg1pvdhu9zyUglu4J4gbvvn224Z5D9IHlSbPSxr4ss6DNm5S64I/w==} + '@tiptap/extension-task-item@2.26.4': + resolution: {integrity: sha512-uRqN/pxwHPhOZy6GeqlxUtVeWfBduna0Mkq/J6nkHumQ2ObcCfHZCQv1fDrQY2l6umR2N4wVmWBhnlGdEDhimg==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-task-list@2.26.3': - resolution: {integrity: sha512-VSQlU9m3uQ9ReJ4CYM6+IOepLdvNHBA6P/ti/bArb0vUseDfkx0KsQINTmxnXLPF+NLQnk1uXVk5/TJg1+OdMg==} + '@tiptap/extension-task-list@2.26.4': + resolution: {integrity: sha512-UKYb8rj8ZOzRXUZJA9YaFwrcuHxKlp4O4ah+o+46adw/26TnuKoHQBeEeqQSUSNzITxUa6/+Wq3lkl0YmnHuKQ==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-text-align@2.26.3': - resolution: {integrity: sha512-5PU2vMUKt53EVdxFqiuPockKKGeZxipwEq6fT5OZeqz3TUWiF61bO/xkwlXzfWSNm1ZkEmrkebtaeKrH4Wu22g==} + '@tiptap/extension-text-align@2.26.4': + resolution: {integrity: sha512-cWWWzXEPMGMBnUtCqwEcjAo/j6QOVXJJB3zpyDXjqbzRipA4F1ZlDeH3bykwtPYEFgajodWDPQKulgP0ft82vw==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-text-style@2.26.3': - resolution: {integrity: sha512-B+t6k41xtmlIxyi0r+g8MAShGMCK6kmz8EdxoLAUVrlCxYWVk6qvzoojZbjQKlb2sE+idIo4X5yCcKpdkxFe0w==} + '@tiptap/extension-text-style@2.26.4': + resolution: {integrity: sha512-+7bxvgu4C2+NkUSOQ8x25Mwulk7qTbm4Ck+uoYWxTFsj27FvtvaMx65GcQDAC9tNPLtcYumWTRP/T7zsfG1Y/Q==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-text@2.26.3': - resolution: {integrity: sha512-sGRbX96ss4jQeKw9d0iphuAWja8Dv4w4ryTDKfxD7Lizx3UaIxQB/y+Wna89tM3kfbi/qJcrD3AF7NJgfc/tEA==} + '@tiptap/extension-text@2.26.4': + resolution: {integrity: sha512-mTFRN4mM84RPjTyoNMeUovvRMbDNwK4XGNTXUX4wdKEt6p+L+YkUqcIQCQ7idPwbFFVIBa2M1N8BFRgQ33s06w==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-underline@2.26.3': - resolution: {integrity: sha512-FXQUiHjvKDIpU9Bg+fV7UqQnEjhGvVQUnrf9VOI1/9hm+GWWxAfV2asRiZgV6jeBvNJWYzUGzvQUN6vFzmVbdw==} + '@tiptap/extension-underline@2.26.4': + resolution: {integrity: sha512-Xhdk+BxXcweWEN/H/I78KpvHruq1qh4PXgsb/1Xhk3aL6SJCoY7BebRXgEce504gkef/Rl2/VZXdxT+vahyiXQ==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/pm@2.26.3': - resolution: {integrity: sha512-8gUmdxWlUevmgq2mNvGxvf2CpDW097tVKECMWKEn8sf846kXv3CoqaGRhI3db4kfR+09uWZeRM7rtrjRBmUThg==} + '@tiptap/pm@2.26.4': + resolution: {integrity: sha512-1YFQ1FiObqHt5iDeOcxwz83+6wVQG2InqB9CI3uQRx2G7+ijdWPI5/Y78aTDUTqQiabi2k3fCtiqRSgLKXwNqA==} - '@tiptap/react@2.26.3': - resolution: {integrity: sha512-4g7pbdyawIO5YZXJQMwNv0dptblV4QUa7T/BYHe+PjAm4H+OeQbo7UmbxU427u8hPt1PhXZjbvT7D5i3r/MXCw==} + '@tiptap/react@2.26.4': + resolution: {integrity: sha512-U7dDiUtJArOF9Ahzt3m0zm8CQRqamjvLYGtsedadfBYrd3GB72ByJ2q2PJ8u2KE2dFN1R4aGMYZq8GqX2p2XgA==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.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@2.26.3': - resolution: {integrity: sha512-hznj/j+mFIuKfNB0ToaZVcVjdtpSOHoBoX3ocSz9BaYCtK+nX1c0gTlfbJ1BcpYUZNtqG+tpUeIfvXifRkq/OQ==} + '@tiptap/starter-kit@2.26.4': + resolution: {integrity: sha512-bcoBXGXKOhjBZK7M5cQ1LqYZsFsT7TwbOyM4FA71noptI9BWG10EeNo2i1EkvSEHVM0YKs8Z3HckdEqgL4XOEQ==} '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -11950,12 +11950,12 @@ snapshots: dependencies: react: 19.2.0 - '@mantine/tiptap@8.3.5(@mantine/core@8.3.5(@mantine/hooks@8.3.5(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mantine/hooks@8.3.5(react@19.2.0))(@tiptap/extension-link@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3))(@tiptap/react@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@mantine/tiptap@8.3.5(@mantine/core@8.3.5(@mantine/hooks@8.3.5(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mantine/hooks@8.3.5(react@19.2.0))(@tiptap/extension-link@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4))(@tiptap/react@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@mantine/core': 8.3.5(@mantine/hooks@8.3.5(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@mantine/hooks': 8.3.5(react@19.2.0) - '@tiptap/extension-link': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) - '@tiptap/react': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tiptap/extension-link': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) + '@tiptap/react': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) @@ -12964,162 +12964,162 @@ snapshots: - bare-buffer - supports-color - '@tiptap/core@2.26.3(@tiptap/pm@2.26.3)': + '@tiptap/core@2.26.4(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/pm': 2.26.3 + '@tiptap/pm': 2.26.4 - '@tiptap/extension-blockquote@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-blockquote@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-bold@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-bold@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-bubble-menu@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-bubble-menu@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 tippy.js: 6.3.7 - '@tiptap/extension-bullet-list@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-bullet-list@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-code-block@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-code-block@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 - '@tiptap/extension-code@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-code@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-color@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/extension-text-style@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)))': + '@tiptap/extension-color@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/extension-text-style@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/extension-text-style': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/extension-text-style': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) - '@tiptap/extension-document@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-document@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-dropcursor@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-dropcursor@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 - '@tiptap/extension-floating-menu@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-floating-menu@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 tippy.js: 6.3.7 - '@tiptap/extension-gapcursor@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-gapcursor@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 - '@tiptap/extension-hard-break@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-hard-break@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-heading@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-heading@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-highlight@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-highlight@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-history@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-history@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 - '@tiptap/extension-horizontal-rule@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-horizontal-rule@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 - '@tiptap/extension-image@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-image@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-italic@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-italic@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-link@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-link@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 linkifyjs: 4.3.2 - '@tiptap/extension-list-item@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-list-item@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-ordered-list@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-ordered-list@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-paragraph@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-paragraph@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-placeholder@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-placeholder@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 - '@tiptap/extension-strike@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-strike@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-table-cell@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-table-cell@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-table-header@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-table-header@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-table-row@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-table-row@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-table@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-table@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 - '@tiptap/extension-task-item@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)': + '@tiptap/extension-task-item@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 - '@tiptap/extension-task-list@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-task-list@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-text-align@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-text-align@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-text-style@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-text-style@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-text@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-text@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/extension-underline@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))': + '@tiptap/extension-underline@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) - '@tiptap/pm@2.26.3': + '@tiptap/pm@2.26.4': dependencies: prosemirror-changeset: 2.3.0 prosemirror-collab: 1.3.1 @@ -13140,41 +13140,41 @@ snapshots: prosemirror-transform: 1.10.2 prosemirror-view: 1.37.2 - '@tiptap/react@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@tiptap/react@2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/extension-bubble-menu': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) - '@tiptap/extension-floating-menu': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/extension-bubble-menu': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) + '@tiptap/extension-floating-menu': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) + '@tiptap/pm': 2.26.4 '@types/use-sync-external-store': 0.0.6 fast-deep-equal: 3.1.3 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) use-sync-external-store: 1.4.0(react@19.2.0) - '@tiptap/starter-kit@2.26.3': + '@tiptap/starter-kit@2.26.4': dependencies: - '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3) - '@tiptap/extension-blockquote': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-bold': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-bullet-list': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-code': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-code-block': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) - '@tiptap/extension-document': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-dropcursor': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) - '@tiptap/extension-gapcursor': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) - '@tiptap/extension-hard-break': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-heading': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-history': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) - '@tiptap/extension-horizontal-rule': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3) - '@tiptap/extension-italic': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-list-item': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-ordered-list': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-paragraph': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-strike': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-text': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/extension-text-style': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)) - '@tiptap/pm': 2.26.3 + '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) + '@tiptap/extension-blockquote': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-bold': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-bullet-list': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-code': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-code-block': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) + '@tiptap/extension-document': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-dropcursor': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) + '@tiptap/extension-gapcursor': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) + '@tiptap/extension-hard-break': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-heading': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-history': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) + '@tiptap/extension-horizontal-rule': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4))(@tiptap/pm@2.26.4) + '@tiptap/extension-italic': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-list-item': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-ordered-list': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-paragraph': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-strike': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-text': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/extension-text-style': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) + '@tiptap/pm': 2.26.4 '@tootallnate/quickjs-emscripten@0.23.0': {} From 6e5fbde23b47daf85e238cc38189c9f824f42b28 Mon Sep 17 00:00:00 2001 From: "homarr-crowdin[bot]" <190541745+homarr-crowdin[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 16:13:39 +0100 Subject: [PATCH 21/33] chore(lang): update translations from crowdin (#4362) Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com> --- packages/translation/src/lang/en-gb.json | 62 ++++++++++++------------ packages/translation/src/lang/pl.json | 20 ++++---- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json index 8f13322a5..0faef3089 100644 --- a/packages/translation/src/lang/en-gb.json +++ b/packages/translation/src/lang/en-gb.json @@ -612,17 +612,17 @@ "select": { "label": "Select an application", "notFound": "No application found", - "search": "", - "noResults": "", - "action": "", - "title": "" + "search": "Search for an app", + "noResults": "No results", + "action": "Select {app}", + "title": "Select an app to add to this board" }, "create": { - "title": "", - "description": "", - "action": "" + "title": "Create new app", + "description": "Create a new app ", + "action": "Open app creation" }, - "add": "" + "add": "Add an app" } }, "integration": { @@ -649,14 +649,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Existing", + "label": "Select existing app" }, "new": { - "title": "", + "title": "New", "url": { - "label": "", - "description": "" + "label": "App URL", + "description": "The URL the app will open when accessed from the dashboard" } } } @@ -676,9 +676,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Link an app", + "remove": "Unlink", + "select": "Select an app to link" } } }, @@ -709,7 +709,7 @@ "description": "Integration, {kind} can be used with the search engine. Please check this to automatically configure the search engine." }, "app": { - "sectionTitle": "" + "sectionTitle": "Linked App" }, "createApp": { "label": "Create application", @@ -730,30 +730,30 @@ "error": { "common": { "cause": { - "title": "" + "title": "Cause with more details" } }, "unknown": { - "title": "", - "description": "" + "title": "Unknown error", + "description": "An unknown error occurred, open the cause below to see more details" }, "parse": { - "title": "", - "description": "" + "title": "Parse error", + "description": "The response could not be parsed. Please verify that the URL is pointing to the base URL of the service." }, "authorization": { - "title": "", - "description": "" + "title": "Authorisation error", + "description": "The request was not authorised. Please verify that the credentials are correct and you have them configured with enough permissions." }, "statusCode": { - "title": "", - "description": "", - "otherDescription": "", + "title": "Response error", + "description": "Received unexpected {statusCode} ({reason}) response from . Please verify that the URL is pointing to the base URL of the integration.", + "otherDescription": "Received unexpected {statusCode} response from . Please verify that the URL is pointing to the base URL of the integration.", "reason": { - "badRequest": "", - "notFound": "", - "tooManyRequests": "", - "internalServerError": "", + "badRequest": "Bad request", + "notFound": "Not found", + "tooManyRequests": "Too many requests", + "internalServerError": "Internal server error", "serviceUnavailable": "", "gatewayTimeout": "" } diff --git a/packages/translation/src/lang/pl.json b/packages/translation/src/lang/pl.json index 2228f7aa5..1a806e7a8 100644 --- a/packages/translation/src/lang/pl.json +++ b/packages/translation/src/lang/pl.json @@ -649,14 +649,14 @@ "app": { "option": { "existing": { - "title": "", - "label": "" + "title": "Istniejąca", + "label": "Wybierz istniejącą aplikację" }, "new": { - "title": "", + "title": "Nowy", "url": { - "label": "", - "description": "" + "label": "Adres URL aplikacji", + "description": "Adres URL, który zostanie otwarty po kliknięciu aplikacji na pulpicie" } } } @@ -676,9 +676,9 @@ }, "app": { "action": { - "add": "", - "remove": "", - "select": "" + "add": "Połącz aplikację", + "remove": "Odłącz", + "select": "Wybierz aplikację do połączenia" } } }, @@ -709,7 +709,7 @@ "description": "Integracja \"{kind}\" może być używana z wyszukiwarkami. Zaznacz to, aby automatycznie skonfigurować wyszukiwarkę." }, "app": { - "sectionTitle": "" + "sectionTitle": "Połączona aplikacja" }, "createApp": { "label": "Stwórz aplikację", @@ -1051,7 +1051,7 @@ "add": "Dodaj", "apply": "Zastosuj", "backToOverview": "Powrót do widoku ogólnego", - "change": "", + "change": "Zmień", "create": "Utwórz", "createAnother": "Utwórz i zacznij od nowa", "edit": "Edytuj", From c18d04616e839124bedc13a0f8a7632ec8c7729d Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 04:39:02 +0000 Subject: [PATCH 22/33] chore(deps): update dependency @types/cookies to v0.9.2 (#4375) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/auth/package.json | 2 +- pnpm-lock.yaml | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index d25fe6a6d..34d6d8477 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -46,7 +46,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/bcrypt": "6.0.0", - "@types/cookies": "0.9.1", + "@types/cookies": "0.9.2", "eslint": "^9.38.0", "prettier": "^3.6.2", "typescript": "^5.9.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43dcf43ab..6a10c3fde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -755,8 +755,8 @@ importers: specifier: 6.0.0 version: 6.0.0 '@types/cookies': - specifier: 0.9.1 - version: 0.9.1 + specifier: 0.9.2 + version: 0.9.2 eslint: specifier: ^9.38.0 version: 9.38.0 @@ -4526,8 +4526,8 @@ packages: '@types/cookie@0.4.1': resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - '@types/cookies@0.9.1': - resolution: {integrity: sha512-E/DPgzifH4sM1UMadJMWd6mO2jOd4g1Ejwzx8/uRCDpJis1IrlyQEcGAYEomtAqRYmD5ORbNXMeI9U0RiVGZbg==} + '@types/cookies@0.9.2': + resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} '@types/cors@2.8.17': resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} @@ -7611,6 +7611,7 @@ packages: keygrip@1.1.0: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -13325,7 +13326,7 @@ snapshots: '@types/cookie@0.4.1': {} - '@types/cookies@0.9.1': + '@types/cookies@0.9.2': dependencies: '@types/connect': 3.4.38 '@types/express': 4.17.21 From 3a06ce7553163acb59d808a1cce1215fe2f0da51 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 05:33:31 +0000 Subject: [PATCH 23/33] chore(deps): update dependency @types/dockerode to ^3.3.45 (#4376) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/docker/package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/docker/package.json b/packages/docker/package.json index 99129edbf..36a4ec01c 100644 --- a/packages/docker/package.json +++ b/packages/docker/package.json @@ -32,7 +32,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/dockerode": "^3.3.44", + "@types/dockerode": "^3.3.45", "eslint": "^9.38.0", "typescript": "^5.9.3" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a10c3fde..d169e1189 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1271,8 +1271,8 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/dockerode': - specifier: ^3.3.44 - version: 3.3.44 + specifier: ^3.3.45 + version: 3.3.45 eslint: specifier: ^9.38.0 version: 9.38.0 @@ -4574,8 +4574,8 @@ packages: '@types/docker-modem@3.0.6': resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} - '@types/dockerode@3.3.44': - resolution: {integrity: sha512-fUpIHlsbYpxAJb285xx3vp7q5wf5mjqSn3cYwl/MhiM+DB99OdO5sOCPlO0PjO+TyOtphPs7tMVLU/RtOo/JjA==} + '@types/dockerode@3.3.45': + resolution: {integrity: sha512-iYpZF+xr5QLpIICejLdUF2r5gh8IXY1Gw3WLmt41dUbS3Vn/3hVgL+6lJBVbmrhYBWfbWPPstdr6+A0s95DTWA==} '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -13376,7 +13376,7 @@ snapshots: '@types/node': 22.18.12 '@types/ssh2': 1.15.1 - '@types/dockerode@3.3.44': + '@types/dockerode@3.3.45': dependencies: '@types/docker-modem': 3.0.6 '@types/node': 22.18.12 @@ -19569,7 +19569,7 @@ snapshots: testcontainers@11.7.2: dependencies: '@balena/dockerignore': 1.0.2 - '@types/dockerode': 3.3.44 + '@types/dockerode': 3.3.45 archiver: 7.0.1 async-lock: 1.4.1 byline: 5.0.0 From 8242bfc95cd0e67397b1bfc46d65aec3f568c304 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 06:46:08 +0000 Subject: [PATCH 24/33] fix(deps): update dependency drizzle-orm to ^0.44.7 (#4372) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/db/package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/db/package.json b/packages/db/package.json index e9ffefcf1..52c2fb1c7 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -56,7 +56,7 @@ "better-sqlite3": "^12.4.1", "dotenv": "^17.2.3", "drizzle-kit": "^0.31.5", - "drizzle-orm": "^0.44.6", + "drizzle-orm": "^0.44.7", "drizzle-zod": "^0.8.3", "mysql2": "3.15.3", "pg": "^8.16.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d169e1189..da838a315 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1169,11 +1169,11 @@ importers: specifier: ^0.31.5 version: 0.31.5 drizzle-orm: - specifier: ^0.44.6 - version: 0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3) + specifier: ^0.44.7 + version: 0.44.7(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3) drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3))(zod@4.1.12) + version: 0.8.3(drizzle-orm@0.44.7(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3))(zod@4.1.12) mysql2: specifier: 3.15.3 version: 3.15.3 @@ -6054,8 +6054,8 @@ packages: resolution: {integrity: sha512-+CHgPFzuoTQTt7cOYCV6MOw2w8vqEn/ap1yv4bpZOWL03u7rlVRQhUY0WYT3rHsgVTXwYQDZaSUJSQrMBUKuWg==} hasBin: true - drizzle-orm@0.44.6: - resolution: {integrity: sha512-uy6uarrrEOc9K1u5/uhBFJbdF5VJ5xQ/Yzbecw3eAYOunv5FDeYkR2m8iitocdHBOHbvorviKOW5GVw0U1j4LQ==} + drizzle-orm@0.44.7: + resolution: {integrity: sha512-quIpnYznjU9lHshEOAYLoZ9s3jweleHlZIAWR/jX9gAWNg/JhQ1wj0KGRf7/Zm+obRrYd9GjPVJg790QY9N5AQ==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=4' @@ -15030,7 +15030,7 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3): + drizzle-orm@0.44.7(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3): optionalDependencies: '@libsql/client-wasm': 0.14.0 '@types/better-sqlite3': 7.6.13 @@ -15040,9 +15040,9 @@ snapshots: mysql2: 3.15.3 pg: 8.16.3 - drizzle-zod@0.8.3(drizzle-orm@0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3))(zod@4.1.12): + drizzle-zod@0.8.3(drizzle-orm@0.44.7(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3))(zod@4.1.12): dependencies: - drizzle-orm: 0.44.6(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3) + drizzle-orm: 0.44.7(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.4.1)(gel@2.0.0)(mysql2@3.15.3)(pg@8.16.3) zod: 4.1.12 dunder-proto@1.0.1: From 2c0c589bb5c5638ebc0ba1083440745c83ea279e Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 09:34:20 +0000 Subject: [PATCH 25/33] chore(deps): update dependency @vitejs/plugin-react to ^5.1.0 (#4377) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 2da4e4687..a0727824f 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@semantic-release/release-notes-generator": "^14.1.0", "@testcontainers/redis": "^11.7.2", "@turbo/gen": "^2.5.8", - "@vitejs/plugin-react": "^5.0.4", + "@vitejs/plugin-react": "^5.1.0", "@vitest/coverage-v8": "^3.2.4", "@vitest/ui": "^3.2.4", "conventional-changelog-conventionalcommits": "^9.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da838a315..a00728ec1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,8 +65,8 @@ importers: specifier: ^2.5.8 version: 2.5.8(@types/node@24.7.0)(typescript@5.9.3) '@vitejs/plugin-react': - specifier: ^5.0.4 - version: 5.0.4(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) + specifier: ^5.1.0 + version: 5.1.0(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) '@vitest/coverage-v8': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) @@ -3805,8 +3805,8 @@ packages: '@remirror/core-constants@3.0.0': resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} - '@rolldown/pluginutils@1.0.0-beta.38': - resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} + '@rolldown/pluginutils@1.0.0-beta.43': + resolution: {integrity: sha512-5Uxg7fQUCmfhax7FJke2+8B6cqgeUJUD9o2uXIKXhD+mG0mL6NObmVoi9wXEU1tY89mZKgAYA6fTbftx3q2ZPQ==} '@rollup/pluginutils@5.1.0': resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} @@ -4817,8 +4817,8 @@ packages: '@videojs/xhr@2.7.0': resolution: {integrity: sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==} - '@vitejs/plugin-react@5.0.4': - resolution: {integrity: sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==} + '@vitejs/plugin-react@5.1.0': + resolution: {integrity: sha512-4LuWrg7EKWgQaMJfnN+wcmbAW+VSsCmqGohftWjuct47bv8uE4n/nPpq4XjJPsxgq00GGG5J8dvBczp8uxScew==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: '>=7.1.12' @@ -9036,8 +9036,8 @@ packages: redux: optional: true - react-refresh@0.17.0: - resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + react-refresh@0.18.0: + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} engines: {node: '>=0.10.0'} react-remove-scroll-bar@2.3.8: @@ -12324,7 +12324,7 @@ snapshots: '@remirror/core-constants@3.0.0': {} - '@rolldown/pluginutils@1.0.0-beta.38': {} + '@rolldown/pluginutils@1.0.0-beta.43': {} '@rollup/pluginutils@5.1.0': dependencies: @@ -13684,14 +13684,14 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@5.0.4(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': + '@vitejs/plugin-react@5.1.0(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) - '@rolldown/pluginutils': 1.0.0-beta.38 + '@rolldown/pluginutils': 1.0.0-beta.43 '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 + react-refresh: 0.18.0 vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) transitivePeerDependencies: - supports-color @@ -18429,7 +18429,7 @@ snapshots: '@types/react': 19.2.2 redux: 5.0.1 - react-refresh@0.17.0: {} + react-refresh@0.18.0: {} react-remove-scroll-bar@2.3.8(@types/react@19.2.2)(react@19.2.0): dependencies: From c544d6ec2e426bc4c82db547d7c4a5dc4d6e2a27 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 12:55:30 +0000 Subject: [PATCH 26/33] fix(deps): update dependency next-auth to v5.0.0-beta.30 [security] (#4379) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/auth/package.json | 2 +- pnpm-lock.yaml | 40 +++++++++----------------------------- 2 files changed, 10 insertions(+), 32 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index 34d6d8477..6a87ffff0 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -36,7 +36,7 @@ "cookies": "^0.9.1", "ldapts": "8.0.9", "next": "15.5.6", - "next-auth": "5.0.0-beta.29", + "next-auth": "5.0.0-beta.30", "react": "19.2.0", "react-dom": "19.2.0", "zod": "^4.1.12" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a00728ec1..6349259e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -730,8 +730,8 @@ importers: specifier: 15.5.6 version: 15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) next-auth: - specifier: 5.0.0-beta.29 - version: 5.0.0-beta.29(next@15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0) + specifier: 5.0.0-beta.30 + version: 5.0.0-beta.30(next@15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0) react: specifier: 19.2.0 version: 19.2.0 @@ -2493,20 +2493,6 @@ packages: '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - '@auth/core@0.40.0': - resolution: {integrity: sha512-n53uJE0RH5SqZ7N1xZoMKekbHfQgjd0sAEyUbE+IYJnmuQkbvuZnXItCU7d+i7Fj8VGOgqvNO7Mw4YfBTlZeQw==} - peerDependencies: - '@simplewebauthn/browser': ^9.0.1 - '@simplewebauthn/server': ^9.0.2 - nodemailer: ^6.8.0 - peerDependenciesMeta: - '@simplewebauthn/browser': - optional: true - '@simplewebauthn/server': - optional: true - nodemailer: - optional: true - '@auth/core@0.41.0': resolution: {integrity: sha512-Wd7mHPQ/8zy6Qj7f4T46vg3aoor8fskJm6g2Zyj064oQ3+p0xNZXAV60ww0hY+MbTesfu29kK14Zk5d5JTazXQ==} peerDependencies: @@ -8111,14 +8097,14 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - next-auth@5.0.0-beta.29: - resolution: {integrity: sha512-Ukpnuk3NMc/LiOl32njZPySk7pABEzbjhMUFd5/n10I0ZNC7NCuVv8IY2JgbDek2t/PUOifQEoUiOOTLy4os5A==} + next-auth@5.0.0-beta.30: + resolution: {integrity: sha512-+c51gquM3F6nMVmoAusRJ7RIoY0K4Ts9HCCwyy/BRoe4mp3msZpOzYMyb5LAYc1wSo74PMQkGDcaghIO7W6Xjg==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 - next: ^14.0.0-0 || ^15.0.0-0 - nodemailer: ^6.6.5 - react: ^18.2.0 || ^19.0.0-0 + next: ^14.0.0-0 || ^15.0.0 || ^16.0.0 + nodemailer: ^7.0.7 + react: ^18.2.0 || ^19.0.0 peerDependenciesMeta: '@simplewebauthn/browser': optional: true @@ -10956,14 +10942,6 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} - '@auth/core@0.40.0': - dependencies: - '@panva/hkdf': 1.2.1 - jose: 6.0.8 - oauth4webapi: 3.3.0 - preact: 10.24.3 - preact-render-to-string: 6.5.11(preact@10.24.3) - '@auth/core@0.41.0': dependencies: '@panva/hkdf': 1.2.1 @@ -17448,9 +17426,9 @@ snapshots: netmask@2.0.2: {} - next-auth@5.0.0-beta.29(next@15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0): + next-auth@5.0.0-beta.30(next@15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0): dependencies: - '@auth/core': 0.40.0 + '@auth/core': 0.41.0 next: 15.5.6(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) react: 19.2.0 From 9e4b93abcfd8cac9ab47bdb0753e021cc8da8122 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 18:30:02 +0100 Subject: [PATCH 27/33] chore(deps): update dependency node to v24 (#4368) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- .github/workflows/deployment-docker-image.yml | 2 +- Dockerfile | 2 +- apps/nextjs/package.json | 2 +- apps/tasks/package.json | 2 +- pnpm-lock.yaml | 136 ++++++++---------- tooling/github/setup/action.yml | 2 +- 6 files changed, 67 insertions(+), 79 deletions(-) diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 2b5fdabbf..769cdcb7e 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -64,7 +64,7 @@ jobs: - uses: actions/setup-node@v5 if: env.SKIP_RELEASE == 'false' with: - node-version: 22.21.0 + node-version: 24.10.0 cache: "pnpm" - run: npm i -g pnpm if: env.SKIP_RELEASE == 'false' diff --git a/Dockerfile b/Dockerfile index 7d183cb9c..ab16b391f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22.20.0-alpine AS base +FROM node:24.10.0-alpine AS base FROM base AS builder RUN apk add --no-cache libc6-compat diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 4ed3f7e7c..ca87ac265 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -94,7 +94,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/chroma-js": "3.1.1", - "@types/node": "^22.18.12", + "@types/node": "^24.9.1", "@types/prismjs": "^1.26.5", "@types/react": "19.2.2", "@types/react-dom": "19.2.2", diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 62bcd8568..47584d1bc 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -47,7 +47,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node": "^22.18.12", + "@types/node": "^24.9.1", "dotenv-cli": "^10.0.0", "esbuild": "^0.25.11", "eslint": "^9.38.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6349259e3..26283c233 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,10 +63,10 @@ importers: version: 11.7.2 '@turbo/gen': specifier: ^2.5.8 - version: 2.5.8(@types/node@24.7.0)(typescript@5.9.3) + version: 2.5.8(@types/node@24.9.2)(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^5.1.0 - version: 5.1.0(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) + version: 5.1.0(vite@7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) '@vitest/coverage-v8': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) @@ -99,10 +99,10 @@ importers: version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) + version: 5.1.4(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) apps/nextjs: dependencies: @@ -339,8 +339,8 @@ importers: specifier: 3.1.1 version: 3.1.1 '@types/node': - specifier: ^22.18.12 - version: 22.18.12 + specifier: ^24.9.1 + version: 24.9.2 '@types/prismjs': specifier: ^1.26.5 version: 1.26.5 @@ -448,8 +448,8 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node': - specifier: ^22.18.12 - version: 22.18.12 + specifier: ^24.9.1 + version: 24.9.2 dotenv-cli: specifier: ^10.0.0 version: 10.0.0 @@ -4635,11 +4635,8 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.18.12': - resolution: {integrity: sha512-BICHQ67iqxQGFSzfCFTT7MRQ5XcBjG5aeKh5Ok38UBbPe5fxTyE+aHFxwVrGyr8GNlqFMLKD1D3P2K/1ks8tog==} - - '@types/node@24.7.0': - resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} + '@types/node@24.9.2': + resolution: {integrity: sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -10277,11 +10274,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - undici-types@7.14.0: - resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} @@ -11815,7 +11809,7 @@ snapshots: '@kubernetes/client-node@1.4.0': dependencies: '@types/js-yaml': 4.0.9 - '@types/node': 24.7.0 + '@types/node': 24.9.2 '@types/node-fetch': 2.6.13 '@types/stream-buffers': 3.0.7 form-data: 4.0.4 @@ -13214,7 +13208,7 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/gen@2.5.8(@types/node@24.7.0)(typescript@5.9.3)': + '@turbo/gen@2.5.8(@types/node@24.9.2)(typescript@5.9.3)': dependencies: '@turbo/workspaces': 2.5.8 commander: 10.0.1 @@ -13224,7 +13218,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.5.0 - ts-node: 10.9.2(@types/node@24.7.0)(typescript@5.9.3) + ts-node: 10.9.2(@types/node@24.9.2)(typescript@5.9.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -13250,11 +13244,11 @@ snapshots: '@types/adm-zip@0.5.7': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/asn1@0.2.4': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/aws-lambda@8.10.146': {} @@ -13281,16 +13275,16 @@ snapshots: '@types/bcrypt@6.0.0': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/chai@5.2.2': dependencies: @@ -13300,7 +13294,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/cookie@0.4.1': {} @@ -13309,11 +13303,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/cors@2.8.17': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/css-font-loading-module@0.0.7': {} @@ -13351,13 +13345,13 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/ssh2': 1.15.1 '@types/dockerode@3.3.45': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/ssh2': 1.15.1 '@types/estree-jsx@1.0.5': @@ -13368,7 +13362,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -13383,7 +13377,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/hast@2.3.10': dependencies: @@ -13431,7 +13425,7 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 form-data: 4.0.4 '@types/node-unifi@2.5.1(patch_hash=5e6ae51e2a17a7f9729bfa30b0eb3d0842a5810ac6db47603ab4a6efa1ed84c5)': @@ -13442,19 +13436,15 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.18.12': + '@types/node@24.9.2': dependencies: - undici-types: 6.21.0 - - '@types/node@24.7.0': - dependencies: - undici-types: 7.14.0 + undici-types: 7.16.0 '@types/normalize-package-data@2.4.4': {} '@types/pg@8.15.5': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 pg-protocol: 1.10.3 pg-types: 2.2.0 @@ -13481,21 +13471,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/ssh2@0.5.52': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': @@ -13504,7 +13494,7 @@ snapshots: '@types/stream-buffers@3.0.7': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/swagger-ui-react@5.18.0': dependencies: @@ -13512,7 +13502,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/tinycolor2@1.4.6': {} @@ -13531,11 +13521,11 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@types/xml2js@0.4.14': dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.3))(eslint@9.38.0)(typescript@5.9.3)': dependencies: @@ -13662,7 +13652,7 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@5.1.0(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': + '@vitejs/plugin-react@5.1.0(vite@7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -13670,7 +13660,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.43 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) transitivePeerDependencies: - supports-color @@ -13689,7 +13679,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) transitivePeerDependencies: - supports-color @@ -13701,13 +13691,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': + '@vitest/mocker@3.2.4(vite@7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -13738,7 +13728,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) '@vitest/utils@3.2.4': dependencies: @@ -15078,7 +15068,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.18.12 + '@types/node': 24.9.2 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -16720,7 +16710,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.18.12 + '@types/node': 24.9.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -18249,7 +18239,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.18.12 + '@types/node': 24.9.2 long: 5.2.3 proxmox-api@1.1.1: @@ -19729,14 +19719,14 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@types/node@24.7.0)(typescript@5.9.3): + ts-node@10.9.2(@types/node@24.9.2)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.7.0 + '@types/node': 24.9.2 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -19966,9 +19956,7 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.21.0: {} - - undici-types@7.14.0: {} + undici-types@7.16.0: {} undici@5.29.0: dependencies: @@ -20218,13 +20206,13 @@ snapshots: dependencies: global: 4.4.0 - vite-node@3.2.4(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1): + vite-node@3.2.4(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) transitivePeerDependencies: - '@types/node' - jiti @@ -20239,18 +20227,18 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.9.3) optionalDependencies: - vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) transitivePeerDependencies: - supports-color - typescript - vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1): + vite@7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1): dependencies: esbuild: 0.25.11 fdir: 6.5.0(picomatch@4.0.3) @@ -20259,7 +20247,7 @@ snapshots: rollup: 4.48.1 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.9.2 fsevents: 2.3.3 sass: 1.93.2 sugarss: 5.0.0(postcss@8.5.6) @@ -20267,11 +20255,11 @@ snapshots: tsx: 4.20.5 yaml: 2.5.1 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(@vitest/ui@3.2.4)(jsdom@27.0.1(postcss@8.5.6))(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) + '@vitest/mocker': 3.2.4(vite@7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -20289,12 +20277,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.12(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) - vite-node: 3.2.4(@types/node@24.7.0)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite: 7.1.12(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) + vite-node: 3.2.4(@types/node@24.9.2)(sass@1.93.2)(sugarss@5.0.0(postcss@8.5.6))(terser@5.39.0)(tsx@4.20.5)(yaml@2.5.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.7.0 + '@types/node': 24.9.2 '@vitest/ui': 3.2.4(vitest@3.2.4) jsdom: 27.0.1(postcss@8.5.6) transitivePeerDependencies: diff --git a/tooling/github/setup/action.yml b/tooling/github/setup/action.yml index 5743b0193..1e9d260ca 100644 --- a/tooling/github/setup/action.yml +++ b/tooling/github/setup/action.yml @@ -7,7 +7,7 @@ runs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v5 with: - node-version: 22.21.0 + node-version: 24.10.0 cache: "pnpm" - shell: bash From e0526c5ea7ee83adcd22d78fbf63334cb59bcf79 Mon Sep 17 00:00:00 2001 From: castielwaverly <137005689+castielwaverly@users.noreply.github.com> Date: Wed, 29 Oct 2025 14:33:50 -0400 Subject: [PATCH 28/33] fix(releases-widget): Search multiple docker hub pages for releases (#4158) --- packages/api/src/router/widgets/releases.ts | 23 ++-- .../src/codeberg/codeberg-integration.ts | 60 +++++----- .../src/docker-hub/docker-hub-integration.ts | 105 +++++++++--------- .../github-container-registry-integration.ts | 40 +++---- .../src/github/github-integration.ts | 57 +++++----- .../src/gitlab/gitlab-integration.ts | 40 +++---- packages/integrations/src/index.ts | 2 +- .../releases-providers-integration.ts | 42 ++----- .../releases-providers-types.ts | 39 ++----- .../linuxserverio-integration.ts | 66 +++++------ .../integrations/src/npm/npm-integration.ts | 36 +++--- .../integrations/src/quay/quay-integration.ts | 76 ++++++------- packages/request-handler/src/releases.ts | 29 +---- packages/widgets/src/releases/component.tsx | 55 +++------ 14 files changed, 280 insertions(+), 390 deletions(-) diff --git a/packages/api/src/router/widgets/releases.ts b/packages/api/src/router/widgets/releases.ts index 1cd1a4f89..3d355b26c 100644 --- a/packages/api/src/router/widgets/releases.ts +++ b/packages/api/src/router/widgets/releases.ts @@ -40,15 +40,22 @@ export const releasesRouter = createTRPCRouter({ .query(async ({ ctx, input }) => { return await Promise.all( input.repositories.map(async (repository) => { - const innerHandler = releasesRequestHandler.handler(ctx.integration, { - id: repository.id, - identifier: repository.identifier, - versionRegex: formatVersionFilterRegex(repository.versionFilter), - }); + const response = await releasesRequestHandler + .handler(ctx.integration, { + id: repository.id, + identifier: repository.identifier, + versionRegex: formatVersionFilterRegex(repository.versionFilter), + }) + .getCachedOrUpdatedDataAsync({ + forceUpdate: false, + }); - return await innerHandler.getCachedOrUpdatedDataAsync({ - forceUpdate: false, - }); + return { + id: repository.id, + integration: { name: ctx.integration.name, kind: ctx.integration.kind }, + timestamp: response.timestamp, + ...response.data, + }; }), ); }), diff --git a/packages/integrations/src/codeberg/codeberg-integration.ts b/packages/integrations/src/codeberg/codeberg-integration.ts index 2836917a0..ea6543cbb 100644 --- a/packages/integrations/src/codeberg/codeberg-integration.ts +++ b/packages/integrations/src/codeberg/codeberg-integration.ts @@ -11,8 +11,7 @@ import type { ReleasesProviderIntegration } from "../interfaces/releases-provide import { getLatestRelease } from "../interfaces/releases-providers/releases-providers-integration"; import type { DetailsProviderResponse, - ReleasesRepository, - ReleasesResponse, + ReleaseResponse, } from "../interfaces/releases-providers/releases-providers-types"; import { detailsResponseSchema, releasesResponseSchema } from "./codeberg-schemas"; @@ -43,22 +42,23 @@ export class CodebergIntegration extends Integration implements ReleasesProvider }; } - public async getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise { - const [owner, name] = repository.identifier.split("/"); + private parseIdentifier(identifier: string) { + const [owner, name] = identifier.split("/"); if (!owner || !name) { localLogger.warn( - `Invalid identifier format. Expected 'owner/name', for ${repository.identifier} with Codeberg integration`, - { - identifier: repository.identifier, - }, + `Invalid identifier format. Expected 'owner/name', for ${identifier} with Codeberg integration`, + { identifier }, ); - return { - id: repository.id, - error: { code: "invalidIdentifier" }, - }; + return null; } + return { owner, name }; + } - const details = await this.getDetailsAsync(owner, name); + public async getLatestMatchingReleaseAsync(identifier: string, versionRegex?: string): Promise { + const parsedIdentifier = this.parseIdentifier(identifier); + if (!parsedIdentifier) return { success: false, error: { code: "invalidIdentifier" } }; + + const { owner, name } = parsedIdentifier; const releasesResponse = await this.withHeadersAsync(async (headers) => { return await fetchWithTrustedCertificatesAsync( @@ -66,34 +66,36 @@ export class CodebergIntegration extends Integration implements ReleasesProvider { headers }, ); }); - if (!releasesResponse.ok) { - return { - id: repository.id, - error: { message: releasesResponse.statusText }, - }; + return { success: false, error: { code: "unexpected", message: releasesResponse.statusText } }; } const releasesResponseJson: unknown = await releasesResponse.json(); const { data, success, error } = releasesResponseSchema.safeParse(releasesResponseJson); - if (!success) { return { - id: repository.id, + success: false, error: { + code: "unexpected", message: releasesResponseJson ? JSON.stringify(releasesResponseJson, null, 2) : error.message, }, }; - } else { - const formattedReleases = data.map((tag) => ({ - latestRelease: tag.tag_name, - latestReleaseAt: tag.published_at, - releaseUrl: tag.url, - releaseDescription: tag.body, - isPreRelease: tag.prerelease, - })); - return getLatestRelease(formattedReleases, repository, details); } + + const formattedReleases = data.map((tag) => ({ + latestRelease: tag.tag_name, + latestReleaseAt: tag.published_at, + releaseUrl: tag.url, + releaseDescription: tag.body, + isPreRelease: tag.prerelease, + })); + + const latestRelease = getLatestRelease(formattedReleases, versionRegex); + if (!latestRelease) return { success: false, error: { code: "noMatchingVersion" } }; + + const details = await this.getDetailsAsync(owner, name); + + return { success: true, data: { ...details, ...latestRelease } }; } protected async getDetailsAsync(owner: string, name: string): Promise { diff --git a/packages/integrations/src/docker-hub/docker-hub-integration.ts b/packages/integrations/src/docker-hub/docker-hub-integration.ts index a961ddc38..d0e99c0e6 100644 --- a/packages/integrations/src/docker-hub/docker-hub-integration.ts +++ b/packages/integrations/src/docker-hub/docker-hub-integration.ts @@ -14,8 +14,7 @@ import type { ReleasesProviderIntegration } from "../interfaces/releases-provide import { getLatestRelease } from "../interfaces/releases-providers/releases-providers-integration"; import type { DetailsProviderResponse, - ReleasesRepository, - ReleasesResponse, + ReleaseResponse, } from "../interfaces/releases-providers/releases-providers-types"; import { accessTokenResponseSchema, detailsResponseSchema, releasesResponseSchema } from "./docker-hub-schemas"; @@ -73,49 +72,61 @@ export class DockerHubIntegration extends Integration implements ReleasesProvide }; } - public async getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise { - const relativeUrl = this.getRelativeUrl(repository.identifier); - if (relativeUrl === "/") { - localLogger.warn( - `Invalid identifier format. Expected 'owner/name' or 'name', for ${repository.identifier} on DockerHub`, - { - identifier: repository.identifier, - }, - ); - return { - id: repository.id, - error: { code: "invalidIdentifier" }, - }; - } - - const details = await this.getDetailsAsync(relativeUrl); - - const releasesResponse = await this.withHeadersAsync(async (headers) => { - return await fetchWithTrustedCertificatesAsync(this.url(`${relativeUrl}/tags?page_size=100`), { - headers, + private parseIdentifier(identifier: string) { + if (!identifier.includes("/")) return { owner: "", name: identifier }; + const [owner, name] = identifier.split("/"); + if (!owner || !name) { + localLogger.warn(`Invalid identifier format. Expected 'owner/name' or 'name', for ${identifier} on DockerHub`, { + identifier, }); - }); + return null; + } + return { owner, name }; + } - if (!releasesResponse.ok) { - return { - id: repository.id, - error: { message: releasesResponse.statusText }, - }; + public async getLatestMatchingReleaseAsync(identifier: string, versionRegex?: string): Promise { + const parsedIdentifier = this.parseIdentifier(identifier); + if (!parsedIdentifier) return { success: false, error: { code: "invalidIdentifier" } }; + + const { owner, name } = parsedIdentifier; + + const relativeUrl: `/${string}` = owner + ? `/v2/namespaces/${encodeURIComponent(owner)}/repositories/${encodeURIComponent(name)}` + : `/v2/repositories/library/${encodeURIComponent(name)}`; + + for (let page = 0; page <= 5; page++) { + const releasesResponse = await this.withHeadersAsync(async (headers) => { + return await fetchWithTrustedCertificatesAsync(this.url(`${relativeUrl}/tags?page_size=100&page=${page}`), { + headers, + }); + }); + if (!releasesResponse.ok) { + return { success: false, error: { code: "unexpected", message: releasesResponse.statusText } }; + } + + const releasesResponseJson: unknown = await releasesResponse.json(); + const releasesResult = releasesResponseSchema.safeParse(releasesResponseJson); + if (!releasesResult.success) { + return { + success: false, + error: { + code: "unexpected", + message: releasesResponseJson + ? JSON.stringify(releasesResponseJson, null, 2) + : releasesResult.error.message, + }, + }; + } + + const latestRelease = getLatestRelease(releasesResult.data.results, versionRegex); + if (!latestRelease) continue; + + const details = await this.getDetailsAsync(relativeUrl); + + return { success: true, data: { ...details, ...latestRelease } }; } - const releasesResponseJson: unknown = await releasesResponse.json(); - const releasesResult = releasesResponseSchema.safeParse(releasesResponseJson); - - if (!releasesResult.success) { - return { - id: repository.id, - error: { - message: releasesResponseJson ? JSON.stringify(releasesResponseJson, null, 2) : releasesResult.error.message, - }, - }; - } else { - return getLatestRelease(releasesResult.data.results, repository, details); - } + return { success: false, error: { code: "noMatchingVersion" } }; } private async getDetailsAsync(relativeUrl: `/${string}`): Promise { @@ -154,18 +165,6 @@ export class DockerHubIntegration extends Integration implements ReleasesProvide }; } - private getRelativeUrl(identifier: string): `/${string}` { - if (identifier.indexOf("/") > 0) { - const [owner, name] = identifier.split("/"); - if (!owner || !name) { - return "/"; - } - return `/v2/namespaces/${encodeURIComponent(owner)}/repositories/${encodeURIComponent(name)}`; - } else { - return `/v2/repositories/library/${encodeURIComponent(identifier)}`; - } - } - private async getSessionAsync(fetchAsync: typeof fetch = fetchWithTrustedCertificatesAsync): Promise { const response = await fetchAsync(this.url("/v2/auth/token"), { method: "POST", diff --git a/packages/integrations/src/github-container-registry/github-container-registry-integration.ts b/packages/integrations/src/github-container-registry/github-container-registry-integration.ts index bcb496acd..00a7b27c4 100644 --- a/packages/integrations/src/github-container-registry/github-container-registry-integration.ts +++ b/packages/integrations/src/github-container-registry/github-container-registry-integration.ts @@ -15,8 +15,7 @@ import { getLatestRelease } from "../interfaces/releases-providers/releases-prov import type { DetailsProviderResponse, ReleaseProviderResponse, - ReleasesRepository, - ReleasesResponse, + ReleaseResponse, } from "../interfaces/releases-providers/releases-providers-types"; const localLogger = logger.child({ module: "GitHubContainerRegistryIntegration" }); @@ -43,23 +42,24 @@ export class GitHubContainerRegistryIntegration extends Integration implements R }; } - public async getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise { - const [owner, name] = repository.identifier.split("/"); + private parseIdentifier(identifier: string) { + const [owner, name] = identifier.split("/"); if (!owner || !name) { localLogger.warn( - `Invalid identifier format. Expected 'owner/name', for ${repository.identifier} with GitHub Container Registry integration`, - { - identifier: repository.identifier, - }, + `Invalid identifier format. Expected 'owner/name', for ${identifier} with GitHub Container Registry integration`, + { identifier }, ); - return { - id: repository.id, - error: { code: "invalidIdentifier" }, - }; + return null; } + return { owner, name }; + } + public async getLatestMatchingReleaseAsync(identifier: string, versionRegex?: string): Promise { + const parsedIdentifier = this.parseIdentifier(identifier); + if (!parsedIdentifier) return { success: false, error: { code: "invalidIdentifier" } }; + + const { owner, name } = parsedIdentifier; const api = this.getApi(); - const details = await this.getDetailsAsync(api, owner, name); try { const releasesResponse = await api.rest.packages.getAllPackageVersionsForPackageOwnedByUser({ @@ -83,20 +83,20 @@ export class GitHubContainerRegistryIntegration extends Integration implements R return acc; }, []); - return getLatestRelease(releasesProviderResponse, repository, details); + const latestRelease = getLatestRelease(releasesProviderResponse, versionRegex); + if (!latestRelease) return { success: false, error: { code: "noMatchingVersion" } }; + + const details = await this.getDetailsAsync(api, owner, name); + + return { success: true, data: { ...details, ...latestRelease } }; } catch (error) { const errorMessage = error instanceof RequestError ? error.message : String(error); - localLogger.warn(`Failed to get releases for ${owner}\\${name} with GitHub Container Registry integration`, { owner, name, error: errorMessage, }); - - return { - id: repository.id, - error: { message: errorMessage }, - }; + return { success: false, error: { code: "unexpected", message: errorMessage } }; } } diff --git a/packages/integrations/src/github/github-integration.ts b/packages/integrations/src/github/github-integration.ts index 92fbcd802..65e103c38 100644 --- a/packages/integrations/src/github/github-integration.ts +++ b/packages/integrations/src/github/github-integration.ts @@ -15,8 +15,7 @@ import { getLatestRelease } from "../interfaces/releases-providers/releases-prov import type { DetailsProviderResponse, ReleaseProviderResponse, - ReleasesRepository, - ReleasesResponse, + ReleaseResponse, } from "../interfaces/releases-providers/releases-providers-types"; const localLogger = logger.child({ module: "GithubIntegration" }); @@ -43,38 +42,32 @@ export class GithubIntegration extends Integration implements ReleasesProviderIn }; } - public async getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise { - const [owner, name] = repository.identifier.split("/"); + private parseIdentifier(identifier: string) { + const [owner, name] = identifier.split("/"); if (!owner || !name) { - localLogger.warn( - `Invalid identifier format. Expected 'owner/name', for ${repository.identifier} with Github integration`, - { - identifier: repository.identifier, - }, - ); - return { - id: repository.id, - error: { code: "invalidIdentifier" }, - }; + localLogger.warn(`Invalid identifier format. Expected 'owner/name', for ${identifier} with Github integration`, { + identifier, + }); + return null; } + return { owner, name }; + } + public async getLatestMatchingReleaseAsync(identifier: string, versionRegex?: string): Promise { + const parsedIdentifier = this.parseIdentifier(identifier); + if (!parsedIdentifier) return { success: false, error: { code: "invalidIdentifier" } }; + + const { owner, name } = parsedIdentifier; const api = this.getApi(); - const details = await this.getDetailsAsync(api, owner, name); try { - const releasesResponse = await api.rest.repos.listReleases({ - owner, - repo: name, - }); + const releasesResponse = await api.rest.repos.listReleases({ owner, repo: name }); if (releasesResponse.data.length === 0) { - localLogger.warn(`No releases found, for ${repository.identifier} with Github integration`, { - identifier: repository.identifier, + localLogger.warn(`No releases found, for ${owner}/${name} with Github integration`, { + identifier: `${owner}/${name}`, }); - return { - id: repository.id, - error: { code: "noReleasesFound" }, - }; + return { success: false, error: { code: "noMatchingVersion" } }; } const releasesProviderResponse = releasesResponse.data.reduce((acc, release) => { @@ -90,20 +83,20 @@ export class GithubIntegration extends Integration implements ReleasesProviderIn return acc; }, []); - return getLatestRelease(releasesProviderResponse, repository, details); + const latestRelease = getLatestRelease(releasesProviderResponse, versionRegex); + if (!latestRelease) return { success: false, error: { code: "noMatchingVersion" } }; + + const details = await this.getDetailsAsync(api, owner, name); + + return { success: true, data: { ...details, ...latestRelease } }; } catch (error) { const errorMessage = error instanceof OctokitRequestError ? error.message : String(error); - localLogger.warn(`Failed to get releases for ${owner}\\${name} with Github integration`, { owner, name, error: errorMessage, }); - - return { - id: repository.id, - error: { message: errorMessage }, - }; + return { success: false, error: { code: "unexpected", message: errorMessage } }; } } diff --git a/packages/integrations/src/gitlab/gitlab-integration.ts b/packages/integrations/src/gitlab/gitlab-integration.ts index 1e42eea48..fdd2520c8 100644 --- a/packages/integrations/src/gitlab/gitlab-integration.ts +++ b/packages/integrations/src/gitlab/gitlab-integration.ts @@ -15,8 +15,7 @@ import { getLatestRelease } from "../interfaces/releases-providers/releases-prov import type { DetailsProviderResponse, ReleaseProviderResponse, - ReleasesRepository, - ReleasesResponse, + ReleaseResponse, } from "../interfaces/releases-providers/releases-providers-types"; const localLogger = logger.child({ module: "GitlabIntegration" }); @@ -40,25 +39,20 @@ export class GitlabIntegration extends Integration implements ReleasesProviderIn }; } - public async getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise { + public async getLatestMatchingReleaseAsync(identifier: string, versionRegex?: string): Promise { const api = this.getApi(); - const details = await this.getDetailsAsync(api, repository.identifier); - try { - const releasesResponse = await api.ProjectReleases.all(repository.identifier, { + const releasesResponse = await api.ProjectReleases.all(identifier, { perPage: 100, }); if (releasesResponse instanceof Error) { - localLogger.warn(`Failed to get releases for ${repository.identifier} with Gitlab integration`, { - identifier: repository.identifier, + localLogger.warn(`Failed to get releases for ${identifier} with Gitlab integration`, { + identifier, error: releasesResponse.message, }); - return { - id: repository.id, - error: { code: "noReleasesFound" }, - }; + return { success: false, error: { code: "noReleasesFound" } }; } const releasesProviderResponse = releasesResponse.reduce((acc, release) => { @@ -76,17 +70,19 @@ export class GitlabIntegration extends Integration implements ReleasesProviderIn return acc; }, []); - return getLatestRelease(releasesProviderResponse, repository, details); - } catch (error) { - localLogger.warn(`Failed to get releases for ${repository.identifier} with Gitlab integration`, { - identifier: repository.identifier, - error: error instanceof Error ? error.message : String(error), - }); + const latestRelease = getLatestRelease(releasesProviderResponse, versionRegex); + if (!latestRelease) return { success: false, error: { code: "noMatchingVersion" } }; - return { - id: repository.id, - error: { code: "noReleasesFound" }, - }; + const details = await this.getDetailsAsync(api, identifier); + + return { success: true, data: { ...details, ...latestRelease } }; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + localLogger.warn(`Failed to get releases for ${identifier} with Gitlab integration`, { + identifier, + error: errorMessage, + }); + return { success: false, error: { code: "unexpected", message: errorMessage } }; } } diff --git a/packages/integrations/src/index.ts b/packages/integrations/src/index.ts index 9e35a4932..5f55faa73 100644 --- a/packages/integrations/src/index.ts +++ b/packages/integrations/src/index.ts @@ -47,7 +47,7 @@ export type { TdarrStatistics, TdarrWorker, } from "./interfaces/media-transcoding/media-transcoding-types"; -export type { ReleasesResponse } from "./interfaces/releases-providers/releases-providers-types"; +export type { ReleasesRepository, ReleaseResponse } from "./interfaces/releases-providers/releases-providers-types"; export type { Notification } from "./interfaces/notifications/notification-types"; // Schemas diff --git a/packages/integrations/src/interfaces/releases-providers/releases-providers-integration.ts b/packages/integrations/src/interfaces/releases-providers/releases-providers-integration.ts index 442c607f1..e94f555fc 100644 --- a/packages/integrations/src/interfaces/releases-providers/releases-providers-integration.ts +++ b/packages/integrations/src/interfaces/releases-providers/releases-providers-integration.ts @@ -1,47 +1,21 @@ -import type { - DetailsProviderResponse, - ReleaseProviderResponse, - ReleasesRepository, - ReleasesResponse, -} from "./releases-providers-types"; +import type { ReleaseProviderResponse, ReleaseResponse } from "./releases-providers-types"; export const getLatestRelease = ( releases: ReleaseProviderResponse[], - repository: ReleasesRepository, - details?: DetailsProviderResponse, -): ReleasesResponse => { + versionRegex?: string, +): ReleaseProviderResponse | null => { const validReleases = releases.filter((result) => { if (result.latestRelease) { - return repository.versionRegex ? new RegExp(repository.versionRegex).test(result.latestRelease) : true; + return versionRegex ? new RegExp(versionRegex).test(result.latestRelease) : true; } - return true; }); - const latest = - validReleases.length === 0 - ? ({ - id: repository.id, - error: { code: "noMatchingVersion" }, - } as ReleasesResponse) - : validReleases.reduce( - (latest, result) => { - return { - ...details, - ...(result.latestReleaseAt > latest.latestReleaseAt ? result : latest), - id: repository.id, - }; - }, - { - id: "", - latestRelease: "", - latestReleaseAt: new Date(0), - }, - ); - - return latest; + return validReleases.length === 0 + ? null + : validReleases.reduce((latest, current) => (current.latestReleaseAt > latest.latestReleaseAt ? current : latest)); }; export interface ReleasesProviderIntegration { - getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise; + getLatestMatchingReleaseAsync(identifier: string, versionRegex?: string): Promise; } diff --git a/packages/integrations/src/interfaces/releases-providers/releases-providers-types.ts b/packages/integrations/src/interfaces/releases-providers/releases-providers-types.ts index 335c64dcb..fb89b0fcb 100644 --- a/packages/integrations/src/interfaces/releases-providers/releases-providers-types.ts +++ b/packages/integrations/src/interfaces/releases-providers/releases-providers-types.ts @@ -1,5 +1,11 @@ import type { TranslationObject } from "@homarr/translation"; +export interface ReleasesRepository extends Record { + id: string; + identifier: string; + versionRegex?: string; +} + export interface DetailsProviderResponse { projectUrl?: string; projectDescription?: string; @@ -19,35 +25,10 @@ export interface ReleaseProviderResponse { isPreRelease?: boolean; } -export interface ReleasesRepository { - id: string; - identifier: string; - versionRegex?: string; -} - type ReleasesErrorKeys = keyof TranslationObject["widget"]["releases"]["error"]["messages"]; -export interface ReleasesResponse { - id: string; - latestRelease?: string; - latestReleaseAt?: Date; - releaseUrl?: string; - releaseDescription?: string; - isPreRelease?: boolean; - projectUrl?: string; - projectDescription?: string; - isFork?: boolean; - isArchived?: boolean; - createdAt?: Date; - starsCount?: number; - openIssues?: number; - forksCount?: number; +export type ReleaseData = DetailsProviderResponse & ReleaseProviderResponse; - error?: - | { - code: ReleasesErrorKeys; - } - | { - message: string; - }; -} +export type ReleaseError = { code: ReleasesErrorKeys } | { code: "unexpected"; message: string }; + +export type ReleaseResponse = { success: true; data: ReleaseData } | { success: false; error: ReleaseError }; diff --git a/packages/integrations/src/linuxserverio/linuxserverio-integration.ts b/packages/integrations/src/linuxserverio/linuxserverio-integration.ts index b3039881d..8b5d1a69b 100644 --- a/packages/integrations/src/linuxserverio/linuxserverio-integration.ts +++ b/packages/integrations/src/linuxserverio/linuxserverio-integration.ts @@ -6,7 +6,7 @@ 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 { ReleasesProviderIntegration } from "../interfaces/releases-providers/releases-providers-integration"; -import type { ReleasesRepository, ReleasesResponse } from "../interfaces/releases-providers/releases-providers-types"; +import type { ReleaseResponse } from "../interfaces/releases-providers/releases-providers-types"; import { releasesResponseSchema } from "./linuxserverio-schemas"; const localLogger = logger.child({ module: "LinuxServerIOsIntegration" }); @@ -24,56 +24,44 @@ export class LinuxServerIOIntegration extends Integration implements ReleasesPro }; } - public async getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise { - const [owner, name] = repository.identifier.split("/"); + private parseIdentifier(identifier: string) { + const [owner, name] = identifier.split("/"); if (!owner || !name) { localLogger.warn( - `Invalid identifier format. Expected 'owner/name', for ${repository.identifier} with LinuxServerIO integration`, - { - identifier: repository.identifier, - }, + `Invalid identifier format. Expected 'owner/name', for ${identifier} with LinuxServerIO integration`, + { identifier }, ); - return { - id: repository.id, - error: { code: "invalidIdentifier" }, - }; + return null; } + return { owner, name }; + } + + public async getLatestMatchingReleaseAsync(identifier: string): Promise { + const { name } = this.parseIdentifier(identifier) ?? {}; + if (!name) return { success: false, error: { code: "invalidIdentifier" } }; const releasesResponse = await fetchWithTrustedCertificatesAsync(this.url("/api/v1/images")); - if (!releasesResponse.ok) { - return { - id: repository.id, - error: { message: releasesResponse.statusText }, - }; + return { success: false, error: { code: "unexpected", message: releasesResponse.statusText } }; } const releasesResponseJson: unknown = await releasesResponse.json(); const { data, success, error } = releasesResponseSchema.safeParse(releasesResponseJson); - if (!success) { - return { - id: repository.id, - error: { - message: error.message, - }, - }; - } else { - const release = data.data.repositories.linuxserver.find((repo) => repo.name === name); - if (!release) { - localLogger.warn(`Repository ${name} not found on provider, with LinuxServerIO integration`, { - owner, - name, - }); + return { success: false, error: { code: "unexpected", message: error.message } }; + } - return { - id: repository.id, - error: { code: "noReleasesFound" }, - }; - } + const release = data.data.repositories.linuxserver.find((repo) => repo.name === name); + if (!release) { + localLogger.warn(`Repository ${name} not found on provider, with LinuxServerIO integration`, { + name, + }); + return { success: false, error: { code: "noMatchingVersion" } }; + } - return { - id: repository.id, + return { + success: true, + data: { latestRelease: release.version, latestReleaseAt: release.version_timestamp, releaseDescription: release.changelog?.shift()?.desc, @@ -82,7 +70,7 @@ export class LinuxServerIOIntegration extends Integration implements ReleasesPro isArchived: release.deprecated, createdAt: release.initial_date ? new Date(release.initial_date) : undefined, starsCount: release.stars, - }; - } + }, + }; } } diff --git a/packages/integrations/src/npm/npm-integration.ts b/packages/integrations/src/npm/npm-integration.ts index f82e0ba22..13a307467 100644 --- a/packages/integrations/src/npm/npm-integration.ts +++ b/packages/integrations/src/npm/npm-integration.ts @@ -6,7 +6,7 @@ import { TestConnectionError } from "../base/test-connection/test-connection-err import type { TestingResult } from "../base/test-connection/test-connection-service"; import type { ReleasesProviderIntegration } from "../interfaces/releases-providers/releases-providers-integration"; import { getLatestRelease } from "../interfaces/releases-providers/releases-providers-integration"; -import type { ReleasesRepository, ReleasesResponse } from "../interfaces/releases-providers/releases-providers-types"; +import type { ReleaseResponse } from "../interfaces/releases-providers/releases-providers-types"; import { releasesResponseSchema } from "./npm-schemas"; export class NPMIntegration extends Integration implements ReleasesProviderIntegration { @@ -22,35 +22,35 @@ export class NPMIntegration extends Integration implements ReleasesProviderInteg }; } - public async getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise { - const releasesResponse = await fetchWithTrustedCertificatesAsync( - this.url(`/${encodeURIComponent(repository.identifier)}`), - ); + public async getLatestMatchingReleaseAsync(identifier: string, versionRegex?: string): Promise { + if (!identifier) return { success: false, error: { code: "invalidIdentifier" } }; + const releasesResponse = await fetchWithTrustedCertificatesAsync(this.url(`/${encodeURIComponent(identifier)}`)); if (!releasesResponse.ok) { - return { - id: repository.id, - error: { message: releasesResponse.statusText }, - }; + return { success: false, error: { code: "unexpected", message: releasesResponse.statusText } }; } const releasesResponseJson: unknown = await releasesResponse.json(); const { data, success, error } = releasesResponseSchema.safeParse(releasesResponseJson); - if (!success) { return { - id: repository.id, + success: false, error: { + code: "unexpected", message: releasesResponseJson ? JSON.stringify(releasesResponseJson, null, 2) : error.message, }, }; - } else { - const formattedReleases = data.time.map((tag) => ({ - ...tag, - releaseUrl: `https://www.npmjs.com/package/${encodeURIComponent(data.name)}/v/${encodeURIComponent(tag.latestRelease)}`, - releaseDescription: data.versions[tag.latestRelease]?.description ?? "", - })); - return getLatestRelease(formattedReleases, repository); } + + const formattedReleases = data.time.map((tag) => ({ + ...tag, + releaseUrl: `https://www.npmjs.com/package/${encodeURIComponent(data.name)}/v/${encodeURIComponent(tag.latestRelease)}`, + releaseDescription: data.versions[tag.latestRelease]?.description ?? "", + })); + + const latestRelease = getLatestRelease(formattedReleases, versionRegex); + if (!latestRelease) return { success: false, error: { code: "noMatchingVersion" } }; + + return { success: true, data: latestRelease }; } } diff --git a/packages/integrations/src/quay/quay-integration.ts b/packages/integrations/src/quay/quay-integration.ts index f84052315..f27349e6b 100644 --- a/packages/integrations/src/quay/quay-integration.ts +++ b/packages/integrations/src/quay/quay-integration.ts @@ -11,8 +11,7 @@ import type { ReleasesProviderIntegration } from "../interfaces/releases-provide import { getLatestRelease } from "../interfaces/releases-providers/releases-providers-integration"; import type { ReleaseProviderResponse, - ReleasesRepository, - ReleasesResponse, + ReleaseResponse, } from "../interfaces/releases-providers/releases-providers-types"; import { releasesResponseSchema } from "./quay-schemas"; @@ -43,20 +42,22 @@ export class QuayIntegration extends Integration implements ReleasesProviderInte }; } - public async getLatestMatchingReleaseAsync(repository: ReleasesRepository): Promise { - const [owner, name] = repository.identifier.split("/"); + private parseIdentifier(identifier: string) { + const [owner, name] = identifier.split("/"); if (!owner || !name) { - localLogger.warn( - `Invalid identifier format. Expected 'owner/name', for ${repository.identifier} with LinuxServerIO integration`, - { - identifier: repository.identifier, - }, - ); - return { - id: repository.id, - error: { code: "invalidIdentifier" }, - }; + localLogger.warn(`Invalid identifier format. Expected 'owner/name', for ${identifier} with Quay integration`, { + identifier, + }); + return null; } + return { owner, name }; + } + + public async getLatestMatchingReleaseAsync(identifier: string, versionRegex?: string): Promise { + const parsedIdentifier = this.parseIdentifier(identifier); + if (!parsedIdentifier) return { success: false, error: { code: "invalidIdentifier" } }; + + const { owner, name } = parsedIdentifier; const releasesResponse = await this.withHeadersAsync(async (headers) => { return await fetchWithTrustedCertificatesAsync( @@ -68,42 +69,29 @@ export class QuayIntegration extends Integration implements ReleasesProviderInte }, ); }); - if (!releasesResponse.ok) { - return { - id: repository.id, - error: { message: releasesResponse.statusText }, - }; + return { success: false, error: { code: "unexpected", message: releasesResponse.statusText } }; } const releasesResponseJson: unknown = await releasesResponse.json(); const { data, success, error } = releasesResponseSchema.safeParse(releasesResponseJson); - if (!success) { - return { - id: repository.id, - error: { - message: error.message, - }, - }; - } else { - const details = { - projectDescription: data.description, - }; - - const releasesProviderResponse = Object.entries(data.tags).reduce((acc, [_, tag]) => { - if (!tag.name || !tag.last_modified) return acc; - - acc.push({ - latestRelease: tag.name, - latestReleaseAt: new Date(tag.last_modified), - releaseUrl: `https://quay.io/repository/${encodeURIComponent(owner)}/${encodeURIComponent(name)}/tag/${encodeURIComponent(tag.name)}`, - }); - - return acc; - }, []); - - return getLatestRelease(releasesProviderResponse, repository, details); + return { success: false, error: { code: "unexpected", message: error.message } }; } + + const releasesProviderResponse = Object.entries(data.tags).reduce((acc, [_, tag]) => { + if (!tag.name || !tag.last_modified) return acc; + acc.push({ + latestRelease: tag.name, + latestReleaseAt: new Date(tag.last_modified), + releaseUrl: `https://quay.io/repository/${encodeURIComponent(owner)}/${encodeURIComponent(name)}/tag/${encodeURIComponent(tag.name)}`, + }); + return acc; + }, []); + + const latestRelease = getLatestRelease(releasesProviderResponse, versionRegex); + if (!latestRelease) return { success: false, error: { code: "noMatchingVersion" } }; + + return { success: true, data: { projectDescription: data.description, ...latestRelease } }; } } diff --git a/packages/request-handler/src/releases.ts b/packages/request-handler/src/releases.ts index 74158c05f..7bfd29348 100644 --- a/packages/request-handler/src/releases.ts +++ b/packages/request-handler/src/releases.ts @@ -1,36 +1,19 @@ import dayjs from "dayjs"; import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { getIconUrl } from "@homarr/definitions"; -import type { ReleasesResponse } from "@homarr/integrations"; +import type { ReleaseResponse, ReleasesRepository } from "@homarr/integrations"; import { createIntegrationAsync } from "@homarr/integrations"; import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; export const releasesRequestHandler = createCachedIntegrationRequestHandler< - ReleasesResponse, + ReleaseResponse, IntegrationKindByCategory<"releasesProvider">, - { - id: string; - identifier: string; - versionRegex?: string; - } + ReleasesRepository >({ - async requestAsync(integration, input) { - const integrationInstance = await createIntegrationAsync(integration); - const response = await integrationInstance.getLatestMatchingReleaseAsync({ - id: input.id, - identifier: input.identifier, - versionRegex: input.versionRegex, - }); - - return { - ...response, - integration: { - name: integration.name, - iconUrl: getIconUrl(integration.kind), - }, - }; + requestAsync: async (integration, input) => { + const instance = await createIntegrationAsync(integration); + return instance.getLatestMatchingReleaseAsync(input.identifier, input.versionRegex); }, cacheDuration: dayjs.duration(5, "minutes"), queryKey: "repositoriesReleases", diff --git a/packages/widgets/src/releases/component.tsx b/packages/widgets/src/releases/component.tsx index 51cefebd0..fdd9f1f0b 100644 --- a/packages/widgets/src/releases/component.tsx +++ b/packages/widgets/src/releases/component.tsx @@ -21,6 +21,7 @@ import ReactMarkdown from "react-markdown"; import { clientApi } from "@homarr/api/client"; import { useRequiredBoard } from "@homarr/boards/context"; import { isDateWithin, isNullOrWhitespace, splitToChunksWithNItems } from "@homarr/common"; +import { getIconUrl } from "@homarr/definitions"; import { useScopedI18n } from "@homarr/translation/client"; import { MaskedOrNormalImage } from "@homarr/ui"; @@ -96,55 +97,33 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas const repositories = useMemo(() => { const formattedResults = options.repositories .map((repository) => { - if (repository.providerIntegrationId === undefined) { - return { - ...repository, - isNewRelease: false, - isStaleRelease: false, - latestReleaseAt: undefined, - error: { - code: "noProviderSeleceted", - }, - }; - } + if (!repository.providerIntegrationId) return { ...repository, error: { code: "noProviderSeleceted" } }; - const response = results.flat().find(({ data }) => data.id === repository.id)?.data; + const repositoryResult = results.flat().find(({ id }) => id === repository.id); + if (!repositoryResult) return { ...repository, error: { code: "noProviderResponse" } }; + if (!repositoryResult.success) return { ...repository, error: repositoryResult.error }; - if (response === undefined) - return { - ...repository, - isNewRelease: false, - isStaleRelease: false, - latestReleaseAt: undefined, - error: { - code: "noProviderResponse", - }, - }; + const { data: release, integration } = repositoryResult; + + const isReleaseWithin = (relativeDate: string) => + Boolean(relativeDate) && isDateWithin(release.latestReleaseAt, relativeDate); return { ...repository, - ...response, - isNewRelease: - relativeDateOptions.newReleaseWithin !== "" && response.latestReleaseAt - ? isDateWithin(response.latestReleaseAt, relativeDateOptions.newReleaseWithin) - : false, - isStaleRelease: - relativeDateOptions.staleReleaseWithin !== "" && response.latestReleaseAt - ? !isDateWithin(response.latestReleaseAt, relativeDateOptions.staleReleaseWithin) - : false, - viewed: releasesViewedList[repository.id] === response.latestRelease, + ...release, + integration: { name: integration.name, iconUrl: getIconUrl(integration.kind) }, + isNewRelease: isReleaseWithin(relativeDateOptions.newReleaseWithin), + isStaleRelease: !isReleaseWithin(relativeDateOptions.staleReleaseWithin), + viewed: releasesViewedList[repository.id] === release.latestRelease, }; }) .filter( (repository) => - repository.error !== undefined || - !options.showOnlyHighlighted || - repository.isNewRelease || - repository.isStaleRelease, + "error" in repository || !options.showOnlyHighlighted || repository.isNewRelease || repository.isStaleRelease, ) .sort((repoA, repoB) => { - if (repoA.latestReleaseAt === undefined) return -1; - if (repoB.latestReleaseAt === undefined) return 1; + if ("error" in repoA) return -1; + if ("error" in repoB) return 1; return repoA.latestReleaseAt > repoB.latestReleaseAt ? -1 : 1; }) as ReleasesRepositoryResponse[]; From 24def9982709cd6de1765a7235169fe1ceb3cbea Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Thu, 30 Oct 2025 17:29:32 +0000 Subject: [PATCH 29/33] fix(deps): update trpc monorepo to ^11.7.0 (#4385) 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 ca87ac265..55ad9f290 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -61,10 +61,10 @@ "@tanstack/react-query": "^5.90.5", "@tanstack/react-query-devtools": "^5.90.2", "@tanstack/react-query-next-experimental": "^5.90.2", - "@trpc/client": "^11.6.0", - "@trpc/next": "^11.6.0", - "@trpc/react-query": "^11.6.0", - "@trpc/server": "^11.6.0", + "@trpc/client": "^11.7.0", + "@trpc/next": "^11.7.0", + "@trpc/react-query": "^11.7.0", + "@trpc/server": "^11.7.0", "@xterm/addon-canvas": "^0.7.0", "@xterm/addon-fit": "0.10.0", "@xterm/xterm": "^5.5.0", diff --git a/packages/api/package.json b/packages/api/package.json index d34328079..d4b8f692e 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -44,10 +44,10 @@ "@homarr/validation": "workspace:^0.1.0", "@kubernetes/client-node": "^1.4.0", "@tanstack/react-query": "^5.90.5", - "@trpc/client": "^11.6.0", - "@trpc/react-query": "^11.6.0", - "@trpc/server": "^11.6.0", - "@trpc/tanstack-react-query": "^11.6.0", + "@trpc/client": "^11.7.0", + "@trpc/react-query": "^11.7.0", + "@trpc/server": "^11.7.0", + "@trpc/tanstack-react-query": "^11.7.0", "lodash.clonedeep": "^4.5.0", "next": "15.5.6", "react": "19.2.0", diff --git a/packages/cron-job-api/package.json b/packages/cron-job-api/package.json index 198d81efe..0e0d51b23 100644 --- a/packages/cron-job-api/package.json +++ b/packages/cron-job-api/package.json @@ -30,9 +30,9 @@ "@homarr/cron-jobs": "workspace:^0.1.0", "@homarr/log": "workspace:^0.1.0", "@tanstack/react-query": "^5.90.5", - "@trpc/client": "^11.6.0", - "@trpc/server": "^11.6.0", - "@trpc/tanstack-react-query": "^11.6.0", + "@trpc/client": "^11.7.0", + "@trpc/server": "^11.7.0", + "@trpc/tanstack-react-query": "^11.7.0", "node-cron": "^4.2.1", "react": "19.2.0", "zod": "^4.1.12" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26283c233..d7b70d67f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -245,17 +245,17 @@ importers: specifier: ^5.90.2 version: 5.90.2(@tanstack/react-query@5.90.5(react@19.2.0))(next@15.5.6(@babel/core@7.26.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0) '@trpc/client': - specifier: ^11.6.0 - version: 11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3) '@trpc/next': - specifier: ^11.6.0 - version: 11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(next@15.5.6(@babel/core@7.26.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(next@15.5.6(@babel/core@7.26.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.6.0 - version: 11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) '@trpc/server': - specifier: ^11.6.0 - version: 11.6.0(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(typescript@5.9.3) '@xterm/addon-canvas': specifier: ^0.7.0 version: 0.7.0(@xterm/xterm@5.5.0) @@ -636,17 +636,17 @@ importers: specifier: ^5.90.5 version: 5.90.5(react@19.2.0) '@trpc/client': - specifier: ^11.6.0 - version: 11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3) '@trpc/react-query': - specifier: ^11.6.0 - version: 11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) '@trpc/server': - specifier: ^11.6.0 - version: 11.6.0(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.6.0 - version: 11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) lodash.clonedeep: specifier: ^4.5.0 version: 4.5.0 @@ -664,7 +664,7 @@ importers: version: 2.2.3 trpc-to-openapi: specifier: ^3.1.0 - version: 3.1.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.6.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.1.12))(zod@4.1.12) + version: 3.1.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.7.1(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.1.12))(zod@4.1.12) zod: specifier: ^4.1.12 version: 4.1.12 @@ -964,14 +964,14 @@ importers: specifier: ^5.90.5 version: 5.90.5(react@19.2.0) '@trpc/client': - specifier: ^11.6.0 - version: 11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': - specifier: ^11.6.0 - version: 11.6.0(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(typescript@5.9.3) '@trpc/tanstack-react-query': - specifier: ^11.6.0 - version: 11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + specifier: ^11.7.0 + version: 11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) node-cron: specifier: ^4.2.1 version: 4.2.1 @@ -4399,19 +4399,19 @@ packages: tree-sitter: optional: true - '@trpc/client@11.6.0': - resolution: {integrity: sha512-DyWbYk2hd50BaVrXWVkaUnaSwgAF5g/lfBkXtkF1Aqlk6BtSzGUo3owPkgqQO2I5LwWy1+ra9TsSfBBvIZpTwg==} + '@trpc/client@11.7.1': + resolution: {integrity: sha512-uOnAjElKI892/U6aQMcBHYs3x7mme3Cvv1F87ytBL56rBvs7+DyK7r43zgaXKf13+GtPEI6ex5xjVUfyDW8XcQ==} peerDependencies: - '@trpc/server': 11.6.0 + '@trpc/server': 11.7.1 typescript: '>=5.7.2' - '@trpc/next@11.6.0': - resolution: {integrity: sha512-LVzXQ4f3pyOJDMA0qXaWkTnnJtnRgzDvW5c1SPuragI69r9mG+Qs0+SgeekV/buSqUy35wMYVvwuEB/DfKvODw==} + '@trpc/next@11.7.1': + resolution: {integrity: sha512-LIoZk9z6tsPCcb7Iijc7usPuuxKm+UuwhU9jksc6TNk5AbDTUvEM/M+OtE4zABN4T3U/JFagn3Wt8s6vDEhNGw==} peerDependencies: '@tanstack/react-query': ^5.59.15 - '@trpc/client': 11.6.0 - '@trpc/react-query': 11.6.0 - '@trpc/server': 11.6.0 + '@trpc/client': 11.7.1 + '@trpc/react-query': 11.7.1 + '@trpc/server': 11.7.1 next: '*' react: '>=16.8.0' react-dom: '>=16.8.0' @@ -4422,27 +4422,27 @@ packages: '@trpc/react-query': optional: true - '@trpc/react-query@11.6.0': - resolution: {integrity: sha512-xljUCzROa23cC89SEd5fwbKiWrGus2NDwtg8zszPlsFvaByWW50Jx6y5sLPXhp/g1FBsEtCInNNhEEL0UCHwGw==} + '@trpc/react-query@11.7.1': + resolution: {integrity: sha512-dEHDjIqSTzO8nLlCbtiFBMBwhbSkK1QP7aYVo3nP3sYBna0b+iCtrPXdxVPCSopr9/aIqDTEh+dMRZa7yBgjfQ==} peerDependencies: '@tanstack/react-query': ^5.80.3 - '@trpc/client': 11.6.0 - '@trpc/server': 11.6.0 + '@trpc/client': 11.7.1 + '@trpc/server': 11.7.1 react: '>=18.2.0' react-dom: '>=18.2.0' typescript: '>=5.7.2' - '@trpc/server@11.6.0': - resolution: {integrity: sha512-skTso0AWbOZck40jwNeYv++AMZXNWLUWdyk+pB5iVaYmEKTuEeMoPrEudR12VafbEU6tZa8HK3QhBfTYYHDCdg==} + '@trpc/server@11.7.1': + resolution: {integrity: sha512-N3U8LNLIP4g9C7LJ/sLkjuPHwqlvE3bnspzC4DEFVdvx2+usbn70P80E3wj5cjOTLhmhRiwJCSXhlB+MHfGeCw==} peerDependencies: typescript: '>=5.7.2' - '@trpc/tanstack-react-query@11.6.0': - resolution: {integrity: sha512-254OpGV2RT9Djl6HRJmokDMT4pZz3beLs+8/T35ySfBxiC5OdEsOeESIJpC302YaZcCGwkOZ+d+FKFXgpy0YtQ==} + '@trpc/tanstack-react-query@11.7.1': + resolution: {integrity: sha512-qc7kz4NY7CCvCxLy5HGptfKd3e3yJnWmTd6/Gkr4IY8B73PNFmcHKvLWE4kzU7r+R72MfT57TXrCEJ7ErLSMtw==} peerDependencies: '@tanstack/react-query': ^5.80.3 - '@trpc/client': 11.6.0 - '@trpc/server': 11.6.0 + '@trpc/client': 11.7.1 + '@trpc/server': 11.7.1 react: '>=18.2.0' react-dom: '>=18.2.0' typescript: '>=5.7.2' @@ -13159,41 +13159,41 @@ snapshots: tree-sitter: 0.22.4 optional: true - '@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3)': + '@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3)': dependencies: - '@trpc/server': 11.6.0(typescript@5.9.3) + '@trpc/server': 11.7.1(typescript@5.9.3) typescript: 5.9.3 - '@trpc/next@11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(next@15.5.6(@babel/core@7.26.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)': + '@trpc/next@11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(next@15.5.6(@babel/core@7.26.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)': dependencies: - '@trpc/client': 11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.6.0(typescript@5.9.3) + '@trpc/client': 11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.7.1(typescript@5.9.3) next: 15.5.6(@babel/core@7.26.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) typescript: 5.9.3 optionalDependencies: '@tanstack/react-query': 5.90.5(react@19.2.0) - '@trpc/react-query': 11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + '@trpc/react-query': 11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) - '@trpc/react-query@11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)': + '@trpc/react-query@11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)': dependencies: '@tanstack/react-query': 5.90.5(react@19.2.0) - '@trpc/client': 11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.6.0(typescript@5.9.3) + '@trpc/client': 11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.7.1(typescript@5.9.3) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) typescript: 5.9.3 - '@trpc/server@11.6.0(typescript@5.9.3)': + '@trpc/server@11.7.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@trpc/tanstack-react-query@11.6.0(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)': + '@trpc/tanstack-react-query@11.7.1(@tanstack/react-query@5.90.5(react@19.2.0))(@trpc/client@11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.7.1(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)': dependencies: '@tanstack/react-query': 5.90.5(react@19.2.0) - '@trpc/client': 11.6.0(@trpc/server@11.6.0(typescript@5.9.3))(typescript@5.9.3) - '@trpc/server': 11.6.0(typescript@5.9.3) + '@trpc/client': 11.7.1(@trpc/server@11.7.1(typescript@5.9.3))(typescript@5.9.3) + '@trpc/server': 11.7.1(typescript@5.9.3) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) typescript: 5.9.3 @@ -19702,9 +19702,9 @@ snapshots: trough@2.2.0: {} - trpc-to-openapi@3.1.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.6.0(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.1.12))(zod@4.1.12): + trpc-to-openapi@3.1.0(patch_hash=2ca3c16af0fcca0c736697ad4fe553a14f794524fa9ce0d5c3e8ee4aea76090c)(@trpc/server@11.7.1(typescript@5.9.3))(zod-openapi@5.3.0(zod@4.1.12))(zod@4.1.12): dependencies: - '@trpc/server': 11.6.0(typescript@5.9.3) + '@trpc/server': 11.7.1(typescript@5.9.3) co-body: 6.2.0 h3: 1.15.1 openapi3-ts: 4.4.0 From 747bb922ccf0508bd00c37faeab29e28876577b1 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 31 Oct 2025 03:22:51 +0000 Subject: [PATCH 30/33] fix(deps): update dependency @auth/core to ^0.41.1 (#4387) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/auth/package.json | 2 +- packages/db/package.json | 2 +- pnpm-lock.yaml | 30 ++++++++++++++++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index 6a87ffff0..8446b4016 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -23,7 +23,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@auth/core": "^0.41.0", + "@auth/core": "^0.41.1", "@auth/drizzle-adapter": "^1.11.0", "@homarr/certificates": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0", diff --git a/packages/db/package.json b/packages/db/package.json index 52c2fb1c7..f9852ac39 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -43,7 +43,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@auth/core": "^0.41.0", + "@auth/core": "^0.41.1", "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d7b70d67f..db43d819f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -691,8 +691,8 @@ importers: packages/auth: dependencies: '@auth/core': - specifier: ^0.41.0 - version: 0.41.0 + specifier: ^0.41.1 + version: 0.41.1 '@auth/drizzle-adapter': specifier: ^1.11.0 version: 1.11.0 @@ -1130,8 +1130,8 @@ importers: packages/db: dependencies: '@auth/core': - specifier: ^0.41.0 - version: 0.41.0 + specifier: ^0.41.1 + version: 0.41.1 '@homarr/common': specifier: workspace:^0.1.0 version: link:../common @@ -2507,6 +2507,20 @@ packages: nodemailer: optional: true + '@auth/core@0.41.1': + resolution: {integrity: sha512-t9cJ2zNYAdWMacGRMT6+r4xr1uybIdmYa49calBPeTqwgAFPV/88ac9TEvCR85pvATiSPt8VaNf+Gt24JIT/uw==} + peerDependencies: + '@simplewebauthn/browser': ^9.0.1 + '@simplewebauthn/server': ^9.0.2 + nodemailer: ^7.0.7 + peerDependenciesMeta: + '@simplewebauthn/browser': + optional: true + '@simplewebauthn/server': + optional: true + nodemailer: + optional: true + '@auth/drizzle-adapter@1.11.0': resolution: {integrity: sha512-7YHi5bTZZs4+D6TQIT/AWgZ2PLL7Zc9fS7bteHKMrsEMemarbdv3H5eF8RfF1FpRtyK8MAj4EQV4BWf0gCzAYw==} @@ -10944,6 +10958,14 @@ snapshots: preact: 10.24.3 preact-render-to-string: 6.5.11(preact@10.24.3) + '@auth/core@0.41.1': + dependencies: + '@panva/hkdf': 1.2.1 + jose: 6.0.8 + oauth4webapi: 3.3.0 + preact: 10.24.3 + preact-render-to-string: 6.5.11(preact@10.24.3) + '@auth/drizzle-adapter@1.11.0': dependencies: '@auth/core': 0.41.0 From 2fe36564c26c33ae2625eb22ef4503c6dd8ebcf9 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 31 Oct 2025 04:38:56 +0000 Subject: [PATCH 31/33] fix(deps): update dependency @auth/drizzle-adapter to ^1.11.1 (#4388) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/auth/package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index 8446b4016..dcd0584da 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -24,7 +24,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@auth/core": "^0.41.1", - "@auth/drizzle-adapter": "^1.11.0", + "@auth/drizzle-adapter": "^1.11.1", "@homarr/certificates": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index db43d819f..38333744f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -694,8 +694,8 @@ importers: specifier: ^0.41.1 version: 0.41.1 '@auth/drizzle-adapter': - specifier: ^1.11.0 - version: 1.11.0 + specifier: ^1.11.1 + version: 1.11.1 '@homarr/certificates': specifier: workspace:^0.1.0 version: link:../certificates @@ -2521,8 +2521,8 @@ packages: nodemailer: optional: true - '@auth/drizzle-adapter@1.11.0': - resolution: {integrity: sha512-7YHi5bTZZs4+D6TQIT/AWgZ2PLL7Zc9fS7bteHKMrsEMemarbdv3H5eF8RfF1FpRtyK8MAj4EQV4BWf0gCzAYw==} + '@auth/drizzle-adapter@1.11.1': + resolution: {integrity: sha512-cQTvDZqsyF7RPhDm/B6SvqdVP9EzQhy3oM4Muu7fjjmSYFLbSR203E6dH631ZHSKDn2b4WZkfMnjPDzRsPSAeA==} '@axiomhq/js@1.0.0-rc.3': resolution: {integrity: sha512-Zm10TczcMLounWqC42nMkXQ7XKLqjzLrd5ia022oBKDUZqAFVg2y9d1quQVNV4FlXyg9MKDdfMjpKQRmzEGaog==} @@ -10966,9 +10966,9 @@ snapshots: preact: 10.24.3 preact-render-to-string: 6.5.11(preact@10.24.3) - '@auth/drizzle-adapter@1.11.0': + '@auth/drizzle-adapter@1.11.1': dependencies: - '@auth/core': 0.41.0 + '@auth/core': 0.41.1 transitivePeerDependencies: - '@simplewebauthn/browser' - '@simplewebauthn/server' From bbfc6e48fedb4600d10a59c6162b86e68b03c1d7 Mon Sep 17 00:00:00 2001 From: "homarr-update-contributors[bot]" <210161987+homarr-update-contributors[bot]@users.noreply.github.com> Date: Fri, 31 Oct 2025 12:36:00 +0000 Subject: [PATCH 32/33] chore: update contributors (#4389) Co-authored-by: Homarr Update Contributors <210161987+homarr-update-contributors[bot]@users.noreply.github.com> --- static-data/contributors.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static-data/contributors.json b/static-data/contributors.json index c60570e7f..a4ed83bf9 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":"VinnyVynce","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"bo3bdo","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"lthomsen","avatar_url":"https://avatars.githubusercontent.com/u/28560325?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"NikeLaosClericus","avatar_url":"https://avatars.githubusercontent.com/u/39810627?v=4"},{"login":"NicolasNewman","avatar_url":"https://avatars.githubusercontent.com/u/16135852?v=4"},{"login":"itzTheMeow","avatar_url":"https://avatars.githubusercontent.com/u/50887230?v=4"},{"login":"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":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?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":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?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"}] \ 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":"VinnyVynce","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"bo3bdo","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"tesar-tech","avatar_url":"https://avatars.githubusercontent.com/u/33880579?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"xoxyuxu","avatar_url":"https://avatars.githubusercontent.com/u/3543416?v=4"},{"login":"castielwaverly","avatar_url":"https://avatars.githubusercontent.com/u/137005689?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"Oupsman","avatar_url":"https://avatars.githubusercontent.com/u/11260343?v=4"},{"login":"Copilot","avatar_url":"https://avatars.githubusercontent.com/in/1143301?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"HeapReaper","avatar_url":"https://avatars.githubusercontent.com/u/31496522?v=4"},{"login":"Kaotic3","avatar_url":"https://avatars.githubusercontent.com/u/80522225?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"leandroscardua","avatar_url":"https://avatars.githubusercontent.com/u/24698541?v=4"},{"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":"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"}] \ No newline at end of file From 6f3b7ec4915754e183300a915baebc11f264df62 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Fri, 31 Oct 2025 16:56:15 +0100 Subject: [PATCH 33/33] fix(media-releases): support more media type mappings for jellyfin and emby (#4382) --- .../integrations/src/emby/emby-integration.ts | 25 +++++++++++++++++-- .../src/jellyfin/jellyfin-integration.ts | 25 +++++++++++++++++-- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/packages/integrations/src/emby/emby-integration.ts b/packages/integrations/src/emby/emby-integration.ts index 8efa03931..ccfc43222 100644 --- a/packages/integrations/src/emby/emby-integration.ts +++ b/packages/integrations/src/emby/emby-integration.ts @@ -11,7 +11,7 @@ import type { TestingResult } from "../base/test-connection/test-connection-serv import type { IMediaServerIntegration } from "../interfaces/media-server/media-server-integration"; import type { CurrentSessionsInput, StreamSession } from "../interfaces/media-server/media-server-types"; import { convertJellyfinType } from "../jellyfin/jellyfin-integration"; -import type { IMediaReleasesIntegration, MediaRelease } from "../types"; +import type { IMediaReleasesIntegration, MediaRelease, MediaType } from "../types"; const sessionSchema = z.object({ NowPlayingItem: z @@ -163,7 +163,7 @@ export class EmbyIntegration extends Integration implements IMediaServerIntegrat return items.map((item) => ({ id: item.Id, - type: item.Type === "Movie" ? "movie" : item.Type === "Series" ? "tv" : "unknown", + type: this.mapMediaReleaseType(item.Type), title: item.Name, subtitle: item.Taglines.at(0), description: item.Overview, @@ -179,6 +179,27 @@ export class EmbyIntegration extends Integration implements IMediaServerIntegrat })); } + private mapMediaReleaseType(type: string | undefined): MediaType { + switch (type) { + case "Audio": + case "AudioBook": + case "MusicAlbum": + return "music"; + case "Book": + return "book"; + case "Episode": + case "Series": + case "Season": + return "tv"; + case "Movie": + return "movie"; + case "Video": + return "video"; + default: + return "unknown"; + } + } + // https://dev.emby.media/reference/RestAPI/UserService/getUsersPublic.html private async fetchUsersPublicAsync(): Promise<{ id: string; name: string }[]> { const apiKey = super.getSecretValue("apiKey"); diff --git a/packages/integrations/src/jellyfin/jellyfin-integration.ts b/packages/integrations/src/jellyfin/jellyfin-integration.ts index b755f62f5..34fee79b6 100644 --- a/packages/integrations/src/jellyfin/jellyfin-integration.ts +++ b/packages/integrations/src/jellyfin/jellyfin-integration.ts @@ -15,7 +15,7 @@ import { Integration } from "../base/integration"; import type { TestingResult } from "../base/test-connection/test-connection-service"; import type { IMediaServerIntegration } from "../interfaces/media-server/media-server-integration"; import type { CurrentSessionsInput, StreamSession } from "../interfaces/media-server/media-server-types"; -import type { IMediaReleasesIntegration, MediaRelease } from "../types"; +import type { IMediaReleasesIntegration, MediaRelease, MediaType } from "../types"; @HandleIntegrationErrors([integrationAxiosHttpErrorHandler]) export class JellyfinIntegration extends Integration implements IMediaServerIntegration, IMediaReleasesIntegration { @@ -122,7 +122,7 @@ export class JellyfinIntegration extends Integration implements IMediaServerInte return result.data.map((item) => ({ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion id: item.Id!, - type: item.Type === "Movie" ? "movie" : item.Type === "Series" ? "tv" : "unknown", + type: this.mapMediaReleaseType(item.Type), // eslint-disable-next-line @typescript-eslint/no-non-null-assertion title: item.Name!, subtitle: item.Taglines?.at(0), @@ -140,6 +140,27 @@ export class JellyfinIntegration extends Integration implements IMediaServerInte })); } + private mapMediaReleaseType(type: BaseItemKind | undefined): MediaType { + switch (type) { + case "Audio": + case "AudioBook": + case "MusicAlbum": + return "music"; + case "Book": + return "book"; + case "Episode": + case "Series": + case "Season": + return "tv"; + case "Movie": + return "movie"; + case "Video": + return "video"; + default: + return "unknown"; + } + } + /** * Constructs an ApiClient synchronously with an ApiKey or asynchronously * with a username and password.