From f67ff2ee11944a1b56f21ee0f2bff510d9d14a8f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 20:44:26 +0900 Subject: [PATCH 01/46] fix(deps): update dependency @hono/zod-openapi to v0.19.6 (#3294) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index e366c178..2b22f0cb 100644 --- a/package.json +++ b/package.json @@ -247,7 +247,7 @@ "@ghostery/adblocker-electron-preload": "2.5.1", "@hono/node-server": "1.14.1", "@hono/swagger-ui": "0.5.1", - "@hono/zod-openapi": "0.19.5", + "@hono/zod-openapi": "0.19.6", "@hono/zod-validator": "0.4.3", "@jellybrick/dbus-next": "0.10.3", "@jellybrick/electron-better-web-request": "1.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 099f94ad..6fa998bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: 0.5.1 version: 0.5.1(hono@4.7.7) '@hono/zod-openapi': - specifier: 0.19.5 - version: 0.19.5(hono@4.7.7)(zod@3.24.3) + specifier: 0.19.6 + version: 0.19.6(hono@4.7.7)(zod@3.24.3) '@hono/zod-validator': specifier: 0.4.3 version: 0.4.3(hono@4.7.7)(zod@3.24.3) @@ -780,8 +780,8 @@ packages: peerDependencies: hono: '*' - '@hono/zod-openapi@0.19.5': - resolution: {integrity: sha512-n2RqdZL7XIaWPwBNygctG/1eySyRtSBnS7l+pIsP3f2JW5P2l7Smm6SLluscrGwB5l2C2fxbfvhWoC6Ig+SxXw==} + '@hono/zod-openapi@0.19.6': + resolution: {integrity: sha512-qD2I0i5Ksry8gf47rXR6tuUAfv5S/wRZPRUNn+y8vOkgArDtIs30Ha3KGHeuGhcMk773D197IlPUppSCbHt6iQ==} engines: {node: '>=16.0.0'} peerDependencies: hono: '>=4.3.6' @@ -793,6 +793,12 @@ packages: hono: '>=3.9.0' zod: ^3.19.1 + '@hono/zod-validator@0.5.0': + resolution: {integrity: sha512-ds5bW6DCgAnNHP33E3ieSbaZFd5dkV52ZjyaXtGoR06APFrCtzAsKZxTHwOrJNBdXsi0e5wNwo5L4nVEVnJUdg==} + peerDependencies: + hono: '>=3.9.0' + zod: ^3.19.1 + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -5126,10 +5132,10 @@ snapshots: dependencies: hono: 4.7.7 - '@hono/zod-openapi@0.19.5(hono@4.7.7)(zod@3.24.3)': + '@hono/zod-openapi@0.19.6(hono@4.7.7)(zod@3.24.3)': dependencies: '@asteasolutions/zod-to-openapi': 7.3.0(zod@3.24.3) - '@hono/zod-validator': 0.4.3(hono@4.7.7)(zod@3.24.3) + '@hono/zod-validator': 0.5.0(hono@4.7.7)(zod@3.24.3) hono: 4.7.7 zod: 3.24.3 @@ -5138,6 +5144,11 @@ snapshots: hono: 4.7.7 zod: 3.24.3 + '@hono/zod-validator@0.5.0(hono@4.7.7)(zod@3.24.3)': + dependencies: + hono: 4.7.7 + zod: 3.24.3 + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': From da5c18dcf1b9d68a33f8fe7c437f1c3245865885 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 20:51:15 +0900 Subject: [PATCH 02/46] chore(deps): update dependency vite to v6.3.4 [security] (#3313) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- pnpm-lock.yaml | 60 +++++++++++++++++++++++++------------------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 2b22f0cb..4d590a71 100644 --- a/package.json +++ b/package.json @@ -222,7 +222,7 @@ }, "pnpm": { "overrides": { - "vite": "6.3.3", + "vite": "6.3.4", "node-gyp": "11.2.0", "xml2js": "0.6.2", "node-fetch": "3.3.2", @@ -340,7 +340,7 @@ "typescript": "5.8.3", "typescript-eslint": "8.31.0", "utf-8-validate": "6.0.5", - "vite": "6.3.3", + "vite": "6.3.4", "vite-plugin-inspect": "11.0.1", "vite-plugin-resolve": "2.5.2", "vite-plugin-solid": "2.11.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6fa998bc..16b3c547 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - vite: 6.3.3 + vite: 6.3.4 node-gyp: 11.2.0 xml2js: 0.6.2 node-fetch: 3.3.2 @@ -288,7 +288,7 @@ importers: version: 4.0.0 electron-vite: specifier: 3.1.0 - version: 3.1.0(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)) + version: 3.1.0(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) esbuild: specifier: 0.25.3 version: 0.25.3 @@ -332,17 +332,17 @@ importers: specifier: 6.0.5 version: 6.0.5 vite: - specifier: 6.3.3 - version: 6.3.3(@types/node@22.13.5)(yaml@2.7.0) + specifier: 6.3.4 + version: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) vite-plugin-inspect: specifier: 11.0.1 - version: 11.0.1(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)) + version: 11.0.1(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) vite-plugin-resolve: specifier: 2.5.2 version: 2.5.2 vite-plugin-solid: specifier: 2.11.6 - version: 2.11.6(solid-js@1.9.5)(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)) + version: 2.11.6(solid-js@1.9.5)(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) ws: specifier: 8.18.1 version: 8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -2180,7 +2180,7 @@ packages: hasBin: true peerDependencies: '@swc/core': ^1.0.0 - vite: 6.3.3 + vite: 6.3.4 peerDependenciesMeta: '@swc/core': optional: true @@ -4434,19 +4434,19 @@ packages: vite-dev-rpc@1.0.7: resolution: {integrity: sha512-FxSTEofDbUi2XXujCA+hdzCDkXFG1PXktMjSk1efq9Qb5lOYaaM9zNSvKvPPF7645Bak79kSp1PTooMW2wktcA==} peerDependencies: - vite: 6.3.3 + vite: 6.3.4 vite-hot-client@2.0.4: resolution: {integrity: sha512-W9LOGAyGMrbGArYJN4LBCdOC5+Zwh7dHvOHC0KmGKkJhsOzaKbpo/jEjpPKVHIW0/jBWj8RZG0NUxfgA8BxgAg==} peerDependencies: - vite: 6.3.3 + vite: 6.3.4 vite-plugin-inspect@11.0.1: resolution: {integrity: sha512-aABw7eGTr9Cmbn9RAs76e0BztVUFDl6a2R+/IJXpoUZxjx5YHB0P+Em3ZTWzpIPZzuRj28tAMblvcUyhgJc4aQ==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' - vite: 6.3.3 + vite: 6.3.4 peerDependenciesMeta: '@nuxt/kit': optional: true @@ -4459,13 +4459,13 @@ packages: peerDependencies: '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* solid-js: ^1.7.2 - vite: 6.3.3 + vite: 6.3.4 peerDependenciesMeta: '@testing-library/jest-dom': optional: true - vite@6.3.3: - resolution: {integrity: sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==} + vite@6.3.4: + resolution: {integrity: sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -4507,7 +4507,7 @@ packages: vitefu@1.0.6: resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} peerDependencies: - vite: 6.3.3 + vite: 6.3.4 peerDependenciesMeta: vite: optional: true @@ -6772,7 +6772,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron-vite@3.1.0(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)): + electron-vite@3.1.0(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) @@ -6780,7 +6780,7 @@ snapshots: esbuild: 0.25.3 magic-string: 0.30.17 picocolors: 1.1.1 - vite: 6.3.3(@types/node@22.13.5)(yaml@2.7.0) + vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -9277,17 +9277,17 @@ snapshots: extsprintf: 1.4.1 optional: true - vite-dev-rpc@1.0.7(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)): + vite-dev-rpc@1.0.7(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): dependencies: birpc: 2.2.0 - vite: 6.3.3(@types/node@22.13.5)(yaml@2.7.0) - vite-hot-client: 2.0.4(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)) + vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) + vite-hot-client: 2.0.4(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) - vite-hot-client@2.0.4(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)): + vite-hot-client@2.0.4(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): dependencies: - vite: 6.3.3(@types/node@22.13.5)(yaml@2.7.0) + vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) - vite-plugin-inspect@11.0.1(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)): + vite-plugin-inspect@11.0.1(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): dependencies: ansis: 3.17.0 debug: 4.4.0 @@ -9297,8 +9297,8 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.4 - vite: 6.3.3(@types/node@22.13.5)(yaml@2.7.0) - vite-dev-rpc: 1.0.7(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)) + vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) + vite-dev-rpc: 1.0.7(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) transitivePeerDependencies: - supports-color @@ -9306,7 +9306,7 @@ snapshots: dependencies: lib-esm: 0.4.2 - vite-plugin-solid@2.11.6(solid-js@1.9.5)(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)): + vite-plugin-solid@2.11.6(solid-js@1.9.5)(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 @@ -9314,12 +9314,12 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.3.3(@types/node@22.13.5)(yaml@2.7.0) - vitefu: 1.0.6(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)) + vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) transitivePeerDependencies: - supports-color - vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0): + vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0): dependencies: esbuild: 0.25.3 fdir: 6.4.4(picomatch@4.0.2) @@ -9332,9 +9332,9 @@ snapshots: fsevents: 2.3.3 yaml: 2.7.0 - vitefu@1.0.6(vite@6.3.3(@types/node@22.13.5)(yaml@2.7.0)): + vitefu@1.0.6(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): optionalDependencies: - vite: 6.3.3(@types/node@22.13.5)(yaml@2.7.0) + vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) vudio@2.1.1(patch_hash=0e06c2ed11c02bdc490c209fa80070e98517c2735c641f5738b6e15d7dc1959d): {} From 64f87d4fec9734230ab94a111b7fb8b5bba82c7d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 20:52:35 +0900 Subject: [PATCH 03/46] chore(deps): update dependency typescript-eslint to v8.32.0 (#3304) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 140 ++++++++++++++++++++++++------------------------- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index 4d590a71..324c79a5 100644 --- a/package.json +++ b/package.json @@ -338,7 +338,7 @@ "playwright": "1.52.0", "rollup": "4.40.0", "typescript": "5.8.3", - "typescript-eslint": "8.31.0", + "typescript-eslint": "8.32.0", "utf-8-validate": "6.0.5", "vite": "6.3.4", "vite-plugin-inspect": "11.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16b3c547..019bdc71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -306,7 +306,7 @@ importers: version: 4.3.4(eslint-plugin-import@2.31.0)(eslint@9.25.1) eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) + version: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) eslint-plugin-prettier: specifier: 5.2.6 version: 5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.2(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2) @@ -326,8 +326,8 @@ importers: specifier: 5.8.3 version: 5.8.3 typescript-eslint: - specifier: 8.31.0 - version: 8.31.0(eslint@9.25.1)(typescript@5.8.3) + specifier: 8.32.0 + version: 8.32.0(eslint@9.25.1)(typescript@5.8.3) utf-8-validate: specifier: 6.0.5 version: 6.0.5 @@ -686,8 +686,8 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -1296,51 +1296,51 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.31.0': - resolution: {integrity: sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==} + '@typescript-eslint/eslint-plugin@8.32.0': + resolution: {integrity: sha512-/jU9ettcntkBFmWUzzGgsClEi2ZFiikMX5eEQsmxIAWMOn4H3D4rvHssstmAHGVvrYnaMqdWWWg0b5M6IN/MTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.31.0': - resolution: {integrity: sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==} + '@typescript-eslint/parser@8.32.0': + resolution: {integrity: sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.31.0': - resolution: {integrity: sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==} + '@typescript-eslint/scope-manager@8.32.0': + resolution: {integrity: sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.31.0': - resolution: {integrity: sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==} + '@typescript-eslint/type-utils@8.32.0': + resolution: {integrity: sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.31.0': - resolution: {integrity: sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==} + '@typescript-eslint/types@8.32.0': + resolution: {integrity: sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.31.0': - resolution: {integrity: sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==} + '@typescript-eslint/typescript-estree@8.32.0': + resolution: {integrity: sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.31.0': - resolution: {integrity: sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==} + '@typescript-eslint/utils@8.32.0': + resolution: {integrity: sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.31.0': - resolution: {integrity: sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==} + '@typescript-eslint/visitor-keys@8.32.0': + resolution: {integrity: sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-darwin-arm64@1.6.3': @@ -4268,8 +4268,8 @@ packages: truncate-utf8-bytes@1.0.2: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - ts-api-utils@2.0.1: - resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -4319,8 +4319,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.31.0: - resolution: {integrity: sha512-u+93F0sB0An8WEAPtwxVhFby573E8ckdjwUUQUj9QA4v8JAvgtoDdIyYR3XFwFHq2W1KJ1AurwJCO+w+Y1ixyQ==} + typescript-eslint@8.32.0: + resolution: {integrity: sha512-UMq2kxdXCzinFFPsXc9o2ozIpYCCOiEC46MG3yEh5Vipq6BO27otTtEBZA1fQ66DulEUgE97ucQ/3YY66CPg0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5028,7 +5028,7 @@ snapshots: '@esbuild/win32-x64@0.25.3': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.25.1)': + '@eslint-community/eslint-utils@4.7.0(eslint@9.25.1)': dependencies: eslint: 9.25.1 eslint-visitor-keys: 3.4.3 @@ -5706,81 +5706,81 @@ snapshots: '@types/node': 22.13.5 optional: true - '@typescript-eslint/eslint-plugin@8.31.0(@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3))(eslint@9.25.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint@9.25.1)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.31.0(eslint@9.25.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.31.0 - '@typescript-eslint/type-utils': 8.31.0(eslint@9.25.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.0(eslint@9.25.1)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.31.0 + '@typescript-eslint/parser': 8.32.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.0 + '@typescript-eslint/type-utils': 8.32.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.0 eslint: 9.25.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.8.3) + ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3)': + '@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.31.0 - '@typescript-eslint/types': 8.31.0 - '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.31.0 + '@typescript-eslint/scope-manager': 8.32.0 + '@typescript-eslint/types': 8.32.0 + '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.0 debug: 4.4.0 eslint: 9.25.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.31.0': + '@typescript-eslint/scope-manager@8.32.0': dependencies: - '@typescript-eslint/types': 8.31.0 - '@typescript-eslint/visitor-keys': 8.31.0 + '@typescript-eslint/types': 8.32.0 + '@typescript-eslint/visitor-keys': 8.32.0 - '@typescript-eslint/type-utils@8.31.0(eslint@9.25.1)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.32.0(eslint@9.25.1)(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.25.1)(typescript@5.8.3) debug: 4.4.0 eslint: 9.25.1 - ts-api-utils: 2.0.1(typescript@5.8.3) + ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.31.0': {} + '@typescript-eslint/types@8.32.0': {} - '@typescript-eslint/typescript-estree@8.31.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.32.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.31.0 - '@typescript-eslint/visitor-keys': 8.31.0 + '@typescript-eslint/types': 8.32.0 + '@typescript-eslint/visitor-keys': 8.32.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.3) + ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.31.0(eslint@9.25.1)(typescript@5.8.3)': + '@typescript-eslint/utils@8.32.0(eslint@9.25.1)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.25.1) - '@typescript-eslint/scope-manager': 8.31.0 - '@typescript-eslint/types': 8.31.0 - '@typescript-eslint/typescript-estree': 8.31.0(typescript@5.8.3) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1) + '@typescript-eslint/scope-manager': 8.32.0 + '@typescript-eslint/types': 8.32.0 + '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) eslint: 9.25.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.31.0': + '@typescript-eslint/visitor-keys@8.32.0': dependencies: - '@typescript-eslint/types': 8.31.0 + '@typescript-eslint/types': 8.32.0 eslint-visitor-keys: 4.2.0 '@unrs/resolver-binding-darwin-arm64@1.6.3': @@ -6968,7 +6968,7 @@ snapshots: eslint-import-resolver-exports@1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.25.1): dependencies: eslint: 9.25.1 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) resolve.exports: 2.0.3 eslint-import-resolver-node@0.3.9: @@ -6989,22 +6989,22 @@ snapshots: tinyglobby: 0.2.13 unrs-resolver: 1.6.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.31.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.0(eslint@9.25.1)(typescript@5.8.3) eslint: 9.25.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import@2.31.0)(eslint@9.25.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -7015,7 +7015,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.25.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -7027,7 +7027,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.31.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.0(eslint@9.25.1)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -7054,7 +7054,7 @@ snapshots: eslint@9.25.1: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.25.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.1 @@ -9088,7 +9088,7 @@ snapshots: dependencies: utf8-byte-length: 1.0.5 - ts-api-utils@2.0.1(typescript@5.8.3): + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: typescript: 5.8.3 @@ -9152,11 +9152,11 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.31.0(eslint@9.25.1)(typescript@5.8.3): + typescript-eslint@8.32.0(eslint@9.25.1)(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.31.0(@typescript-eslint/parser@8.31.0(eslint@9.25.1)(typescript@5.8.3))(eslint@9.25.1)(typescript@5.8.3) - '@typescript-eslint/parser': 8.31.0(eslint@9.25.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.25.1)(typescript@5.8.3) eslint: 9.25.1 typescript: 5.8.3 transitivePeerDependencies: From 079e625c69a2e7a7bd85bffb0c69efd1f00ef73a Mon Sep 17 00:00:00 2001 From: Franz DC Date: Sat, 10 May 2025 19:52:56 +0800 Subject: [PATCH 04/46] fix(album-actions): use playlist shelf for playlist detection (#3306) --- src/plugins/album-actions/index.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/album-actions/index.ts b/src/plugins/album-actions/index.ts index fb2950dc..a8080c8b 100644 --- a/src/plugins/album-actions/index.ts +++ b/src/plugins/album-actions/index.ts @@ -61,8 +61,8 @@ export default createPlugin< ]; //Finds the playlist const playlist = - document.querySelector('ytmusic-shelf-renderer') ?? - document.querySelector('ytmusic-playlist-shelf-renderer')!; + document.querySelector('ytmusic-playlist-shelf-renderer') ?? + document.querySelector('ytmusic-shelf-renderer')!; // Adds an observer for every button, so it gets updated when one is clicked this.changeObserver?.disconnect(); this.changeObserver = new MutationObserver(() => { @@ -157,9 +157,9 @@ export default createPlugin< if (loader.children.length != 0) return; this.loadObserver?.disconnect(); let playlistButtons: NodeListOf | undefined; - const playlist = document.querySelector('ytmusic-shelf-renderer') - ? document.querySelector('ytmusic-shelf-renderer') - : document.querySelector('ytmusic-playlist-shelf-renderer'); + const playlist = + document.querySelector('ytmusic-playlist-shelf-renderer') ?? + document.querySelector('ytmusic-shelf-renderer'); switch (id) { case 'allundislike': playlistButtons = playlist?.querySelectorAll( From 733866efea56af58044db0a5dd73794568c0a72b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 20:57:33 +0900 Subject: [PATCH 05/46] fix(deps): update dependency i18next to v25.1.2 (#3305) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 324c79a5..a1fcf164 100644 --- a/package.json +++ b/package.json @@ -279,7 +279,7 @@ "hono": "4.7.7", "howler": "2.2.4", "html-to-text": "9.0.5", - "i18next": "25.0.1", + "i18next": "25.1.2", "jimp": "1.6.0", "keyboardevent-from-electron-accelerator": "2.0.0", "keyboardevents-areequal": "0.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 019bdc71..579c9018 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -154,8 +154,8 @@ importers: specifier: 9.0.5 version: 9.0.5 i18next: - specifier: 25.0.1 - version: 25.0.1(typescript@5.8.3) + specifier: 25.1.2 + version: 25.1.2(typescript@5.8.3) jimp: specifier: 1.6.0 version: 1.6.0 @@ -2769,8 +2769,8 @@ packages: humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - i18next@25.0.1: - resolution: {integrity: sha512-8S8PyZbrymJZn3DaN70/34JYWNhsqrU6yA4MuzcygJBv+41dgNMocEA8h+kV1P7MCc1ll03lOTOIXE7mpNCicw==} + i18next@25.1.2: + resolution: {integrity: sha512-SP63m8LzdjkrAjruH7SCI3ndPSgjt4/wX7ouUUOzCW/eY+HzlIo19IQSfYA9X3qRiRP1SYtaTsg/Oz/PGsfD8w==} peerDependencies: typescript: ^5 peerDependenciesMeta: @@ -7550,7 +7550,7 @@ snapshots: dependencies: ms: 2.1.3 - i18next@25.0.1(typescript@5.8.3): + i18next@25.1.2(typescript@5.8.3): dependencies: '@babel/runtime': 7.27.0 optionalDependencies: From d84c3085728175f44c35c667ca6fd7cdd2151426 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 22:12:18 +0900 Subject: [PATCH 06/46] chore(deps): update dependency @babel/runtime to v7.27.1 (#3340) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 27 ++++++++++----------------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index a1fcf164..d06ef9c7 100644 --- a/package.json +++ b/package.json @@ -227,7 +227,7 @@ "xml2js": "0.6.2", "node-fetch": "3.3.2", "@electron/universal": "2.0.2", - "@babel/runtime": "7.27.0" + "@babel/runtime": "7.27.1" }, "patchedDependencies": { "vudio@2.1.1": "patches/vudio@2.1.1.patch", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 579c9018..f7cf758d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ overrides: xml2js: 0.6.2 node-fetch: 3.3.2 '@electron/universal': 2.0.2 - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 patchedDependencies: '@malept/flatpak-bundler@0.4.0': @@ -435,8 +435,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.27.0': - resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} + '@babel/runtime@7.27.1': + resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} engines: {node: '>=6.9.0'} '@babel/template@7.27.0': @@ -3816,9 +3816,6 @@ packages: regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -4769,9 +4766,7 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/runtime@7.27.0': - dependencies: - regenerator-runtime: 0.14.1 + '@babel/runtime@7.27.1': {} '@babel/template@7.27.0': dependencies: @@ -6075,13 +6070,13 @@ snapshots: babel-plugin-macros@2.8.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 cosmiconfig: 6.0.0 resolve: 1.22.10 babel-plugin-preval@4.0.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 babel-plugin-macros: 2.8.0 require-from-string: 2.0.2 @@ -6201,12 +6196,12 @@ snapshots: butterchurn-presets@3.0.0-beta.4: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 butterchurn@3.0.0-beta.4: dependencies: '@assemblyscript/loader': 0.17.14 - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 ecma-proposal-math-extensions: 0.0.2 eel-wasm: 0.0.15 @@ -7552,7 +7547,7 @@ snapshots: i18next@25.1.2(typescript@5.8.3): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 optionalDependencies: typescript: 5.8.3 @@ -7906,7 +7901,7 @@ snapshots: kuroshiro@1.2.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 lazy-val@1.0.5: {} @@ -8558,8 +8553,6 @@ snapshots: regenerator-runtime@0.13.11: {} - regenerator-runtime@0.14.1: {} - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 From f35328fab445839292b48ab62fffa79d95b45e69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 22:12:26 +0900 Subject: [PATCH 07/46] fix(deps): update dependency @hono/zod-validator to v0.5.0 (#3295) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index d06ef9c7..5044d7c8 100644 --- a/package.json +++ b/package.json @@ -248,7 +248,7 @@ "@hono/node-server": "1.14.1", "@hono/swagger-ui": "0.5.1", "@hono/zod-openapi": "0.19.6", - "@hono/zod-validator": "0.4.3", + "@hono/zod-validator": "0.5.0", "@jellybrick/dbus-next": "0.10.3", "@jellybrick/electron-better-web-request": "1.0.4", "@jellybrick/mpris-service": "2.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7cf758d..c5136331 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,8 +61,8 @@ importers: specifier: 0.19.6 version: 0.19.6(hono@4.7.7)(zod@3.24.3) '@hono/zod-validator': - specifier: 0.4.3 - version: 0.4.3(hono@4.7.7)(zod@3.24.3) + specifier: 0.5.0 + version: 0.5.0(hono@4.7.7)(zod@3.24.3) '@jellybrick/dbus-next': specifier: 0.10.3 version: 0.10.3 @@ -787,12 +787,6 @@ packages: hono: '>=4.3.6' zod: 3.* - '@hono/zod-validator@0.4.3': - resolution: {integrity: sha512-xIgMYXDyJ4Hj6ekm9T9Y27s080Nl9NXHcJkOvkXPhubOLj8hZkOL8pDnnXfvCf5xEE8Q4oMFenQUZZREUY2gqQ==} - peerDependencies: - hono: '>=3.9.0' - zod: ^3.19.1 - '@hono/zod-validator@0.5.0': resolution: {integrity: sha512-ds5bW6DCgAnNHP33E3ieSbaZFd5dkV52ZjyaXtGoR06APFrCtzAsKZxTHwOrJNBdXsi0e5wNwo5L4nVEVnJUdg==} peerDependencies: @@ -5134,11 +5128,6 @@ snapshots: hono: 4.7.7 zod: 3.24.3 - '@hono/zod-validator@0.4.3(hono@4.7.7)(zod@3.24.3)': - dependencies: - hono: 4.7.7 - zod: 3.24.3 - '@hono/zod-validator@0.5.0(hono@4.7.7)(zod@3.24.3)': dependencies: hono: 4.7.7 From e91d44d0184b0b7bb1006652e3aa5ab73da52fef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 22:14:03 +0900 Subject: [PATCH 08/46] chore(deps): update dependency @electron/universal to v2.0.3 (#3341) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5044d7c8..11e19fa3 100644 --- a/package.json +++ b/package.json @@ -226,7 +226,7 @@ "node-gyp": "11.2.0", "xml2js": "0.6.2", "node-fetch": "3.3.2", - "@electron/universal": "2.0.2", + "@electron/universal": "2.0.3", "@babel/runtime": "7.27.1" }, "patchedDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5136331..939dea74 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: node-gyp: 11.2.0 xml2js: 0.6.2 node-fetch: 3.3.2 - '@electron/universal': 2.0.2 + '@electron/universal': 2.0.3 '@babel/runtime': 7.27.1 patchedDependencies: @@ -518,8 +518,8 @@ packages: peerDependencies: electron: '>= 13.0.0' - '@electron/universal@2.0.2': - resolution: {integrity: sha512-mqY1szx5/d5YLvfCDWWoJdkSIjIz+NdWN4pN0r78lYiE7De+slLpuF3lVxIT+hlJnwk5sH2wFRMl6/oUgUVO3A==} + '@electron/universal@2.0.3': + resolution: {integrity: sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==} engines: {node: '>=16.4'} '@electron/windows-sign@1.2.1': @@ -4903,7 +4903,7 @@ snapshots: dependencies: electron: 34.5.3 - '@electron/universal@2.0.2': + '@electron/universal@2.0.3': dependencies: '@electron/asar': 3.3.1 '@malept/cross-spawn-promise': 2.0.0 @@ -5926,7 +5926,7 @@ snapshots: '@electron/notarize': 2.5.0 '@electron/osx-sign': 1.3.1 '@electron/rebuild': 3.7.0 - '@electron/universal': 2.0.2 + '@electron/universal': 2.0.3 '@malept/flatpak-bundler': 0.4.0(patch_hash=c787371eeb2af011ea934e8818a0dad6d7dcb2df31bbb1686babc7231af0183c) '@types/fs-extra': 9.0.13 async-exit-hook: 2.0.1 From e5cef89a27bf93348b5cd6907636689a1a932f36 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 22:14:37 +0900 Subject: [PATCH 09/46] chore(deps): update dependency rollup to v4.40.2 (#3301) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 172 ++++++++++++++++++++++++------------------------- 2 files changed, 87 insertions(+), 87 deletions(-) diff --git a/package.json b/package.json index 11e19fa3..a15d8466 100644 --- a/package.json +++ b/package.json @@ -336,7 +336,7 @@ "glob": "11.0.2", "node-gyp": "11.2.0", "playwright": "1.52.0", - "rollup": "4.40.0", + "rollup": "4.40.2", "typescript": "5.8.3", "typescript-eslint": "8.32.0", "utf-8-validate": "6.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 939dea74..39fb5338 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -320,8 +320,8 @@ importers: specifier: 1.52.0 version: 1.52.0 rollup: - specifier: 4.40.0 - version: 4.40.0 + specifier: 4.40.2 + version: 4.40.2 typescript: specifier: 5.8.3 version: 5.8.3 @@ -1042,103 +1042,103 @@ packages: '@remusao/trie@2.0.0': resolution: {integrity: sha512-YmVfZrd+igKXJMuAvsNdDnUAyoNw7M+9e2ij6UsaZFZGQzLd75pbxhiuFmdphEXi/s3uXe25+wtFRWjLA2Ho0Q==} - '@rollup/rollup-android-arm-eabi@4.40.0': - resolution: {integrity: sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==} + '@rollup/rollup-android-arm-eabi@4.40.2': + resolution: {integrity: sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.40.0': - resolution: {integrity: sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==} + '@rollup/rollup-android-arm64@4.40.2': + resolution: {integrity: sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.40.0': - resolution: {integrity: sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==} + '@rollup/rollup-darwin-arm64@4.40.2': + resolution: {integrity: sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.40.0': - resolution: {integrity: sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==} + '@rollup/rollup-darwin-x64@4.40.2': + resolution: {integrity: sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.40.0': - resolution: {integrity: sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==} + '@rollup/rollup-freebsd-arm64@4.40.2': + resolution: {integrity: sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.40.0': - resolution: {integrity: sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==} + '@rollup/rollup-freebsd-x64@4.40.2': + resolution: {integrity: sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.40.0': - resolution: {integrity: sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==} + '@rollup/rollup-linux-arm-gnueabihf@4.40.2': + resolution: {integrity: sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.40.0': - resolution: {integrity: sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==} + '@rollup/rollup-linux-arm-musleabihf@4.40.2': + resolution: {integrity: sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.40.0': - resolution: {integrity: sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==} + '@rollup/rollup-linux-arm64-gnu@4.40.2': + resolution: {integrity: sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.40.0': - resolution: {integrity: sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==} + '@rollup/rollup-linux-arm64-musl@4.40.2': + resolution: {integrity: sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.40.0': - resolution: {integrity: sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==} + '@rollup/rollup-linux-loongarch64-gnu@4.40.2': + resolution: {integrity: sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': - resolution: {integrity: sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': + resolution: {integrity: sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.40.0': - resolution: {integrity: sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==} + '@rollup/rollup-linux-riscv64-gnu@4.40.2': + resolution: {integrity: sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.40.0': - resolution: {integrity: sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==} + '@rollup/rollup-linux-riscv64-musl@4.40.2': + resolution: {integrity: sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.40.0': - resolution: {integrity: sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==} + '@rollup/rollup-linux-s390x-gnu@4.40.2': + resolution: {integrity: sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.40.0': - resolution: {integrity: sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==} + '@rollup/rollup-linux-x64-gnu@4.40.2': + resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.40.0': - resolution: {integrity: sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==} + '@rollup/rollup-linux-x64-musl@4.40.2': + resolution: {integrity: sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.40.0': - resolution: {integrity: sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==} + '@rollup/rollup-win32-arm64-msvc@4.40.2': + resolution: {integrity: sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.40.0': - resolution: {integrity: sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==} + '@rollup/rollup-win32-ia32-msvc@4.40.2': + resolution: {integrity: sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.40.0': - resolution: {integrity: sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==} + '@rollup/rollup-win32-x64-msvc@4.40.2': + resolution: {integrity: sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==} cpu: [x64] os: [win32] @@ -3885,8 +3885,8 @@ packages: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} - rollup@4.40.0: - resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} + rollup@4.40.2: + resolution: {integrity: sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -5473,64 +5473,64 @@ snapshots: '@remusao/trie@2.0.0': {} - '@rollup/rollup-android-arm-eabi@4.40.0': + '@rollup/rollup-android-arm-eabi@4.40.2': optional: true - '@rollup/rollup-android-arm64@4.40.0': + '@rollup/rollup-android-arm64@4.40.2': optional: true - '@rollup/rollup-darwin-arm64@4.40.0': + '@rollup/rollup-darwin-arm64@4.40.2': optional: true - '@rollup/rollup-darwin-x64@4.40.0': + '@rollup/rollup-darwin-x64@4.40.2': optional: true - '@rollup/rollup-freebsd-arm64@4.40.0': + '@rollup/rollup-freebsd-arm64@4.40.2': optional: true - '@rollup/rollup-freebsd-x64@4.40.0': + '@rollup/rollup-freebsd-x64@4.40.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.40.0': + '@rollup/rollup-linux-arm-gnueabihf@4.40.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.40.0': + '@rollup/rollup-linux-arm-musleabihf@4.40.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.40.0': + '@rollup/rollup-linux-arm64-gnu@4.40.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.40.0': + '@rollup/rollup-linux-arm64-musl@4.40.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.40.0': + '@rollup/rollup-linux-loongarch64-gnu@4.40.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.40.0': + '@rollup/rollup-linux-riscv64-gnu@4.40.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.40.0': + '@rollup/rollup-linux-riscv64-musl@4.40.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.40.0': + '@rollup/rollup-linux-s390x-gnu@4.40.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.40.0': + '@rollup/rollup-linux-x64-gnu@4.40.2': optional: true - '@rollup/rollup-linux-x64-musl@4.40.0': + '@rollup/rollup-linux-x64-musl@4.40.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.40.0': + '@rollup/rollup-win32-arm64-msvc@4.40.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.40.0': + '@rollup/rollup-win32-ia32-msvc@4.40.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.40.0': + '@rollup/rollup-win32-x64-msvc@4.40.2': optional: true '@rtsao/scc@1.1.0': {} @@ -8617,30 +8617,30 @@ snapshots: sprintf-js: 1.1.3 optional: true - rollup@4.40.0: + rollup@4.40.2: dependencies: '@types/estree': 1.0.7 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.40.0 - '@rollup/rollup-android-arm64': 4.40.0 - '@rollup/rollup-darwin-arm64': 4.40.0 - '@rollup/rollup-darwin-x64': 4.40.0 - '@rollup/rollup-freebsd-arm64': 4.40.0 - '@rollup/rollup-freebsd-x64': 4.40.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.40.0 - '@rollup/rollup-linux-arm-musleabihf': 4.40.0 - '@rollup/rollup-linux-arm64-gnu': 4.40.0 - '@rollup/rollup-linux-arm64-musl': 4.40.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.40.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.40.0 - '@rollup/rollup-linux-riscv64-gnu': 4.40.0 - '@rollup/rollup-linux-riscv64-musl': 4.40.0 - '@rollup/rollup-linux-s390x-gnu': 4.40.0 - '@rollup/rollup-linux-x64-gnu': 4.40.0 - '@rollup/rollup-linux-x64-musl': 4.40.0 - '@rollup/rollup-win32-arm64-msvc': 4.40.0 - '@rollup/rollup-win32-ia32-msvc': 4.40.0 - '@rollup/rollup-win32-x64-msvc': 4.40.0 + '@rollup/rollup-android-arm-eabi': 4.40.2 + '@rollup/rollup-android-arm64': 4.40.2 + '@rollup/rollup-darwin-arm64': 4.40.2 + '@rollup/rollup-darwin-x64': 4.40.2 + '@rollup/rollup-freebsd-arm64': 4.40.2 + '@rollup/rollup-freebsd-x64': 4.40.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.40.2 + '@rollup/rollup-linux-arm-musleabihf': 4.40.2 + '@rollup/rollup-linux-arm64-gnu': 4.40.2 + '@rollup/rollup-linux-arm64-musl': 4.40.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.40.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.40.2 + '@rollup/rollup-linux-riscv64-gnu': 4.40.2 + '@rollup/rollup-linux-riscv64-musl': 4.40.2 + '@rollup/rollup-linux-s390x-gnu': 4.40.2 + '@rollup/rollup-linux-x64-gnu': 4.40.2 + '@rollup/rollup-linux-x64-musl': 4.40.2 + '@rollup/rollup-win32-arm64-msvc': 4.40.2 + '@rollup/rollup-win32-ia32-msvc': 4.40.2 + '@rollup/rollup-win32-x64-msvc': 4.40.2 fsevents: 2.3.3 run-applescript@7.0.0: {} @@ -9307,7 +9307,7 @@ snapshots: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.3 - rollup: 4.40.0 + rollup: 4.40.2 tinyglobby: 0.2.13 optionalDependencies: '@types/node': 22.13.5 From 006aacfb35b5cb31abd6a46d27bc15988a776df7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 22:14:47 +0900 Subject: [PATCH 10/46] chore(deps): update dependency discord-api-types to v0.38.4 (#3342) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index a15d8466..ce782e97 100644 --- a/package.json +++ b/package.json @@ -320,7 +320,7 @@ "builtin-modules": "5.0.0", "cross-env": "7.0.3", "del-cli": "6.0.0", - "discord-api-types": "0.38.1", + "discord-api-types": "0.38.4", "electron": "34.5.3", "electron-builder": "26.0.12", "electron-builder-squirrel-windows": "26.0.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39fb5338..44cb420b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -272,8 +272,8 @@ importers: specifier: 6.0.0 version: 6.0.0 discord-api-types: - specifier: 0.38.1 - version: 0.38.1 + specifier: 0.38.4 + version: 0.38.4 electron: specifier: 34.5.3 version: 34.5.3 @@ -2053,8 +2053,8 @@ packages: discord-api-types@0.37.120: resolution: {integrity: sha512-7xpNK0EiWjjDFp2nAhHXezE4OUWm7s1zhc/UXXN6hnFFU8dfoPHgV0Hx0RPiCa3ILRpdeh152icc68DGCyXYIw==} - discord-api-types@0.38.1: - resolution: {integrity: sha512-vsjsqjAuxsPhiwbPjTBeGQaDPlizFmSkU0mTzFGMgRxqCDIRBR7iTY74HacpzrDV0QtERHRKQEk1tq7drZUtHg==} + discord-api-types@0.38.4: + resolution: {integrity: sha512-EgxEQ4vrJUjXaTjif4ItOGoD6TH87nfESJ6XBSqoVgqkZrcmdLPjkciCzuIMdHxLjY2al3BcIcElqnpOoaqxHg==} dmg-builder@26.0.12: resolution: {integrity: sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==} @@ -6574,7 +6574,7 @@ snapshots: discord-api-types@0.37.120: {} - discord-api-types@0.38.1: {} + discord-api-types@0.38.4: {} dmg-builder@26.0.12(electron-builder-squirrel-windows@26.0.12): dependencies: From 5e296283512a2ee86853a7ce4801061f69c314d9 Mon Sep 17 00:00:00 2001 From: Volodia Kraplich Date: Sat, 10 May 2025 16:15:52 +0300 Subject: [PATCH 11/46] docs: Add Ukrainian translation (#3338) --- README.md | 2 +- docs/readme/README-es.md | 2 +- docs/readme/README-fr.md | 2 +- docs/readme/README-hu.md | 2 +- docs/readme/README-is.md | 2 +- docs/readme/README-ja.md | 2 +- docs/readme/README-ko.md | 2 +- docs/readme/README-pt.md | 2 +- docs/readme/README-ru.md | 2 +- docs/readme/README-uk.md | 372 +++++++++++++++++++++++++++++++++++++++ 10 files changed, 381 insertions(+), 9 deletions(-) create mode 100644 docs/readme/README-uk.md diff --git a/README.md b/README.md index 59523eb9..563adb1d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ -Read this in other languages: [🇰🇷](./docs/readme/README-ko.md), [🇫🇷](./docs/readme/README-fr.md), [🇮🇸](./docs/readme/README-is.md), [🇨🇱 🇪🇸](./docs/readme/README-es.md), [🇷🇺](./docs/readme/README-ru.md), [🇭🇺](./docs/readme/README-hu.md), [🇧🇷](./docs/readme/README-pt.md), [🇯🇵](./docs/readme/README-ja.md) +Read this in other languages: [🇰🇷](./docs/readme/README-ko.md), [🇫🇷](./docs/readme/README-fr.md), [🇮🇸](./docs/readme/README-is.md), [🇨🇱 🇪🇸](./docs/readme/README-es.md), [🇷🇺](./docs/readme/README-ru.md), [🇺🇦](./docs/readme/README-uk.md), [🇭🇺](./docs/readme/README-hu.md), [🇧🇷](./docs/readme/README-pt.md), [🇯🇵](./docs/readme/README-ja.md) **Electron wrapper around YouTube Music featuring:** diff --git a/docs/readme/README-es.md b/docs/readme/README-es.md index d8b08248..6dd6adce 100644 --- a/docs/readme/README-es.md +++ b/docs/readme/README-es.md @@ -21,7 +21,7 @@ -Lee esto en otros idiomas: [🏴 Inglés](../../README.md), [🇰🇷 Coreano](./README-ko.md), [🇫🇷 Francés](./README-fr.md), [🇮🇸 Islandés](./README-is.md), [🇪🇸 Español](./README-es.md), [🇷🇺 Ruso](./README-ru.md), [🇧🇷 Portugués](./README-pt.md), [🇯🇵 Japonés](./README-ja.md) +Lee esto en otros idiomas: [🏴 Inglés](../../README.md), [🇰🇷 Coreano](./README-ko.md), [🇫🇷 Francés](./README-fr.md), [🇮🇸 Islandés](./README-is.md), [🇪🇸 Español](./README-es.md), [🇷🇺 Ruso](./README-ru.md), [🇺🇦 Ucraniano](./README-uk.md), [🇧🇷 Portugués](./README-pt.md), [🇯🇵 Japonés](./README-ja.md) **Electron wrapper de YouTube Music con las siguientes características:** diff --git a/docs/readme/README-fr.md b/docs/readme/README-fr.md index e446348f..da0aa18d 100644 --- a/docs/readme/README-fr.md +++ b/docs/readme/README-fr.md @@ -21,7 +21,7 @@ -Lisez ceci dans d'autres langues: [🏴 Anglais](../../README.md), [🇰🇷 Coréen](./README-ko.md), [🇫🇷 Français](./README-fr.md), [🇮🇸 Islandais](./README-is.md), [🇪🇸 Espagnol](./README-es.md), [🇷🇺 Russe](./README-ru.md), [🇧🇷 Portugais](./README-pt.md), [🇯🇵 Japonais](./README-ja.md) +Lisez ceci dans d'autres langues: [🏴 Anglais](../../README.md), [🇰🇷 Coréen](./README-ko.md), [🇫🇷 Français](./README-fr.md), [🇮🇸 Islandais](./README-is.md), [🇪🇸 Espagnol](./README-es.md), [🇷🇺 Russe](./README-ru.md), [🇺🇦 Ukrainien](./README-uk.md), [🇧🇷 Portugais](./README-pt.md), [🇯🇵 Japonais](./README-ja.md) **Enveloppe Electron autour de YouTube Music offrant :** diff --git a/docs/readme/README-hu.md b/docs/readme/README-hu.md index 516b7c9b..6b473f87 100644 --- a/docs/readme/README-hu.md +++ b/docs/readme/README-hu.md @@ -21,7 +21,7 @@ -Olvasd el más nyelveken: [🏴 Angol](../../README.md), [🇰🇷 Korea](./README-ko.md), [🇫🇷 Francia](./README-fr.md), [🇮🇸 Izland](./README-is.md), [🇪🇸 Spanyol](./README-es.md), [🇷🇺 Orosz](./README-ru.md), [🇧🇷 Portugál](./README-pt.md), [🇯🇵 Japán](./README-ja.md) +Olvasd el más nyelveken: [🏴 Angol](../../README.md), [🇰🇷 Korea](./README-ko.md), [🇫🇷 Francia](./README-fr.md), [🇮🇸 Izland](./README-is.md), [🇪🇸 Spanyol](./README-es.md), [🇷🇺 Orosz](./README-ru.md), [🇺🇦 Ukrán](./README-uk.md), [🇧🇷 Portugál](./README-pt.md), [🇯🇵 Japán](./README-ja.md) **Electron keretrendszerre épülő alkalmazás a YouTube Music számára, amely a következőket kínálja:** diff --git a/docs/readme/README-is.md b/docs/readme/README-is.md index d5c32a77..ac53d62c 100644 --- a/docs/readme/README-is.md +++ b/docs/readme/README-is.md @@ -21,7 +21,7 @@ -Lestu þetta á öðrum tungumálum: [🏴 Ensku](../../README.md), [🇰🇷 Kóreska](./README-ko.md), [🇫🇷 Franska](./README-fr.md), [🇮🇸 Íslenskur](./README-is.md), [🇪🇸 Spænska](./README-es.md), [🇷🇺 Rússneska](./README-ru.md), [🇧🇷 Portúgalska](./README-pt.md), [🇯🇵 Japanska](./README-ja.md) +Lestu þetta á öðrum tungumálum: [🏴 Ensku](../../README.md), [🇰🇷 Kóreska](./README-ko.md), [🇫🇷 Franska](./README-fr.md), [🇮🇸 Íslenskur](./README-is.md), [🇪🇸 Spænska](./README-es.md), [🇷🇺 Rússneska](./README-ru.md), [🇺🇦 Úkraínska](./README-uk.md), [🇧🇷 Portúgalska](./README-pt.md), [🇯🇵 Japanska](./README-ja.md) **Electron umbúðir utan um YouTube Tónlist sem inniheldur:** diff --git a/docs/readme/README-ja.md b/docs/readme/README-ja.md index f9606d55..2e326715 100644 --- a/docs/readme/README-ja.md +++ b/docs/readme/README-ja.md @@ -21,7 +21,7 @@ -他の言語で読む: [🏴 英語](../../README.md), [🇰🇷 韓国語](./README-ko.md), [🇫🇷 フランス語](./README-fr.md), [🇮🇸 アイスランド語](./README-is.md), [🇪🇸 スペイン語](./README-es.md), [🇷🇺 ロシア語](./README-ru.md) +他の言語で読む: [🏴 英語](../../README.md), [🇰🇷 韓国語](./README-ko.md), [🇫🇷 フランス語](./README-fr.md), [🇮🇸 アイスランド語](./README-is.md), [🇪🇸 スペイン語](./README-es.md), [🇷🇺 ロシア語](./README-ru.md), [🇺🇦 ウクライナ語](./README-uk.md) **YouTube MusicのElectronラッパーには以下の機能があります:** diff --git a/docs/readme/README-ko.md b/docs/readme/README-ko.md index d758113b..dc3d4c30 100644 --- a/docs/readme/README-ko.md +++ b/docs/readme/README-ko.md @@ -20,7 +20,7 @@ -다른 언어로 읽어보세요: [🏴 영어](../../README.md), [🇰🇷 한국인](./README-ko.md), [🇫🇷 프랑스 국민](./README-fr.md), [🇮🇸 아이슬란드어](./README-is.md), [🇪🇸 스페인 사람](./README-es.md), [🇷🇺 러시아인](./README-ru.md), [🇧🇷 포르투갈어](./README-pt.md), [🇯🇵 일본어](./README-ja.md) +다른 언어로 읽어보세요: [🏴 영어](../../README.md), [🇰🇷 한국인](./README-ko.md), [🇫🇷 프랑스 국민](./README-fr.md), [🇮🇸 아이슬란드어](./README-is.md), [🇪🇸 스페인 사람](./README-es.md), [🇷🇺 러시아인](./README-ru.md), [🇺🇦 우크라이나어](./README-uk.md), [🇧🇷 포르투갈어](./README-pt.md), [🇯🇵 일본어](./README-ja.md) **유튜브 뮤직의 Electron 래퍼; 기능:** diff --git a/docs/readme/README-pt.md b/docs/readme/README-pt.md index 9ec48682..0728ccff 100644 --- a/docs/readme/README-pt.md +++ b/docs/readme/README-pt.md @@ -21,7 +21,7 @@ -Leia em outros idiomas: [🏴 Inglês](../../README.md), [🇰🇷 Coreano](./README-ko.md), [🇫🇷 Francês](./README-fr.md), [🇮🇸 Islandês](./README-is.md), [🇪🇸 Espanhol](./README-es.md), [🇷🇺 Russo](./README-ru.md), [🇧🇷 Português](./README-pt.md) +Leia em outros idiomas: [🏴 Inglês](../../README.md), [🇰🇷 Coreano](./README-ko.md), [🇫🇷 Francês](./README-fr.md), [🇮🇸 Islandês](./README-is.md), [🇪🇸 Espanhol](./README-es.md), [🇷🇺 Russo](./README-ru.md), [🇺🇦 Ucraniano](./README-uk.md), [🇧🇷 Português](./README-pt.md) **Wrapper do Electron para o YouTube Music com os seguintes recursos:** diff --git a/docs/readme/README-ru.md b/docs/readme/README-ru.md index c8b451f3..93e7ea86 100644 --- a/docs/readme/README-ru.md +++ b/docs/readme/README-ru.md @@ -21,7 +21,7 @@ -Прочтите это на других языках: [🏴 Английский](../../README.md), [🇰🇷 корейский](./README-ko.md), [🇫🇷 Французский](./README-fr.md), [🇮🇸 исландский](./README-is.md), [🇪🇸 испанский](./README-es.md), [🇷🇺 Русский](./README-ru.md), [🇧🇷 Португальский](./README-pt.md) +Прочтите это на других языках: [🏴 Английский](../../README.md), [🇰🇷 корейский](./README-ko.md), [🇫🇷 Французский](./README-fr.md), [🇮🇸 исландский](./README-is.md), [🇪🇸 испанский](./README-es.md), [🇷🇺 Русский](./README-ru.md), [🇺🇦 Украинский](./README-uk.md), [🇧🇷 Португальский](./README-pt.md) **Клиент для YouTube Music основанный на Electron с поддержкой:** diff --git a/docs/readme/README-uk.md b/docs/readme/README-uk.md new file mode 100644 index 00000000..ce32f3a0 --- /dev/null +++ b/docs/readme/README-uk.md @@ -0,0 +1,372 @@ +
+ +# YouTube Music + +[![GitHub release](https://img.shields.io/github/release/th-ch/youtube-music.svg?style=for-the-badge&logo=youtube-music)](https://github.com/th-ch/youtube-music/releases/) +[![GitHub license](https://img.shields.io/github/license/th-ch/youtube-music.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/license) +[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/eslint.config.mjs) +[![Build status](https://img.shields.io/github/actions/workflow/status/th-ch/youtube-music/build.yml?branch=master&style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/) +[![GitHub All Releases](https://img.shields.io/github/downloads/th-ch/youtube-music/total?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/) +[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge&logo=youtube-music)](https://aur.archlinux.org/packages/youtube-music-bin) +[![Known Vulnerabilities](https://snyk.io/test/github/th-ch/youtube-music/badge.svg)](https://snyk.io/test/github/th-ch/youtube-music) + +
+ +![Знімок екрана](/web/screenshot.png "Знімок екрана") + + +
+ + YouTube Music SVG + +
+ +Прочитайте це іншими мовами: [🏴 Англійська](../../README.md), [🇰🇷 Корейська](./README-ko.md), [🇫🇷 Французька](./README-fr.md), [🇮🇸 Ісландська](./README-is.md), [🇪🇸 Іспанська](./README-es.md), [🇷🇺 Російська](./README-ru.md), [🇺🇦 Українська](./README-uk.md), [🇭🇺 Угорська](./README-hu.md), [🇧🇷 Португальська](./README-pt.md), [🇯🇵 Японська](./README-ja.md) + +**Клієнт YouTube Music на основі Electron, що має:** + +- Нативний вигляд і функціонал, що має на меті зберегти оригінальний інтерфейс +- Фреймворк для користувацьких плагінів: змінюйте YouTube Music відповідно до ваших потреб (стиль, вміст, функції), вмикайте/вимикайте плагіни одним клацанням миші + +## Демонстраційне зображення + +| Екран плеєра (колірна тема альбому та режим Ambient) | +|:---------------------------------------------------------------------------------------------------------:| +|![Screenshot1](https://github.com/th-ch/youtube-music/assets/16558115/53efdf73-b8fa-4d7b-a235-b96b91ea77fc)| + +## Зміст + +- [Можливості](#Можливості) +- [Доступні плагіни](#Доступні-плагіни) +- [Переклад](#Переклад) +- [Завантажити](#Завантажити) + - [Arch Linux](#arch-linux) + - [MacOS](#macos) + - [Windows](#windows) + - [Як встановити без підключення до Інтернету? (у Windows)](#Встановлення-без-підключення-до-Інтернету-у-Windows) +- [Теми](#Теми) +- [Розробка](#Розробка) +- [Створіть власні плагіни](#Створіть-власні-плагіни) + - [Створення плагіна](#Створення-плагіна) + - [Поширені випадки використання](#Поширені-випадки-використання) +- [Збірка](#Збірка) +- [Попередній перегляд для producción](#Попередній-перегляд-для-production) +- [Тести](#Тести) +- [Ліцензія](#Ліцензія) +- [Поширені запитання](#Поширені-запитання) + +## Можливості: + +- **Автоматичне підтвердження під час паузи** (Завжди ввімкнено): вимикає спливаюче вікно ["Продовжити перегляд?"](https://user-images.githubusercontent.com/61631665/129977894-01c60740-7ec6-4bf0-9a2c-25da24491b0e.png), + яке призупиняє музику через певний час + + - Та багато іншого... + +## Доступні плагіни: + +- **Блокувальник реклами**: Блокує всю рекламу та відстеження «з коробки» + +- **Дії з альбомом**: Додає кнопки «Скасувати "Не подобається"», «Не подобається», «Подобається» та «Скасувати "Подобається"», щоб застосувати це до всіх пісень у списку відтворення або альбомі + +- **Колірна тема альбому**: Застосовує динамічну тему та візуальні ефекти на основі колірної палітри альбому + +- **Режим Ambient**: Застосовує ефект освітлення, проектуючи м'які кольори з відео на фон екрана + +- **Аудіокомпресор**: Застосовує компресію до аудіо (знижує гучність найгучніших частин сигналу та підвищує гучність найтихіших частин) + +- **Розмиття панелі навігації**: робить панель навігації прозорою та розмитою + +- **Обхід вікових обмежень**: обходить перевірку віку YouTube + +- **Вибір субтитрів**: Увімкнути субтитри + +- **Компактна бічна панель**: Завжди встановлювати бічну панель у компактному режимі + +- **Плавний перехід**: Плавний перехід між піснями + +- **Вимкнути автопрогравання**: Кожна пісня починається в режимі "пауза" + +- **[Discord](https://discord.com/) Rich Presence**: Покажіть друзям, що ви слухаєте, за допомогою [Rich Presence](https://user-images.githubusercontent.com/28219076/104362104-a7a0b980-5513-11eb-9744-bb89eabe0016.png) + +- **Завантажувач**: завантажує MP3 [безпосередньо з інтерфейсу](https://user-images.githubusercontent.com/61631665/129977677-83a7d067-c192-45e1-98ae-b5a4927393be.png) [(youtube-dl)](https://github.com/ytdl-org/youtube-dl) + +- **Експоненціальна гучність**: Робить повзунок гучності [експоненціальним](https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/), щоб було легше вибирати нижчу гучність + +- **Меню в програмі**: [надає панелям модного, темного вигляду](https://user-images.githubusercontent.com/78568641/112215894-923dbf00-8c29-11eb-95c3-3ce15db27eca.png) + + > (дивіться [цей пост](https://github.com/th-ch/youtube-music/issues/410#issuecomment-952060709), якщо у вас виникли проблеми з доступом до меню після ввімкнення цього плагіна та опції приховування меню) + +- **Скробблер**: Додає підтримку скробблінгу для [Last.fm](https://www.last.fm/) та [ListenBrainz](https://listenbrainz.org/) + +- **Lumia Stream**: Додає підтримку [Lumia Stream](https://lumiastream.com/) + +- **Тексти пісень Genius**: Додає підтримку текстів для більшості пісень + +- **Музика разом**: Поділіться списком відтворення з іншими. Коли хост відтворює пісню, всі інші чутимуть ту саму пісню + +- **Навігація**: Стрілки навігації «Вперед»/«Назад» безпосередньо інтегровані в інтерфейс, як у вашому улюбленому браузері + +- **Без входу в Google**: Видаляє кнопки та посилання для входу в Google з інтерфейсу + +- **Сповіщення**: Відображає сповіщення, коли починає грати пісня ([інтерактивні сповіщення](https://user-images.githubusercontent.com/78568641/114102651-63ce0e00-98d0-11eb-9dfe-c5a02bb54f9c.png) доступні у Windows) + +- **Картинка в картинці**: дозволяє перемикати програму в режим «картинка в картинці» + +- **Швидкість відтворення**: Слухайте швидко, слухайте повільно! [Додає повзунок, який контролює швидкість пісні](https://user-images.githubusercontent.com/61631665/129976003-e55db5ba-bf42-448c-a059-26a009775e68.png) + +- **Точна гучність**: Точно керуйте гучністю за допомогою коліщатка миші/гарячих клавіш, з власним HUD та настроюваними кроками гучності + +- **Гарячі клавіші (та MPRIS)**: Дозволяє встановлювати глобальні гарячі клавіші для відтворення (відтворення/пауза/наступна/попередня) + вимкнути [екранне меню медіа](https://user-images.githubusercontent.com/84923831/128601225-afa38c1f-dea8-4209-9f72-0f84c1dd8b54.png) шляхом перевизначення медіаклавіш + увімкнути Ctrl/CMD + F для пошуку + увімкнути підтримку mpris у Linux для медіаклавіш + [власні гарячі клавіші](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50) для [досвідчених користувачів](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902) + +- **Пропускати пісні, що не сподобалися**: Пропускає пісні, які вам не сподобалися + +- **Пропускати тишу**: Автоматично пропускати тихі фрагменти + +- [**SponsorBlock**](https://github.com/ajayyy/SponsorBlock): Автоматично пропускає немузичні частини, такі як інтро/аутро, або частини музичних відео, де пісня не грає + +- **Керування медіа на панелі завдань**: Керуйте відтворенням з [панелі завдань Windows](https://user-images.githubusercontent.com/78568641/111916130-24a35e80-8a82-11eb-80c8-5021c1aa27f4.png) + +- **TouchBar**: Власний макет TouchBar для macOS + +- **Tuna OBS**: Інтеграція з плагіном [Tuna](https://obsproject.com/forum/resources/tuna.843/) для [OBS](https://obsproject.com/) + +- **Зміна якості відео**: Дозволяє змінювати якість відео за допомогою [кнопки](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) на відеопрогравачі + +- **Перемикач відео**: Додає [кнопку](https://user-images.githubusercontent.com/28893833/173663950-63e6610e-a532-49b7-9afa-54cb57ddfc15.png) для перемикання між режимом відео/пісні. Також може опціонально видалити всю вкладку відео + +- **Візуалізатор**: Різні музичні візуалізатори + +- **Синхронізовані тексти**: Надає синхронізовані тексти пісень, використовуючи такі джерела, як [LRClib](https://lrclib.net). + +## Переклад + +Ви можете допомогти з перекладом на [Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/). + + + статус перекладу + статус перекладу 2 + + +## Завантажити + +Ви можете переглянути [останній реліз](https://github.com/th-ch/youtube-music/releases/latest), щоб швидко знайти найновішу версію. + +### Arch Linux + +Встановіть пакет [`youtube-music-bin`](https://aur.archlinux.org/packages/youtube-music-bin) з AUR. Інструкції щодо встановлення з AUR можна знайти на цій [сторінці вікі](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages). + +### macOS + +Ви можете встановити програму за допомогою Homebrew (дивіться [визначення cask](https://github.com/th-ch/homebrew-youtube-music)): + +```bash +brew install th-ch/youtube-music/youtube-music +``` + +Якщо ви встановлюєте програму вручну та отримуєте помилку "is damaged and can’t be opened.", запустіть у Терміналі таку команду: + +```bash +/usr/bin/xattr -cr /Applications/YouTube\ Music.app +``` + +### Windows + +Ви можете використовувати [менеджер пакунків Scoop](https://scoop.sh) для встановлення пакунка `youtube-music` з [`extras` bucket](https://github.com/ScoopInstaller/Extras). + +```bash +scoop bucket add extras +scoop install extras/youtube-music +``` + +Крім того, ви можете використовувати [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), офіційний менеджер пакунків командного рядка Windows 11, для встановлення пакунка `th-ch.YouTubeMusic`. + +*Примітка: Microsoft Defender SmartScreen може блокувати встановлення, оскільки воно від "невідомого видавця". Це також стосується ручного встановлення під час спроби запустити виконуваний файл (.exe) після ручного завантаження тут, на GitHub (той самий файл).* + +```bash +winget install th-ch.YouTubeMusic +``` + +#### Як встановити без підключення до Інтернету? (у Windows) + +- Завантажте файл `*.nsis.7z` для _архітектури вашого пристрою_ зі [сторінки релізів](https://github.com/th-ch/youtube-music/releases/latest). + - `x64` для 64-розрядної Windows + - `ia32` для 32-розрядної Windows + - `arm64` для ARM64 Windows +- Завантажте інсталятор зі сторінки релізів. (`*-Setup.exe`) +- Розмістіть їх в **одному каталозі**. +- Запустіть інсталятор. + +## Теми + +Ви можете завантажити файли CSS, щоб змінити вигляд програми (Опції > Візуальні налаштування > Теми). + +Деякі попередньо визначені теми доступні за адресою https://github.com/kerichdev/themes-for-ytmdesktop-player. + +## Розробка + +```bash +git clone https://github.com/th-ch/youtube-music +cd youtube-music +pnpm install --frozen-lockfile +pnpm dev +``` + +## Створіть власні плагіни + +Використовуючи плагіни, ви можете: + +- маніпулювати програмою - `BrowserWindow` з Electron передається обробнику плагінів +- змінювати фронтенд, маніпулюючи HTML/CSS + +### Створення плагіна + +Створіть теку в `src/plugins/НАЗВА_ВАШОГО_ПЛАГІНА`: + +- `index.ts`: основний файл плагіна +```typescript +import style from './style.css?inline'; // імпортувати стиль як вбудований + +import { createPlugin } from '@/utils'; + +export default createPlugin({ + name: 'Назва плагіна', + restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску + config: { + enabled: false, + }, // ваша власна конфігурація + stylesheets: [style], // ваш власний стиль, + menu: async ({ getConfig, setConfig }) => { + // Усі методи *Config є обгорнутими Promise + const config = await getConfig(); + return [ + { + label: 'меню', + submenu: [1, 2, 3].map((value) => ({ + label: `значення ${value}`, + type: 'radio', + checked: config.value === value, + click() { + setConfig({ value }); + }, + })), + }, + ]; + }, + backend: { + start({ window, ipc }) { + window.maximize(); + + // ви можете спілкуватися з плагіном рендерера + ipc.handle('some-event', () => { + return 'hello'; + }); + }, + // викликається при зміні конфігурації + onConfigChange(newConfig) { /* ... */ }, + // викликається при вимкненні плагіна + stop(context) { /* ... */ }, + }, + renderer: { + async start(context) { + console.log(await context.ipc.invoke('some-event')); + }, + // Хук, доступний лише для рендерера + onPlayerApiReady(api: YoutubePlayer, context: RendererContext) { + // легко встановити конфігурацію плагіна + context.setConfig({ myConfig: api.getVolume() }); + }, + onConfigChange(newConfig) { /* ... */ }, + stop(_context) { /* ... */ }, + }, + preload: { + async start({ getConfig }) { + const config = await getConfig(); + }, + onConfigChange(newConfig) {}, + stop(_context) {}, + }, +}); +``` + +### Поширені випадки використання + +- ін'єкція власного CSS: створіть файл `style.css` у тій самій теці, а потім: + +```typescript +// index.ts +import style from './style.css?inline'; // імпортувати стиль як вбудований + +import { createPlugin } from '@/utils'; + +export default createPlugin({ + name: 'Назва плагіна', + restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску + config: { + enabled: false, + }, // ваша власна конфігурація + stylesheets: [style], // ваш власний стиль + renderer() {} // визначити хук рендерера +}); +``` + +- Якщо ви хочете змінити HTML: + +```typescript +import { createPlugin } from '@/utils'; + +export default createPlugin({ + name: 'Назва плагіна', + restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску + config: { + enabled: false, + }, // ваша власна конфігурація + renderer() { + // Видалити кнопку входу + document.querySelector(".sign-in-link.ytmusic-nav-bar").remove(); + } // визначити хук рендерера +}); +``` + +- зв'язок між фронтендом та бекендом: можна здійснити за допомогою модуля ipcMain з Electron. Дивіться файл `index.ts` та + приклад у плагіні `sponsorblock`. + +## Збірка + +1. Клонуйте репозиторій +2. Дотримуйтесь [цієї інструкції](https://pnpm.io/installation), щоб встановити `pnpm` +3. Запустіть `pnpm install --frozen-lockfile` для встановлення залежностей +4. Запустіть `pnpm build:OS` + +- `pnpm dist:win` - Windows +- `pnpm dist:linux` - Linux (amd64) +- `pnpm dist:linux:deb-arm64` - Linux (arm64 для Debian) +- `pnpm dist:linux:rpm-arm64` - Linux (arm64 для Fedora) +- `pnpm dist:mac` - macOS (amd64) +- `pnpm dist:mac:arm64` - macOS (arm64) + +Збирає програму для macOS, Linux та Windows, +використовуючи [electron-builder](https://github.com/electron-userland/electron-builder). + +## Попередній перегляд для production + +```bash +pnpm start +``` + +## Тести + +```bash +pnpm test +``` + +Використовує [Playwright](https://playwright.dev/) для тестування програми. + +## Ліцензія + +MIT © [th-ch](https://github.com/th-ch/youtube-music) + +## Поширені запитання + +### Чому меню програми не відображається? + +Якщо опція `Приховати меню` увімкнена - ви можете показати меню клавішею Alt (або \` [зворотний апостроф], якщо використовуєте плагін "Меню в програмі") From 1350ca0816b4714c2976ef3693f61a3e9815ea0f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 22:18:33 +0900 Subject: [PATCH 12/46] chore(deps): update dependency electron to v34.5.5 (#3343) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index ce782e97..54f0b789 100644 --- a/package.json +++ b/package.json @@ -321,7 +321,7 @@ "cross-env": "7.0.3", "del-cli": "6.0.0", "discord-api-types": "0.38.4", - "electron": "34.5.3", + "electron": "34.5.5", "electron-builder": "26.0.12", "electron-builder-squirrel-windows": "26.0.12", "electron-devtools-installer": "4.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44cb420b..25581b2e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,7 +32,7 @@ importers: version: 1.0.1(@types/node@22.13.5) '@electron/remote': specifier: 2.1.2 - version: 2.1.2(electron@34.5.3) + version: 2.1.2(electron@34.5.5) '@ffmpeg.wasm/core-mt': specifier: 0.12.0 version: 0.12.0 @@ -47,10 +47,10 @@ importers: version: 2.0.5 '@ghostery/adblocker-electron': specifier: 2.5.1 - version: 2.5.1(electron@34.5.3) + version: 2.5.1(electron@34.5.5) '@ghostery/adblocker-electron-preload': specifier: 2.5.1 - version: 2.5.1(electron@34.5.3) + version: 2.5.1(electron@34.5.5) '@hono/node-server': specifier: 1.14.1 version: 1.14.1(hono@4.7.7) @@ -101,7 +101,7 @@ importers: version: 13.1.0 custom-electron-prompt: specifier: 1.5.8 - version: 1.5.8(electron@34.5.3) + version: 1.5.8(electron@34.5.5) deepmerge-ts: specifier: 7.1.5 version: 7.1.5 @@ -275,8 +275,8 @@ importers: specifier: 0.38.4 version: 0.38.4 electron: - specifier: 34.5.3 - version: 34.5.3 + specifier: 34.5.5 + version: 34.5.5 electron-builder: specifier: 26.0.12 version: 26.0.12(electron-builder-squirrel-windows@26.0.12) @@ -2183,8 +2183,8 @@ packages: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} - electron@34.5.3: - resolution: {integrity: sha512-3hGXL4Hzzt4tadPKaoHHDvOzNrUYqhKkLJpZE2PFoNdDL1HDZwL9sb+qldDoMSbgIVfJpo2/7i6PubK3jMIFLA==} + electron@34.5.5: + resolution: {integrity: sha512-GgXnW+/Gxsl/BOyvTJUm99j7eSDOgdWeugsKfb3MmblySa9EWWhyAUfU6qugspA9j3g/0secgypY4yp/whJv7A==} engines: {node: '>= 12.20.55'} hasBin: true @@ -4899,9 +4899,9 @@ snapshots: - bluebird - supports-color - '@electron/remote@2.1.2(electron@34.5.3)': + '@electron/remote@2.1.2(electron@34.5.5)': dependencies: - electron: 34.5.3 + electron: 34.5.5 '@electron/universal@2.0.3': dependencies: @@ -5090,16 +5090,16 @@ snapshots: dependencies: '@ghostery/adblocker-extended-selectors': 2.5.1 - '@ghostery/adblocker-electron-preload@2.5.1(electron@34.5.3)': + '@ghostery/adblocker-electron-preload@2.5.1(electron@34.5.5)': dependencies: '@ghostery/adblocker-content': 2.5.1 - electron: 34.5.3 + electron: 34.5.5 - '@ghostery/adblocker-electron@2.5.1(electron@34.5.3)': + '@ghostery/adblocker-electron@2.5.1(electron@34.5.5)': dependencies: '@ghostery/adblocker': 2.5.1 - '@ghostery/adblocker-electron-preload': 2.5.1(electron@34.5.3) - electron: 34.5.3 + '@ghostery/adblocker-electron-preload': 2.5.1(electron@34.5.5) + electron: 34.5.5 tldts-experimental: 6.1.79 '@ghostery/adblocker-extended-selectors@2.5.1': {} @@ -5624,7 +5624,7 @@ snapshots: '@types/electron-localshortcut@3.1.3': dependencies: - electron: 34.5.3 + electron: 34.5.5 transitivePeerDependencies: - supports-color @@ -6444,9 +6444,9 @@ snapshots: csstype@3.1.3: {} - custom-electron-prompt@1.5.8(electron@34.5.3): + custom-electron-prompt@1.5.8(electron@34.5.5): dependencies: - electron: 34.5.3 + electron: 34.5.5 data-uri-to-buffer@4.0.1: {} @@ -6780,7 +6780,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron@34.5.3: + electron@34.5.5: dependencies: '@electron/get': 2.0.3 '@types/node': 20.17.31 From 41ce2320fafd0ea4d4bfaa982c7a1037feb5473f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 22:19:05 +0900 Subject: [PATCH 13/46] fix(deps): update dependency hono to v4.7.9 (#3302) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 54f0b789..d3ca80da 100644 --- a/package.json +++ b/package.json @@ -276,7 +276,7 @@ "filenamify": "6.0.0", "hanja": "1.1.4", "happy-dom": "17.4.4", - "hono": "4.7.7", + "hono": "4.7.9", "howler": "2.2.4", "html-to-text": "9.0.5", "i18next": "25.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 25581b2e..b61c3ebf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,16 +53,16 @@ importers: version: 2.5.1(electron@34.5.5) '@hono/node-server': specifier: 1.14.1 - version: 1.14.1(hono@4.7.7) + version: 1.14.1(hono@4.7.9) '@hono/swagger-ui': specifier: 0.5.1 - version: 0.5.1(hono@4.7.7) + version: 0.5.1(hono@4.7.9) '@hono/zod-openapi': specifier: 0.19.6 - version: 0.19.6(hono@4.7.7)(zod@3.24.3) + version: 0.19.6(hono@4.7.9)(zod@3.24.3) '@hono/zod-validator': specifier: 0.5.0 - version: 0.5.0(hono@4.7.7)(zod@3.24.3) + version: 0.5.0(hono@4.7.9)(zod@3.24.3) '@jellybrick/dbus-next': specifier: 0.10.3 version: 0.10.3 @@ -145,8 +145,8 @@ importers: specifier: 17.4.4 version: 17.4.4 hono: - specifier: 4.7.7 - version: 4.7.7 + specifier: 4.7.9 + version: 4.7.9 howler: specifier: 2.2.4 version: 2.2.4 @@ -2712,8 +2712,8 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hono@4.7.7: - resolution: {integrity: sha512-2PCpQRbN87Crty8/L/7akZN3UyZIAopSoRxCwRbJgUuV1+MHNFHzYFxZTg4v/03cXUm+jce/qa2VSBZpKBm3Qw==} + hono@4.7.9: + resolution: {integrity: sha512-/EsCoR5h7N4yu01TDu9GMCCJa6ZLk5ZJIWFFGNawAXmd1Tp53+Wir4xm0D2X19bbykWUlzQG0+BvPAji6p9E8Q==} engines: {node: '>=16.9.0'} hosted-git-info@4.1.0: @@ -5113,24 +5113,24 @@ snapshots: '@remusao/smaz': 2.1.0 tldts-experimental: 6.1.79 - '@hono/node-server@1.14.1(hono@4.7.7)': + '@hono/node-server@1.14.1(hono@4.7.9)': dependencies: - hono: 4.7.7 + hono: 4.7.9 - '@hono/swagger-ui@0.5.1(hono@4.7.7)': + '@hono/swagger-ui@0.5.1(hono@4.7.9)': dependencies: - hono: 4.7.7 + hono: 4.7.9 - '@hono/zod-openapi@0.19.6(hono@4.7.7)(zod@3.24.3)': + '@hono/zod-openapi@0.19.6(hono@4.7.9)(zod@3.24.3)': dependencies: '@asteasolutions/zod-to-openapi': 7.3.0(zod@3.24.3) - '@hono/zod-validator': 0.5.0(hono@4.7.7)(zod@3.24.3) - hono: 4.7.7 + '@hono/zod-validator': 0.5.0(hono@4.7.9)(zod@3.24.3) + hono: 4.7.9 zod: 3.24.3 - '@hono/zod-validator@0.5.0(hono@4.7.7)(zod@3.24.3)': + '@hono/zod-validator@0.5.0(hono@4.7.9)(zod@3.24.3)': dependencies: - hono: 4.7.7 + hono: 4.7.9 zod: 3.24.3 '@humanfs/core@0.19.1': {} @@ -7467,7 +7467,7 @@ snapshots: he@1.2.0: {} - hono@4.7.7: {} + hono@4.7.9: {} hosted-git-info@4.1.0: dependencies: From 97a277a192b5e305b0fed8f7102e01174a52aee8 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sun, 11 May 2025 01:56:01 +0900 Subject: [PATCH 14/46] fix(youtube-music): fix #3296, and macOS traffic lights --- src/plugins/in-app-menu/titlebar.css | 5 +++++ src/renderer.ts | 12 ++++++++++++ src/youtube-music.css | 4 ---- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/plugins/in-app-menu/titlebar.css b/src/plugins/in-app-menu/titlebar.css index f61a5c04..a19589c8 100644 --- a/src/plugins/in-app-menu/titlebar.css +++ b/src/plugins/in-app-menu/titlebar.css @@ -80,3 +80,8 @@ html { ytmusic-browse-response .ytmusic-responsive-list-item-renderer { will-change: transform; } + +/* fix fullscreen style */ +ytmusic-player[player-ui-state='FULLSCREEN'] { + margin-top: calc(var(--menu-bar-height, 32px) * -1) !important; +} diff --git a/src/renderer.ts b/src/renderer.ts index e7be8bcf..c584ae8e 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -32,6 +32,18 @@ let firstDataLoaded = false; registerWindowDefaultTrustedTypePolicy(); +{ + let osType = 'Unknown'; + if (window.electronIs.osx()) { + osType = 'Macintosh'; + } else if (window.electronIs.windows()) { + osType = 'Windows'; + } else if (window.electronIs.linux()) { + osType = 'Linux'; + } + document.documentElement.setAttribute('data-os', osType); +} + async function listenForApiLoad() { if (!isApiLoaded) { api = document.querySelector('#movie_player'); diff --git a/src/youtube-music.css b/src/youtube-music.css index 0c515680..85d3bba8 100644 --- a/src/youtube-music.css +++ b/src/youtube-music.css @@ -79,10 +79,6 @@ tp-yt-paper-item.ytmusic-guide-entry-renderer::before { max-width: calc(100% - var(--ytmusic-player-page-vertical-padding) * 2); } -ytmusic-player[player-ui-state='FULLSCREEN'] { - margin-top: calc(var(--menu-bar-height, 32px) * -1) !important; -} - /* macos traffic lights fix */ :where([data-os*='Macintosh']) ytmusic-app-layout#layout ytmusic-nav-bar { padding-top: var(--ytmusic-nav-bar-offset, 0); From 3b8edf115e146d88589522adb0ba2bbf8b2e1924 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 02:01:33 +0900 Subject: [PATCH 15/46] chore(deps): update dependency eslint-config-prettier to v10.1.5 (#3345) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index d3ca80da..9bd4aa17 100644 --- a/package.json +++ b/package.json @@ -328,7 +328,7 @@ "electron-vite": "3.1.0", "esbuild": "0.25.3", "eslint": "9.25.1", - "eslint-config-prettier": "10.1.2", + "eslint-config-prettier": "10.1.5", "eslint-import-resolver-exports": "1.0.0-beta.5", "eslint-import-resolver-typescript": "4.3.4", "eslint-plugin-import": "2.31.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b61c3ebf..81364b69 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -296,8 +296,8 @@ importers: specifier: 9.25.1 version: 9.25.1 eslint-config-prettier: - specifier: 10.1.2 - version: 10.1.2(eslint@9.25.1) + specifier: 10.1.5 + version: 10.1.5(eslint@9.25.1) eslint-import-resolver-exports: specifier: 1.0.0-beta.5 version: 1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.25.1) @@ -309,7 +309,7 @@ importers: version: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) eslint-plugin-prettier: specifier: 5.2.6 - version: 5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.2(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2) + version: 5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2) glob: specifier: 11.0.2 version: 11.0.2 @@ -2275,8 +2275,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-prettier@10.1.2: - resolution: {integrity: sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==} + eslint-config-prettier@10.1.5: + resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -6945,7 +6945,7 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.2(eslint@9.25.1): + eslint-config-prettier@10.1.5(eslint@9.25.1): dependencies: eslint: 9.25.1 @@ -7017,7 +7017,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.2(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2): + eslint-plugin-prettier@5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2): dependencies: eslint: 9.25.1 prettier: 3.5.2 @@ -7025,7 +7025,7 @@ snapshots: synckit: 0.11.1 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.2(eslint@9.25.1) + eslint-config-prettier: 10.1.5(eslint@9.25.1) eslint-scope@8.3.0: dependencies: From b9269bf0852fd82219381d18a2ed471434b4766d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 02:01:41 +0900 Subject: [PATCH 16/46] chore(deps): update dependency esbuild to v0.25.4 (#3344) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 214 ++++++++++++++++++++++++------------------------- 2 files changed, 108 insertions(+), 108 deletions(-) diff --git a/package.json b/package.json index 9bd4aa17..be544d0e 100644 --- a/package.json +++ b/package.json @@ -326,7 +326,7 @@ "electron-builder-squirrel-windows": "26.0.12", "electron-devtools-installer": "4.0.0", "electron-vite": "3.1.0", - "esbuild": "0.25.3", + "esbuild": "0.25.4", "eslint": "9.25.1", "eslint-config-prettier": "10.1.5", "eslint-import-resolver-exports": "1.0.0-beta.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 81364b69..bf27e8a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -290,8 +290,8 @@ importers: specifier: 3.1.0 version: 3.1.0(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) esbuild: - specifier: 0.25.3 - version: 0.25.3 + specifier: 0.25.4 + version: 0.25.4 eslint: specifier: 9.25.1 version: 9.25.1 @@ -536,152 +536,152 @@ packages: '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} - '@esbuild/aix-ppc64@0.25.3': - resolution: {integrity: sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==} + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.3': - resolution: {integrity: sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==} + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.3': - resolution: {integrity: sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==} + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.3': - resolution: {integrity: sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==} + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.3': - resolution: {integrity: sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==} + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.3': - resolution: {integrity: sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==} + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.3': - resolution: {integrity: sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==} + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.3': - resolution: {integrity: sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==} + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.3': - resolution: {integrity: sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==} + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.3': - resolution: {integrity: sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==} + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.3': - resolution: {integrity: sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==} + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.3': - resolution: {integrity: sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==} + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.3': - resolution: {integrity: sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==} + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.3': - resolution: {integrity: sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==} + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.3': - resolution: {integrity: sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==} + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.3': - resolution: {integrity: sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==} + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.3': - resolution: {integrity: sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==} + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.3': - resolution: {integrity: sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==} + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.3': - resolution: {integrity: sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==} + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.3': - resolution: {integrity: sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==} + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.3': - resolution: {integrity: sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==} + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.3': - resolution: {integrity: sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==} + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.3': - resolution: {integrity: sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==} + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.3': - resolution: {integrity: sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==} + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.3': - resolution: {integrity: sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==} + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2262,8 +2262,8 @@ packages: es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - esbuild@0.25.3: - resolution: {integrity: sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==} + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} hasBin: true @@ -4942,79 +4942,79 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.3': + '@esbuild/aix-ppc64@0.25.4': optional: true - '@esbuild/android-arm64@0.25.3': + '@esbuild/android-arm64@0.25.4': optional: true - '@esbuild/android-arm@0.25.3': + '@esbuild/android-arm@0.25.4': optional: true - '@esbuild/android-x64@0.25.3': + '@esbuild/android-x64@0.25.4': optional: true - '@esbuild/darwin-arm64@0.25.3': + '@esbuild/darwin-arm64@0.25.4': optional: true - '@esbuild/darwin-x64@0.25.3': + '@esbuild/darwin-x64@0.25.4': optional: true - '@esbuild/freebsd-arm64@0.25.3': + '@esbuild/freebsd-arm64@0.25.4': optional: true - '@esbuild/freebsd-x64@0.25.3': + '@esbuild/freebsd-x64@0.25.4': optional: true - '@esbuild/linux-arm64@0.25.3': + '@esbuild/linux-arm64@0.25.4': optional: true - '@esbuild/linux-arm@0.25.3': + '@esbuild/linux-arm@0.25.4': optional: true - '@esbuild/linux-ia32@0.25.3': + '@esbuild/linux-ia32@0.25.4': optional: true - '@esbuild/linux-loong64@0.25.3': + '@esbuild/linux-loong64@0.25.4': optional: true - '@esbuild/linux-mips64el@0.25.3': + '@esbuild/linux-mips64el@0.25.4': optional: true - '@esbuild/linux-ppc64@0.25.3': + '@esbuild/linux-ppc64@0.25.4': optional: true - '@esbuild/linux-riscv64@0.25.3': + '@esbuild/linux-riscv64@0.25.4': optional: true - '@esbuild/linux-s390x@0.25.3': + '@esbuild/linux-s390x@0.25.4': optional: true - '@esbuild/linux-x64@0.25.3': + '@esbuild/linux-x64@0.25.4': optional: true - '@esbuild/netbsd-arm64@0.25.3': + '@esbuild/netbsd-arm64@0.25.4': optional: true - '@esbuild/netbsd-x64@0.25.3': + '@esbuild/netbsd-x64@0.25.4': optional: true - '@esbuild/openbsd-arm64@0.25.3': + '@esbuild/openbsd-arm64@0.25.4': optional: true - '@esbuild/openbsd-x64@0.25.3': + '@esbuild/openbsd-x64@0.25.4': optional: true - '@esbuild/sunos-x64@0.25.3': + '@esbuild/sunos-x64@0.25.4': optional: true - '@esbuild/win32-arm64@0.25.3': + '@esbuild/win32-arm64@0.25.4': optional: true - '@esbuild/win32-ia32@0.25.3': + '@esbuild/win32-ia32@0.25.4': optional: true - '@esbuild/win32-x64@0.25.3': + '@esbuild/win32-x64@0.25.4': optional: true '@eslint-community/eslint-utils@4.7.0(eslint@9.25.1)': @@ -6761,7 +6761,7 @@ snapshots: '@babel/core': 7.26.10 '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) cac: 6.7.14 - esbuild: 0.25.3 + esbuild: 0.25.4 magic-string: 0.30.17 picocolors: 1.1.1 vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) @@ -6913,33 +6913,33 @@ snapshots: es6-error@4.1.1: optional: true - esbuild@0.25.3: + esbuild@0.25.4: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.3 - '@esbuild/android-arm': 0.25.3 - '@esbuild/android-arm64': 0.25.3 - '@esbuild/android-x64': 0.25.3 - '@esbuild/darwin-arm64': 0.25.3 - '@esbuild/darwin-x64': 0.25.3 - '@esbuild/freebsd-arm64': 0.25.3 - '@esbuild/freebsd-x64': 0.25.3 - '@esbuild/linux-arm': 0.25.3 - '@esbuild/linux-arm64': 0.25.3 - '@esbuild/linux-ia32': 0.25.3 - '@esbuild/linux-loong64': 0.25.3 - '@esbuild/linux-mips64el': 0.25.3 - '@esbuild/linux-ppc64': 0.25.3 - '@esbuild/linux-riscv64': 0.25.3 - '@esbuild/linux-s390x': 0.25.3 - '@esbuild/linux-x64': 0.25.3 - '@esbuild/netbsd-arm64': 0.25.3 - '@esbuild/netbsd-x64': 0.25.3 - '@esbuild/openbsd-arm64': 0.25.3 - '@esbuild/openbsd-x64': 0.25.3 - '@esbuild/sunos-x64': 0.25.3 - '@esbuild/win32-arm64': 0.25.3 - '@esbuild/win32-ia32': 0.25.3 - '@esbuild/win32-x64': 0.25.3 + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 escalade@3.2.0: {} @@ -9303,7 +9303,7 @@ snapshots: vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0): dependencies: - esbuild: 0.25.3 + esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.3 From 852933d4d77c203aa3e39fe8955053efa6387e52 Mon Sep 17 00:00:00 2001 From: qiye45 <138199658+qiye45@users.noreply.github.com> Date: Sun, 11 May 2025 01:04:00 +0800 Subject: [PATCH 17/46] feat(plugin): support authenticated proxy (#3175) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: JellyBrick Co-authored-by: qiye45 --- package.json | 1 + pnpm-lock.yaml | 3 + src/i18n/resources/en.json | 24 ++ src/i18n/resources/zh-CN.json | 24 ++ src/index.ts | 21 +- .../auth-proxy-adapter/backend/index.ts | 246 ++++++++++++++++++ .../auth-proxy-adapter/backend/types.ts | 21 ++ src/plugins/auth-proxy-adapter/config.ts | 11 + src/plugins/auth-proxy-adapter/index.ts | 16 ++ src/plugins/auth-proxy-adapter/menu.ts | 68 +++++ 10 files changed, 434 insertions(+), 1 deletion(-) create mode 100644 src/plugins/auth-proxy-adapter/backend/index.ts create mode 100644 src/plugins/auth-proxy-adapter/backend/types.ts create mode 100644 src/plugins/auth-proxy-adapter/config.ts create mode 100644 src/plugins/auth-proxy-adapter/index.ts create mode 100644 src/plugins/auth-proxy-adapter/menu.ts diff --git a/package.json b/package.json index be544d0e..941fa432 100644 --- a/package.json +++ b/package.json @@ -295,6 +295,7 @@ "semver": "7.7.1", "serve": "14.2.4", "simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9", + "socks": "2.8.4", "solid-floating-ui": "0.3.1", "solid-js": "1.9.5", "solid-styled-components": "0.28.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf27e8a0..07291bfe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -201,6 +201,9 @@ importers: simple-youtube-age-restriction-bypass: specifier: github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9 version: https://codeload.github.com/organization/Simple-YouTube-Age-Restriction-Bypass/tar.gz/4e2db89ccb2fb880c5110add9ff3f1dfb78d0ff6 + socks: + specifier: ^2.8.4 + version: 2.8.4 solid-floating-ui: specifier: 0.3.1 version: 0.3.1(@floating-ui/dom@1.6.13)(solid-js@1.9.5) diff --git a/src/i18n/resources/en.json b/src/i18n/resources/en.json index fff45c01..41e1242e 100644 --- a/src/i18n/resources/en.json +++ b/src/i18n/resources/en.json @@ -333,6 +333,30 @@ "description": "Apply compression to audio (lowers the volume of the loudest parts of the signal and raises the volume of the softest parts)", "name": "Audio Compressor" }, + "auth-proxy-adapter": { + "name": "Auth Proxy Adapter", + "description": "Support for the use of authentication proxy services", + "menu": { + "disable": "Disable Proxy Adapter", + "enable": "Enable Proxy Adapter", + "hostname": { + "label": "Hostname" + }, + "port": { + "label": "Port" + } + }, + "prompt": { + "hostname": { + "title": "Proxy Hostname", + "label": "Enter hostname for local proxy server (requires restart):" + }, + "port": { + "title": "Proxy Port", + "label": "Enter port for local proxy server (requires restart):" + } + } + }, "blur-nav-bar": { "description": "Makes navigation bar transparent and blurry", "name": "Blur Navigation Bar" diff --git a/src/i18n/resources/zh-CN.json b/src/i18n/resources/zh-CN.json index 7dd34c3e..d54ef98d 100644 --- a/src/i18n/resources/zh-CN.json +++ b/src/i18n/resources/zh-CN.json @@ -333,6 +333,30 @@ "description": "对音频应用压缩(压低响亮部分,提升柔和部分)", "name": "音频压缩器" }, + "auth-proxy-adapter": { + "name": "认证代理适配", + "description": "支持使用需要身份验证的代理", + "menu": { + "disable": "禁用代理适配", + "enable": "启用代理适配", + "hostname": { + "label": "主机名" + }, + "port": { + "label": "端口" + } + }, + "prompt": { + "hostname": { + "title": "代理主机名", + "label": "请输入本地代理服务器的主机名(需要重启):" + }, + "port": { + "title": "代理端口", + "label": "请输入本地代理服务器的端口号(需要重启):" + } + } + }, "blur-nav-bar": { "description": "让导航栏透明及模糊", "name": "模糊导航栏" diff --git a/src/index.ts b/src/index.ts index 53d30604..cc36a9d7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -57,6 +57,8 @@ import { loadI18n, setLanguage, t } from '@/i18n'; import ErrorHtmlAsset from '@assets/error.html?asset'; +import { defaultAuthProxyConfig } from '@/plugins/auth-proxy-adapter/config'; + import type { PluginConfig } from '@/types/plugins'; if (!is.macOS()) { @@ -141,7 +143,24 @@ if (is.linux()) { } if (config.get('options.proxy')) { - app.commandLine.appendSwitch('proxy-server', config.get('options.proxy')); + const authProxyEnabled = config.plugins.isEnabled('auth-proxy-adapter'); + + let proxyToUse = ''; + if (authProxyEnabled) { + // Use proxy from Auth-Proxy-Adapter plugin + const authProxyConfig = deepmerge( + defaultAuthProxyConfig, + config.get('plugins.auth-proxy-adapter') ?? {}, + ) as typeof defaultAuthProxyConfig; + + const { hostname, port } = authProxyConfig; + proxyToUse = `socks5://${hostname}:${port}`; + } else if (config.get('options.proxy')) { + // Use global proxy settings + proxyToUse = config.get('options.proxy'); + } + console.log(LoggerPrefix, `Using proxy: ${proxyToUse}`); + app.commandLine.appendSwitch('proxy-server', proxyToUse); } // Adds debug features like hotkeys for triggering dev tools and reload diff --git a/src/plugins/auth-proxy-adapter/backend/index.ts b/src/plugins/auth-proxy-adapter/backend/index.ts new file mode 100644 index 00000000..34ba2dce --- /dev/null +++ b/src/plugins/auth-proxy-adapter/backend/index.ts @@ -0,0 +1,246 @@ +import net from 'net'; + +import { SocksClient, SocksClientOptions } from 'socks'; + +import is from 'electron-is'; + +import { createBackend, LoggerPrefix } from '@/utils'; + +import { BackendType } from './types'; + +import config from '@/config'; + +import { AuthProxyConfig, defaultAuthProxyConfig } from '../config'; + +import type { BackendContext } from '@/types/contexts'; + +// Parsing the upstream authentication SOCK proxy URL +const parseSocksUrl = (socksUrl: string) => { + // Format: socks5://username:password@your_server_ip:port + + const url = new URL(socksUrl); + return { + host: url.hostname, + port: parseInt(url.port, 10), + type: url.protocol === 'socks5:' ? 5 : 4, + username: url.username, + password: url.password, + }; +}; + +export const backend = createBackend({ + async start(ctx: BackendContext) { + const pluginConfig = await ctx.getConfig(); + this.startServer(pluginConfig); + }, + stop() { + this.stopServer(); + }, + onConfigChange(config: AuthProxyConfig) { + if ( + this.oldConfig?.hostname === config.hostname && + this.oldConfig?.port === config.port + ) { + this.oldConfig = config; + return; + } + this.stopServer(); + this.startServer(config); + + this.oldConfig = config; + }, + + // Custom + // Start proxy server - SOCKS5 + startServer(serverConfig: AuthProxyConfig) { + if (this.server) { + this.stopServer(); + } + + const { port, hostname } = serverConfig; + // Upstream proxy from system settings + const upstreamProxyUrl = config.get('options.proxy'); + // Create SOCKS proxy server + const socksServer = net.createServer((socket) => { + socket.once('data', (chunk) => { + if (chunk[0] === 0x05) { + // SOCKS5 + this.handleSocks5(socket, chunk, upstreamProxyUrl); + } else { + socket.end(); + } + }); + + socket.on('error', (err) => { + console.error(LoggerPrefix, '[SOCKS] Socket error:', err.message); + }); + }); + + // Listen for errors + socksServer.on('error', (err) => { + console.error(LoggerPrefix, '[SOCKS Server Error]', err.message); + }); + + // Start server + socksServer.listen(port, hostname, () => { + console.log(LoggerPrefix, '==========================================='); + console.log( + LoggerPrefix, + `[Auth-Proxy-Adapter] Enable SOCKS proxy at socks5://${hostname}:${port}`, + ); + console.log( + LoggerPrefix, + `[Auth-Proxy-Adapter] Using upstream proxy: ${upstreamProxyUrl}`, + ); + console.log(LoggerPrefix, '==========================================='); + }); + + this.server = socksServer; + }, + + // Handle SOCKS5 request + handleSocks5( + clientSocket: net.Socket, + chunk: Buffer, + upstreamProxyUrl: string, + ) { + // Handshake phase + const numMethods = chunk[1]; + const methods = chunk.subarray(2, 2 + numMethods); + + // Check if client supports no authentication method (0x00) + if (methods.includes(0x00)) { + // Reply to client, choose no authentication method + clientSocket.write(Buffer.from([0x05, 0x00])); + + // Wait for client's connection request + clientSocket.once('data', (data) => { + this.processSocks5Request(clientSocket, data, upstreamProxyUrl); + }); + } else { + // Authentication methods not supported by the client + clientSocket.write(Buffer.from([0x05, 0xff])); + clientSocket.end(); + } + }, + + // Handle SOCKS5 connection request + processSocks5Request( + clientSocket: net.Socket, + data: Buffer, + upstreamProxyUrl: string, + ) { + // Parse target address and port + let targetHost, targetPort; + const cmd = data[1]; // Command: 0x01=CONNECT, 0x02=BIND, 0x03=UDP + const atyp = data[3]; // Address type: 0x01=IPv4, 0x03=Domain, 0x04=IPv6 + + if (cmd !== 0x01) { + // Currently only support CONNECT command + clientSocket.write( + Buffer.from([0x05, 0x07, 0x00, 0x01, 0, 0, 0, 0, 0, 0]), + ); + clientSocket.end(); + return; + } + + if (atyp === 0x01) { + // IPv4 + targetHost = `${data[4]}.${data[5]}.${data[6]}.${data[7]}`; + targetPort = data.readUInt16BE(8); + } else if (atyp === 0x03) { + // Domain + const hostLen = data[4]; + targetHost = data.subarray(5, 5 + hostLen).toString(); + targetPort = data.readUInt16BE(5 + hostLen); + } else if (atyp === 0x04) { + // IPv6 + const ipv6Buffer = data.subarray(4, 20); + targetHost = Array.from(new Array(8), (_, i) => + ipv6Buffer.readUInt16BE(i * 2).toString(16), + ).join(':'); + targetPort = data.readUInt16BE(20); + } + if (is.dev()) { + console.debug( + LoggerPrefix, + `[SOCKS5] Request to connect to ${targetHost}:${targetPort}`, + ); + } + + const socksProxy = parseSocksUrl(upstreamProxyUrl); + + if (!socksProxy) { + // Failed to parse proxy URL + clientSocket.write( + Buffer.from([0x05, 0x01, 0x00, 0x01, 0, 0, 0, 0, 0, 0]), + ); + clientSocket.end(); + return; + } + + const options: SocksClientOptions = { + proxy: { + host: socksProxy.host, + port: socksProxy.port, + type: socksProxy.type as 4 | 5, + userId: socksProxy.username, + password: socksProxy.password, + }, + command: 'connect', + destination: { + host: targetHost || defaultAuthProxyConfig.hostname, + port: targetPort || defaultAuthProxyConfig.port, + }, + }; + SocksClient.createConnection(options) + .then((info) => { + const { socket: proxySocket } = info; + + // Connection successful, send success response to client + const responseBuffer = Buffer.from([ + 0x05, // VER: SOCKS5 + 0x00, // REP: Success + 0x00, // RSV: Reserved field + 0x01, // ATYP: IPv4 + 0, + 0, + 0, + 0, // BND.ADDR: 0.0.0.0 (Bound address, usually not important) + 0, + 0, // BND.PORT: 0 (Bound port, usually not important) + ]); + clientSocket.write(responseBuffer); + + // Establish bidirectional data stream + proxySocket.pipe(clientSocket); + clientSocket.pipe(proxySocket); + + proxySocket.on('error', (error) => { + console.error(LoggerPrefix, '[SOCKS5] Proxy socket error:', error); + if (clientSocket.writable) clientSocket.end(); + }); + + clientSocket.on('error', (error) => { + console.error(LoggerPrefix, '[SOCKS5] Client socket error:', error); + if (proxySocket.writable) proxySocket.end(); + }); + }) + .catch((error) => { + console.error(LoggerPrefix, '[SOCKS5] Connection error:', error); + // Send failure response to client + clientSocket.write( + Buffer.from([0x05, 0x05, 0x00, 0x01, 0, 0, 0, 0, 0, 0]), + ); + clientSocket.end(); + }); + }, + + // Stop proxy server + stopServer() { + if (this.server) { + this.server.close(); + this.server = undefined; + } + }, +}); diff --git a/src/plugins/auth-proxy-adapter/backend/types.ts b/src/plugins/auth-proxy-adapter/backend/types.ts new file mode 100644 index 00000000..99599ef3 --- /dev/null +++ b/src/plugins/auth-proxy-adapter/backend/types.ts @@ -0,0 +1,21 @@ +import net from 'net'; + +import type { AuthProxyConfig } from '../config'; +import type { Server } from 'http'; + +export type BackendType = { + server?: Server | net.Server; + oldConfig?: AuthProxyConfig; + startServer: (serverConfig: AuthProxyConfig) => void; + stopServer: () => void; + handleSocks5: ( + clientSocket: net.Socket, + chunk: Buffer, + upstreamProxyUrl: string, + ) => void; + processSocks5Request: ( + clientSocket: net.Socket, + data: Buffer, + upstreamProxyUrl: string, + ) => void; +}; diff --git a/src/plugins/auth-proxy-adapter/config.ts b/src/plugins/auth-proxy-adapter/config.ts new file mode 100644 index 00000000..025582db --- /dev/null +++ b/src/plugins/auth-proxy-adapter/config.ts @@ -0,0 +1,11 @@ +export interface AuthProxyConfig { + enabled: boolean; + hostname: string; + port: number; +} + +export const defaultAuthProxyConfig: AuthProxyConfig = { + enabled: false, + hostname: '127.0.0.1', + port: 4545, +}; diff --git a/src/plugins/auth-proxy-adapter/index.ts b/src/plugins/auth-proxy-adapter/index.ts new file mode 100644 index 00000000..b70a43dd --- /dev/null +++ b/src/plugins/auth-proxy-adapter/index.ts @@ -0,0 +1,16 @@ +import { createPlugin } from '@/utils'; +import { t } from '@/i18n'; + +import { defaultAuthProxyConfig } from './config'; +import { onMenu } from './menu'; +import { backend } from './backend'; + +export default createPlugin({ + name: () => t('plugins.auth-proxy-adapter.name'), + description: () => t('plugins.auth-proxy-adapter.description'), + restartNeeded: true, + config: defaultAuthProxyConfig, + addedVersion: '3.10.X', + menu: onMenu, + backend, +}); diff --git a/src/plugins/auth-proxy-adapter/menu.ts b/src/plugins/auth-proxy-adapter/menu.ts new file mode 100644 index 00000000..e4b2a69c --- /dev/null +++ b/src/plugins/auth-proxy-adapter/menu.ts @@ -0,0 +1,68 @@ +import prompt from 'custom-electron-prompt'; + +import { t } from '@/i18n'; +import promptOptions from '@/providers/prompt-options'; + +import { type AuthProxyConfig, defaultAuthProxyConfig } from './config'; + +import type { MenuContext } from '@/types/contexts'; +import type { MenuTemplate } from '@/menu'; + +export const onMenu = async ({ + getConfig, + setConfig, + window, +}: MenuContext): Promise => { + await getConfig(); + return [ + { + label: t('plugins.auth-proxy-adapter.menu.hostname.label'), + type: 'normal', + async click() { + const config = await getConfig(); + + const newHostname = + (await prompt( + { + title: t('plugins.auth-proxy-adapter.prompt.hostname.title'), + label: t('plugins.auth-proxy-adapter.prompt.hostname.label'), + value: config.hostname, + type: 'input', + width: 380, + ...promptOptions(), + }, + window, + )) ?? + config.hostname ?? + defaultAuthProxyConfig.hostname; + + setConfig({ ...config, hostname: newHostname }); + }, + }, + { + label: t('plugins.auth-proxy-adapter.menu.port.label'), + type: 'normal', + async click() { + const config = await getConfig(); + + const newPort = + (await prompt( + { + title: t('plugins.auth-proxy-adapter.prompt.port.title'), + label: t('plugins.auth-proxy-adapter.prompt.port.label'), + value: config.port, + type: 'counter', + counterOptions: { minimum: 0, maximum: 65535 }, + width: 380, + ...promptOptions(), + }, + window, + )) ?? + config.port ?? + defaultAuthProxyConfig.port; + + setConfig({ ...config, port: newPort }); + }, + }, + ]; +}; From 3b4f3198717d27463a7e90e89c88b51977ae4fae Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sun, 11 May 2025 02:05:58 +0900 Subject: [PATCH 18/46] fix: fix pnpm-lock.yaml --- .gitignore | 2 ++ pnpm-lock.yaml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6cb8c059..f5fb3ed5 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ electron-builder.yml !.yarn/sdks !.yarn/versions .vite-inspect + +.DS_Store diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 07291bfe..8df64b2b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -202,7 +202,7 @@ importers: specifier: github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9 version: https://codeload.github.com/organization/Simple-YouTube-Age-Restriction-Bypass/tar.gz/4e2db89ccb2fb880c5110add9ff3f1dfb78d0ff6 socks: - specifier: ^2.8.4 + specifier: 2.8.4 version: 2.8.4 solid-floating-ui: specifier: 0.3.1 From 703ad71ff3995b748bcf7d3fdb3a0ad7e1d98f55 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 02:07:06 +0900 Subject: [PATCH 19/46] chore(deps): update dependency ws to v8.18.2 (#3347) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 941fa432..5e14cc28 100644 --- a/package.json +++ b/package.json @@ -345,7 +345,7 @@ "vite-plugin-inspect": "11.0.1", "vite-plugin-resolve": "2.5.2", "vite-plugin-solid": "2.11.6", - "ws": "8.18.1" + "ws": "8.18.2" }, "auto-changelog": { "hideCredit": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8df64b2b..c8769f32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -347,8 +347,8 @@ importers: specifier: 2.11.6 version: 2.11.6(solid-js@1.9.5)(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) ws: - specifier: 8.18.1 - version: 8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5) + specifier: 8.18.2 + version: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) packages: @@ -4576,8 +4576,8 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + ws@8.18.2: + resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -5827,7 +5827,7 @@ snapshots: '@discordjs/rest': 2.4.3 '@vladfrangu/async_event_emitter': 2.4.6 discord-api-types: 0.37.120 - ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5) + ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -9407,7 +9407,7 @@ snapshots: wrappy@1.0.2: {} - ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5): + ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5): optionalDependencies: bufferutil: 4.0.9 utf-8-validate: 6.0.5 From dbfe9d517a3b03e727462c9ec921fd632609a250 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 02:07:15 +0900 Subject: [PATCH 20/46] chore(deps): update dependency vite to v6.3.5 (#3346) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- pnpm-lock.yaml | 60 +++++++++++++++++++++++++------------------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 5e14cc28..eddefbcd 100644 --- a/package.json +++ b/package.json @@ -222,7 +222,7 @@ }, "pnpm": { "overrides": { - "vite": "6.3.4", + "vite": "6.3.5", "node-gyp": "11.2.0", "xml2js": "0.6.2", "node-fetch": "3.3.2", @@ -341,7 +341,7 @@ "typescript": "5.8.3", "typescript-eslint": "8.32.0", "utf-8-validate": "6.0.5", - "vite": "6.3.4", + "vite": "6.3.5", "vite-plugin-inspect": "11.0.1", "vite-plugin-resolve": "2.5.2", "vite-plugin-solid": "2.11.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8769f32..c857f79d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - vite: 6.3.4 + vite: 6.3.5 node-gyp: 11.2.0 xml2js: 0.6.2 node-fetch: 3.3.2 @@ -291,7 +291,7 @@ importers: version: 4.0.0 electron-vite: specifier: 3.1.0 - version: 3.1.0(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) + version: 3.1.0(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) esbuild: specifier: 0.25.4 version: 0.25.4 @@ -335,17 +335,17 @@ importers: specifier: 6.0.5 version: 6.0.5 vite: - specifier: 6.3.4 - version: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) + specifier: 6.3.5 + version: 6.3.5(@types/node@22.13.5)(yaml@2.7.0) vite-plugin-inspect: specifier: 11.0.1 - version: 11.0.1(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) + version: 11.0.1(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) vite-plugin-resolve: specifier: 2.5.2 version: 2.5.2 vite-plugin-solid: specifier: 2.11.6 - version: 2.11.6(solid-js@1.9.5)(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) + version: 2.11.6(solid-js@1.9.5)(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) ws: specifier: 8.18.2 version: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -2177,7 +2177,7 @@ packages: hasBin: true peerDependencies: '@swc/core': ^1.0.0 - vite: 6.3.4 + vite: 6.3.5 peerDependenciesMeta: '@swc/core': optional: true @@ -4428,19 +4428,19 @@ packages: vite-dev-rpc@1.0.7: resolution: {integrity: sha512-FxSTEofDbUi2XXujCA+hdzCDkXFG1PXktMjSk1efq9Qb5lOYaaM9zNSvKvPPF7645Bak79kSp1PTooMW2wktcA==} peerDependencies: - vite: 6.3.4 + vite: 6.3.5 vite-hot-client@2.0.4: resolution: {integrity: sha512-W9LOGAyGMrbGArYJN4LBCdOC5+Zwh7dHvOHC0KmGKkJhsOzaKbpo/jEjpPKVHIW0/jBWj8RZG0NUxfgA8BxgAg==} peerDependencies: - vite: 6.3.4 + vite: 6.3.5 vite-plugin-inspect@11.0.1: resolution: {integrity: sha512-aABw7eGTr9Cmbn9RAs76e0BztVUFDl6a2R+/IJXpoUZxjx5YHB0P+Em3ZTWzpIPZzuRj28tAMblvcUyhgJc4aQ==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' - vite: 6.3.4 + vite: 6.3.5 peerDependenciesMeta: '@nuxt/kit': optional: true @@ -4453,13 +4453,13 @@ packages: peerDependencies: '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* solid-js: ^1.7.2 - vite: 6.3.4 + vite: 6.3.5 peerDependenciesMeta: '@testing-library/jest-dom': optional: true - vite@6.3.4: - resolution: {integrity: sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==} + vite@6.3.5: + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -4501,7 +4501,7 @@ packages: vitefu@1.0.6: resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} peerDependencies: - vite: 6.3.4 + vite: 6.3.5 peerDependenciesMeta: vite: optional: true @@ -6759,7 +6759,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron-vite@3.1.0(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): + electron-vite@3.1.0(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) @@ -6767,7 +6767,7 @@ snapshots: esbuild: 0.25.4 magic-string: 0.30.17 picocolors: 1.1.1 - vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.13.5)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -9262,17 +9262,17 @@ snapshots: extsprintf: 1.4.1 optional: true - vite-dev-rpc@1.0.7(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): + vite-dev-rpc@1.0.7(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)): dependencies: birpc: 2.2.0 - vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) - vite-hot-client: 2.0.4(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) + vite: 6.3.5(@types/node@22.13.5)(yaml@2.7.0) + vite-hot-client: 2.0.4(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) - vite-hot-client@2.0.4(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): + vite-hot-client@2.0.4(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)): dependencies: - vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.13.5)(yaml@2.7.0) - vite-plugin-inspect@11.0.1(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): + vite-plugin-inspect@11.0.1(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)): dependencies: ansis: 3.17.0 debug: 4.4.0 @@ -9282,8 +9282,8 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.4 - vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) - vite-dev-rpc: 1.0.7(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) + vite: 6.3.5(@types/node@22.13.5)(yaml@2.7.0) + vite-dev-rpc: 1.0.7(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) transitivePeerDependencies: - supports-color @@ -9291,7 +9291,7 @@ snapshots: dependencies: lib-esm: 0.4.2 - vite-plugin-solid@2.11.6(solid-js@1.9.5)(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): + vite-plugin-solid@2.11.6(solid-js@1.9.5)(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 @@ -9299,12 +9299,12 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) - vitefu: 1.0.6(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)) + vite: 6.3.5(@types/node@22.13.5)(yaml@2.7.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) transitivePeerDependencies: - supports-color - vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0): + vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0): dependencies: esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) @@ -9317,9 +9317,9 @@ snapshots: fsevents: 2.3.3 yaml: 2.7.0 - vitefu@1.0.6(vite@6.3.4(@types/node@22.13.5)(yaml@2.7.0)): + vitefu@1.0.6(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)): optionalDependencies: - vite: 6.3.4(@types/node@22.13.5)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.13.5)(yaml@2.7.0) vudio@2.1.1(patch_hash=0e06c2ed11c02bdc490c209fa80070e98517c2735c641f5738b6e15d7dc1959d): {} From 809947716d8144f5823495df35884560309e520d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 16:14:22 +0900 Subject: [PATCH 21/46] fix(deps): update dependency @ghostery/adblocker-electron to v2.5.2 (#3349) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 70 ++++++++++++++++++++++++++++---------------------- 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index eddefbcd..17d95f16 100644 --- a/package.json +++ b/package.json @@ -243,7 +243,7 @@ "@ffmpeg.wasm/main": "0.12.0", "@floating-ui/dom": "1.6.13", "@foobar404/wave": "2.0.5", - "@ghostery/adblocker-electron": "2.5.1", + "@ghostery/adblocker-electron": "2.5.2", "@ghostery/adblocker-electron-preload": "2.5.1", "@hono/node-server": "1.14.1", "@hono/swagger-ui": "0.5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c857f79d..6e3058bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,8 +46,8 @@ importers: specifier: 2.0.5 version: 2.0.5 '@ghostery/adblocker-electron': - specifier: 2.5.1 - version: 2.5.1(electron@34.5.5) + specifier: 2.5.2 + version: 2.5.2(electron@34.5.5) '@ghostery/adblocker-electron-preload': specifier: 2.5.1 version: 2.5.1(electron@34.5.5) @@ -753,24 +753,29 @@ packages: '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@ghostery/adblocker-content@2.5.1': - resolution: {integrity: sha512-Im0GiRxKdyWWWiIQBBOzA4nHecvPjOvMvT+GqsTHjcVqz+xFC22Jw1BPoniOjVYnOhS/XxtQZOdjm6A2Cbffew==} + '@ghostery/adblocker-content@2.5.2': + resolution: {integrity: sha512-H3e4QZsom7HqVgIBLaoHriqRh27MyXgwC43ClidOXXbCtKn6h7c3wc9TnQssQpXpcyV7HRPmWjMtADzUc+yYKg==} '@ghostery/adblocker-electron-preload@2.5.1': resolution: {integrity: sha512-QtTU/H8XmjK1VsK2Ua2Tk79RFxL5B1KltclWolJmTgVZeXUk9eJj0Wpo/hwFcFigVfXJ8Pbjbym9iftvPks6fQ==} peerDependencies: electron: '>11' - '@ghostery/adblocker-electron@2.5.1': - resolution: {integrity: sha512-UoZ75M/f1Gy1ipfZzYnNbX6GsWz4Cs6i1neCJue5zwAag09FIvL8PKkAJhkTvZgruKUghedFy+SwT+80CJ9k1A==} + '@ghostery/adblocker-electron-preload@2.5.2': + resolution: {integrity: sha512-RNHMznod4hGm7Nn7m+H/+4DQ4QGQbN5YnVJGdKjFrwN692nFV3VUN86f5Isb9+ZVD8Us7XQbNzW/uN1AAOn+mA==} peerDependencies: electron: '>11' - '@ghostery/adblocker-extended-selectors@2.5.1': - resolution: {integrity: sha512-UR9p/uEUmTXyQKkfCKwYesLkqJAGIyeFS2jDzIGgYDRyHGVlxu7Gcl/cdZehikTzBtrGtzc3X69amaUjvUyUJw==} + '@ghostery/adblocker-electron@2.5.2': + resolution: {integrity: sha512-4q8OBH+RIBwzRYW7FVZXGmXI1mogd2zyA9/7fNnch5o8GVhWMjPaEc62rvgQds7DFm/7TXYbrwbIijDfUbu8XQ==} + peerDependencies: + electron: '>11' - '@ghostery/adblocker@2.5.1': - resolution: {integrity: sha512-/sSSVLwb3ojIFw0owwffsGdCDOeMI02L/nXFIJD2exRAwG8hOETYwCGO7KwSyH2bnVTHtnIQYD1+hfeqQN+I5A==} + '@ghostery/adblocker-extended-selectors@2.5.2': + resolution: {integrity: sha512-Z2MQ4BiPTPG3cI1CFF1cE0IywL1EM2KGnOVkKEx62fnkO0aRyvAeja0jhQvjENtY/hixWLrsSg3MU95Clvq23g==} + + '@ghostery/adblocker@2.5.2': + resolution: {integrity: sha512-/SLxUGPd1JISNGOPsxKfbso+uylDEvEp3umF5gQ3x8YgsEZzD6zYx7H4ZQxAvG1pZIr4p6N9PiAf2N88T1Wo1Q==} '@hono/node-server@1.14.1': resolution: {integrity: sha512-vmbuM+HPinjWzPe7FFPWMMQMsbKE9gDPhaH0FFdqbGpkT5lp++tcWDTxwBl5EgS5y6JVgIaCdjeHRfQ4XRBRjQ==} @@ -4234,11 +4239,11 @@ packages: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} - tldts-core@6.1.79: - resolution: {integrity: sha512-HM+Ud/2oQuHt4I43Nvjc213Zji/z25NSH5OkJskJwHXNtYh9DTRlHMDFhms9dFMP7qyve/yVaXFIxmcJ7TdOjw==} + tldts-core@7.0.7: + resolution: {integrity: sha512-ECqb8imSroX1UmUuhRBNPkkmtZ8mHEenieim80UVxG0M5wXVjY2Fp2tYXCPvk+nLy1geOhFpeD5YQhM/gF63Jg==} - tldts-experimental@6.1.79: - resolution: {integrity: sha512-qAh6vDChn8fkkAaro/H632Af0yDQdcKGDQLYdwsv/c37VqKLiEO8loATjAgZPO2mwEgEYgzmxqtSLu293GjCTA==} + tldts-experimental@7.0.7: + resolution: {integrity: sha512-V055ViO8G6PbTBfaiL1Utq/MLUqFZKhJ1c9+T8t+c1uPmVSAl7rR6ib8y0lleN18niKV6f1/zmMlAhpFEaPY9w==} tmp-promise@3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} @@ -5089,32 +5094,37 @@ snapshots: '@gar/promisify@1.1.3': {} - '@ghostery/adblocker-content@2.5.1': + '@ghostery/adblocker-content@2.5.2': dependencies: - '@ghostery/adblocker-extended-selectors': 2.5.1 + '@ghostery/adblocker-extended-selectors': 2.5.2 '@ghostery/adblocker-electron-preload@2.5.1(electron@34.5.5)': dependencies: - '@ghostery/adblocker-content': 2.5.1 + '@ghostery/adblocker-content': 2.5.2 electron: 34.5.5 - '@ghostery/adblocker-electron@2.5.1(electron@34.5.5)': + '@ghostery/adblocker-electron-preload@2.5.2(electron@34.5.5)': dependencies: - '@ghostery/adblocker': 2.5.1 - '@ghostery/adblocker-electron-preload': 2.5.1(electron@34.5.5) + '@ghostery/adblocker-content': 2.5.2 electron: 34.5.5 - tldts-experimental: 6.1.79 - '@ghostery/adblocker-extended-selectors@2.5.1': {} - - '@ghostery/adblocker@2.5.1': + '@ghostery/adblocker-electron@2.5.2(electron@34.5.5)': dependencies: - '@ghostery/adblocker-content': 2.5.1 - '@ghostery/adblocker-extended-selectors': 2.5.1 + '@ghostery/adblocker': 2.5.2 + '@ghostery/adblocker-electron-preload': 2.5.2(electron@34.5.5) + electron: 34.5.5 + tldts-experimental: 7.0.7 + + '@ghostery/adblocker-extended-selectors@2.5.2': {} + + '@ghostery/adblocker@2.5.2': + dependencies: + '@ghostery/adblocker-content': 2.5.2 + '@ghostery/adblocker-extended-selectors': 2.5.2 '@remusao/guess-url-type': 2.0.0 '@remusao/small': 2.0.0 '@remusao/smaz': 2.1.0 - tldts-experimental: 6.1.79 + tldts-experimental: 7.0.7 '@hono/node-server@1.14.1(hono@4.7.9)': dependencies: @@ -9046,11 +9056,11 @@ snapshots: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 - tldts-core@6.1.79: {} + tldts-core@7.0.7: {} - tldts-experimental@6.1.79: + tldts-experimental@7.0.7: dependencies: - tldts-core: 6.1.79 + tldts-core: 7.0.7 tmp-promise@3.0.3: dependencies: From 1e764f77074be155bcf3ed3910b6793abc31548c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 16:17:11 +0900 Subject: [PATCH 22/46] fix(deps): update dependency happy-dom to v17.4.7 (#3352) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 17d95f16..5a28633a 100644 --- a/package.json +++ b/package.json @@ -275,7 +275,7 @@ "fast-equals": "5.2.2", "filenamify": "6.0.0", "hanja": "1.1.4", - "happy-dom": "17.4.4", + "happy-dom": "17.4.7", "hono": "4.7.9", "howler": "2.2.4", "html-to-text": "9.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e3058bb..6daec28a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,8 +142,8 @@ importers: specifier: 1.1.4 version: 1.1.4 happy-dom: - specifier: 17.4.4 - version: 17.4.4 + specifier: 17.4.7 + version: 17.4.7 hono: specifier: 4.7.9 version: 4.7.9 @@ -2685,8 +2685,8 @@ packages: hanja@1.1.4: resolution: {integrity: sha512-O8K0+9jyibUlmLd/WAXCQ+8XGersUm9PloQuEXFPRfiUztFHRz4WaELXij0iejtl8AN85FxWQYSNmAuoXLircA==} - happy-dom@17.4.4: - resolution: {integrity: sha512-/Pb0ctk3HTZ5xEL3BZ0hK1AqDSAUuRQitOmROPHhfUYEWpmTImwfD8vFDGADmMAX0JYgbcgxWoLFKtsWhcpuVA==} + happy-dom@17.4.7: + resolution: {integrity: sha512-NZypxadhCiV5NT4A+Y86aQVVKQ05KDmueja3sz008uJfDRwz028wd0aTiJPwo4RQlvlz0fznkEEBBCHVNWc08g==} engines: {node: '>=18.0.0'} has-bigints@1.1.0: @@ -7451,7 +7451,7 @@ snapshots: hanja@1.1.4: {} - happy-dom@17.4.4: + happy-dom@17.4.7: dependencies: webidl-conversions: 7.0.0 whatwg-mimetype: 3.0.0 From 1219de1ae94f86c3744abe7df58994c376e2f1b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 16:17:21 +0900 Subject: [PATCH 23/46] fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.5.2 (#3350) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 5a28633a..a0eacbeb 100644 --- a/package.json +++ b/package.json @@ -244,7 +244,7 @@ "@floating-ui/dom": "1.6.13", "@foobar404/wave": "2.0.5", "@ghostery/adblocker-electron": "2.5.2", - "@ghostery/adblocker-electron-preload": "2.5.1", + "@ghostery/adblocker-electron-preload": "2.5.2", "@hono/node-server": "1.14.1", "@hono/swagger-ui": "0.5.1", "@hono/zod-openapi": "0.19.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6daec28a..c5b825db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,8 +49,8 @@ importers: specifier: 2.5.2 version: 2.5.2(electron@34.5.5) '@ghostery/adblocker-electron-preload': - specifier: 2.5.1 - version: 2.5.1(electron@34.5.5) + specifier: 2.5.2 + version: 2.5.2(electron@34.5.5) '@hono/node-server': specifier: 1.14.1 version: 1.14.1(hono@4.7.9) @@ -756,11 +756,6 @@ packages: '@ghostery/adblocker-content@2.5.2': resolution: {integrity: sha512-H3e4QZsom7HqVgIBLaoHriqRh27MyXgwC43ClidOXXbCtKn6h7c3wc9TnQssQpXpcyV7HRPmWjMtADzUc+yYKg==} - '@ghostery/adblocker-electron-preload@2.5.1': - resolution: {integrity: sha512-QtTU/H8XmjK1VsK2Ua2Tk79RFxL5B1KltclWolJmTgVZeXUk9eJj0Wpo/hwFcFigVfXJ8Pbjbym9iftvPks6fQ==} - peerDependencies: - electron: '>11' - '@ghostery/adblocker-electron-preload@2.5.2': resolution: {integrity: sha512-RNHMznod4hGm7Nn7m+H/+4DQ4QGQbN5YnVJGdKjFrwN692nFV3VUN86f5Isb9+ZVD8Us7XQbNzW/uN1AAOn+mA==} peerDependencies: @@ -5098,11 +5093,6 @@ snapshots: dependencies: '@ghostery/adblocker-extended-selectors': 2.5.2 - '@ghostery/adblocker-electron-preload@2.5.1(electron@34.5.5)': - dependencies: - '@ghostery/adblocker-content': 2.5.2 - electron: 34.5.5 - '@ghostery/adblocker-electron-preload@2.5.2(electron@34.5.5)': dependencies: '@ghostery/adblocker-content': 2.5.2 From d8dcbddbf11bee4aad38090aea7b0b27369bccc9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 16:17:39 +0900 Subject: [PATCH 24/46] fix(deps): update dependency solid-js to v1.9.6 (#3353) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 58 +++++++++++++++++++++++++------------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index a0eacbeb..4f48ab6c 100644 --- a/package.json +++ b/package.json @@ -297,7 +297,7 @@ "simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9", "socks": "2.8.4", "solid-floating-ui": "0.3.1", - "solid-js": "1.9.5", + "solid-js": "1.9.6", "solid-styled-components": "0.28.5", "solid-transition-group": "0.3.0", "ts-morph": "25.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5b825db..2008e262 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -206,16 +206,16 @@ importers: version: 2.8.4 solid-floating-ui: specifier: 0.3.1 - version: 0.3.1(@floating-ui/dom@1.6.13)(solid-js@1.9.5) + version: 0.3.1(@floating-ui/dom@1.6.13)(solid-js@1.9.6) solid-js: - specifier: 1.9.5 - version: 1.9.5 + specifier: 1.9.6 + version: 1.9.6 solid-styled-components: specifier: 0.28.5 - version: 0.28.5(solid-js@1.9.5) + version: 0.28.5(solid-js@1.9.6) solid-transition-group: specifier: 0.3.0 - version: 0.3.0(solid-js@1.9.5) + version: 0.3.0(solid-js@1.9.6) ts-morph: specifier: 25.0.1 version: 25.0.1 @@ -345,7 +345,7 @@ importers: version: 2.5.2 vite-plugin-solid: specifier: 2.11.6 - version: 2.11.6(solid-js@1.9.5)(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) + version: 2.11.6(solid-js@1.9.6)(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) ws: specifier: 8.18.2 version: 8.18.2(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -4072,8 +4072,8 @@ packages: '@floating-ui/dom': ^1.5 solid-js: ^1.8 - solid-js@1.9.5: - resolution: {integrity: sha512-ogI3DaFcyn6UhYhrgcyRAMbu/buBJitYQASZz5WzfQVPP10RD2AbCoRZ517psnezrasyCbWzIxZ6kVqet768xw==} + solid-js@1.9.6: + resolution: {integrity: sha512-PoasAJvLk60hRtOTe9ulvALOdLjjqxuxcGZRolBQqxOnXrBXHGzqMT4ijNhGsDAYdOgEa8ZYaAE94PSldrFSkA==} solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} @@ -5553,18 +5553,18 @@ snapshots: '@skyra/jaro-winkler@1.1.1': {} - '@solid-primitives/refs@1.1.0(solid-js@1.9.5)': + '@solid-primitives/refs@1.1.0(solid-js@1.9.6)': dependencies: - '@solid-primitives/utils': 6.3.0(solid-js@1.9.5) - solid-js: 1.9.5 + '@solid-primitives/utils': 6.3.0(solid-js@1.9.6) + solid-js: 1.9.6 - '@solid-primitives/transition-group@1.1.0(solid-js@1.9.5)': + '@solid-primitives/transition-group@1.1.0(solid-js@1.9.6)': dependencies: - solid-js: 1.9.5 + solid-js: 1.9.6 - '@solid-primitives/utils@6.3.0(solid-js@1.9.5)': + '@solid-primitives/utils@6.3.0(solid-js@1.9.6)': dependencies: - solid-js: 1.9.5 + solid-js: 1.9.6 '@stylistic/eslint-plugin-js@4.2.0(eslint@9.25.1)': dependencies: @@ -8851,37 +8851,37 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 - solid-floating-ui@0.3.1(@floating-ui/dom@1.6.13)(solid-js@1.9.5): + solid-floating-ui@0.3.1(@floating-ui/dom@1.6.13)(solid-js@1.9.6): dependencies: '@floating-ui/dom': 1.6.13 - solid-js: 1.9.5 + solid-js: 1.9.6 - solid-js@1.9.5: + solid-js@1.9.6: dependencies: csstype: 3.1.3 seroval: 1.2.1 seroval-plugins: 1.2.1(seroval@1.2.1) - solid-refresh@0.6.3(solid-js@1.9.5): + solid-refresh@0.6.3(solid-js@1.9.6): dependencies: '@babel/generator': 7.27.0 '@babel/helper-module-imports': 7.25.9 '@babel/types': 7.27.0 - solid-js: 1.9.5 + solid-js: 1.9.6 transitivePeerDependencies: - supports-color - solid-styled-components@0.28.5(solid-js@1.9.5): + solid-styled-components@0.28.5(solid-js@1.9.6): dependencies: csstype: 3.1.3 goober: 2.1.16(csstype@3.1.3) - solid-js: 1.9.5 + solid-js: 1.9.6 - solid-transition-group@0.3.0(solid-js@1.9.5): + solid-transition-group@0.3.0(solid-js@1.9.6): dependencies: - '@solid-primitives/refs': 1.1.0(solid-js@1.9.5) - '@solid-primitives/transition-group': 1.1.0(solid-js@1.9.5) - solid-js: 1.9.5 + '@solid-primitives/refs': 1.1.0(solid-js@1.9.6) + '@solid-primitives/transition-group': 1.1.0(solid-js@1.9.6) + solid-js: 1.9.6 source-map-js@1.2.1: {} @@ -9291,14 +9291,14 @@ snapshots: dependencies: lib-esm: 0.4.2 - vite-plugin-solid@2.11.6(solid-js@1.9.5)(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)): + vite-plugin-solid@2.11.6(solid-js@1.9.6)(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 babel-preset-solid: 1.9.5(@babel/core@7.26.10) merge-anything: 5.1.7 - solid-js: 1.9.5 - solid-refresh: 0.6.3(solid-js@1.9.5) + solid-js: 1.9.6 + solid-refresh: 0.6.3(solid-js@1.9.6) vite: 6.3.5(@types/node@22.13.5)(yaml@2.7.0) vitefu: 1.0.6(vite@6.3.5(@types/node@22.13.5)(yaml@2.7.0)) transitivePeerDependencies: From 806dc11d4ab8bc495676054b51fbfe66524daab1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 16:17:51 +0900 Subject: [PATCH 25/46] fix(deps): update dependency zod to v3.24.4 (#3354) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 62 +++++++++++++++++++++++++------------------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 4f48ab6c..7cfcfc44 100644 --- a/package.json +++ b/package.json @@ -304,7 +304,7 @@ "vudio": "2.1.1", "x11": "2.3.0", "youtubei.js": "13.4.0", - "zod": "3.24.3" + "zod": "3.24.4" }, "devDependencies": { "@eslint/js": "9.25.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2008e262..837db13f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,10 +59,10 @@ importers: version: 0.5.1(hono@4.7.9) '@hono/zod-openapi': specifier: 0.19.6 - version: 0.19.6(hono@4.7.9)(zod@3.24.3) + version: 0.19.6(hono@4.7.9)(zod@3.24.4) '@hono/zod-validator': specifier: 0.5.0 - version: 0.5.0(hono@4.7.9)(zod@3.24.3) + version: 0.5.0(hono@4.7.9)(zod@3.24.4) '@jellybrick/dbus-next': specifier: 0.10.3 version: 0.10.3 @@ -229,8 +229,8 @@ importers: specifier: 13.4.0 version: 13.4.0 zod: - specifier: 3.24.3 - version: 3.24.3 + specifier: 3.24.4 + version: 3.24.4 devDependencies: '@eslint/js': specifier: 9.25.1 @@ -4653,8 +4653,8 @@ packages: zlibjs@0.3.1: resolution: {integrity: sha512-+J9RrgTKOmlxFSDHo0pI1xM6BLVUv+o0ZT9ANtCxGkjIVCCUdx9alUF8Gm+dGLKbkkkidWIHFDZHDMpfITt4+w==} - zod@3.24.3: - resolution: {integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==} + zod@3.24.4: + resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} snapshots: @@ -4667,10 +4667,10 @@ snapshots: '@assemblyscript/loader@0.17.14': {} - '@asteasolutions/zod-to-openapi@7.3.0(zod@3.24.3)': + '@asteasolutions/zod-to-openapi@7.3.0(zod@3.24.4)': dependencies: openapi3-ts: 4.4.0 - zod: 3.24.3 + zod: 3.24.4 '@babel/code-frame@7.26.2': dependencies: @@ -5124,17 +5124,17 @@ snapshots: dependencies: hono: 4.7.9 - '@hono/zod-openapi@0.19.6(hono@4.7.9)(zod@3.24.3)': + '@hono/zod-openapi@0.19.6(hono@4.7.9)(zod@3.24.4)': dependencies: - '@asteasolutions/zod-to-openapi': 7.3.0(zod@3.24.3) - '@hono/zod-validator': 0.5.0(hono@4.7.9)(zod@3.24.3) + '@asteasolutions/zod-to-openapi': 7.3.0(zod@3.24.4) + '@hono/zod-validator': 0.5.0(hono@4.7.9)(zod@3.24.4) hono: 4.7.9 - zod: 3.24.3 + zod: 3.24.4 - '@hono/zod-validator@0.5.0(hono@4.7.9)(zod@3.24.3)': + '@hono/zod-validator@0.5.0(hono@4.7.9)(zod@3.24.4)': dependencies: hono: 4.7.9 - zod: 3.24.3 + zod: 3.24.4 '@humanfs/core@0.19.1': {} @@ -5237,7 +5237,7 @@ snapshots: dependencies: '@jimp/types': 1.6.0 '@jimp/utils': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-blur@1.6.0': dependencies: @@ -5247,7 +5247,7 @@ snapshots: '@jimp/plugin-circle@1.6.0': dependencies: '@jimp/types': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-color@1.6.0': dependencies: @@ -5255,7 +5255,7 @@ snapshots: '@jimp/types': 1.6.0 '@jimp/utils': 1.6.0 tinycolor2: 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-contain@1.6.0': dependencies: @@ -5264,7 +5264,7 @@ snapshots: '@jimp/plugin-resize': 1.6.0 '@jimp/types': 1.6.0 '@jimp/utils': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-cover@1.6.0': dependencies: @@ -5272,20 +5272,20 @@ snapshots: '@jimp/plugin-crop': 1.6.0 '@jimp/plugin-resize': 1.6.0 '@jimp/types': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-crop@1.6.0': dependencies: '@jimp/core': 1.6.0 '@jimp/types': 1.6.0 '@jimp/utils': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-displace@1.6.0': dependencies: '@jimp/types': 1.6.0 '@jimp/utils': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-dither@1.6.0': dependencies: @@ -5295,12 +5295,12 @@ snapshots: dependencies: '@jimp/types': 1.6.0 '@jimp/utils': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-flip@1.6.0': dependencies: '@jimp/types': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-hash@1.6.0': dependencies: @@ -5318,7 +5318,7 @@ snapshots: '@jimp/plugin-mask@1.6.0': dependencies: '@jimp/types': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-print@1.6.0': dependencies: @@ -5331,18 +5331,18 @@ snapshots: parse-bmfont-binary: 1.0.6 parse-bmfont-xml: 1.1.6 simple-xml-to-json: 1.2.3 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-quantize@1.6.0': dependencies: image-q: 4.0.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-resize@1.6.0': dependencies: '@jimp/core': 1.6.0 '@jimp/types': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-rotate@1.6.0': dependencies: @@ -5351,7 +5351,7 @@ snapshots: '@jimp/plugin-resize': 1.6.0 '@jimp/types': 1.6.0 '@jimp/utils': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/plugin-threshold@1.6.0': dependencies: @@ -5360,11 +5360,11 @@ snapshots: '@jimp/plugin-hash': 1.6.0 '@jimp/types': 1.6.0 '@jimp/utils': 1.6.0 - zod: 3.24.3 + zod: 3.24.4 '@jimp/types@1.6.0': dependencies: - zod: 3.24.3 + zod: 3.24.4 '@jimp/utils@1.6.0': dependencies: @@ -9469,4 +9469,4 @@ snapshots: zlibjs@0.3.1: {} - zod@3.24.3: {} + zod@3.24.4: {} From 823fbf4a7843aace272f17ebbc97af48ebc450a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 16:18:01 +0900 Subject: [PATCH 26/46] chore(deps): update dependency eslint-plugin-prettier to v5.4.0 (#3355) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 7cfcfc44..27271728 100644 --- a/package.json +++ b/package.json @@ -333,7 +333,7 @@ "eslint-import-resolver-exports": "1.0.0-beta.5", "eslint-import-resolver-typescript": "4.3.4", "eslint-plugin-import": "2.31.0", - "eslint-plugin-prettier": "5.2.6", + "eslint-plugin-prettier": "5.4.0", "glob": "11.0.2", "node-gyp": "11.2.0", "playwright": "1.52.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 837db13f..42d4ec85 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -311,8 +311,8 @@ importers: specifier: 2.31.0 version: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) eslint-plugin-prettier: - specifier: 5.2.6 - version: 5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2) + specifier: 5.4.0 + version: 5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2) glob: specifier: 11.0.2 version: 11.0.2 @@ -2337,8 +2337,8 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-prettier@5.2.6: - resolution: {integrity: sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==} + eslint-plugin-prettier@5.4.0: + resolution: {integrity: sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -7020,7 +7020,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2): + eslint-plugin-prettier@5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2): dependencies: eslint: 9.25.1 prettier: 3.5.2 From d4c00b6d74ed674bf36095edf1da5c86eef18ecb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 16:21:27 +0900 Subject: [PATCH 27/46] chore(deps): update eslint monorepo to v9.26.0 (#3356) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 530 +++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 468 insertions(+), 66 deletions(-) diff --git a/package.json b/package.json index 27271728..b64232b2 100644 --- a/package.json +++ b/package.json @@ -307,7 +307,7 @@ "zod": "3.24.4" }, "devDependencies": { - "@eslint/js": "9.25.1", + "@eslint/js": "9.26.0", "@malept/flatpak-bundler": "0.4.0", "@playwright/test": "1.52.0", "@stylistic/eslint-plugin-js": "4.2.0", @@ -328,7 +328,7 @@ "electron-devtools-installer": "4.0.0", "electron-vite": "3.1.0", "esbuild": "0.25.4", - "eslint": "9.25.1", + "eslint": "9.26.0", "eslint-config-prettier": "10.1.5", "eslint-import-resolver-exports": "1.0.0-beta.5", "eslint-import-resolver-typescript": "4.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42d4ec85..f2ec03fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -233,8 +233,8 @@ importers: version: 3.24.4 devDependencies: '@eslint/js': - specifier: 9.25.1 - version: 9.25.1 + specifier: 9.26.0 + version: 9.26.0 '@malept/flatpak-bundler': specifier: 0.4.0 version: 0.4.0(patch_hash=c787371eeb2af011ea934e8818a0dad6d7dcb2df31bbb1686babc7231af0183c) @@ -243,7 +243,7 @@ importers: version: 1.52.0 '@stylistic/eslint-plugin-js': specifier: 4.2.0 - version: 4.2.0(eslint@9.25.1) + version: 4.2.0(eslint@9.26.0) '@total-typescript/ts-reset': specifier: 0.6.1 version: 0.6.1 @@ -296,23 +296,23 @@ importers: specifier: 0.25.4 version: 0.25.4 eslint: - specifier: 9.25.1 - version: 9.25.1 + specifier: 9.26.0 + version: 9.26.0 eslint-config-prettier: specifier: 10.1.5 - version: 10.1.5(eslint@9.25.1) + version: 10.1.5(eslint@9.26.0) eslint-import-resolver-exports: specifier: 1.0.0-beta.5 - version: 1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.25.1) + version: 1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.26.0) eslint-import-resolver-typescript: specifier: 4.3.4 - version: 4.3.4(eslint-plugin-import@2.31.0)(eslint@9.25.1) + version: 4.3.4(eslint-plugin-import@2.31.0)(eslint@9.26.0) eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) + version: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0) eslint-plugin-prettier: specifier: 5.4.0 - version: 5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2) + version: 5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.26.0))(eslint@9.26.0)(prettier@3.5.2) glob: specifier: 11.0.2 version: 11.0.2 @@ -330,7 +330,7 @@ importers: version: 5.8.3 typescript-eslint: specifier: 8.32.0 - version: 8.32.0(eslint@9.25.1)(typescript@5.8.3) + version: 8.32.0(eslint@9.26.0)(typescript@5.8.3) utf-8-validate: specifier: 6.0.5 version: 6.0.5 @@ -715,8 +715,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.25.1': - resolution: {integrity: sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==} + '@eslint/js@9.26.0': + resolution: {integrity: sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -971,6 +971,10 @@ packages: resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} engines: {node: '>= 10.0.0'} + '@modelcontextprotocol/sdk@1.11.1': + resolution: {integrity: sha512-9LfmxKTb1v+vUS1/emSk1f5ePmTLkb9Le9AxOB5T0XM59EUumwcS45z05h7aiZx3GI0Bl7mjb3FMEglYj+acuQ==} + engines: {node: '>=18'} + '@msgpack/msgpack@2.8.0': resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} engines: {node: '>= 10'} @@ -1450,6 +1454,10 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1645,6 +1653,10 @@ packages: bmp-ts@1.0.9: resolution: {integrity: sha512-cTEHk2jLrPyi+12M3dhpEbnnPOsaZuq7C45ylbbQIiWgDFZq4UVYPEY5mlqjvsj/6gJv9qX5sa+ebDzLXT28Vw==} + body-parser@2.2.0: + resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} + engines: {node: '>=18'} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -1715,6 +1727,10 @@ packages: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1888,15 +1904,35 @@ packages: resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} engines: {node: '>= 0.6'} + content-disposition@1.0.0: + resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + cosmiconfig@6.0.0: resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} engines: {node: '>=8'} @@ -2043,6 +2079,10 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -2113,6 +2153,9 @@ packages: ecma-proposal-math-extensions@0.0.2: resolution: {integrity: sha512-80BnDp2Fn7RxXlEr5HHZblniY4aQ97MOAicdWWpSo0vkQiISSE9wLR4SqxKsu4gCtXFBIPPzy8JMhay4NWRg/Q==} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + eel-wasm@0.0.15: resolution: {integrity: sha512-FSTWf6lwGn7Zc3QiV+KxWTznIqq4j9eST/aXmyN/cC39+1Arqs13YOMosHQ7tqUt+OjQmG79Vd41f9gu+w1lvA==} @@ -2197,6 +2240,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -2274,6 +2321,9 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -2363,8 +2413,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.25.1: - resolution: {integrity: sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==} + eslint@9.26.0: + resolution: {integrity: sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2393,6 +2443,10 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + event-stream@4.0.1: resolution: {integrity: sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==} @@ -2407,6 +2461,14 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + eventsource-parser@3.0.1: + resolution: {integrity: sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==} + engines: {node: '>=18.0.0'} + + eventsource@3.0.7: + resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} + engines: {node: '>=18.0.0'} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2417,6 +2479,16 @@ packages: exponential-backoff@3.1.2: resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + express-rate-limit@7.5.0: + resolution: {integrity: sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==} + engines: {node: '>= 16'} + peerDependencies: + express: ^4.11 || 5 || ^5.0.0-beta.1 + + express@5.1.0: + resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} + engines: {node: '>= 18'} + extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -2497,6 +2569,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + finalhandler@2.1.0: + resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} + engines: {node: '>= 0.8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2524,6 +2600,14 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + from@0.1.7: resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} @@ -2739,6 +2823,10 @@ packages: http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -2837,6 +2925,10 @@ packages: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -2949,6 +3041,9 @@ packages: resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -3226,6 +3321,10 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} @@ -3234,6 +3333,10 @@ packages: resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} engines: {node: '>=12.13'} + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3253,8 +3356,8 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} engines: {node: '>= 0.6'} mime-types@2.1.18: @@ -3265,6 +3368,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + mime@2.6.0: resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} engines: {node: '>=4.0.0'} @@ -3464,6 +3571,10 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -3498,6 +3609,10 @@ packages: omggif@1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + on-headers@1.0.2: resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} engines: {node: '>= 0.8'} @@ -3581,6 +3696,10 @@ packages: parseley@0.12.1: resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -3613,6 +3732,10 @@ packages: path-to-regexp@3.3.0: resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} + path-to-regexp@8.2.0: + resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} + engines: {node: '>=16'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -3683,6 +3806,10 @@ packages: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} hasBin: true + pkce-challenge@5.0.0: + resolution: {integrity: sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==} + engines: {node: '>=16.20.0'} + playwright-core@1.52.0: resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==} engines: {node: '>=18'} @@ -3765,6 +3892,10 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} @@ -3772,6 +3903,10 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -3783,6 +3918,14 @@ packages: resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} engines: {node: '>= 0.6'} + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} + engines: {node: '>= 0.8'} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -3893,6 +4036,10 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} @@ -3952,6 +4099,10 @@ packages: engines: {node: '>=10'} hasBin: true + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + serialize-error@7.0.1: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} engines: {node: '>=10'} @@ -3973,6 +4124,10 @@ packages: serve-handler@6.1.6: resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + serve@14.2.4: resolution: {integrity: sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==} engines: {node: '>= 14'} @@ -3993,6 +4148,9 @@ packages: setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -4123,6 +4281,10 @@ packages: resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} engines: {node: '>= 6'} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -4251,6 +4413,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + token-types@4.2.1: resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} engines: {node: '>=10'} @@ -4297,6 +4463,10 @@ packages: resolution: {integrity: sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==} engines: {node: '>=16'} + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -4375,6 +4545,10 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + unplugin-utils@0.2.4: resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} engines: {node: '>=18.12.0'} @@ -4653,6 +4827,11 @@ packages: zlibjs@0.3.1: resolution: {integrity: sha512-+J9RrgTKOmlxFSDHo0pI1xM6BLVUv+o0ZT9ANtCxGkjIVCCUdx9alUF8Gm+dGLKbkkkidWIHFDZHDMpfITt4+w==} + zod-to-json-schema@3.24.5: + resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} + peerDependencies: + zod: ^3.24.1 + zod@3.24.4: resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} @@ -5020,9 +5199,9 @@ snapshots: '@esbuild/win32-x64@0.25.4': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.25.1)': + '@eslint-community/eslint-utils@4.7.0(eslint@9.26.0)': dependencies: - eslint: 9.25.1 + eslint: 9.26.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -5055,7 +5234,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.25.1': {} + '@eslint/js@9.26.0': {} '@eslint/object-schema@2.1.6': {} @@ -5401,6 +5580,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@modelcontextprotocol/sdk@1.11.1': + dependencies: + content-type: 1.0.5 + cors: 2.8.5 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + express: 5.1.0 + express-rate-limit: 7.5.0(express@5.1.0) + pkce-challenge: 5.0.0 + raw-body: 3.0.0 + zod: 3.24.4 + zod-to-json-schema: 3.24.5(zod@3.24.4) + transitivePeerDependencies: + - supports-color + '@msgpack/msgpack@2.8.0': {} '@napi-rs/wasm-runtime@0.2.9': @@ -5566,9 +5760,9 @@ snapshots: dependencies: solid-js: 1.9.6 - '@stylistic/eslint-plugin-js@4.2.0(eslint@9.25.1)': + '@stylistic/eslint-plugin-js@4.2.0(eslint@9.26.0)': dependencies: - eslint: 9.25.1 + eslint: 9.26.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 @@ -5693,15 +5887,15 @@ snapshots: '@types/node': 22.13.5 optional: true - '@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint@9.25.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint@9.26.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.0(eslint@9.26.0)(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.25.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.32.0(eslint@9.26.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0)(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.32.0 - eslint: 9.25.1 + eslint: 9.26.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -5710,14 +5904,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3)': + '@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.32.0 '@typescript-eslint/types': 8.32.0 '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.32.0 debug: 4.4.0 - eslint: 9.25.1 + eslint: 9.26.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -5727,12 +5921,12 @@ snapshots: '@typescript-eslint/types': 8.32.0 '@typescript-eslint/visitor-keys': 8.32.0 - '@typescript-eslint/type-utils@8.32.0(eslint@9.25.1)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.32.0(eslint@9.26.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0)(typescript@5.8.3) debug: 4.4.0 - eslint: 9.25.1 + eslint: 9.26.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -5754,13 +5948,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.32.0(eslint@9.25.1)(typescript@5.8.3)': + '@typescript-eslint/utils@8.32.0(eslint@9.26.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.26.0) '@typescript-eslint/scope-manager': 8.32.0 '@typescript-eslint/types': 8.32.0 '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) - eslint: 9.25.1 + eslint: 9.26.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -5849,6 +6043,11 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + accepts@2.0.0: + dependencies: + mime-types: 3.0.1 + negotiator: 1.0.0 + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -6093,6 +6292,20 @@ snapshots: bmp-ts@1.0.9: {} + body-parser@2.2.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.0 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.0 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + boolbase@1.0.0: {} boolean@3.2.0: @@ -6199,6 +6412,8 @@ snapshots: bytes@3.0.0: {} + bytes@3.1.2: {} + cac@6.7.14: {} cacache@16.1.3: @@ -6367,7 +6582,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.53.0 + mime-db: 1.54.0 compression@1.7.4: dependencies: @@ -6402,13 +6617,28 @@ snapshots: content-disposition@0.5.2: {} + content-disposition@1.0.0: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + convert-source-map@2.0.0: {} + cookie-signature@1.2.2: {} + + cookie@0.7.2: {} + core-util-is@1.0.2: optional: true core-util-is@1.0.3: {} + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + cosmiconfig@6.0.0: dependencies: '@types/parse-json': 4.0.2 @@ -6565,6 +6795,8 @@ snapshots: delayed-stream@1.0.0: {} + depd@2.0.0: {} + detect-libc@2.0.3: {} detect-node@2.1.0: @@ -6652,6 +6884,8 @@ snapshots: ecma-proposal-math-extensions@0.0.2: {} + ee-first@1.1.1: {} + eel-wasm@0.0.15: {} ejs@3.1.10: @@ -6795,6 +7029,8 @@ snapshots: emoji-regex@9.2.2: {} + encodeurl@2.0.0: {} + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 @@ -6946,16 +7182,18 @@ snapshots: escalade@3.2.0: {} + escape-html@1.0.3: {} + escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.5(eslint@9.25.1): + eslint-config-prettier@10.1.5(eslint@9.26.0): dependencies: - eslint: 9.25.1 + eslint: 9.26.0 - eslint-import-resolver-exports@1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.25.1): + eslint-import-resolver-exports@1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.26.0): dependencies: - eslint: 9.25.1 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) + eslint: 9.26.0 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0) resolve.exports: 2.0.3 eslint-import-resolver-node@0.3.9: @@ -6966,32 +7204,32 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.3.4(eslint-plugin-import@2.31.0)(eslint@9.25.1): + eslint-import-resolver-typescript@4.3.4(eslint-plugin-import@2.31.0)(eslint@9.26.0): dependencies: debug: 4.4.0 - eslint: 9.25.1 + eslint: 9.26.0 get-tsconfig: 4.10.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.13 unrs-resolver: 1.6.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.32.0(eslint@9.25.1)(typescript@5.8.3) - eslint: 9.25.1 + '@typescript-eslint/parser': 8.32.0(eslint@9.26.0)(typescript@5.8.3) + eslint: 9.26.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import@2.31.0)(eslint@9.25.1) + eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import@2.31.0)(eslint@9.26.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -7000,9 +7238,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.25.1 + eslint: 9.26.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.25.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -7014,21 +7252,21 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.32.0(eslint@9.25.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.0(eslint@9.26.0)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.25.1))(eslint@9.25.1)(prettier@3.5.2): + eslint-plugin-prettier@5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.26.0))(eslint@9.26.0)(prettier@3.5.2): dependencies: - eslint: 9.25.1 + eslint: 9.26.0 prettier: 3.5.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.1 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.5(eslint@9.25.1) + eslint-config-prettier: 10.1.5(eslint@9.26.0) eslint-scope@8.3.0: dependencies: @@ -7039,19 +7277,20 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.25.1: + eslint@9.26.0: dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.26.0) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.1 '@eslint/core': 0.13.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.25.1 + '@eslint/js': 9.26.0 '@eslint/plugin-kit': 0.2.8 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 + '@modelcontextprotocol/sdk': 1.11.1 '@types/estree': 1.0.7 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -7076,6 +7315,7 @@ snapshots: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 + zod: 3.24.4 transitivePeerDependencies: - supports-color @@ -7097,6 +7337,8 @@ snapshots: esutils@2.0.3: {} + etag@1.8.1: {} + event-stream@4.0.1: dependencies: duplexer: 0.1.2 @@ -7113,6 +7355,12 @@ snapshots: events@3.3.0: {} + eventsource-parser@3.0.1: {} + + eventsource@3.0.7: + dependencies: + eventsource-parser: 3.0.1 + execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -7129,6 +7377,42 @@ snapshots: exponential-backoff@3.1.2: {} + express-rate-limit@7.5.0(express@5.1.0): + dependencies: + express: 5.1.0 + + express@5.1.0: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.0 + content-disposition: 1.0.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.0 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + mime-types: 3.0.1 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.14.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.0 + serve-static: 2.2.0 + statuses: 2.0.1 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + extract-zip@2.0.1: dependencies: debug: 4.4.0 @@ -7207,6 +7491,17 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@2.1.0: + dependencies: + debug: 4.4.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -7239,6 +7534,10 @@ snapshots: dependencies: fetch-blob: 3.2.0 + forwarded@0.2.0: {} + + fresh@2.0.0: {} + from@0.1.7: {} fs-extra@10.1.0: @@ -7497,6 +7796,14 @@ snapshots: http-cache-semantics@4.1.1: {} + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 @@ -7600,6 +7907,8 @@ snapshots: jsbn: 1.1.0 sprintf-js: 1.1.3 + ipaddr.js@1.9.1: {} + is-arguments@1.2.0: dependencies: call-bound: 1.0.3 @@ -7701,6 +8010,8 @@ snapshots: is-port-reachable@4.0.0: {} + is-promise@4.0.0: {} + is-regex@1.2.1: dependencies: call-bound: 1.0.3 @@ -8004,12 +8315,16 @@ snapshots: math-intrinsics@1.1.0: {} + media-typer@1.1.0: {} + meow@13.2.0: {} merge-anything@5.1.7: dependencies: is-what: 4.1.16 + merge-descriptors@2.0.0: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -8023,7 +8338,7 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.53.0: {} + mime-db@1.54.0: {} mime-types@2.1.18: dependencies: @@ -8033,6 +8348,10 @@ snapshots: dependencies: mime-db: 1.52.0 + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + mime@2.6.0: {} mime@3.0.0: {} @@ -8208,6 +8527,8 @@ snapshots: dependencies: boolbase: 1.0.0 + object-assign@4.1.1: {} + object-inspect@1.13.4: {} object-is@1.1.6: @@ -8250,6 +8571,10 @@ snapshots: omggif@1.0.10: {} + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + on-headers@1.0.2: {} once@1.4.0: @@ -8349,6 +8674,8 @@ snapshots: leac: 0.6.0 peberminta: 0.9.0 + parseurl@1.3.3: {} + path-browserify@1.0.1: {} path-exists@4.0.0: {} @@ -8373,6 +8700,8 @@ snapshots: path-to-regexp@3.3.0: {} + path-to-regexp@8.2.0: {} + path-type@4.0.0: {} path-type@6.0.0: {} @@ -8418,6 +8747,8 @@ snapshots: dependencies: pngjs: 6.0.0 + pkce-challenge@5.0.0: {} + playwright-core@1.52.0: {} playwright@1.52.0: @@ -8478,6 +8809,11 @@ snapshots: err-code: 2.0.3 retry: 0.12.0 + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + pump@3.0.2: dependencies: end-of-stream: 1.4.4 @@ -8485,12 +8821,25 @@ snapshots: punycode@2.3.1: {} + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + queue-microtask@1.2.3: {} quick-lru@5.1.1: {} range-parser@1.2.0: {} + range-parser@1.2.1: {} + + raw-body@3.0.0: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + unpipe: 1.0.0 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -8646,6 +8995,16 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.40.2 fsevents: 2.3.3 + router@2.2.0: + dependencies: + debug: 4.4.0 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.2.0 + transitivePeerDependencies: + - supports-color + run-applescript@7.0.0: {} run-parallel@1.2.0: @@ -8702,6 +9061,22 @@ snapshots: semver@7.7.1: {} + send@1.2.0: + dependencies: + debug: 4.4.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + serialize-error@7.0.1: dependencies: type-fest: 0.13.1 @@ -8727,6 +9102,15 @@ snapshots: path-to-regexp: 3.3.0 range-parser: 1.2.0 + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color + serve@14.2.4: dependencies: '@zeit/schemas': 2.36.0 @@ -8767,6 +9151,8 @@ snapshots: setimmediate@1.0.5: {} + setprototypeof@1.2.0: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -8910,6 +9296,8 @@ snapshots: stat-mode@1.0.0: {} + statuses@2.0.1: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -9062,6 +9450,8 @@ snapshots: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + token-types@4.2.1: dependencies: '@tokenizer/token': 0.3.0 @@ -9104,6 +9494,12 @@ snapshots: type-fest@4.35.0: {} + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.1 + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.3 @@ -9137,12 +9533,12 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.32.0(eslint@9.25.1)(typescript@5.8.3): + typescript-eslint@8.32.0(eslint@9.26.0)(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.25.1)(typescript@5.8.3))(eslint@9.25.1)(typescript@5.8.3) - '@typescript-eslint/parser': 8.32.0(eslint@9.25.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.0(eslint@9.25.1)(typescript@5.8.3) - eslint: 9.25.1 + '@typescript-eslint/eslint-plugin': 8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0)(typescript@5.8.3))(eslint@9.26.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.0(eslint@9.26.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.0(eslint@9.26.0)(typescript@5.8.3) + eslint: 9.26.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -9190,6 +9586,8 @@ snapshots: universalify@2.0.1: {} + unpipe@1.0.0: {} + unplugin-utils@0.2.4: dependencies: pathe: 2.0.3 @@ -9469,4 +9867,8 @@ snapshots: zlibjs@0.3.1: {} + zod-to-json-schema@3.24.5(zod@3.24.4): + dependencies: + zod: 3.24.4 + zod@3.24.4: {} From e2f1d1d6118d0ca4d556692f0d3c2cd07b53e109 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 16:22:11 +0900 Subject: [PATCH 28/46] fix(deps): update dependency @floating-ui/dom to v1.7.0 (#3357) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index b64232b2..10b37e44 100644 --- a/package.json +++ b/package.json @@ -241,7 +241,7 @@ "@electron/remote": "2.1.2", "@ffmpeg.wasm/core-mt": "0.12.0", "@ffmpeg.wasm/main": "0.12.0", - "@floating-ui/dom": "1.6.13", + "@floating-ui/dom": "1.7.0", "@foobar404/wave": "2.0.5", "@ghostery/adblocker-electron": "2.5.2", "@ghostery/adblocker-electron-preload": "2.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2ec03fb..19716d41 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,8 +40,8 @@ importers: specifier: 0.12.0 version: 0.12.0 '@floating-ui/dom': - specifier: 1.6.13 - version: 1.6.13 + specifier: 1.7.0 + version: 1.7.0 '@foobar404/wave': specifier: 2.0.5 version: 2.0.5 @@ -206,7 +206,7 @@ importers: version: 2.8.4 solid-floating-ui: specifier: 0.3.1 - version: 0.3.1(@floating-ui/dom@1.6.13)(solid-js@1.9.6) + version: 0.3.1(@floating-ui/dom@1.7.0)(solid-js@1.9.6) solid-js: specifier: 1.9.6 version: 1.9.6 @@ -738,11 +738,11 @@ packages: resolution: {integrity: sha512-LILAKTrU3Rga2iXLsF9jeFxe2hNQFjWlrKuXPWSdCFeQ7Kg69fO4WwjNJ0CzjOyO6qtndRQMNKqf//N4fLYUBA==} engines: {node: '>=12.16.1'} - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + '@floating-ui/core@1.7.0': + resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==} - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + '@floating-ui/dom@1.7.0': + resolution: {integrity: sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==} '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} @@ -5253,13 +5253,13 @@ snapshots: node-fetch: 3.3.2 regenerator-runtime: 0.13.11 - '@floating-ui/core@1.6.9': + '@floating-ui/core@1.7.0': dependencies: '@floating-ui/utils': 0.2.9 - '@floating-ui/dom@1.6.13': + '@floating-ui/dom@1.7.0': dependencies: - '@floating-ui/core': 1.6.9 + '@floating-ui/core': 1.7.0 '@floating-ui/utils': 0.2.9 '@floating-ui/utils@0.2.9': {} @@ -9237,9 +9237,9 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 - solid-floating-ui@0.3.1(@floating-ui/dom@1.6.13)(solid-js@1.9.6): + solid-floating-ui@0.3.1(@floating-ui/dom@1.7.0)(solid-js@1.9.6): dependencies: - '@floating-ui/dom': 1.6.13 + '@floating-ui/dom': 1.7.0 solid-js: 1.9.6 solid-js@1.9.6: From a257d4dfbc16bd7b7010447fd949a9d7e3d912a1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 22:11:23 +0900 Subject: [PATCH 29/46] chore(deps): update dependency electron to v36 (#3307) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 52 +++++++++++++++++++------------------------------- 2 files changed, 21 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index 10b37e44..77032260 100644 --- a/package.json +++ b/package.json @@ -322,7 +322,7 @@ "cross-env": "7.0.3", "del-cli": "6.0.0", "discord-api-types": "0.38.4", - "electron": "34.5.5", + "electron": "36.2.0", "electron-builder": "26.0.12", "electron-builder-squirrel-windows": "26.0.12", "electron-devtools-installer": "4.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 19716d41..9aa2d401 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,7 +32,7 @@ importers: version: 1.0.1(@types/node@22.13.5) '@electron/remote': specifier: 2.1.2 - version: 2.1.2(electron@34.5.5) + version: 2.1.2(electron@36.2.0) '@ffmpeg.wasm/core-mt': specifier: 0.12.0 version: 0.12.0 @@ -47,10 +47,10 @@ importers: version: 2.0.5 '@ghostery/adblocker-electron': specifier: 2.5.2 - version: 2.5.2(electron@34.5.5) + version: 2.5.2(electron@36.2.0) '@ghostery/adblocker-electron-preload': specifier: 2.5.2 - version: 2.5.2(electron@34.5.5) + version: 2.5.2(electron@36.2.0) '@hono/node-server': specifier: 1.14.1 version: 1.14.1(hono@4.7.9) @@ -101,7 +101,7 @@ importers: version: 13.1.0 custom-electron-prompt: specifier: 1.5.8 - version: 1.5.8(electron@34.5.5) + version: 1.5.8(electron@36.2.0) deepmerge-ts: specifier: 7.1.5 version: 7.1.5 @@ -278,8 +278,8 @@ importers: specifier: 0.38.4 version: 0.38.4 electron: - specifier: 34.5.5 - version: 34.5.5 + specifier: 36.2.0 + version: 36.2.0 electron-builder: specifier: 26.0.12 version: 26.0.12(electron-builder-squirrel-windows@26.0.12) @@ -1270,9 +1270,6 @@ packages: '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - '@types/node@20.17.31': - resolution: {integrity: sha512-quODOCNXQAbNf1Q7V+fI8WyErOCh0D5Yd31vHnKu4GkSztGQ7rlltAaqXhHhLl33tlVyUXs2386MkANSwgDn6A==} - '@types/node@22.13.5': resolution: {integrity: sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==} @@ -2229,8 +2226,8 @@ packages: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} - electron@34.5.5: - resolution: {integrity: sha512-GgXnW+/Gxsl/BOyvTJUm99j7eSDOgdWeugsKfb3MmblySa9EWWhyAUfU6qugspA9j3g/0secgypY4yp/whJv7A==} + electron@36.2.0: + resolution: {integrity: sha512-5yldoRjBKxPQfI0QMX+qq750o3Nl8N1SZnJqOPMq0gZ6rIJ+7y4ZLp808GrFwjfTm05TYgq3GSD8FGuKQZqwEw==} engines: {node: '>= 12.20.55'} hasBin: true @@ -4503,9 +4500,6 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} @@ -5081,9 +5075,9 @@ snapshots: - bluebird - supports-color - '@electron/remote@2.1.2(electron@34.5.5)': + '@electron/remote@2.1.2(electron@36.2.0)': dependencies: - electron: 34.5.5 + electron: 36.2.0 '@electron/universal@2.0.3': dependencies: @@ -5272,16 +5266,16 @@ snapshots: dependencies: '@ghostery/adblocker-extended-selectors': 2.5.2 - '@ghostery/adblocker-electron-preload@2.5.2(electron@34.5.5)': + '@ghostery/adblocker-electron-preload@2.5.2(electron@36.2.0)': dependencies: '@ghostery/adblocker-content': 2.5.2 - electron: 34.5.5 + electron: 36.2.0 - '@ghostery/adblocker-electron@2.5.2(electron@34.5.5)': + '@ghostery/adblocker-electron@2.5.2(electron@36.2.0)': dependencies: '@ghostery/adblocker': 2.5.2 - '@ghostery/adblocker-electron-preload': 2.5.2(electron@34.5.5) - electron: 34.5.5 + '@ghostery/adblocker-electron-preload': 2.5.2(electron@36.2.0) + electron: 36.2.0 tldts-experimental: 7.0.7 '@ghostery/adblocker-extended-selectors@2.5.2': {} @@ -5821,7 +5815,7 @@ snapshots: '@types/electron-localshortcut@3.1.3': dependencies: - electron: 34.5.5 + electron: 36.2.0 transitivePeerDependencies: - supports-color @@ -5855,10 +5849,6 @@ snapshots: '@types/node@16.9.1': {} - '@types/node@20.17.31': - dependencies: - undici-types: 6.19.8 - '@types/node@22.13.5': dependencies: undici-types: 6.20.0 @@ -6677,9 +6667,9 @@ snapshots: csstype@3.1.3: {} - custom-electron-prompt@1.5.8(electron@34.5.5): + custom-electron-prompt@1.5.8(electron@36.2.0): dependencies: - electron: 34.5.5 + electron: 36.2.0 data-uri-to-buffer@4.0.1: {} @@ -7017,10 +7007,10 @@ snapshots: transitivePeerDependencies: - supports-color - electron@34.5.5: + electron@36.2.0: dependencies: '@electron/get': 2.0.3 - '@types/node': 20.17.31 + '@types/node': 22.13.5 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -9554,8 +9544,6 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.19.8: {} - undici-types@6.20.0: {} undici@5.28.5: From 8f18fb80ea8f1a11a8d91ae453cdc1aacd70847c Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sun, 11 May 2025 22:56:08 +0900 Subject: [PATCH 30/46] fix(renderer): fix traffic light --- src/renderer.ts | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/renderer.ts b/src/renderer.ts index c584ae8e..a6d8a1a9 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -32,18 +32,6 @@ let firstDataLoaded = false; registerWindowDefaultTrustedTypePolicy(); -{ - let osType = 'Unknown'; - if (window.electronIs.osx()) { - osType = 'Macintosh'; - } else if (window.electronIs.windows()) { - osType = 'Windows'; - } else if (window.electronIs.linux()) { - osType = 'Linux'; - } - document.documentElement.setAttribute('data-os', osType); -} - async function listenForApiLoad() { if (!isApiLoaded) { api = document.querySelector('#movie_player'); @@ -56,6 +44,19 @@ async function listenForApiLoad() { } async function onApiLoaded() { + // Workaround for macOS traffic lights + { + let osType = 'Unknown'; + if (window.electronIs.osx()) { + osType = 'Macintosh'; + } else if (window.electronIs.windows()) { + osType = 'Windows'; + } else if (window.electronIs.linux()) { + osType = 'Linux'; + } + document.documentElement.setAttribute('data-os', osType); + } + // Workaround for #2459 document .querySelector('button.video-button.ytmusic-av-toggle') From efc803821090a04f4bf7b6eb1966bc12a7bb1fc8 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sun, 11 May 2025 22:59:53 +0900 Subject: [PATCH 31/46] fix(music-together): fix profile issue --- src/plugins/music-together/index.ts | 30 +++++++++++++++++------------ src/utils/wait-for-element.ts | 21 ++++++++++++++++++-- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/plugins/music-together/index.ts b/src/plugins/music-together/index.ts index 79c974fa..d208cec6 100644 --- a/src/plugins/music-together/index.ts +++ b/src/plugins/music-together/index.ts @@ -21,6 +21,8 @@ import { createSettingPopup } from './ui/setting'; import settingHTML from './templates/setting.html?raw'; import style from './style.css?inline'; +import { waitForElement } from '@/utils/wait-for-element'; + import type { YoutubePlayer } from '@/types/youtube-player'; import type { RendererContext } from '@/types/contexts'; import type { VideoDataChanged } from '@/types/video-data-changed'; @@ -595,19 +597,22 @@ export default createPlugin< this.elements.spinner.setAttribute('hidden', ''); }, - initMyProfile() { - const accountButton = document.querySelector< - HTMLElement & { - onButtonTap: () => void; - } - >('ytmusic-settings-button'); + async initMyProfile() { + const accountButton = await waitForElement( + '#right-content > ytmusic-settings-button *:where(tp-yt-paper-icon-button,yt-icon-button,.ytmusic-settings-button)', + { + maxRetry: 10000, + }, + ); - accountButton?.onButtonTap(); - setTimeout(() => { - accountButton?.onButtonTap(); - const renderer = document.querySelector< - HTMLElement & { data: unknown } - >('ytd-active-account-header-renderer'); + accountButton?.click(); + setTimeout(async () => { + const renderer = await waitForElement( + 'ytd-active-account-header-renderer', + { + maxRetry: 10000, + }, + ); if (!accountButton || !renderer) { console.warn('Music Together: Cannot find account'); this.me = getDefaultProfile(this.connection?.id ?? ''); @@ -628,6 +633,7 @@ export default createPlugin< this.popups.guest.setProfile(this.me.thumbnail); this.popups.setting.setProfile(this.me.thumbnail); } + accountButton?.click(); // close menu }, 0); }, /* hooks */ diff --git a/src/utils/wait-for-element.ts b/src/utils/wait-for-element.ts index f80955e9..3f84d4c7 100644 --- a/src/utils/wait-for-element.ts +++ b/src/utils/wait-for-element.ts @@ -1,13 +1,30 @@ export const waitForElement = ( selector: string, + options: { + maxRetry?: number; + retryInterval?: number; + } = { + maxRetry: -1, + retryInterval: 100, + }, ): Promise => { return new Promise((resolve) => { + let retryCount = 0; + const maxRetry = options.maxRetry ?? -1; + const retryInterval = options.retryInterval ?? 100; const interval = setInterval(() => { + if (maxRetry > 0 && retryCount >= maxRetry) { + clearInterval(interval); + return; + } const elem = document.querySelector(selector); - if (!elem) return; + if (!elem) { + retryCount++; + return; + } clearInterval(interval); resolve(elem); - }, 100 /* ms */); + }, retryInterval /* ms */); }); }; From 5158b9cd0420de8dc52f5cb20756c97936990573 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sun, 11 May 2025 23:19:16 +0900 Subject: [PATCH 32/46] fix(music-together): fix duplicate client issue --- src/plugins/music-together/connection.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/plugins/music-together/connection.ts b/src/plugins/music-together/connection.ts index d1246018..d634ab66 100644 --- a/src/plugins/music-together/connection.ts +++ b/src/plugins/music-together/connection.ts @@ -70,11 +70,12 @@ export class Connection { //ignored } } - this._mode = 'disconnected'; this.waitOpen.reject(err); this.connectionListeners.forEach((listener) => listener()); - console.error(err); + this.disconnect(); + + console.trace(err); }); } @@ -97,6 +98,8 @@ export class Connection { this._mode = 'disconnected'; this.connections = {}; + this.connectionListeners = []; + this.peer.disconnect(); this.peer.destroy(); } @@ -134,10 +137,10 @@ export class Connection { private async registerConnection(conn: DataConnection) { return new Promise((resolve, reject) => { this.peer.once('error', (err) => { - this._mode = 'disconnected'; - reject(err); this.connectionListeners.forEach((listener) => listener()); + + this.disconnect(); }); conn.on('open', () => { @@ -167,7 +170,15 @@ export class Connection { if (err) reject(err); delete this.connections[conn.connectionId]; + this.connectionListeners.forEach((listener) => listener(conn)); + this.connectionListeners = []; + + if (conn.open) { + conn.close({ + flush: true, + }); + } }; conn.on('error', onClose); conn.on('close', onClose); From d874fcd11756bbdf344ee406309bc48921011f72 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 00:16:53 +0900 Subject: [PATCH 33/46] fix(music-together): fix duplicate queue listener --- src/plugins/music-together/connection.ts | 22 ++++++- src/plugins/music-together/index.ts | 73 +++++++++++++---------- src/plugins/music-together/queue/queue.ts | 4 +- 3 files changed, 63 insertions(+), 36 deletions(-) diff --git a/src/plugins/music-together/connection.ts b/src/plugins/music-together/connection.ts index d634ab66..c06bcd8d 100644 --- a/src/plugins/music-together/connection.ts +++ b/src/plugins/music-together/connection.ts @@ -14,6 +14,7 @@ export type ConnectionEventMap = { | { progress?: number; state?: number; index?: number } | undefined; PERMISSION: Permission | undefined; + CONNECTION_CLOSED: null; }; export type ConnectionEventUnion = { [Event in keyof ConnectionEventMap]: { @@ -31,7 +32,7 @@ type PromiseUtil = { export type ConnectionListener = ( event: ConnectionEventUnion, - conn: DataConnection, + conn: DataConnection | null, ) => void; export type ConnectionMode = 'host' | 'guest' | 'disconnected'; export class Connection { @@ -59,6 +60,16 @@ export class Connection { this._mode = 'host'; await this.registerConnection(conn); }); + this.peer.on('close', () => { + for (const listener of this.listeners) { + listener({ type: 'CONNECTION_CLOSED', payload: null }, null); + } + this.listeners = []; + this.connectionListeners = []; + this.connections = {}; + this.peer.disconnect(); + this.peer.destroy(); + }); this.peer.on('error', async (err) => { if (err.type === PeerErrorType.Network) { // retrying after 10 seconds @@ -99,6 +110,10 @@ export class Connection { this._mode = 'disconnected'; this.connections = {}; this.connectionListeners = []; + for (const listener of this.listeners) { + listener({ type: 'CONNECTION_CLOSED', payload: null }, null); + } + this.listeners = []; this.peer.disconnect(); this.peer.destroy(); } @@ -126,7 +141,9 @@ export class Connection { } public on(listener: ConnectionListener) { - this.listeners.push(listener); + if (!this.listeners.includes(listener)) { + this.listeners.push(listener); + } } public onConnections(listener: (connections?: DataConnection) => void) { @@ -172,7 +189,6 @@ export class Connection { delete this.connections[conn.connectionId]; this.connectionListeners.forEach((listener) => listener(conn)); - this.connectionListeners = []; if (conn.open) { conn.close({ diff --git a/src/plugins/music-together/index.ts b/src/plugins/music-together/index.ts index d208cec6..2bd8cfb2 100644 --- a/src/plugins/music-together/index.ts +++ b/src/plugins/music-together/index.ts @@ -208,7 +208,7 @@ export default createPlugin< const listener = async ( event: ConnectionEventUnion, - conn?: DataConnection, + conn?: DataConnection | null, ) => { this.ignoreChange = true; @@ -311,6 +311,10 @@ export default createPlugin< break; } + case 'CONNECTION_CLOSED': { + this.queue?.off(listener); + break; + } default: { console.warn('Music Together [Host]: Unknown Event', event); break; @@ -359,6 +363,37 @@ export default createPlugin< }); let resolveIgnore: number | null = null; + const queueListener = async (event: ConnectionEventUnion) => { + this.ignoreChange = true; + switch (event.type) { + case 'ADD_SONGS': { + await this.connection?.broadcast('ADD_SONGS', event.payload); + await this.connection?.broadcast('SYNC_QUEUE', undefined); + break; + } + case 'REMOVE_SONG': { + await this.connection?.broadcast('REMOVE_SONG', event.payload); + break; + } + case 'MOVE_SONG': { + await this.connection?.broadcast('MOVE_SONG', event.payload); + await this.connection?.broadcast('SYNC_QUEUE', undefined); + break; + } + case 'SYNC_PROGRESS': { + if (this.permission === 'host-only') + await this.connection?.broadcast('SYNC_QUEUE', undefined); + else + await this.connection?.broadcast('SYNC_PROGRESS', event.payload); + break; + } + } + + if (typeof resolveIgnore === 'number') clearTimeout(resolveIgnore); + resolveIgnore = window.setTimeout(() => { + this.ignoreChange = false; + }, 16); // wait 1 frame + }; const listener = async (event: ConnectionEventUnion) => { this.ignoreChange = true; switch (event.type) { @@ -448,6 +483,10 @@ export default createPlugin< ); break; } + case 'CONNECTION_CLOSED': { + this.queue?.off(queueListener); + break; + } default: { console.warn('Music Together [Guest]: Unknown Event', event); break; @@ -461,37 +500,7 @@ export default createPlugin< }; this.connection.on(listener); - this.queue?.on(async (event: ConnectionEventUnion) => { - this.ignoreChange = true; - switch (event.type) { - case 'ADD_SONGS': { - await this.connection?.broadcast('ADD_SONGS', event.payload); - await this.connection?.broadcast('SYNC_QUEUE', undefined); - break; - } - case 'REMOVE_SONG': { - await this.connection?.broadcast('REMOVE_SONG', event.payload); - break; - } - case 'MOVE_SONG': { - await this.connection?.broadcast('MOVE_SONG', event.payload); - await this.connection?.broadcast('SYNC_QUEUE', undefined); - break; - } - case 'SYNC_PROGRESS': { - if (this.permission === 'host-only') - await this.connection?.broadcast('SYNC_QUEUE', undefined); - else - await this.connection?.broadcast('SYNC_PROGRESS', event.payload); - break; - } - } - - if (typeof resolveIgnore === 'number') clearTimeout(resolveIgnore); - resolveIgnore = window.setTimeout(() => { - this.ignoreChange = false; - }, 16); // wait 1 frame - }); + this.queue?.on(queueListener); if (!this.me) this.me = getDefaultProfile(this.connection.id); this.queue?.injection(); diff --git a/src/plugins/music-together/queue/queue.ts b/src/plugins/music-together/queue/queue.ts index ef91fe51..5bdf2ed2 100644 --- a/src/plugins/music-together/queue/queue.ts +++ b/src/plugins/music-together/queue/queue.ts @@ -252,7 +252,9 @@ export class Queue { } on(listener: QueueEventListener) { - this.listeners.push(listener); + if (!this.listeners.includes(listener)) { + this.listeners.push(listener); + } } off(listener: QueueEventListener) { From 6d3ac985b21d3d79c5084c1d9e02ce77e374e15f Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 00:46:55 +0900 Subject: [PATCH 34/46] fix(music-together): add TURN server limit: 50kbps --- src/plugins/music-together/connection.ts | 26 +++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/plugins/music-together/connection.ts b/src/plugins/music-together/connection.ts index c06bcd8d..cb9967f3 100644 --- a/src/plugins/music-together/connection.ts +++ b/src/plugins/music-together/connection.ts @@ -45,7 +45,31 @@ export class Connection { private connectionListeners: ((connection?: DataConnection) => void)[] = []; constructor() { - this.peer = new Peer({ debug: 0 }); + this.peer = new Peer({ + debug: 0, + config: { + iceServers: [ + { urls: 'stun:stun.l.google.com:19302' }, + { + urls: [ + 'turn:eu-0.turn.peerjs.com:3478', + 'turn:us-0.turn.peerjs.com:3478', + ], + username: 'peerjs', + credential: 'peerjsp', + }, + { + urls: 'stun:freestun.net:3478', + }, + { + urls: 'turn:freestun.net:3478', + username: 'free', + credential: 'free', + }, + ], + sdpSemantics: 'unified-plan', + }, + }); this.waitOpen.promise = new Promise((resolve, reject) => { this.waitOpen.resolve = resolve; From dfa427f2ed39473339ea093591cb3fceea5aa2ef Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 01:46:14 +0900 Subject: [PATCH 35/46] fix(music-together): Removing a connection on error --- src/plugins/music-together/connection.ts | 27 +++++++++++++++++------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/plugins/music-together/connection.ts b/src/plugins/music-together/connection.ts index cb9967f3..936b6f1e 100644 --- a/src/plugins/music-together/connection.ts +++ b/src/plugins/music-together/connection.ts @@ -1,4 +1,4 @@ -import { DataConnection, Peer, PeerErrorType } from 'peerjs'; +import { DataConnection, Peer, PeerError, PeerErrorType } from 'peerjs'; import delay from 'delay'; import type { Permission, Profile, VideoData } from './types'; @@ -89,8 +89,11 @@ export class Connection { listener({ type: 'CONNECTION_CLOSED', payload: null }, null); } this.listeners = []; + + this.connectionListeners.forEach((listener) => listener()); this.connectionListeners = []; this.connections = {}; + this.peer.disconnect(); this.peer.destroy(); }); @@ -207,18 +210,26 @@ export class Connection { }); }); - const onClose = (err?: Error) => { - if (err) reject(err); - - delete this.connections[conn.connectionId]; - - this.connectionListeners.forEach((listener) => listener(conn)); - + const onClose = ( + err?: PeerError< + | 'not-open-yet' + | 'message-too-big' + | 'negotiation-failed' + | 'connection-closed' + >, + ) => { if (conn.open) { conn.close({ flush: true, }); } + + delete this.connections[conn.connectionId]; + this.connectionListeners.forEach((listener) => listener(conn)); + + if (err) { + reject(err); + } }; conn.on('error', onClose); conn.on('close', onClose); From 91a2eb906385bc7100163a5508f7e02092f4d477 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 02:34:10 +0900 Subject: [PATCH 36/46] fix(music-together): fix unknown user --- src/plugins/music-together/index.ts | 53 +++++++++++++++-------- src/plugins/music-together/queue/queue.ts | 45 +++++++++++++------ 2 files changed, 68 insertions(+), 30 deletions(-) diff --git a/src/plugins/music-together/index.ts b/src/plugins/music-together/index.ts index 2bd8cfb2..1e50d21e 100644 --- a/src/plugins/music-together/index.ts +++ b/src/plugins/music-together/index.ts @@ -165,6 +165,17 @@ export default createPlugin< if (!wait) return false; if (!this.me) this.me = getDefaultProfile(this.connection.id); + + this.profiles = {}; + this.putProfile(this.connection.id, { + id: this.connection.id, + ...this.me, + }); + + this.queue?.setOwner({ + id: this.connection.id, + ...this.me, + }); const rawItems = this.queue?.flatItems?.map( (it) => @@ -173,16 +184,11 @@ export default createPlugin< ownerId: this.connection!.id, }) satisfies VideoData, ) ?? []; - this.queue?.setOwner({ - id: this.connection.id, - ...this.me, - }); this.queue?.setVideoList(rawItems, false); this.queue?.syncQueueOwner(); this.queue?.initQueue(); this.queue?.injection(); - this.profiles = {}; this.connection.onConnections((connection) => { if (!connection) { this.api?.toastService?.show( @@ -201,10 +207,6 @@ export default createPlugin< this.putProfile(connection.peer, undefined); } }); - this.putProfile(this.connection.id, { - id: this.connection.id, - ...this.me, - }); const listener = async ( event: ConnectionEventUnion, @@ -216,11 +218,18 @@ export default createPlugin< case 'ADD_SONGS': { if (conn && this.permission === 'host-only') return; - await this.queue?.addVideos( - event.payload.videoList, - event.payload.index, + const videoList: VideoData[] = event.payload.videoList.map( + (it) => ({ + ...it, + ownerId: it.ownerId ?? conn?.peer ?? this.connection!.id, + }), ); - await this.connection?.broadcast('ADD_SONGS', event.payload); + + await this.queue?.addVideos(videoList, event.payload.index); + await this.connection?.broadcast('ADD_SONGS', { + ...event.payload, + videoList, + }); break; } case 'REMOVE_SONG': { @@ -367,7 +376,13 @@ export default createPlugin< this.ignoreChange = true; switch (event.type) { case 'ADD_SONGS': { - await this.connection?.broadcast('ADD_SONGS', event.payload); + await this.connection?.broadcast('ADD_SONGS', { + ...event.payload, + videoList: event.payload.videoList.map((it) => ({ + ...it, + ownerId: it.ownerId ?? this.connection!.id, + })), + }); await this.connection?.broadcast('SYNC_QUEUE', undefined); break; } @@ -398,10 +413,14 @@ export default createPlugin< this.ignoreChange = true; switch (event.type) { case 'ADD_SONGS': { - await this.queue?.addVideos( - event.payload.videoList, - event.payload.index, + const videoList: VideoData[] = event.payload.videoList.map( + (it) => ({ + ...it, + ownerId: it.ownerId ?? this.connection!.id, + }), ); + + await this.queue?.addVideos(videoList, event.payload.index); break; } case 'REMOVE_SONG': { diff --git a/src/plugins/music-together/queue/queue.ts b/src/plugins/music-together/queue/queue.ts index 5bdf2ed2..b3b83162 100644 --- a/src/plugins/music-together/queue/queue.ts +++ b/src/plugins/music-together/queue/queue.ts @@ -177,7 +177,12 @@ export class Queue { if (!items) return false; this.internalDispatch = true; - this._videoList.push(...videos); + this._videoList.push( + ...videos.map((it) => ({ + ...it, + ownerId: it.ownerId ?? this.owner?.id, + })), + ); this.queue?.dispatch({ type: 'ADD_ITEMS', payload: { @@ -286,6 +291,7 @@ export class Queue { } if (!this.internalDispatch) { + console.log('Music Together: Queue event', event); if (event.type === 'CLEAR') { this.ignoreFlag = true; } @@ -307,6 +313,12 @@ export class Queue { const index = this._videoList.length + videoList.length - 1; if (videoList.length > 0) { + this._videoList.push( + ...videoList.map((it) => ({ + ...it, + ownerId: it.ownerId ?? this.owner?.id, + })), + ); this.broadcast({ // play type: 'ADD_SONGS', @@ -330,23 +342,30 @@ export class Queue { } ).items.length === 1 ) { + const videoList = mapQueueItem( + (it) => + ({ + videoId: it!.videoId, + ownerId: this.owner!.id, + }) satisfies VideoData, + ( + event.payload! as { + items: QueueItem[]; + } + ).items, + ); + this._videoList.push( + ...videoList.map((it) => ({ + ...it, + ownerId: it.ownerId ?? this.owner?.id, + })), + ); this.broadcast({ // add playlist type: 'ADD_SONGS', payload: { // index: (event.payload as any).index, - videoList: mapQueueItem( - (it) => - ({ - videoId: it!.videoId, - ownerId: this.owner!.id, - }) satisfies VideoData, - ( - event.payload! as { - items: QueueItem[]; - } - ).items, - ), + videoList, }, }); } From d10c6ec8fc88503f01193ea847aecc8561917f36 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 03:30:02 +0900 Subject: [PATCH 37/46] fix(music-together): fix queue index --- src/plugins/music-together/index.ts | 2 +- src/plugins/music-together/queue/queue.ts | 29 ++++++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/plugins/music-together/index.ts b/src/plugins/music-together/index.ts index 1e50d21e..d066e1de 100644 --- a/src/plugins/music-together/index.ts +++ b/src/plugins/music-together/index.ts @@ -668,7 +668,7 @@ export default createPlugin< start({ ipc }) { this.ipc = ipc; - this.showPrompt = async (title: string, label: string) => + this.showPrompt = (title: string, label: string) => ipc.invoke('music-together:prompt', title, label) as Promise; this.api = document.querySelector('ytmusic-app'); diff --git a/src/plugins/music-together/queue/queue.ts b/src/plugins/music-together/queue/queue.ts index b3b83162..72603d0e 100644 --- a/src/plugins/music-together/queue/queue.ts +++ b/src/plugins/music-together/queue/queue.ts @@ -177,12 +177,23 @@ export class Queue { if (!items) return false; this.internalDispatch = true; - this._videoList.push( + this._videoList = mapQueueItem( + (it) => + ({ + videoId: it!.videoId, + ownerId: this.owner!.id, + }) satisfies VideoData, + this.queue.queue.getItems(), + ); + this._videoList.splice( + index ?? this._videoList.length, + 0, ...videos.map((it) => ({ ...it, ownerId: it.ownerId ?? this.owner?.id, })), ); + this.queue?.dispatch({ type: 'ADD_ITEMS', payload: { @@ -291,7 +302,6 @@ export class Queue { } if (!this.internalDispatch) { - console.log('Music Together: Queue event', event); if (event.type === 'CLEAR') { this.ignoreFlag = true; } @@ -310,15 +320,15 @@ export class Queue { } ).items, ); - const index = this._videoList.length + videoList.length - 1; + const index = this._videoList.length; if (videoList.length > 0) { - this._videoList.push( + this._videoList = [ ...videoList.map((it) => ({ ...it, ownerId: it.ownerId ?? this.owner?.id, })), - ); + ]; this.broadcast({ // play type: 'ADD_SONGS', @@ -364,7 +374,14 @@ export class Queue { // add playlist type: 'ADD_SONGS', payload: { - // index: (event.payload as any).index, + index: + event.payload && Object.hasOwn(event.payload, 'index') + ? ( + event.payload as { + index: number; + } + ).index + : undefined, videoList, }, }); From edea7b59e107e50ba4f857bdd0510fe843bc8e05 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 06:19:36 +0900 Subject: [PATCH 38/46] fix(music-together): fix user profile in queue --- src/plugins/music-together/index.ts | 7 ++- src/plugins/music-together/queue/queue.ts | 62 ++++++++++++++++------- 2 files changed, 48 insertions(+), 21 deletions(-) diff --git a/src/plugins/music-together/index.ts b/src/plugins/music-together/index.ts index d066e1de..755440e7 100644 --- a/src/plugins/music-together/index.ts +++ b/src/plugins/music-together/index.ts @@ -125,10 +125,12 @@ export default createPlugin< if (this.connection?.mode === 'host') { const videoList: VideoData[] = this.queue?.flatItems.map( - (it) => + (it, index) => ({ videoId: it!.videoId, - ownerId: this.connection!.id, + ownerId: + this.queue?.videoList[index]?.ownerId ?? + this.connection!.id, }) satisfies VideoData, ) ?? []; @@ -212,6 +214,7 @@ export default createPlugin< event: ConnectionEventUnion, conn?: DataConnection | null, ) => { + console.log('event', event, this.queue?.videoList); this.ignoreChange = true; switch (event.type) { diff --git a/src/plugins/music-together/queue/queue.ts b/src/plugins/music-together/queue/queue.ts index 72603d0e..3f6f6d0a 100644 --- a/src/plugins/music-together/queue/queue.ts +++ b/src/plugins/music-together/queue/queue.ts @@ -3,8 +3,9 @@ import { mapQueueItem } from './utils'; import { t } from '@/i18n'; +import { getDefaultProfile, type Profile, type VideoData } from '../types'; + import type { ConnectionEventUnion } from '@/plugins/music-together/connection'; -import type { Profile, VideoData } from '../types'; import type { QueueItem } from '@/types/datahost-get-state'; import type { QueueElement, Store } from '@/types/queue'; @@ -177,37 +178,46 @@ export class Queue { if (!items) return false; this.internalDispatch = true; - this._videoList = mapQueueItem( + this._videoList = this._videoList.map( (it) => ({ - videoId: it!.videoId, - ownerId: this.owner!.id, + videoId: it.videoId, + ownerId: it.ownerId ?? this.owner!.id, }) satisfies VideoData, - this.queue.queue.getItems(), - ); - this._videoList.splice( - index ?? this._videoList.length, - 0, - ...videos.map((it) => ({ - ...it, - ownerId: it.ownerId ?? this.owner?.id, - })), ); + const state = this.queue.queue.store.store.getState(); + this.queue?.dispatch({ type: 'ADD_ITEMS', payload: { - nextQueueItemId: - this.queue.queue.store.store.getState().queue.nextQueueItemId, + nextQueueItemId: state.queue.nextQueueItemId, index: index ?? - this.queue.queue.store.store.getState().queue.items.length ?? + (state.queue.items.length ? state.queue.items.length - 1 : null) ?? 0, items, shuffleEnabled: false, shouldAssignIds: true, }, }); + + const insertedItem = this._videoList[index ?? this._videoList.length]; + if ( + !insertedItem || + (insertedItem.videoId !== videos[0].videoId && + insertedItem.ownerId !== videos[0].ownerId) + ) { + this._videoList.splice( + index ?? this._videoList.length, + 0, + ...videos.map((it) => ({ + ...it, + ownerId: it.ownerId ?? this.owner?.id, + })), + ); + } + this.internalDispatch = false; setTimeout(() => { this.initQueue(); @@ -364,7 +374,15 @@ export class Queue { } ).items, ); - this._videoList.push( + this._videoList.splice( + event.payload && Object.hasOwn(event.payload, 'index') + ? ( + event.payload as { + index: number; + } + ).index + : this._videoList.length, + 0, ...videoList.map((it) => ({ ...it, ownerId: it.ownerId ?? this.owner?.id, @@ -516,14 +534,16 @@ export class Queue { allQueue.forEach((queue) => { const list = Array.from( - queue?.querySelectorAll('ytmusic-player-queue-item') ?? [], + queue?.querySelectorAll( + '#contents > ytmusic-player-queue-item,#contents > ytmusic-playlist-panel-video-wrapper-renderer > #primary-renderer > ytmusic-player-queue-item', + ) ?? [], ); list.forEach((item, index: number | undefined) => { if (typeof index !== 'number') return; const id = this._videoList[index]?.ownerId; - const data = this.getProfile(id); + let data = this.getProfile(id); const profile = item.querySelector('.music-together-owner') ?? @@ -539,6 +559,10 @@ export class Queue { name.textContent = data?.name ?? t('plugins.music-together.internal.unknown-user'); + if (!data?.name && !data?.handleId) { + data = getDefaultProfile(data?.id ?? ''); + } + if (data) { profile.dataset.thumbnail = data.thumbnail ?? ''; profile.dataset.name = data.name ?? ''; From 3200d088cf8d7011f9a9088f83c0335104ea1b72 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 06:21:28 +0900 Subject: [PATCH 39/46] fix(music-together): remove debug log --- src/plugins/music-together/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/music-together/index.ts b/src/plugins/music-together/index.ts index 755440e7..38064f2b 100644 --- a/src/plugins/music-together/index.ts +++ b/src/plugins/music-together/index.ts @@ -214,7 +214,6 @@ export default createPlugin< event: ConnectionEventUnion, conn?: DataConnection | null, ) => { - console.log('event', event, this.queue?.videoList); this.ignoreChange = true; switch (event.type) { From 98be48bb1338034aadb93b1a311c4daeceec7465 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 06:31:37 +0900 Subject: [PATCH 40/46] fix(music-together): fix connection disconnect message --- src/plugins/music-together/connection.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/music-together/connection.ts b/src/plugins/music-together/connection.ts index 936b6f1e..f0a72420 100644 --- a/src/plugins/music-together/connection.ts +++ b/src/plugins/music-together/connection.ts @@ -135,6 +135,11 @@ export class Connection { if (this._mode === 'disconnected') throw new Error('Already disconnected'); this._mode = 'disconnected'; + this.getConnections().forEach((conn) => + conn.close({ + flush: true, + }), + ); this.connections = {}; this.connectionListeners = []; for (const listener of this.listeners) { @@ -228,6 +233,9 @@ export class Connection { this.connectionListeners.forEach((listener) => listener(conn)); if (err) { + if (err.type === 'connection-closed') { + this.connectionListeners.forEach((listener) => listener()); + } reject(err); } }; From 02bf057fbcaaba93a6fe85d9c90315b31c782faa Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 07:36:21 +0900 Subject: [PATCH 41/46] fix(music-together): fix infinite loop --- src/plugins/music-together/connection.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plugins/music-together/connection.ts b/src/plugins/music-together/connection.ts index f0a72420..4ce96a32 100644 --- a/src/plugins/music-together/connection.ts +++ b/src/plugins/music-together/connection.ts @@ -224,19 +224,18 @@ export class Connection { >, ) => { if (conn.open) { - conn.close({ - flush: true, - }); + conn.close(); } delete this.connections[conn.connectionId]; - this.connectionListeners.forEach((listener) => listener(conn)); if (err) { if (err.type === 'connection-closed') { this.connectionListeners.forEach((listener) => listener()); } reject(err); + } else { + this.connectionListeners.forEach((listener) => listener(conn)); } }; conn.on('error', onClose); From dedca8fdd19d36622ca7096739537b79ab5ee436 Mon Sep 17 00:00:00 2001 From: GiannosOB Date: Mon, 12 May 2025 00:11:13 +0200 Subject: [PATCH 42/46] chore(i18n): Translated using Weblate (Greek) Currently translated at 100.0% (423 of 423 strings) Translation: th-ch/youtube-music/i18n Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/ --- src/i18n/resources/el.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/i18n/resources/el.json b/src/i18n/resources/el.json index 79264ded..79e4f35d 100644 --- a/src/i18n/resources/el.json +++ b/src/i18n/resources/el.json @@ -333,6 +333,30 @@ "description": "Συμπίεση ήχου (μειώνει την ένταση των πιο δυνατών τμημάτων του κύματος και αυξάνει την ένταση των πιο μαλακών τμημάτων)", "name": "Συμπιεστής ήχου" }, + "auth-proxy-adapter": { + "description": "Υποστήριξη για τη χρήση υπηρεσιών μεσολάβησης αυθεντικοποίησης", + "menu": { + "disable": "Απενεργοποίηση προσαρμογέα μεσολάβησης", + "enable": "Ενεργοποίηση προσαρμογέα μεσολάβησης", + "hostname": { + "label": "Όνομα οικοδεσπότη" + }, + "port": { + "label": "Θύρα" + } + }, + "name": "Προσαρμογέας μεσολάβησης Auth", + "prompt": { + "hostname": { + "label": "Εισάγετε το όνομα κεντρικού υπολογιστή για τον τοπικό διακομιστή μεσολάβησης (απαιτείται επανεκκίνηση):", + "title": "Όνομα κεντρικού υπολογιστή μεσολάβησης" + }, + "port": { + "label": "Εισάγετε τη θύρα για τον τοπικό διακομιστή μεσολάβησης (απαιτεί επανεκκίνηση):", + "title": "Θύρα διακομιστή μεσολάβησης" + } + } + }, "blur-nav-bar": { "description": "θέτει τη γραμμή πλοήγησης διαφανή και θολή", "name": "Θόλωμα γραμμής πλοήγησης" From 8c1673c6a8983e2d94c509a768b27c62a282d5a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=A7=D0=B8=D1=87=D0=B2?= =?UTF-8?q?=D0=B0=D1=80=D0=BE=D0=B2?= Date: Sun, 11 May 2025 17:50:25 +0200 Subject: [PATCH 43/46] chore(i18n): Translated using Weblate (Russian) Currently translated at 100.0% (423 of 423 strings) Translation: th-ch/youtube-music/i18n Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/ --- src/i18n/resources/ru.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/i18n/resources/ru.json b/src/i18n/resources/ru.json index 7ed35969..7b752b35 100644 --- a/src/i18n/resources/ru.json +++ b/src/i18n/resources/ru.json @@ -333,6 +333,30 @@ "description": "Применяет компрессию к аудио (уменьшает громкость самых громких частей сигнала и повышает громкость самых тихих частей)", "name": "Нормализация аудио" }, + "auth-proxy-adapter": { + "description": "Поддержка использования сервисов аутентификационного прокси", + "menu": { + "disable": "Отключить адаптер прокси", + "enable": "Включить адаптер прокси", + "hostname": { + "label": "Имя хоста" + }, + "port": { + "label": "Порт" + } + }, + "name": "Адаптер аутентификационного прокси", + "prompt": { + "hostname": { + "label": "Введите имя хоста для локального прокси-сервера (требуется перезапуск):", + "title": "Имя хоста прокси" + }, + "port": { + "label": "Введите порт для локального прокси-сервера (требуется перезапуск):", + "title": "Порт прокси" + } + } + }, "blur-nav-bar": { "description": "Делает панель навигации прозрачной и размытой", "name": "Размытие панели навигации" From 329ea6498991b6053a4a48addca0cae652d3bfac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20R=C3=BCckert?= Date: Sun, 11 May 2025 23:29:26 +0200 Subject: [PATCH 44/46] chore(i18n): Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (423 of 423 strings) Translation: th-ch/youtube-music/i18n Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/ --- src/i18n/resources/pt-BR.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/i18n/resources/pt-BR.json b/src/i18n/resources/pt-BR.json index 8bd89c59..f617f699 100644 --- a/src/i18n/resources/pt-BR.json +++ b/src/i18n/resources/pt-BR.json @@ -333,6 +333,30 @@ "description": "Aplicar compressão ao áudio (reduz o volume das partes mais altas e aumenta o volume das partes mais baixas)", "name": "Compressor de áudio" }, + "auth-proxy-adapter": { + "description": "Suporte para o uso de serviços de proxy de autenticação", + "menu": { + "disable": "Desativar adaptador proxy", + "enable": "Ativar adaptador proxy", + "hostname": { + "label": "Nome do host" + }, + "port": { + "label": "Porta" + } + }, + "name": "Adaptador de proxy de autenticação", + "prompt": { + "hostname": { + "label": "Entre o nome do host do servidor proxy local (necessário reiniciar):", + "title": "Nome do host do proxy" + }, + "port": { + "label": "Entre a porta do servidor proxy local (necessário reiniciar):", + "title": "Porta do proxy" + } + } + }, "blur-nav-bar": { "description": "Torna a barra de navegação transparente e desfocada", "name": "Desfocar barra de navegação" From d9ead78083ad20c7939b7397e0b59d6a8a5c4c30 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 08:25:17 +0900 Subject: [PATCH 45/46] fix(music-together): fix data integrity --- src/plugins/music-together/index.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/plugins/music-together/index.ts b/src/plugins/music-together/index.ts index 38064f2b..6234318a 100644 --- a/src/plugins/music-together/index.ts +++ b/src/plugins/music-together/index.ts @@ -218,7 +218,12 @@ export default createPlugin< switch (event.type) { case 'ADD_SONGS': { - if (conn && this.permission === 'host-only') return; + if (conn && this.permission === 'host-only') { + await this.connection?.broadcast('SYNC_QUEUE', { + videoList: this.queue?.videoList ?? [], + }); + return; + } const videoList: VideoData[] = event.payload.videoList.map( (it) => ({ @@ -232,10 +237,18 @@ export default createPlugin< ...event.payload, videoList, }); + await this.connection?.broadcast('SYNC_QUEUE', { + videoList, + }); break; } case 'REMOVE_SONG': { - if (conn && this.permission === 'host-only') return; + if (conn && this.permission === 'host-only') { + await this.connection?.broadcast('SYNC_QUEUE', { + videoList: this.queue?.videoList ?? [], + }); + return; + } this.queue?.removeVideo(event.payload.index); await this.connection?.broadcast('REMOVE_SONG', event.payload); @@ -385,7 +398,6 @@ export default createPlugin< ownerId: it.ownerId ?? this.connection!.id, })), }); - await this.connection?.broadcast('SYNC_QUEUE', undefined); break; } case 'REMOVE_SONG': { @@ -394,7 +406,6 @@ export default createPlugin< } case 'MOVE_SONG': { await this.connection?.broadcast('MOVE_SONG', event.payload); - await this.connection?.broadcast('SYNC_QUEUE', undefined); break; } case 'SYNC_PROGRESS': { From afe5fed7608b49b527d18f69b0e1907f11d966f7 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Mon, 12 May 2025 20:39:23 +0900 Subject: [PATCH 46/46] fix(music-together): fix remove unused `SYNC_QUEUE` from host --- src/plugins/music-together/index.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/plugins/music-together/index.ts b/src/plugins/music-together/index.ts index 6234318a..36cc46ca 100644 --- a/src/plugins/music-together/index.ts +++ b/src/plugins/music-together/index.ts @@ -237,9 +237,6 @@ export default createPlugin< ...event.payload, videoList, }); - await this.connection?.broadcast('SYNC_QUEUE', { - videoList, - }); break; } case 'REMOVE_SONG': {