diff --git a/.gitignore b/.gitignore index 2acedeb..938d34c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,4 @@ ts-out/ package-lock.json .pnpm-store .cache -.DS_Store -scripts/spdx-license.txt \ No newline at end of file +.DS_Store \ No newline at end of file diff --git a/assets/app/desktop.png b/assets/app/desktop.png deleted file mode 100644 index 4ad0ad5..0000000 Binary files a/assets/app/desktop.png and /dev/null differ diff --git a/assets/app/overlay.png b/assets/app/overlay.png deleted file mode 100644 index 041a109..0000000 Binary files a/assets/app/overlay.png and /dev/null differ diff --git a/assets/app/shelter.svg b/assets/app/shelter.svg deleted file mode 100644 index 997578f..0000000 --- a/assets/app/shelter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/lang/en-US.json b/assets/lang/en-US.json index 6e1dc7d..1d64b83 100644 --- a/assets/lang/en-US.json +++ b/assets/lang/en-US.json @@ -78,8 +78,6 @@ "settings-automaticClientUpdates-desc": "Disables automatic Legcord updates", "settings-hardwareAcceleration": "Hardware acceleration", "settings-hardwareAcceleration-desc": "Hardware acceleration uses your GPU to make Legcord run faster. If you're experiencing visual glitches, try disabling this.", - "settings-sdpH264BaselineRewrite": "H.264 Baseline SDP rewrite", - "settings-sdpH264BaselineRewrite-desc": "Rewrites Discord's Constrained Baseline H.264 profile in WebRTC SDP so screenshare can use hardware encode (VideoToolbox / Media Foundation) instead of OpenH264. Disable if Go Live fails to connect or video is broken, then restart Legcord.", "settings-processScanning": "Process scanning", "settings-processScanning-desc": "Scan for running games to improve Rich Presence detection. Disable to reduce CPU usage. Requires a restart.", "settings-windowsLegacyScanning": "Windows legacy scanning", @@ -246,13 +244,10 @@ "setup-welcomeTitle": "Welcome to Legcord", "setup-welcomeSubtitle": "Let's get you set up with your perfect configuration.", "setup-getStarted": "Get Started", - "setup-windowStyle-overlayTitle": "Overlay Titlebar", - "setup-windowStyle-overlayDesc": "A modern titlebar that blends into Discord. Recommended for most users.", "setup-windowStyle-nativeTitle": "Native Window", "setup-windowStyle-nativeDesc": "Use your system's default window decorations", "setup-windowStyle-customTitle": "Custom Titlebar", "setup-windowStyle-customDesc": "Use Legcord's custom titlebar design", - "setup-recommended": "Recommended", "setup-chooseWindowStyle": "Choose Window Style", "setup-selectAppearance": "Select how Legcord appears on your machine", "setup-systemTray": "System Tray", @@ -268,8 +263,6 @@ "setup-launchLegcord": "Launch Legcord", "setup-modSelectorTitle": "Choose Your Client Mod", "setup-modSelectorSubtitle": "Legcord includes Shelter out of the box, but you can also choose another client mod if wanted.", - "setup-shelterOnlyTitle": "Shelter Only", - "setup-shelterOnlyDesc": "Legcord was built around Shelter. Most typical users won't need another client mod.", "setup-vencordTitle": "Vencord", "setup-vencordDesc": "Client mod with plugins and themes.", "setup-equicordTitle": "Equicord", diff --git a/docker/Dockerfile.deb b/docker/Dockerfile.deb deleted file mode 100644 index 116b63f..0000000 --- a/docker/Dockerfile.deb +++ /dev/null @@ -1,21 +0,0 @@ -FROM ubuntu - -WORKDIR /app - -COPY ./dist/*.deb . - -RUN apt-get update -y && apt-get upgrade -y - -RUN apt-get install ./*.deb -y - -RUN apt-get install -qqy x11-apps x11vnc xvfb - -RUN mkdir ~/.vnc -RUN x11vnc -storepasswd 1234 ~/.vnc/passwd - -COPY docker/start.sh /start.sh -RUN chmod +x /start.sh - -EXPOSE 5900 - -CMD ["/start.sh"] \ No newline at end of file diff --git a/docker/Dockerfile.pacman b/docker/Dockerfile.pacman deleted file mode 100644 index 425744c..0000000 --- a/docker/Dockerfile.pacman +++ /dev/null @@ -1,21 +0,0 @@ -FROM archlinux - -WORKDIR /app - -COPY ./dist/*.pacman . - -RUN pacman -Syu --noconfirm - -RUN pacman -U --noconfirm ./*.pacman - -RUN pacman -Syu --noconfirm x11vnc xorg-server-xvfb - -RUN mkdir ~/.vnc -RUN x11vnc -storepasswd 1234 ~/.vnc/passwd - -COPY docker/start.sh /start.sh -RUN chmod +x /start.sh - -EXPOSE 5900 - -CMD ["/start.sh"] \ No newline at end of file diff --git a/docker/start.sh b/docker/start.sh deleted file mode 100644 index 6d21100..0000000 --- a/docker/start.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -set -e - -export DISPLAY=:99 - -Xvfb :99 -screen 0 1280x800x24 & -sleep 1 - -x11vnc -display :99 -forever -usepw -rfbport 5900 & - -legcord --no-sandbox & - -tail -f /dev/null \ No newline at end of file diff --git a/electron-builder.ts b/electron-builder.ts index ee1988c..f961b5c 100644 --- a/electron-builder.ts +++ b/electron-builder.ts @@ -1,7 +1,6 @@ import type { Configuration } from "electron-builder"; import { applyAppImageSandboxFix } from "./scripts/build/sandboxFix.mjs"; -import debianLicence from "./scripts/spdxLicenceDebianFormat"; import { ACTION_FRIENDLY_NAMES, EXCLUDED_FROM_SHORTCUTS, ValidActions } from "./src/common/commandDefinitions"; const desktopActions = (exec: "AppRun" | "/opt/Legcord/legcord") => @@ -72,7 +71,7 @@ export const config: Configuration = { }, pacman: { - depends: ["gtk3", "libnotify", "xdg-utils", "at-spi2-core", "alsa-lib", "nspr", "nss"], + depends: ["gtk3", "libnotify", "nss", "libxss", "libxtst", "xdg-utils", "at-spi2-core", "libsecret"], }, nsis: { @@ -102,14 +101,13 @@ export const config: Configuration = { deb: { category: "Network", icon: "build/icon.icns", - depends: ["libasound2", "libnspr4", "libnss3", "libasound2t64", "libasound2-plugins"], + depends: ["libgbm-dev", "libasound2", "libnspr4", "libnss3"], desktop: { entry: { Actions: availableActions, }, desktopActions: desktopActions("/opt/Legcord/legcord"), }, - fpm: [`${debianLicence()}=/usr/share/doc/legcord/copyright`], }, files: [ diff --git a/package.json b/package.json index bbf7b24..b723725 100644 --- a/package.json +++ b/package.json @@ -40,19 +40,17 @@ "@types/ws": "^8.18.1", "@uwu/lune": "^1.6.2", "@uwu/shelter-defs": "^1.5.1", - "@uwu/shelter-ui": "^0.0.6", "@xmldom/xmldom": "^0.9.10", "app-builder-lib": "^26.8.1", "babel-preset-solid": "^1.9.12", "electron": "43.2.0", - "electron-builder": "26.15.7", + "electron-builder": "26.8.1", "lucide-solid": "^1.16.0", "monaco-editor": "0.52.2", - "rolldown": "1.2.0", + "rolldown": "1.0.3", "rollup-plugin-copy": "^3.5.0", "solid-js": "^1.9.14", "solid-motionone": "^1.0.4", - "spdx-license-list": "^6.11.0", "typescript": "^6.0.3", "xml-formatter": "^3.7.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dde3084..87b4c22 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,7 +47,7 @@ importers: version: 2.4.16 '@rolldown-plugin/solid': specifier: ^0.0.4 - version: 0.0.4(csstype@3.2.3)(rolldown@1.2.0)(seroval@1.5.5)(solid-js@1.9.14) + version: 0.0.4(csstype@3.2.3)(rolldown@1.0.3)(seroval@1.5.5)(solid-js@1.9.14) '@rollup/plugin-esm-shim': specifier: ^0.1.8 version: 0.1.8 @@ -66,9 +66,6 @@ importers: '@uwu/shelter-defs': specifier: ^1.5.1 version: 1.5.1 - '@uwu/shelter-ui': - specifier: ^0.0.6 - version: 0.0.6(solid-js@1.9.14) '@xmldom/xmldom': specifier: ^0.9.10 version: 0.9.10 @@ -82,8 +79,8 @@ importers: specifier: 43.2.0 version: 43.2.0 electron-builder: - specifier: 26.15.7 - version: 26.15.7(electron-builder-squirrel-windows@26.8.1) + specifier: 26.8.1 + version: 26.8.1(electron-builder-squirrel-windows@26.8.1) lucide-solid: specifier: ^1.16.0 version: 1.16.0(solid-js@1.9.14) @@ -91,8 +88,8 @@ importers: specifier: 0.52.2 version: 0.52.2 rolldown: - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.0.3 + version: 1.0.3 rollup-plugin-copy: specifier: ^3.5.0 version: 3.5.0 @@ -102,9 +99,6 @@ importers: solid-motionone: specifier: ^1.0.4 version: 1.0.4(solid-js@1.9.14) - spdx-license-list: - specifier: ^6.11.0 - version: 6.11.0 typescript: specifier: ^6.0.3 version: 6.0.3 @@ -466,21 +460,12 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.11.2': - resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==} - '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.11.2': - resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} - '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@emnapi/wasi-threads@1.2.2': - resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} - '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -666,20 +651,12 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.6': - resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} - - '@noble/hashes@2.2.0': - resolution: {integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==} - engines: {node: '>= 20.19.0'} - '@nodable/entities@3.0.0': resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} @@ -695,8 +672,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/types@0.140.0': - resolution: {integrity: sha512-h5LUOzGArYemnW1NMz/DuuQhBi96J6JL2Bk8zE4kvqxB5Sg3jxmCiH4uyOWHDkiKSt5vWlG4FIwCR/DbstcNRQ==} + '@oxc-project/types@0.133.0': + resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==} '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} @@ -786,20 +763,6 @@ packages: resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} - '@peculiar/asn1-schema@2.8.0': - resolution: {integrity: sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==} - - '@peculiar/json-schema@1.1.12': - resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} - engines: {node: '>=8.0.0'} - - '@peculiar/utils@2.0.3': - resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==} - - '@peculiar/webcrypto@1.7.1': - resolution: {integrity: sha512-ODOov0sGMJMf3jPonOkgGqPknTsu+DdQ7kD++gz8aI+aFMOMHFbWAA2taqXXVTdP+OTOQR/znGvSpmkeI0WTYQ==} - engines: {node: '>=14.18.0'} - '@rolldown-plugin/solid@0.0.4': resolution: {integrity: sha512-1SfABNnkkVYu+0sSuraZDjaonmylalAvopLN2o2vNTSaJh2q1KioCN+1BCzNgrDgiCa36dbzRz0IOoplyKa9uw==} engines: {node: '>=22.12.0'} @@ -809,8 +772,8 @@ packages: seroval: ~1.5.0 solid-js: '>=1.9.12' - '@rolldown/binding-android-arm64@1.2.0': - resolution: {integrity: sha512-9yB1l95IrJuNGDFdOYe79vdApdz6WWBCObE+rQ2LUliYUlcyFwSYIb2xb5/Ifw7dAtMy2ZqNyd8QTSOc7duAKw==} + '@rolldown/binding-android-arm64@1.0.3': + resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] @@ -820,8 +783,8 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.2.0': - resolution: {integrity: sha512-pexNaW9ACLUOaBITOpU6qVu4VrsOFIjTv6bzgu0YUATo4eUJx0V605PxwZfndpPOn0ilqGqvGQ0M8UW0IE24jg==} + '@rolldown/binding-darwin-arm64@1.0.3': + resolution: {integrity: sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] @@ -831,8 +794,8 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.0': - resolution: {integrity: sha512-NqKYaq0355ZmNMG4QGpxtEDxsc7tGDhjhCm4PpE0cwnBW+5Il95LJyq414niEiaKLVjnVHBEjSo1wngKxJNiFw==} + '@rolldown/binding-darwin-x64@1.0.3': + resolution: {integrity: sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] @@ -842,8 +805,8 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.2.0': - resolution: {integrity: sha512-3vPoHzh6eBTz9IbB0/qZdSr0Qeks2echn+I4cHu2joV74VriPDdldswksEDzrl1mBB+oPRi+67+3Ib59paxIPQ==} + '@rolldown/binding-freebsd-x64@1.0.3': + resolution: {integrity: sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] @@ -853,8 +816,8 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.2.0': - resolution: {integrity: sha512-E6NNefZ1bUVmKJq2tJkf45J4Zyczj7qm9rUT7NY+Xo2474Y13qWAwc2tvBt0BAVbmtXR1llkxXg0Ou1jbDf2SQ==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.3': + resolution: {integrity: sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] @@ -865,8 +828,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.2.0': - resolution: {integrity: sha512-D+TgkdgM1vu+7/Fpf8+v0ARW+RXEP9Ccazgm8zQ4JFFd9Q7SrYQ2TakU5S5ihazQDgpKyAgZDOcIFsvoHmTZ8w==} + '@rolldown/binding-linux-arm64-gnu@1.0.3': + resolution: {integrity: sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -878,22 +841,22 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.2.0': - resolution: {integrity: sha512-wUqdwJBbAv0APN87GecstdMUtLjjNTs0hBALpxETD73mccFxdmt/XeizXDtN5RAlBwNKmI+Tg+blect2G+8IeQ==} + '@rolldown/binding-linux-arm64-musl@1.0.3': + resolution: {integrity: sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.2.0': - resolution: {integrity: sha512-9DtF35qR9/NrfhM4oxLplCzVVjE+KKm8Pjemi0i/sdhAWkUasjmSo8WTTubNJClhSHCfyk2yeyoXDQEDPtDAAw==} + '@rolldown/binding-linux-ppc64-gnu@1.0.3': + resolution: {integrity: sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.0': - resolution: {integrity: sha512-RzuHrBh8X8Hntd2N4VR02QGEciq/9JhcZoTpR/Cee6otRrlILGCf3cg2ygHuih+ZebUnWmMrDX6ITI85btO6rQ==} + '@rolldown/binding-linux-s390x-gnu@1.0.3': + resolution: {integrity: sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] @@ -905,8 +868,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.0': - resolution: {integrity: sha512-MK7L0018jjh1jR3mh21G2j1zAVcpscJBlPo2z19pRjv2XOYGRhaV4LyiD8HO6nCDdZln9IFgCMIV5yt4E3klGQ==} + '@rolldown/binding-linux-x64-gnu@1.0.3': + resolution: {integrity: sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -918,15 +881,15 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.2.0': - resolution: {integrity: sha512-gyrxLQ9NfGb/9LoVnC4kb9miUghw1mghnkfYvNHSnVIXriabnfgGPUP4RLcJm87q3KgYz4FYUG8IDiWUT+CpSw==} + '@rolldown/binding-linux-x64-musl@1.0.3': + resolution: {integrity: sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.2.0': - resolution: {integrity: sha512-/6VFMQGRmrhP77KXDC+StIxGzcNp5JOIyYtw0CQ8gPlzhpiIRucYfoM5FaFamHd5BJYIdH86yfP46l1p3WdrFA==} + '@rolldown/binding-openharmony-arm64@1.0.3': + resolution: {integrity: sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] @@ -936,8 +899,8 @@ packages: engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.2.0': - resolution: {integrity: sha512-rwdbUL465kisF24WEJLvP3JrEG6E5GRuIHt5wpMwHGERtHe4Wm2CIvtf5gTBgr2tGOHKh5NdKEAFS2VkOPE91g==} + '@rolldown/binding-wasm32-wasi@1.0.3': + resolution: {integrity: sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] @@ -946,8 +909,8 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.2.0': - resolution: {integrity: sha512-+5suHwRiKGmhwyUaNT8a5QbrBvLFh2DbO910TEmGRH1aSxwrCezodvGQnulv4uiWEIv1Kq4ypRsJ5+O+ry1DiA==} + '@rolldown/binding-win32-arm64-msvc@1.0.3': + resolution: {integrity: sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] @@ -962,8 +925,8 @@ packages: cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.0': - resolution: {integrity: sha512-WfFv6/qGufotqBSBzBYwgpCkJBk8Nj7697LL9vTz/XWc67e0r3oewu8iMRwQj3AUL45GVD7wVsPjCsAAtW66Wg==} + '@rolldown/binding-win32-x64-msvc@1.0.3': + resolution: {integrity: sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1011,9 +974,6 @@ packages: '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} - '@tybys/wasm-util@0.10.3': - resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} - '@types/adm-zip@0.5.8': resolution: {integrity: sha512-RVVH7QvZYbN+ihqZ4kX/dMiowf6o+Jk1fNwiSdx0NahBJLU787zkULhGhJM8mf/obmLGmgdMM0bXsQTmyfbR7Q==} @@ -1076,11 +1036,6 @@ packages: '@uwu/shelter-defs@1.5.1': resolution: {integrity: sha512-bO3M5SgqEpuNZkjd/LZFtTNNATpmVle5uznVp0QNgi3o1w2ej/ieYmwFK6nBZqnZHd8/4aJN1Njl/JbTnZcY5A==} - '@uwu/shelter-ui@0.0.6': - resolution: {integrity: sha512-b9NsUC7A+n4jZJl8TmXv+UKPAtfS9JygtRNASnophDkSF7evligMc21HGm8A7fh3PdBzr9VrepvehgmyUgRnLg==} - peerDependencies: - solid-js: ^1.6.16 - '@vencord/venmic@6.1.0': resolution: {integrity: sha512-YiCtzml/W8tYbGhu3jm5jfbbEnl2slKKARNK0jO+8qV979k9eFnfIRTxvhMN/SWq1h8ZNJdXVwvXpffQwq0RuA==} engines: {node: '>=14.15'} @@ -1123,9 +1078,6 @@ packages: ajv@6.15.0: resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} - ajv@8.20.0: - resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1152,13 +1104,6 @@ packages: app-builder-bin@5.0.0-alpha.12: resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} - app-builder-lib@26.15.7: - resolution: {integrity: sha512-C7APoYISPExUmrEntNhDpz9Tccb4uWuEDfLaC0WPPc7/pwzz0WZGznCz/ycPfkkzw6tKOalceD8g6TgHmVz1QA==} - engines: {node: '>=14.0.0'} - peerDependencies: - dmg-builder: 26.15.7 - electron-builder-squirrel-windows: 26.15.7 - app-builder-lib@26.8.1: resolution: {integrity: sha512-p0Im/Dx5C4tmz8QEE1Yn4MkuPC8PrnlRneMhWJj7BBXQfNTJUshM/bp3lusdEsDbvvfJZpXWnYesgSLvwtM2Zw==} engines: {node: '>=14.0.0'} @@ -1186,10 +1131,6 @@ packages: version: 3.5.0 hasBin: true - asn1js@3.0.10: - resolution: {integrity: sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==} - engines: {node: '>=12.0.0'} - assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} @@ -1212,9 +1153,6 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - aws4@1.13.2: - resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - axios@1.16.1: resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} @@ -1251,9 +1189,6 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - boolean@3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -1287,21 +1222,9 @@ packages: resolution: {integrity: sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==} engines: {node: '>=12.0.0'} - builder-util-runtime@9.7.0: - resolution: {integrity: sha512-g/kR520giAFYkSXTzcmF3kqQq7wi8F6N6SzeDgZrqTBN+VHdmgWOyTdD1yD7AATDId/yXLvuP34CxW46/BwCdw==} - engines: {node: '>=12.0.0'} - - builder-util@26.15.3: - resolution: {integrity: sha512-q2hn7Mbo2nFNkVekPiHFx6Nfo3hURmES3tfBn+k5Pqxl2RkmP3QGqZUhH/q9Pch/4G05NRhPjDlVj1O8q4Txvw==} - engines: {node: '>=14.0.0'} - builder-util@26.8.1: resolution: {integrity: sha512-pm1lTYbGyc90DHgCDO7eo8Rl4EqKLciayNbZqGziqnH9jrlKe8ZANGdityLZU+pJh16dfzjAx2xQq9McuIPEtw==} - bytestreamjs@2.0.1: - resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} - engines: {node: '>=6.0.0'} - cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -1479,9 +1402,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dmg-builder@26.15.7: - resolution: {integrity: sha512-rfo1YyAWO0L3cZLKCqKQiLYbW6ZXebRUfK0kWp4oXxO7dDFLrf7alRkWImNuXvZVQhs6Idzy++cwOk8I+xPDhw==} - dmg-builder@26.8.1: resolution: {integrity: sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg==} @@ -1503,9 +1423,6 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - duplexer2@0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} @@ -1514,8 +1431,8 @@ packages: electron-builder-squirrel-windows@26.8.1: resolution: {integrity: sha512-o288fIdgPLHA76eDrFADHPoo7VyGkDCYbLV1GzndaMSAVBoZrGvM9m2IehdcVMzdAZJ2eV9bgyissQXHv5tGzA==} - electron-builder@26.15.7: - resolution: {integrity: sha512-DBpaNzxsPs1BvEblzFoNriSbzsBqDCy/gseIngeEhYzQG1IxfB7Hvc2tBBVmpWE2BTQGP9J1RrAvDT+Vc/uAxg==} + electron-builder@26.8.1: + resolution: {integrity: sha512-uWhx1r74NGpCagG0ULs/P9Nqv2nsoo+7eo4fLUOB8L8MdWltq9odW/uuLXMFCDGnPafknYLZgjNX0ZIFRzOQAw==} engines: {node: '>=14.0.0'} hasBin: true @@ -1531,9 +1448,6 @@ packages: resolution: {integrity: sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==} engines: {node: '>=18'} - electron-publish@26.15.3: - resolution: {integrity: sha512-g/2bn8YTavY4cuS5F+jOS7zmZbXXBV8KZ8yHKfJjFPoKtzBqrpCdNPxBd3tqdBwP7BVd0lGzf7Bk2s0KesWZ4Q==} - electron-publish@26.8.1: resolution: {integrity: sha512-q+jrSTIh/Cv4eGZa7oVR+grEJo/FoLMYBAnSL5GCtqwUpr1T+VgKB/dn1pnzxIxqD8S/jP1yilT9VrwCqINR4w==} @@ -1645,9 +1559,6 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-uri@3.1.4: - resolution: {integrity: sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==} - fast-xml-builder@1.3.0: resolution: {integrity: sha512-F74cZEdCvuw9P41GAC3rod4X04jjWGM1JPEv/GWSqFTWLsdyMSBMBMlm9Hk3GLBgLBbdBNY8yee0pQh2RBVESQ==} @@ -1695,8 +1606,8 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.1: - resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} + fs-extra@11.3.5: + resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} engines: {node: '>=14.14'} fs-extra@11.3.6: @@ -1923,9 +1834,6 @@ packages: is-unsafe@2.0.0: resolution: {integrity: sha512-2LdV822R+wmI86unXA93WCFpL6g+av8ynWk0nrHyJqGop5VoocYsSLFgN8jrfalT6iGeLNM4KXuVSsULP53kEA==} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isbinaryfile@4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} engines: {node: '>= 8.0.0'} @@ -1975,9 +1883,6 @@ packages: json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -2236,9 +2141,6 @@ packages: engines: {node: ^20.17.0 || >=22.9.0} hasBin: true - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.46: resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} @@ -2334,10 +2236,6 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkijs@3.4.0: - resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} - engines: {node: '>=16.0.0'} - plist@3.1.0: resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} engines: {node: '>=10.4.0'} @@ -2355,9 +2253,6 @@ packages: resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} engines: {node: ^20.17.0 || >=22.9.0} - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -2384,13 +2279,6 @@ packages: resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} engines: {node: '>=12.20'} - pvtsutils@1.3.6: - resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} - - pvutils@1.1.5: - resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} - engines: {node: '>=16.0.0'} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2406,9 +2294,6 @@ packages: resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} hasBin: true - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -2425,10 +2310,6 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - resedit@1.7.2: resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} engines: {node: '>=12', npm: '>=6'} @@ -2470,8 +2351,8 @@ packages: '@babel/runtime': optional: true - rolldown@1.2.0: - resolution: {integrity: sha512-u7tgm5l4Yw1iTqUL4EcYOAt7fFvCgQMLeidrnD4GALlC6aOznCjezYajgxeyKw27u0Q5N7fwgCzjVyPIWzwuBA==} + rolldown@1.0.3: + resolution: {integrity: sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -2482,9 +2363,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -2602,10 +2480,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - spdx-license-list@6.11.0: - resolution: {integrity: sha512-p5ICd51dSnh7zIMtPgbB9ShBg3HMT77OeI6WVhrFFvxa5KIFYNcqxD4joAE+n1zZ7wlJdEkrOMwC75JUMMmsJA==} - engines: {node: '>=8'} - spitroast@2.1.4: resolution: {integrity: sha512-IA987I3wS8RbrKrgag+NsxLUAttrqONF7UGOL+uQFmLLXlMhZl42LomTAltBQaev0jUXIaRiqShZ3hnJYT7OCQ==} @@ -2627,9 +2501,6 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -2746,9 +2617,6 @@ packages: resolution: {integrity: sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - unzipper@0.12.5: - resolution: {integrity: sha512-tXYOi9R57Uj/2Z25SOs5RRSzq886MBQj2gY8dPL+xl/kv6s6SvByoKfAtvfVeEuhntWDgjd2o9p2lb4TVPAz0A==} - update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -2771,9 +2639,6 @@ packages: resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} engines: {node: '>=0.6.0'} - webcrypto-core@1.9.2: - resolution: {integrity: sha512-gsXecm82UQNlTBURJGuqOWy1Ww08S3kZUcr3aOJS02Pk0xLtkfeUAVC0u0xhgdonFme80edSJUIJyuvL/7250Q==} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3305,7 +3170,7 @@ snapshots: '@malept/cross-spawn-promise': 2.0.0 debug: 4.4.3 dir-compare: 4.2.0 - fs-extra: 11.3.6 + fs-extra: 11.3.5 minimatch: 9.0.9 plist: 3.1.1 transitivePeerDependencies: @@ -3328,32 +3193,16 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@1.11.2': - dependencies: - '@emnapi/wasi-threads': 1.2.2 - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.11.2': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.2.2': - dependencies: - tslib: 2.8.1 - optional: true - '@esbuild/android-arm64@0.17.19': optional: true @@ -3503,17 +3352,13 @@ snapshots: '@tybys/wasm-util': 0.10.2 optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@tybys/wasm-util': 0.10.3 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.2 optional: true - '@noble/hashes@1.4.0': {} - - '@noble/hashes@2.2.0': {} - '@nodable/entities@3.0.0': {} '@nodelib/fs.scandir@2.1.5': @@ -3528,7 +3373,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@oxc-project/types@0.140.0': {} + '@oxc-project/types@0.133.0': {} '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -3591,29 +3436,7 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.6 optional: true - '@peculiar/asn1-schema@2.8.0': - dependencies: - '@peculiar/utils': 2.0.3 - asn1js: 3.0.10 - tslib: 2.8.1 - - '@peculiar/json-schema@1.1.12': - dependencies: - tslib: 2.8.1 - - '@peculiar/utils@2.0.3': - dependencies: - tslib: 2.8.1 - - '@peculiar/webcrypto@1.7.1': - dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/json-schema': 1.1.12 - '@peculiar/utils': 2.0.3 - tslib: 2.8.1 - webcrypto-core: 1.9.2 - - '@rolldown-plugin/solid@0.0.4(csstype@3.2.3)(rolldown@1.2.0)(seroval@1.5.5)(solid-js@1.9.14)': + '@rolldown-plugin/solid@0.0.4(csstype@3.2.3)(rolldown@1.0.3)(seroval@1.5.5)(solid-js@1.9.14)': dependencies: '@babel/core': 8.0.0-rc.6 '@babel/helper-module-imports': 8.0.0-rc.6 @@ -3625,68 +3448,68 @@ snapshots: csstype: 3.2.3 html-entities: 2.6.0 parse5: 8.0.1 - rolldown: 1.2.0 + rolldown: 1.0.3 seroval: 1.5.5 solid-js: 1.9.14 - '@rolldown/binding-android-arm64@1.2.0': + '@rolldown/binding-android-arm64@1.0.3': optional: true '@rolldown/binding-darwin-arm64@1.0.0-beta.1': optional: true - '@rolldown/binding-darwin-arm64@1.2.0': + '@rolldown/binding-darwin-arm64@1.0.3': optional: true '@rolldown/binding-darwin-x64@1.0.0-beta.1': optional: true - '@rolldown/binding-darwin-x64@1.2.0': + '@rolldown/binding-darwin-x64@1.0.3': optional: true '@rolldown/binding-freebsd-x64@1.0.0-beta.1': optional: true - '@rolldown/binding-freebsd-x64@1.2.0': + '@rolldown/binding-freebsd-x64@1.0.3': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.1': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.0': + '@rolldown/binding-linux-arm-gnueabihf@1.0.3': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.1': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.0': + '@rolldown/binding-linux-arm64-gnu@1.0.3': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-beta.1': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.0': + '@rolldown/binding-linux-arm64-musl@1.0.3': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.0': + '@rolldown/binding-linux-ppc64-gnu@1.0.3': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.0': + '@rolldown/binding-linux-s390x-gnu@1.0.3': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-beta.1': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.0': + '@rolldown/binding-linux-x64-gnu@1.0.3': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-beta.1': optional: true - '@rolldown/binding-linux-x64-musl@1.2.0': + '@rolldown/binding-linux-x64-musl@1.0.3': optional: true - '@rolldown/binding-openharmony-arm64@1.2.0': + '@rolldown/binding-openharmony-arm64@1.0.3': optional: true '@rolldown/binding-wasm32-wasi@1.0.0-beta.1': @@ -3694,17 +3517,17 @@ snapshots: '@napi-rs/wasm-runtime': 0.2.12 optional: true - '@rolldown/binding-wasm32-wasi@1.2.0': + '@rolldown/binding-wasm32-wasi@1.0.3': dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.1': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.0': + '@rolldown/binding-win32-arm64-msvc@1.0.3': optional: true '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.1': @@ -3713,7 +3536,7 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0-beta.1': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.0': + '@rolldown/binding-win32-x64-msvc@1.0.3': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -3752,11 +3575,6 @@ snapshots: tslib: 2.8.1 optional: true - '@tybys/wasm-util@0.10.3': - dependencies: - tslib: 2.8.1 - optional: true - '@types/adm-zip@0.5.8': dependencies: '@types/node': 25.9.1 @@ -3851,10 +3669,6 @@ snapshots: solid-js: 1.6.16 spitroast: 2.1.4 - '@uwu/shelter-ui@0.0.6(solid-js@1.9.14)': - dependencies: - solid-js: 1.9.14 - '@vencord/venmic@6.1.0': dependencies: cmake-js: 7.4.0 @@ -3894,13 +3708,6 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.20.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.1.4 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -3920,54 +3727,6 @@ snapshots: app-builder-bin@5.0.0-alpha.12: {} - app-builder-lib@26.15.7(dmg-builder@26.15.7(electron-builder-squirrel-windows@26.8.1))(electron-builder-squirrel-windows@26.8.1): - dependencies: - '@electron/asar': 3.4.1 - '@electron/fuses': 1.8.0 - '@electron/get': 3.1.0 - '@electron/notarize': 2.5.0 - '@electron/osx-sign': 1.3.3 - '@electron/rebuild': 4.0.4 - '@electron/universal': 2.0.3 - '@malept/flatpak-bundler': 0.4.0 - '@noble/hashes': 2.2.0 - '@peculiar/webcrypto': 1.7.1 - '@types/fs-extra': 9.0.13 - ajv: 8.20.0 - asn1js: 3.0.10 - async-exit-hook: 2.0.1 - builder-util: 26.15.3 - builder-util-runtime: 9.7.0 - chromium-pickle-js: 0.2.0 - ci-info: 4.3.1 - debug: 4.4.3 - dmg-builder: 26.15.7(electron-builder-squirrel-windows@26.8.1) - dotenv: 16.6.1 - dotenv-expand: 11.0.7 - ejs: 3.1.10 - electron-builder-squirrel-windows: 26.8.1(dmg-builder@26.8.1) - electron-publish: 26.15.3 - fs-extra: 10.1.0 - hosted-git-info: 4.1.0 - isbinaryfile: 5.0.7 - jiti: 2.7.0 - js-yaml: 4.1.1 - json5: 2.2.3 - lazy-val: 1.0.5 - minimatch: 10.2.5 - pkijs: 3.4.0 - plist: 3.1.0 - proper-lockfile: 4.1.2 - resedit: 1.7.2 - semver: 7.7.4 - tar: 7.5.15 - temp-file: 3.4.0 - tiny-async-pool: 1.3.0 - unzipper: 0.12.5 - which: 5.0.0 - transitivePeerDependencies: - - supports-color - app-builder-lib@26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1): dependencies: '@develar/schema-utils': 2.6.5 @@ -4032,12 +3791,6 @@ snapshots: - bufferutil - utf-8-validate - asn1js@3.0.10: - dependencies: - pvtsutils: 1.3.6 - pvutils: 1.1.5 - tslib: 2.8.1 - assert-plus@1.0.0: optional: true @@ -4052,8 +3805,6 @@ snapshots: at-least-node@1.0.0: {} - aws4@1.13.2: {} - axios@1.16.1(debug@4.4.3): dependencies: follow-redirects: 1.16.0(debug@4.4.3) @@ -4091,8 +3842,6 @@ snapshots: binary-extensions@2.3.0: {} - bluebird@3.7.2: {} - boolean@3.2.0: optional: true @@ -4136,32 +3885,6 @@ snapshots: transitivePeerDependencies: - supports-color - builder-util-runtime@9.7.0: - dependencies: - debug: 4.4.3 - sax: 1.6.0 - transitivePeerDependencies: - - supports-color - - builder-util@26.15.3: - dependencies: - '@types/debug': 4.1.13 - builder-util-runtime: 9.7.0 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3 - fs-extra: 10.1.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - js-yaml: 4.1.1 - sanitize-filename: 1.6.4 - 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 - builder-util@26.8.1: dependencies: 7zip-bin: 5.2.0 @@ -4183,8 +3906,6 @@ snapshots: transitivePeerDependencies: - supports-color - bytestreamjs@2.0.1: {} - cacheable-lookup@5.0.4: {} cacheable-request@7.0.4: @@ -4261,7 +3982,7 @@ snapshots: dependencies: axios: 1.16.1(debug@4.4.3) debug: 4.4.3 - fs-extra: 11.3.6 + fs-extra: 11.3.5 memory-stream: 1.0.0 node-api-headers: 1.9.0 npmlog: 6.0.2 @@ -4306,7 +4027,8 @@ snapshots: convert-source-map@2.0.0: {} - core-util-is@1.0.2: {} + core-util-is@1.0.2: + optional: true crc@3.8.0: dependencies: @@ -4372,16 +4094,6 @@ snapshots: dependencies: path-type: 4.0.0 - dmg-builder@26.15.7(electron-builder-squirrel-windows@26.8.1): - dependencies: - app-builder-lib: 26.15.7(dmg-builder@26.15.7(electron-builder-squirrel-windows@26.8.1))(electron-builder-squirrel-windows@26.8.1) - builder-util: 26.15.3 - fs-extra: 10.1.0 - js-yaml: 4.1.1 - transitivePeerDependencies: - - electron-builder-squirrel-windows - - supports-color - dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1): dependencies: app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1) @@ -4419,10 +4131,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - duplexer2@0.1.4: - dependencies: - readable-stream: 2.3.8 - ejs@3.1.10: dependencies: jake: 10.9.4 @@ -4436,14 +4144,14 @@ snapshots: - dmg-builder - supports-color - electron-builder@26.15.7(electron-builder-squirrel-windows@26.8.1): + electron-builder@26.8.1(electron-builder-squirrel-windows@26.8.1): dependencies: - app-builder-lib: 26.15.7(dmg-builder@26.15.7(electron-builder-squirrel-windows@26.8.1))(electron-builder-squirrel-windows@26.8.1) - builder-util: 26.15.3 - builder-util-runtime: 9.7.0 + app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1) + builder-util: 26.8.1 + builder-util-runtime: 9.5.1 chalk: 4.1.2 ci-info: 4.4.0 - dmg-builder: 26.15.7(electron-builder-squirrel-windows@26.8.1) + dmg-builder: 26.8.1(electron-builder-squirrel-windows@26.8.1) fs-extra: 10.1.0 lazy-val: 1.0.5 simple-update-notifier: 2.0.0 @@ -4466,20 +4174,6 @@ snapshots: electron-is-dev@3.0.1: {} - electron-publish@26.15.3: - dependencies: - '@types/fs-extra': 9.0.13 - aws4: 1.13.2 - builder-util: 26.15.3 - builder-util-runtime: 9.7.0 - chalk: 4.1.2 - form-data: 4.0.5 - fs-extra: 10.1.0 - lazy-val: 1.0.5 - mime: 2.6.0 - transitivePeerDependencies: - - supports-color - electron-publish@26.8.1: dependencies: '@types/fs-extra': 9.0.13 @@ -4624,8 +4318,6 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-uri@3.1.4: {} - fast-xml-builder@1.3.0: dependencies: path-expression-matcher: 1.6.2 @@ -4677,7 +4369,7 @@ snapshots: jsonfile: 6.2.1 universalify: 2.0.1 - fs-extra@11.3.1: + fs-extra@11.3.5: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.1 @@ -4688,6 +4380,7 @@ snapshots: graceful-fs: 4.2.11 jsonfile: 6.2.1 universalify: 2.0.1 + optional: true fs-extra@7.0.1: dependencies: @@ -4943,8 +4636,6 @@ snapshots: is-unsafe@2.0.0: {} - isarray@1.0.0: {} - isbinaryfile@4.0.10: {} isbinaryfile@5.0.7: {} @@ -4977,8 +4668,6 @@ snapshots: json-schema-traverse@0.4.1: {} - json-schema-traverse@1.0.0: {} - json-stringify-safe@5.0.1: optional: true @@ -5201,8 +4890,6 @@ snapshots: undici: 6.26.0 which: 6.0.1 - node-int64@0.4.0: {} - node-releases@2.0.46: {} nopt@9.0.0: @@ -5277,15 +4964,6 @@ snapshots: mlly: 1.8.2 pathe: 2.0.3 - pkijs@3.4.0: - dependencies: - '@noble/hashes': 1.4.0 - asn1js: 3.0.10 - bytestreamjs: 2.0.1 - pvtsutils: 1.3.6 - pvutils: 1.1.5 - tslib: 2.8.1 - plist@3.1.0: dependencies: '@xmldom/xmldom': 0.8.13 @@ -5305,8 +4983,6 @@ snapshots: proc-log@6.1.0: {} - process-nextick-args@2.0.1: {} - progress@2.0.3: {} promise-retry@2.0.1: @@ -5334,12 +5010,6 @@ snapshots: dependencies: escape-goat: 4.0.0 - pvtsutils@1.3.6: - dependencies: - tslib: 2.8.1 - - pvutils@1.1.5: {} - queue-microtask@1.2.3: {} quick-lru@5.1.1: {} @@ -5358,16 +5028,6 @@ snapshots: transitivePeerDependencies: - supports-color - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.2 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -5383,8 +5043,6 @@ snapshots: require-directory@2.1.1: {} - require-from-string@2.0.2: {} - resedit@1.7.2: dependencies: pe-library: 0.4.1 @@ -5437,26 +5095,26 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.1 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.1 - rolldown@1.2.0: + rolldown@1.0.3: dependencies: - '@oxc-project/types': 0.140.0 + '@oxc-project/types': 0.133.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.2.0 - '@rolldown/binding-darwin-arm64': 1.2.0 - '@rolldown/binding-darwin-x64': 1.2.0 - '@rolldown/binding-freebsd-x64': 1.2.0 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.0 - '@rolldown/binding-linux-arm64-gnu': 1.2.0 - '@rolldown/binding-linux-arm64-musl': 1.2.0 - '@rolldown/binding-linux-ppc64-gnu': 1.2.0 - '@rolldown/binding-linux-s390x-gnu': 1.2.0 - '@rolldown/binding-linux-x64-gnu': 1.2.0 - '@rolldown/binding-linux-x64-musl': 1.2.0 - '@rolldown/binding-openharmony-arm64': 1.2.0 - '@rolldown/binding-wasm32-wasi': 1.2.0 - '@rolldown/binding-win32-arm64-msvc': 1.2.0 - '@rolldown/binding-win32-x64-msvc': 1.2.0 + '@rolldown/binding-android-arm64': 1.0.3 + '@rolldown/binding-darwin-arm64': 1.0.3 + '@rolldown/binding-darwin-x64': 1.0.3 + '@rolldown/binding-freebsd-x64': 1.0.3 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.3 + '@rolldown/binding-linux-arm64-gnu': 1.0.3 + '@rolldown/binding-linux-arm64-musl': 1.0.3 + '@rolldown/binding-linux-ppc64-gnu': 1.0.3 + '@rolldown/binding-linux-s390x-gnu': 1.0.3 + '@rolldown/binding-linux-x64-gnu': 1.0.3 + '@rolldown/binding-linux-x64-musl': 1.0.3 + '@rolldown/binding-openharmony-arm64': 1.0.3 + '@rolldown/binding-wasm32-wasi': 1.0.3 + '@rolldown/binding-win32-arm64-msvc': 1.0.3 + '@rolldown/binding-win32-x64-msvc': 1.0.3 rollup-plugin-copy@3.5.0: dependencies: @@ -5470,8 +5128,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-buffer@5.1.2: {} - safe-buffer@5.2.1: optional: true @@ -5582,8 +5238,6 @@ snapshots: source-map@0.6.1: {} - spdx-license-list@6.11.0: {} - spitroast@2.1.4: {} spitroast@2.1.6: {} @@ -5605,10 +5259,6 @@ snapshots: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -5724,14 +5374,6 @@ snapshots: escape-string-regexp: 5.0.0 path-exists: 5.0.0 - unzipper@0.12.5: - dependencies: - bluebird: 3.7.2 - duplexer2: 0.1.4 - fs-extra: 11.3.1 - graceful-fs: 4.2.11 - node-int64: 0.4.0 - update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: browserslist: 4.28.2 @@ -5747,7 +5389,8 @@ snapshots: utf8-byte-length@1.0.5: {} - util-deprecate@1.0.2: {} + util-deprecate@1.0.2: + optional: true verror@1.10.1: dependencies: @@ -5756,14 +5399,6 @@ snapshots: extsprintf: 1.4.1 optional: true - webcrypto-core@1.9.2: - dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/json-schema': 1.1.12 - '@peculiar/utils': 2.0.3 - asn1js: 3.0.10 - tslib: 2.8.1 - which@2.0.2: dependencies: isexe: 2.0.0 diff --git a/rolldown.config.ts b/rolldown.config.ts index c198230..72f49b2 100644 --- a/rolldown.config.ts +++ b/rolldown.config.ts @@ -31,8 +31,6 @@ export default defineConfig([ targets: [ { src: "src/**/**/*.html", dest: "ts-out/html/" }, { src: "src/**/**/*.css", dest: "ts-out/css/" }, - { src: "src/setup/setup.css", dest: "ts-out/html/" }, - { src: "node_modules/@uwu/shelter-ui/compat.css", dest: "ts-out/html/" }, { src: "src/**/**/*.js", dest: "ts-out/js/" }, { src: "package.json", dest: "ts-out/" }, { src: "assets/**/**", dest: "ts-out/assets/" }, diff --git a/scripts/spdxLicenceDebianFormat.ts b/scripts/spdxLicenceDebianFormat.ts deleted file mode 100644 index d78e89d..0000000 --- a/scripts/spdxLicenceDebianFormat.ts +++ /dev/null @@ -1,66 +0,0 @@ -// https://www.debian.org/doc/debian-policy/ch-docs.html#copyright-information -// https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ - -import { readFileSync, writeFileSync } from "node:fs"; -import path from "node:path"; -import spdxLicenseList from "spdx-license-list"; - -interface CopyrightConfig { - upstreamName: string; - source: string; - copyrightHolder: string; - licenseId: string; - comment: string; // optional but nice to have -} - -function indentText(text: string): string { - // formatted text fields follow the same rules as Debian control file - // long descriptions: each line indented with a single space, blank - // lines represented as " ." - return text - .split("\n") - .map((line) => (line.trim() === "" ? " ." : ` ${line}`)) - .join("\n"); -} - -function generateCopyrightFile(config: CopyrightConfig): string { - const license = spdxLicenseList[config.licenseId]; - if (!license) { - throw new Error(`Unknown SPDX license id: ${config.licenseId}`); - } - - const header = [ - "Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/", - `Upstream-Name: ${config.upstreamName}`, - `Source: ${config.source}`, - `Comment: ${indentText(config.comment)}`, // optional field - ].join("\n"); - - const licenseText = readFileSync("license.txt").toString(); - - const licenseStanza = [`License: ${config.licenseId}`, indentText(licenseText)].join("\n"); - - const filesStanza = ["Files: *", `Copyright: ${config.copyrightHolder}`, `License: ${config.licenseId}`].join("\n"); - - return `${[header, filesStanza, licenseStanza].join("\n\n")}\n`; -} - -/** - * Returns the Debian SPDX-formatted license for given license ID - * - * @export - * @return {*} {string} - */ -export default function (): string { - const copyrightContent: string = generateCopyrightFile({ - upstreamName: "Legcord", - source: "https://github.com/Legcord/Legcord", - copyrightHolder: `2020 - ${new Date().getFullYear()} Legcord Contributors`, // git log --reverse - licenseId: "OSL-3.0", - comment: "Open-Source Discord client alternative.", - }); - - const licensePath = path.join(__dirname, "spdx-license.txt"); - writeFileSync(licensePath, copyrightContent); - return licensePath; -} diff --git a/src/@types/settings.d.ts b/src/@types/settings.d.ts index 8b4f218..762da56 100644 --- a/src/@types/settings.d.ts +++ b/src/@types/settings.d.ts @@ -61,8 +61,6 @@ export interface Settings { startMinimized: boolean; keybinds: Keybind[]; hardwareAcceleration: boolean; - /** Rewrite H.264 Constrained Baseline (42e0) → Baseline (4200) in WebRTC SDP for HW encode. */ - sdpH264BaselineRewrite: boolean; useMacSystemPicker: boolean; inviteWebsocket: boolean; disableAutogain: boolean; diff --git a/src/common/config.ts b/src/common/config.ts index 955330a..921cfb2 100644 --- a/src/common/config.ts +++ b/src/common/config.ts @@ -12,7 +12,7 @@ let configCache: Settings | null = null; let configCacheTime = 0; const CONFIG_CACHE_TTL = 5000; // Cache for 5 seconds const defaults: Settings = { - windowStyle: "overlay", + windowStyle: "default", channel: "stable", bounceOnPing: false, csp: "none", @@ -34,12 +34,11 @@ const defaults: Settings = { loopbackType: "loopback", }, multiInstance: false, - mods: [], + mods: ["vencord"], transparency: "none", windowMaterial: "mica", spellcheck: true, hardwareAcceleration: true, - sdpH264BaselineRewrite: true, performanceMode: "none", skipSplash: false, inviteWebsocket: true, @@ -82,7 +81,6 @@ const safeMode: Settings = { windowStyle: "native", csp: "vanilla", hardwareAcceleration: false, - sdpH264BaselineRewrite: false, disableHttpCache: true, vaapi: false, additionalArguments: "", @@ -122,11 +120,6 @@ export function getConfig(object: K): Settings[K] { configCacheTime = now; return returnData[object]; } - -/** True when the settings toggle is on or `--start-minimized` was passed for this session. */ -export function shouldStartMinimized(): boolean { - return process.argv.includes("--start-minimized") || getConfig("startMinimized") === true; -} export function setConfig(object: K, toSet: Settings[K]): void { const rawData = readFileSync(getConfigLocation(), "utf-8"); const parsed = JSON.parse(rawData) as Settings; diff --git a/src/dbus.ts b/src/dbus.ts index ea25a0e..9446f5a 100644 --- a/src/dbus.ts +++ b/src/dbus.ts @@ -1,13 +1,7 @@ import { existsSync, mkdirSync, writeFileSync } from "node:fs"; import { homedir } from "node:os"; import { join } from "node:path"; -import { - interface as dbusInterface, - type MessageBus, - type ProxyInterface, - sessionBus, - Variant, -} from "@jellybrick/dbus-next"; +import { interface as dbusInterface, type ProxyInterface, sessionBus, Variant } from "@jellybrick/dbus-next"; import { ACTION_FRIENDLY_NAMES, EXCLUDED_FROM_SHORTCUTS, ValidActions } from "./common/commandDefinitions"; import { handleAction, isValidAction } from "./common/handleCommands"; @@ -19,8 +13,6 @@ export const DBUS_ADDRESS = "/app/legcord/Legcord"; const FREEDESKTOP_PORTAL_NAME = "org.freedesktop.portal.Desktop"; const FREEDESKTOP_PORTAL_ADDRESS = "/org/freedesktop/portal/desktop"; -const isLinux = process.platform === "linux"; - // https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.GlobalShortcuts.html type Shortcuts = [string, { description: Variant }]; interface GlobalShortcuts extends ProxyInterface { @@ -82,16 +74,8 @@ class LegcordInterface extends Interface { } } -let bus: MessageBus | undefined; -let legcordInterface: LegcordInterface | undefined; - -function getBus(): MessageBus { - if (!bus) { - bus = sessionBus(); - legcordInterface = new LegcordInterface(); - } - return bus; -} +const bus = sessionBus(); +var legcordInterface = new LegcordInterface(); function ensureDesktopFile(): void { const dir = join(homedir(), ".local/share/applications"); @@ -104,18 +88,14 @@ function ensureDesktopFile(): void { function registerAppId(): Promise { ensureDesktopFile(); // we need a desktop file at XDG_PATH so we can associate with legcord's app_id - return getBus() - .getProxyObject("org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop") - .then((portalObj) => { - const registry: RegistryInterface = portalObj.getInterface("org.freedesktop.host.portal.Registry"); - return registry.Register(DBUS_INTERFACE_NAME, {}); - }); + return bus.getProxyObject("org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop").then((portalObj) => { + const registry: RegistryInterface = portalObj.getInterface("org.freedesktop.host.portal.Registry"); + return registry.Register(DBUS_INTERFACE_NAME, {}); + }); } export async function setupGlobalShortcuts() { - if (!isLinux) return; - - const portalObj = await getBus().getProxyObject(FREEDESKTOP_PORTAL_NAME, FREEDESKTOP_PORTAL_ADDRESS); + const portalObj = await bus.getProxyObject(FREEDESKTOP_PORTAL_NAME, FREEDESKTOP_PORTAL_ADDRESS); const properties: PropertiesInterface = portalObj.getInterface("org.freedesktop.DBus.Properties"); const globalShortcuts: GlobalShortcuts = portalObj.getInterface("org.freedesktop.portal.GlobalShortcuts"); @@ -128,19 +108,17 @@ export async function setupGlobalShortcuts() { console.debug(`Registered ${DBUS_INTERFACE_NAME} in freedesktop Registry.`); function awaitResponse(requestPath: string): Promise> { - return getBus() - .getProxyObject(FREEDESKTOP_PORTAL_NAME, requestPath) - .then( - (requestObj) => - new Promise>((resolve, reject) => { - const requestIface = requestObj.getInterface("org.freedesktop.portal.Request"); + return bus.getProxyObject(FREEDESKTOP_PORTAL_NAME, requestPath).then( + (requestObj) => + new Promise>((resolve, reject) => { + const requestIface = requestObj.getInterface("org.freedesktop.portal.Request"); - requestIface.once("Response", (responseCode: number, results: Record) => { - if (responseCode === 0) resolve(results); - else reject(new Error(`Request failed with code ${responseCode}`)); - }); - }), - ); + requestIface.once("Response", (responseCode: number, results: Record) => { + if (responseCode === 0) resolve(results); + else reject(new Error(`Request failed with code ${responseCode}`)); + }); + }), + ); } const sessionRequestPath = await globalShortcuts.CreateSession({ @@ -168,19 +146,13 @@ export async function setupGlobalShortcuts() { } export async function startDbusService(): Promise { - if (!isLinux) return; - - const dbus = getBus(); - await dbus.requestName(DBUS_INTERFACE_NAME); - dbus.export(DBUS_ADDRESS, legcordInterface!); + await bus.requestName(DBUS_INTERFACE_NAME); + bus.export(DBUS_ADDRESS, legcordInterface); console.info(`Registered DBus service at ${DBUS_INTERFACE_NAME} ${DBUS_ADDRESS}`); // console.debug(legcordInterface) } export function disconnectDbusService(): void { - if (!bus) return; bus.disconnect(); - bus = undefined; - legcordInterface = undefined; } diff --git a/src/discord/ipc.ts b/src/discord/ipc.ts index cbd4a75..04e3419 100644 --- a/src/discord/ipc.ts +++ b/src/discord/ipc.ts @@ -18,7 +18,7 @@ import { unblacklistGame as blacklistGameRemove, getBlacklist, } from "../common/blacklistGame.js"; -import { getConfig, getConfigLocation, setConfig, setConfigBulk, shouldStartMinimized } from "../common/config.js"; +import { getConfig, getConfigLocation, setConfig, setConfigBulk } from "../common/config.js"; import { addDetectable, getDetectables, removeDetectable } from "../common/detectables.js"; import { getLang, getLangName, getRawLang, setLang } from "../common/lang.js"; import { @@ -217,8 +217,8 @@ export function registerIpc(passedWindow: BrowserWindow): void { }); ipcMain.on("splashEnd", () => { - splashWindow?.close(); - if (shouldStartMinimized()) { + splashWindow.close(); + if (getConfig("startMinimized")) { passedWindow.hide(); } else { passedWindow.show(); diff --git a/src/discord/preload/patches.mts b/src/discord/preload/patches.mts index c984a68..6e37695 100644 --- a/src/discord/preload/patches.mts +++ b/src/discord/preload/patches.mts @@ -36,11 +36,7 @@ const version = ipcRenderer.sendSync("displayVersion") as string; // Discord's Go Live answer forces profile-level-id=42e01f (OpenH264); local-only munging // is overwritten by setRemoteDescription, so the answer must be rewritten too. // Without this, Windows burns CPU on OpenH264 even when Media Foundation HW encode is available. -// Gated by settings.sdpH264BaselineRewrite (default on) so users can disable if negotiation breaks. { - const rewriteBaselineSetting = ipcRenderer.sendSync("getConfig", "sdpH264BaselineRewrite") as boolean | undefined; - const preferHwH264 = - (process.platform === "darwin" || process.platform === "win32") && (rewriteBaselineSetting ?? true); const bitrateScript = document.createElement("script"); bitrateScript.textContent = `(function () { var CAP = "80000"; @@ -49,7 +45,7 @@ const version = ipcRenderer.sendSync("displayVersion") as string; var MIN_BR = "3000"; var START_BR = "3000"; // VideoToolbox (macOS) and Media Foundation (Windows) HW encode avoid OpenH264 CBP. - var preferHwH264 = ${preferHwH264 ? "true" : "false"}; + var preferHwH264 = ${process.platform === "darwin" || process.platform === "win32" ? "true" : "false"}; function setOrAppendFmtpParam(sdp, key, value) { var re = new RegExp(key + "=\\\\d+", "g"); if (sdp.indexOf(key + "=") !== -1) { diff --git a/src/discord/window.ts b/src/discord/window.ts index 3fb7724..7cb529d 100644 --- a/src/discord/window.ts +++ b/src/discord/window.ts @@ -14,7 +14,7 @@ import { shell, } from "electron"; import contextMenu from "electron-context-menu"; -import { firstRun, getConfig, setConfig, shouldStartMinimized } from "../common/config.js"; +import { firstRun, getConfig, setConfig } from "../common/config.js"; import { navigateTo } from "../common/dom.js"; import { forceQuit, setForceQuit } from "../common/forceQuit.js"; import { handleCommands, passedValidArgument } from "../common/handleCommands.js"; @@ -474,13 +474,8 @@ function doAfterDefiningTheWindow(passedWindow: BrowserWindow): void { break; } - // When splash won't run, finalize visibility here (splashEnd never fires). - if (getConfig("skipSplash") || shouldStartMinimized()) { - if (shouldStartMinimized()) { - passedWindow.hide(); - } else { - passedWindow.show(); - } + if (getConfig("skipSplash")) { + passedWindow.show(); } } diff --git a/src/main.ts b/src/main.ts index ba1b0cd..fb35c9e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -15,7 +15,6 @@ import { setConfig, setFirstRun, setup, - shouldStartMinimized, } from "./common/config.js"; import { getPreset } from "./common/flags.js"; import { setLang } from "./common/lang.js"; @@ -109,9 +108,7 @@ function args(): void { export async function init(): Promise { // Skip setup if bypass flag was used if (bypassSetup || !(firstRun === true || undefined)) { - // Splash owns the final show/hide via splashEnd; skip it when splash is disabled - // or when we intentionally start in the background. - if (getConfig("skipSplash") === false && !shouldStartMinimized()) { + if (getConfig("skipSplash") === false) { void createSplashWindow(); // NOTE - Awaiting will hang at start } createWindow(); diff --git a/src/setup/main.ts b/src/setup/main.ts index 948dc6c..697c8c1 100644 --- a/src/setup/main.ts +++ b/src/setup/main.ts @@ -12,8 +12,8 @@ export async function createSetupWindow(): Promise { if (platform() !== "darwin") import("./tray.js"); return new Promise(() => { const windowOptions: BrowserWindowConstructorOptions = { - width: 840, - height: 720, + width: 800, + height: 600, title: getLang("setup-windowTitle"), darkTheme: true, icon: getConfig("customIcon") ?? path.join(import.meta.dirname, "../", "/assets/desktop.png"), diff --git a/src/setup/preload.mts b/src/setup/preload.mts index b734e48..b4d89d4 100644 --- a/src/setup/preload.mts +++ b/src/setup/preload.mts @@ -15,7 +15,17 @@ contextBridge.exposeInMainWorld("setup", { if (ipcRenderer.sendSync("setup-getOS") !== "darwin") { document.addEventListener("DOMContentLoaded", () => { - document.body.classList.add("has-setup-bg"); + const css = document.createElement("style"); + css.innerHTML = `.bg { + background-image: url("legcord://assets/mockup.jpg"); + background-repeat: round; + height: 100%; + width: 100%; + position: absolute; + outline: 80px solid black; + -webkit-filter: blur(10px); + }`; + document.head.appendChild(css); }); } diff --git a/src/setup/setup.css b/src/setup/setup.css deleted file mode 100644 index 4231b3a..0000000 --- a/src/setup/setup.css +++ /dev/null @@ -1,488 +0,0 @@ -:root { - --font-primary: "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - --font-display: "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - --font-headline: "ABC Ginto Nord", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - --font-weight-normal: 400; - --font-weight-medium: 500; - --font-weight-semibold: 600; - --font-weight-bold: 700; - --font-weight-extrabold: 800; - --saturation-factor: 1; - - /* Soft Legcord purple accents (kept quiet) */ - --setup-purple: var(--blurple-50); - --setup-purple-soft: rgba(88, 101, 242, 0.14); - --setup-purple-glow: rgba(114, 137, 218, 0.18); - - /* Discord Mana tokens (from stable web stylesheets / theme-dark) */ - --blurple-50-hsl: 234.935 calc(var(--saturation-factor, 1) * 85.556%) 64.706%; - --blurple-60-hsl: 232.941 calc(var(--saturation-factor, 1) * 46.667%) 50%; - --blurple-65-hsl: 232 calc(var(--saturation-factor, 1) * 47.511%) 43.333%; - --blurple-50: hsl(var(--blurple-50-hsl) / 1); - --blurple-60: hsl(var(--blurple-60-hsl) / 1); - --blurple-65: hsl(var(--blurple-65-hsl) / 1); - --neutral-1: #fff; - --opacity-white-8: hsl(0 0% 100% / 0.0784313725490196); - --opacity-4: hsl(0 0% 100% / 0.0392156862745098); - --opacity-12: hsl(0 0% 100% / 0.12156862745098039); - --opacity-16: hsl(0 0% 100% / 0.1607843137254902); - --opacity-20: hsl(0 0% 100% / 0.2); - - /* shelter-ui → Discord Mana control colors */ - --control-primary-background-default: var(--blurple-50); - --control-primary-background-hover: var(--blurple-60); - --control-primary-background-active: var(--blurple-65); - --control-primary-text-default: var(--neutral-1); - --control-primary-text-hover: var(--neutral-1); - --control-primary-text-active: var(--neutral-1); - --control-primary-border-default: var(--opacity-white-8); - --control-primary-border-hover: var(--opacity-white-8); - --control-primary-border-active: var(--opacity-white-8); - - --control-secondary-background-default: var(--opacity-12); - --control-secondary-background-hover: var(--opacity-16); - --control-secondary-background-active: var(--opacity-20); - --control-secondary-text-default: var(--neutral-1); - --control-secondary-text-hover: var(--neutral-1); - --control-secondary-text-active: var(--neutral-1); - --control-secondary-border-default: var(--opacity-4); - --control-secondary-border-hover: var(--opacity-4); - --control-secondary-border-active: var(--opacity-4); - - --custom-button-transition-duration: 170ms; -} - -*, -*::before, -*::after { - box-sizing: border-box; -} - -html, -body { - margin: 0; - height: 100%; - overflow: hidden; - font-family: var(--font-primary); - background: #1e1f22; - color: var(--text-default); - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; -} - -.draggable { - position: absolute; - top: 0; - width: 100%; - height: 40px; - -webkit-user-select: none; - user-select: none; - -webkit-app-region: drag; - z-index: 10; -} - -.bg { - position: absolute; - inset: 0; - background: - radial-gradient(ellipse 70% 50% at 50% -8%, var(--setup-purple-glow), transparent 58%), - radial-gradient(ellipse 40% 35% at 0% 100%, rgba(88, 101, 242, 0.08), transparent 55%), #1e1f22; -} - -body.has-setup-bg .bg { - background-image: - linear-gradient(180deg, rgba(30, 31, 34, 0.75), rgba(30, 31, 34, 0.9)), - radial-gradient(ellipse 60% 40% at 50% 0%, var(--setup-purple-glow), transparent 60%), - url("legcord://assets/mockup.jpg"); - background-size: cover; - background-position: center; - filter: none; -} - -body.has-setup-bg .bg::after { - content: ""; - position: absolute; - inset: 0; - backdrop-filter: blur(18px); - background: rgba(30, 31, 34, 0.32); -} - -#root { - position: relative; - z-index: 1; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - padding: 28px; -} - -.setup-shell { - position: relative; - width: 100%; - max-width: 560px; - max-height: calc(100vh - 56px); - display: flex; - flex-direction: column; - background: var(--modal-background, #313338); - border-radius: 12px; - box-shadow: - 0 0 0 1px rgba(0, 0, 0, 0.3), - 0 0 0 1px var(--setup-purple-soft), - 0 12px 28px rgba(0, 0, 0, 0.4); - overflow: hidden; -} - -.setup-shell::before { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - height: 2px; - background: linear-gradient(90deg, transparent, var(--setup-purple) 35%, var(--setup-purple) 65%, transparent); - opacity: 0.55; - pointer-events: none; - z-index: 2; -} - -.setup-progress { - display: flex; - gap: 4px; - padding: 16px 20px 0; -} - -.setup-progress-segment { - flex: 1; - height: 4px; - border-radius: 2px; - background: rgba(88, 101, 242, 0.16); - transition: background 0.15s ease; -} - -.setup-progress-segment--done, -.setup-progress-segment--active { - background: var(--setup-purple); -} - -.setup-body { - padding: 22px 24px 14px; - overflow-y: auto; - flex: 1; - min-height: 0; -} - -.setup-footer { - display: flex; - align-items: center; - justify-content: space-between; - gap: 12px; - padding: 16px 24px; - background: var(--modal-footer-background, #2b2d31); - border-top: 1px solid rgba(0, 0, 0, 0.25); -} - -.setup-step-indicator { - color: var(--header-secondary); - font-family: var(--font-primary); - font-size: 12px; - font-weight: var(--font-weight-medium); - letter-spacing: 0.02em; - line-height: 16px; - white-space: nowrap; -} - -.setup-header { - margin-bottom: 20px; -} - -.setup-title { - margin: 0; - color: var(--header-primary, #f2f3f5); - font-family: var(--font-display); - font-size: 20px; - font-weight: var(--font-weight-semibold); - letter-spacing: 0.01em; - line-height: 1.2; -} - -.setup-title--hero { - font-size: 32px; - font-weight: var(--font-weight-bold); - line-height: 1.15; -} - -.setup-subtitle { - display: block; - margin: 8px 0 0; - color: var(--header-secondary, #b5bac1); - font-family: var(--font-primary); - font-size: 14px; - font-weight: var(--font-weight-normal); - line-height: 20px; - letter-spacing: 0; -} - -.setup-subtitle--hero { - margin-top: 10px; - margin-bottom: 24px; - max-width: 360px; - font-size: 16px; - line-height: 22px; -} - -.setup-welcome, -.setup-finish { - display: flex; - flex-direction: column; - align-items: center; - text-align: center; - padding: 24px 8px 28px; -} - -.setup-logo { - width: 88px; - height: 88px; - margin-bottom: 20px; - border-radius: 22px; - object-fit: cover; - box-shadow: - 0 0 0 1px rgba(88, 101, 242, 0.22), - 0 10px 28px rgba(0, 0, 0, 0.4), - 0 0 32px rgba(88, 101, 242, 0.18); -} - -.setup-finish-icon { - width: 64px; - height: 64px; - margin-bottom: 18px; -} - -.setup-finish-icon svg { - width: 100%; - height: 100%; - display: block; - filter: drop-shadow(0 6px 16px rgba(88, 101, 242, 0.35)); -} - -.setup-cta { - margin-top: 4px; - max-width: 100%; - font-family: var(--font-primary); - font-weight: var(--font-weight-medium); - letter-spacing: 0; - transition: - background-color var(--custom-button-transition-duration) ease, - color var(--custom-button-transition-duration) ease, - border-color var(--custom-button-transition-duration) ease; -} - -.setup-footer-btn { - font-family: var(--font-primary); - font-weight: var(--font-weight-medium); - transition: - background-color var(--custom-button-transition-duration) ease, - color var(--custom-button-transition-duration) ease, - border-color var(--custom-button-transition-duration) ease; -} - -.setup-note { - width: 100%; - margin: 0 0 22px; - padding: 12px 14px; - border-radius: 8px; - background: color-mix(in srgb, var(--setup-purple) 6%, var(--background-secondary, #2b2d31)); - border: 1px solid rgba(88, 101, 242, 0.12); - color: var(--header-secondary); - text-align: left; -} - -.setup-note p { - margin: 0; - font-family: var(--font-primary); - font-size: 14px; - line-height: 20px; - color: var(--header-secondary); -} - -.setup-options { - display: flex; - flex-direction: column; - gap: 8px; - padding-bottom: 8px; -} - -.setup-option { - display: flex; - align-items: center; - gap: 14px; - width: 100%; - padding: 12px; - border-radius: 8px; - border: 1px solid transparent; - background: var(--background-secondary, #2b2d31); - color: inherit; - text-align: left; - cursor: pointer; - font-family: var(--font-primary); - outline: none; - transition: - background 0.1s ease-out, - border-color 0.1s ease-out, - box-shadow 0.1s ease-out; - -webkit-app-region: no-drag; -} - -.setup-option:hover { - background: var(--background-surface-high, #393a41); -} - -.setup-option:focus-visible { - box-shadow: 0 0 0 2px var(--setup-purple); -} - -.setup-option--selected { - background: color-mix(in srgb, var(--setup-purple) 14%, var(--background-secondary, #2b2d31)); - border-color: color-mix(in srgb, var(--setup-purple) 55%, transparent); - box-shadow: inset 0 0 0 1px rgba(88, 101, 242, 0.2); -} - -.setup-option--selected:hover { - background: color-mix(in srgb, var(--setup-purple) 20%, var(--background-secondary, #2b2d31)); -} - -.setup-option-preview { - width: 128px; - height: 80px; - border-radius: 6px; - overflow: hidden; - flex-shrink: 0; - background: var(--input-background, #1e1f22); - box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.3); -} - -.setup-option-preview img { - width: 100%; - height: 100%; - object-fit: cover; - display: block; -} - -.setup-option-icon { - width: 44px; - height: 44px; - border-radius: 10px; - overflow: hidden; - flex-shrink: 0; - background: var(--input-background, #1e1f22); - display: flex; - align-items: center; - justify-content: center; - box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04); -} - -.setup-option-icon--selected { - background: color-mix(in srgb, var(--setup-purple) 18%, var(--input-background, #1e1f22)); -} - -.setup-option-icon img { - width: 100%; - height: 100%; - object-fit: contain; - display: block; -} - -.setup-option-content { - flex: 1; - min-width: 0; - display: flex; - flex-direction: column; - gap: 2px; -} - -.setup-option-title-row { - display: flex; - align-items: center; - gap: 8px; - flex-wrap: wrap; -} - -.setup-option-title { - color: var(--header-primary, #f2f3f5); - font-family: var(--font-primary); - font-size: 16px; - font-weight: var(--font-weight-semibold); - line-height: 20px; - letter-spacing: 0.01em; -} - -.setup-option-desc { - color: var(--header-secondary, #b5bac1); - font-family: var(--font-primary); - font-size: 14px; - font-weight: var(--font-weight-normal); - line-height: 18px; -} - -.setup-badge { - display: inline-flex; - align-items: center; - padding: 2px 6px; - border-radius: 3px; - background: var(--setup-purple); - color: #fff; - font-family: var(--font-primary); - font-size: 10px; - font-weight: var(--font-weight-bold); - letter-spacing: 0.04em; - text-transform: uppercase; - line-height: 14px; -} - -.setup-radio { - width: 20px; - height: 20px; - border-radius: 50%; - border: 2px solid var(--interactive-normal); - flex-shrink: 0; - display: flex; - align-items: center; - justify-content: center; - transition: - border-color 0.1s ease-out, - background 0.1s ease-out; -} - -.setup-radio--selected { - border-color: var(--setup-purple); - background: var(--setup-purple); -} - -.setup-radio-dot { - width: 8px; - height: 8px; - border-radius: 50%; - background: #fff; -} - -.setup-warning { - display: flex; - align-items: flex-start; - gap: 10px; - margin-bottom: 12px; - padding: 12px 14px; - border-radius: 8px; - background: rgba(240, 178, 50, 0.1); - border: 1px solid rgba(240, 178, 50, 0.28); - color: #f0b232; - font-family: var(--font-primary); - font-size: 14px; - line-height: 18px; -} - -.setup-warning-icon { - flex-shrink: 0; - width: 18px; - height: 18px; - margin-top: 1px; -} diff --git a/src/setup/setup.html b/src/setup/setup.html index 166abff..5347bc2 100644 --- a/src/setup/setup.html +++ b/src/setup/setup.html @@ -4,8 +4,18 @@ Legcord Setup - - + +
@@ -13,4 +23,4 @@
- + \ No newline at end of file diff --git a/src/setup/setup.tsx b/src/setup/setup.tsx index d1fb686..29c8d14 100644 --- a/src/setup/setup.tsx +++ b/src/setup/setup.tsx @@ -1,167 +1,122 @@ -import { Button, ButtonColors, ButtonSizes, injectInternalStyles, niceScrollbarsClass } from "@uwu/shelter-ui"; -import { type Accessor, createMemo, createResource, createSignal, For, onMount, Show } from "solid-js"; +import { + Box, + ChevronLeft, + ChevronRight, + CircleAlert, + LaptopMinimal, + LaptopMinimalCheck, + MinimizeIcon, + Monitor, + PuzzleIcon, + Settings, + Sparkles, +} from "lucide-solid"; +import { createResource, createSignal, For, Show } from "solid-js"; import { render } from "solid-js/web"; import { Motion } from "solid-motionone"; -injectInternalStyles(); - -type Lang = Record | undefined; - -const ctaStyle = { - "--shltr-btn-w": "280px", - "--shltr-btn-h": "44px", - "font-size": "16px", - "line-height": "20px", - padding: "2px 24px", -} as const; - -const footerBtnStyle = { - "--shltr-btn-w": "96px", - "--shltr-btn-h": "38px", -} as const; - -const WarningIcon = () => ( - -); - -const OptionCard = (props: { - selected: boolean; - onSelect: () => void; - title: string; - description: string; - badge?: string; - preview?: string; - icon?: string; -}) => ( - -); - -const Progress = (props: { current: number; total: number }) => ( -