Compare commits

...

15 Commits

Author SHA1 Message Date
27f4c0393e Bump version to 3.6.2 2024-10-16 20:43:19 +09:00
9bc42f836f fix: trustedTypes issue
- Close #2339
2024-10-16 20:40:35 +09:00
11b11ed966 fix(deps): update dependency serve to v14.2.4 (#2515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-16 20:15:01 +09:00
5f79b7e788 chore(i18n): Translated using Weblate (Icelandic)
Currently translated at 94.7% (376 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/is/
2024-10-15 22:15:39 +02:00
7d1d806797 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2024-10-15 22:15:39 +02:00
836cedb0f3 chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2024-10-15 22:15:39 +02:00
70349e13cc chore(i18n): Translated using Weblate (Russian)
Currently translated at 99.7% (396 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-10-15 22:15:39 +02:00
6d16b74471 fix(deps): update dependency hono to v4.6.5 (#2509)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 22:33:46 +09:00
c211780c33 chore(deps): update dependency vite to v5.4.9 (#2500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 13:46:51 +09:00
2173ba0234 fix(api-server): properly implement next api call (#2505) 2024-10-15 13:34:19 +09:00
3a4cbc543b chore(deps): update dependency electron to v33 (#2507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 13:30:11 +09:00
2fef7f0246 chore(deps): update dependency typescript-eslint to v8.9.0 (#2503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 05:03:21 +09:00
12d693921e chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-10-14 19:24:56 +02:00
d1b4879f51 chore(deps): update dependency discord-api-types to v0.37.102 (#2501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 23:32:47 +09:00
f14939fcd2 Update changelog for v3.6.1 2024-10-14 13:42:17 +00:00
14 changed files with 461 additions and 183 deletions

View File

@ -2,8 +2,24 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [v3.6.1](https://github.com/th-ch/youtube-music/compare/v3.6.0...v3.6.1)
- fix(api-server): Various fixes and improvements [`#2496`](https://github.com/th-ch/youtube-music/pull/2496)
- fix(deps): update dependency electron-debug to v4.1.0 [`#2499`](https://github.com/th-ch/youtube-music/pull/2499)
- fix(renderer): fix force like buttons display logic [`#2493`](https://github.com/th-ch/youtube-music/pull/2493)
- fix(deps): update dependency i18next to v23.16.0 [`#2492`](https://github.com/th-ch/youtube-music/pull/2492)
- fix(downloader): fix #2371 [`#2371`](https://github.com/th-ch/youtube-music/issues/2371)
- fix(ytm-bugs): incorrect video ratio [`#2459`](https://github.com/th-ch/youtube-music/issues/2459)
- fix(api-server): fix init/authentication error [`#2497`](https://github.com/th-ch/youtube-music/issues/2497)
- fix: RSS feed CORS issue [`#1620`](https://github.com/th-ch/youtube-music/issues/1620)
- chore(flatpak-builder): Add more details when failing [`d3acb49`](https://github.com/th-ch/youtube-music/commit/d3acb4945a8dcde6598c53d8207bbf16eda8c739)
- chore(i18n): Translated using Weblate (Filipino) [`e428708`](https://github.com/th-ch/youtube-music/commit/e4287085a11f30d141148ab0432cc684819fd0d0)
- Bump version to 3.6.1 [`b668730`](https://github.com/th-ch/youtube-music/commit/b6687307dfe7ef765517019093c8db3c2ad14417)
#### [v3.6.0](https://github.com/th-ch/youtube-music/compare/v3.5.3...v3.6.0) #### [v3.6.0](https://github.com/th-ch/youtube-music/compare/v3.5.3...v3.6.0)
> 13 October 2024
- feat(api-server): remote control api [`#1909`](https://github.com/th-ch/youtube-music/pull/1909) - feat(api-server): remote control api [`#1909`](https://github.com/th-ch/youtube-music/pull/1909)
- chore(deps): update playwright monorepo to v1.48.0 [`#2489`](https://github.com/th-ch/youtube-music/pull/2489) - chore(deps): update playwright monorepo to v1.48.0 [`#2489`](https://github.com/th-ch/youtube-music/pull/2489)
- fix(`synced-lyrics`): Fix 2 issues [`#2441`](https://github.com/th-ch/youtube-music/pull/2441) - fix(`synced-lyrics`): Fix 2 issues [`#2441`](https://github.com/th-ch/youtube-music/pull/2441)

View File

@ -1,7 +1,7 @@
{ {
"name": "youtube-music", "name": "youtube-music",
"productName": "YouTube Music", "productName": "YouTube Music",
"version": "3.6.1", "version": "3.6.2",
"description": "YouTube Music Desktop App - including custom plugins", "description": "YouTube Music Desktop App - including custom plugins",
"main": "./dist/main/index.js", "main": "./dist/main/index.js",
"license": "MIT", "license": "MIT",
@ -248,7 +248,7 @@
"fast-average-color": "9.4.0", "fast-average-color": "9.4.0",
"fast-equals": "5.0.1", "fast-equals": "5.0.1",
"filenamify": "6.0.0", "filenamify": "6.0.0",
"hono": "4.6.4", "hono": "4.6.5",
"howler": "2.2.4", "howler": "2.2.4",
"html-to-text": "9.0.5", "html-to-text": "9.0.5",
"i18next": "23.16.0", "i18next": "23.16.0",
@ -259,7 +259,7 @@
"node-id3": "0.2.6", "node-id3": "0.2.6",
"peerjs": "1.5.4", "peerjs": "1.5.4",
"semver": "7.6.3", "semver": "7.6.3",
"serve": "14.2.3", "serve": "14.2.4",
"simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9", "simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9",
"solid-floating-ui": "0.3.1", "solid-floating-ui": "0.3.1",
"solid-js": "1.9.2", "solid-js": "1.9.2",
@ -287,8 +287,8 @@
"builtin-modules": "4.0.0", "builtin-modules": "4.0.0",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"del-cli": "6.0.0", "del-cli": "6.0.0",
"discord-api-types": "0.37.101", "discord-api-types": "0.37.102",
"electron": "32.2.0", "electron": "33.0.0",
"electron-builder": "24.13.3", "electron-builder": "24.13.3",
"electron-devtools-installer": "3.2.0", "electron-devtools-installer": "3.2.0",
"electron-vite": "2.3.0", "electron-vite": "2.3.0",
@ -304,9 +304,9 @@
"playwright": "1.48.0", "playwright": "1.48.0",
"rollup": "4.24.0", "rollup": "4.24.0",
"typescript": "5.6.3", "typescript": "5.6.3",
"typescript-eslint": "8.8.1", "typescript-eslint": "8.9.0",
"utf-8-validate": "6.0.4", "utf-8-validate": "6.0.4",
"vite": "5.4.8", "vite": "5.4.9",
"vite-plugin-inspect": "0.8.7", "vite-plugin-inspect": "0.8.7",
"vite-plugin-resolve": "2.5.2", "vite-plugin-resolve": "2.5.2",
"vite-plugin-solid": "2.10.2", "vite-plugin-solid": "2.10.2",

289
pnpm-lock.yaml generated
View File

@ -29,16 +29,16 @@ importers:
dependencies: dependencies:
'@cliqz/adblocker-electron': '@cliqz/adblocker-electron':
specifier: 1.27.1 specifier: 1.27.1
version: 1.27.1(electron@32.2.0) version: 1.27.1(electron@33.0.0)
'@cliqz/adblocker-electron-preload': '@cliqz/adblocker-electron-preload':
specifier: 1.27.1 specifier: 1.27.1
version: 1.27.1(electron@32.2.0) version: 1.27.1(electron@33.0.0)
'@electron-toolkit/tsconfig': '@electron-toolkit/tsconfig':
specifier: 1.0.1 specifier: 1.0.1
version: 1.0.1(@types/node@20.12.5) version: 1.0.1(@types/node@20.12.5)
'@electron/remote': '@electron/remote':
specifier: 2.1.2 specifier: 2.1.2
version: 2.1.2(electron@32.2.0) version: 2.1.2(electron@33.0.0)
'@ffmpeg.wasm/core-mt': '@ffmpeg.wasm/core-mt':
specifier: 0.12.0 specifier: 0.12.0
version: 0.12.0 version: 0.12.0
@ -53,16 +53,16 @@ importers:
version: 2.0.5 version: 2.0.5
'@hono/node-server': '@hono/node-server':
specifier: 1.13.2 specifier: 1.13.2
version: 1.13.2(hono@4.6.4) version: 1.13.2(hono@4.6.5)
'@hono/swagger-ui': '@hono/swagger-ui':
specifier: 0.4.1 specifier: 0.4.1
version: 0.4.1(hono@4.6.4) version: 0.4.1(hono@4.6.5)
'@hono/zod-openapi': '@hono/zod-openapi':
specifier: 0.16.4 specifier: 0.16.4
version: 0.16.4(hono@4.6.4)(zod@3.23.8) version: 0.16.4(hono@4.6.5)(zod@3.23.8)
'@hono/zod-validator': '@hono/zod-validator':
specifier: 0.4.1 specifier: 0.4.1
version: 0.4.1(hono@4.6.4)(zod@3.23.8) version: 0.4.1(hono@4.6.5)(zod@3.23.8)
'@jellybrick/electron-better-web-request': '@jellybrick/electron-better-web-request':
specifier: 1.0.4 specifier: 1.0.4
version: 1.0.4 version: 1.0.4
@ -95,7 +95,7 @@ importers:
version: 13.0.1 version: 13.0.1
custom-electron-prompt: custom-electron-prompt:
specifier: 1.5.8 specifier: 1.5.8
version: 1.5.8(electron@32.2.0) version: 1.5.8(electron@33.0.0)
dbus-next: dbus-next:
specifier: 0.10.2 specifier: 0.10.2
version: 0.10.2 version: 0.10.2
@ -130,8 +130,8 @@ importers:
specifier: 6.0.0 specifier: 6.0.0
version: 6.0.0 version: 6.0.0
hono: hono:
specifier: 4.6.4 specifier: 4.6.5
version: 4.6.4 version: 4.6.5
howler: howler:
specifier: 2.2.4 specifier: 2.2.4
version: 2.2.4 version: 2.2.4
@ -163,8 +163,8 @@ importers:
specifier: 7.6.3 specifier: 7.6.3
version: 7.6.3 version: 7.6.3
serve: serve:
specifier: 14.2.3 specifier: 14.2.4
version: 14.2.3 version: 14.2.4
simple-youtube-age-restriction-bypass: simple-youtube-age-restriction-bypass:
specifier: github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9 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 version: https://codeload.github.com/organization/Simple-YouTube-Age-Restriction-Bypass/tar.gz/4e2db89ccb2fb880c5110add9ff3f1dfb78d0ff6
@ -242,11 +242,11 @@ importers:
specifier: 6.0.0 specifier: 6.0.0
version: 6.0.0 version: 6.0.0
discord-api-types: discord-api-types:
specifier: 0.37.101 specifier: 0.37.102
version: 0.37.101 version: 0.37.102
electron: electron:
specifier: 32.2.0 specifier: 33.0.0
version: 32.2.0 version: 33.0.0
electron-builder: electron-builder:
specifier: 24.13.3 specifier: 24.13.3
version: 24.13.3(electron-builder-squirrel-windows@24.13.3) version: 24.13.3(electron-builder-squirrel-windows@24.13.3)
@ -255,7 +255,7 @@ importers:
version: 3.2.0 version: 3.2.0
electron-vite: electron-vite:
specifier: 2.3.0 specifier: 2.3.0
version: 2.3.0(vite@5.4.8(@types/node@20.12.5)) version: 2.3.0(vite@5.4.9(@types/node@20.12.5))
esbuild: esbuild:
specifier: 0.24.0 specifier: 0.24.0
version: 0.24.0 version: 0.24.0
@ -270,10 +270,10 @@ importers:
version: 1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.12.0) version: 1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.12.0)
eslint-import-resolver-typescript: eslint-import-resolver-typescript:
specifier: 3.6.3 specifier: 3.6.3
version: 3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0) version: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0)
eslint-plugin-import: eslint-plugin-import:
specifier: 2.31.0 specifier: 2.31.0
version: 2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0) version: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0)
eslint-plugin-prettier: eslint-plugin-prettier:
specifier: 5.2.1 specifier: 5.2.1
version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.12.0))(eslint@9.12.0)(prettier@3.3.3) version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.12.0))(eslint@9.12.0)(prettier@3.3.3)
@ -293,23 +293,23 @@ importers:
specifier: 5.6.3 specifier: 5.6.3
version: 5.6.3 version: 5.6.3
typescript-eslint: typescript-eslint:
specifier: 8.8.1 specifier: 8.9.0
version: 8.8.1(eslint@9.12.0)(typescript@5.6.3) version: 8.9.0(eslint@9.12.0)(typescript@5.6.3)
utf-8-validate: utf-8-validate:
specifier: 6.0.4 specifier: 6.0.4
version: 6.0.4 version: 6.0.4
vite: vite:
specifier: 5.4.8 specifier: 5.4.9
version: 5.4.8(@types/node@20.12.5) version: 5.4.9(@types/node@20.12.5)
vite-plugin-inspect: vite-plugin-inspect:
specifier: 0.8.7 specifier: 0.8.7
version: 0.8.7(rollup@4.24.0)(vite@5.4.8(@types/node@20.12.5)) version: 0.8.7(rollup@4.24.0)(vite@5.4.9(@types/node@20.12.5))
vite-plugin-resolve: vite-plugin-resolve:
specifier: 2.5.2 specifier: 2.5.2
version: 2.5.2 version: 2.5.2
vite-plugin-solid: vite-plugin-solid:
specifier: 2.10.2 specifier: 2.10.2
version: 2.10.2(solid-js@1.9.2)(vite@5.4.8(@types/node@20.12.5)) version: 2.10.2(solid-js@1.9.2)(vite@5.4.9(@types/node@20.12.5))
ws: ws:
specifier: 8.18.0 specifier: 8.18.0
version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
@ -1387,8 +1387,8 @@ packages:
'@types/yauzl@2.10.3': '@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
'@typescript-eslint/eslint-plugin@8.8.1': '@typescript-eslint/eslint-plugin@8.9.0':
resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==} resolution: {integrity: sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
@ -1398,8 +1398,8 @@ packages:
typescript: typescript:
optional: true optional: true
'@typescript-eslint/parser@8.8.1': '@typescript-eslint/parser@8.9.0':
resolution: {integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==} resolution: {integrity: sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
@ -1408,12 +1408,12 @@ packages:
typescript: typescript:
optional: true optional: true
'@typescript-eslint/scope-manager@8.8.1': '@typescript-eslint/scope-manager@8.9.0':
resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==} resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/type-utils@8.8.1': '@typescript-eslint/type-utils@8.9.0':
resolution: {integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==} resolution: {integrity: sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@ -1421,12 +1421,12 @@ packages:
typescript: typescript:
optional: true optional: true
'@typescript-eslint/types@8.8.1': '@typescript-eslint/types@8.9.0':
resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==} resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.8.1': '@typescript-eslint/typescript-estree@8.9.0':
resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==} resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@ -1434,14 +1434,14 @@ packages:
typescript: typescript:
optional: true optional: true
'@typescript-eslint/utils@8.8.1': '@typescript-eslint/utils@8.9.0':
resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==} resolution: {integrity: sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
'@typescript-eslint/visitor-keys@8.8.1': '@typescript-eslint/visitor-keys@8.9.0':
resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==} resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@vladfrangu/async_event_emitter@2.4.4': '@vladfrangu/async_event_emitter@2.4.4':
@ -2030,8 +2030,8 @@ packages:
dir-compare@4.2.0: dir-compare@4.2.0:
resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==}
discord-api-types@0.37.101: discord-api-types@0.37.102:
resolution: {integrity: sha512-2wizd94t7G3A8U5Phr3AiuL4gSvhqistDwWnlk1VLTit8BI1jWUncFqFQNdPbHqS3661+Nx/iEyIwtVjPuBP3w==} resolution: {integrity: sha512-5+m5twqG8n77rLhKuh2c/971UWszEL/c3KbdvVLUBTPXuS8PbYC/7W7NYhwP02qowjj6CHoKYZbD0ppOUCsT6g==}
discord-api-types@0.37.83: discord-api-types@0.37.83:
resolution: {integrity: sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==} resolution: {integrity: sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==}
@ -2151,8 +2151,8 @@ packages:
'@swc/core': '@swc/core':
optional: true optional: true
electron@32.2.0: electron@33.0.0:
resolution: {integrity: sha512-Xy82QBQrEiQysoxsv6lnhHAcWNNe6vV6QqH3OPFXhEj/T9oAsBHEhZuuYHINSSsUE7zRSj+J9sNwJYOjisT0Vw==} resolution: {integrity: sha512-OdLLR/zAVuNfKahSSYokZmSi7uK2wEYTbCoiIdqWLsOWmCqO9j0JC2XkYQmXQcAk2BJY0ri4lxwAfc5pzPDYsA==}
engines: {node: '>= 12.20.55'} engines: {node: '>= 12.20.55'}
hasBin: true hasBin: true
@ -2419,9 +2419,6 @@ packages:
fast-levenshtein@2.0.6: fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
fast-url-parser@1.1.3:
resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
fastq@1.16.0: fastq@1.16.0:
resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==}
@ -2672,8 +2669,8 @@ packages:
resolution: {integrity: sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A==} resolution: {integrity: sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A==}
hasBin: true hasBin: true
hono@4.6.4: hono@4.6.5:
resolution: {integrity: sha512-T5WqBkTOcIQblqBKB5mpzaH/A+dSpvVe938xZJCHOmOuYfF7DSwE/9/10+BMvwSPq9N/f6LiQ38HxrZSQOsXKw==} resolution: {integrity: sha512-qsmN3V5fgtwdKARGLgwwHvcdLKursMd+YOt69eGpl1dUCJb8mCd7hZfyZnBYjxCegBG7qkJRQRUy2oO25yHcyQ==}
engines: {node: '>=16.9.0'} engines: {node: '>=16.9.0'}
hosted-git-info@4.1.0: hosted-git-info@4.1.0:
@ -3456,8 +3453,8 @@ packages:
resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
engines: {node: 20 || >=22} engines: {node: 20 || >=22}
path-to-regexp@2.2.1: path-to-regexp@3.3.0:
resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==}
path-type@5.0.0: path-type@5.0.0:
resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
@ -3571,9 +3568,6 @@ packages:
pump@3.0.0: pump@3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
punycode@2.3.1: punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'} engines: {node: '>=6'}
@ -3749,11 +3743,11 @@ packages:
resolution: {integrity: sha512-74Wpe+hhPx4V8NFe00I2Fu9gTJopKoH5vE7nCqFzVgKOXV8AnN23T58K79QLYQotzGpH93UZ+UN2Y11j9huZJg==} resolution: {integrity: sha512-74Wpe+hhPx4V8NFe00I2Fu9gTJopKoH5vE7nCqFzVgKOXV8AnN23T58K79QLYQotzGpH93UZ+UN2Y11j9huZJg==}
engines: {node: '>=10'} engines: {node: '>=10'}
serve-handler@6.1.5: serve-handler@6.1.6:
resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==}
serve@14.2.3: serve@14.2.4:
resolution: {integrity: sha512-VqUFMC7K3LDGeGnJM9h56D3XGKb6KGgOw0cVNtA26yYXHCcpxf3xwCTUaQoWlVS7i8Jdh3GjQkOB23qsXyjoyQ==} resolution: {integrity: sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==}
engines: {node: '>= 14'} engines: {node: '>= 14'}
hasBin: true hasBin: true
@ -4074,8 +4068,8 @@ packages:
resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
typescript-eslint@8.8.1: typescript-eslint@8.9.0:
resolution: {integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==} resolution: {integrity: sha512-AuD/FXGYRQyqyOBCpNLldMlsCGvmDNxptQ3Dp58/NXeB+FqyvTfXmMyba3PYa0Vi9ybnj7G8S/yd/4Cw8y47eA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@ -4195,8 +4189,8 @@ packages:
'@testing-library/jest-dom': '@testing-library/jest-dom':
optional: true optional: true
vite@5.4.8: vite@5.4.9:
resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} resolution: {integrity: sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -4538,16 +4532,16 @@ snapshots:
dependencies: dependencies:
'@cliqz/adblocker-extended-selectors': 1.27.6 '@cliqz/adblocker-extended-selectors': 1.27.6
'@cliqz/adblocker-electron-preload@1.27.1(electron@32.2.0)': '@cliqz/adblocker-electron-preload@1.27.1(electron@33.0.0)':
dependencies: dependencies:
'@cliqz/adblocker-content': 1.27.6 '@cliqz/adblocker-content': 1.27.6
electron: 32.2.0 electron: 33.0.0
'@cliqz/adblocker-electron@1.27.1(electron@32.2.0)': '@cliqz/adblocker-electron@1.27.1(electron@33.0.0)':
dependencies: dependencies:
'@cliqz/adblocker': 1.27.6 '@cliqz/adblocker': 1.27.6
'@cliqz/adblocker-electron-preload': 1.27.1(electron@32.2.0) '@cliqz/adblocker-electron-preload': 1.27.1(electron@33.0.0)
electron: 32.2.0 electron: 33.0.0
tldts-experimental: 6.1.2 tldts-experimental: 6.1.2
'@cliqz/adblocker-extended-selectors@1.27.6': {} '@cliqz/adblocker-extended-selectors@1.27.6': {}
@ -4627,9 +4621,9 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@electron/remote@2.1.2(electron@32.2.0)': '@electron/remote@2.1.2(electron@33.0.0)':
dependencies: dependencies:
electron: 32.2.0 electron: 33.0.0
'@electron/universal@2.0.1': '@electron/universal@2.0.1':
dependencies: dependencies:
@ -4846,29 +4840,29 @@ snapshots:
'@foobar404/wave@2.0.5': {} '@foobar404/wave@2.0.5': {}
'@hono/node-server@1.13.2(hono@4.6.4)': '@hono/node-server@1.13.2(hono@4.6.5)':
dependencies: dependencies:
hono: 4.6.4 hono: 4.6.5
'@hono/swagger-ui@0.4.1(hono@4.6.4)': '@hono/swagger-ui@0.4.1(hono@4.6.5)':
dependencies: dependencies:
hono: 4.6.4 hono: 4.6.5
'@hono/zod-openapi@0.16.4(hono@4.6.4)(zod@3.23.8)': '@hono/zod-openapi@0.16.4(hono@4.6.5)(zod@3.23.8)':
dependencies: dependencies:
'@asteasolutions/zod-to-openapi': 7.2.0(zod@3.23.8) '@asteasolutions/zod-to-openapi': 7.2.0(zod@3.23.8)
'@hono/zod-validator': 0.3.0(hono@4.6.4)(zod@3.23.8) '@hono/zod-validator': 0.3.0(hono@4.6.5)(zod@3.23.8)
hono: 4.6.4 hono: 4.6.5
zod: 3.23.8 zod: 3.23.8
'@hono/zod-validator@0.3.0(hono@4.6.4)(zod@3.23.8)': '@hono/zod-validator@0.3.0(hono@4.6.5)(zod@3.23.8)':
dependencies: dependencies:
hono: 4.6.4 hono: 4.6.5
zod: 3.23.8 zod: 3.23.8
'@hono/zod-validator@0.4.1(hono@4.6.4)(zod@3.23.8)': '@hono/zod-validator@0.4.1(hono@4.6.5)(zod@3.23.8)':
dependencies: dependencies:
hono: 4.6.4 hono: 4.6.5
zod: 3.23.8 zod: 3.23.8
'@humanfs/core@0.19.0': {} '@humanfs/core@0.19.0': {}
@ -5364,7 +5358,7 @@ snapshots:
'@types/electron-localshortcut@3.1.3': '@types/electron-localshortcut@3.1.3':
dependencies: dependencies:
electron: 32.2.0 electron: 33.0.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -5437,14 +5431,14 @@ snapshots:
'@types/node': 20.12.5 '@types/node': 20.12.5
optional: true optional: true
'@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3)': '@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3)':
dependencies: dependencies:
'@eslint-community/regexpp': 4.11.1 '@eslint-community/regexpp': 4.11.1
'@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3)
'@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/scope-manager': 8.9.0
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/type-utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3)
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3)
'@typescript-eslint/visitor-keys': 8.8.1 '@typescript-eslint/visitor-keys': 8.9.0
eslint: 9.12.0 eslint: 9.12.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.3.2 ignore: 5.3.2
@ -5455,12 +5449,12 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3)': '@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3)':
dependencies: dependencies:
'@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/scope-manager': 8.9.0
'@typescript-eslint/types': 8.8.1 '@typescript-eslint/types': 8.9.0
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3)
'@typescript-eslint/visitor-keys': 8.8.1 '@typescript-eslint/visitor-keys': 8.9.0
debug: 4.3.7 debug: 4.3.7
eslint: 9.12.0 eslint: 9.12.0
optionalDependencies: optionalDependencies:
@ -5468,15 +5462,15 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/scope-manager@8.8.1': '@typescript-eslint/scope-manager@8.9.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.8.1 '@typescript-eslint/types': 8.9.0
'@typescript-eslint/visitor-keys': 8.8.1 '@typescript-eslint/visitor-keys': 8.9.0
'@typescript-eslint/type-utils@8.8.1(eslint@9.12.0)(typescript@5.6.3)': '@typescript-eslint/type-utils@8.9.0(eslint@9.12.0)(typescript@5.6.3)':
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3)
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3)
debug: 4.3.7 debug: 4.3.7
ts-api-utils: 1.3.0(typescript@5.6.3) ts-api-utils: 1.3.0(typescript@5.6.3)
optionalDependencies: optionalDependencies:
@ -5485,12 +5479,12 @@ snapshots:
- eslint - eslint
- supports-color - supports-color
'@typescript-eslint/types@8.8.1': {} '@typescript-eslint/types@8.9.0': {}
'@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.3)': '@typescript-eslint/typescript-estree@8.9.0(typescript@5.6.3)':
dependencies: dependencies:
'@typescript-eslint/types': 8.8.1 '@typescript-eslint/types': 8.9.0
'@typescript-eslint/visitor-keys': 8.8.1 '@typescript-eslint/visitor-keys': 8.9.0
debug: 4.3.7 debug: 4.3.7
fast-glob: 3.3.2 fast-glob: 3.3.2
is-glob: 4.0.3 is-glob: 4.0.3
@ -5502,20 +5496,20 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/utils@8.8.1(eslint@9.12.0)(typescript@5.6.3)': '@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.6.3)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0)
'@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/scope-manager': 8.9.0
'@typescript-eslint/types': 8.8.1 '@typescript-eslint/types': 8.9.0
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3)
eslint: 9.12.0 eslint: 9.12.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
- typescript - typescript
'@typescript-eslint/visitor-keys@8.8.1': '@typescript-eslint/visitor-keys@8.9.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.8.1 '@typescript-eslint/types': 8.9.0
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
'@vladfrangu/async_event_emitter@2.4.4': {} '@vladfrangu/async_event_emitter@2.4.4': {}
@ -5524,7 +5518,7 @@ snapshots:
dependencies: dependencies:
'@discordjs/rest': 2.3.0 '@discordjs/rest': 2.3.0
'@vladfrangu/async_event_emitter': 2.4.4 '@vladfrangu/async_event_emitter': 2.4.4
discord-api-types: 0.37.101 discord-api-types: 0.37.102
ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
@ -6121,9 +6115,9 @@ snapshots:
csstype@3.1.3: {} csstype@3.1.3: {}
custom-electron-prompt@1.5.8(electron@32.2.0): custom-electron-prompt@1.5.8(electron@33.0.0):
dependencies: dependencies:
electron: 32.2.0 electron: 33.0.0
data-uri-to-buffer@4.0.1: {} data-uri-to-buffer@4.0.1: {}
@ -6255,7 +6249,7 @@ snapshots:
minimatch: 3.1.2 minimatch: 3.1.2
p-limit: 3.1.0 p-limit: 3.1.0
discord-api-types@0.37.101: {} discord-api-types@0.37.102: {}
discord-api-types@0.37.83: {} discord-api-types@0.37.83: {}
@ -6430,7 +6424,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
electron-vite@2.3.0(vite@5.4.8(@types/node@20.12.5)): electron-vite@2.3.0(vite@5.4.9(@types/node@20.12.5)):
dependencies: dependencies:
'@babel/core': 7.24.7 '@babel/core': 7.24.7
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7) '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7)
@ -6438,11 +6432,11 @@ snapshots:
esbuild: 0.21.5 esbuild: 0.21.5
magic-string: 0.30.10 magic-string: 0.30.10
picocolors: 1.0.1 picocolors: 1.0.1
vite: 5.4.8(@types/node@20.12.5) vite: 5.4.9(@types/node@20.12.5)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
electron@32.2.0: electron@33.0.0:
dependencies: dependencies:
'@electron/get': 2.0.3 '@electron/get': 2.0.3
'@types/node': 20.12.5 '@types/node': 20.12.5
@ -6636,7 +6630,7 @@ snapshots:
eslint-import-resolver-exports@1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.12.0): eslint-import-resolver-exports@1.0.0-beta.5(eslint-plugin-import@2.31.0)(eslint@9.12.0):
dependencies: dependencies:
eslint: 9.12.0 eslint: 9.12.0
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0)
resolve.exports: 2.0.2 resolve.exports: 2.0.2
eslint-import-resolver-node@0.3.9: eslint-import-resolver-node@0.3.9:
@ -6647,37 +6641,37 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0): eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0):
dependencies: dependencies:
'@nolyfill/is-core-module': 1.0.39 '@nolyfill/is-core-module': 1.0.39
debug: 4.3.7 debug: 4.3.7
enhanced-resolve: 5.15.0 enhanced-resolve: 5.15.0
eslint: 9.12.0 eslint: 9.12.0
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0) eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0)
fast-glob: 3.3.2 fast-glob: 3.3.2
get-tsconfig: 4.8.0 get-tsconfig: 4.8.0
is-bun-module: 1.1.0 is-bun-module: 1.1.0
is-glob: 4.0.3 is-glob: 4.0.3
optionalDependencies: optionalDependencies:
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@typescript-eslint/parser' - '@typescript-eslint/parser'
- eslint-import-resolver-node - eslint-import-resolver-node
- eslint-import-resolver-webpack - eslint-import-resolver-webpack
- supports-color - supports-color
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0): eslint-module-utils@2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0):
dependencies: dependencies:
debug: 3.2.7 debug: 3.2.7
optionalDependencies: optionalDependencies:
'@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3)
eslint: 9.12.0 eslint: 9.12.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0) eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0): eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0):
dependencies: dependencies:
'@rtsao/scc': 1.1.0 '@rtsao/scc': 1.1.0
array-includes: 3.1.8 array-includes: 3.1.8
@ -6688,7 +6682,7 @@ snapshots:
doctrine: 2.1.0 doctrine: 2.1.0
eslint: 9.12.0 eslint: 9.12.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0) eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0)
hasown: 2.0.2 hasown: 2.0.2
is-core-module: 2.15.1 is-core-module: 2.15.1
is-glob: 4.0.3 is-glob: 4.0.3
@ -6700,7 +6694,7 @@ snapshots:
string.prototype.trimend: 1.0.8 string.prototype.trimend: 1.0.8
tsconfig-paths: 3.15.0 tsconfig-paths: 3.15.0
optionalDependencies: optionalDependencies:
'@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3)
transitivePeerDependencies: transitivePeerDependencies:
- eslint-import-resolver-typescript - eslint-import-resolver-typescript
- eslint-import-resolver-webpack - eslint-import-resolver-webpack
@ -6848,10 +6842,6 @@ snapshots:
fast-levenshtein@2.0.6: {} fast-levenshtein@2.0.6: {}
fast-url-parser@1.1.3:
dependencies:
punycode: 1.4.1
fastq@1.16.0: fastq@1.16.0:
dependencies: dependencies:
reusify: 1.0.4 reusify: 1.0.4
@ -7130,7 +7120,7 @@ snapshots:
hexy@0.2.11: {} hexy@0.2.11: {}
hono@4.6.4: {} hono@4.6.5: {}
hosted-git-info@4.1.0: hosted-git-info@4.1.0:
dependencies: dependencies:
@ -7890,7 +7880,7 @@ snapshots:
lru-cache: 11.0.0 lru-cache: 11.0.0
minipass: 7.1.2 minipass: 7.1.2
path-to-regexp@2.2.1: {} path-to-regexp@3.3.0: {}
path-type@5.0.0: {} path-type@5.0.0: {}
@ -7981,8 +7971,6 @@ snapshots:
end-of-stream: 1.4.4 end-of-stream: 1.4.4
once: 1.4.0 once: 1.4.0
punycode@1.4.1: {}
punycode@2.3.1: {} punycode@2.3.1: {}
queue-microtask@1.2.3: {} queue-microtask@1.2.3: {}
@ -8174,18 +8162,17 @@ snapshots:
seroval@1.1.0: {} seroval@1.1.0: {}
serve-handler@6.1.5: serve-handler@6.1.6:
dependencies: dependencies:
bytes: 3.0.0 bytes: 3.0.0
content-disposition: 0.5.2 content-disposition: 0.5.2
fast-url-parser: 1.1.3
mime-types: 2.1.18 mime-types: 2.1.18
minimatch: 3.1.2 minimatch: 3.1.2
path-is-inside: 1.0.2 path-is-inside: 1.0.2
path-to-regexp: 2.2.1 path-to-regexp: 3.3.0
range-parser: 1.2.0 range-parser: 1.2.0
serve@14.2.3: serve@14.2.4:
dependencies: dependencies:
'@zeit/schemas': 2.36.0 '@zeit/schemas': 2.36.0
ajv: 8.12.0 ajv: 8.12.0
@ -8196,7 +8183,7 @@ snapshots:
clipboardy: 3.0.0 clipboardy: 3.0.0
compression: 1.7.4 compression: 1.7.4
is-port-reachable: 4.0.0 is-port-reachable: 4.0.0
serve-handler: 6.1.5 serve-handler: 6.1.6
update-check: 1.5.4 update-check: 1.5.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -8551,11 +8538,11 @@ snapshots:
is-typed-array: 1.1.13 is-typed-array: 1.1.13
possible-typed-array-names: 1.0.0 possible-typed-array-names: 1.0.0
typescript-eslint@8.8.1(eslint@9.12.0)(typescript@5.6.3): typescript-eslint@8.9.0(eslint@9.12.0)(typescript@5.6.3):
dependencies: dependencies:
'@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3)
'@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3)
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.6.3) '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3)
optionalDependencies: optionalDependencies:
typescript: 5.6.3 typescript: 5.6.3
transitivePeerDependencies: transitivePeerDependencies:
@ -8651,7 +8638,7 @@ snapshots:
extsprintf: 1.4.1 extsprintf: 1.4.1
optional: true optional: true
vite-plugin-inspect@0.8.7(rollup@4.24.0)(vite@5.4.8(@types/node@20.12.5)): vite-plugin-inspect@0.8.7(rollup@4.24.0)(vite@5.4.9(@types/node@20.12.5)):
dependencies: dependencies:
'@antfu/utils': 0.7.10 '@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.0(rollup@4.24.0) '@rollup/pluginutils': 5.1.0(rollup@4.24.0)
@ -8662,7 +8649,7 @@ snapshots:
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
picocolors: 1.0.1 picocolors: 1.0.1
sirv: 2.0.4 sirv: 2.0.4
vite: 5.4.8(@types/node@20.12.5) vite: 5.4.9(@types/node@20.12.5)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- supports-color - supports-color
@ -8671,7 +8658,7 @@ snapshots:
dependencies: dependencies:
lib-esm: 0.4.2 lib-esm: 0.4.2
vite-plugin-solid@2.10.2(solid-js@1.9.2)(vite@5.4.8(@types/node@20.12.5)): vite-plugin-solid@2.10.2(solid-js@1.9.2)(vite@5.4.9(@types/node@20.12.5)):
dependencies: dependencies:
'@babel/core': 7.24.7 '@babel/core': 7.24.7
'@types/babel__core': 7.20.5 '@types/babel__core': 7.20.5
@ -8679,12 +8666,12 @@ snapshots:
merge-anything: 5.1.7 merge-anything: 5.1.7
solid-js: 1.9.2 solid-js: 1.9.2
solid-refresh: 0.6.3(solid-js@1.9.2) solid-refresh: 0.6.3(solid-js@1.9.2)
vite: 5.4.8(@types/node@20.12.5) vite: 5.4.9(@types/node@20.12.5)
vitefu: 0.2.5(vite@5.4.8(@types/node@20.12.5)) vitefu: 0.2.5(vite@5.4.9(@types/node@20.12.5))
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
vite@5.4.8(@types/node@20.12.5): vite@5.4.9(@types/node@20.12.5):
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.4.44 postcss: 8.4.44
@ -8693,9 +8680,9 @@ snapshots:
'@types/node': 20.12.5 '@types/node': 20.12.5
fsevents: 2.3.3 fsevents: 2.3.3
vitefu@0.2.5(vite@5.4.8(@types/node@20.12.5)): vitefu@0.2.5(vite@5.4.9(@types/node@20.12.5)):
optionalDependencies: optionalDependencies:
vite: 5.4.8(@types/node@20.12.5) vite: 5.4.9(@types/node@20.12.5)
vudio@2.1.1(patch_hash=7iux5msqpgl3octdmwy4uspwoe): {} vudio@2.1.1(patch_hash=7iux5msqpgl3octdmwy4uspwoe): {}

View File

@ -202,7 +202,7 @@
"show": "Tampilkan jendela", "show": "Tampilkan jendela",
"tooltip": { "tooltip": {
"default": "YouTube Musik", "default": "YouTube Musik",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "YouTube Musik: {{artist}} - {{title}}"
} }
} }
}, },
@ -279,6 +279,49 @@
}, },
"name": "Mode ambient" "name": "Mode ambient"
}, },
"api-server": {
"description": "Menambahkan server API untuk mengontrol pemutar",
"dialog": {
"request": {
"buttons": {
"allow": "Izinkan",
"deny": "Menolak"
},
"message": "Izinkan {{ID}} ({{origin}}) untuk mengakses API?",
"title": "Permintaan otorisasi API"
}
},
"menu": {
"auth-strategy": {
"label": "Strategi otorisasi",
"submenu": {
"auth-at-first": {
"label": "Otorisasi pada permintaan pertama"
},
"none": {
"label": "Tidak ada otorisasi"
}
}
},
"hostname": {
"label": "Nama host"
},
"port": {
"label": "Port"
}
},
"name": "API Server [Beta]",
"prompt": {
"hostname": {
"label": "Masukkan nama host (seperti 0.0.0.0) untuk server API:",
"title": "Nama host"
},
"port": {
"label": "Masukkan port untuk server API:",
"title": "Port"
}
}
},
"audio-compressor": { "audio-compressor": {
"description": "Menerapkan kompresi pada audio (mengurangi volume pada bagian paling keras dari sinyal dan meningkatkan volume pada bagian paling lembut)", "description": "Menerapkan kompresi pada audio (mengurangi volume pada bagian paling keras dari sinyal dan meningkatkan volume pada bagian paling lembut)",
"name": "Kompresi suara" "name": "Kompresi suara"

View File

@ -279,6 +279,49 @@
}, },
"name": "Umhverfishamur" "name": "Umhverfishamur"
}, },
"api-server": {
"description": "Bætir API netþjóni til að stjórna spilaranum",
"dialog": {
"request": {
"buttons": {
"allow": "Leyfa",
"deny": "Óleyfa"
},
"message": "Leyfa {{ID}} ({{origin}}) að aðganga API-ið?",
"title": "API heimildarbeiðni"
}
},
"menu": {
"auth-strategy": {
"label": "Heimildarstefna",
"submenu": {
"auth-at-first": {
"label": "Heimila á fyrst beiðni"
},
"none": {
"label": "Nei heimild"
}
}
},
"hostname": {
"label": "Hýsitölvunafn"
},
"port": {
"label": "Tengi"
}
},
"name": "API-Netþjónn [Beta]",
"prompt": {
"hostname": {
"label": "Sláðu inn hýsitölvunafnið (eins og 0.0.0.0) fyrir API-netþjónninn:",
"title": "Hýsitölvunafn"
},
"port": {
"label": "Sláðu inn tengið fyrir API-netþjónninn:",
"title": "Tengi"
}
}
},
"audio-compressor": { "audio-compressor": {
"description": "Notaðu þjöppun á hljóð (lækkar hljóðstyrk háværustu hluta merkis og hækkar hljóðstyrk í mýkstu hlutunum)", "description": "Notaðu þjöppun á hljóð (lækkar hljóðstyrk háværustu hluta merkis og hækkar hljóðstyrk í mýkstu hlutunum)",
"name": "Hljóðþjöppu" "name": "Hljóðþjöppu"
@ -670,7 +713,34 @@
}, },
"synced-lyrics": { "synced-lyrics": {
"description": "Veitir samstillta texta við lög, með því að nota veitur eins og LRClib.", "description": "Veitir samstillta texta við lög, með því að nota veitur eins og LRClib.",
"name": "Samstilltur texti" "errors": {
"not-found": "⚠️ - Enginn texti fannst við þetta lag."
},
"menu": {
"line-effect": {
"label": "Línuafleiðing",
"submenu": {
"focus": {
"label": "Brennidepill",
"tooltip": "Gerðu aðeins núverandi línu hvíta"
},
"offset": {
"label": "Fararbyrjun"
},
"scale": {
"label": "Skali",
"tooltip": "Skala núverandi línu"
}
}
},
"show-time-codes": {
"label": "Sýna tímikóðar"
}
},
"name": "Samstilltur texti",
"warnings": {
"instrumental": "⚠️ - Þetta er hljóðfærilegt lag"
}
}, },
"taskbar-mediacontrol": { "taskbar-mediacontrol": {
"description": "Stjórnaðu spilun frá Windows verkefnastikunni þinni", "description": "Stjórnaðu spilun frá Windows verkefnastikunni þinni",

View File

@ -279,6 +279,49 @@
}, },
"name": "Режим Ambient" "name": "Режим Ambient"
}, },
"api-server": {
"description": "Добавляет API сервер для контроля за плеером",
"dialog": {
"request": {
"buttons": {
"allow": "Разрешить",
"deny": "Отказать"
},
"message": "Разрешить {{ID}} ({{origin}}) доступ к API?",
"title": "Запрос на авторизацию в API"
}
},
"menu": {
"auth-strategy": {
"label": "Способ авторизации",
"submenu": {
"auth-at-first": {
"label": "Авторизация при первом запросе"
},
"none": {
"label": "Без авторизации"
}
}
},
"hostname": {
"label": "Имя хоста"
},
"port": {
"label": "Порт"
}
},
"name": "API Сервер [БЕТА]",
"prompt": {
"hostname": {
"label": "Введите имя хоста (на подобии 0.0.0.0) для API сервера:",
"title": "Имя хоста"
},
"port": {
"label": "Введите порт для API сервера:",
"title": "Порт"
}
}
},
"audio-compressor": { "audio-compressor": {
"description": "Применяет компрессию к аудио (уменьшает громкость самых громких частей сигнала и повышает громкость самых тихих частей)", "description": "Применяет компрессию к аудио (уменьшает громкость самых громких частей сигнала и повышает громкость самых тихих частей)",
"name": "Нормализация аудио" "name": "Нормализация аудио"
@ -414,6 +457,21 @@
"description": "Скачивать MP3 / исходное аудио напрямую из интерфейса", "description": "Скачивать MP3 / исходное аудио напрямую из интерфейса",
"menu": { "menu": {
"choose-download-folder": "Выберите папку для загрузок", "choose-download-folder": "Выберите папку для загрузок",
"download-finish-settings": {
"label": "Скачать по завершении",
"prompt": {
"last-percent": "После х процентов",
"last-seconds": "Осталось x сек",
"title": "Условия скачивания"
},
"submenu": {
"advanced": "Расширенные настройки",
"enabled": "Включено",
"mode": "Врмеменной режим",
"percent": "Проценты",
"seconds": "Секунды"
}
},
"download-playlist": "Скачать плейлист", "download-playlist": "Скачать плейлист",
"presets": "Пресеты", "presets": "Пресеты",
"skip-existing": "Пропускать уже существующие файлы" "skip-existing": "Пропускать уже существующие файлы"

View File

@ -207,6 +207,10 @@
} }
}, },
"plugins": { "plugins": {
"ad-speedup": {
"description": "При програванні реклами звук вимикається і встановлюється швидкість відтворення 16х",
"name": "Прискорення реклами"
},
"adblocker": { "adblocker": {
"description": "Блокувати всю рекламу та відстеження з коробки", "description": "Блокувати всю рекламу та відстеження з коробки",
"menu": { "menu": {
@ -275,6 +279,49 @@
}, },
"name": "Режим навколишнього середовища" "name": "Режим навколишнього середовища"
}, },
"api-server": {
"description": "Додає API сервер для контролю плеєра",
"dialog": {
"request": {
"buttons": {
"allow": "Дозволити",
"deny": "Відмінити"
},
"message": "Дозволити {{ID}} ({{origin}}) доступ до API?",
"title": "Запит авторизації до API"
}
},
"menu": {
"auth-strategy": {
"label": "Стратегія авторизації",
"submenu": {
"auth-at-first": {
"label": "Авторизувати при першому запиті"
},
"none": {
"label": "Немає авторизації"
}
}
},
"hostname": {
"label": "Назва серверу"
},
"port": {
"label": "Порт"
}
},
"name": "API сервер [Бета]",
"prompt": {
"hostname": {
"label": "Введіть ім'я хоста (наприклад 0.0.0.0) для API серверу:",
"title": "Ім'я хоста"
},
"port": {
"label": "Введіть порт API серверу:",
"title": "Порт"
}
}
},
"audio-compressor": { "audio-compressor": {
"description": "Застосувати стиснення аудіо (зменшити гучність найгучніших фрагментів сигналу та збільшити гучність тихих фрагментів)", "description": "Застосувати стиснення аудіо (зменшити гучність найгучніших фрагментів сигналу та збільшити гучність тихих фрагментів)",
"name": "Аудіокомпресор" "name": "Аудіокомпресор"
@ -411,13 +458,17 @@
"menu": { "menu": {
"choose-download-folder": "Оберіть папку для завантаження", "choose-download-folder": "Оберіть папку для завантаження",
"download-finish-settings": { "download-finish-settings": {
"label": "Скачати по завершенню",
"prompt": { "prompt": {
"last-percent": "Після Х відсотків", "last-percent": "Після Х відсотків",
"last-seconds": "Останні Х секунд" "last-seconds": "Останні Х секунд",
"title": "Налаштувати коли завантажувати"
}, },
"submenu": { "submenu": {
"advanced": "Розширені",
"enabled": "Увімкнено", "enabled": "Увімкнено",
"percent": "Відсотків", "mode": "Режим часу",
"percent": "Відсоток",
"seconds": "Секунди" "seconds": "Секунди"
} }
}, },
@ -661,6 +712,7 @@
"name": "SponsorBlock" "name": "SponsorBlock"
}, },
"synced-lyrics": { "synced-lyrics": {
"description": "Додає синхронізовані тексти до пісень використовуючи провайдери, такі як LRClib.",
"errors": { "errors": {
"fetch": "⚠️ - При завантаженні тексту сталась помилка. Спробуйте ще раз пізніше.", "fetch": "⚠️ - При завантаженні тексту сталась помилка. Спробуйте ще раз пізніше.",
"not-found": "⚠️ - До цієї пісні текст не знайдено." "not-found": "⚠️ - До цієї пісні текст не знайдено."
@ -677,6 +729,10 @@
"label": "Зосереджитись", "label": "Зосереджитись",
"tooltip": "Зробити білим лише поточний рядок" "tooltip": "Зробити білим лише поточний рядок"
}, },
"offset": {
"label": "Офсет",
"tooltip": "Офсет з права від нинішньої лінії"
},
"scale": { "scale": {
"label": "Масштабувати", "label": "Масштабувати",
"tooltip": "Масштабуваты поточну лінію" "tooltip": "Масштабуваты поточну лінію"
@ -685,7 +741,8 @@
"tooltip": "Виберіть ефект, який потрібно застосувати до поточної лінії" "tooltip": "Виберіть ефект, який потрібно застосувати до поточної лінії"
}, },
"precise-timing": { "precise-timing": {
"label": "Зробити текст пісні ідеально синхронізованим" "label": "Зробити текст пісні ідеально синхронізованим",
"tooltip": "Обчисли до мілісекунд відображення наступного рядка (може мати невеликий вплив на продуктивність)"
}, },
"show-lyrics-even-if-inexact": { "show-lyrics-even-if-inexact": {
"label": "Показувати текст пісні, навіть якщо він неточний", "label": "Показувати текст пісні, навіть якщо він неточний",
@ -698,7 +755,7 @@
}, },
"name": "Синхронізовані тексти", "name": "Синхронізовані тексти",
"refetch-btn": { "refetch-btn": {
"fetching": "Отримання...", "fetching": "Завантаження...",
"normal": "Перезавантажити текст" "normal": "Перезавантажити текст"
}, },
"warnings": { "warnings": {

View File

@ -279,6 +279,49 @@
}, },
"name": "微光效果" "name": "微光效果"
}, },
"api-server": {
"description": "新增伺服器以使用 API 控制播放器",
"dialog": {
"request": {
"buttons": {
"allow": "允許",
"deny": "拒絕"
},
"message": "允許 {{ID}} ({{origin}}) 訪問 API 嗎?",
"title": "API 驗證請求"
}
},
"menu": {
"auth-strategy": {
"label": "驗證策略",
"submenu": {
"auth-at-first": {
"label": "首次請求時驗證"
},
"none": {
"label": "不要驗證"
}
}
},
"hostname": {
"label": "主機名稱"
},
"port": {
"label": "接口"
}
},
"name": "API 伺服器 [Beta]",
"prompt": {
"hostname": {
"label": "輸入 API 伺服器的主機名稱 例 (0.0.0.0)",
"title": "主機名稱"
},
"port": {
"label": "輸入 API 伺服器接口:",
"title": "接口"
}
}
},
"audio-compressor": { "audio-compressor": {
"description": "使用音效壓縮 (大聲部份的音量降低, 柔和部份的音量提高)", "description": "使用音效壓縮 (大聲部份的音量降低, 柔和部份的音量提高)",
"name": "音效壓縮器" "name": "音效壓縮器"
@ -300,7 +343,7 @@
"name": "標題選擇器", "name": "標題選擇器",
"prompt": { "prompt": {
"selector": { "selector": {
"label": "目前標題語言: {{language}}", "label": "目前標題語言{{language}}",
"none": "無", "none": "無",
"title": "選擇標題語言" "title": "選擇標題語言"
} }
@ -363,7 +406,7 @@
"name": "Discord 狀態", "name": "Discord 狀態",
"prompt": { "prompt": {
"set-inactivity-timeout": { "set-inactivity-timeout": {
"label": "設定多少秒後清除狀態:", "label": "設定多少秒後清除狀態",
"title": "設定閒置狀態時長" "title": "設定閒置狀態時長"
} }
} }
@ -388,11 +431,11 @@
} }
}, },
"feedback": { "feedback": {
"conversion-progress": "轉檔進度: {{percent}}%", "conversion-progress": "轉檔進度{{percent}}%",
"converting": "轉檔中…", "converting": "轉檔中…",
"done": "完成下載: {{filePath}}", "done": "完成下載{{filePath}}",
"download-info": "正在下載 {{artist}} - {{title}} [{{videoId}}", "download-info": "正在下載 {{artist}} - {{title}} [{{videoId}}",
"download-progress": "下載進度: {{percent}}%", "download-progress": "下載進度{{percent}}%",
"downloading": "下載中…", "downloading": "下載中…",
"downloading-counter": "正在下載第 {{current}}/{{total}}…", "downloading-counter": "正在下載第 {{current}}/{{total}}…",
"downloading-playlist": "正在下載播放清單 \"{{playlistTitle}}\" - 共 {{playlistSize}} 首歌 ({{playlistId}})", "downloading-playlist": "正在下載播放清單 \"{{playlistTitle}}\" - 共 {{playlistSize}} 首歌 ({{playlistId}})",
@ -403,10 +446,10 @@
"playlist-has-only-one-song": "播放清單內只有一首歌曲, 將直接下載", "playlist-has-only-one-song": "播放清單內只有一首歌曲, 將直接下載",
"playlist-id-not-found": "沒有找到播放清單 ID", "playlist-id-not-found": "沒有找到播放清單 ID",
"playlist-is-empty": "播放清單是空的", "playlist-is-empty": "播放清單是空的",
"playlist-is-mix-or-private": "獲取播放清單資訊時發生錯誤: 請確認非私人播放清單或是\"為你推薦的合輯\"\n\n{{error}}", "playlist-is-mix-or-private": "獲取播放清單資訊時發生錯誤請確認非私人播放清單或是\"為你推薦的合輯\"\n\n{{error}}",
"preparing-file": "正在準備檔案…", "preparing-file": "正在準備檔案…",
"saving": "儲存中…", "saving": "儲存中…",
"trying-to-get-playlist-id": "正在嘗試獲取播放清單 ID: {{playlistId}}", "trying-to-get-playlist-id": "正在嘗試獲取播放清單 ID{{playlistId}}",
"video-id-not-found": "未能找到該影片", "video-id-not-found": "未能找到該影片",
"writing-id3": "正在寫入 ID3 標籤…" "writing-id3": "正在寫入 ID3 標籤…"
} }
@ -582,7 +625,7 @@
"decrease": "降低音量", "decrease": "降低音量",
"increase": "增加音量" "increase": "增加音量"
}, },
"label": "選擇全域音量控制快捷鍵:", "label": "選擇全域音量控制快捷鍵",
"title": "全域音量控制快捷鍵" "title": "全域音量控制快捷鍵"
}, },
"volume-steps": { "volume-steps": {
@ -595,8 +638,8 @@
"backend": { "backend": {
"dialog": { "dialog": {
"quality-changer": { "quality-changer": {
"detail": "目前畫質: {{quality}}", "detail": "目前畫質{{quality}}",
"message": "選擇影片畫質:", "message": "選擇影片畫質",
"title": "選擇影片畫質" "title": "選擇影片畫質"
} }
} }
@ -651,7 +694,7 @@
"play-pause": "播放/暫停", "play-pause": "播放/暫停",
"previous": "上一首" "previous": "上一首"
}, },
"label": "選擇全域音樂控制快捷鍵:", "label": "選擇全域音樂控制快捷鍵",
"title": "全域快捷鍵" "title": "全域快捷鍵"
} }
} }
@ -703,7 +746,7 @@
}, },
"show-lyrics-even-if-inexact": { "show-lyrics-even-if-inexact": {
"label": "即使不精確依然強制顯示歌詞", "label": "即使不精確依然強制顯示歌詞",
"tooltip": "當找不到符合該歌曲的歌詞時,該功能會嘗試不同的搜尋方式\n使用不同的搜尋方式會導致不精確的結果。" "tooltip": "當找不到符合該歌曲的歌詞時,該功能會嘗試不同的搜尋方式\n使用不同的搜尋方式會導致不精確的結果。"
}, },
"show-time-codes": { "show-time-codes": {
"label": "顯示時間線", "label": "顯示時間線",

View File

@ -309,8 +309,8 @@ export const register = (
ctx.status(204); ctx.status(204);
return ctx.body(null); return ctx.body(null);
}); });
app.openapi(routes.previous, (ctx) => { app.openapi(routes.next, (ctx) => {
controller.previous(); controller.next();
ctx.status(204); ctx.status(204);
return ctx.body(null); return ctx.body(null);

View File

@ -107,7 +107,8 @@ export const onRendererLoad = ({
ipc.on('downloader-feedback', (feedback: string) => { ipc.on('downloader-feedback', (feedback: string) => {
if (progress) { if (progress) {
progress.innerHTML = feedback || t('plugins.downloader.templates.button'); const targetHtml = feedback || t('plugins.downloader.templates.button');
progress.innerHTML = window.trustedTypes?.defaultPolicy ? window.trustedTypes.defaultPolicy.createHTML(targetHtml) : targetHtml;
} else { } else {
console.warn( console.warn(
LoggerPrefix, LoggerPrefix,

View File

@ -10,7 +10,7 @@ export const onRendererLoad = ({
ipc: { invoke, on }, ipc: { invoke, on },
}: RendererContext<LyricsGeniusPluginConfig>) => { }: RendererContext<LyricsGeniusPluginConfig>) => {
const setLyrics = (lyricsContainer: Element, lyrics: string | null) => { const setLyrics = (lyricsContainer: Element, lyrics: string | null) => {
lyricsContainer.innerHTML = ` const targetHtml = `
<div id="contents" class="style-scope ytmusic-section-list-renderer description ytmusic-description-shelf-renderer genius-lyrics"> <div id="contents" class="style-scope ytmusic-section-list-renderer description ytmusic-description-shelf-renderer genius-lyrics">
${ ${
lyrics?.replaceAll(/\r\n|\r|\n/g, '<br/>') ?? lyrics?.replaceAll(/\r\n|\r|\n/g, '<br/>') ??
@ -20,6 +20,7 @@ export const onRendererLoad = ({
<yt-formatted-string class="footer style-scope ytmusic-description-shelf-renderer" style="align-self: baseline"> <yt-formatted-string class="footer style-scope ytmusic-description-shelf-renderer" style="align-self: baseline">
</yt-formatted-string> </yt-formatted-string>
`; `;
lyricsContainer.innerHTML = window.trustedTypes?.defaultPolicy ? window.trustedTypes.defaultPolicy.createHTML(targetHtml) : targetHtml;
if (lyrics) { if (lyrics) {
const footer = lyricsContainer.querySelector('.footer'); const footer = lyricsContainer.querySelector('.footer');

View File

@ -22,7 +22,8 @@ const updatePlayBackSpeed = () => {
const playbackSpeedElement = document.querySelector('#playback-speed-value'); const playbackSpeedElement = document.querySelector('#playback-speed-value');
if (playbackSpeedElement) { if (playbackSpeedElement) {
playbackSpeedElement.innerHTML = String(playbackSpeed); const targetHtml = String(playbackSpeed);
playbackSpeedElement.innerHTML = window.trustedTypes?.defaultPolicy ? trustedTypes.defaultPolicy.createHTML(targetHtml) : targetHtml;
} }
}; };

View File

@ -6,7 +6,7 @@
export const ElementFromHtml = (html: string): HTMLElement => { export const ElementFromHtml = (html: string): HTMLElement => {
const template = document.createElement('template'); const template = document.createElement('template');
html = html.trim(); // Never return a text node of whitespace as the result html = html.trim(); // Never return a text node of whitespace as the result
template.innerHTML = html; template.innerHTML = window.trustedTypes?.defaultPolicy ? window.trustedTypes.defaultPolicy.createHTML(html) : html;
return template.content.firstElementChild as HTMLElement; return template.content.firstElementChild as HTMLElement;
}; };

View File

@ -269,7 +269,8 @@ const defineYTMDTransElements = () => {
const that = this as HTMLElement; const that = this as HTMLElement;
const key = that.getAttribute('key'); const key = that.getAttribute('key');
if (key) { if (key) {
that.innerHTML = i18t(key); const targetHtml = i18t(key);
that.innerHTML = window.trustedTypes?.defaultPolicy ? window.trustedTypes.defaultPolicy.createHTML(targetHtml) : targetHtml;
} }
}; };
customElements.define( customElements.define(