diff --git a/.cargo/config.toml b/.cargo/config.toml deleted file mode 100644 index fc6e856d..00000000 --- a/.cargo/config.toml +++ /dev/null @@ -1,5 +0,0 @@ -[target.'cfg(windows)'] -rustflags = [ - "-C", - "link-args=/STACK:16777220" -] diff --git a/.cargo/config.toml.mustache b/.cargo/config.toml.mustache new file mode 100644 index 00000000..eadb9f9f --- /dev/null +++ b/.cargo/config.toml.mustache @@ -0,0 +1,38 @@ +{{#isMacOS}} +[target.x86_64-apple-darwin] +rustflags = ["-Csplit-debuginfo=unpacked"] + +[target.aarch64-apple-darwin] +rustflags = ["-Csplit-debuginfo=unpacked"] +{{/isMacOS}} + +{{#isWin}} +[target.'cfg(windows)'] +rustflags = [ + "-C", + "link-args=/STACK:16777220" +] + +[target.x86_64-pc-windows-msvc] +{{#hasLLD}} +linker = "lld-link.exe" +{{/hasLLD}} +{{/isWin}} + +{{#isLinux}} +[target.x86_64-unknown-linux-gnu] +{{#hasLLD}} +linker = "clang" +rustflags = ["-C", "link-args=-fuse-ld={{{linker}}}"] +{{/hasLLD}} + +[[target.aarch64-unknown-linux-gnu]] +{{#hasLLD}} +linker = "clang" +rustflags = ["-C", "link-args=-fus-ld={{{linker}}}"] +{{/hasLLD}} +{{/isLinux}} + +{{#hasAlias}} +prisma = "run -p prisma-cli --bin prisma --" +{{/hasAlias}} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14da764f..11c306cb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -144,7 +144,7 @@ jobs: - name: Prepare Target uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 continue-on-error: true - id: filter + id: preparation with: filters: | changes: @@ -160,13 +160,13 @@ jobs: - '.github/workflows/build.yml' - name: Setup System - if: steps.filter.outcome != 'success' || steps.filter.outputs.changes == 'true' + if: steps.preparation.outcome != 'success' || steps.preparation.outputs.changes == 'true' uses: ./.github/actions/setup-system with: token: ${{ secrets.GITHUB_TOKEN }} - name: Run Clippy - if: steps.filter.outcome != 'success' || steps.filter.outputs.changes == 'true' + if: steps.preparation.outcome != 'success' || steps.preparation.outputs.changes == 'true' uses: ./.github/actions/clippy with: reporter: github-pr-review diff --git a/.gitignore b/.gitignore index f974d7e4..94cbe834 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ dev.db-journal # .env* vendor/ vender/ +.cargo/config.toml # Created by https://www.toptal.com/developers/gitignore/api/git,node,rust,yarn,linux,macos,windows,rust-analyzer,visualstudiocode,intellij+all # Edit at https://www.toptal.com/developers/gitignore?templates=git,node,rust,yarn,linux,macos,windows,rust-analyzer,visualstudiocode,intellij+all diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 4d9ddbf5..030db4a5 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,12 +1,12 @@ { "recommendations": [ - "tauri-apps.tauri-vscode", - "rust-lang.rust-analyzer", - "vadimcn.vscode-lldb", - "oscarbeaumont.rspc-vscode", - "antfu.unocss", - "EditorConfig.EditorConfig", - "prisma.prisma", - "dbaeumer.vscode-eslint" + "tauri-apps.tauri-vscode", // Provides Tauri framework support. + "rust-lang.rust-analyzer", // Provides Rust language support. + "vadimcn.vscode-lldb", // Provides Rust debugging support. + "oscarbeaumont.rspc-vscode", // RSPC is a framework for Routers. + "antfu.unocss", // Provides UnoCSS intellisense. + "EditorConfig.EditorConfig", // Maintains consistent coding styles. + "prisma.prisma", // Prisma is an open-source ORM database toolkit. + "dbaeumer.vscode-eslint" // Code formatting using ESLint. ] } diff --git a/.vscode/launch.json b/.vscode/launch.json index 72f6a690..2054d910 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,18 +9,49 @@ "request": "launch", "name": "Tauri Development", "cargo": { - "args": ["build", "--package onelauncher_gui"] + "args": [ + "build", + "--profile=dev-debug", + "--manifest-path=./apps/desktop/Cargo.toml", + "--no-default-features" + ], + "problemMatcher": "$rustc" }, - "preLaunchTask": "desktop:frontend:dev" + "env": { + "RUST_BACKTRACE": "short" + // "RUST_LOG": "onelauncher=trace" + }, + "sourceLanguages": ["rust"], + "preLaunchTask": "frontend:dev" }, { "type": "lldb", "request": "launch", "name": "Tauri Production", "cargo": { - "args": ["build", "--package onelauncher_gui", "--release"] + "args": [ + "build", + "--release", + "--manifest-path=./apps/desktop/Cargo.toml" + ], + "problemMatcher": "$rustc" }, - "preLaunchTask": "desktop:frontend:build" + "sourceLanguages": ["rust"], + "preLaunchTask": "frontend:build" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug Core", + "cargo": { + "args": ["test", "--no-run", "--lib", "--package=onelauncher"], + "filter": { + "name": "onelauncher", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 6f998f10..db4729d8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -39,6 +39,11 @@ ".crates" ], "rust-analyzer.procMacro.enable": true, + "rust-analyzer.diagnostics.experimental.enable": false, + "rust-analyzer.linkedProjects": [], + "rust-analyzer.cargo.extraEnv": {}, + "rust-analyzer.check.targets": null, + "rust-analyzer.showUnlinkedFileNotification": false, "search.exclude": { "**/node_modules": true, "**/bower_components": true, diff --git a/.vscode/tasks.json b/.vscode/tasks.json index fb8a7de1..d39bc396 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,20 +4,80 @@ "version": "2.0.0", "tasks": [ { - "label": "desktop:frontend:dev", - "type": "shell", - "isBackground": true, - "command": "pnpm", - "args": ["frontend", "dev"], - // todo: problemMatcher - "group": "build" + "type": "cargo", + "command": "clippy", + "problemMatcher": ["$rustc"], + "group": { + "kind": "build", + "isDefault": true + }, + "label": "rust:clippy", + "args": ["--all-targets", "--all-features", "--all"] + }, + { + "type": "npm", + "script": "prepare", + "label": "pnpm:prep", + "group": "none", + "problemMatcher": ["$rustc"] }, { - "label": "desktop:frontend:build", "type": "shell", + "label": "start", + "command": "sh", + "args": ["-c", "'pnpm i && pnpm prepare'"], + "problemMatcher": ["$tsc-watch", "$rustc"] + }, + { + "type": "shell", + "label": "frontend:dev", + "problemMatcher": { + "base": "$tsc-watch", + "background": { + "activeOnStart": true, + "beginsPattern": "VITE v", + "endsPattern": "http://localhost:8001/" + } + }, + "isBackground": true, "command": "pnpm", - "args": ["frontend", "build"], - "group": "build" + "args": ["frontend", "dev", "--mode=development"], + "runOptions": { + "instanceLimit": 1 + } + }, + { + "type": "shell", + "label": "frontend:build", + "problemMatcher": "$tsc", + "command": "pnpm", + "args": ["frontend", "build"] + }, + { + "type": "cargo", + "command": "run", + "args": ["--manifest-path=./apps/desktop/Cargo.toml", "--no-default-features"], + "env": { + "RUST_BACKTRACE": "short" + // "RUST_LOG": "onelauncher=trace" + }, + "problemMatcher": ["$rustc"], + "group": "build", + "label": "rust:run", + "dependsOn": ["frontend:dev"] + }, + { + "type": "cargo", + "command": "run", + "args": ["--manifest-path=./apps/desktop/Cargo.toml", "--release"], + "env": { + "RUST_BACKTRACE": "short" + // "RUST_LOG": "onelauncher=trace" + }, + "problemMatcher": ["$rustc"], + "group": "build", + "label": "rust:run release", + "dependsOn": ["frontend:build"] } ] } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 12006e69..0482336f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,6 +45,7 @@ To make changes locally, follow these steps: 3. For Windows users, run in PowerShell: `.\packages\scripts\setup.ps1` > The [Unix script] will install pnpm, LLVM, C++ build tools, NASM, Rust + Cargo, Rust tools, Edge Webview 2, [Tauri essentials] and any other required dependencies for OneLauncher to build. 4. Install dependencies: `pnpm i` +5. Prepare your cargo installation: `pnpm prep` To quickly run only the desktop app after `prep`, you can use: diff --git a/Cargo.lock b/Cargo.lock index 2209154b..ba73d8c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4086,9 +4086,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" dependencies = [ "bytes", "pin-project-lite", @@ -4096,6 +4096,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", + "socket2", "thiserror", "tokio", "tracing", @@ -4103,9 +4104,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.3" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe" +checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" dependencies = [ "bytes", "rand 0.8.5", @@ -4127,6 +4128,7 @@ dependencies = [ "libc", "once_cell", "socket2", + "tracing", "windows-sys 0.52.0", ] @@ -4454,9 +4456,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustc_version" diff --git a/eslint.config.ts b/eslint.config.js similarity index 96% rename from eslint.config.ts rename to eslint.config.js index f4161e18..821e73a9 100644 --- a/eslint.config.ts +++ b/eslint.config.js @@ -1,3 +1,4 @@ +// @ts-check import { defineConfig } from '@flowr/eslint-config'; export default defineConfig({ diff --git a/package.json b/package.json index 1b2a8dd7..e932cf8d 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "node": ">=18" }, "scripts": { + "prep": "pnpm --filter=@onelauncher/scripts -- int:prepare", "build": "pnpm --filter=./* run build", "dev": "pnpm --filter=./* run dev", "start": "pnpm --filter=./* run start", @@ -34,6 +35,7 @@ "core": "cd packages/core && cargo", "testing": "cd apps/testing && cargo", "tauri": "cd apps/desktop && cargo", + "test:vi": "pnpm vitest run", "test:update": "pnpm vitest -u", "test:ui": "pnpm vitest --ui", @@ -50,14 +52,13 @@ ] }, "devDependencies": { - "@flowr/eslint-config": "^3.10.4", + "@flowr/eslint-config": "^3.10.5", "@types/node": "^22.1.0", "@vitest/ui": "^2.0.5", "bumpp": "^9.4.2", "changelogen": "^0.5.5", - "eslint": "npm:eslint-ts-patch@9.8.0-1", + "eslint": "^9.8.0", "eslint-plugin-solid": "^0.14.1", - "eslint-ts-patch": "9.8.0-1", "ts-node": "^10.9.2", "tsx": "~4.16.5", "typescript": "^5.5.4", diff --git a/packages/scripts/fix-deb.sh b/packages/scripts/fix-deb.sh new file mode 100755 index 00000000..c75976bd --- /dev/null +++ b/packages/scripts/fix-deb.sh @@ -0,0 +1,116 @@ +#!/usr/bin/env bash + +set -eEuo pipefail + +if [ "${CI:-}" = "true" ]; then + set -x +fi + +if [ "$(id -u)" -ne 0 ]; then + echo "this script requires root privileges:" >&2 + exec sudo -E env _UID="$(id -u)" _GID="$(id -g)" "$0" "$@" +fi + +echo "fixing .deb onelauncher bundle..." >&2 + +umask 0 + +err() { + for _line in "$@"; do + echo "$_line" >&2 + done + exit 1 +} + +has() { + for prog in "$@"; do + if ! command -v "$prog" 1>/dev/null 2>&1; then + return 1 + fi + done +} + +if ! has tar curl gzip strip; then + err 'dependencies missing!' \ + "this script requires 'tar', 'curl', 'gzip' and 'strip' to be installed and available on \$PATH." +fi + +CDPATH='' cd -- "$(dirname "$0")" +_root="$(pwd -P)" + +if [ -n "${TARGET:-}" ]; then + cd "../target/${TARGET}/release/bundle/deb" || err 'failed to find deb bundle' +else + cd ../target/release/bundle/deb || err 'failed to find deb bundle' +fi + +_deb="$(find . -type f -name '*.deb' | sort -t '_' -k '2,2' -V | tail -n 1)" +rm -rf "$(basename "$_deb" .deb)" +cp "$_deb" "$_deb.bak" + +_tmp="$(mktemp -d)" +cleanup() { + _err=$? + rm -rf "$_tmp" + if [ $_err -ne 0 ]; then + mv "${_deb:?}.bak" "$_deb" + fi + + chown "${_UID:-0}:${_GID:-0}" "$_deb" 2>/dev/null || true + + rm -f "${_deb:?}.bak" + exit "$_err" +} +trap 'cleanup' EXIT + +ar x "$_deb" --output="$_tmp" +mkdir -p "${_tmp}/data" +tar -xzf "${_tmp}/data.tar.gz" -C "${_tmp}/data" +mkdir -p "${_tmp}/control" +tar -xzf "${_tmp}/control.tar.gz" -C "${_tmp}/control" +chown -R root:root "$_tmp" + +find "${_tmp}" -name 'onelauncher_gui' -o \( -type f -name 'onelauncher_gui.*' \) | while IFS= read -r file +do + filename="$(basename "$file")" + if [ "$filename" = "onelauncher_gui" ]; then + mv "$file" "$(dirname "$file")/onelauncher" + else + mv "$file" "$(dirname "$file")/onelauncher.${filename#*.}" + fi +done + +mkdir -p "$_tmp"/data/usr/share/{doc/onelauncher,man/man1} + +curl -LSs 'https://raw.githubusercontent.com/Polyfrost/OneLauncher/main/CHANGELOG.md' \ + | gzip -9 >"${_tmp}/data/usr/share/doc/onelauncher/changelog.gz" + +cp "${_root}/../../LICENSE" "${_tmp}/data/usr/share/doc/onelauncher/copyright" + +# TODO +# curl -LSs 'https://raw.githubusercontent.com/Polyfrost/OneLauncher/main/packages/distribution/onelauncher.1' \ +# | gzip -9 >"${_tmp}/data/usr/share/man/man1/onelauncher.1.gz" + +sed -i 's/^Categories=.*/Categories=Games;/' "${_tmp}/data/usr/share/applications/onelauncher.desktop" +sed -i 's/=onelauncher_gui/=onelauncher/' "${_tmp}/data/usr/share/applications/onelauncher.desktop" + +find "${_tmp}/data" -type d -exec chmod 755 {} + +find "${_tmp}/data" -type f -exec chmod 644 {} + +chmod 755 "${_tmp}/data/usr/bin/onelauncher" + +find "${_tmp}/data/usr/lib" -type f -name '*.so.*' -exec sh -euc \ + 'for _lib in "$@"; do _link="$_lib" && while { _link="${_link%.*}" && [ "$_link" != "${_lib%.so*}" ]; }; do if [ -f "$_link" ]; then ln -sf "$(basename "$_lib")" "$_link"; fi; done; done' \ + sh {} + + +find "${_tmp}/data/usr/bin" "${_tmp}/data/usr/lib" -type f -exec strip --strip-unneeded {} \; + +if ! grep -q '^Section:' "${_tmp}/control/control"; then + echo 'Section: contrib/games' >>"${_tmp}/control/control" +fi + +(cd "${_tmp}/data" && find . -type f -exec md5sum {} + >"${_tmp}/control/md5sums") + +find "${_tmp}/control" -type f -exec chmod 644 {} + +tar -czf "${_tmp}/data.tar.gz" -C "${_tmp}/data" . +tar -czf "${_tmp}/control.tar.gz" -C "${_tmp}/control" . +ar rcs "$_deb" "${_tmp}/debian-binary" "${_tmp}/control.tar.gz" "${_tmp}/data.tar.gz" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index d38ee3a4..6e398b8a 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -15,17 +15,20 @@ "main": "./src/index.ts", "types": "./src/index.ts", "scripts": { - "tauri": "pnpm tsx tauri.ts" + "tauri": "pnpm tsx tauri.ts", + "int:prepare": "pnpm tsx prepare.ts" }, "dependencies": { - "@flowr/utils": "^3.10.4", + "@flowr/utils": "^3.10.5", "execa": "^9.3.0", + "mustache": "^4.2.0", "pathe": "^1.1.2", "semver": "^7.6.3", "undici": "^6.19.5" }, "devDependencies": { "@types/iarna__toml": "^2.0.5", + "@types/mustache": "^4.2.5", "@types/semver": "^7.5.8" } } diff --git a/packages/scripts/prepare.ts b/packages/scripts/prepare.ts index 62cda4b5..d23333f4 100644 --- a/packages/scripts/prepare.ts +++ b/packages/scripts/prepare.ts @@ -1,9 +1,10 @@ -#!/usr/bin/env node - +import { readFile, writeFile } from 'node:fs/promises'; +import { join } from 'pathe'; +import mustache from 'mustache'; import { checkEnvironment, which } from './utils'; import { getTriple } from './utils/triple'; -checkEnvironment(import.meta); +const { __debug, __exit, __root } = checkEnvironment(import.meta); const triple = getTriple(); if ((await Promise.all([which`cargo`, which`rustc`, which`pnpm`])).some(f => !f)) @@ -18,3 +19,40 @@ if ((await Promise.all([which`cargo`, which`rustc`, which`pnpm`])).some(f => !f) packages/scripts/${triple[0] === 'Windows_NT' ? 'setup.ps1' : 'setup.sh'} `, ); + +console.log('generating cargo configuration file.'); +interface ConfigStore { hasAlias: boolean; isWin: boolean; isMacOS: boolean; isLinux: boolean; hasLLD: boolean | { linker: string } } +const configStore: ConfigStore = { hasAlias: false, isWin: false, isMacOS: false, isLinux: false, hasLLD: false }; +try { + switch (triple[0]) { + case 'Linux': + configStore.isLinux = true; + if (await which`clang`) + if (await which`mold`) + configStore.hasLLD = { linker: 'mold' }; + else if (await which`lld`) + configStore.hasLLD = { linker: 'lld' }; + break; + case 'Darwin': + configStore.isMacOS = true; + break; + case 'Windows_NT': + configStore.isWin = true; + configStore.hasLLD = await which`lld-link`; + break; + } + + const template = await readFile(join(__root, '.cargo', 'config.toml.mustache'), { encoding: 'utf8' }); + const rendered = mustache.render(template, configStore).replace(/\n{2,}/g, '\n'); + await writeFile(join(__root, '.cargo', 'config.toml'), rendered, { mode: 0o751, flag: 'w+' }); +} +catch (error) { + console.error(` + failed to generate .config/cargo.toml. + this is probably a bug, please open an issue with system info at + https://github.com/polyfrost/onelauncher/issues/new/choose + `); + if (__debug) + console.error(error); + __exit(1); +} diff --git a/packages/scripts/setup.sh b/packages/scripts/setup.sh index a8de4758..5c523109 100755 --- a/packages/scripts/setup.sh +++ b/packages/scripts/setup.sh @@ -3,175 +3,172 @@ set -euo pipefail if [ "${CI:-}" = "true" ]; then - set -x + set -x fi # displays an error message and exits the script err() { - for _line in "$@"; do - echo "$_line" >&2 - done - exit 1 + for _line in "$@"; do + echo "$_line" >&2 + done + exit 1 } -# checks if a command/program exists has() { - for prog in "$@"; do - if ! command -v "$prog" 1>/dev/null 2>&1; then - return 1 - fi - done + for prog in "$@"; do + if ! command -v "$prog" 1>/dev/null 2>&1; then + return 1 + fi + done } # runs a specified command with sudo sudo() { - if [ "$(id -u)" -eq 0 ]; then - "$@" - else - env sudo "$@" - fi + if [ "$(id -u)" -eq 0 ]; then + "$@" + else + env sudo "$@" + fi } # fails the script at a specific line with an unknown error script_failure() { - if [ -n "${1:-}" ]; then - _line="on line $1" - else - _line="(unknown)" - fi - err "An error occurred $_line." "Setup failed." + if [ -n "${1:-}" ]; then + _line="on line $1" + else + _line="(unknown)" + fi + err "an error occurred at $_line." "setup failed!" } trap 'script_failure ${LINENO:-}' ERR # checks if we are running in a windows environment case "${OSTYPE:-}" in - 'msys' | 'mingw' | 'cygwin') - err 'Bash for Windows is not supported, please use Powershell or CMD and run setup.ps1' - ;; + 'msys' | 'mingw' | 'cygwin') + err 'bash for windows is not supported, please use powershell or cmd and run setup.ps1' + ;; esac if [ "${CI:-}" != "true" ]; then - echo 'OneLauncher Development Environment Setup' - echo 'To set up your machine for OneLauncher development, this script will install some required dependencies with your system package manager' - echo - echo 'Press Enter to continue' - read -r + echo 'onelauncher development environment setup:' + echo 'to set up your machine for onelauncher development, this script will install some required dependencies with your system package manager' + echo + echo 'press enter to continue' + read -r - # checks if pnpm is installed - if ! has pnpm; then - err 'pnpm was not found.' \ - "Ensure the 'pnpm' command is in your \$PATH." \ - 'You must use pnpm for this project; yarn and npm are not allowed.' \ - 'https://pnpm.io/installation' - fi + # checks if pnpm is installed + if ! has pnpm; then + err 'pnpm was not found.' \ + "ensure the 'pnpm' command is in your \$PATH." \ + 'you must use pnpm for this project; yarn and npm are not allowed.' \ + 'https://pnpm.io/installation' + fi - # checks if rustc and cargo are installed - if ! has rustc cargo; then - err 'Rust was not found.' \ - "Ensure the 'rustc' and 'cargo' binaries are in your \$PATH." \ - 'https://rustup.rs' - fi + # checks if rustc and cargo are installed + if ! has rustc cargo; then + err 'rust was not found!' \ + "ensure the 'rustc' and 'cargo' binaries are in your \$PATH." \ + 'https://rustup.rs' + fi - echo + echo fi # installs system deps case "$(uname)" in - "Darwin") - if [ "$(uname -m)" = 'x86_64' ] && ! [ "${CI:-}" = "true" ]; then - brew install nasm - fi + "Darwin") + if [ "$(uname -m)" = 'x86_64' ] && ! [ "${CI:-}" = "true" ]; then + brew install nasm + fi - echo - ;; - "Linux") - # https://v2.tauri.app/start/prerequisites/ - if has apt-get; then - echo "Detected apt!" - echo "Installing dependencies with apt..." + echo + ;; + "Linux") + # https://v2.tauri.app/start/prerequisites/ + if has apt-get; then + echo "detected apt!" + echo "installing dependencies with apt..." - # Tauri dependencies - set -- build-essential curl wget file libssl-dev libgtk-3-dev librsvg2-dev \ - libwebkit2gtk-4.1-dev libayatana-appindicator3-dev libxdo-dev libdbus-1-dev libvips42 \ - llvm-dev libclang-dev clang nasm perl + # Tauri dependencies + set -- build-essential curl wget file libssl-dev libgtk-3-dev librsvg2-dev \ + libwebkit2gtk-4.1-dev libayatana-appindicator3-dev libxdo-dev libdbus-1-dev libvips42 \ + llvm-dev libclang-dev clang nasm perl - sudo apt-get -y update - sudo apt-get -y install "$@" - elif has pacman; then - echo "Detected pacman!" - echo "Installing dependencies with pacman..." + sudo apt-get -y update + sudo apt-get -y install "$@" + elif has pacman; then + echo "detected pacman!" + echo "installing dependencies with pacman..." - # Tauri dependencies - set -- appmenu-gtk-module libappindicator-gtk3 base-devel curl wget file openssl gtk3 librsvg webkit2gtk-4.1 libayatana-appindicator dbus xdotool libvips clang nasm perl + # Tauri dependencies + set -- appmenu-gtk-module libappindicator-gtk3 base-devel curl wget file openssl gtk3 librsvg webkit2gtk-4.1 libayatana-appindicator dbus xdotool libvips clang nasm perl - sudo pacman -Sy --needed "$@" - elif has dnf; then - echo "Detected dnf!" - echo "Installing dependencies with dnf..." + sudo pacman -Sy --needed "$@" + elif has dnf; then + echo "detected dnf!" + echo "installing dependencies with dnf..." - # For Enterprise Linux, you also need "Development Tools" instead of "C Development Tools and Libraries" - if ! { sudo dnf group install "C Development Tools and Libraries" || sudo dnf group install "Development Tools"; }; then - err 'We were unable to install the "C Development Tools and Libraries"/"Development Tools" package.' \ - 'Please open an issue if you feel that this is incorrect.' - fi + # For Enterprise Linux, you also need "Development Tools" instead of "C Development Tools and Libraries" + if ! { sudo dnf group install "C Development Tools and Libraries" || sudo dnf group install "Development Tools"; }; then + err 'We were unable to install the "C Development Tools and Libraries"/"Development Tools" package.' \ + 'Please open an issue if you feel that this is incorrect.' + fi - # Tauri dependencies - set -- openssl webkit2gtk4.1-devel openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel libxdo-devel dbus vips clang clang-devel nasm perl-core + # Tauri dependencies + set -- openssl webkit2gtk4.1-devel openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel libxdo-devel dbus vips clang clang-devel nasm perl-core - sudo dnf install "$@" - elif has apk; then - echo "Detected apk!" - echo "Installing dependencies with apk..." - echo "Alpine suport is experimental" >&2 + sudo dnf install "$@" + elif has apk; then + echo "detected apk!" + echo "installing dependencies with apk..." + echo "note: alpine suport is experimental" >&2 - # Tauri dependencies - set -- build-base curl wget file openssl-dev gtk+3.0-dev librsvg-dev \ - webkit2gtk-4.1-dev libayatana-indicator-dev xdotool-dev dbus-dev vips \ - llvm16-dev clang16 nasm perl + # Tauri dependencies + set -- build-base curl wget file openssl-dev gtk+3.0-dev librsvg-dev \ + webkit2gtk-4.1-dev libayatana-indicator-dev xdotool-dev dbus-dev vips \ + llvm16-dev clang16 nasm perl - sudo apk add "$@" - elif has emerge; then - echo "Detected emerge!" - echo "Installing dependencies with emerge..." - echo "Gentoo support is experiemntal" >&2 + sudo apk add "$@" + elif has emerge; then + echo "detected emerge!" + echo "installing dependencies with emerge..." + echo "note: gentoo support is experiemntal" >&2 - # Tauri Dependencies - set -- net-libs/webkit-gtk:4.1 dev-libs/libappindicator net-misc/curl net-misc/wget sys-apps/file + # Tauri Dependencies + set -- net-libs/webkit-gtk:4.1 dev-libs/libappindicator net-misc/curl net-misc/wget sys-apps/file - sudo emerge --ask "$@" - elif has zypper; then - echo "Detected zypper!" - echo "Installing dependencies with zypper..." - echo "openSUSE support is experimental" >&2 + sudo emerge --ask "$@" + elif has zypper; then + echo "detected zypper!" + echo "installing dependencies with zypper..." + echo "note: openSUSE support is experimental" >&2 - set -- libopenssl-devel webkit2gtk3-devel curl wget file libappindicator3-1 librsvg-devel + set -- libopenssl-devel webkit2gtk3-devel curl wget file libappindicator3-1 librsvg-devel - sudo zypper in "$@" - sudo zypper in -t pattern devel_basis - else - if has lsb_release; then - _distro="'$(lsb_release -s -d)' " - fi - err "Your Linux distro ${_distro:-}is not supported by this script." \ - 'We would welcome a PR or some help adding your OS to this script:' \ - 'https://github.com/polyfrost/onelauncher/issues' - fi - ;; - *) - err "Your OS ($(uname)) is not supported by this script." \ - 'We would welcome a PR or some help adding your OS to this script.' \ - 'https://github.com/polyfrost/onelauncher/issues' - ;; + sudo zypper in "$@" + sudo zypper in -t pattern devel_basis + else + if has lsb_release; then + _distro="'$(lsb_release -s -d)' " + fi + err "your linux distro ${_distro:-}is not supported by this script!" \ + 'We would welcome a pr or some help adding your os to this script:' \ + 'https://github.com/polyfrost/onelauncher/issues' + fi + ;; + *) + err "your os ($(uname)) is not supported by this script!" \ + 'we would welcome a pr or some help adding your os to this script:' \ + 'https://github.com/polyfrost/onelauncher/issues' + ;; esac # installs cargo-watch for development purposes if [ "${CI:-}" != "true" ]; then - echo "Installing Rust tools..." - - _tools="cargo-watch" - - echo "$_tools" | xargs cargo install + echo "installing rust tools..." + _tools="cargo-watch" + echo "$_tools" | xargs cargo install fi -echo 'Your machine has been setup for OneLauncher development!' +echo 'your machine has been setup for onelauncher development!' diff --git a/packages/scripts/tauri.ts b/packages/scripts/tauri.ts index 7d211d03..eb7d35c5 100644 --- a/packages/scripts/tauri.ts +++ b/packages/scripts/tauri.ts @@ -1,7 +1,5 @@ -#!/usr/bin/env node - import process from 'node:process'; -import * as fs from 'node:fs/promises'; +import fs from 'node:fs/promises'; import { setTimeout } from 'node:timers/promises'; import pathe from 'pathe'; import { execa } from 'execa'; diff --git a/packages/scripts/utils/index.ts b/packages/scripts/utils/index.ts index 0241977b..c6a99a96 100644 --- a/packages/scripts/utils/index.ts +++ b/packages/scripts/utils/index.ts @@ -20,7 +20,7 @@ export function checkEnvironment(meta: ImportMeta) { const __debug = process.env.NODE_ENV === 'debug'; const __root = resolve(join(__dirname, '..', '..')); - return { __filename, __dirname, __debug, __root }; + return { __filename, __dirname, __debug, __root, __exit: process.exit }; } async function where(cmd: string): Promise { diff --git a/packages/scripts/utils/triple.ts b/packages/scripts/utils/triple.ts index 10bf6199..8d4a6ca2 100644 --- a/packages/scripts/utils/triple.ts +++ b/packages/scripts/utils/triple.ts @@ -1,5 +1,5 @@ import { env } from 'node:process'; -import * as os from 'node:os'; +import { machine, type } from 'node:os'; import { execaCommand } from 'execa'; const state: { __debug: boolean; libc: 'musl' | 'glibc' } = { @@ -7,7 +7,7 @@ const state: { __debug: boolean; libc: 'musl' | 'glibc' } = { libc: 'glibc', }; -if (os.type() === 'Linux') +if (type() === 'Linux') try { const lldResult = await execaCommand('ldd /bin/ls'); if (lldResult.stdout.includes('msl')) @@ -47,8 +47,8 @@ export function getTriple(): TripleID { tripleState._libc = target[3]?.includes('musl') ? 'musl' : 'glibc'; } else { - tripleState._os = os.type(); - tripleState._arch = os.machine(); + tripleState._os = type(); + tripleState._arch = machine(); if (tripleState._arch === 'arm64') tripleState._arch = 'aarch64'; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a0ab789..c4a7b06b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: devDependencies: '@flowr/eslint-config': - specifier: ^3.10.4 - version: 3.10.4(@unocss/eslint-plugin@0.61.9(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint-ts-patch@9.8.0-1))(eslint-processor-vue-blocks@0.1.2(eslint-ts-patch@9.8.0-1))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint-ts-patch@9.8.0-1)) + specifier: ^3.10.5 + version: 3.10.5(@unocss/eslint-plugin@0.61.9(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.8.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.8.0))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.8.0)) '@types/node': specifier: ^22.1.0 version: 22.1.0 @@ -24,14 +24,11 @@ importers: specifier: ^0.5.5 version: 0.5.5 eslint: - specifier: npm:eslint-ts-patch@9.8.0-1 - version: eslint-ts-patch@9.8.0-1 + specifier: ^9.8.0 + version: 9.8.0 eslint-plugin-solid: specifier: ^0.14.1 - version: 0.14.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint-ts-patch: - specifier: 9.8.0-1 - version: 9.8.0-1 + version: 0.14.1(eslint@9.8.0)(typescript@5.5.4) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@22.1.0)(typescript@5.5.4) @@ -261,11 +258,14 @@ importers: packages/scripts: dependencies: '@flowr/utils': - specifier: ^3.10.4 - version: 3.10.4 + specifier: ^3.10.5 + version: 3.10.5 execa: specifier: ^9.3.0 version: 9.3.0 + mustache: + specifier: ^4.2.0 + version: 4.2.0 pathe: specifier: ^1.1.2 version: 1.1.2 @@ -279,6 +279,9 @@ importers: '@types/iarna__toml': specifier: ^2.0.5 version: 2.0.5 + '@types/mustache': + specifier: ^4.2.5 + version: 4.2.5 '@types/semver': specifier: ^7.5.8 version: 7.5.8 @@ -915,8 +918,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@flowr/eslint-config@3.10.4': - resolution: {integrity: sha512-vhb8omxzi+EXO+kKWO0zT9TWZD/iUuLg4EJKAAcmzZclff4HgJ22DCpje9LXFkSvbEW/ckL2VXCoq0HHOtLQOw==} + '@flowr/eslint-config@3.10.5': + resolution: {integrity: sha512-KdHhgPBe7R5WmKTRlBBOvQgnszhSaa5w6snqS7QmYZ52xOh7ZIhJWhWeNEnCehjUQoUdjwLJXIWrh3McQRoN3g==} engines: {node: '>=20'} peerDependencies: '@eslint-react/eslint-plugin': ^1.5.8 @@ -976,8 +979,8 @@ packages: vue-eslint-parser: optional: true - '@flowr/utils@3.10.4': - resolution: {integrity: sha512-qREEXtiso4kBqjx0lN6H3t+ty46zMXqnEeazbbtniCasGadtAcz77hl1qZlbWa2HtsbJgON7UtuFFVr6ptkDRw==} + '@flowr/utils@3.10.5': + resolution: {integrity: sha512-PvBEt/brZO1RRPCHihcXj6WmFRle5uJhtrrG3/Bnsv1SQe9d35sYUxUPuyp38kgtsKcQeKIKyMyYd7YPzHvBrg==} engines: {node: '>=20'} '@fontsource/poppins@5.0.14': @@ -1560,6 +1563,9 @@ packages: '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mustache@4.2.5': + resolution: {integrity: sha512-PLwiVvTBg59tGFL/8VpcGvqOu3L4OuveNvPi0EYbWchRdEVP++yRUXJPFl+CApKEq13017/4Nf7aQ5lTtHUNsA==} + '@types/node@20.14.10': resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} @@ -2029,8 +2035,8 @@ packages: caniuse-lite@1.0.30001641: resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} - caniuse-lite@1.0.30001647: - resolution: {integrity: sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg==} + caniuse-lite@1.0.30001649: + resolution: {integrity: sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==} chai@5.1.1: resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} @@ -2139,8 +2145,8 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - core-js-compat@3.37.1: - resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + core-js-compat@3.38.0: + resolution: {integrity: sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2413,14 +2419,14 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-n@17.10.1: - resolution: {integrity: sha512-hm/q37W6efDptJXdwirsm6A257iY6ZNtpoSG0wEzFzjJ3AhL7OhEIhdSR2e4OdYfHO5EDeqlCfFrjf9q208IPw==} + eslint-plugin-n@17.10.2: + resolution: {integrity: sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@3.1.0: - resolution: {integrity: sha512-QNL1L0CMo8FoKM3VkNdR8HUq8Nrl0nGZFF9jzjU8PYvDtds2bvNOm9RwpQC4Gf3M27F6CBp5JsA3jBYT4TBiHA==} + eslint-plugin-perfectionist@3.1.1: + resolution: {integrity: sha512-joaAPd2gVNV+Gm+xU6tqOxy9WlBcb/6TSCUaHLNSdhot/KcsyiKSzeTVToasrCPIxgqgGwcOy+AJaGaBhBwblw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: astro-eslint-parser: ^1.0.2 @@ -2438,8 +2444,8 @@ packages: vue-eslint-parser: optional: true - eslint-plugin-petal@3.10.4: - resolution: {integrity: sha512-6RwsV5RDwHPJ+uPeRwtWxlzka0FTptU/jR/F47jgNChZ0QXJAACfoYF3NueHlwzE2g7uR9qbVpbRd+shuSJHTQ==} + eslint-plugin-petal@3.10.5: + resolution: {integrity: sha512-Yqnf3WVLiov6rszMTL2Up+x0mzfEhoPIaaXA93m3i0IoLY0q4jjC8ycZhxnFmzE0xRK8/X7l1cOHuZd3tcW6+Q==} engines: {node: '>=20'} peerDependencies: eslint: '>=8.40.0' @@ -2521,10 +2527,6 @@ packages: resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-ts-patch@9.8.0-1: - resolution: {integrity: sha512-bn+PRzcFdUX/V53Z2V8MVE6gq0CZG7q76Fr7g7lGyCSlQlVH2KJs0adN33xnvizizstQjYycDvwByXhIZJb88A==} - hasBin: true - eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3205,6 +3207,10 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4885,17 +4891,12 @@ snapshots: '@esbuild/win32-x64@0.23.0': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.3.0(eslint-ts-patch@9.8.0-1)': + '@eslint-community/eslint-plugin-eslint-comments@4.3.0(eslint@9.8.0)': dependencies: escape-string-regexp: 4.0.0 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 ignore: 5.3.1 - '@eslint-community/eslint-utils@4.4.0(eslint-ts-patch@9.8.0-1)': - dependencies: - eslint: eslint-ts-patch@9.8.0-1 - eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.8.0)': dependencies: eslint: 9.8.0 @@ -4931,31 +4932,31 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@flowr/eslint-config@3.10.4(@unocss/eslint-plugin@0.61.9(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint-ts-patch@9.8.0-1))(eslint-processor-vue-blocks@0.1.2(eslint-ts-patch@9.8.0-1))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint-ts-patch@9.8.0-1))': + '@flowr/eslint-config@3.10.5(@unocss/eslint-plugin@0.61.9(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.8.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.8.0))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.8.0))': dependencies: '@antfu/install-pkg': 0.3.3 '@clack/prompts': 0.7.0 - '@eslint-community/eslint-plugin-eslint-comments': 4.3.0(eslint-ts-patch@9.8.0-1) - '@stylistic/eslint-plugin': 2.6.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - '@typescript-eslint/parser': 8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + '@eslint-community/eslint-plugin-eslint-comments': 4.3.0(eslint@9.8.0) + '@stylistic/eslint-plugin': 2.6.1(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 eslint-flat-config-utils: 0.3.0 - eslint-merge-processors: 0.1.0(eslint-ts-patch@9.8.0-1) - eslint-plugin-command: 0.2.3(eslint-ts-patch@9.8.0-1) - eslint-plugin-import-x: 3.1.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint-plugin-jsdoc: 48.11.0(eslint-ts-patch@9.8.0-1) - eslint-plugin-jsonc: 2.16.0(eslint-ts-patch@9.8.0-1) - eslint-plugin-markdown: 5.1.0(eslint-ts-patch@9.8.0-1) - eslint-plugin-n: 17.10.1(eslint-ts-patch@9.8.0-1) - eslint-plugin-perfectionist: 3.1.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint-ts-patch@9.8.0-1)) - eslint-plugin-petal: 3.10.4(eslint-ts-patch@9.8.0-1) - eslint-plugin-regexp: 2.6.0(eslint-ts-patch@9.8.0-1) - eslint-plugin-toml: 0.11.1(eslint-ts-patch@9.8.0-1) - eslint-plugin-unicorn: 55.0.0(eslint-ts-patch@9.8.0-1) - eslint-plugin-unused-imports: 4.0.1(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1) - eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)) - eslint-plugin-yml: 1.14.0(eslint-ts-patch@9.8.0-1) + eslint-merge-processors: 0.1.0(eslint@9.8.0) + eslint-plugin-command: 0.2.3(eslint@9.8.0) + eslint-plugin-import-x: 3.1.0(eslint@9.8.0)(typescript@5.5.4) + eslint-plugin-jsdoc: 48.11.0(eslint@9.8.0) + eslint-plugin-jsonc: 2.16.0(eslint@9.8.0) + eslint-plugin-markdown: 5.1.0(eslint@9.8.0) + eslint-plugin-n: 17.10.2(eslint@9.8.0) + eslint-plugin-perfectionist: 3.1.1(eslint@9.8.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.8.0)) + eslint-plugin-petal: 3.10.5(eslint@9.8.0) + eslint-plugin-regexp: 2.6.0(eslint@9.8.0) + eslint-plugin-toml: 0.11.1(eslint@9.8.0) + eslint-plugin-unicorn: 55.0.0(eslint@9.8.0) + eslint-plugin-unused-imports: 4.0.1(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)) + eslint-plugin-yml: 1.14.0(eslint@9.8.0) find-up: 7.0.0 globals: 15.9.0 jsonc-eslint-parser: 2.4.0 @@ -4964,18 +4965,18 @@ snapshots: toml-eslint-parser: 0.10.0 yaml-eslint-parser: 1.2.3 optionalDependencies: - '@unocss/eslint-plugin': 0.61.9(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint-plugin-solid: 0.14.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint-plugin-vue: 9.27.0(eslint-ts-patch@9.8.0-1) - eslint-processor-vue-blocks: 0.1.2(eslint-ts-patch@9.8.0-1) - vue-eslint-parser: 9.4.3(eslint-ts-patch@9.8.0-1) + '@unocss/eslint-plugin': 0.61.9(eslint@9.8.0)(typescript@5.5.4) + eslint-plugin-solid: 0.14.1(eslint@9.8.0)(typescript@5.5.4) + eslint-plugin-vue: 9.27.0(eslint@9.8.0) + eslint-processor-vue-blocks: 0.1.2(eslint@9.8.0) + vue-eslint-parser: 9.4.3(eslint@9.8.0) transitivePeerDependencies: - supports-color - svelte - typescript - vitest - '@flowr/utils@3.10.4': {} + '@flowr/utils@3.10.5': {} '@fontsource/poppins@5.0.14': {} @@ -5336,49 +5337,49 @@ snapshots: optionalDependencies: '@solidjs/router': 0.14.1(solid-js@1.8.19) - '@stylistic/eslint-plugin-js@2.6.1(eslint-ts-patch@9.8.0-1)': + '@stylistic/eslint-plugin-js@2.6.1(eslint@9.8.0)': dependencies: '@types/eslint': 9.6.0 acorn: 8.12.1 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 eslint-visitor-keys: 4.0.0 espree: 10.1.0 - '@stylistic/eslint-plugin-jsx@2.6.1(eslint-ts-patch@9.8.0-1)': + '@stylistic/eslint-plugin-jsx@2.6.1(eslint@9.8.0)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.1(eslint-ts-patch@9.8.0-1) + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) '@types/eslint': 9.6.0 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 estraverse: 5.3.0 picomatch: 4.0.2 - '@stylistic/eslint-plugin-plus@2.6.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@stylistic/eslint-plugin-plus@2.6.1(eslint@9.8.0)(typescript@5.5.4)': dependencies: '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin-ts@2.6.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@stylistic/eslint-plugin-ts@2.6.1(eslint@9.8.0)(typescript@5.5.4)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.1(eslint-ts-patch@9.8.0-1) + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin@2.6.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@stylistic/eslint-plugin@2.6.1(eslint@9.8.0)(typescript@5.5.4)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.1(eslint-ts-patch@9.8.0-1) - '@stylistic/eslint-plugin-jsx': 2.6.1(eslint-ts-patch@9.8.0-1) - '@stylistic/eslint-plugin-plus': 2.6.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - '@stylistic/eslint-plugin-ts': 2.6.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) + '@stylistic/eslint-plugin-jsx': 2.6.1(eslint@9.8.0) + '@stylistic/eslint-plugin-plus': 2.6.1(eslint@9.8.0)(typescript@5.5.4) + '@stylistic/eslint-plugin-ts': 2.6.1(eslint@9.8.0)(typescript@5.5.4) '@types/eslint': 9.6.0 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript @@ -5534,6 +5535,8 @@ snapshots: dependencies: '@types/unist': 2.0.10 + '@types/mustache@4.2.5': {} + '@types/node@20.14.10': dependencies: undici-types: 5.26.5 @@ -5550,15 +5553,15 @@ snapshots: '@types/uuid@10.0.0': {} - '@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.4) '@typescript-eslint/scope-manager': 8.0.0 - '@typescript-eslint/type-utils': 8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.0.0 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -5568,14 +5571,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 8.0.0 '@typescript-eslint/types': 8.0.0 '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.0.0 debug: 4.3.6 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -5596,10 +5599,10 @@ snapshots: '@typescript-eslint/types': 8.0.0 '@typescript-eslint/visitor-keys': 8.0.0 - '@typescript-eslint/type-utils@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.0.0(eslint@9.8.0)(typescript@5.5.4)': dependencies: '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -5659,35 +5662,35 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.16.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@typescript-eslint/utils@7.16.0(eslint@9.8.0)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) '@typescript-eslint/scope-manager': 7.16.0 '@typescript-eslint/types': 7.16.0 '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@typescript-eslint/utils@7.18.0(eslint@9.8.0)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@typescript-eslint/utils@8.0.0(eslint@9.8.0)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) '@typescript-eslint/scope-manager': 8.0.0 '@typescript-eslint/types': 8.0.0 '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript @@ -5746,9 +5749,9 @@ snapshots: '@unocss/core@0.61.9': {} - '@unocss/eslint-plugin@0.61.9(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)': + '@unocss/eslint-plugin@0.61.9(eslint@9.8.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/utils': 7.18.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.5.4) '@unocss/config': 0.61.9 '@unocss/core': 0.61.9 magic-string: 0.30.11 @@ -6084,7 +6087,7 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001647 + caniuse-lite: 1.0.30001649 electron-to-chromium: 1.5.4 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -6150,7 +6153,7 @@ snapshots: caniuse-lite@1.0.30001641: {} - caniuse-lite@1.0.30001647: {} + caniuse-lite@1.0.30001649: {} chai@5.1.1: dependencies: @@ -6274,7 +6277,7 @@ snapshots: convert-source-map@2.0.0: {} - core-js-compat@3.37.1: + core-js-compat@3.38.0: dependencies: browserslist: 4.23.3 @@ -6502,9 +6505,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint-ts-patch@9.8.0-1): + eslint-compat-utils@0.5.1(eslint@9.8.0): dependencies: - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 semver: 7.6.3 eslint-flat-config-utils@0.3.0: @@ -6520,28 +6523,28 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-merge-processors@0.1.0(eslint-ts-patch@9.8.0-1): + eslint-merge-processors@0.1.0(eslint@9.8.0): dependencies: - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 - eslint-plugin-command@0.2.3(eslint-ts-patch@9.8.0-1): + eslint-plugin-command@0.2.3(eslint@9.8.0): dependencies: '@es-joy/jsdoccomment': 0.43.1 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 - eslint-plugin-es-x@7.8.0(eslint-ts-patch@9.8.0-1): + eslint-plugin-es-x@7.8.0(eslint@9.8.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) '@eslint-community/regexpp': 4.11.0 - eslint: eslint-ts-patch@9.8.0-1 - eslint-compat-utils: 0.5.1(eslint-ts-patch@9.8.0-1) + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) - eslint-plugin-import-x@3.1.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4): + eslint-plugin-import-x@3.1.0(eslint@9.8.0)(typescript@5.5.4): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.5.4) debug: 4.3.6 doctrine: 3.0.0 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.6 is-glob: 4.0.3 @@ -6553,14 +6556,14 @@ snapshots: - supports-color - typescript - eslint-plugin-jsdoc@48.11.0(eslint-ts-patch@9.8.0-1): + eslint-plugin-jsdoc@48.11.0(eslint@9.8.0): dependencies: '@es-joy/jsdoccomment': 0.46.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.6 escape-string-regexp: 4.0.0 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 espree: 10.1.0 esquery: 1.6.0 parse-imports: 2.1.1 @@ -6570,69 +6573,69 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.16.0(eslint-ts-patch@9.8.0-1): + eslint-plugin-jsonc@2.16.0(eslint@9.8.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) - eslint: eslint-ts-patch@9.8.0-1 - eslint-compat-utils: 0.5.1(eslint-ts-patch@9.8.0-1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-markdown@5.1.0(eslint-ts-patch@9.8.0-1): + eslint-plugin-markdown@5.1.0(eslint@9.8.0): dependencies: - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.10.1(eslint-ts-patch@9.8.0-1): + eslint-plugin-n@17.10.2(eslint@9.8.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) enhanced-resolve: 5.17.1 - eslint: eslint-ts-patch@9.8.0-1 - eslint-plugin-es-x: 7.8.0(eslint-ts-patch@9.8.0-1) + eslint: 9.8.0 + eslint-plugin-es-x: 7.8.0(eslint@9.8.0) get-tsconfig: 4.7.6 globals: 15.9.0 ignore: 5.3.1 minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-perfectionist@3.1.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint-ts-patch@9.8.0-1)): + eslint-plugin-perfectionist@3.1.1(eslint@9.8.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.8.0)): dependencies: '@typescript-eslint/types': 8.0.0 - '@typescript-eslint/utils': 8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 minimatch: 10.0.1 natural-compare-lite: 1.4.0 optionalDependencies: - vue-eslint-parser: 9.4.3(eslint-ts-patch@9.8.0-1) + vue-eslint-parser: 9.4.3(eslint@9.8.0) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-petal@3.10.4(eslint-ts-patch@9.8.0-1): + eslint-plugin-petal@3.10.5(eslint@9.8.0): dependencies: - '@flowr/utils': 3.10.4 - eslint: eslint-ts-patch@9.8.0-1 + '@flowr/utils': 3.10.5 + eslint: 9.8.0 - eslint-plugin-regexp@2.6.0(eslint-ts-patch@9.8.0-1): + eslint-plugin-regexp@2.6.0(eslint@9.8.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) '@eslint-community/regexpp': 4.11.0 comment-parser: 1.4.1 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-solid@0.14.1(eslint-ts-patch@9.8.0-1)(typescript@5.5.4): + eslint-plugin-solid@0.14.1(eslint@9.8.0)(typescript@5.5.4): dependencies: - '@typescript-eslint/utils': 7.16.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + '@typescript-eslint/utils': 7.16.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 estraverse: 5.3.0 is-html: 2.0.0 kebab-case: 1.0.2 @@ -6642,24 +6645,24 @@ snapshots: - supports-color - typescript - eslint-plugin-toml@0.11.1(eslint-ts-patch@9.8.0-1): + eslint-plugin-toml@0.11.1(eslint@9.8.0): dependencies: debug: 4.3.6 - eslint: eslint-ts-patch@9.8.0-1 - eslint-compat-utils: 0.5.1(eslint-ts-patch@9.8.0-1) + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) lodash: 4.17.21 toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@55.0.0(eslint-ts-patch@9.8.0-1): + eslint-plugin-unicorn@55.0.0(eslint@9.8.0): dependencies: '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) ci-info: 4.0.0 clean-regexp: 1.0.0 - core-js-compat: 3.37.1 - eslint: eslint-ts-patch@9.8.0-1 + core-js-compat: 3.38.0 + eslint: 9.8.0 esquery: 1.6.0 globals: 15.9.0 indent-string: 4.0.0 @@ -6672,53 +6675,53 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.0.1(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1): + eslint-plugin-unused-imports@4.0.1(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0): dependencies: - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 eslint-rule-composer: 0.3.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4) - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) - eslint: eslint-ts-patch@9.8.0-1 + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint-ts-patch@9.8.0-1)(typescript@5.5.4))(eslint-ts-patch@9.8.0-1)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4) vitest: 2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-vue@9.27.0(eslint-ts-patch@9.8.0-1): + eslint-plugin-vue@9.27.0(eslint@9.8.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint-ts-patch@9.8.0-1) - eslint: eslint-ts-patch@9.8.0-1 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + eslint: 9.8.0 globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.1 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint-ts-patch@9.8.0-1) + vue-eslint-parser: 9.4.3(eslint@9.8.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color optional: true - eslint-plugin-yml@1.14.0(eslint-ts-patch@9.8.0-1): + eslint-plugin-yml@1.14.0(eslint@9.8.0): dependencies: debug: 4.3.6 - eslint: eslint-ts-patch@9.8.0-1 - eslint-compat-utils: 0.5.1(eslint-ts-patch@9.8.0-1) + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(eslint-ts-patch@9.8.0-1): + eslint-processor-vue-blocks@0.1.2(eslint@9.8.0): dependencies: - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 optional: true eslint-rule-composer@0.3.0: {} @@ -6734,14 +6737,6 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-ts-patch@9.8.0-1: - dependencies: - debug: 4.3.6 - eslint: 9.8.0 - importx: 0.4.3 - transitivePeerDependencies: - - supports-color - eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.0.0: {} @@ -7436,6 +7431,8 @@ snapshots: ms@2.1.3: {} + mustache@4.2.0: {} + nanoid@3.3.7: {} natural-compare-lite@1.4.0: {} @@ -8351,10 +8348,10 @@ snapshots: - supports-color - terser - vue-eslint-parser@9.4.3(eslint-ts-patch@9.8.0-1): + vue-eslint-parser@9.4.3(eslint@9.8.0): dependencies: debug: 4.3.6 - eslint: eslint-ts-patch@9.8.0-1 + eslint: 9.8.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1