From 8db8e86b14934b7790ffcd330f3b1f69727f68bb Mon Sep 17 00:00:00 2001 From: arabcoders Date: Tue, 1 Jul 2025 18:05:01 +0300 Subject: [PATCH 1/4] updated yt-dlp to 2025.06.30 --- uv.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/uv.lock b/uv.lock index 326c60ec..4da78855 100644 --- a/uv.lock +++ b/uv.lock @@ -1370,11 +1370,11 @@ wheels = [ [[package]] name = "yt-dlp" -version = "2025.6.25" +version = "2025.6.30" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/88/77/5e86a5345fe1cf5bad022a1b7323c9934c6a867e886fdc0cae44de8a0589/yt_dlp-2025.6.25.tar.gz", hash = "sha256:242b648e1a18ab04bdd4cc175a317fe8ec3ad7d0175eee9f981912624b3d6c8b", size = 3036249 } +sdist = { url = "https://files.pythonhosted.org/packages/23/9c/ff64c2fed7909f43a9a0aedb7395c65404e71c2439198764685a6e3b3059/yt_dlp-2025.6.30.tar.gz", hash = "sha256:6d0ae855c0a55bfcc28dffba804ec8525b9b955d34a41191a1561a4cec03d8bd", size = 3034364 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/fc/cb3be70e9dd354d6f6ecb2200011a1d05a3a9c219e1adacfd5de77440d79/yt_dlp-2025.6.25-py3-none-any.whl", hash = "sha256:1eb31c9a47d56c7433be23a6ae084c640bd4e14961ad43076927ef05280871ea", size = 3282762 }, + { url = "https://files.pythonhosted.org/packages/14/41/2f048ae3f6d0fa2e59223f08ba5049dbcdac628b0a9f9deac722dd9260a5/yt_dlp-2025.6.30-py3-none-any.whl", hash = "sha256:541becc29ed7b7b3a08751c0a66da4b7f8ee95cb81066221c78e83598bc3d1f3", size = 3279333 }, ] [[package]] From 1d6f8104539c17b6d2bc78cb2309c2d4f8b291d7 Mon Sep 17 00:00:00 2001 From: arabcoders Date: Tue, 1 Jul 2025 18:05:16 +0300 Subject: [PATCH 2/4] updated frontend packages --- ui/package.json | 4 +- ui/pnpm-lock.yaml | 506 +++++++++++++++++++++++----------------------- 2 files changed, 259 insertions(+), 251 deletions(-) diff --git a/ui/package.json b/ui/package.json index 3cedf51f..75fb9823 100644 --- a/ui/package.json +++ b/ui/package.json @@ -12,13 +12,13 @@ "web-types": "./web-types.json", "dependencies": { "@pinia/nuxt": "^0.11.1", - "@sentry/nuxt": "^9.33.0", + "@sentry/nuxt": "^9.34.0", "@vueuse/core": "^13.4.0", "@vueuse/nuxt": "^13.4.0", "@xterm/addon-fit": "^0.10.0", "@xterm/xterm": "^5.5.0", "cron-parser": "^5.3.0", - "cronstrue": "^2.61.0", + "cronstrue": "^3.0.0", "floating-vue": "^5.2.2", "hls.js": "^1.6.5", "moment": "^2.30.1", diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml index 6b4f289a..4bc3f4b5 100644 --- a/ui/pnpm-lock.yaml +++ b/ui/pnpm-lock.yaml @@ -12,14 +12,14 @@ importers: specifier: ^0.11.1 version: 0.11.1(magicast@0.3.5)(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))) '@sentry/nuxt': - specifier: ^9.33.0 - version: 9.33.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.4)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0))(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))(rollup@4.44.1)(vue@3.5.17(typescript@5.8.3)) + specifier: ^9.34.0 + version: 9.34.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.8)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0))(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))(rollup@4.44.1)(vue@3.5.17(typescript@5.8.3)) '@vueuse/core': specifier: ^13.4.0 version: 13.4.0(vue@3.5.17(typescript@5.8.3)) '@vueuse/nuxt': specifier: ^13.4.0 - version: 13.4.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.4)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + version: 13.4.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.8)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@xterm/addon-fit': specifier: ^0.10.0 version: 0.10.0(@xterm/xterm@5.5.0) @@ -30,8 +30,8 @@ importers: specifier: ^5.3.0 version: 5.3.0 cronstrue: - specifier: ^2.61.0 - version: 2.61.0 + specifier: ^3.0.0 + version: 3.0.0 floating-vue: specifier: ^5.2.2 version: 5.2.2(@nuxt/kit@3.17.5(magicast@0.3.5))(vue@3.5.17(typescript@5.8.3)) @@ -43,7 +43,7 @@ importers: version: 2.30.1 nuxt: specifier: ^3.17.5 - version: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.4)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0) + version: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.8)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0) pinia: specifier: ^3.0.3 version: 3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) @@ -360,14 +360,14 @@ packages: '@fastify/busboy@3.1.1': resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==} - '@floating-ui/core@1.7.1': - resolution: {integrity: sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==} + '@floating-ui/core@1.7.2': + resolution: {integrity: sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==} '@floating-ui/dom@1.1.1': resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} '@ioredis/commands@1.2.0': resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} @@ -380,26 +380,21 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.11': + resolution: {integrity: sha512-C512c1ytBTio4MrpWKlJpyFHT6+qfFL8SZ58zBzJ1OOzUEjHeF1BtjY2fH7n4x/g2OV/KiiMLAivOp1DXmiMMw==} '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.9': + resolution: {integrity: sha512-amBU75CKOOkcQLfyM6J+DnWwz41yTsWI7o8MQ003LwUIWb4NYX/evAblTx1oBBYJySqL/zHPxHXDw5ewpQaUFw==} - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/sourcemap-codec@1.5.3': + resolution: {integrity: sha512-AiR5uKpFxP3PjO4R19kQGIMwxyRyPuXmKEEy301V1C0+1rVjS94EZQXf1QKZYN8Q0YM+estSPhmx5JwNftv6nw==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.28': + resolution: {integrity: sha512-KNNHHwW3EIp4EDYOvYFGyIFfx36R2dNJYH4knnZlF8T5jdbD5Wx8xmSaQ2gP9URkJ04LGEtlcCtwArKcmFcwKw==} '@kwsites/file-exists@1.1.1': resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} @@ -471,17 +466,17 @@ packages: '@nuxt/devalue@2.0.2': resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - '@nuxt/devtools-kit@2.5.0': - resolution: {integrity: sha512-0EJ984cSSxrXxeVVUK+2NW+u2fbor/waxq/J/MJBc/q2oF/4KW2MQ18luxfmZ4A5PKSzLimCoMIOLlZkXcW9aA==} + '@nuxt/devtools-kit@2.6.0': + resolution: {integrity: sha512-5ZfVdBghTFYJk+So/9K/RQ6R7veHeheJImSGro9ZCKQ+j35Xou7k9Dxsq6NxtB5lQFVJYhalakoQNIFSmsSsFQ==} peerDependencies: vite: '>=6.0' - '@nuxt/devtools-wizard@2.5.0': - resolution: {integrity: sha512-ldS+lIvYzKw7IitNsedXEz9/DYB4rOaSHcg3OhQvSU+Yz4n0AFAqGEZIexG5YjbGKM5O96mLdqT2b8kt1OPcXw==} + '@nuxt/devtools-wizard@2.6.0': + resolution: {integrity: sha512-NrQ5wkCb9/F8kydBd54K1OWGwXHGQ4mfvm8eqQnYdo4kp3tDcSjKJex1U3b4lTu/hhYiD8u7SE9y8pPOauaX9A==} hasBin: true - '@nuxt/devtools@2.5.0': - resolution: {integrity: sha512-ZeLMliVvBoPR4qmFFHsti+YhSFxcVfYv+SsHVfPMEomWQN7IUKJjLQHutFxixG2r0tDzvSeOyDN9J1KJmSLPfw==} + '@nuxt/devtools@2.6.0': + resolution: {integrity: sha512-CGELtdMJR+l/H332U03T/UkqFeF9eV3veIfuTL6phOYbGFAnDwFLwQOmM0kE4SuImmKrgWRYkvkdUzVB08uvxg==} hasBin: true peerDependencies: vite: '>=6.0' @@ -895,8 +890,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.8 - '@rolldown/pluginutils@1.0.0-beta.21': - resolution: {integrity: sha512-OTjWr7XYqRZaSzi6dTe0fP25EEsYEQ2H04xIedXG3D0Hrs+Bpe3V5L48R6y+R5ohTygp1ijC09mbrd7vlslpzA==} + '@rolldown/pluginutils@1.0.0-beta.23': + resolution: {integrity: sha512-lLCP4LUecUGBLq8EfkbY2esGYyvZj5ee+WZG12+mVnQH48b46SVbwp+0vJkD+6Pnsc+u9SWarBV9sQ5mVwmb5g==} '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} @@ -1070,28 +1065,28 @@ packages: cpu: [x64] os: [win32] - '@sentry-internal/browser-utils@9.33.0': - resolution: {integrity: sha512-DT9J0jIamavygIvW6rapgFb4L+7VoATPfEaV0UnXfGNXpSq18x7+vj1CyGMc//GBqqgb9SCHxJHOSkfuDYX7ZA==} + '@sentry-internal/browser-utils@9.34.0': + resolution: {integrity: sha512-pXVznvP4CROejYtk6y7UQvPTieWz2vXjukGlO45fsnQa9nNo30lkQh3Ws2HZw2YbTxYZQYx75FBDezwKl2q0hQ==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.33.0': - resolution: {integrity: sha512-NQ3Q3d1xvtagI2cYZnI6C1i6hmMkUxIXUMjfO5JFTYpWGNIkzhIaoaY0HFqbiZ94FWwWdfodlQlj6r8Y+M0bnw==} + '@sentry-internal/feedback@9.34.0': + resolution: {integrity: sha512-HT/EBRl1DR8XqlJk2wFNPJFcnIzNcEDjmW7C/o7K0GeP5jcSH0dKpcH7ykz2bi46gMRPrkO5EK2eXGK81KYI3g==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.33.0': - resolution: {integrity: sha512-lFO5DYJ32K/mui5Ck7PbqcD7wzRxTyRKiy49gCGAp7x/mhLg5utf5vWPtegiUoCiiMB22rj+n2z0geZwiGKH4A==} + '@sentry-internal/replay-canvas@9.34.0': + resolution: {integrity: sha512-GCtqMFk9WwrU3JNz1tlCFAhzmNfgZhLRaS0cLzoTuxPbG3CC2VUIWYEOw7+AdCJZGm8ElTMxu+BkChgGb8qthQ==} engines: {node: '>=18'} - '@sentry-internal/replay@9.33.0': - resolution: {integrity: sha512-xDFrN19hDkP6+yS4ARYBruI0RinGYD8FPm7JC0BaIMP5yNWAJ80LTT0Jq9Dh1hQfDwUX34dpHy/9Aa7qv+2bRQ==} + '@sentry-internal/replay@9.34.0': + resolution: {integrity: sha512-joYSqWltmpkcqI8Gg8jwFtPv0F01whmuQfNGoGaL7Z6B/xO1vvkqEudrg1tmswUHhqtYpZYaEaCvrmv0sPGCfA==} engines: {node: '>=18'} '@sentry/babel-plugin-component-annotate@3.5.0': resolution: {integrity: sha512-s2go8w03CDHbF9luFGtBHKJp4cSpsQzNVqgIa9Pfa4wnjipvrK6CxVT4icpLA3YO6kg5u622Yoa5GF3cJdippw==} engines: {node: '>= 14'} - '@sentry/browser@9.33.0': - resolution: {integrity: sha512-emlZlpE62lcpxMEzvrQzecnh0WeS36XLQlFLEUhGaYVOw7TBl5JPIoSB4mxPrzIn4GpW++3JrtKRpDAHQn/c4Q==} + '@sentry/browser@9.34.0': + resolution: {integrity: sha512-6oJxU7JEA/RCgMTVlHXT54U9d0DWg61GgzyLTM+FUa8OUrAoK/t+CZGSMc/13nYN8xs7vcpiORdRx0ogch9zGw==} engines: {node: '>=18'} '@sentry/bundler-plugin-core@3.5.0': @@ -1144,22 +1139,31 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@9.33.0': - resolution: {integrity: sha512-0mtJAU+x10+q5aV/txyeuPjJ0TmObcD701R0tY0s71yJJOltqqMrmgNpqyuMI/VOASuzTZesiMYdbG6xb3zeSw==} + '@sentry/cloudflare@9.34.0': + resolution: {integrity: sha512-uFhqe5q09fgPguDVXnDosWK9gYThISPdvpOHqzHIn1bwmVgsutEGSGy6ZeJxEXnZRXqFXY8M9A2LSi6ReVK99Q==} + engines: {node: '>=18'} + peerDependencies: + '@cloudflare/workers-types': ^4.x + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + + '@sentry/core@9.34.0': + resolution: {integrity: sha512-M/zikVaE3KLkhCFDyrHB35sF7pVkB2RPy07BcRsdFsSsdpjoG+Zq2Sxth2tMTbjd0x9Vtb/X6LVjyCj9GSEvVg==} engines: {node: '>=18'} - '@sentry/node@9.33.0': - resolution: {integrity: sha512-LkofyN1Ig+z8jXtm7eGpXga7sVMY/R42I+aJhwYtOgVkfQorDj3653ZF+IlemBZgb15vo2z3oJpeAjtqbm2rDg==} + '@sentry/node@9.34.0': + resolution: {integrity: sha512-UCXcYTXVftuKV4k3mYKVq+XOvdF0jFeHopGNQojs6BtbiMdRiuo0hzFsVKojij0E3r42EcC/TNzycGbNiuHgaQ==} engines: {node: '>=18'} - '@sentry/nuxt@9.33.0': - resolution: {integrity: sha512-lG3/KALjYMeux5gjLD+zwiveTPSY/+zsjJ+K1mUi08kBXTH2aAaJj4UpLGKXUjAcw3F1H1jygKWo/F7h6O3DAQ==} + '@sentry/nuxt@9.34.0': + resolution: {integrity: sha512-aaIbO1rBl1sqfO3RPZ8kWTwGIirPitNteBE5fMuXIHPWbTfjAjTgh2cDUEQ84h/wEspfbPJJbMR1XjX0V5YoMw==} engines: {node: '>=18.19.1'} peerDependencies: nuxt: '>=3.7.0 || 4.x' - '@sentry/opentelemetry@9.33.0': - resolution: {integrity: sha512-AYOYEvZd0XBIh+0kROq3ka7nE06pax0wezB6kXsyHlrP48N1x3+jO3rTLmbXfmU97CkVnHHfqi4MY4dBwWxW5g==} + '@sentry/opentelemetry@9.34.0': + resolution: {integrity: sha512-f1Ro8EJIN8thHO7RtdIh0dCZVU57qRdOOb6UX5VPwWcnesfY7HLtoxTpVYDG3A1vE0X2EggMenVHDfezq17/RA==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -1179,8 +1183,8 @@ packages: resolution: {integrity: sha512-jUnpTdpicG8wefamw7eNo2uO+Q3KCbOAiF76xH4gfNHSW6TN2hBfOtmLu7J+ive4c0Al3+NEHz19bIPR0lkwWg==} engines: {node: '>= 14'} - '@sentry/vue@9.33.0': - resolution: {integrity: sha512-Aodgbt+amJ8MSha8qpW6hoa/mnbJnFs9cFuS/bJoiwcmWuRypN3iaU3oxo6mYrLtI90Jh1PcWYXVQJS/5flh1g==} + '@sentry/vue@9.34.0': + resolution: {integrity: sha512-kfpGYEe2MlTsScGQ+/mvOIHhRxXZotwaBa+KOT1HEbzu5dyTOlw96hGODkmf9pLkm0nOOSA02B2fga3Um+8ZWg==} engines: {node: '>=18'} peerDependencies: pinia: 2.x || 3.x @@ -1219,8 +1223,8 @@ packages: '@types/mysql@2.15.26': resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - '@types/node@24.0.4': - resolution: {integrity: sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==} + '@types/node@24.0.8': + resolution: {integrity: sha512-WytNrFSgWO/esSH9NbpWUfTMGQwCGIKfCmNlmFDNiI5gGhgMmEA+V1AEvKLeBNvvtBnailJtkrEa2OIISwrVAA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1253,30 +1257,30 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/project-service@8.35.0': - resolution: {integrity: sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ==} + '@typescript-eslint/project-service@8.35.1': + resolution: {integrity: sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/tsconfig-utils@8.35.0': - resolution: {integrity: sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA==} + '@typescript-eslint/tsconfig-utils@8.35.1': + resolution: {integrity: sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.35.0': - resolution: {integrity: sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==} + '@typescript-eslint/types@8.35.1': + resolution: {integrity: sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.35.0': - resolution: {integrity: sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w==} + '@typescript-eslint/typescript-estree@8.35.1': + resolution: {integrity: sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.35.0': - resolution: {integrity: sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g==} + '@typescript-eslint/visitor-keys@8.35.1': + resolution: {integrity: sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unhead/vue@2.0.11': @@ -1463,8 +1467,8 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - ansis@3.17.0: - resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} + ansis@4.1.0: + resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} engines: {node: '>=14'} anymatch@3.1.3: @@ -1729,8 +1733,8 @@ packages: resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} engines: {node: '>=18.0'} - cronstrue@2.61.0: - resolution: {integrity: sha512-ootN5bvXbIQI9rW94+QsXN5eROtXWwew6NkdGxIRpS/UFWRggL0G5Al7a9GTBFEsuvVhJ2K3CntIIVt7L2ILhA==} + cronstrue@3.0.0: + resolution: {integrity: sha512-acwNTPzndJUmfDmcUN2cpBH4EgVn30rg5BYDAP8n5ENPP8A3IH2Z0UbxaNjvCkKxccjtfsTVhF6d+eHhv/GK5g==} hasBin: true cross-spawn@7.0.6: @@ -1746,8 +1750,8 @@ packages: peerDependencies: postcss: ^8.0.9 - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} @@ -1757,8 +1761,8 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} cssesc@3.0.0: @@ -1949,8 +1953,8 @@ packages: resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} engines: {node: '>=18'} - dotenv@16.6.0: - resolution: {integrity: sha512-Omf1L8paOy2VJhILjyhrhqwLIdstqm1BvcDPKg4NGAlkwEu9ODyrFbvk8UymUOMCT+HXo31jg1lArIrVAAhuGA==} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} dunder-proto@1.0.1: @@ -1966,8 +1970,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.177: - resolution: {integrity: sha512-7EH2G59nLsEMj97fpDuvVcYi6lwTcM1xuWw3PssD8xzboAW7zj7iB3COEEEATUfjLHrs5uKBLQT03V/8URx06g==} + electron-to-chromium@1.5.178: + resolution: {integrity: sha512-wObbz/ar3Bc6e4X5vf0iO8xTN8YAjN/tgiAOJLr7yjYFtP9wAjq8Mb5h0yn6kResir+VYx2DXBj9NNobs0ETSA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2968,8 +2972,8 @@ packages: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - pg-protocol@1.10.2: - resolution: {integrity: sha512-Ci7jy8PbaWxfsck2dwZdERcDG2A0MG8JoQILs+uZNjABFuBuItAZCWUNz8sXRDMoui24rJw7WlXqgpMdBSN/vQ==} + pg-protocol@1.10.3: + resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} pg-types@2.2.0: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} @@ -2998,8 +3002,8 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkg-types@2.1.1: - resolution: {integrity: sha512-eY0QFb6eSwc9+0d/5D2lFFUq+A3n3QNGSy/X2Nvp+6MfzGw2u6EbA7S80actgjY1lkvvI0pqB+a4hioMh443Ew==} + pkg-types@2.2.0: + resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==} postcss-calc@10.1.1: resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} @@ -3675,8 +3679,8 @@ packages: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} - unimport@5.0.1: - resolution: {integrity: sha512-1YWzPj6wYhtwHE+9LxRlyqP4DiRrhGfJxdtH475im8ktyZXO3jHj/3PZ97zDdvkYoovFdi0K4SKl3a7l92v3sQ==} + unimport@5.1.0: + resolution: {integrity: sha512-wMmuG+wkzeHh2KCE6yiDlHmKelN8iE/maxkUYMbmrS6iV8+n6eP1TH3yKKlepuF4hrkepinEGmBXdfo9XZUvAw==} engines: {node: '>=18.12.0'} unixify@1.0.0: @@ -3801,15 +3805,15 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - vite-dev-rpc@1.0.7: - resolution: {integrity: sha512-FxSTEofDbUi2XXujCA+hdzCDkXFG1PXktMjSk1efq9Qb5lOYaaM9zNSvKvPPF7645Bak79kSp1PTooMW2wktcA==} + vite-dev-rpc@1.1.0: + resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==} peerDependencies: - vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 - vite-hot-client@2.0.4: - resolution: {integrity: sha512-W9LOGAyGMrbGArYJN4LBCdOC5+Zwh7dHvOHC0KmGKkJhsOzaKbpo/jEjpPKVHIW0/jBWj8RZG0NUxfgA8BxgAg==} + vite-hot-client@2.1.0: + resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==} peerDependencies: - vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 vite-node@3.2.4: resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} @@ -3850,20 +3854,20 @@ packages: vue-tsc: optional: true - vite-plugin-inspect@11.2.0: - resolution: {integrity: sha512-hcCncl4YK20gcrx22cPF5mR+zfxsCmX6vUQKCyudgOZMYKVVGbrxVaL3zU62W0MVSVawtf5ZR4DrLRO+9fZVWQ==} + vite-plugin-inspect@11.3.0: + resolution: {integrity: sha512-vmt7K1WVKQkuiwvsM6e5h3HDJ2pSWTnzoj+JP9Kvu3Sh2G+nFap1F1V7tqpyA4qFxM1GQ84ryffWFGQrwShERQ==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' - vite: ^6.0.0 + vite: ^6.0.0 || ^7.0.0-0 peerDependenciesMeta: '@nuxt/kit': optional: true - vite-plugin-vue-tracer@0.1.4: - resolution: {integrity: sha512-o6tzfvwreQWg/S42vIPmSjXHj939p+a1gnl6VICpWgMtWqoVn21YlK4X63nZvQV/D0mmJe5CCtV/h0zaNdAL6g==} + vite-plugin-vue-tracer@1.0.0: + resolution: {integrity: sha512-a+UB9IwGx5uwS4uG/a9kM6fCMnxONDkOTbgCUbhFpiGhqfxrrC1+9BibV7sWwUnwj1Dg6MnRxG0trLgUZslDXA==} peerDependencies: - vite: ^6.0.0 + vite: ^6.0.0 || ^7.0.0 vue: ^3.5.0 vite@6.3.5: @@ -4003,8 +4007,8 @@ packages: utf-8-validate: optional: true - ws@8.18.2: - resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -4081,8 +4085,8 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.11 + '@jridgewell/trace-mapping': 0.3.28 '@babel/code-frame@7.27.1': dependencies: @@ -4116,8 +4120,8 @@ snapshots: dependencies: '@babel/parser': 7.27.7 '@babel/types': 7.27.7 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.11 + '@jridgewell/trace-mapping': 0.3.28 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': @@ -4364,15 +4368,15 @@ snapshots: '@fastify/busboy@3.1.1': {} - '@floating-ui/core@1.7.1': + '@floating-ui/core@1.7.2': dependencies: - '@floating-ui/utils': 0.2.9 + '@floating-ui/utils': 0.2.10 '@floating-ui/dom@1.1.1': dependencies: - '@floating-ui/core': 1.7.1 + '@floating-ui/core': 1.7.2 - '@floating-ui/utils@0.2.9': {} + '@floating-ui/utils@0.2.10': {} '@ioredis/commands@1.2.0': {} @@ -4389,27 +4393,24 @@ snapshots: dependencies: minipass: 7.1.2 - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/gen-mapping@0.3.11': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.3 + '@jridgewell/trace-mapping': 0.3.28 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.6': + '@jridgewell/source-map@0.3.9': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.11 + '@jridgewell/trace-mapping': 0.3.28 - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.3': {} - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.28': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.3 '@kwsites/file-exists@1.1.1': dependencies: @@ -4558,7 +4559,7 @@ snapshots: ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 - pkg-types: 2.1.1 + pkg-types: 2.2.0 scule: 1.3.0 semver: 7.7.2 std-env: 3.9.0 @@ -4570,32 +4571,32 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.5.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))': + '@nuxt/devtools-kit@2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))': dependencies: '@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/schema': 3.17.5 execa: 8.0.1 - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) transitivePeerDependencies: - magicast - '@nuxt/devtools-wizard@2.5.0': + '@nuxt/devtools-wizard@2.6.0': dependencies: consola: 3.4.2 diff: 8.0.2 execa: 8.0.1 magicast: 0.3.5 pathe: 2.0.3 - pkg-types: 2.1.1 + pkg-types: 2.2.0 prompts: 2.4.2 semver: 7.7.2 - '@nuxt/devtools@2.5.0(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@nuxt/devtools@2.6.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: - '@nuxt/devtools-kit': 2.5.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) - '@nuxt/devtools-wizard': 2.5.0 + '@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) + '@nuxt/devtools-wizard': 2.6.0 '@nuxt/kit': 3.17.5(magicast@0.3.5) - '@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + '@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@vue/devtools-kit': 7.7.7 birpc: 2.4.0 consola: 3.4.2 @@ -4614,17 +4615,17 @@ snapshots: ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 - pkg-types: 2.1.1 + pkg-types: 2.2.0 semver: 7.7.2 simple-git: 3.28.0 sirv: 3.0.1 structured-clone-es: 1.0.0 tinyglobby: 0.2.14 - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) - vite-plugin-inspect: 11.2.0(@nuxt/kit@3.17.5(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) - vite-plugin-vue-tracer: 0.1.4(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite-plugin-inspect: 11.3.0(@nuxt/kit@3.17.5(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) + vite-plugin-vue-tracer: 1.0.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) which: 5.0.0 - ws: 8.18.2 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - supports-color @@ -4646,14 +4647,14 @@ snapshots: mlly: 1.7.4 ohash: 2.0.11 pathe: 2.0.3 - pkg-types: 2.1.1 + pkg-types: 2.2.0 scule: 1.3.0 semver: 7.7.2 std-env: 3.9.0 tinyglobby: 0.2.14 ufo: 1.6.1 unctx: 2.4.1 - unimport: 5.0.1 + unimport: 5.1.0 untyped: 2.0.0 transitivePeerDependencies: - magicast @@ -4672,7 +4673,7 @@ snapshots: citty: 0.1.6 consola: 3.4.2 destr: 2.0.5 - dotenv: 16.6.0 + dotenv: 16.6.1 git-url-parse: 16.1.0 is-docker: 3.0.0 ofetch: 1.4.1 @@ -4683,12 +4684,12 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/vite-builder@3.17.5(@types/node@24.0.4)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': + '@nuxt/vite-builder@3.17.5(@types/node@24.0.8)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': dependencies: '@nuxt/kit': 3.17.5(magicast@0.3.5) '@rollup/plugin-replace': 6.0.2(rollup@4.44.1) - '@vitejs/plugin-vue': 5.2.4(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) - '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + '@vitejs/plugin-vue': 5.2.4(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) autoprefixer: 10.4.21(postcss@8.5.6) consola: 3.4.2 cssnano: 7.0.7(postcss@8.5.6) @@ -4707,16 +4708,16 @@ snapshots: ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 - pkg-types: 2.1.1 + pkg-types: 2.2.0 postcss: 8.5.6 rollup-plugin-visualizer: 6.0.3(rollup@4.44.1) std-env: 3.9.0 ufo: 1.6.1 unenv: 2.0.0-rc.18 unplugin: 2.3.5 - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) - vite-node: 3.2.4(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) - vite-plugin-checker: 0.9.3(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite-plugin-checker: 0.9.3(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) vue: 3.5.17(typescript@5.8.3) vue-bundle-renderer: 2.1.1 transitivePeerDependencies: @@ -5128,7 +5129,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@rolldown/pluginutils@1.0.0-beta.21': {} + '@rolldown/pluginutils@1.0.0-beta.23': {} '@rollup/plugin-alias@5.1.1(rollup@4.44.1)': optionalDependencies: @@ -5253,40 +5254,40 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.44.1': optional: true - '@sentry-internal/browser-utils@9.33.0': + '@sentry-internal/browser-utils@9.34.0': dependencies: - '@sentry/core': 9.33.0 + '@sentry/core': 9.34.0 - '@sentry-internal/feedback@9.33.0': + '@sentry-internal/feedback@9.34.0': dependencies: - '@sentry/core': 9.33.0 + '@sentry/core': 9.34.0 - '@sentry-internal/replay-canvas@9.33.0': + '@sentry-internal/replay-canvas@9.34.0': dependencies: - '@sentry-internal/replay': 9.33.0 - '@sentry/core': 9.33.0 + '@sentry-internal/replay': 9.34.0 + '@sentry/core': 9.34.0 - '@sentry-internal/replay@9.33.0': + '@sentry-internal/replay@9.34.0': dependencies: - '@sentry-internal/browser-utils': 9.33.0 - '@sentry/core': 9.33.0 + '@sentry-internal/browser-utils': 9.34.0 + '@sentry/core': 9.34.0 '@sentry/babel-plugin-component-annotate@3.5.0': {} - '@sentry/browser@9.33.0': + '@sentry/browser@9.34.0': dependencies: - '@sentry-internal/browser-utils': 9.33.0 - '@sentry-internal/feedback': 9.33.0 - '@sentry-internal/replay': 9.33.0 - '@sentry-internal/replay-canvas': 9.33.0 - '@sentry/core': 9.33.0 + '@sentry-internal/browser-utils': 9.34.0 + '@sentry-internal/feedback': 9.34.0 + '@sentry-internal/replay': 9.34.0 + '@sentry-internal/replay-canvas': 9.34.0 + '@sentry/core': 9.34.0 '@sentry/bundler-plugin-core@3.5.0': dependencies: '@babel/core': 7.27.7 '@sentry/babel-plugin-component-annotate': 3.5.0 '@sentry/cli': 2.42.2 - dotenv: 16.6.0 + dotenv: 16.6.1 find-up: 5.0.0 glob: 9.3.5 magic-string: 0.30.8 @@ -5335,9 +5336,14 @@ snapshots: - encoding - supports-color - '@sentry/core@9.33.0': {} + '@sentry/cloudflare@9.34.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@sentry/core': 9.34.0 - '@sentry/node@9.33.0': + '@sentry/core@9.34.0': {} + + '@sentry/node@9.34.0': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -5369,24 +5375,26 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 '@prisma/instrumentation': 6.10.1(@opentelemetry/api@1.9.0) - '@sentry/core': 9.33.0 - '@sentry/opentelemetry': 9.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) + '@sentry/core': 9.34.0 + '@sentry/opentelemetry': 9.34.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) import-in-the-middle: 1.14.2 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/nuxt@9.33.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.4)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0))(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))(rollup@4.44.1)(vue@3.5.17(typescript@5.8.3))': + '@sentry/nuxt@9.34.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.8)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0))(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))(rollup@4.44.1)(vue@3.5.17(typescript@5.8.3))': dependencies: '@nuxt/kit': 3.17.5(magicast@0.3.5) - '@sentry/browser': 9.33.0 - '@sentry/core': 9.33.0 - '@sentry/node': 9.33.0 + '@sentry/browser': 9.34.0 + '@sentry/cloudflare': 9.34.0 + '@sentry/core': 9.34.0 + '@sentry/node': 9.34.0 '@sentry/rollup-plugin': 3.5.0(rollup@4.44.1) '@sentry/vite-plugin': 3.5.0 - '@sentry/vue': 9.33.0(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3)) - nuxt: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.4)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0) + '@sentry/vue': 9.34.0(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3)) + nuxt: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.8)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0) transitivePeerDependencies: + - '@cloudflare/workers-types' - encoding - magicast - pinia @@ -5394,7 +5402,7 @@ snapshots: - supports-color - vue - '@sentry/opentelemetry@9.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0)': + '@sentry/opentelemetry@9.34.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -5402,7 +5410,7 @@ snapshots: '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 - '@sentry/core': 9.33.0 + '@sentry/core': 9.34.0 '@sentry/rollup-plugin@3.5.0(rollup@4.44.1)': dependencies: @@ -5421,10 +5429,10 @@ snapshots: - encoding - supports-color - '@sentry/vue@9.33.0(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3))': + '@sentry/vue@9.34.0(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3))': dependencies: - '@sentry/browser': 9.33.0 - '@sentry/core': 9.33.0 + '@sentry/browser': 9.34.0 + '@sentry/core': 9.34.0 vue: 3.5.17(typescript@5.8.3) optionalDependencies: pinia: 3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) @@ -5446,15 +5454,15 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.0.4 + '@types/node': 24.0.8 '@types/estree@1.0.8': {} '@types/mysql@2.15.26': dependencies: - '@types/node': 24.0.4 + '@types/node': 24.0.8 - '@types/node@24.0.4': + '@types/node@24.0.8': dependencies: undici-types: 7.8.0 @@ -5470,8 +5478,8 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 24.0.4 - pg-protocol: 1.10.2 + '@types/node': 24.0.8 + pg-protocol: 1.10.3 pg-types: 2.2.0 '@types/resolve@1.20.2': {} @@ -5480,7 +5488,7 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 24.0.4 + '@types/node': 24.0.8 '@types/triple-beam@1.3.5': {} @@ -5488,30 +5496,30 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.0.4 + '@types/node': 24.0.8 optional: true - '@typescript-eslint/project-service@8.35.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.35.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.35.0(typescript@5.8.3) - '@typescript-eslint/types': 8.35.0 + '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3) + '@typescript-eslint/types': 8.35.1 debug: 4.4.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/tsconfig-utils@8.35.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.35.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/types@8.35.0': {} + '@typescript-eslint/types@8.35.1': {} - '@typescript-eslint/typescript-estree@8.35.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.35.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.35.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.35.0(typescript@5.8.3) - '@typescript-eslint/types': 8.35.0 - '@typescript-eslint/visitor-keys': 8.35.0 + '@typescript-eslint/project-service': 8.35.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3) + '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/visitor-keys': 8.35.1 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -5522,9 +5530,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.35.0': + '@typescript-eslint/visitor-keys@8.35.1': dependencies: - '@typescript-eslint/types': 8.35.0 + '@typescript-eslint/types': 8.35.1 eslint-visitor-keys: 4.2.1 '@unhead/vue@2.0.11(vue@3.5.17(typescript@5.8.3))': @@ -5552,20 +5560,20 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: '@babel/core': 7.27.7 '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.7) - '@rolldown/pluginutils': 1.0.0-beta.21 + '@rolldown/pluginutils': 1.0.0-beta.23 '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.27.7) - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) '@vue-macros/common@1.16.1(vue@3.5.17(typescript@5.8.3))': @@ -5644,14 +5652,14 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@7.7.7(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@vue/devtools-core@7.7.7(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 mitt: 3.0.1 nanoid: 5.1.5 pathe: 2.0.3 - vite-hot-client: 2.0.4(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) + vite-hot-client: 2.1.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) vue: 3.5.17(typescript@5.8.3) transitivePeerDependencies: - vite @@ -5703,13 +5711,13 @@ snapshots: '@vueuse/metadata@13.4.0': {} - '@vueuse/nuxt@13.4.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.4)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@vueuse/nuxt@13.4.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.8)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: '@nuxt/kit': 3.17.5(magicast@0.3.5) '@vueuse/core': 13.4.0(vue@3.5.17(typescript@5.8.3)) '@vueuse/metadata': 13.4.0 local-pkg: 1.1.1 - nuxt: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.4)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0) + nuxt: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.8)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) transitivePeerDependencies: - magicast @@ -5782,7 +5790,7 @@ snapshots: ansi-styles@6.2.1: {} - ansis@3.17.0: {} + ansis@4.1.0: {} anymatch@3.1.3: dependencies: @@ -5865,7 +5873,7 @@ snapshots: browserslist@4.25.1: dependencies: caniuse-lite: 1.0.30001726 - electron-to-chromium: 1.5.177 + electron-to-chromium: 1.5.178 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) @@ -5891,14 +5899,14 @@ snapshots: chokidar: 4.0.3 confbox: 0.2.2 defu: 6.1.4 - dotenv: 16.6.0 + dotenv: 16.6.1 exsolve: 1.0.7 giget: 2.0.0 jiti: 2.4.2 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 - pkg-types: 2.1.1 + pkg-types: 2.2.0 rc9: 2.1.2 optionalDependencies: magicast: 0.3.5 @@ -6057,7 +6065,7 @@ snapshots: croner@9.1.0: {} - cronstrue@2.61.0: {} + cronstrue@3.0.0: {} cross-spawn@7.0.6: dependencies: @@ -6073,10 +6081,10 @@ snapshots: dependencies: postcss: 8.5.6 - css-select@5.1.0: + css-select@5.2.2: dependencies: boolbase: 1.0.0 - css-what: 6.1.0 + css-what: 6.2.2 domhandler: 5.0.3 domutils: 3.2.2 nth-check: 2.1.1 @@ -6091,7 +6099,7 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.1 - css-what@6.1.0: {} + css-what@6.2.2: {} cssesc@3.0.0: {} @@ -6222,7 +6230,7 @@ snapshots: detective-typescript@14.0.0(typescript@5.8.3): dependencies: - '@typescript-eslint/typescript-estree': 8.35.0(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) ast-module-types: 6.0.1 node-source-walk: 7.0.1 typescript: 5.8.3 @@ -6268,7 +6276,7 @@ snapshots: dependencies: type-fest: 4.41.0 - dotenv@16.6.0: {} + dotenv@16.6.1: {} dunder-proto@1.0.1: dependencies: @@ -6282,7 +6290,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.177: {} + electron-to-chromium@1.5.178: {} emoji-regex@8.0.0: {} @@ -6825,7 +6833,7 @@ snapshots: lambda-local@2.2.0: dependencies: commander: 10.0.1 - dotenv: 16.6.0 + dotenv: 16.6.1 winston: 3.17.0 launch-editor@2.10.0: @@ -6863,7 +6871,7 @@ snapshots: local-pkg@1.1.1: dependencies: mlly: 1.7.4 - pkg-types: 2.1.1 + pkg-types: 2.2.0 quansync: 0.2.10 locate-path@6.0.0: @@ -6911,11 +6919,11 @@ snapshots: magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.3 magic-string@0.30.8: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.3 magicast@0.3.5: dependencies: @@ -7069,7 +7077,7 @@ snapshots: ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 - pkg-types: 2.1.1 + pkg-types: 2.2.0 pretty-bytes: 6.1.1 radix3: 1.1.2 rollup: 4.44.1 @@ -7085,7 +7093,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.4.1 unenv: 2.0.0-rc.18 - unimport: 5.0.1 + unimport: 5.1.0 unplugin-utils: 0.2.4 unstorage: 1.16.0(db0@0.3.2)(ioredis@5.6.1) untyped: 2.0.0 @@ -7178,15 +7186,15 @@ snapshots: dependencies: boolbase: 1.0.0 - nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.4)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0): + nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.8)(db0@0.3.2)(ioredis@5.6.1)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0): dependencies: '@nuxt/cli': 3.25.1(magicast@0.3.5) '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 2.5.0(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + '@nuxt/devtools': 2.6.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/schema': 3.17.5 '@nuxt/telemetry': 2.6.6(magicast@0.3.5) - '@nuxt/vite-builder': 3.17.5(@types/node@24.0.4)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) + '@nuxt/vite-builder': 3.17.5(@types/node@24.0.8)(magicast@0.3.5)(rollup@4.44.1)(terser@5.43.1)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) '@unhead/vue': 2.0.11(vue@3.5.17(typescript@5.8.3)) '@vue/shared': 3.5.17 c12: 3.0.4(magicast@0.3.5) @@ -7221,7 +7229,7 @@ snapshots: oxc-parser: 0.72.3 pathe: 2.0.3 perfect-debounce: 1.0.0 - pkg-types: 2.1.1 + pkg-types: 2.2.0 radix3: 1.1.2 scule: 1.3.0 semver: 7.7.2 @@ -7232,7 +7240,7 @@ snapshots: ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.4.1 - unimport: 5.0.1 + unimport: 5.1.0 unplugin: 2.3.5 unplugin-vue-router: 0.12.0(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3)) unstorage: 1.16.0(db0@0.3.2)(ioredis@5.6.1) @@ -7243,7 +7251,7 @@ snapshots: vue-router: 4.5.1(vue@3.5.17(typescript@5.8.3)) optionalDependencies: '@parcel/watcher': 2.5.1 - '@types/node': 24.0.4 + '@types/node': 24.0.8 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7302,7 +7310,7 @@ snapshots: citty: 0.1.6 consola: 3.4.2 pathe: 2.0.3 - pkg-types: 2.1.1 + pkg-types: 2.2.0 tinyexec: 0.3.2 object-inspect@1.13.4: {} @@ -7443,7 +7451,7 @@ snapshots: pg-int8@1.0.1: {} - pg-protocol@1.10.2: {} + pg-protocol@1.10.3: {} pg-types@2.2.0: dependencies: @@ -7472,7 +7480,7 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 - pkg-types@2.1.1: + pkg-types@2.2.0: dependencies: confbox: 0.2.2 exsolve: 1.0.7 @@ -8076,9 +8084,9 @@ snapshots: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 - css-select: 5.1.0 + css-select: 5.2.2 css-tree: 2.3.1 - css-what: 6.1.0 + css-what: 6.2.2 csso: 5.0.5 picocolors: 1.1.1 @@ -8103,7 +8111,7 @@ snapshots: terser@5.43.1: dependencies: - '@jridgewell/source-map': 0.3.6 + '@jridgewell/source-map': 0.3.9 acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -8186,7 +8194,7 @@ snapshots: unicorn-magic@0.3.0: {} - unimport@5.0.1: + unimport@5.1.0: dependencies: acorn: 8.15.0 escape-string-regexp: 5.0.0 @@ -8196,7 +8204,7 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 picomatch: 4.0.2 - pkg-types: 2.1.1 + pkg-types: 2.2.0 scule: 1.3.0 strip-literal: 3.0.0 tinyglobby: 0.2.14 @@ -8310,23 +8318,23 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-dev-rpc@1.0.7(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)): + vite-dev-rpc@1.1.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)): dependencies: birpc: 2.4.0 - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) - vite-hot-client: 2.0.4(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite-hot-client: 2.1.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) - vite-hot-client@2.0.4(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)): + vite-hot-client@2.1.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)): dependencies: - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) - vite-node@3.2.4(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0): + vite-node@3.2.4(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -8341,7 +8349,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.9.3(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)): + vite-plugin-checker@0.9.3(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)): dependencies: '@babel/code-frame': 7.27.1 chokidar: 4.0.3 @@ -8351,14 +8359,14 @@ snapshots: strip-ansi: 7.1.0 tiny-invariant: 1.3.3 tinyglobby: 0.2.14 - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) vscode-uri: 3.1.0 optionalDependencies: typescript: 5.8.3 - vite-plugin-inspect@11.2.0(@nuxt/kit@3.17.5(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)): + vite-plugin-inspect@11.3.0(@nuxt/kit@3.17.5(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)): dependencies: - ansis: 3.17.0 + ansis: 4.1.0 debug: 4.4.1 error-stack-parser-es: 1.0.5 ohash: 2.0.11 @@ -8366,24 +8374,24 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.4 - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) - vite-dev-rpc: 1.0.7(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite-dev-rpc: 1.1.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0)) optionalDependencies: '@nuxt/kit': 3.17.5(magicast@0.3.5) transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@0.1.4(vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)): + vite-plugin-vue-tracer@1.0.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.7 magic-string: 0.30.17 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) - vite@6.3.5(@types/node@24.0.4)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0): + vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(terser@5.43.1)(yaml@2.8.0): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -8392,7 +8400,7 @@ snapshots: rollup: 4.44.1 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.0.4 + '@types/node': 24.0.8 fsevents: 2.3.3 jiti: 2.4.2 terser: 5.43.1 @@ -8493,7 +8501,7 @@ snapshots: ws@8.17.1: {} - ws@8.18.2: {} + ws@8.18.3: {} xmlhttprequest-ssl@2.1.2: {} From 31aa15efbae7407c43cc93e859be16bb011d41ec Mon Sep 17 00:00:00 2001 From: arabcoders Date: Tue, 1 Jul 2025 18:05:27 +0300 Subject: [PATCH 3/4] Added file browser actions --- README.md | 7 +- app/library/config.py | 5 + app/routes/api/browser.py | 156 +++++++++++++++++++++++++++- ui/@types/config.d.ts | 2 + ui/pages/browser/[...slug].vue | 183 ++++++++++++++++++++++++++++++--- ui/stores/ConfigStore.ts | 1 + 6 files changed, 336 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index f43e96aa..ac6b82f6 100644 --- a/README.md +++ b/README.md @@ -307,11 +307,12 @@ Certain configuration values can be set via environment variables, using the `-e | YTP_PIP_PACKAGES | A space separated list of pip packages to install | `empty string` | | YTP_PIP_IGNORE_UPDATES | Do not update the custom pip packages | `false` | | YTP_BASIC_MODE | Whether to run WebUI in basic mode | `false` | -| YTP_PICTURES_BACKENDS | A comma separated list of pictures urls to use. | `empty string` | +| YTP_PICTURES_BACKENDS | A comma separated list of pictures urls to use | `empty string` | | YTP_BROWSER_ENABLED | Whether to enable the file browser | `false` | +| YTP_BROWSER_CONTROL_ENABLED | Whether to enable the file browser actions | `false` | | YTP_YTDLP_AUTO_UPDATE | Whether to enable the auto update for yt-dlp | `true` | | YTP_BASE_PATH | Set this if you are serving YTPTube from sub-folder | `/` | | YTP_PREVENT_LIVE_PREMIERE | Prevents the initial youtube premiere stream from being downloaded | `false` | -| YTP_TASKS_HANDLER_TIMER | The cron expression for the tasks handler timer. | `15 */1 * * *` | -| YTP_PLAYLIST_ITEMS_CONCURRENCY | The number of playlist items be to processed at same time. | `1` | +| YTP_TASKS_HANDLER_TIMER | The cron expression for the tasks handler timer | `15 */1 * * *` | +| YTP_PLAYLIST_ITEMS_CONCURRENCY | The number of playlist items be to processed at same time | `1` | diff --git a/app/library/config.py b/app/library/config.py index 92e8acbc..1c3d98a5 100644 --- a/app/library/config.py +++ b/app/library/config.py @@ -157,6 +157,9 @@ class Config: browser_enabled: bool = False "Enable file browser access." + browser_control_enabled: bool = False + "Enable file browser control access." + ytdlp_auto_update: bool = True """Enable in-place auto update of yt-dlp package.""" @@ -227,6 +230,7 @@ class Config: "file_logging", "console_enabled", "browser_enabled", + "browser_control_enabled", "ytdlp_auto_update", "prevent_premiere_live", ) @@ -246,6 +250,7 @@ class Config: "sentry_dsn", "console_enabled", "browser_enabled", + "browser_control_enabled", "ytdlp_cli", "file_logging", "base_path", diff --git a/app/routes/api/browser.py b/app/routes/api/browser.py index 4a4d0ef0..4cd87ed5 100644 --- a/app/routes/api/browser.py +++ b/app/routes/api/browser.py @@ -9,7 +9,7 @@ from app.library.config import Config from app.library.encoder import Encoder from app.library.ffprobe import ffprobe from app.library.router import route -from app.library.Utils import get_file, get_file_sidecar, get_files, get_mime_type +from app.library.Utils import delete_dir, get_file, get_file_sidecar, get_files, get_mime_type LOG: logging.Logger = logging.getLogger(__name__) @@ -155,3 +155,157 @@ async def file_browser(request: Request, config: Config, encoder: Encoder) -> Re except OSError as e: LOG.exception(e) return web.json_response(data={"error": str(e)}, status=web.HTTPInternalServerError.status_code) + + +@route("POST", "api/file/action/{path:.*}", "browser.actions") +async def path_action(request: Request, config: Config) -> Response: + """ + Browser actions. + + Args: + request (Request): The request object. + config (Config): The configuration object. + + Returns: + Response: The response object. + + """ + if not config.browser_enabled: + return web.json_response(data={"error": "File browser is disabled."}, status=web.HTTPForbidden.status_code) + + if not config.browser_control_enabled: + return web.json_response( + data={"error": "File browser controls is disabled."}, status=web.HTTPForbidden.status_code + ) + + rootPath: Path = Path(config.download_path) + + try: + params = await request.json() + if not params or not isinstance(params, dict): + return web.json_response(data={"error": "Invalid parameters."}, status=web.HTTPBadRequest.status_code) + except Exception as e: + LOG.exception(e) + return web.json_response(data={"error": "Invalid JSON."}, status=web.HTTPBadRequest.status_code) + + action = params.get("action").lower() + if not action: + return web.json_response(data={"error": "Action is required."}, status=web.HTTPBadRequest.status_code) + + req_path: str = request.match_info.get("path") + req_path: str = "/" if not req_path else unquote_plus(req_path) + + test: Path = Path(config.download_path) + if req_path and "/" != req_path: + test = test.joinpath(req_path) + + if not test.exists(): + return web.json_response( + data={"error": f"path '{req_path}' does not exist."}, status=web.HTTPNotFound.status_code + ) + + try: + path, status = get_file(download_path=config.download_path, file=str(test.relative_to(config.download_path))) + if web.HTTPOk.status_code != status: + return web.json_response( + data={"error": f"File {status}: '{test}' does not exist."}, status=web.HTTPNotFound.status_code + ) + if not path.is_relative_to(rootPath): + return web.json_response( + data={"error": "Cannot perform actions on files outside the download path."}, + status=web.HTTPBadRequest.status_code, + ) + except Exception as e: + LOG.exception(e) + return web.json_response(data={"error": str(e)}, status=web.HTTPInternalServerError.status_code) + + if "directory" != action: + if path == rootPath: + return web.json_response( + data={"error": "Cannot perform actions on the root directory."}, status=web.HTTPBadRequest.status_code + ) + + if not path.is_relative_to(rootPath): + return web.json_response( + data={"error": "Cannot perform actions on files outside the download path."}, + status=web.HTTPBadRequest.status_code, + ) + + if "rename" == action: + new_name = params.get("new_name") + if not new_name: + return web.json_response(data={"error": "New name is required."}, status=web.HTTPBadRequest.status_code) + + new_path = path.parent.joinpath(new_name) + if new_path.exists(): + return web.json_response( + data={"error": f"File '{new_name}' already exists."}, status=web.HTTPConflict.status_code + ) + + try: + path.rename(new_path) + LOG.info( + f"Renamed '{path.relative_to(config.download_path)}' to '{test.relative_to(config.download_path)}'" + ) + except OSError as e: + LOG.exception(e) + return web.json_response(data={"error": str(e)}, status=web.HTTPInternalServerError.status_code) + + if "delete" == action: + try: + if not path.exists(): + return web.json_response( + data={"error": f"Path '{path}' does not exist."}, status=web.HTTPNotFound.status_code + ) + + if path.is_dir(): + delete_dir(path) + else: + path.unlink(missing_ok=True) + + LOG.info(f"Deleted '{path.relative_to(config.download_path)}'") + except OSError as e: + LOG.exception(e) + return web.json_response(data={"error": str(e)}, status=web.HTTPInternalServerError.status_code) + + if "move" == action: + new_path = params.get("new_path") + if not new_path: + return web.json_response(data={"error": "New path is required."}, status=web.HTTPBadRequest.status_code) + + new_path = Path(config.download_path).joinpath(unquote_plus(new_path)) + if not new_path.exists() or not new_path.is_dir(): + return web.json_response( + data={"error": f"New path '{new_path}' does not exist or is not a directory."}, + status=web.HTTPNotFound.status_code, + ) + + try: + path.rename(new_path.joinpath(path.name)) + except OSError as e: + LOG.exception(e) + return web.json_response(data={"error": str(e)}, status=web.HTTPInternalServerError.status_code) + + if "directory" == action: + new_dir = params.get("new_dir").lstrip("/").strip() + if not new_dir: + return web.json_response( + data={"error": "New directory name is required."}, status=web.HTTPBadRequest.status_code + ) + + new_path = path.joinpath(*new_dir.split("/")) + if new_path.exists(): + return web.json_response( + data={"error": f"Directory '{new_dir}' already exists."}, status=web.HTTPConflict.status_code + ) + + try: + new_path.mkdir(parents=True, exist_ok=True) + LOG.info(f"Created directory '{new_path.relative_to(config.download_path)}'") + except OSError as e: + LOG.exception(e) + return web.json_response( + data={"error": str(e), "path": str(test)}, status=web.HTTPInternalServerError.status_code + ) + + return web.Response(status=web.HTTPOk.status_code) diff --git a/ui/@types/config.d.ts b/ui/@types/config.d.ts index 5f33c982..ae018cbb 100644 --- a/ui/@types/config.d.ts +++ b/ui/@types/config.d.ts @@ -26,6 +26,8 @@ type AppConfig = { console_enabled: boolean /** Indicates if the file browser is enabled */ browser_enabled: boolean + /** Indicates if the file browser control is enabled */ + browser_control_enabled: boolean /** Command options for yt-dlp */ ytdlp_cli: string /** Indicates if file logging is enabled */ diff --git a/ui/pages/browser/[...slug].vue b/ui/pages/browser/[...slug].vue index d76dd871..4f7477d9 100644 --- a/ui/pages/browser/[...slug].vue +++ b/ui/pages/browser/[...slug].vue @@ -32,6 +32,13 @@ +

+ +