Compare commits

...

38 Commits

Author SHA1 Message Date
8e438e7fab fix(deps): update dependency solid-js to v1.9.10 2026-01-19 15:02:13 +00:00
b37db09e0c chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2026-01-19 13:01:57 +00:00
7a4def8acc Fix weblate link (#4204) 2026-01-16 17:24:34 +09:00
f4bbd53e1a chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2026-01-13 22:01:47 +00:00
272ee7bdb1 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 32.8% (152 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2026-01-12 19:01:50 +00:00
cece515696 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2026-01-12 19:01:48 +00:00
82b7b24ef7 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2026-01-06 00:01:50 +01:00
732bbc17f4 chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (462 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2026-01-06 00:01:48 +01:00
29da42d9ff chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (462 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2026-01-06 00:01:47 +01:00
269d0cd638 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2026-01-04 05:01:48 +00:00
69e15165e3 chore(i18n): Translated using Weblate (Georgian)
Currently translated at 32.3% (150 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2026-01-03 00:02:04 +01:00
Fin
7663a12ee4 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2026-01-03 00:02:03 +01:00
dcda0b3561 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2026-01-03 00:02:02 +01:00
5f82fd9e5a chore: Update README with Warp details 2026-01-02 14:59:50 +09:00
af11fa31d3 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 78.4% (363 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-01-01 12:02:01 +01:00
a049d618e5 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 98.7% (457 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2026-01-01 12:02:01 +01:00
41bc03a737 Revert "fix macos build (?)"
This reverts commit 2ab6eff761.
2025-12-30 22:23:14 +02:00
2ab6eff761 fix macos build (?) 2025-12-30 22:17:18 +02:00
6c881a265a fix tests 2025-12-30 22:02:23 +02:00
2b15f0a87c chore(i18n): Translated using Weblate (Persian)
Currently translated at 99.5% (461 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-12-30 10:00:31 +01:00
1d6ab2a82b update eslint config 2025-12-29 17:04:25 +02:00
24e82e69d1 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-12-28 21:00:38 +00:00
b079d411de feat: apply new icon (#4215) 2025-12-29 01:39:53 +09:00
e04c8eb99f chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-26 12:00:20 +00:00
3a6b793948 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-12-24 02:00:23 +01:00
f5361de78d chore(i18n): Translated using Weblate (Dutch)
Currently translated at 98.4% (456 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-12-24 02:00:21 +01:00
e0759afc70 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-12-24 02:00:20 +01:00
700e4ba38e chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-12-22 19:00:35 +00:00
cc82b232ce chore(i18n): Translated using Weblate (Hindi)
Currently translated at 85.0% (394 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-12-22 19:00:34 +00:00
c1f422e325 chore(i18n): Translated using Weblate (Persian)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-12-22 19:00:33 +00:00
ffaaba29d7 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-12-22 19:00:31 +00:00
9cad841efb chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 27.8% (129 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-12-22 19:00:30 +00:00
324ab09b5d chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-12-22 19:00:28 +00:00
0b5e9e923b chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-12-22 19:00:27 +00:00
f2308e567d chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-12-22 19:00:26 +00:00
1466c6451b chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-12-22 19:00:23 +00:00
598c708e92 chore(i18n): Translated using Weblate (German)
Currently translated at 99.7% (462 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-22 19:00:22 +00:00
1f903b4f75 chore(i18n): Translated using Weblate (Russian)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-12-22 19:00:20 +00:00
42 changed files with 989 additions and 309 deletions

View File

@ -1,3 +1,17 @@
<div align="center" markdown="1">
<sup>Special thanks to:</sup>
<br>
<br>
<a href="https://go.warp.dev/pear-desktop">
<img alt="Warp sponsorship" width="400" src="https://github.com/user-attachments/assets/8307ea56-e872-494a-8a9c-de0e296a06ed" />
</a>
### [Warp, built for coding with multiple AI agents](https://go.warp.dev/pear-desktop)
[Available for macOS, Linux, & Windows](https://go.warp.dev/pear-desktop)<br>
</div>
<hr>
<div align="center">
# :pear: Pear Desktop
@ -55,7 +69,7 @@
You can help with translation on [Hosted Weblate](https://bit.ly/48n5YF7).
<a href="https://bit.ly/48n5YF7/">
<a href="https://bit.ly/48n5YF7">
<img src="https://bit.ly/4q83L6S" alt="translation status" />
<img src="https://bit.ly/4h3zBxo" alt="translation status 2" />
</a>

View File

@ -0,0 +1,35 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_18_2)">
<circle cx="512" cy="512" r="410" fill="url(#paint0_linear_18_2)"/>
<circle cx="512" cy="512" r="402" stroke="url(#paint1_radial_18_2)" stroke-opacity="0.5" stroke-width="16"/>
</g>
<path d="M675 505.072C680.333 508.152 680.333 515.849 675 518.928L436.5 656.626C431.167 659.705 424.5 655.857 424.5 649.698V374.302C424.5 368.24 430.96 364.415 436.249 367.234L436.5 367.374L675 505.072Z" fill="url(#paint2_linear_18_2)" stroke="url(#paint3_linear_18_2)" stroke-width="8" stroke-linejoin="round"/>
<defs>
<filter id="filter0_d_18_2" x="78" y="90" width="868" height="868" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="12"/>
<feGaussianBlur stdDeviation="12"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.866667 0 0 0 0 0.141176 0 0 0 0 0.462745 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_18_2"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_18_2" result="shape"/>
</filter>
<linearGradient id="paint0_linear_18_2" x1="102" y1="102" x2="922" y2="922" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF632F"/>
<stop offset="1" stop-color="#DC148C"/>
</linearGradient>
<radialGradient id="paint1_radial_18_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(512 512) rotate(45) scale(579.828)">
<stop offset="0.68" stop-color="white" stop-opacity="0"/>
<stop offset="0.72" stop-color="white"/>
</radialGradient>
<linearGradient id="paint2_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0.4"/>
</linearGradient>
<linearGradient id="paint3_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0"/>
<stop offset="1" stop-color="white" stop-opacity="0.5"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,67 @@
{
"fill" : {
"linear-gradient" : [
"display-p3:1.00000,1.00000,1.00000,1.00000",
"srgb:0.84314,0.84314,0.84314,1.00000"
],
"orientation" : {
"start" : {
"x" : 0.5,
"y" : 0
},
"stop" : {
"x" : 0.5,
"y" : 0.7
}
}
},
"groups" : [
{
"blur-material" : null,
"hidden" : false,
"layers" : [
{
"blend-mode-specializations" : [
{
"appearance" : "dark",
"value" : "normal"
}
],
"image-name" : "SVG Image.svg",
"name" : "transparent-icon",
"opacity-specializations" : [
{
"value" : 1
},
{
"appearance" : "dark",
"value" : 1
}
]
}
],
"name" : "group",
"opacity-specializations" : [
{
"appearance" : "dark",
"value" : 0.8
}
],
"shadow" : {
"kind" : "layer-color",
"opacity" : 0.5
},
"specular" : true,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 790 KiB

View File

@ -1,10 +1,40 @@
<svg width="180" height="180" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg" id="icon-play">
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_18_2)">
<circle cx="512" cy="512" r="410" fill="url(#paint0_linear_18_2)" />
<circle cx="512" cy="512" r="402" stroke="url(#paint1_radial_18_2)" stroke-opacity="0.5" stroke-width="16" />
</g>
<path
d="M675 505.072C680.333 508.152 680.333 515.849 675 518.928L436.5 656.626C431.167 659.705 424.5 655.857 424.5 649.698V374.302C424.5 368.24 430.96 364.415 436.249 367.234L436.5 367.374L675 505.072Z"
fill="url(#paint2_linear_18_2)" stroke="url(#paint3_linear_18_2)" stroke-width="8" stroke-linejoin="round" />
<defs>
<linearGradient id="grad-play" x1="10%" y1="10%" x2="90%" y2="90%">
<stop offset="0%" style="stop-color:#FF512F; stop-opacity:1"/>
<stop offset="100%" style="stop-color:#DD2476; stop-opacity:1"/>
<filter id="filter0_d_18_2" x="78" y="90" width="868" height="868" filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha" />
<feOffset dy="12" />
<feGaussianBlur stdDeviation="12" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0.866667 0 0 0 0 0.141176 0 0 0 0 0.462745 0 0 0 0.4 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_18_2" />
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_18_2" result="shape" />
</filter>
<linearGradient id="paint0_linear_18_2" x1="102" y1="102" x2="922" y2="922" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF632F" />
<stop offset="1" stop-color="#DC148C" />
</linearGradient>
<radialGradient id="paint1_radial_18_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
gradientTransform="translate(512 512) rotate(45) scale(579.828)">
<stop offset="0.68" stop-color="white" stop-opacity="0" />
<stop offset="0.72" stop-color="white" />
</radialGradient>
<linearGradient id="paint2_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" />
<stop offset="1" stop-color="white" stop-opacity="0.4" />
</linearGradient>
<linearGradient id="paint3_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0" />
<stop offset="1" stop-color="white" stop-opacity="0.5" />
</linearGradient>
</defs>
<circle cx="100" cy="100" r="90" fill="url(#grad-play)"/>
<path d="M85 70 L130 100 L85 130 Z" fill="white" stroke="white" stroke-width="4" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 22 KiB

BIN
assets/tray-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -20,7 +20,7 @@ mac:
arch:
- x64
- arm64
icon: assets/generated/icons/mac/icon.icns
icon: assets/generated/icons/mac/icon.icon
compression: maximum
win:
icon: assets/generated/icons/win/icon.ico

View File

@ -18,51 +18,89 @@ export default tsEslint.config(
{
plugins: {
stylistic,
importPlugin
importPlugin,
},
languageOptions: {
parser: tsEslint.parser,
parserOptions: {
project: true,
project: ['tsconfig.json', 'tsconfig.test.json'],
sourceType: 'module',
ecmaVersion: 'latest'
}
ecmaVersion: 'latest',
},
},
rules: {
'stylistic/arrow-parens': ['error', 'always'],
'stylistic/object-curly-spacing': ['error', 'always'],
'stylistic/jsx-pascal-case': 'error',
'stylistic/jsx-curly-spacing': ['error', { when: 'never', children: true }],
'stylistic/jsx-curly-spacing': [
'error',
{ when: 'never', children: true },
],
'stylistic/jsx-sort-props': 'error',
'prettier/prettier': ['error', { singleQuote: true, semi: true, tabWidth: 2, trailingComma: 'all', quoteProps: 'preserve' }],
'prettier/prettier': [
'error',
{
singleQuote: true,
semi: true,
tabWidth: 2,
trailingComma: 'all',
quoteProps: 'preserve',
},
],
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': ['off', { checksVoidReturn: false }],
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
'@typescript-eslint/no-misused-promises': [
'off',
{ checksVoidReturn: false },
],
'@typescript-eslint/no-unused-vars': [
'warn',
{ argsIgnorePattern: '^_' },
],
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/consistent-type-imports': ['error', {
fixStyle: 'inline-type-imports',
prefer: 'type-imports',
disallowTypeAnnotations: false,
}],
'@typescript-eslint/consistent-type-imports': [
'error',
{
fixStyle: 'inline-type-imports',
prefer: 'type-imports',
disallowTypeAnnotations: false,
},
],
'importPlugin/first': 'error',
'importPlugin/newline-after-import': 'off',
'importPlugin/no-default-export': 'off',
'importPlugin/no-duplicates': 'error',
'importPlugin/no-unresolved': ['error', { ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack'] }],
'importPlugin/order': ['error', {
'groups': ['builtin', 'external', ['internal', 'index', 'sibling'], 'parent', 'type'],
'newlines-between': 'always-and-inside-groups',
'alphabetize': { order: 'ignore', caseInsensitive: false }
}],
'importPlugin/no-unresolved': [
'error',
{
ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack'],
},
],
'importPlugin/order': [
'error',
{
'groups': [
'builtin',
'external',
['internal', 'index', 'sibling'],
'parent',
'type',
],
'newlines-between': 'always-and-inside-groups',
'alphabetize': { order: 'ignore', caseInsensitive: false },
},
],
'importPlugin/prefer-default-export': 'off',
'camelcase': ['error', { properties: 'never' }],
'class-methods-use-this': 'off',
'stylistic/lines-around-comment': ['error', {
beforeBlockComment: false,
afterBlockComment: false,
beforeLineComment: false,
afterLineComment: false,
}],
'stylistic/lines-around-comment': [
'error',
{
beforeBlockComment: false,
afterBlockComment: false,
beforeLineComment: false,
afterLineComment: false,
},
],
'stylistic/max-len': 'off',
'stylistic/no-mixed-operators': 'warn', // prettier does not support no-mixed-operators
'stylistic/no-multi-spaces': ['error', { ignoreEOLComments: true }],
@ -70,16 +108,20 @@ export default tsEslint.config(
'no-void': 'error',
'no-empty': 'off',
'prefer-promise-reject-errors': 'off',
'stylistic/quotes': ['error', 'single', {
avoidEscape: true,
allowTemplateLiterals: false,
}],
'stylistic/quotes': [
'error',
'single',
{
avoidEscape: true,
allowTemplateLiterals: 'never',
},
],
'stylistic/quote-props': ['error', 'consistent'],
'stylistic/semi': ['error', 'always'],
},
settings: {
'import/parsers': {
'@typescript-eslint/parser': ['.ts']
'@typescript-eslint/parser': ['.ts'],
},
'import/resolver': {
typescript: {},

View File

@ -126,7 +126,7 @@
"socks": "2.8.7",
"solid-element": "1.9.1",
"solid-floating-ui": "0.3.1",
"solid-js": "1.9.9",
"solid-js": "1.9.10",
"solid-styled-components": "0.28.5",
"solid-transition-group": "0.3.0",
"tiny-pinyin": "1.3.2",
@ -155,7 +155,7 @@
"del-cli": "6.0.0",
"discord-api-types": "0.38.37",
"electron": "38.7.2",
"electron-builder": "26.0.12",
"electron-builder": "26.4.0",
"electron-builder-squirrel-windows": "26.0.12",
"electron-devtools-installer": "4.0.0",
"electron-vite": "4.0.1",
@ -168,7 +168,6 @@
"eslint-plugin-solid": "0.14.5",
"glob": "11.1.0",
"node-gyp": "11.4.2",
"playwright": "1.55.1",
"ts-morph": "27.0.2",
"typescript": "5.9.3",
"typescript-eslint": "8.43.0",

454
pnpm-lock.yaml generated
View File

@ -221,19 +221,19 @@ importers:
version: 2.8.7
solid-element:
specifier: 1.9.1
version: 1.9.1(solid-js@1.9.9)
version: 1.9.1(solid-js@1.9.10)
solid-floating-ui:
specifier: 0.3.1
version: 0.3.1(@floating-ui/dom@1.7.4)(solid-js@1.9.9)
version: 0.3.1(@floating-ui/dom@1.7.4)(solid-js@1.9.10)
solid-js:
specifier: 1.9.9
version: 1.9.9
specifier: 1.9.10
version: 1.9.10
solid-styled-components:
specifier: 0.28.5
version: 0.28.5(solid-js@1.9.9)
version: 0.28.5(solid-js@1.9.10)
solid-transition-group:
specifier: 0.3.0
version: 0.3.0(solid-js@1.9.9)
version: 0.3.0(solid-js@1.9.10)
tiny-pinyin:
specifier: 1.3.2
version: 1.3.2
@ -242,7 +242,7 @@ importers:
version: 1.3.4
virtua:
specifier: 0.48.2
version: 0.48.2(solid-js@1.9.9)
version: 0.48.2(solid-js@1.9.10)
vudio:
specifier: 2.1.1
version: 2.1.1(patch_hash=0e06c2ed11c02bdc490c209fa80070e98517c2735c641f5738b6e15d7dc1959d)
@ -267,7 +267,7 @@ importers:
version: 1.55.0
'@stylistic/eslint-plugin':
specifier: 5.3.1
version: 5.3.1(eslint@9.35.0)
version: 5.3.1(eslint@9.35.0(jiti@2.6.1))
'@total-typescript/ts-reset':
specifier: 0.6.1
version: 0.6.1
@ -305,47 +305,44 @@ importers:
specifier: 38.7.2
version: 38.7.2
electron-builder:
specifier: 26.0.12
version: 26.0.12(electron-builder-squirrel-windows@26.0.12)
specifier: 26.4.0
version: 26.4.0(electron-builder-squirrel-windows@26.0.12)
electron-builder-squirrel-windows:
specifier: 26.0.12
version: 26.0.12(dmg-builder@26.0.12)
version: 26.0.12(dmg-builder@26.4.0)
electron-devtools-installer:
specifier: 4.0.0
version: 4.0.0
electron-vite:
specifier: 4.0.1
version: 4.0.1(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1))
version: 4.0.1(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1))
eslint:
specifier: 9.35.0
version: 9.35.0
version: 9.35.0(jiti@2.6.1)
eslint-config-prettier:
specifier: 10.1.8
version: 10.1.8(eslint@9.35.0)
version: 10.1.8(eslint@9.35.0(jiti@2.6.1))
eslint-import-resolver-exports:
specifier: 1.0.0-beta.5
version: 1.0.0-beta.5(eslint-plugin-import@2.32.0)(eslint@9.35.0)
version: 1.0.0-beta.5(eslint-plugin-import@2.32.0)(eslint@9.35.0(jiti@2.6.1))
eslint-import-resolver-typescript:
specifier: 4.4.4
version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.35.0)
version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.35.0(jiti@2.6.1))
eslint-plugin-import:
specifier: 2.32.0
version: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0)
version: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0(jiti@2.6.1))
eslint-plugin-prettier:
specifier: 5.5.4
version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.35.0))(eslint@9.35.0)(prettier@3.6.2)
version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.35.0(jiti@2.6.1)))(eslint@9.35.0(jiti@2.6.1))(prettier@3.6.2)
eslint-plugin-solid:
specifier: 0.14.5
version: 0.14.5(eslint@9.35.0)(typescript@5.9.3)
version: 0.14.5(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
glob:
specifier: 11.1.0
version: 11.1.0
node-gyp:
specifier: 11.4.2
version: 11.4.2
playwright:
specifier: 1.55.1
version: 1.55.1
ts-morph:
specifier: 27.0.2
version: 27.0.2
@ -354,22 +351,22 @@ importers:
version: 5.9.3
typescript-eslint:
specifier: 8.43.0
version: 8.43.0(eslint@9.35.0)(typescript@5.9.3)
version: 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
utf-8-validate:
specifier: 6.0.6
version: 6.0.6
vite:
specifier: npm:rolldown-vite@7.3.0
version: rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)
version: rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)
vite-plugin-inspect:
specifier: 11.3.3
version: 11.3.3(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1))
version: 11.3.3(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1))
vite-plugin-resolve:
specifier: 2.5.2
version: 2.5.2
vite-plugin-solid:
specifier: 2.11.10
version: 2.11.10(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1))(solid-js@1.9.9)
version: 2.11.10(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1))(solid-js@1.9.10)
ws:
specifier: 8.18.3
version: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.6)
@ -547,11 +544,21 @@ packages:
engines: {node: '>=12.0.0'}
hasBin: true
'@electron/osx-sign@1.3.3':
resolution: {integrity: sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==}
engines: {node: '>=12.0.0'}
hasBin: true
'@electron/rebuild@3.7.0':
resolution: {integrity: sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw==}
engines: {node: '>=12.13.0'}
hasBin: true
'@electron/rebuild@4.0.1':
resolution: {integrity: sha512-iMGXb6Ib7H/Q3v+BKZJoETgF9g6KMNZVbsO4b7Dmpgb5qTFqyFTzqW9F3TOSHdybv2vKYKzSS9OiZL+dcJb+1Q==}
engines: {node: '>=22.12.0'}
hasBin: true
'@electron/remote@2.1.3':
resolution: {integrity: sha512-XlpxC8S4ttj/v2d+PKp9na/3Ev8bV7YWNL7Cw5b9MAWgTphEml7iYgbc7V0r9D6yDOfOkj06bchZgOZdlWJGNA==}
peerDependencies:
@ -1622,6 +1629,13 @@ packages:
dmg-builder: 26.0.12
electron-builder-squirrel-windows: 26.0.12
app-builder-lib@26.4.0:
resolution: {integrity: sha512-Uas6hNe99KzP3xPWxh5LGlH8kWIVjZixzmMJHNB9+6hPyDpjc7NQMkVgi16rQDdpCFy22ZU5sp8ow7tvjeMgYQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
dmg-builder: 26.4.0
electron-builder-squirrel-windows: 26.4.0
arch@2.2.0:
resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==}
@ -1779,9 +1793,16 @@ packages:
resolution: {integrity: sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ==}
engines: {node: '>=12.0.0'}
builder-util-runtime@9.5.1:
resolution: {integrity: sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==}
engines: {node: '>=12.0.0'}
builder-util@26.0.11:
resolution: {integrity: sha512-xNjXfsldUEe153h1DraD0XvDOpqGR0L5eKFkdReB7eFW5HqysDZFfly4rckda6y9dF39N3pkPlOblcfHKGw+uA==}
builder-util@26.3.4:
resolution: {integrity: sha512-aRn88mYMktHxzdqDMF6Ayj0rKoX+ZogJ75Ck7RrIqbY/ad0HBvnS2xA4uHfzrGr5D2aLL3vU6OBEH4p0KMV2XQ==}
builtin-modules@5.0.0:
resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==}
engines: {node: '>=18.20'}
@ -1874,6 +1895,10 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
ci-info@4.3.1:
resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==}
engines: {node: '>=8'}
classcat@5.0.5:
resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==}
@ -2151,8 +2176,8 @@ packages:
discord-api-types@0.38.37:
resolution: {integrity: sha512-Cv47jzY1jkGkh5sv0bfHYqGgKOWO1peOrGMkDFM4UmaGMOTgOW8QSexhvixa9sVOiz8MnVOBryWYyw/CEVhj7w==}
dmg-builder@26.0.12:
resolution: {integrity: sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==}
dmg-builder@26.4.0:
resolution: {integrity: sha512-ce4Ogns4VMeisIuCSK0C62umG0lFy012jd8LMZ6w/veHUeX4fqfDrGe+HTWALAEwK6JwKP+dhPvizhArSOsFbg==}
dmg-license@1.0.11:
resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==}
@ -2216,8 +2241,8 @@ packages:
electron-builder-squirrel-windows@26.0.12:
resolution: {integrity: sha512-kpwXM7c/ayRUbYVErQbsZ0nQZX4aLHQrPEG9C4h9vuJCXylwFH8a7Jgi2VpKIObzCXO7LKHiCw4KdioFLFOgqA==}
electron-builder@26.0.12:
resolution: {integrity: sha512-cD1kz5g2sgPTMFHjLxfMjUK5JABq3//J4jPswi93tOPFz6btzXYtK5NrDt717NRbukCUDOrrvmYVOWERlqoiXA==}
electron-builder@26.4.0:
resolution: {integrity: sha512-FCUqvdq2AULL+Db2SUGgjOYTbrgkPxZtCjqIZGnjH9p29pTWyesQqBIfvQBKa6ewqde87aWl49n/WyI/NyUBog==}
engines: {node: '>=14.0.0'}
hasBin: true
@ -2247,6 +2272,9 @@ packages:
electron-publish@26.0.11:
resolution: {integrity: sha512-a8QRH0rAPIWH9WyyS5LbNvW9Ark6qe63/LqDB7vu2JXYpi0Gma5Q60Dh4tmTqhOBQt0xsrzD8qE7C+D7j+B24A==}
electron-publish@26.3.4:
resolution: {integrity: sha512-5/ouDPb73SkKuay2EXisPG60LTFTMNHWo2WLrK5GDphnWK9UC+yzYrzVeydj078Yk4WUXi0+TaaZsNd6Zt5k/A==}
electron-store@10.1.0:
resolution: {integrity: sha512-oL8bRy7pVCLpwhmXy05Rh/L6O93+k9t6dqSw0+MckIc3OmCTZm6Mp04Q4f/J0rtu84Ky6ywkR8ivtGOmrq+16w==}
engines: {node: '>=20'}
@ -3171,6 +3199,10 @@ packages:
resolution: {integrity: sha512-YcwCHw1kiqEeI5xRpDlPPBGL2EOpBKLwO4yIBJcXWHPj5PnA5urGq0jbyhM5KoNpypQ6VboSoxc9D8HyfvngSg==}
engines: {node: '>=18'}
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
jpeg-js@0.4.4:
resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==}
@ -3609,6 +3641,10 @@ packages:
resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==}
engines: {node: '>=10'}
node-abi@4.24.0:
resolution: {integrity: sha512-u2EC1CeNe25uVtX3EZbdQ275c74zdZmmpzrHEQh2aIYqoVjlglfUpOX9YY85x1nlBydEKDVaSmMNhR7N82Qj8A==}
engines: {node: '>=22.12.0'}
node-addon-api@1.7.2:
resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==}
@ -3863,21 +3899,11 @@ packages:
engines: {node: '>=18'}
hasBin: true
playwright-core@1.55.1:
resolution: {integrity: sha512-Z6Mh9mkwX+zxSlHqdr5AOcJnfp+xUWLCt9uKV18fhzA8eyxUd8NUWzAjxUh55RZKSYwDGX0cfaySdhZJGMoJ+w==}
engines: {node: '>=18'}
hasBin: true
playwright@1.55.0:
resolution: {integrity: sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==}
engines: {node: '>=18'}
hasBin: true
playwright@1.55.1:
resolution: {integrity: sha512-cJW4Xd/G3v5ovXtJJ52MAOclqeac9S/aGGgRzLabuF8TnIb6xHvMzKIa6JmrRzUkeXJgfL1MhukP0NK6l39h3A==}
engines: {node: '>=18'}
hasBin: true
plist@3.1.0:
resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==}
engines: {node: '>=10.4.0'}
@ -4287,8 +4313,8 @@ packages:
'@floating-ui/dom': ^1.5
solid-js: ^1.8
solid-js@1.9.9:
resolution: {integrity: sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==}
solid-js@1.9.10:
resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==}
solid-refresh@0.6.3:
resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
@ -4428,10 +4454,12 @@ packages:
tar@6.2.1:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'}
deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me
tar@7.4.3:
resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==}
engines: {node: '>=18'}
deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me
temp-file@3.4.0:
resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==}
@ -5093,6 +5121,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@electron/osx-sign@1.3.3':
dependencies:
compare-version: 0.1.2
debug: 4.4.1
fs-extra: 10.1.0
isbinaryfile: 4.0.10
minimist: 1.2.8
plist: 3.1.0
transitivePeerDependencies:
- supports-color
'@electron/rebuild@3.7.0':
dependencies:
'@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2
@ -5113,6 +5152,25 @@ snapshots:
- bluebird
- supports-color
'@electron/rebuild@4.0.1':
dependencies:
'@malept/cross-spawn-promise': 2.0.0
chalk: 4.1.2
debug: 4.4.1
detect-libc: 2.0.4
got: 11.8.6
graceful-fs: 4.2.11
node-abi: 4.24.0
node-api-version: 0.2.1
node-gyp: 11.4.2
ora: 5.4.1
read-binary-file-arch: 1.0.6
semver: 7.7.3
tar: 6.2.1
yargs: 17.7.2
transitivePeerDependencies:
- supports-color
'@electron/remote@2.1.3(electron@38.7.2)':
dependencies:
electron: 38.7.2
@ -5235,9 +5293,9 @@ snapshots:
'@esbuild/win32-x64@0.25.9':
optional: true
'@eslint-community/eslint-utils@4.8.0(eslint@9.35.0)':
'@eslint-community/eslint-utils@4.8.0(eslint@9.35.0(jiti@2.6.1))':
dependencies:
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
@ -5809,24 +5867,24 @@ snapshots:
'@skyra/jaro-winkler@1.1.1': {}
'@solid-primitives/refs@1.1.2(solid-js@1.9.9)':
'@solid-primitives/refs@1.1.2(solid-js@1.9.10)':
dependencies:
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/utils': 6.3.2(solid-js@1.9.10)
solid-js: 1.9.10
'@solid-primitives/transition-group@1.1.2(solid-js@1.9.9)':
'@solid-primitives/transition-group@1.1.2(solid-js@1.9.10)':
dependencies:
solid-js: 1.9.9
solid-js: 1.9.10
'@solid-primitives/utils@6.3.2(solid-js@1.9.9)':
'@solid-primitives/utils@6.3.2(solid-js@1.9.10)':
dependencies:
solid-js: 1.9.9
solid-js: 1.9.10
'@stylistic/eslint-plugin@5.3.1(eslint@9.35.0)':
'@stylistic/eslint-plugin@5.3.1(eslint@9.35.0(jiti@2.6.1))':
dependencies:
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0)
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.6.1))
'@typescript-eslint/types': 8.43.0
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
eslint-visitor-keys: 4.2.1
espree: 10.4.0
estraverse: 5.3.0
@ -5951,15 +6009,15 @@ snapshots:
'@types/node': 24.3.0
optional: true
'@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3))(eslint@9.35.0)(typescript@5.9.3)':
'@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.43.0
'@typescript-eslint/type-utils': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
'@typescript-eslint/type-utils': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.43.0
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
graphemer: 1.4.0
ignore: 7.0.5
natural-compare: 1.4.0
@ -5968,14 +6026,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3)':
'@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.43.0
'@typescript-eslint/types': 8.43.0
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.43.0
debug: 4.4.1
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -5998,13 +6056,13 @@ snapshots:
dependencies:
typescript: 5.9.3
'@typescript-eslint/type-utils@8.43.0(eslint@9.35.0)(typescript@5.9.3)':
'@typescript-eslint/type-utils@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.43.0
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
debug: 4.4.1
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
@ -6028,13 +6086,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.43.0(eslint@9.35.0)(typescript@5.9.3)':
'@typescript-eslint/utils@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0)
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.6.1))
'@typescript-eslint/scope-manager': 8.43.0
'@typescript-eslint/types': 8.43.0
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.3)
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -6199,7 +6257,7 @@ snapshots:
app-builder-bin@5.0.0-alpha.12: {}
app-builder-lib@26.0.12(dmg-builder@26.0.12)(electron-builder-squirrel-windows@26.0.12):
app-builder-lib@26.0.12(dmg-builder@26.4.0)(electron-builder-squirrel-windows@26.0.12):
dependencies:
'@develar/schema-utils': 2.6.5
'@electron/asar': 3.2.18
@ -6216,11 +6274,11 @@ snapshots:
chromium-pickle-js: 0.2.0
config-file-ts: 0.2.8-rc1
debug: 4.4.1
dmg-builder: 26.0.12(electron-builder-squirrel-windows@26.0.12)
dmg-builder: 26.4.0(electron-builder-squirrel-windows@26.0.12)
dotenv: 16.6.1
dotenv-expand: 11.0.7
ejs: 3.1.10
electron-builder-squirrel-windows: 26.0.12(dmg-builder@26.0.12)
electron-builder-squirrel-windows: 26.0.12(dmg-builder@26.4.0)
electron-publish: 26.0.11
fs-extra: 10.1.0
hosted-git-info: 4.1.0
@ -6240,6 +6298,47 @@ snapshots:
- bluebird
- supports-color
app-builder-lib@26.4.0(dmg-builder@26.4.0)(electron-builder-squirrel-windows@26.0.12):
dependencies:
'@develar/schema-utils': 2.6.5
'@electron/asar': 3.4.1
'@electron/fuses': 1.8.0
'@electron/notarize': 2.5.0
'@electron/osx-sign': 1.3.3
'@electron/rebuild': 4.0.1
'@electron/universal': 3.0.2
'@malept/flatpak-bundler': 0.4.0(patch_hash=c787371eeb2af011ea934e8818a0dad6d7dcb2df31bbb1686babc7231af0183c)
'@types/fs-extra': 9.0.13
async-exit-hook: 2.0.1
builder-util: 26.3.4
builder-util-runtime: 9.5.1
chromium-pickle-js: 0.2.0
ci-info: 4.3.1
debug: 4.4.1
dmg-builder: 26.4.0(electron-builder-squirrel-windows@26.0.12)
dotenv: 16.6.1
dotenv-expand: 11.0.7
ejs: 3.1.10
electron-builder-squirrel-windows: 26.0.12(dmg-builder@26.4.0)
electron-publish: 26.3.4
fs-extra: 10.1.0
hosted-git-info: 4.1.0
isbinaryfile: 5.0.4
jiti: 2.6.1
js-yaml: 4.1.0
json5: 2.2.3
lazy-val: 1.0.5
minimatch: 10.1.1
plist: 3.1.0
resedit: 1.7.2
semver: 7.7.3
tar: 6.2.1
temp-file: 3.4.0
tiny-async-pool: 1.3.0
which: 5.0.0
transitivePeerDependencies:
- supports-color
arch@2.2.0: {}
arg@5.0.2: {}
@ -6341,12 +6440,12 @@ snapshots:
parse5: 7.3.0
validate-html-nesting: 1.2.3
babel-preset-solid@1.9.9(@babel/core@7.28.3)(solid-js@1.9.9):
babel-preset-solid@1.9.9(@babel/core@7.28.3)(solid-js@1.9.10):
dependencies:
'@babel/core': 7.28.3
babel-plugin-jsx-dom-expressions: 0.40.1(@babel/core@7.28.3)
optionalDependencies:
solid-js: 1.9.9
solid-js: 1.9.10
balanced-match@1.0.2: {}
@ -6429,6 +6528,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
builder-util-runtime@9.5.1:
dependencies:
debug: 4.4.1
sax: 1.4.1
transitivePeerDependencies:
- supports-color
builder-util@26.0.11:
dependencies:
7zip-bin: 5.2.0
@ -6451,6 +6557,27 @@ snapshots:
transitivePeerDependencies:
- supports-color
builder-util@26.3.4:
dependencies:
7zip-bin: 5.2.0
'@types/debug': 4.1.12
app-builder-bin: 5.0.0-alpha.12
builder-util-runtime: 9.5.1
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.1
fs-extra: 10.1.0
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
js-yaml: 4.1.0
sanitize-filename: 1.6.3
source-map-support: 0.5.21
stat-mode: 1.0.0
temp-file: 3.4.0
tiny-async-pool: 1.3.0
transitivePeerDependencies:
- supports-color
builtin-modules@5.0.0: {}
bundle-name@4.1.0:
@ -6565,6 +6692,8 @@ snapshots:
ci-info@3.9.0: {}
ci-info@4.3.1: {}
classcat@5.0.5: {}
clean-stack@2.2.0: {}
@ -6848,18 +6977,16 @@ snapshots:
discord-api-types@0.38.37: {}
dmg-builder@26.0.12(electron-builder-squirrel-windows@26.0.12):
dmg-builder@26.4.0(electron-builder-squirrel-windows@26.0.12):
dependencies:
app-builder-lib: 26.0.12(dmg-builder@26.0.12)(electron-builder-squirrel-windows@26.0.12)
builder-util: 26.0.11
builder-util-runtime: 9.3.1
app-builder-lib: 26.4.0(dmg-builder@26.4.0)(electron-builder-squirrel-windows@26.0.12)
builder-util: 26.3.4
fs-extra: 10.1.0
iconv-lite: 0.6.3
js-yaml: 4.1.0
optionalDependencies:
dmg-license: 1.0.11
transitivePeerDependencies:
- bluebird
- electron-builder-squirrel-windows
- supports-color
@ -6927,9 +7054,9 @@ snapshots:
dependencies:
jake: 10.9.4
electron-builder-squirrel-windows@26.0.12(dmg-builder@26.0.12):
electron-builder-squirrel-windows@26.0.12(dmg-builder@26.4.0):
dependencies:
app-builder-lib: 26.0.12(dmg-builder@26.0.12)(electron-builder-squirrel-windows@26.0.12)
app-builder-lib: 26.0.12(dmg-builder@26.4.0)(electron-builder-squirrel-windows@26.0.12)
builder-util: 26.0.11
electron-winstaller: 5.4.0
transitivePeerDependencies:
@ -6937,20 +7064,19 @@ snapshots:
- dmg-builder
- supports-color
electron-builder@26.0.12(electron-builder-squirrel-windows@26.0.12):
electron-builder@26.4.0(electron-builder-squirrel-windows@26.0.12):
dependencies:
app-builder-lib: 26.0.12(dmg-builder@26.0.12)(electron-builder-squirrel-windows@26.0.12)
builder-util: 26.0.11
builder-util-runtime: 9.3.1
app-builder-lib: 26.4.0(dmg-builder@26.4.0)(electron-builder-squirrel-windows@26.0.12)
builder-util: 26.3.4
builder-util-runtime: 9.5.1
chalk: 4.1.2
dmg-builder: 26.0.12(electron-builder-squirrel-windows@26.0.12)
ci-info: 4.3.1
dmg-builder: 26.4.0(electron-builder-squirrel-windows@26.0.12)
fs-extra: 10.1.0
is-ci: 3.0.1
lazy-val: 1.0.5
simple-update-notifier: 2.0.0
yargs: 17.7.2
transitivePeerDependencies:
- bluebird
- electron-builder-squirrel-windows
- supports-color
@ -6998,6 +7124,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
electron-publish@26.3.4:
dependencies:
'@types/fs-extra': 9.0.13
builder-util: 26.3.4
builder-util-runtime: 9.5.1
chalk: 4.1.2
form-data: 4.0.4
fs-extra: 10.1.0
lazy-val: 1.0.5
mime: 2.6.0
transitivePeerDependencies:
- supports-color
electron-store@10.1.0:
dependencies:
conf: 14.0.0
@ -7026,7 +7165,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
electron-vite@4.0.1(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)):
electron-vite@4.0.1(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)):
dependencies:
'@babel/core': 7.28.3
'@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.3)
@ -7034,7 +7173,7 @@ snapshots:
esbuild: 0.25.9
magic-string: 0.30.17
picocolors: 1.1.1
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@ -7219,9 +7358,9 @@ snapshots:
escape-string-regexp@5.0.0: {}
eslint-config-prettier@10.1.8(eslint@9.35.0):
eslint-config-prettier@10.1.8(eslint@9.35.0(jiti@2.6.1)):
dependencies:
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
eslint-import-context@0.1.9(unrs-resolver@1.11.1):
dependencies:
@ -7230,10 +7369,10 @@ snapshots:
optionalDependencies:
unrs-resolver: 1.11.1
eslint-import-resolver-exports@1.0.0-beta.5(eslint-plugin-import@2.32.0)(eslint@9.35.0):
eslint-import-resolver-exports@1.0.0-beta.5(eslint-plugin-import@2.32.0)(eslint@9.35.0(jiti@2.6.1)):
dependencies:
eslint: 9.35.0
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0)
eslint: 9.35.0(jiti@2.6.1)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0(jiti@2.6.1))
resolve.exports: 2.0.3
eslint-import-resolver-node@0.3.9:
@ -7244,10 +7383,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.35.0):
eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.35.0(jiti@2.6.1)):
dependencies:
debug: 4.4.1
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
eslint-import-context: 0.1.9(unrs-resolver@1.11.1)
get-tsconfig: 4.10.1
is-bun-module: 2.0.0
@ -7255,22 +7394,22 @@ snapshots:
tinyglobby: 0.2.15
unrs-resolver: 1.11.1
optionalDependencies:
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0(jiti@2.6.1))
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0):
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0(jiti@2.6.1)):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
eslint: 9.35.0
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.35.0(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.35.0)
eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.35.0(jiti@2.6.1))
transitivePeerDependencies:
- supports-color
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0):
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0(jiti@2.6.1)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@ -7279,9 +7418,9 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0)
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0(jiti@2.6.1))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@ -7293,25 +7432,25 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.35.0))(eslint@9.35.0)(prettier@3.6.2):
eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.35.0(jiti@2.6.1)))(eslint@9.35.0(jiti@2.6.1))(prettier@3.6.2):
dependencies:
eslint: 9.35.0
eslint: 9.35.0(jiti@2.6.1)
prettier: 3.6.2
prettier-linter-helpers: 1.0.0
synckit: 0.11.11
optionalDependencies:
eslint-config-prettier: 10.1.8(eslint@9.35.0)
eslint-config-prettier: 10.1.8(eslint@9.35.0(jiti@2.6.1))
eslint-plugin-solid@0.14.5(eslint@9.35.0)(typescript@5.9.3):
eslint-plugin-solid@0.14.5(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3):
dependencies:
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
eslint: 9.35.0
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.35.0(jiti@2.6.1)
estraverse: 5.3.0
is-html: 2.0.0
kebab-case: 1.0.2
@ -7330,9 +7469,9 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
eslint@9.35.0:
eslint@9.35.0(jiti@2.6.1):
dependencies:
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0)
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.21.0
'@eslint/config-helpers': 0.3.1
@ -7367,6 +7506,8 @@ snapshots:
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.4
optionalDependencies:
jiti: 2.6.1
transitivePeerDependencies:
- supports-color
@ -8115,6 +8256,8 @@ snapshots:
'@jimp/types': 1.6.0
'@jimp/utils': 1.6.0
jiti@2.6.1: {}
jpeg-js@0.4.4: {}
js-tokens@4.0.0: {}
@ -8517,6 +8660,10 @@ snapshots:
dependencies:
semver: 7.7.3
node-abi@4.24.0:
dependencies:
semver: 7.7.3
node-addon-api@1.7.2:
optional: true
@ -8775,20 +8922,12 @@ snapshots:
playwright-core@1.55.0: {}
playwright-core@1.55.1: {}
playwright@1.55.0:
dependencies:
playwright-core: 1.55.0
optionalDependencies:
fsevents: 2.3.2
playwright@1.55.1:
dependencies:
playwright-core: 1.55.1
optionalDependencies:
fsevents: 2.3.2
plist@3.1.0:
dependencies:
'@xmldom/xmldom': 0.8.11
@ -8975,7 +9114,7 @@ snapshots:
sprintf-js: 1.1.3
optional: true
rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1):
rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1):
dependencies:
'@oxc-project/runtime': 0.101.0
fdir: 6.5.0(picomatch@4.0.3)
@ -8987,6 +9126,7 @@ snapshots:
optionalDependencies:
'@types/node': 24.3.0
fsevents: 2.3.3
jiti: 2.6.1
yaml: 2.8.1
rolldown@1.0.0-beta.53:
@ -9207,42 +9347,42 @@ snapshots:
ip-address: 10.0.1
smart-buffer: 4.2.0
solid-element@1.9.1(solid-js@1.9.9):
solid-element@1.9.1(solid-js@1.9.10):
dependencies:
component-register: 0.8.7
solid-js: 1.9.9
solid-js: 1.9.10
solid-floating-ui@0.3.1(@floating-ui/dom@1.7.4)(solid-js@1.9.9):
solid-floating-ui@0.3.1(@floating-ui/dom@1.7.4)(solid-js@1.9.10):
dependencies:
'@floating-ui/dom': 1.7.4
solid-js: 1.9.9
solid-js: 1.9.10
solid-js@1.9.9:
solid-js@1.9.10:
dependencies:
csstype: 3.1.3
seroval: 1.3.2
seroval-plugins: 1.3.2(seroval@1.3.2)
solid-refresh@0.6.3(solid-js@1.9.9):
solid-refresh@0.6.3(solid-js@1.9.10):
dependencies:
'@babel/generator': 7.28.3
'@babel/helper-module-imports': 7.27.1
'@babel/types': 7.28.2
solid-js: 1.9.9
solid-js: 1.9.10
transitivePeerDependencies:
- supports-color
solid-styled-components@0.28.5(solid-js@1.9.9):
solid-styled-components@0.28.5(solid-js@1.9.10):
dependencies:
csstype: 3.1.3
goober: 2.1.16(csstype@3.1.3)
solid-js: 1.9.9
solid-js: 1.9.10
solid-transition-group@0.3.0(solid-js@1.9.9):
solid-transition-group@0.3.0(solid-js@1.9.10):
dependencies:
'@solid-primitives/refs': 1.1.2(solid-js@1.9.9)
'@solid-primitives/transition-group': 1.1.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/refs': 1.1.2(solid-js@1.9.10)
'@solid-primitives/transition-group': 1.1.2(solid-js@1.9.10)
solid-js: 1.9.10
source-map-js@1.2.1: {}
@ -9506,13 +9646,13 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
typescript-eslint@8.43.0(eslint@9.35.0)(typescript@5.9.3):
typescript-eslint@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3):
dependencies:
'@typescript-eslint/eslint-plugin': 8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.3))(eslint@9.35.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
'@typescript-eslint/eslint-plugin': 8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0)(typescript@5.9.3)
eslint: 9.35.0
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.35.0(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -9631,21 +9771,21 @@ snapshots:
extsprintf: 1.4.1
optional: true
virtua@0.48.2(solid-js@1.9.9):
virtua@0.48.2(solid-js@1.9.10):
optionalDependencies:
solid-js: 1.9.9
solid-js: 1.9.10
vite-dev-rpc@1.1.0(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)):
vite-dev-rpc@1.1.0(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)):
dependencies:
birpc: 2.5.0
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)
vite-hot-client: 2.1.0(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1))
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)
vite-hot-client: 2.1.0(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1))
vite-hot-client@2.1.0(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)):
vite-hot-client@2.1.0(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)):
dependencies:
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)
vite-plugin-inspect@11.3.3(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)):
vite-plugin-inspect@11.3.3(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)):
dependencies:
ansis: 4.1.0
debug: 4.4.1
@ -9655,8 +9795,8 @@ snapshots:
perfect-debounce: 2.0.0
sirv: 3.0.1
unplugin-utils: 0.3.0
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)
vite-dev-rpc: 1.1.0(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1))
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)
vite-dev-rpc: 1.1.0(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1))
transitivePeerDependencies:
- supports-color
@ -9664,22 +9804,22 @@ snapshots:
dependencies:
lib-esm: 0.4.2
vite-plugin-solid@2.11.10(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1))(solid-js@1.9.9):
vite-plugin-solid@2.11.10(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1))(solid-js@1.9.10):
dependencies:
'@babel/core': 7.28.3
'@types/babel__core': 7.20.5
babel-preset-solid: 1.9.9(@babel/core@7.28.3)(solid-js@1.9.9)
babel-preset-solid: 1.9.9(@babel/core@7.28.3)(solid-js@1.9.10)
merge-anything: 5.1.7
solid-js: 1.9.9
solid-refresh: 0.6.3(solid-js@1.9.9)
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)
vitefu: 1.1.1(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1))
solid-js: 1.9.10
solid-refresh: 0.6.3(solid-js@1.9.10)
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)
vitefu: 1.1.1(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1))
transitivePeerDependencies:
- supports-color
vitefu@1.1.1(rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)):
vitefu@1.1.1(rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)):
optionalDependencies:
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(yaml@2.8.1)
vite: rolldown-vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(yaml@2.8.1)
vudio@2.1.1(patch_hash=0e06c2ed11c02bdc490c209fa80070e98517c2735c641f5738b6e15d7dc1959d): {}

View File

@ -184,9 +184,31 @@
}
},
"plugins": {
"enabled": "Omogući",
"enabled": "Omogućeno",
"label": "Dodaci",
"new": "Novo"
},
"view": {
"label": "Pogled",
"submenu": {
"force-reload": "Silom Ponovo Učitaj",
"reload": "Ponovo Učitaj",
"reset-zoom": "Stvarna Veličina",
"toggle-fullscreen": "Uključi/Isključi Prikaz Cijelog Ekrana",
"zoom-in": "Uvećaj",
"zoom-out": "Umanji"
}
}
},
"tray": {
"next": "Slijedeće",
"play-pause": "Plej/Pauza",
"previous": "Prethodno",
"quit": "Izlaz",
"restart": "Ponovo Pokreni Aplikaciju",
"show": "Pokaži prozor",
"tooltip": {
"default": "{{applicationName}}"
}
}
},
@ -197,6 +219,53 @@
"label": "Kvalitet"
}
}
},
"discord": {
"menu": {
"set-status-display-type": {
"submenu": {
"application": "Slušate {{applicationName}}",
"artist": "Slušate {muzičar}",
"title": "Slušate {naziv pesme}"
}
}
},
"name": "Diskord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Unesi ograničenje neaktivnosti u sekundama:",
"title": "Postavi ograničenje neaktivnosti"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Ufff! Izvinite, preuzimanje nije uspelo…",
"title": "Greška u preuzimanju!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{Playlist Size}} pjesme)",
"message": "Preuzimanje Plejliste {{playlist Title}}",
"title": "Preuzimanje počelo"
}
},
"feedback": {
"conversion-progress": "Pretvaranje: {{percent}}%",
"converting": "Pretvaranje…",
"done": "Gotovo: {{file Path}}",
"download-info": "Preuzimanje {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Preuzimanje: {{percent}}%",
"downloading": "Preuzimanje…"
}
}
}
}
}

View File

@ -321,6 +321,22 @@
"hostname": {
"label": "Nom del host"
},
"https": {
"label": "HTTPS i Certificats",
"submenu": {
"cert": {
"dialogTitle": "Seleccionar arxiu de certificat HTTPS",
"label": "Arxiu de certificat (.crt/.pem)"
},
"enable-https": {
"label": "Activa HTTPS"
},
"key": {
"dialogTitle": "Selecciona arxiu de clau HTTPS privada",
"label": "Arxiu de clau privada (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -462,8 +478,8 @@
"set-status-display-type": {
"label": "Text d'estat",
"submenu": {
"artist": "Escoltant {artist}",
"application": "Escoltant {{applicationName}}",
"artist": "Escoltant {artist}",
"title": "Escoltant {song title}"
}
}

View File

@ -288,7 +288,7 @@
"name": "Ambiente-Modus"
},
"amuse": {
"description": "Fügt Unterstützung für das Amuse \"Spielt gerade\"-Widget von 6K Labs hinzu",
"description": "Fügt {{applicationName}} Unterstützung für das Amuse \"Spielt gerade\"-Widget von 6K Labs hinzu",
"name": "Amuse",
"response": {
"query": "Amuse API-Server läuft. /query für Liedinformationen."
@ -478,8 +478,8 @@
"set-status-display-type": {
"label": "Status Text",
"submenu": {
"artist": "Hört {artist} zu",
"application": "Hört {{applicationName}}",
"artist": "Hört {artist} zu",
"title": "Du hörst {song title}"
}
}
@ -883,12 +883,12 @@
},
"name": "Synchronisierte Texte",
"refetch-btn": {
"fetching": "Hole Songtext...",
"normal": "Songtext neu holen"
"fetching": "Laden...",
"normal": "Songtext neu laden"
},
"warnings": {
"duration-mismatch": "⚠️ - Es kann sein, dass die Synchronization nicht stimmt, da die Songdauer nicht übereinstimmt.",
"inexact": "⚠️ - Der Songtext stimmt möglicherweise nicht überein",
"inexact": "⚠️ - Es ist möglich, dass der Songtext für diesen Song nicht übereinstimmt.",
"instrumental": "⚠️ - Das ist ein instrumentales Lied"
}
},

View File

@ -321,6 +321,22 @@
"hostname": {
"label": "Nombre del host"
},
"https": {
"label": "HTTPS & Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecciona el archivo de certificado HTTPS",
"label": "Archivo de certificado (.crt/.pem)"
},
"enable-https": {
"label": "Habilitar HTTPS"
},
"key": {
"dialogTitle": "Selecciona el archivo de clave privada HTTPS",
"label": "Archivo de clave privada (.key/.pem)"
}
}
},
"port": {
"label": "Puerto"
}
@ -462,8 +478,8 @@
"set-status-display-type": {
"label": "Texto de estado",
"submenu": {
"artist": "Escuchando a {artist}",
"application": "Escuchando {{applicationName}}",
"artist": "Escuchando a {artist}",
"title": "Escuchando {song title}"
}
}

View File

@ -128,7 +128,7 @@
},
"label": "Keel",
"submenu": {
"to-help-translate": "Soovid aidata tõlkimisel? Klõpsi siin"
"to-help-translate": "Soovid aidata tõlkimisel? Klõpsa siin"
}
},
"resume-on-start": "Rakenduse käivitamisel jätka viimatiesitatud loo esitamist",
@ -139,7 +139,7 @@
"unset": "Määramata"
},
"tray": {
"label": "Trey",
"label": "Tasku",
"submenu": {
"disabled": "Välja lülitatud",
"enabled-and-hide-app": "Sisse lülitatud ja rakendus peidetud",

View File

@ -320,6 +320,22 @@
"hostname": {
"label": "نام میزبان"
},
"https": {
"label": "HTTPS و گواهینامه‌ها",
"submenu": {
"cert": {
"dialogTitle": "پرونده گواهینامه HTTPS را انتخاب کنید",
"label": "پرونده گواهینامه (crt/.pem.)"
},
"enable-https": {
"label": "فعال کردن HTTPS"
},
"key": {
"dialogTitle": "پرونده کلید خصوصی HTTPS را انتخاب کنید",
"label": "پرونده کلید خصوصی (key/.pem)"
}
}
},
"port": {
"label": "پورت"
}
@ -461,8 +477,8 @@
"set-status-display-type": {
"label": "متن وضعىت",
"submenu": {
"artist": "به {artist} گوش مىکند",
"application": "به پىر دسکتاپ گوش مىکند",
"artist": "به {artist} گوش مىکند",
"title": "به {song title} گوش مىکند"
}
}

View File

@ -209,7 +209,7 @@
"show": "Afficher la fenêtre",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"with-song-info": "{{applicationName}} : {{artist}} - {{title}}"
}
}
},
@ -321,6 +321,22 @@
"hostname": {
"label": "Nom de l'hôte"
},
"https": {
"label": "HTTPS & Certificats",
"submenu": {
"cert": {
"dialogTitle": "Sélectionner le fichier de certificat HTTPS",
"label": "Fichier de certificat (.crt/.pem)"
},
"enable-https": {
"label": "Activer HTTPS"
},
"key": {
"dialogTitle": "Sélectionner le fichier de clé privée HTTPS",
"label": "Fichier de clé privée (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -462,8 +478,8 @@
"set-status-display-type": {
"label": "Texte d'état",
"submenu": {
"artist": "Écoute {artiste}",
"application": "Écoute {{applicationName}}",
"artist": "Écoute {artiste}",
"title": "Écoute {titre de la chanson}"
}
}
@ -483,8 +499,8 @@
"buttons": {
"ok": "Ok"
},
"message": "Argh ! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement !"
"message": "Argh! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement!"
},
"start-download-playlist": {
"buttons": {
@ -492,30 +508,30 @@
},
"detail": "({{playlistSize}} chansons)",
"message": "Téléchargement de la playlist {{playlistTitle}}",
"title": "Téléchargement a commencé"
"title": "Téléchargement commencé"
}
},
"feedback": {
"conversion-progress": "Conversion : {{percent}} %",
"conversion-progress": "Conversion : {{percent}}%",
"converting": "Conversion…",
"done": "Terminé : {{filePath}}",
"download-info": "Téléchargement {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Téléchargé: {{percent}}%",
"download-progress": "Téléchargé : {{percent}}%",
"downloading": "Télécharge…",
"downloading-counter": "Télécharge {{current}}/{{total}}…",
"downloading-playlist": "Téléchargement de la playlist \"{{playlistTitle}}\"  {{playlistSize}} chansons ({{playlistId}})",
"downloading-playlist": "Téléchargement de la playlist \"{{playlistTitle}}\" - {{playlistSize}} chansons ({{playlistId}})",
"error-while-downloading": "Erreur lors du téléchargement de \"{{author}} - {{title}}\" : {{error}}",
"folder-already-exists": "Le dossier {{playlistFolder}} existe déjà",
"getting-playlist-info": "Obtention d'informations sur la liste de lecture…",
"getting-playlist-info": "Obtention des données de la playlist…",
"loading": "Chargement…",
"playlist-has-only-one-song": "La liste de lecture ne contient qu'un seul élément, téléchargement du morceau seul",
"playlist-id-not-found": "Aucun ID de liste de lecture trouvé",
"playlist-is-empty": "La liste de lecture est vide",
"playlist-is-mix-or-private": "Erreur lors de l'obtention des informations sur la liste de lecture: assurez-vous qu'il ne s'agit pas d'une liste privée ou \"Mixée pour vous\"\n\n{{error}}",
"preparing-file": "Péparer des fichier…",
"playlist-has-only-one-song": "La playlist ne contient qu'un seul élément, téléchargement du morceau seul",
"playlist-id-not-found": "Aucun ID de playlist trouvé",
"playlist-is-empty": "La playlist est vide",
"playlist-is-mix-or-private": "Erreur lors de l'obtention des informations sur la playlist : assurez-vous qu'il ne s'agit pas d'une playlist privée ou \"Mixée pour vous\"\n\n{{error}}",
"preparing-file": "Préparation des fichier…",
"saving": "Sauvegarde…",
"trying-to-get-playlist-id": "Obtention de l'ID de la liste de lecture: {{playlistId}}",
"video-id-not-found": "Vidéo non trouvée",
"trying-to-get-playlist-id": "Obtention de l'ID de la playlist : {{playlistId}}",
"video-id-not-found": "Vidéo introuvable",
"writing-id3": "Écriture des balises ID3…"
}
},
@ -525,19 +541,19 @@
"download-finish-settings": {
"label": "Télécharger une fois terminé",
"prompt": {
"last-percent": "Après x pour cent",
"last-percent": "Après x pourcents",
"last-seconds": "Dernières x secondes",
"title": "Configurer quand télécharger"
},
"submenu": {
"advanced": "Avancé",
"enabled": "Activé",
"mode": "Mode de temps",
"mode": "Unité de temps",
"percent": "Pourcent",
"seconds": "Secondes"
}
},
"download-playlist": "Télécharger la liste de lecture",
"download-playlist": "Télécharger la playlist",
"presets": "Préconfigurations",
"skip-existing": "Passer les fichiers existants"
},
@ -574,7 +590,7 @@
},
"lumiastream": {
"description": "Ajoute la prise en charge de Lumia Stream",
"name": "Lumia Stream [Bêta]"
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Ajoute la prise en charge des paroles pour la plupart des chansons",
@ -605,9 +621,9 @@
"host": "Hôte du Music Together",
"join": "Rejoindre le Music Together",
"permission": {
"all": "Autorisez les invités à contrôler la musique et le player",
"host-only": "Seulement l'hôte peut contrôler les playlists et le lecteur",
"playlist": "Autoriser les invités à contrôler les playlists"
"all": "Autorisez les invités à contrôler la playlist et le lecteur",
"host-only": "Seulement l'hôte peut contrôler la playlist et le lecteur",
"playlist": "Autoriser les invités à contrôler la playlist"
},
"set-permission": "Changer les permissions de contrôle",
"status": {
@ -625,7 +641,7 @@
"id-copied": "Identifiant de l'hôte copié dans le presse papier",
"id-copy-failed": "Echec de la copie de l'identifiant de l'hôte dans le presse papier",
"join-failed": "Echec en rejoignant le Music Together",
"joined": "Rejoint le Music Together",
"joined": "Music Together rejoint",
"permission-changed": "Permission du Music Together changé à \"{{permission}}\"",
"remove-song-failed": "Echec du retrait de la piste",
"user-connected": "{{name}} à rejoint le Music Together",
@ -657,7 +673,7 @@
"submenu": {
"hide-button-text": "Masquer le texte du bouton",
"refresh-on-play-pause": "Actualiser lors de la lecture/pause",
"tray-controls": "Ouvrir/Fermer sur le plateau, cliquez"
"tray-controls": "Ouvrir/Fermer au clic sur licône de la barre des tâches"
}
},
"priority": "Priorité des notifications",
@ -671,30 +687,30 @@
"name": "Amélioration des performances [Beta]"
},
"picture-in-picture": {
"description": "Permet de basculer lapplication en mode image dans image",
"description": "Permet de basculer lapplication en mode picture-in-picture",
"menu": {
"always-on-top": "Toujours en haut",
"always-on-top": "Toujours au dessus",
"hotkey": {
"label": "Raccourci clavier",
"prompt": {
"keybind-options": {
"hotkey": "Raccourci clavier"
},
"label": "Choisissez un raccourci clavier pour activer le mode Image dans l'image",
"title": "Touche de raccourci Image dans l'image"
"label": "Choisissez un raccourci clavier pour activer le mode picture-in-picture",
"title": "Touche de raccourci picture-in-picture"
}
},
"save-window-position": "Enregistrer la position de la fenêtre",
"save-window-size": "Enregistrer la taille de la fenêtre",
"use-native-pip": "Utiliser le mode image dans image natif du navigateur"
"use-native-pip": "Utiliser le mode PiP natif du navigateur"
},
"name": "Image dans l'image",
"name": "Picture-in-picture",
"templates": {
"button": "Image dans l'image"
"button": "Picture-in-picture"
}
},
"playback-speed": {
"description": "Écoutez vite, écoutez lentement ! Ajoute un curseur qui contrôle la vitesse de la chanson",
"description": "Écoutez vite, écoutez lentement! Ajoute un curseur qui contrôle la vitesse de la chanson",
"name": "Vitesse de lecture",
"templates": {
"button": "Vitesse"
@ -727,14 +743,14 @@
"backend": {
"dialog": {
"quality-changer": {
"detail": "Qualité actuelle: {{quality}}",
"detail": "Qualité actuelle : {{quality}}",
"message": "Choisissez la qualité vidéo :",
"title": "Choisissez la qualité vidéo"
}
}
},
"description": "Permet de changer la qualité vidéo avec un bouton sur la vidéo",
"name": "Changeur de qualité vidéo",
"description": "Permet de changer la qualité vidéo avec un bouton sur l'overlay vidéo",
"name": "Sélecteur de qualité vidéo",
"renderer": {
"quality-settings-button": {
"label": "Ouvrir le sélecteur de qualité du lecteur"
@ -746,7 +762,7 @@
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Erreur lors de l'authetification avec Last.fm\nCachez la popup jusqu'au prochain redémarrage.",
"message": "Erreur lors de l'authetification avec Last.fm\nCacher la popup jusqu'au prochain redémarrage.",
"title": "Authentification échouée"
}
}
@ -762,7 +778,7 @@
"scrobble-alternative-title": "Utiliser des titres alternatifs",
"scrobble-other-media": "Scrobbler d'autres médias"
},
"name": "Scrobble",
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Clé API de Last.fm",
@ -770,7 +786,7 @@
},
"listenbrainz": {
"token": {
"label": "Entrez votre token utilisateur ListenBrainz:",
"label": "Entrez votre token utilisateur ListenBrainz :",
"title": "Token ListenBrainz"
}
}
@ -796,8 +812,8 @@
}
},
"skip-disliked-songs": {
"description": "Passer les musiques que je n'aime pas",
"name": "Passer les chansons « Je n'aime pas »"
"description": "Passe les titres \"Je n'aime pas\"",
"name": "Passer les titres \"Je n'aime pas\""
},
"skip-silences": {
"description": "Ignorer automatiquement les sections de silence dans les chansons",
@ -811,12 +827,12 @@
"description": "Ajoute des paroles synchronisées aux chansons, grâce à LRClib par exemple.",
"errors": {
"fetch": "⚠️\tUne erreur s'est produite en allant chercher les paroles.\n\tMerci de réessayer plus tard.",
"not-found": "⚠️ Aucune paroles trouvées pour cette musique."
"not-found": "⚠️ Aucune paroles trouvées pour ce titre."
},
"menu": {
"default-text-string": {
"label": "Caractère par défaut entre les paroles",
"tooltip": "Choisi le caractère par défaut à utiliser pour l'espace entre les paroles"
"tooltip": "Choisi le caractère par défaut à utiliser pour les blancs entre les paroles"
},
"line-effect": {
"label": "Effet de ligne",
@ -827,7 +843,7 @@
},
"focus": {
"label": "Focus",
"tooltip": "Rend seulement la ligne actuelle blanche"
"tooltip": "Rend blanche seulement la ligne actuelle"
},
"offset": {
"label": "Décalage",
@ -850,7 +866,7 @@
"label": "Aucun",
"tooltip": "Aucun fournisseur privilégié"
},
"tooltip": "Choisissez le fournisseur par défaut à utiliser"
"tooltip": "Choisissez le fournisseur à utiliser par défaut"
},
"romanization": {
"label": "Romaniser les paroles",
@ -862,7 +878,7 @@
},
"show-time-codes": {
"label": "Afficher les timecodes",
"tooltip": "Affiche à côté de chaque paroles son timecode"
"tooltip": "Affiche le timecode à côté de chaque paroles"
}
},
"name": "Paroles Synchronisées",
@ -873,7 +889,7 @@
"warnings": {
"duration-mismatch": "⚠️ - Les paroles peuvent ne pas être synchronisées à cause d'une différence de durée.",
"inexact": "⚠️ - Les paroles de cette chanson peuvent ne pas être exactes",
"instrumental": "⚠️ - Cette musique n'a pas de paroles"
"instrumental": "⚠️ - C'est un titre instrumental"
}
},
"taskbar-mediacontrol": {
@ -910,7 +926,7 @@
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Empêche le lecteur de s'afficher quand une chanson est en cours de lecture",
"description": "Empêche le lecteur de s'afficher quand un titre est en cours de lecture",
"name": "Lecteur Non-Intrusif"
},
"video-toggle": {
@ -934,7 +950,7 @@
}
}
},
"name": "Basculer la vidéo",
"name": "Bouton de bascule vidéo",
"templates": {
"button-song": "Musique",
"button-video": "Vidéo"

View File

@ -461,8 +461,8 @@
"set-status-display-type": {
"label": "स्टेटस टेक्स्ट",
"submenu": {
"artist": "{artist} को सुन रहे है",
"application": "{{applicationName}} सुन रहे है",
"artist": "{artist} को सुन रहे है",
"title": "{song title} सुन रहे है"
}
}

View File

@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Omogući postavljanje teme \"seekbar\"-a"
},
"name": "Boja teme albuma"
},
@ -320,6 +321,22 @@
"hostname": {
"label": "Naziv hosta"
},
"https": {
"label": "HTTPS i Sertifikati",
"submenu": {
"cert": {
"dialogTitle": "Biraj HTTPS sertifikat datoteku",
"label": "Sertifikat datoteka (.crt/.pem)"
},
"enable-https": {
"label": "Omogući HTTPS"
},
"key": {
"dialogTitle": "Biraj privatni ključ datoteku za HTTPS",
"label": "Privatni ključ datoteka (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -461,8 +478,8 @@
"set-status-display-type": {
"label": "Tekst statusa",
"submenu": {
"artist": "Slušate {glazbenika}",
"application": "Slušate {{applicationName}}",
"artist": "Slušate {glazbenika}",
"title": "Slušate {naslov pjesme}"
}
}

View File

@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Abilita tematizzazione della seekbar"
},
"name": "Tema abbinato a colore album"
},
@ -320,6 +321,22 @@
"hostname": {
"label": "Hostname"
},
"https": {
"label": "HTTPS & Certificati",
"submenu": {
"cert": {
"dialogTitle": "Seleziona file di certificato HTTPS",
"label": "File di certificato (.crt/.pem)"
},
"enable-https": {
"label": "Abilita HTTPS"
},
"key": {
"dialogTitle": "Seleziona il file della chiave privata HTTPS",
"label": "File della chiave privata (.key/.pem)"
}
}
},
"port": {
"label": "Porta"
}
@ -461,9 +478,9 @@
"set-status-display-type": {
"label": "Testo dello status",
"submenu": {
"application": "Ascoltando {{applicationName}}",
"artist": "Stai ascoltando {artist}",
"title": "Stai ascoltando {song title}",
"application": "Ascoltando {{applicationName}}"
"title": "Stai ascoltando {song title}"
}
}
},
@ -866,7 +883,7 @@
},
"name": "Testi sincronizzati",
"refetch-btn": {
"fetching": "Sto recuperando...",
"fetching": "Caricamento...",
"normal": "Recupera i testi"
},
"warnings": {

View File

@ -117,7 +117,7 @@
"hide-menu": {
"dialog": {
"message": "მენიუ შემდეგი გაშვებისას დაიმალება, მის საჩვენებლად გამოიყენეთ [Alt] (ან თუ აპლიკაციის მენიუს იყენებთ, უკან დააწკაპუნეთ [`])",
"title": "მენიუს დამალვა ჩართულია"
"title": "მენიუს დამალვა ჩართ"
},
"label": "მენიუს დამალვა"
},

View File

@ -171,7 +171,7 @@
"remove": "제거"
},
"remove-theme": "사용자 정의 테마를 제거하시겠습니까?",
"remove-theme-message": "사용자 정의 테마를 제거하시겠습니까?"
"remove-theme-message": "이 설정을 변경하면 커스텀 테마가 삭제됩니다"
},
"label": "테마",
"submenu": {
@ -289,7 +289,7 @@
},
"amuse": {
"description": "6K Labs Amuse의 'now playing' 위젯에 {{applicationName}} 지원 추가",
"name": "Amuse",
"name": "Amuseio AB",
"response": {
"query": "Amuse API 서버가 실행 중입니다. GET /query로 노래 정보를 가져오세요."
}
@ -321,6 +321,22 @@
"hostname": {
"label": "호스트 명"
},
"https": {
"label": "HTTPS 및 인증서",
"submenu": {
"cert": {
"dialogTitle": "HTTPS 인증서 파일을 선택해 주세요",
"label": "인증서 파일(.crt/.pem)"
},
"enable-https": {
"label": "HTTPS 활성화"
},
"key": {
"dialogTitle": "HTTPS 개인 키 파일을 선택해 주세요",
"label": "개인 키 파일(.key/.pem)"
}
}
},
"port": {
"label": "포트"
}
@ -457,13 +473,13 @@
"disconnected": "연결 해제 됨",
"hide-duration-left": "남은 재생 시간 숨기기",
"hide-github-button": "GitHub 링크 버튼 숨기기",
"play-on-application": "유튜브 뮤직에서 재생",
"play-on-application": "{{applicationName}} 에서 재생",
"set-inactivity-timeout": "비활성 시간 제한 설정",
"set-status-display-type": {
"label": "상태 텍스트",
"submenu": {
"artist": "{아티스트} 듣는 중",
"application": "{{applicationName}} 듣는 중",
"artist": "{아티스트} 듣는 중",
"title": "{곡 제목} 듣는 중"
}
}

View File

@ -151,7 +151,9 @@
"label": "Vizualiniai patobulinimai",
"submenu": {
"custom-window-title": {
"label": "Pasirinktinis lango pavadinimas",
"prompt": {
"label": "Įveskite pasirinktinį lango pavadinimą: (palikite tuščią, jei norite išjungti)",
"placeholder": "Pavyzdys: {{applicationName}}"
}
},
@ -431,9 +433,9 @@
"set-inactivity-timeout": "Nustatyti neveiklumo laiką",
"set-status-display-type": {
"submenu": {
"application": "Klausosi {{applicationName}}",
"artist": "Klausosi {artist]",
"title": "Klausosi {song title}",
"application": "Klausosi {{applicationName}}"
"title": "Klausosi {song title}"
}
}
},

View File

@ -5,10 +5,10 @@
"execute-failed": "Mislukt om plugin {{pluginName}}::{{contextName}} uit te voeren",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} uitgevoerd in {{ms}}ms",
"initialize-failed": "Initialisatie van plugin \"{{pluginName}}\" mislukt",
"load-all": "Alle plugins laden",
"load-all": "Alle plugins aan het laden",
"load-failed": "Mislukt om plugin \"{{pluginName}}\" te laden",
"loaded": "Plugin \"{{pluginName}}\" geladen",
"unload-failed": "Mislukt om plugin \"{{pluginName}}\" te lossen",
"unload-failed": "Mislukt om plugin \"{{pluginName}}\" te ontladen",
"unloaded": "Plugin \"{{pluginName}}\" gelost"
}
}
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Schakel thema's voor de schuifbalk in"
},
"name": "Albumkleurthema"
},
@ -320,6 +321,22 @@
"hostname": {
"label": "Hostnaam"
},
"https": {
"label": "HTTPS & Certificaten",
"submenu": {
"cert": {
"dialogTitle": "Selecteer HTTPS certificaat",
"label": "Certificaatbestand (.crt/.pem)"
},
"enable-https": {
"label": "HTTPS aanzetten"
},
"key": {
"dialogTitle": "Selecteer HTTPS privésleutel",
"label": "Privésleutelbestand (.key/.pem)"
}
}
},
"port": {
"label": "Poort"
}
@ -461,9 +478,9 @@
"set-status-display-type": {
"label": "Status tekst",
"submenu": {
"application": "Naar {{applicationName}} aan het luisteren",
"artist": "Naar {artist} aan het luisteren",
"title": "Naar {song title} aan het luisteren",
"application": "Naar {{applicationName}} aan het luisteren"
"title": "Naar {song title} aan het luisteren"
}
}
},

View File

@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Zezwól stylowanie paska wyszukiwań"
},
"name": "Motyw kolorów albumu"
},
@ -320,6 +321,22 @@
"hostname": {
"label": "Nazwa hosta (IP)"
},
"https": {
"label": "HTTPS i Certyfikaty",
"submenu": {
"cert": {
"dialogTitle": "Wybierz plik certyfikatu HTTPS",
"label": "Certyfikat (.crt/.pem)"
},
"enable-https": {
"label": "Zezwól HTTPS"
},
"key": {
"dialogTitle": "Wybierz plik prywatnego klucza HTTPS",
"label": "Klucz prywatny (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -461,8 +478,8 @@
"set-status-display-type": {
"label": "Opis statusu",
"submenu": {
"artist": "Słucha {artist}",
"application": "Słucha {{applicationName}}",
"artist": "Słucha {artist}",
"title": "Słucha {song title}"
}
}

View File

@ -321,6 +321,22 @@
"hostname": {
"label": "Nome do anfitrião"
},
"https": {
"label": "HTTPS & Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecione o certificado do HTTPS",
"label": "Arquivo de certificado (.crt/.pem)"
},
"enable-https": {
"label": "Habilitar HTTPS"
},
"key": {
"dialogTitle": "Selecione a chave privada do HTTPS",
"label": "Arquivo de chave privada (.key/.pem)"
}
}
},
"port": {
"label": "Porta"
}
@ -462,8 +478,8 @@
"set-status-display-type": {
"label": "Texto de status",
"submenu": {
"artist": "Ouvindo {artist}",
"application": "Ouvindo {{applicationName}}",
"artist": "Ouvindo {artist}",
"title": "Ouvindo {song title}"
}
}

View File

@ -321,6 +321,22 @@
"hostname": {
"label": "Nome do anfitrião"
},
"https": {
"label": "HTTPS e Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecionar arquivo do certificado HTTPS",
"label": "Arquivo do certificado (.crt/.pem)"
},
"enable-https": {
"label": "Ativar HTTPS"
},
"key": {
"dialogTitle": "Selecionar arquivo da chave privada HTTPS",
"label": "Arquivo da chave privada (.key/.pen)"
}
}
},
"port": {
"label": "Porta"
}
@ -462,8 +478,8 @@
"set-status-display-type": {
"label": "Texto de estado",
"submenu": {
"artist": "A ouvir {artist}",
"application": "A reproduzir {{applicationName}}",
"artist": "A ouvir {artist}",
"title": "A ouvir {song title}"
}
}

View File

@ -2,13 +2,13 @@
"common": {
"console": {
"plugins": {
"execute-failed": "Ошибка загрузки плагина {{pluginName}}::{{contextName}}",
"execute-failed": "Ошибка при выполнении плагина {{pluginName}}::{{contextName}}",
"executed-at-ms": "Плагин {{pluginName}}::{{contextName}} загружен за {{ms}}мс",
"initialize-failed": "Ошибка инициализации плагина \"{{pluginName}}\"",
"load-all": "Загружаем все плагины",
"load-failed": "Ошибка загрузки плагина \"{{pluginName}}\"",
"loaded": "Плагин \"{{pluginName}}\" загружен",
"unload-failed": "Ошибка выгрузки плагина \"{{pluginName}}\"",
"unload-failed": "Ошибка при выгрузке плагина \"{{pluginName}}\"",
"unloaded": "Плагин \"{{pluginName}}\" выгружен"
}
}
@ -44,7 +44,7 @@
},
"dialog": {
"hide-menu-enabled": {
"detail": "Меню скрыто, 'Alt' чтобы показать его ('Escape' если используете внутреннее меню приложения)",
"detail": "Меню скрыто, используйте 'Alt' чтобы показать его ('Escape' если используете внутреннее меню приложения)",
"message": "Скрытие меню включено",
"title": "Включено скрытие меню"
},
@ -53,8 +53,8 @@
"later": "Позже",
"restart-now": "Перезапустить сейчас"
},
"detail": "Перезапустите приложение для включения плагина {{pluginName}}",
"message": "Перезапуск для применения плагина {{pluginName}}",
"detail": "Для вступления изменений в силу плагину \"{{pluginName}}\" требуется перезапуск",
"message": "Требуется перезапуск плагина \"{{pluginName}}\"",
"title": "Нужен перезапуск"
},
"unresponsive": {
@ -100,7 +100,7 @@
"disable-hardware-acceleration": "Отключить аппаратное ускорение",
"edit-config-json": "Редактировать config.json",
"override-user-agent": "Переопределить User-Agent",
"restart-on-config-changes": "Перезапускать при изменениях конфига",
"restart-on-config-changes": "Перезапускать при изменениях конфигурации",
"set-proxy": {
"label": "Задать прокси",
"prompt": {
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Включить тематическое оформление полосы прокрутки"
},
"name": "Цветовая тема альбома"
},
@ -287,7 +288,7 @@
"name": "Режим Ambient"
},
"amuse": {
"description": "Добавляет поддержку виджета Amuse „сейчас играет“ от 6K Labs",
"description": "Добавляет {{applicationName}} поддержку виджета Amuse „сейчас играет“ от 6K Labs",
"name": "Amuse",
"response": {
"query": "Сервер Amuse API запущен. GET /query чтобы получить информацию о треке."
@ -320,6 +321,22 @@
"hostname": {
"label": "Имя хоста"
},
"https": {
"label": "HTTPS и сертификаты",
"submenu": {
"cert": {
"dialogTitle": "Выберите файл сертификата HTTPS",
"label": "Файл сертификата (.crt/.pem)"
},
"enable-https": {
"label": "Включить HTTPS"
},
"key": {
"dialogTitle": "Выберите файл приватного ключа HTTPS",
"label": "Файл приватного ключа (.key/.pem)"
}
}
},
"port": {
"label": "Порт"
}
@ -461,8 +478,8 @@
"set-status-display-type": {
"label": "Текст статуса",
"submenu": {
"artist": "Слушает {исполнитель}",
"application": "Слушает {{applicationName}}",
"artist": "Слушает {исполнитель}",
"title": "Слушает {название трека}"
}
}

View File

@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Omogući postavljanje teme \"seekbar\"-a"
},
"name": "Paleta boja albuma"
},
@ -320,6 +321,22 @@
"hostname": {
"label": "Ime host-a"
},
"https": {
"label": "HTTPS i Sertifikati",
"submenu": {
"cert": {
"dialogTitle": "Izaberi HTTPS datoteku sertifikata",
"label": "Datoteka sertifikata (.crt/.pem)"
},
"enable-https": {
"label": "Omogući HTTPS"
},
"key": {
"dialogTitle": "Izaberi HTTPS datoteku privatnog ključa",
"label": "Datoteka privatnog ključa (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -461,9 +478,9 @@
"set-status-display-type": {
"label": "Tekst statusa",
"submenu": {
"application": "Slušanje {{applicationName}}",
"artist": "Slušanje {artist}",
"title": "Slušanje {song title}",
"application": "Slušanje {{applicationName}}"
"title": "Slušanje {song title}"
}
}
},

View File

@ -321,6 +321,22 @@
"hostname": {
"label": "Värdnamn"
},
"https": {
"label": "HTTPS och certifikat",
"submenu": {
"cert": {
"dialogTitle": "Välj HTTPS-certifikatfil",
"label": "Certifikatfil (.crt/.pem)"
},
"enable-https": {
"label": "Aktivera HTTPS"
},
"key": {
"dialogTitle": "Välj privat nyckelfil (.key/.pem)",
"label": "Privat nyckelfil (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -462,8 +478,8 @@
"set-status-display-type": {
"label": "Statusmeddelande",
"submenu": {
"artist": "Lyssnar på {artist}",
"application": "Lyssnar på {{applicationName}}",
"artist": "Lyssnar på {artist}",
"title": "Lyssnar på {song title}"
}
}

View File

@ -461,8 +461,8 @@
"set-status-display-type": {
"label": "நிலை உரை",
"submenu": {
"artist": "{கலைஞர்} பாடலைக் கேட்கிறேன்",
"application": "வலையொளி இசையில் கேட்கிறது",
"artist": "{கலைஞர்} பாடலைக் கேட்கிறேன்",
"title": "பாடலைக் கேட்கிறேன்{பாடல் தலைப்பு}"
}
}

View File

@ -321,6 +321,22 @@
"hostname": {
"label": "Ana bilgisayar adı"
},
"https": {
"label": "HTTPS & Sertifikalar",
"submenu": {
"cert": {
"dialogTitle": "HTTPS sertifika dosyası seç",
"label": "Sertifika dosyası (.crt/.pem)"
},
"enable-https": {
"label": "HTTPS'i aktifleştir"
},
"key": {
"dialogTitle": "HTTPS özel anahtar dosyası seç",
"label": "Özel anahtar dosyası (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -462,8 +478,8 @@
"set-status-display-type": {
"label": "Durum metni",
"submenu": {
"artist": "{artist} Dinleniyor",
"application": "{{applicationName}} Dinleniyor",
"artist": "{artist} Dinleniyor",
"title": "{song title} Dinleniyor"
}
}

View File

@ -320,6 +320,13 @@
"hostname": {
"label": "Tên máy chủ"
},
"https": {
"submenu": {
"enable-https": {
"label": "Bật HTTPS"
}
}
},
"port": {
"label": "Cổng"
}
@ -461,9 +468,9 @@
"set-status-display-type": {
"label": "Văn bản trạng thái",
"submenu": {
"application": "Đang nghe {{applicationName}}",
"artist": "Đang nghe nhạc của {artist}",
"title": "Đang nghe nhạc {song title}",
"application": "Đang nghe {{applicationName}}"
"title": "Đang nghe nhạc {song title}"
}
}
},

View File

@ -322,7 +322,20 @@
"label": "主机名"
},
"https": {
"label": "HTTPS & 数字证书"
"label": "HTTPS & 数字证书",
"submenu": {
"cert": {
"dialogTitle": "选择 HTTPS 证书文件",
"label": "证书文件(.crt/.pem"
},
"enable-https": {
"label": "启用 HTTPS"
},
"key": {
"dialogTitle": "选择 HTTPS 私钥文件",
"label": "私钥文件(.key/.pem"
}
}
},
"port": {
"label": "端口号"
@ -465,8 +478,8 @@
"set-status-display-type": {
"label": "状态文本",
"submenu": {
"artist": "在听 {artist}",
"application": "在听 {{applicationName}}",
"artist": "在听 {artist}",
"title": "在听 {song title}"
}
}

View File

@ -1,8 +1,10 @@
import { Menu, nativeImage, screen, Tray } from 'electron';
import is from 'electron-is';
import defaultTrayIconAsset from '@assets/tray.png?asset&asarUnpack';
import pausedTrayIconAsset from '@assets/tray-paused.png?asset&asarUnpack';
import TrayIcon from '@assets/tray.png?asset&asarUnpack';
import PausedTrayIcon from '@assets/tray-paused.png?asset&asarUnpack';
import TrayIconWhite from '@assets/tray-white.png?asset&asarUnpack';
import PausedTrayIconWhite from '@assets/tray-paused-white.png?asset&asarUnpack';
import * as config from './config';
@ -52,14 +54,15 @@ export const setUpTray = (app: Electron.App, win: Electron.BrowserWindow) => {
const pixelRatio = is.windows()
? screen.getPrimaryDisplay().scaleFactor || 1
: 1;
const defaultTrayIcon = nativeImage
.createFromPath(defaultTrayIconAsset)
.createFromPath(is.macOS() ? TrayIconWhite : TrayIcon)
.resize({
width: 16 * pixelRatio,
height: 16 * pixelRatio,
});
const pausedTrayIcon = nativeImage
.createFromPath(pausedTrayIconAsset)
.createFromPath(is.macOS() ? PausedTrayIconWhite : PausedTrayIcon)
.resize({
width: 16 * pixelRatio,
height: 16 * pixelRatio,

View File

@ -1,7 +1,7 @@
import path from 'node:path';
import process from 'node:process';
import { _electron as electron } from 'playwright';
import { test, expect } from '@playwright/test';
import { test, expect, _electron as electron } from '@playwright/test';
process.env.NODE_ENV = 'test';
@ -32,7 +32,11 @@ test('Pear Desktop App - With default settings, app is launched and visible', as
// expect(title.replaceAll(/\s/g, ' ')).toEqual('Pear Desktop');
const url = window.url();
expect(url.startsWith('https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com')).toBe(true);
expect(
url.startsWith(
'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
),
).toBe(true);
await app.close();
});

View File

@ -25,7 +25,8 @@
"exclude": ["./dist"],
"include": [
"electron.vite.config.mts",
"playwright.config.ts",
"./src/**/*",
"*.config.*js",
"*.config.*js"
]
}

8
tsconfig.test.json Normal file
View File

@ -0,0 +1,8 @@
{
"extends": "./tsconfig.json",
"exclude": ["./dist"],
"include": [
"playwright.config.ts",
"./tests/**/*"
]
}