From f0cd8ce91fa6fa559fb9d23f2a0e7b6078d89cf7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Apr 2025 14:58:42 +0000 Subject: [PATCH 001/105] chore(deps-dev): bump vite from 6.1.3 to 6.1.4 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.1.3 to 6.1.4. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.1.4/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.1.4/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.1.4 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 206 ++++++++++++++++++++++++------------------------- 2 files changed, 104 insertions(+), 104 deletions(-) diff --git a/package.json b/package.json index 897b42e..f35c360 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "http-server": "^14.1.1", "prettier": "^3.5.2", "sass-embedded": "^1.85.0", - "vite": "^6.1.3", + "vite": "^6.1.4", "vite-plugin-pwa": "^0.21.1" }, "license": "Apache-2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5df58fb..f01c8ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,7 +29,7 @@ importers: version: 9.21.0 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.1.3(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13) + version: 5.2.1(vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13) '@vue/eslint-config-prettier': specifier: ^10.2.0 version: 10.2.0(eslint@9.21.0)(prettier@3.5.2) @@ -52,11 +52,11 @@ importers: specifier: ^1.85.0 version: 1.85.0 vite: - specifier: ^6.1.3 - version: 6.1.3(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.1.4 + version: 6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) vite-plugin-pwa: specifier: ^0.21.1 - version: 0.21.1(vite@6.1.3(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 0.21.1(vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0) packages: @@ -849,103 +849,103 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.38.0': - resolution: {integrity: sha512-ldomqc4/jDZu/xpYU+aRxo3V4mGCV9HeTgUBANI3oIQMOL+SsxB+S2lxMpkFp5UamSS3XuTMQVbsS24R4J4Qjg==} + '@rollup/rollup-android-arm-eabi@4.39.0': + resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.38.0': - resolution: {integrity: sha512-VUsgcy4GhhT7rokwzYQP+aV9XnSLkkhlEJ0St8pbasuWO/vwphhZQxYEKUP3ayeCYLhk6gEtacRpYP/cj3GjyQ==} + '@rollup/rollup-android-arm64@4.39.0': + resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.38.0': - resolution: {integrity: sha512-buA17AYXlW9Rn091sWMq1xGUvWQFOH4N1rqUxGJtEQzhChxWjldGCCup7r/wUnaI6Au8sKXpoh0xg58a7cgcpg==} + '@rollup/rollup-darwin-arm64@4.39.0': + resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.38.0': - resolution: {integrity: sha512-Mgcmc78AjunP1SKXl624vVBOF2bzwNWFPMP4fpOu05vS0amnLcX8gHIge7q/lDAHy3T2HeR0TqrriZDQS2Woeg==} + '@rollup/rollup-darwin-x64@4.39.0': + resolution: {integrity: sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.38.0': - resolution: {integrity: sha512-zzJACgjLbQTsscxWqvrEQAEh28hqhebpRz5q/uUd1T7VTwUNZ4VIXQt5hE7ncs0GrF+s7d3S4on4TiXUY8KoQA==} + '@rollup/rollup-freebsd-arm64@4.39.0': + resolution: {integrity: sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.38.0': - resolution: {integrity: sha512-hCY/KAeYMCyDpEE4pTETam0XZS4/5GXzlLgpi5f0IaPExw9kuB+PDTOTLuPtM10TlRG0U9OSmXJ+Wq9J39LvAg==} + '@rollup/rollup-freebsd-x64@4.39.0': + resolution: {integrity: sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.38.0': - resolution: {integrity: sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==} + '@rollup/rollup-linux-arm-gnueabihf@4.39.0': + resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.38.0': - resolution: {integrity: sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==} + '@rollup/rollup-linux-arm-musleabihf@4.39.0': + resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.38.0': - resolution: {integrity: sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==} + '@rollup/rollup-linux-arm64-gnu@4.39.0': + resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.38.0': - resolution: {integrity: sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==} + '@rollup/rollup-linux-arm64-musl@4.39.0': + resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.38.0': - resolution: {integrity: sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==} + '@rollup/rollup-linux-loongarch64-gnu@4.39.0': + resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.38.0': - resolution: {integrity: sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': + resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.38.0': - resolution: {integrity: sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==} + '@rollup/rollup-linux-riscv64-gnu@4.39.0': + resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.38.0': - resolution: {integrity: sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==} + '@rollup/rollup-linux-riscv64-musl@4.39.0': + resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.38.0': - resolution: {integrity: sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==} + '@rollup/rollup-linux-s390x-gnu@4.39.0': + resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.38.0': - resolution: {integrity: sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==} + '@rollup/rollup-linux-x64-gnu@4.39.0': + resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.38.0': - resolution: {integrity: sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==} + '@rollup/rollup-linux-x64-musl@4.39.0': + resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.38.0': - resolution: {integrity: sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==} + '@rollup/rollup-win32-arm64-msvc@4.39.0': + resolution: {integrity: sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.38.0': - resolution: {integrity: sha512-mqu4PzTrlpNHHbu5qleGvXJoGgHpChBlrBx/mEhTPpnAL1ZAYFlvHD7rLK839LLKQzqEQMFJfGrrOHItN4ZQqA==} + '@rollup/rollup-win32-ia32-msvc@4.39.0': + resolution: {integrity: sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.38.0': - resolution: {integrity: sha512-jjqy3uWlecfB98Psxb5cD6Fny9Fupv9LrDSPTQZUROqjvZmcCqNu4UMl7qqhlUUGpwiAkotj6GYu4SZdcr/nLw==} + '@rollup/rollup-win32-x64-msvc@4.39.0': + resolution: {integrity: sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==} cpu: [x64] os: [win32] @@ -1131,8 +1131,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001707: - resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==} + caniuse-lite@1.0.30001710: + resolution: {integrity: sha512-B5C0I0UmaGqHgo5FuqJ7hBd4L57A4dDD+Xi+XX1nXOoxGeDdY4Ko38qJYOyqznBVJEqON5p8P1x5zRR3+rsnxA==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1237,8 +1237,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.128: - resolution: {integrity: sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==} + electron-to-chromium@1.5.132: + resolution: {integrity: sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==} entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} @@ -1977,8 +1977,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - rollup@4.38.0: - resolution: {integrity: sha512-5SsIRtJy9bf1ErAOiFMFzl64Ex9X5V7bnJ+WlFMb+zmP459OSWCEG7b0ERZ+PEU7xPt4OG3RHbrp1LJlXxYTrw==} + rollup@4.39.0: + resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2373,8 +2373,8 @@ packages: '@vite-pwa/assets-generator': optional: true - vite@6.1.3: - resolution: {integrity: sha512-JMnf752ldN0UhZoPYXuWiRPsC2Z5hPy9JeUwfNSPBY8TyFZbSHRE1f6/WA8umOEJp0EN3zTddgNNSLT6Fc10UQ==} + vite@6.1.4: + resolution: {integrity: sha512-VzONrF/qqEg/JBwHXBJdVSmBZBhwiPGinyUb0SQLByqQwi6o8UvX5TWLkpvkq3tvN8Cr273ieZDt36CGwWRMvA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -3398,64 +3398,64 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/rollup-android-arm-eabi@4.38.0': + '@rollup/rollup-android-arm-eabi@4.39.0': optional: true - '@rollup/rollup-android-arm64@4.38.0': + '@rollup/rollup-android-arm64@4.39.0': optional: true - '@rollup/rollup-darwin-arm64@4.38.0': + '@rollup/rollup-darwin-arm64@4.39.0': optional: true - '@rollup/rollup-darwin-x64@4.38.0': + '@rollup/rollup-darwin-x64@4.39.0': optional: true - '@rollup/rollup-freebsd-arm64@4.38.0': + '@rollup/rollup-freebsd-arm64@4.39.0': optional: true - '@rollup/rollup-freebsd-x64@4.38.0': + '@rollup/rollup-freebsd-x64@4.39.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.38.0': + '@rollup/rollup-linux-arm-gnueabihf@4.39.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.38.0': + '@rollup/rollup-linux-arm-musleabihf@4.39.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.38.0': + '@rollup/rollup-linux-arm64-gnu@4.39.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.38.0': + '@rollup/rollup-linux-arm64-musl@4.39.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.38.0': + '@rollup/rollup-linux-loongarch64-gnu@4.39.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.38.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.38.0': + '@rollup/rollup-linux-riscv64-gnu@4.39.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.38.0': + '@rollup/rollup-linux-riscv64-musl@4.39.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.38.0': + '@rollup/rollup-linux-s390x-gnu@4.39.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.38.0': + '@rollup/rollup-linux-x64-gnu@4.39.0': optional: true - '@rollup/rollup-linux-x64-musl@4.38.0': + '@rollup/rollup-linux-x64-musl@4.39.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.38.0': + '@rollup/rollup-win32-arm64-msvc@4.39.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.38.0': + '@rollup/rollup-win32-ia32-msvc@4.39.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.38.0': + '@rollup/rollup-win32-x64-msvc@4.39.0': optional: true '@surma/rollup-plugin-off-main-thread@2.2.3': @@ -3477,9 +3477,9 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@vitejs/plugin-vue@5.2.1(vite@6.1.3(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13)': + '@vitejs/plugin-vue@5.2.1(vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13)': dependencies: - vite: 6.1.3(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) vue: 3.5.13 '@vue/compiler-core@3.5.13': @@ -3645,8 +3645,8 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001707 - electron-to-chromium: 1.5.128 + caniuse-lite: 1.0.30001710 + electron-to-chromium: 1.5.132 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -3680,7 +3680,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001707: {} + caniuse-lite@1.0.30001710: {} chalk@4.1.2: dependencies: @@ -3773,7 +3773,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.128: {} + electron-to-chromium@1.5.132: {} entities@4.5.0: {} @@ -4587,30 +4587,30 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.38.0: + rollup@4.39.0: dependencies: '@types/estree': 1.0.7 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.38.0 - '@rollup/rollup-android-arm64': 4.38.0 - '@rollup/rollup-darwin-arm64': 4.38.0 - '@rollup/rollup-darwin-x64': 4.38.0 - '@rollup/rollup-freebsd-arm64': 4.38.0 - '@rollup/rollup-freebsd-x64': 4.38.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.38.0 - '@rollup/rollup-linux-arm-musleabihf': 4.38.0 - '@rollup/rollup-linux-arm64-gnu': 4.38.0 - '@rollup/rollup-linux-arm64-musl': 4.38.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.38.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.38.0 - '@rollup/rollup-linux-riscv64-gnu': 4.38.0 - '@rollup/rollup-linux-riscv64-musl': 4.38.0 - '@rollup/rollup-linux-s390x-gnu': 4.38.0 - '@rollup/rollup-linux-x64-gnu': 4.38.0 - '@rollup/rollup-linux-x64-musl': 4.38.0 - '@rollup/rollup-win32-arm64-msvc': 4.38.0 - '@rollup/rollup-win32-ia32-msvc': 4.38.0 - '@rollup/rollup-win32-x64-msvc': 4.38.0 + '@rollup/rollup-android-arm-eabi': 4.39.0 + '@rollup/rollup-android-arm64': 4.39.0 + '@rollup/rollup-darwin-arm64': 4.39.0 + '@rollup/rollup-darwin-x64': 4.39.0 + '@rollup/rollup-freebsd-arm64': 4.39.0 + '@rollup/rollup-freebsd-x64': 4.39.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.39.0 + '@rollup/rollup-linux-arm-musleabihf': 4.39.0 + '@rollup/rollup-linux-arm64-gnu': 4.39.0 + '@rollup/rollup-linux-arm64-musl': 4.39.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.39.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.39.0 + '@rollup/rollup-linux-riscv64-gnu': 4.39.0 + '@rollup/rollup-linux-riscv64-musl': 4.39.0 + '@rollup/rollup-linux-s390x-gnu': 4.39.0 + '@rollup/rollup-linux-x64-gnu': 4.39.0 + '@rollup/rollup-linux-x64-musl': 4.39.0 + '@rollup/rollup-win32-arm64-msvc': 4.39.0 + '@rollup/rollup-win32-ia32-msvc': 4.39.0 + '@rollup/rollup-win32-x64-msvc': 4.39.0 fsevents: 2.3.3 rxjs@7.8.2: @@ -5001,22 +5001,22 @@ snapshots: varint@6.0.0: {} - vite-plugin-pwa@0.21.1(vite@6.1.3(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@0.21.1(vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.4.0 pretty-bytes: 6.1.1 tinyglobby: 0.2.12 - vite: 6.1.3(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) workbox-build: 7.3.0 workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite@6.1.3(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0): + vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.5.3 - rollup: 4.38.0 + rollup: 4.39.0 optionalDependencies: fsevents: 2.3.3 sass-embedded: 1.85.0 From 933e7a099107554c1f95669e3d3fe924a6492579 Mon Sep 17 00:00:00 2001 From: Bastien Wirtz Date: Sat, 5 Apr 2025 14:38:28 +0200 Subject: [PATCH 002/105] Release version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f35c360..3d3a8e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homer", - "version": "25.03.3", + "version": "25.04.1", "type": "module", "scripts": { "dev": "vite", From d15ebb9d09a8462897b2a30cccc2f89105c2f3fd Mon Sep 17 00:00:00 2001 From: Molham Al Nasr Date: Wed, 9 Apr 2025 12:01:06 +0200 Subject: [PATCH 003/105] Markdown-linter hates the trailing-spaces. avoid warnings in editors --- docs/customservices.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/customservices.md b/docs/customservices.md index 2423738..a92b8af 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -228,7 +228,7 @@ To enable cors on HomeAssistant, edit your `configuration.yml` and add the IP of ## Immich -The Immich service displays stats from your Immich server. +The Immich service displays stats from your Immich server. The Immich server must be running at least version 1.118.0 for the correct api endpoint to work. ```yaml @@ -282,10 +282,10 @@ If you are using an older version of Radarr or Sonarr which don't support the ne ## Linkding -This integration makes it possible to query Linkding and list multiple results from Linkding. -Linkding has to be configured with CORS enabled. Linkding does not support that, but a reverse proxy in front can fix that. -For example if you use Traefik, documentation about that is here: https://doc.traefik.io/traefik/middlewares/http/headers/#cors-headers -Examples for various servers can be found at https://enable-cors.org/server.html. +This integration makes it possible to query Linkding and list multiple results from Linkding. +Linkding has to be configured with CORS enabled. Linkding does not support that, but a reverse proxy in front can fix that. +For example if you use Traefik, documentation about that is here: https://doc.traefik.io/traefik/middlewares/http/headers/#cors-headers +Examples for various servers can be found at https://enable-cors.org/server.html. This integration supports at max 15 results from Linkding. But you can add it multiple times to you dashboard with different queries to retrieve what you need. @@ -315,8 +315,8 @@ shows if Matrix Server is online, offline ## Mealie -First off make sure to remove an existing `subtitle` as it will take precedence if set. -Setting `type: "Mealie"` will then show the number of recipes Mealie is keeping organized or the planned meal for today if one is planned. You will +First off make sure to remove an existing `subtitle` as it will take precedence if set. +Setting `type: "Mealie"` will then show the number of recipes Mealie is keeping organized or the planned meal for today if one is planned. You will have to set an API key in the field `apikey` which can be created in your Mealie installation. The API page can be found: Click on hamburger menu -> Click on your profile -> Click on "Manage your API Tokens" ```yaml From 4a05f0d1130278bccd8e0f6d9a89a12dbc009446 Mon Sep 17 00:00:00 2001 From: Molham Al Nasr Date: Wed, 9 Apr 2025 12:02:37 +0200 Subject: [PATCH 004/105] Markdown-linter hates the Bare URLs. avoid warnings in editors --- docs/customservices.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/customservices.md b/docs/customservices.md index a92b8af..c75bf06 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -284,8 +284,8 @@ If you are using an older version of Radarr or Sonarr which don't support the ne This integration makes it possible to query Linkding and list multiple results from Linkding. Linkding has to be configured with CORS enabled. Linkding does not support that, but a reverse proxy in front can fix that. -For example if you use Traefik, documentation about that is here: https://doc.traefik.io/traefik/middlewares/http/headers/#cors-headers -Examples for various servers can be found at https://enable-cors.org/server.html. +For example if you use Traefik, documentation about that is here: +Examples for various servers can be found at . This integration supports at max 15 results from Linkding. But you can add it multiple times to you dashboard with different queries to retrieve what you need. @@ -573,7 +573,7 @@ listed in rTorrent. The service communicates with the rTorrent XML-RPC interface to be accessible from the browser. Please consult [the instructions](https://github.com/rakshasa/rtorrent-doc/blob/master/RPC-Setup-XMLRPC.md) for setting up rTorrent and make sure the correct CORS-settings are applied. Examples for various -servers can be found at https://enable-cors.org/server.html. +servers can be found at . ```yaml - name: "rTorrent" From 7cc7effd2e568c2396aebd3aad37b5a0ec330c9c Mon Sep 17 00:00:00 2001 From: Molham Al Nasr Date: Wed, 9 Apr 2025 12:05:16 +0200 Subject: [PATCH 005/105] add blanks around headings. avoid warnings in editors --- docs/customservices.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/customservices.md b/docs/customservices.md index c75bf06..1148a0a 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -706,6 +706,7 @@ The following configuration is available for the UptimeKuma service. Needs v1.13 slug: "myCustomDashboard" # Defaults to "default" if not provided. type: "UptimeKuma" ``` + ## Vaultwarden This service displays a version string instead of a subtitle. The indicator From 04164acff3298b6195fd057117a4c0c51f62c18d Mon Sep 17 00:00:00 2001 From: Molham Al Nasr Date: Wed, 9 Apr 2025 12:05:50 +0200 Subject: [PATCH 006/105] Markdown-linter hates the trailing-punctuation. avoid warnings in editors --- docs/customservices.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/customservices.md b/docs/customservices.md index 1148a0a..32d9b22 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -485,7 +485,9 @@ This service displays info about the total number of containers managed by your In order to use it, you must be using Portainer version 1.11 or later. Generate an access token from the UI and pass it to the apikey field. By default, every connected environments will be checked. To select specific ones, add an "environments" entry which can be a simple string or an array containing all the selected environments name. -### New features: + +### New features + Displays the Portainer version from /api/status Shows online/offline status depending on API reachability From fc10b5c512d413cc803d646d256cc3412175fba7 Mon Sep 17 00:00:00 2001 From: Molham Al Nasr Date: Wed, 9 Apr 2025 12:10:06 +0200 Subject: [PATCH 007/105] Markdown-linter consider as HTML and it shows the wrong text in a preview mode --- docs/customservices.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/customservices.md b/docs/customservices.md index 32d9b22..4b041a3 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -522,10 +522,10 @@ This service displays status information of a Proxmox node (VMs running and disk The API Token (or the user assigned to that token if not separated permissions is checked) are this: -| Path | Permission | Comments | -|--------------------|------------|-------------------------------------------------------------------| -| /nodes/ | Sys.Audit | | -| /vms/ | VM.Audit | You need to have this permission on any VM you want to be counted | +| Path | Permission | Comments | +|---------------------|------------|-------------------------------------------------------------------| +| /nodes/\ | Sys.Audit | | +| /vms/\ | VM.Audit | You need to have this permission on any VM you want to be counted | It is highly recommended that you create and API Token with only these permissions on a read-only mode. From bf531404f590d5f3d085e1d0061e0e98603722eb Mon Sep 17 00:00:00 2001 From: Molham Al Nasr Date: Wed, 9 Apr 2025 12:10:57 +0200 Subject: [PATCH 008/105] fix typo --- docs/customservices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/customservices.md b/docs/customservices.md index 4b041a3..545035a 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -297,7 +297,7 @@ This integration supports at max 15 results from Linkding. But you can add it mu type: "Linkding" # Maximum number of items returned by Linkding, minimal 1 and max 15 limit: 10 - # query to do on Linkding. User #tagname to search for tags + # query to do on Linkding. Use #tagname to search for tags query: "#ToDo #Homer" ``` From deec0aaa68425b8a049b4fc6146956efebc68af9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 14:39:42 +0000 Subject: [PATCH 009/105] chore(deps-dev): bump vite from 6.1.4 to 6.1.5 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.1.4 to 6.1.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.1.5/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.1.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.1.5 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 3d3a8e1..0b2722a 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "http-server": "^14.1.1", "prettier": "^3.5.2", "sass-embedded": "^1.85.0", - "vite": "^6.1.4", + "vite": "^6.1.5", "vite-plugin-pwa": "^0.21.1" }, "license": "Apache-2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f01c8ec..8e3724b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,7 +29,7 @@ importers: version: 9.21.0 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13) + version: 5.2.1(vite@6.1.5(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13) '@vue/eslint-config-prettier': specifier: ^10.2.0 version: 10.2.0(eslint@9.21.0)(prettier@3.5.2) @@ -52,11 +52,11 @@ importers: specifier: ^1.85.0 version: 1.85.0 vite: - specifier: ^6.1.4 - version: 6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.1.5 + version: 6.1.5(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) vite-plugin-pwa: specifier: ^0.21.1 - version: 0.21.1(vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 0.21.1(vite@6.1.5(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0) packages: @@ -1131,8 +1131,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001710: - resolution: {integrity: sha512-B5C0I0UmaGqHgo5FuqJ7hBd4L57A4dDD+Xi+XX1nXOoxGeDdY4Ko38qJYOyqznBVJEqON5p8P1x5zRR3+rsnxA==} + caniuse-lite@1.0.30001713: + resolution: {integrity: sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1237,8 +1237,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.132: - resolution: {integrity: sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==} + electron-to-chromium@1.5.136: + resolution: {integrity: sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==} entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} @@ -2373,8 +2373,8 @@ packages: '@vite-pwa/assets-generator': optional: true - vite@6.1.4: - resolution: {integrity: sha512-VzONrF/qqEg/JBwHXBJdVSmBZBhwiPGinyUb0SQLByqQwi6o8UvX5TWLkpvkq3tvN8Cr273ieZDt36CGwWRMvA==} + vite@6.1.5: + resolution: {integrity: sha512-H/gAFpW5I4ow/8Bz4t4i8k2St5JThMlqUT8gsH5v0rkqbqpf4qLrFozjq/V2KG1iOXF+3Ko9mlG0kmGerktWJw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -3477,9 +3477,9 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@vitejs/plugin-vue@5.2.1(vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13)': + '@vitejs/plugin-vue@5.2.1(vite@6.1.5(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13)': dependencies: - vite: 6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.1.5(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) vue: 3.5.13 '@vue/compiler-core@3.5.13': @@ -3645,8 +3645,8 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001710 - electron-to-chromium: 1.5.132 + caniuse-lite: 1.0.30001713 + electron-to-chromium: 1.5.136 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -3680,7 +3680,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001710: {} + caniuse-lite@1.0.30001713: {} chalk@4.1.2: dependencies: @@ -3773,7 +3773,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.132: {} + electron-to-chromium@1.5.136: {} entities@4.5.0: {} @@ -5001,18 +5001,18 @@ snapshots: varint@6.0.0: {} - vite-plugin-pwa@0.21.1(vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@0.21.1(vite@6.1.5(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.4.0 pretty-bytes: 6.1.1 tinyglobby: 0.2.12 - vite: 6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.1.5(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) workbox-build: 7.3.0 workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite@6.1.4(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0): + vite@6.1.5(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.5.3 From 4b63b7784f8741504b07ee1530f329cff766f313 Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Sun, 30 Mar 2025 16:03:41 +0200 Subject: [PATCH 010/105] Added Plex Service --- src/components/services/Plex.vue | 157 +++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 src/components/services/Plex.vue diff --git a/src/components/services/Plex.vue b/src/components/services/Plex.vue new file mode 100644 index 0000000..c5b10f8 --- /dev/null +++ b/src/components/services/Plex.vue @@ -0,0 +1,157 @@ + + + + + From 1ecbef0aca2ac4c7c0ec5b2d4444ba3c2cf3dd9e Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Sun, 30 Mar 2025 16:13:33 +0200 Subject: [PATCH 011/105] Added Docker Socket Proxy service --- src/components/services/DockerSocketProxy.vue | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/components/services/DockerSocketProxy.vue diff --git a/src/components/services/DockerSocketProxy.vue b/src/components/services/DockerSocketProxy.vue new file mode 100644 index 0000000..eba4db2 --- /dev/null +++ b/src/components/services/DockerSocketProxy.vue @@ -0,0 +1,98 @@ + + + + + From 5c4b5e805e84ef25d2d6b3fc6d0bbd2d1639cd61 Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Sun, 30 Mar 2025 16:24:06 +0200 Subject: [PATCH 012/105] Added documentation for the services --- docs/customservices.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/customservices.md b/docs/customservices.md index 545035a..f35e275 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -105,6 +105,18 @@ Configuration example: clipboard: "this text will be copied to your clipboard" ``` +## Docker Socker Proxy + +This service display the number of running, stopped and containers that have errors. +It calls the API of DOcker Socket Proxy + +```yaml +- name: Docker + type: "DockerSocketProxy" + endpoint: "http://192.168.0.151:2375" + +``` + ## Docuseal This service displays a version string instead of a subtitle. Example configuration: @@ -479,6 +491,19 @@ This card checks if the target link is available. All you need is to set the `ty # updateInterval: 5000 # (Optional) Interval (in ms) for updating ping status ``` +## Plex + +This card shows the current active streams and the number of movies and series that this Plex instance has. + +```yaml +- name: Plex + type: "Plex" + logo: "assets/tools/sample.png" + token: "<---insert-plex-token-here--->" # see here how to get the plex token: https://www.plexopedia.com/plex-media-server/general/plex-token/ + url: "http://192.168.0.151:32400/web" + endpoint: "http://192.168.0.151:32400" +``` + ## Portainer This service displays info about the total number of containers managed by your Portainer instance. From 5976f8f56181e4361ac3aa44bb56b6613d2f9830 Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Sun, 30 Mar 2025 16:26:44 +0200 Subject: [PATCH 013/105] Edited the anchors --- docs/customservices.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/customservices.md b/docs/customservices.md index f35e275..9e4d9b1 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -15,6 +15,7 @@ within Homer: - [AdGuard Home](#adguard-home) - [CopyToClipboard](#copy-to-clipboard) - [Docuseal](#docuseal) +- [Docker Socket Proxy](#docker-socket-proxy) - [Emby / Jellyfin](#emby--jellyfin) - [FreshRSS](#freshrss) - [Gitea / Forgejo](#gitea--forgejo) @@ -39,6 +40,7 @@ within Homer: - [PiAlert](#pialert) - [PiHole](#pihole) - [Ping](#ping) +- [Plex](#plex) - [Portainer](#portainer) - [Prometheus](#prometheus) - [Proxmox](#proxmox) From 5de2344dc245429824acca35719fa165d25e08d8 Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Sun, 30 Mar 2025 18:19:46 +0200 Subject: [PATCH 014/105] Update dockerhub.yml --- .github/workflows/dockerhub.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml index 4b67502..c5a72e6 100644 --- a/.github/workflows/dockerhub.yml +++ b/.github/workflows/dockerhub.yml @@ -39,8 +39,7 @@ jobs: with: push: true tags: | - b4bz/homer:latest - b4bz/homer:${{ github.ref_name }} + marcokreeft/homer:latest ghcr.io/${{ github.repository }}:latest ghcr.io/${{ github.repository }}:${{ github.ref_name }} platforms: linux/amd64,linux/arm/v7,linux/arm/v6,linux/arm64 From 68441f2b812d0bf1ee51535d118eff9abf41f9cc Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Sun, 30 Mar 2025 18:21:52 +0200 Subject: [PATCH 015/105] Update dockerhub.yml --- .github/workflows/dockerhub.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml index c5a72e6..4b67502 100644 --- a/.github/workflows/dockerhub.yml +++ b/.github/workflows/dockerhub.yml @@ -39,7 +39,8 @@ jobs: with: push: true tags: | - marcokreeft/homer:latest + b4bz/homer:latest + b4bz/homer:${{ github.ref_name }} ghcr.io/${{ github.repository }}:latest ghcr.io/${{ github.repository }}:${{ github.ref_name }} platforms: linux/amd64,linux/arm/v7,linux/arm/v6,linux/arm64 From ef9563022557e20aafd897807bc2ec5e12534013 Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Sun, 30 Mar 2025 18:42:27 +0200 Subject: [PATCH 016/105] Added download and upload speed to Sabnzbd --- src/components/services/SABnzbd.vue | 62 ++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/src/components/services/SABnzbd.vue b/src/components/services/SABnzbd.vue index 164cb39..407de0e 100644 --- a/src/components/services/SABnzbd.vue +++ b/src/components/services/SABnzbd.vue @@ -16,12 +16,45 @@ > + From 28ad80369ff4733d448cdf8bcb08010f3979b0f8 Mon Sep 17 00:00:00 2001 From: Molham Date: Sat, 19 Apr 2025 14:19:28 +0200 Subject: [PATCH 026/105] add support to dynamic interval time for polling the status --- docs/customservices.md | 3 ++- src/components/services/PiHole.vue | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/customservices.md b/docs/customservices.md index fc6d318..ac77ba3 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -468,10 +468,11 @@ The following configuration is available for the PiHole service. - name: "Pi-hole" logo: "assets/tools/sample.png" # subtitle: "Network-wide Ad Blocking" # optional, if no subtitle is defined, PiHole statistics will be shown - url: "http://192.168.0.151/admin" + url: "http://192.168.0.151/admin" # For v6 API, do not include /admin in the URL apikey: "<---insert-api-key-here--->" # optional, needed if web interface is password protected type: "PiHole" apiVersion: 5 # optional, defaults to 5. Use 6 if your PiHole instance uses API v6 + checkInterval: 3000 # optional, defaults to 300000. interval in ms to check Pi-hole status ``` **Remarks:** diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index 004f382..9a20d42 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -68,8 +68,12 @@ export default { methods: { startStatusPolling: function () { this.fetchStatus(); - // Poll every 5 minutes - this.pollInterval = setInterval(this.fetchStatus, 300000); + // Set the interval to the checkInterval or default to 5 minutes + const interval = parseInt(this.item.checkInterval, 10) || 300000; + if (this.item.checkInterval < 1000) { + this.item.checkInterval = 1000; + } + this.pollInterval = setInterval(this.fetchStatus, interval); }, stopStatusPolling: function () { if (this.pollInterval) { From 4684b23a8c46a49c27960c00ee3b1f3583d1b63f Mon Sep 17 00:00:00 2001 From: Molham Date: Sat, 19 Apr 2025 14:46:18 +0200 Subject: [PATCH 027/105] better handle errors and set the subtitle as a message holder for errors --- src/components/services/PiHole.vue | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index 9a20d42..a2b1ccf 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -42,7 +42,7 @@ export default { }), computed: { percentage: function () { - if (this.percent_blocked) { + if (typeof this.percent_blocked === 'number' && this.percent_blocked >= 0) { return this.percent_blocked.toFixed(1); } return ""; @@ -66,6 +66,11 @@ export default { } }, methods: { + handleError: function (error, status) { + console.error(error); + this.subtitle = error; + this.status = status; + }, startStatusPolling: function () { this.fetchStatus(); // Set the interval to the checkInterval or default to 5 minutes @@ -93,7 +98,7 @@ export default { } } } catch (e) { - console.error("Failed to load cached session:", e); + this.handleError(`Failed to load cached session: ${e}`, "error"); this.removeCacheSession(); } }, @@ -110,15 +115,14 @@ export default { method: 'DELETE' }); } catch (e) { - console.error("Failed to delete session:", e); + this.handleError(`Failed to delete session: ${e}`, "error"); } finally { this.removeCacheSession(); } }, authenticate: async function () { if (!this.item.apikey) { - console.error("API key is required for PiHole authentication"); - this.status = "disabled"; + this.handleError("API key is required for PiHole authentication", "disabled"); return false; } @@ -145,8 +149,7 @@ export default { } throw new Error("Invalid authentication response"); } catch (e) { - console.error("Authentication failed:", e); - this.status = "disabled"; + this.handleError(`Authentication failed: ${e}`, "disabled"); return false; } }, @@ -184,12 +187,11 @@ export default { throw new Error(`HTTP error: ${response.status}`); } } catch (e) { - console.error("Failed to fetch status:", e); - if (e.message.includes("HTTP error: 401") || e.message.includes("HTTP error: 403")) { + if (e.includes("HTTP error: 401") || e.includes("HTTP error: 403")) { this.removeCacheSession(); return this.retryWithDelay(); } - this.status = "disabled"; + this.handleError(`Failed to fetch status: ${e}`, "disabled"); this.removeCacheSession(); } }, @@ -214,8 +216,7 @@ export default { throw new Error(`HTTP error: ${response.status}`); } } catch (e) { - console.error("Failed to fetch v5 status:", e); - this.status = "error"; + this.handleError(`Failed to fetch v5 status: ${e}`, "error"); } }, } From 59b0ed76885fc07733e9cdb0814b9d3b25c0f69f Mon Sep 17 00:00:00 2001 From: Molham Date: Sat, 19 Apr 2025 14:48:10 +0200 Subject: [PATCH 028/105] set this.status after checking the response is OK --- src/components/services/PiHole.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index a2b1ccf..353ccd0 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -170,11 +170,11 @@ export default { const url = `${this.endpoint}/${`api/stats/summary?sid=${encodeURIComponent(this.sessionId)}`.replace(/^\/+/, '')}`; const response = await fetch(url); - this.status = "enabled"; if (response.ok) { const result = await response.json(); if (result?.queries?.percent_blocked !== undefined) { + this.status = "enabled"; this.percent_blocked = result.queries.percent_blocked; this.retryCount = 0; } else { From 07207dca5521c7ff51982cfb3db22409b5439890 Mon Sep 17 00:00:00 2001 From: Molham Date: Sat, 19 Apr 2025 15:19:08 +0200 Subject: [PATCH 029/105] reset the api_v5 function to fetch the remote api with this.fetch --- src/components/services/PiHole.vue | 37 ++++++++++-------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index 353ccd0..bb9afc0 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -42,7 +42,7 @@ export default { }), computed: { percentage: function () { - if (typeof this.percent_blocked === 'number' && this.percent_blocked >= 0) { + if (this.percent_blocked) { return this.percent_blocked.toFixed(1); } return ""; @@ -187,37 +187,24 @@ export default { throw new Error(`HTTP error: ${response.status}`); } } catch (e) { - if (e.includes("HTTP error: 401") || e.includes("HTTP error: 403")) { + if (e.message.includes("HTTP error: 401") || e.message.includes("HTTP error: 403")) { this.removeCacheSession(); return this.retryWithDelay(); } - this.handleError(`Failed to fetch status: ${e}`, "disabled"); + this.handleError(`Failed to fetch status: ${e.message || e}`, "disabled"); this.removeCacheSession(); } }, async fetchStatus_v5() { - try { - const params = {}; - if (this.item.apikey) { - params.auth = this.item.apikey; - } - const url = new URL(`${this.endpoint}/api.php`); - Object.keys(params).forEach(key => url.searchParams.append(key, params[key])); - - const response = await fetch(url); - this.status = response.status.toString(); - - if (response.ok) { - const result = await response.json(); - if (result?.ads_percentage_today !== undefined) { - this.percent_blocked = result.ads_percentage_today; - } - } else { - throw new Error(`HTTP error: ${response.status}`); - } - } catch (e) { - this.handleError(`Failed to fetch v5 status: ${e}`, "error"); - } + const authQueryParams = this.item.apikey + ? `?summaryRaw&auth=${this.item.apikey}` + : ""; + const result = await this.fetch(`/api.php${authQueryParams}`).catch((e) => + this.handleError(`Failed to fetch status: ${e}`, "disabled"), + ); + + this.status = result.status; + this.percent_blocked = result.ads_percentage_today; }, } }; From 9e314c960b2612163dd3320c347deebec4513e51 Mon Sep 17 00:00:00 2001 From: Molham Date: Sat, 19 Apr 2025 15:31:19 +0200 Subject: [PATCH 030/105] fix integration test --- src/components/services/PiHole.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index bb9afc0..afbc5c6 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -39,6 +39,8 @@ export default { retryCount: 0, maxRetries: 3, retryDelay: 5000, + localCheckInterval: 1000, // Default value or a fallback + pollInterval: null, }), computed: { percentage: function () { @@ -53,6 +55,8 @@ export default { }, created() { if (parseInt(this.item.apiVersion, 10) === 6) { + // Set the interval to the checkInterval or default to 5 minutes + this.localCheckInterval = parseInt(this.item.checkInterval, 10) || 300000; this.loadCachedSession(); this.startStatusPolling(); } else { @@ -73,12 +77,10 @@ export default { }, startStatusPolling: function () { this.fetchStatus(); - // Set the interval to the checkInterval or default to 5 minutes - const interval = parseInt(this.item.checkInterval, 10) || 300000; - if (this.item.checkInterval < 1000) { - this.item.checkInterval = 1000; + if (this.localCheckInterval < 1000) { + this.localCheckInterval = 1000; } - this.pollInterval = setInterval(this.fetchStatus, interval); + this.pollInterval = setInterval(this.fetchStatus, this.localCheckInterval); }, stopStatusPolling: function () { if (this.pollInterval) { From ad76093a389f799f029acba3b1d94afb21c55193 Mon Sep 17 00:00:00 2001 From: Molham Date: Sat, 19 Apr 2025 21:10:44 +0200 Subject: [PATCH 031/105] modify service.js mixin to accept one more parameter and return full response and use this.fetch in PiHole.vue --- src/components/services/PiHole.vue | 10 +++++++--- src/mixins/service.js | 6 +++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index afbc5c6..1703bf3 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -169,10 +169,14 @@ export default { const authenticated = await this.authenticate(); if (!authenticated) return; } + const options = { + method: "GET", + headers: { + 'Content-Type': 'application/json' + } + }; + const response = await this.fetch(`api/stats/summary?sid=${encodeURIComponent(this.sessionId)}`, options, false, true); - const url = `${this.endpoint}/${`api/stats/summary?sid=${encodeURIComponent(this.sessionId)}`.replace(/^\/+/, '')}`; - const response = await fetch(url); - if (response.ok) { const result = await response.json(); if (result?.queries?.percent_blocked !== undefined) { diff --git a/src/mixins/service.js b/src/mixins/service.js index d52fc29..f1e77bf 100644 --- a/src/mixins/service.js +++ b/src/mixins/service.js @@ -12,7 +12,7 @@ export default { } }, methods: { - fetch: function (path, init, json = true) { + fetch: function (path, init, json = true, returnFullResponse = false) { let options = {}; if (this.proxy?.useCredentials) { @@ -58,6 +58,10 @@ export default { ); } + if (returnFullResponse) { + return response; + } + return json ? response.json() : response.text(); }); }, From 42f3a3ee71e236f6a3871febbafd8a11a83fae85 Mon Sep 17 00:00:00 2001 From: Molham Date: Sun, 20 Apr 2025 00:58:37 +0200 Subject: [PATCH 032/105] reset the mixin service.js and make use of the actual error message from the current service.js --- src/components/services/PiHole.vue | 27 ++++++++++----------------- src/mixins/service.js | 6 +----- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index 1703bf3..654cd86 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -44,7 +44,7 @@ export default { }), computed: { percentage: function () { - if (this.percent_blocked) { + if (this.percent_blocked >= 0) { return this.percent_blocked.toFixed(1); } return ""; @@ -156,6 +156,7 @@ export default { } }, retryWithDelay: async function () { + console.log("Retrying authentication..."); if (this.retryCount < this.maxRetries) { this.retryCount++; await new Promise(resolve => setTimeout(resolve, this.retryDelay)); @@ -175,25 +176,17 @@ export default { 'Content-Type': 'application/json' } }; - const response = await this.fetch(`api/stats/summary?sid=${encodeURIComponent(this.sessionId)}`, options, false, true); + const response = await this.fetch(`api/stats/summary?sid=${encodeURIComponent(this.sessionId)}`); - if (response.ok) { - const result = await response.json(); - if (result?.queries?.percent_blocked !== undefined) { - this.status = "enabled"; - this.percent_blocked = result.queries.percent_blocked; - this.retryCount = 0; - } else { - throw new Error("Invalid response format"); - } - } else if (response.status === 401) { - this.removeCacheSession(); - return this.retryWithDelay(); - } else { - throw new Error(`HTTP error: ${response.status}`); + if (response?.queries?.percent_blocked === undefined) { + throw new Error("Invalid response format"); } + + this.status = "enabled"; + this.percent_blocked = response.queries.percent_blocked; + this.retryCount = 0; } catch (e) { - if (e.message.includes("HTTP error: 401") || e.message.includes("HTTP error: 403")) { + if (e.message.includes("401 error") || e.message.includes("403 error")) { this.removeCacheSession(); return this.retryWithDelay(); } diff --git a/src/mixins/service.js b/src/mixins/service.js index f1e77bf..d52fc29 100644 --- a/src/mixins/service.js +++ b/src/mixins/service.js @@ -12,7 +12,7 @@ export default { } }, methods: { - fetch: function (path, init, json = true, returnFullResponse = false) { + fetch: function (path, init, json = true) { let options = {}; if (this.proxy?.useCredentials) { @@ -58,10 +58,6 @@ export default { ); } - if (returnFullResponse) { - return response; - } - return json ? response.json() : response.text(); }); }, From 15f59b9e36aae7abf72ba1bd075a7e7617795c66 Mon Sep 17 00:00:00 2001 From: Molham Date: Sun, 20 Apr 2025 01:02:27 +0200 Subject: [PATCH 033/105] delete unused object --- src/components/services/PiHole.vue | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index 654cd86..55656e9 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -170,12 +170,6 @@ export default { const authenticated = await this.authenticate(); if (!authenticated) return; } - const options = { - method: "GET", - headers: { - 'Content-Type': 'application/json' - } - }; const response = await this.fetch(`api/stats/summary?sid=${encodeURIComponent(this.sessionId)}`); if (response?.queries?.percent_blocked === undefined) { From 347a3d062b08fcfd54fd9aefe75ab435375efdf5 Mon Sep 17 00:00:00 2001 From: Molham Date: Wed, 30 Apr 2025 13:59:01 +0200 Subject: [PATCH 034/105] remove deleteing the session over the API call when leaving the page --- src/components/services/PiHole.vue | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/components/services/PiHole.vue b/src/components/services/PiHole.vue index 55656e9..8ca67b8 100644 --- a/src/components/services/PiHole.vue +++ b/src/components/services/PiHole.vue @@ -66,7 +66,6 @@ export default { beforeDestroy() { if (parseInt(this.item.apiVersion, 10) === 6) { this.stopStatusPolling(); - this.deleteSession(); } }, methods: { @@ -109,19 +108,6 @@ export default { this.sessionId = null; this.sessionExpiry = null; }, - deleteSession: async function () { - if (!this.sessionId) return; - - try { - await this.fetch(`/api/auth/session/${encodeURIComponent(this.sessionId)}`, { - method: 'DELETE' - }); - } catch (e) { - this.handleError(`Failed to delete session: ${e}`, "error"); - } finally { - this.removeCacheSession(); - } - }, authenticate: async function () { if (!this.item.apikey) { this.handleError("API key is required for PiHole authentication", "disabled"); From acb304adeca43500c04be6c1e5e8465ea0ed3e88 Mon Sep 17 00:00:00 2001 From: Bastien Wirtz Date: Sun, 4 May 2025 14:15:57 +0200 Subject: [PATCH 035/105] deps update --- package.json | 8 ++++---- pnpm-lock.yaml | 38 +++++++++++++++++++------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index cec7286..54584ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homer", - "version": "25.04.1", + "version": "25.05.1", "type": "module", "scripts": { "dev": "vite", @@ -11,10 +11,10 @@ }, "dependencies": { "@fortawesome/fontawesome-free": "^6.7.2", - "bulma": "^1.0.3", + "bulma": "^1.0.4", "lodash.merge": "^4.6.2", "vue": "^3.5.13", - "yaml": "^2.7.0" + "yaml": "^2.7.1" }, "devDependencies": { "@eslint/js": "^9.21.0", @@ -30,7 +30,7 @@ "vite-plugin-pwa": "^0.21.1" }, "license": "Apache-2.0", - "packageManager": "pnpm@10.4.1+sha512.c753b6c3ad7afa13af388fa6d808035a008e30ea9993f58c6663e2bc5ff21679aa834db094987129aa4d488b86df57f7b634981b2f827cdcacc698cc0cfb88af", + "packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39", "pnpm": { "neverBuiltDependencies": [] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 24694e8..467bd5f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^6.7.2 version: 6.7.2 bulma: - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^1.0.4 + version: 1.0.4 lodash.merge: specifier: ^4.6.2 version: 4.6.2 @@ -21,15 +21,15 @@ importers: specifier: ^3.5.13 version: 3.5.13 yaml: - specifier: ^2.7.0 - version: 2.7.0 + specifier: ^2.7.1 + version: 2.7.1 devDependencies: '@eslint/js': specifier: ^9.21.0 version: 9.21.0 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13) + version: 5.2.1(vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.1))(vue@3.5.13) '@vue/eslint-config-prettier': specifier: ^10.2.0 version: 10.2.0(eslint@9.21.0)(prettier@3.5.2) @@ -53,10 +53,10 @@ importers: version: 1.85.0 vite: specifier: ^6.1.6 - version: 6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + version: 6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.1) vite-plugin-pwa: specifier: ^0.21.1 - version: 0.21.1(vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 0.21.1(vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.1))(workbox-build@7.3.0)(workbox-window@7.3.0) packages: @@ -1116,8 +1116,8 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - bulma@1.0.3: - resolution: {integrity: sha512-9eVXBrXwlU337XUXBjIIq7i88A+tRbJYAjXQjT/21lwam+5tpvKF0R7dCesre9N+HV9c6pzCNEPKrtgvBBes2g==} + bulma@1.0.4: + resolution: {integrity: sha512-Ffb6YGXDiZYX3cqvSbHWqQ8+LkX6tVoTcZuVB3lm93sbAVXlO0D6QlOTMnV6g18gILpAXqkG2z9hf9z4hCjz2g==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -2523,8 +2523,8 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.7.0: - resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + yaml@2.7.1: + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} engines: {node: '>= 14'} hasBin: true @@ -3480,9 +3480,9 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@vitejs/plugin-vue@5.2.1(vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13)': + '@vitejs/plugin-vue@5.2.1(vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.1))(vue@3.5.13)': dependencies: - vite: 6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.1) vue: 3.5.13 '@vue/compiler-core@3.5.13': @@ -3657,7 +3657,7 @@ snapshots: buffer-from@1.1.2: {} - bulma@1.0.3: {} + bulma@1.0.4: {} call-bind-apply-helpers@1.0.2: dependencies: @@ -4998,18 +4998,18 @@ snapshots: varint@6.0.0: {} - vite-plugin-pwa@0.21.1(vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@0.21.1(vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.1))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.4.0 pretty-bytes: 6.1.1 tinyglobby: 0.2.12 - vite: 6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.1) workbox-build: 7.3.0 workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.0): + vite@6.1.6(sass-embedded@1.85.0)(terser@5.39.0)(yaml@2.7.1): dependencies: esbuild: 0.24.2 postcss: 8.5.3 @@ -5018,7 +5018,7 @@ snapshots: fsevents: 2.3.3 sass-embedded: 1.85.0 terser: 5.39.0 - yaml: 2.7.0 + yaml: 2.7.1 vue-eslint-parser@9.4.3(eslint@9.21.0): dependencies: @@ -5219,6 +5219,6 @@ snapshots: yallist@3.1.1: {} - yaml@2.7.0: {} + yaml@2.7.1: {} yocto-queue@0.1.0: {} From a5eeb1e44e5bc550f81ef95b8dd8f44075e1b326 Mon Sep 17 00:00:00 2001 From: Bastien Wirtz Date: Sun, 4 May 2025 15:12:06 +0200 Subject: [PATCH 036/105] feat(smart-cards): handle dynamic loading error --- src/assets/components/base.scss | 4 ++++ src/components/Service.vue | 10 ++++++---- src/components/services/OpenWeather.vue | 12 ++++++++---- src/components/services/_error.vue | 22 ++++++++++++++++++++++ 4 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 src/components/services/_error.vue diff --git a/src/assets/components/base.scss b/src/assets/components/base.scss index 87c7455..b88211e 100644 --- a/src/assets/components/base.scss +++ b/src/assets/components/base.scss @@ -55,6 +55,10 @@ background-color: var(--card-background); } } + .component-error .card { + border: 1px solid rgba(255, 33, 33, 0.664); + background-color: rgba(255, 58, 58, 0.24); + } .message { .message-body { diff --git a/src/components/Service.vue b/src/components/Service.vue index 405bf10..f250aae 100644 --- a/src/components/Service.vue +++ b/src/components/Service.vue @@ -5,7 +5,7 @@ From 1afa0afd00428f320fa8dd5108d5caee51e4f245 Mon Sep 17 00:00:00 2001 From: Bastien Wirtz Date: Sun, 4 May 2025 15:15:12 +0200 Subject: [PATCH 037/105] chore(lint): Apply lint --- src/components/services/DockerSocketProxy.vue | 28 ++++++-- src/components/services/PiHole.vue | 68 ++++++++++++------ src/components/services/Plex.vue | 70 +++++++++++-------- src/components/services/SABnzbd.vue | 3 +- 4 files changed, 109 insertions(+), 60 deletions(-) diff --git a/src/components/services/DockerSocketProxy.vue b/src/components/services/DockerSocketProxy.vue index ab33709..444f11a 100644 --- a/src/components/services/DockerSocketProxy.vue +++ b/src/components/services/DockerSocketProxy.vue @@ -2,16 +2,28 @@