Compare commits

...

2 Commits

6 changed files with 104 additions and 176 deletions

View File

@ -153,7 +153,7 @@
"builtin-modules": "5.0.0", "builtin-modules": "5.0.0",
"cross-env": "10.0.0", "cross-env": "10.0.0",
"del-cli": "6.0.0", "del-cli": "6.0.0",
"discord-api-types": "0.38.23", "discord-api-types": "0.38.36",
"electron": "38.2.0", "electron": "38.2.0",
"electron-builder": "26.0.12", "electron-builder": "26.0.12",
"electron-builder-squirrel-windows": "26.0.12", "electron-builder-squirrel-windows": "26.0.12",

129
pnpm-lock.yaml generated
View File

@ -299,8 +299,8 @@ 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.38.23 specifier: 0.38.36
version: 0.38.23 version: 0.38.36
electron: electron:
specifier: 38.2.0 specifier: 38.2.0
version: 38.2.0 version: 38.2.0
@ -1379,32 +1379,16 @@ packages:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0' typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/project-service@8.42.0':
resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/project-service@8.43.0': '@typescript-eslint/project-service@8.43.0':
resolution: {integrity: sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==} resolution: {integrity: sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==}
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: '>=4.8.4 <6.0.0' typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/scope-manager@8.42.0':
resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/scope-manager@8.43.0': '@typescript-eslint/scope-manager@8.43.0':
resolution: {integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==} resolution: {integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/tsconfig-utils@8.42.0':
resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/tsconfig-utils@8.43.0': '@typescript-eslint/tsconfig-utils@8.43.0':
resolution: {integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==} resolution: {integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -1418,33 +1402,16 @@ packages:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0' typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/types@8.42.0':
resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/types@8.43.0': '@typescript-eslint/types@8.43.0':
resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==} resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==}
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.42.0':
resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/typescript-estree@8.43.0': '@typescript-eslint/typescript-estree@8.43.0':
resolution: {integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==} resolution: {integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==}
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: '>=4.8.4 <6.0.0' typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/utils@8.42.0':
resolution: {integrity: sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/utils@8.43.0': '@typescript-eslint/utils@8.43.0':
resolution: {integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==} resolution: {integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -1452,10 +1419,6 @@ packages:
eslint: ^8.57.0 || ^9.0.0 eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0' typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/visitor-keys@8.42.0':
resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/visitor-keys@8.43.0': '@typescript-eslint/visitor-keys@8.43.0':
resolution: {integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==} resolution: {integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -2191,8 +2154,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.38.23: discord-api-types@0.38.36:
resolution: {integrity: sha512-C8VjK0yxBUq1dakxGpUXQm4VSC7R+aaD2SIr3paj2a0bP/LRok1AqHiezp30GruK6Ba9FtQAKqYUMJPzsqv7IQ==} resolution: {integrity: sha512-qrbUbjjwtyeBg5HsAlm1C859epfOyiLjPqAOzkdWlCNsZCWJrertnETF/NwM8H+waMFU58xGSc5eXUfXah+WTQ==}
dmg-builder@26.0.12: dmg-builder@26.0.12:
resolution: {integrity: sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==} resolution: {integrity: sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==}
@ -2568,9 +2531,6 @@ packages:
exif-parser@0.1.12: exif-parser@0.1.12:
resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==}
exponential-backoff@3.1.2:
resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
exponential-backoff@3.1.3: exponential-backoff@3.1.3:
resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==}
@ -4485,10 +4445,6 @@ packages:
tinycolor2@1.6.0: tinycolor2@1.6.0:
resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
tinyglobby@0.2.14:
resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
engines: {node: '>=12.0.0'}
tinyglobby@0.2.15: tinyglobby@0.2.15:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
engines: {node: '>=12.0.0'} engines: {node: '>=12.0.0'}
@ -5043,7 +4999,7 @@ snapshots:
'@sapphire/async-queue': 1.5.5 '@sapphire/async-queue': 1.5.5
'@sapphire/snowflake': 3.5.5 '@sapphire/snowflake': 3.5.5
'@vladfrangu/async_event_emitter': 2.4.6 '@vladfrangu/async_event_emitter': 2.4.6
discord-api-types: 0.38.23 discord-api-types: 0.38.36
magic-bytes.js: 1.12.1 magic-bytes.js: 1.12.1
tslib: 2.8.1 tslib: 2.8.1
undici: 6.21.3 undici: 6.21.3
@ -5862,7 +5818,7 @@ snapshots:
'@stylistic/eslint-plugin@5.3.1(eslint@9.35.0)': '@stylistic/eslint-plugin@5.3.1(eslint@9.35.0)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0) '@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0)
'@typescript-eslint/types': 8.42.0 '@typescript-eslint/types': 8.43.0
eslint: 9.35.0 eslint: 9.35.0
eslint-visitor-keys: 4.2.1 eslint-visitor-keys: 4.2.1
espree: 10.4.0 espree: 10.4.0
@ -5883,7 +5839,7 @@ snapshots:
dependencies: dependencies:
minimatch: 10.0.3 minimatch: 10.0.3
path-browserify: 1.0.1 path-browserify: 1.0.1
tinyglobby: 0.2.14 tinyglobby: 0.2.15
'@tybys/wasm-util@0.10.0': '@tybys/wasm-util@0.10.0':
dependencies: dependencies:
@ -6017,15 +5973,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/project-service@8.42.0(typescript@5.9.2)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2)
'@typescript-eslint/types': 8.42.0
debug: 4.4.1
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/project-service@8.43.0(typescript@5.9.2)': '@typescript-eslint/project-service@8.43.0(typescript@5.9.2)':
dependencies: dependencies:
'@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.9.2) '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.9.2)
@ -6035,20 +5982,11 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/scope-manager@8.42.0':
dependencies:
'@typescript-eslint/types': 8.42.0
'@typescript-eslint/visitor-keys': 8.42.0
'@typescript-eslint/scope-manager@8.43.0': '@typescript-eslint/scope-manager@8.43.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.43.0 '@typescript-eslint/types': 8.43.0
'@typescript-eslint/visitor-keys': 8.43.0 '@typescript-eslint/visitor-keys': 8.43.0
'@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)':
dependencies:
typescript: 5.9.2
'@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.9.2)': '@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.9.2)':
dependencies: dependencies:
typescript: 5.9.2 typescript: 5.9.2
@ -6065,26 +6003,8 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/types@8.42.0': {}
'@typescript-eslint/types@8.43.0': {} '@typescript-eslint/types@8.43.0': {}
'@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)':
dependencies:
'@typescript-eslint/project-service': 8.42.0(typescript@5.9.2)
'@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2)
'@typescript-eslint/types': 8.42.0
'@typescript-eslint/visitor-keys': 8.42.0
debug: 4.4.1
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.2
ts-api-utils: 2.1.0(typescript@5.9.2)
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/typescript-estree@8.43.0(typescript@5.9.2)': '@typescript-eslint/typescript-estree@8.43.0(typescript@5.9.2)':
dependencies: dependencies:
'@typescript-eslint/project-service': 8.43.0(typescript@5.9.2) '@typescript-eslint/project-service': 8.43.0(typescript@5.9.2)
@ -6101,17 +6021,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/utils@8.42.0(eslint@9.35.0)(typescript@5.9.2)':
dependencies:
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0)
'@typescript-eslint/scope-manager': 8.42.0
'@typescript-eslint/types': 8.42.0
'@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2)
eslint: 9.35.0
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.43.0(eslint@9.35.0)(typescript@5.9.2)': '@typescript-eslint/utils@8.43.0(eslint@9.35.0)(typescript@5.9.2)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0) '@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0)
@ -6123,11 +6032,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/visitor-keys@8.42.0':
dependencies:
'@typescript-eslint/types': 8.42.0
eslint-visitor-keys: 4.2.1
'@typescript-eslint/visitor-keys@8.43.0': '@typescript-eslint/visitor-keys@8.43.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.43.0 '@typescript-eslint/types': 8.43.0
@ -6198,7 +6102,7 @@ snapshots:
dependencies: dependencies:
'@discordjs/rest': 2.5.1 '@discordjs/rest': 2.5.1
'@vladfrangu/async_event_emitter': 2.4.6 '@vladfrangu/async_event_emitter': 2.4.6
discord-api-types: 0.38.23 discord-api-types: 0.38.36
ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
@ -6935,7 +6839,7 @@ snapshots:
minimatch: 3.1.2 minimatch: 3.1.2
p-limit: 3.1.0 p-limit: 3.1.0
discord-api-types@0.38.23: {} discord-api-types@0.38.36: {}
dmg-builder@26.0.12(electron-builder-squirrel-windows@26.0.12): dmg-builder@26.0.12(electron-builder-squirrel-windows@26.0.12):
dependencies: dependencies:
@ -7341,7 +7245,7 @@ snapshots:
get-tsconfig: 4.10.1 get-tsconfig: 4.10.1
is-bun-module: 2.0.0 is-bun-module: 2.0.0
stable-hash-x: 0.2.0 stable-hash-x: 0.2.0
tinyglobby: 0.2.14 tinyglobby: 0.2.15
unrs-resolver: 1.11.1 unrs-resolver: 1.11.1
optionalDependencies: optionalDependencies:
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.9.2))(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)(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0)
@ -7399,7 +7303,7 @@ snapshots:
eslint-plugin-solid@0.14.5(eslint@9.35.0)(typescript@5.9.2): eslint-plugin-solid@0.14.5(eslint@9.35.0)(typescript@5.9.2):
dependencies: dependencies:
'@typescript-eslint/utils': 8.42.0(eslint@9.35.0)(typescript@5.9.2) '@typescript-eslint/utils': 8.43.0(eslint@9.35.0)(typescript@5.9.2)
eslint: 9.35.0 eslint: 9.35.0
estraverse: 5.3.0 estraverse: 5.3.0
is-html: 2.0.0 is-html: 2.0.0
@ -7507,8 +7411,6 @@ snapshots:
exif-parser@0.1.12: {} exif-parser@0.1.12: {}
exponential-backoff@3.1.2: {}
exponential-backoff@3.1.3: {} exponential-backoff@3.1.3: {}
extract-zip@2.0.1: extract-zip@2.0.1:
@ -8624,14 +8526,14 @@ snapshots:
node-gyp@11.4.2: node-gyp@11.4.2:
dependencies: dependencies:
env-paths: 2.2.1 env-paths: 2.2.1
exponential-backoff: 3.1.2 exponential-backoff: 3.1.3
graceful-fs: 4.2.11 graceful-fs: 4.2.11
make-fetch-happen: 14.0.3 make-fetch-happen: 14.0.3
nopt: 8.1.0 nopt: 8.1.0
proc-log: 5.0.0 proc-log: 5.0.0
semver: 7.7.2 semver: 7.7.2
tar: 7.4.3 tar: 7.4.3
tinyglobby: 0.2.14 tinyglobby: 0.2.15
which: 5.0.0 which: 5.0.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -9492,11 +9394,6 @@ snapshots:
tinycolor2@1.6.0: {} tinycolor2@1.6.0: {}
tinyglobby@0.2.14:
dependencies:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
tinyglobby@0.2.15: tinyglobby@0.2.15:
dependencies: dependencies:
fdir: 6.5.0(picomatch@4.0.3) fdir: 6.5.0(picomatch@4.0.3)

View File

@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Enable seekbar theming"
}, },
"name": "Album Color Theme" "name": "Album Color Theme"
}, },

View File

@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "재생바 색조 변경 활성화"
}, },
"name": "앨범 컬러 기반 테마" "name": "앨범 컬러 기반 테마"
}, },

View File

@ -10,41 +10,32 @@ const COLOR_KEY = '--ytmusic-album-color';
const DARK_COLOR_KEY = '--ytmusic-album-color-dark'; const DARK_COLOR_KEY = '--ytmusic-album-color-dark';
const RATIO_KEY = '--ytmusic-album-color-ratio'; const RATIO_KEY = '--ytmusic-album-color-ratio';
export default createPlugin< type Config = {
unknown, enabled: boolean;
unknown, ratio: number;
{ enableSeekbar: boolean;
color?: ColorInstance; };
darkColor?: ColorInstance;
playerPage: HTMLElement | null; type Renderer = {
navBarBackground: HTMLElement | null; getMixedColor(
ytmusicPlayerBar: HTMLElement | null; color: string,
playerBarBackground: HTMLElement | null; key: string,
sidebarBig: HTMLElement | null; alpha?: number,
sidebarSmall: HTMLElement | null; ratioMultiply?: number,
ytmusicAppLayout: HTMLElement | null; ): string;
updateColor(alpha: number): void;
onConfigChange(newConfig: Config): void;
};
getMixedColor( export default createPlugin({
color: string,
key: string,
alpha?: number,
ratioMultiply?: number,
): string;
updateColor(alpha: number): void;
},
{
enabled: boolean;
ratio: number;
}
>({
name: () => t('plugins.album-color-theme.name'), name: () => t('plugins.album-color-theme.name'),
description: () => t('plugins.album-color-theme.description'), description: () => t('plugins.album-color-theme.description'),
restartNeeded: false, restartNeeded: false,
config: { config: {
enabled: false, enabled: false,
ratio: 0.5, ratio: 0.5,
}, enableSeekbar: true,
} satisfies Config as Config,
stylesheets: [style], stylesheets: [style],
menu: async ({ getConfig, setConfig }) => { menu: async ({ getConfig, setConfig }) => {
const ratioList = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]; const ratioList = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1];
@ -68,18 +59,28 @@ export default createPlugin<
}, },
})), })),
}, },
{
label: t('plugins.album-color-theme.menu.enable-seekbar'),
type: 'checkbox',
checked: config.enableSeekbar,
click(item) {
setConfig({ enableSeekbar: item.checked });
},
},
]; ];
}, },
renderer: { renderer: {
playerPage: null, playerPage: null as HTMLElement | null,
navBarBackground: null, navBarBackground: null as HTMLElement | null,
ytmusicPlayerBar: null, ytmusicPlayerBar: null as HTMLElement | null,
playerBarBackground: null, playerBarBackground: null as HTMLElement | null,
sidebarBig: null, sidebarBig: null as HTMLElement | null,
sidebarSmall: null, sidebarSmall: null as HTMLElement | null,
ytmusicAppLayout: null, ytmusicAppLayout: null as HTMLElement | null,
color: null as ColorInstance | null,
darkColor: null as ColorInstance | null,
async start({ getConfig }) { start() {
this.playerPage = document.querySelector<HTMLElement>('#player-page'); this.playerPage = document.querySelector<HTMLElement>('#player-page');
this.navBarBackground = document.querySelector<HTMLElement>( this.navBarBackground = document.querySelector<HTMLElement>(
'#nav-bar-background', '#nav-bar-background',
@ -94,14 +95,11 @@ export default createPlugin<
'#mini-guide-background', '#mini-guide-background',
); );
this.ytmusicAppLayout = document.querySelector<HTMLElement>('#layout'); this.ytmusicAppLayout = document.querySelector<HTMLElement>('#layout');
const config = await getConfig();
document.documentElement.style.setProperty(
RATIO_KEY,
`${~~(config.ratio * 100)}%`,
);
}, },
onPlayerApiReady(playerApi) { async onPlayerApiReady(playerApi, { getConfig }) {
const config = await getConfig();
(this as Renderer).onConfigChange(config);
const fastAverageColor = new FastAverageColor(); const fastAverageColor = new FastAverageColor();
document.addEventListener('videodatachange', async (event) => { document.addEventListener('videodatachange', async (event) => {
@ -152,7 +150,7 @@ export default createPlugin<
alpha = value; alpha = value;
} }
} }
this.updateColor(alpha ?? 1); (this as Renderer).updateColor(alpha ?? 1);
}); });
}, },
onConfigChange(config) { onConfigChange(config) {
@ -160,8 +158,15 @@ export default createPlugin<
RATIO_KEY, RATIO_KEY,
`${~~(config.ratio * 100)}%`, `${~~(config.ratio * 100)}%`,
); );
if (config.enableSeekbar) document.body.classList.add('seekbar-theme');
else document.body.classList.remove('seekbar-theme');
}, },
getMixedColor(color: string, key: string, alpha = 1, ratioMultiply) { getMixedColor(
color: string,
key: string,
alpha = 1,
ratioMultiply?: number,
) {
const keyColor = `rgba(var(${key}), ${alpha})`; const keyColor = `rgba(var(${key}), ${alpha})`;
let colorRatio = `var(${RATIO_KEY}, 50%)`; let colorRatio = `var(${RATIO_KEY}, 50%)`;
@ -207,26 +212,39 @@ export default createPlugin<
'--yt-spec-black-pure-alpha-80': 'rgba(0,0,0,0.8)', '--yt-spec-black-pure-alpha-80': 'rgba(0,0,0,0.8)',
'--yt-spec-black-1-alpha-98': 'rgba(40,40,40,0.98)', '--yt-spec-black-1-alpha-98': 'rgba(40,40,40,0.98)',
'--yt-spec-black-1-alpha-95': 'rgba(40,40,40,0.95)', '--yt-spec-black-1-alpha-95': 'rgba(40,40,40,0.95)',
'--paper-toast-background-color': '#323232',
'--ytmusic-search-background': '#030303',
'--paper-slider-knob-color': '#f03',
'--paper-dialog-background-color': '#212121',
'--paper-progress-active-color-1': '#f03',
'--paper-progress-active-color-2': '#ff2791',
'--yt-spec-inverted-background': '#f3f3f3',
'background': 'rgba(3, 3, 3)',
'--ytmusic-background': 'rgba(3, 3, 3)',
}; };
const colorKeyMap: Record<string, string> = {
'background': DARK_COLOR_KEY,
'--ytmusic-background': DARK_COLOR_KEY,
};
const ratioMap: Record<string, number> = {
'--paper-progress-active-color-1': 1.75,
'--paper-progress-active-color-2': 1.75,
'--yt-spec-inverted-background': 1.75,
};
const getMixedColor = (this as Renderer).getMixedColor.bind(this);
Object.entries(variableMap).map(([variable, color]) => { Object.entries(variableMap).map(([variable, color]) => {
const key = colorKeyMap[variable] ?? COLOR_KEY;
const ratio = ratioMap[variable] ?? undefined;
document.documentElement.style.setProperty( document.documentElement.style.setProperty(
variable, variable,
this.getMixedColor(color, COLOR_KEY, alpha), getMixedColor(color, key, alpha, ratio),
'important', 'important',
); );
}); });
document.body.style.setProperty(
'background',
this.getMixedColor('rgba(3, 3, 3)', DARK_COLOR_KEY, alpha),
'important',
);
document.documentElement.style.setProperty(
'--ytmusic-background',
// #030303
this.getMixedColor('rgba(3, 3, 3)', DARK_COLOR_KEY, alpha),
'important',
);
}, },
}, },
}); });

View File

@ -81,3 +81,14 @@ ytmusic-browse-response[has-background]:not([disable-gradient]) .background-grad
#background.immersive-background.style-scope.ytmusic-browse-response { #background.immersive-background.style-scope.ytmusic-browse-response {
opacity: 0.6; opacity: 0.6;
} }
ytmusic-search-box[is-bauhaus-sidenav-enabled] {
--ytmusic-search-background: var(--ytmusic-color-black3) !important;
}
.seekbar-theme #progress-bar.ytmusic-player-bar {
--paper-slider-active-color: linear-gradient(to right, var(--paper-progress-active-color-1) 80%, var(--paper-progress-active-color-2) 100%) !important;
--paper-slider-knob-color: var(--paper-progress-active-color-1) !important;
--paper-slider-knob-start-color: var(--paper-progress-active-color-2) !important;
}