✨ feature: backport non-prisma stuff from prisma branch
This commit is contained in:
parent
2f80658db9
commit
3bff4fbab1
45 changed files with 430 additions and 370 deletions
|
|
@ -1 +0,0 @@
|
|||
allow-unwrap-in-tests = true
|
||||
23
.editorconfig
Normal file
23
.editorconfig
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
end_of_line = lf
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.nix]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
# Rust
|
||||
# https://github.com/rust-lang/rust/blob/master/src/doc/style/style/whitespace.md
|
||||
[*.rs]
|
||||
indent_size = 4
|
||||
insert_final_newline = false
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.{yaml,yml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
1
.envrc
1
.envrc
|
|
@ -1 +0,0 @@
|
|||
use flake
|
||||
|
|
@ -26,8 +26,8 @@ All rights reserved. Copyright (C) 2022~2024 Polyfrost
|
|||
|
||||
This includes, but may not be limited to, the following files:
|
||||
|
||||
* [`desktop/.icons/*`](./desktop/.icons/)
|
||||
* [`desktop/src/assets/licensed/*`](./desktop/src/assets/licensed/)
|
||||
* [`apps/desktop/.icons/*`](./apps/desktop/.icons/)
|
||||
* [`apps/desktop/src/assets/licensed/*`](./apps/desktop/src/assets/licensed/)
|
||||
|
||||
## Additional Libraries
|
||||
|
||||
|
|
|
|||
124
CONTRIBUTING.md
Normal file
124
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
# Contributing to OneLauncher
|
||||
|
||||
Welcome!
|
||||
|
||||
Please read our [Code of Conduct] to keep our community approachable and respectable.
|
||||
|
||||
## New Contributor Guide
|
||||
|
||||
To familiarize yourself with the project, please read the [README]. Here are some resources to help you get started with open-source contributions:
|
||||
|
||||
- [Finding ways to contribute to open-source on GitHub]
|
||||
- [Setting up Git]
|
||||
- [GitHub flow]
|
||||
- [Collaborating with pull requests]
|
||||
- [Tauri essentials]
|
||||
- [the `pnpm` CLI]
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Issues
|
||||
|
||||
#### Creating a New Issue
|
||||
|
||||
If you come across an issue or have a feature request for OneLauncher, please [search if a related issue has already been reported]. If no relevant issue exists, you can open a new issue using the appropriate [issue form].
|
||||
|
||||
#### Solving an Issue
|
||||
|
||||
To find an issue that interests you, you can browse through our [existing issues] and use the available `labels` to narrow down your search (See [Labels] for more information). As a general rule, if you find an issue you want to work on, you are welcome to open a PR with a fix.
|
||||
|
||||
### Making Changes
|
||||
|
||||
#### Making Changes Locally
|
||||
|
||||
This project uses [`Cargo`] and [`pnpm`]. Make ensure you have them installed before proceeding.
|
||||
|
||||
To make changes locally, follow these steps:
|
||||
|
||||
1. Clone the repository: `git clone https://github.com/polyfrost/onelauncher`
|
||||
2. Navigate to the project directory: `cd onelauncher`
|
||||
3. Configure your system environment for OneLauncher development:
|
||||
1. For Linux users, run: `./packages/scripts/setup.sh`
|
||||
> The [Unix script] will check if Rust and pnpm are installed then proceed to install Clang, NASM, LLVM, libvips, [Tauri essentials] and any other required dependencies for OneLauncher to build.
|
||||
2. For macOS users, run: `./packages/scripts/setup.sh`
|
||||
> The [Unix script] will check if Rust, pnpm and Xcode are installed and proceed to use Homebrew to install NASM, [Tauri essentials] and install any other required dependencies for OneLauncher to build.
|
||||
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 the build: `pnpm prep` (This will run all necessary codegen and build required dependencies)
|
||||
|
||||
To quickly run only the desktop app after `prep`, you can use:
|
||||
|
||||
- `pnpm dev`
|
||||
|
||||
If necessary, the webview devtools can be opened by pressing `Ctrl + Shift + I` (Linux and Windows) or `Command + Option + I` (macOS) in the desktop app.
|
||||
|
||||
If you encounter any issues, ensure that you are using the following versions (or later) of Rust, Node and Pnpm:
|
||||
|
||||
- Rust version: **1.79**
|
||||
- Node version: **18.18**
|
||||
- Pnpm version: **9.4.0**
|
||||
|
||||
After cleaning out your build artifacts using `pnpm clean`, `git clean`, or `cargo clean`, it is necessary to re-run the `setup` script.
|
||||
|
||||
After you finish making your changes and committed them to your branch, make sure to execute `pnpm format` to fix any style inconsistency in your code.
|
||||
|
||||
### Pull Request
|
||||
|
||||
Once you have finished making your changes, create a pull request (PR) to submit them.
|
||||
|
||||
- Fill out the template to help reviewers understand your changes and the purpose of your PR.
|
||||
- If you are addressing an existing issue, don't forget to [link your PR to the issue].
|
||||
- Enable the checkbox to [allow maintainer edits] so that the branch can be updated for merging.
|
||||
- Once you submit your PR, a team member will review your proposal. They may ask questions or request additional information.
|
||||
- You may be asked to make changes before the PR can be merged, either through [suggested changes] or pull request comments. You can apply suggested changes directly through the UI. For other changes, you can make them in your fork and commit them to your branch.
|
||||
- As you update your PR and apply changes, [mark each conversation as resolved].
|
||||
- If you run into any merge issues, refer to this [git tutorial] to help you resolve merge conflicts and other issues.
|
||||
|
||||
### Your PR is Merged!
|
||||
|
||||
Congratulations! 🎉🎉 Polyfrost thanks you for your contribution! ✨
|
||||
Once your PR is merged, your changes will be included in the next release.
|
||||
|
||||
### Common Errors
|
||||
|
||||
#### macOS errors with XCode tools & Rosetta
|
||||
|
||||
This error occurs when Xcode is not installed or when the Xcode command line tools are not in your `PATH`.
|
||||
|
||||
Run `xcode-select --install` in the terminal to install the command line tools. If they are already installed, ensure that you update macOS to the latest version available.
|
||||
|
||||
If that doesn't work, ensure that macOS is fully updated, and that you have Xcode installed (via the app store).
|
||||
|
||||
Also ensure that Rosetta is installed, as a few of our dependencies require it. You can install Rosetta with `softwareupdate --install-rosetta --agree-to-license`.
|
||||
|
||||
### Translations
|
||||
|
||||
Check out the [i18n README](apps/desktop/locales/README.md) for more information on how to contribute to translations.
|
||||
|
||||
### Credits
|
||||
|
||||
This CONTRIBUTING.md file was inspired by the [`github/docs` CONTRIBUTING.md] file, and we extend our gratitude to the original authors.
|
||||
|
||||
[Tauri essentials]: https://v2.tauri.app/start/prerequisites/
|
||||
[Unix script]: https://github.com/polyfrost/onelauncher/blob/main/packages/scripts/setup.sh
|
||||
[Windows script]: https://github.com/polyfrost/onelauncher/blob/main/packages/scripts/setup.ps1
|
||||
[`cargo`]: https://doc.rust-lang.org/cargo/getting-started/installation.html
|
||||
[`pnpm`]: https://pnpm.io/installation
|
||||
[Labels]: https://github.com/polyfrost/onelauncher/labels
|
||||
[the `pnpm` CLI]: https://pnpm.io/pnpm-cli
|
||||
[Collaborating with pull requests]: https://docs.github.com/en/github/collaborating-with-pull-requests
|
||||
[GitHub flow]: https://docs.github.com/en/get-started/quickstart/github-flow
|
||||
[Setting up Git]: https://docs.github.com/en/get-started/quickstart/set-up-git
|
||||
[Finding ways to contribute to open-source on GitHub]: https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github
|
||||
[Code of Conduct]: ./CODE_OF_CONDUCT.md
|
||||
[README]: ./README.md
|
||||
[search if a related issue has already been reported]: https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments
|
||||
[issue form]: https://github.com/polyfrost/onelauncher/issues/new/choose
|
||||
[existing issues]: https://github.com/polyfrost/onelauncher/issues
|
||||
[`github/docs` CONTRIBUTING.md]: https://github.com/github/docs/blob/main/CONTRIBUTING.md
|
||||
[link your PR to the issue]: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue
|
||||
[allow maintainer edits]: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork
|
||||
[suggested changes]: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/incorporating-feedback-in-your-pull-request
|
||||
[mark each conversation as resolved]: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#resolving-conversations
|
||||
[git tutorial]: https://lab.github.com/githubtraining/managing-merge-conflicts
|
||||
16
Cargo.toml
16
Cargo.toml
|
|
@ -16,19 +16,21 @@ authors = [
|
|||
"Polyfrost",
|
||||
"Polyfrost Contributors"
|
||||
]
|
||||
version = "1.0.0"
|
||||
|
||||
[workspace.dependencies]
|
||||
# tauri uses latest crates.io beta channel (temporarily can use v2 and main branches if necessary)
|
||||
tauri = { version = "=2.0.0-beta.23", features = [
|
||||
tauri = { version = "=2.0.0-beta.24", features = [
|
||||
"rustls-tls",
|
||||
"tracing",
|
||||
"specta"
|
||||
"specta",
|
||||
"uuid"
|
||||
] }
|
||||
tauri-utils = { version = "=2.0.0-beta.18" }
|
||||
tauri-build = { version = "=2.0.0-beta.18" }
|
||||
tauri-codegen = { version = "=2.0.0-beta.18" }
|
||||
tauri-macros = { version = "=2.0.0-beta.18" }
|
||||
tauri-plugin = { version = "=2.0.0-beta.18" }
|
||||
tauri-utils = { version = "=2.0.0-beta.19" }
|
||||
tauri-build = { version = "=2.0.0-beta.19" }
|
||||
tauri-codegen = { version = "=2.0.0-beta.19" }
|
||||
tauri-macros = { version = "=2.0.0-beta.19" }
|
||||
tauri-plugin = { version = "=2.0.0-beta.19" }
|
||||
tauri-plugin-authenticator = { version = "2.0.0-beta" }
|
||||
tauri-plugin-shell = { version = "2.0.0-beta" }
|
||||
tauri-plugin-window-state = { version = "2.0.0-beta" }
|
||||
|
|
|
|||
10
README.md
10
README.md
|
|
@ -4,9 +4,7 @@ Rust-based Minecraft launcher utilizing Tauri, SolidJS, and Tailwind
|
|||
|
||||
## Project Structure
|
||||
|
||||
* [`desktop`](./desktop/) - Rust-based Minecraft launcher utilizing Tauri, SolidJS, and Tailwind.
|
||||
* [`core`](./core/) - The core for our Minecraft launcher (platform agnostic), along with Rust-based utilities for other Polyfrost projects and interactions.
|
||||
* [`backend`](./backend/) - Our `actix-web` based API, accessible at <https://api.polyfrost.org>, with documentation on our [docs(docs)](https://contributing.polyfrost.org/api/).
|
||||
* [`testing`](./testing/) - Testing playground for our Rust core, independant of Tauri.
|
||||
* [`debugger`](./debugger/) - Procedural macro utilities for our Rust libraries.
|
||||
* [`distribution`](./distribution/) - Distribution utilties and meta files for the [`desktop`](./desktop/) app.
|
||||
* [`apps/desktop`](./apps/desktop/) - Rust-based Minecraft launcher utilizing Tauri, SolidJS, and Tailwind.
|
||||
* [`crates/core`](./crates/core/) - The core for our Minecraft launcher (platform agnostic), along with Rust-based utilities for other Polyfrost projects and interactions.
|
||||
* [`testing`](./crates/testing/) - Testing playground for our Rust core, independant of Tauri.
|
||||
* [`distribution`](./packages/distribution/) - Distribution utilties and meta files for the [`apps/desktop`](./apps/desktop/) app.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:polyfrost/onelauncher",
|
||||
"directory": "desktop"
|
||||
"directory": "apps/desktop"
|
||||
},
|
||||
"scripts": {
|
||||
"tauri": "tauri",
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
"@untitled-theme/icons-solid": "^0.10.5",
|
||||
"overlayscrollbars": "^2.9.2",
|
||||
"overlayscrollbars-solid": "^0.5.5",
|
||||
"solid-js": "^1.8.18",
|
||||
"solid-js": "^1.8.19",
|
||||
"solid-transition-group": "^0.2.3",
|
||||
"uuid": "^10.0.0"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "onelauncher_gui"
|
||||
version = "1.0.0"
|
||||
description = "Next-generation open source Minecraft launcher"
|
||||
version = { workspace = true }
|
||||
license = { workspace = true }
|
||||
edition = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<!-- registers our uri handler on macos -->
|
||||
<!-- registers our uri handler on macos -->
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>org.polyfrost.launcher</string>
|
||||
<string>OneLauncher</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>onelauncher</string>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/core/tauri-config-schema/schema.json",
|
||||
"productName": "onelauncher",
|
||||
"productName": "OneLauncher",
|
||||
"version": "../package.json",
|
||||
"identifier": "org.polyfrost.launcher",
|
||||
"identifier": "OneLauncher",
|
||||
"app": {
|
||||
"withGlobalTauri": true,
|
||||
"macOSPrivateApi": true,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "onelauncher"
|
||||
version = "0.0.0"
|
||||
description = "The core of OneLauncher"
|
||||
version = { workspace = true }
|
||||
license = { workspace = true }
|
||||
edition = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
|
@ -22,8 +22,6 @@ tauri = [
|
|||
cli = [ "dep:indicatif" ]
|
||||
|
||||
[dependencies]
|
||||
onelauncher_debug = { path = "../debugger" }
|
||||
|
||||
# GUI-only deps
|
||||
tauri = { workspace = true, optional = true }
|
||||
tauri-specta = { workspace = true, optional = true }
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ use std::path::PathBuf;
|
|||
/// Creates a [`Cluster`] and adds it to the memory [`State`].
|
||||
/// Returns a relative filepath ([`ClusterPath`]) which can be used to access the cluster.
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub async fn create_cluster(
|
||||
mut name: String,
|
||||
|
|
@ -207,7 +206,6 @@ pub async fn create_cluster_from_duplicate(from: ClusterPath) -> crate::Result<C
|
|||
|
||||
/// Get the latest [`LoaderVersion`] from a [`Loader`].
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub(crate) async fn get_loader_version(
|
||||
mc_version: String,
|
||||
loader: Loader,
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ pub async fn run(path: &ClusterPath) -> crate::Result<Arc<RwLock<ProcessorChild>
|
|||
/// run a Minecraft [`Cluster`] using [`MinecraftCredentials`] for authentication.
|
||||
/// returns an [`Arc`] pointer to [`RwLock`] to [`ProcessorChild`].
|
||||
#[tracing::instrument(skip(creds))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn run_credentials(
|
||||
path: &ClusterPath,
|
||||
creds: &MinecraftCredentials,
|
||||
|
|
@ -359,7 +358,6 @@ pub async fn get_optimal_java_version(path: &ClusterPath) -> crate::Result<Optio
|
|||
|
||||
/// Try to update a [`Cluster`]'s playtime.
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn update_playtime(path: &ClusterPath) -> crate::Result<()> {
|
||||
let state = State::get().await?;
|
||||
let cluster = get(path, None)
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ pub async fn filter_java_version(java_version: Option<u32>) -> crate::Result<Vec
|
|||
})
|
||||
}
|
||||
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn install_java(java_version: u32) -> crate::Result<PathBuf> {
|
||||
let state = State::get().await?;
|
||||
|
||||
|
|
|
|||
|
|
@ -185,7 +185,6 @@ pub fn get_cluster_from_pack(location: CreatePackLocation) -> CreatePackCluster
|
|||
}
|
||||
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn generate_pack_from_version_id(
|
||||
package_id: String,
|
||||
version_id: String,
|
||||
|
|
@ -295,7 +294,6 @@ pub async fn generate_pack_from_version_id(
|
|||
}
|
||||
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn generate_pack_from_file(
|
||||
path: PathBuf,
|
||||
cluster_path: ClusterPath,
|
||||
|
|
@ -316,7 +314,6 @@ pub async fn generate_pack_from_file(
|
|||
|
||||
/// Sets generated cluster attributes to the pack attributes (using `cluster::edit`).
|
||||
/// This includes the pack name, icon, game version, loader version, and loader.
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn set_cluster_information(
|
||||
cluster_path: ClusterPath,
|
||||
description: &CreatePackDescription,
|
||||
|
|
|
|||
|
|
@ -113,7 +113,6 @@ pub async fn is_valid_atlauncher(instance_folder: PathBuf) -> bool {
|
|||
}
|
||||
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn import_atlauncher(
|
||||
// The path to the base ATLauncher folder.
|
||||
atlauncher_base_path: PathBuf,
|
||||
|
|
|
|||
|
|
@ -107,7 +107,6 @@ pub async fn import_instances(import: ImportType, path: PathBuf) -> crate::Resul
|
|||
}
|
||||
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn import_instance(
|
||||
cluster_path: ClusterPath,
|
||||
import: ImportType,
|
||||
|
|
@ -185,7 +184,6 @@ pub fn default_launcher_path(r#type: ImportType) -> Option<PathBuf> {
|
|||
|
||||
/// Checks if a [`PathBuf`] is a valid instance for a given [`ImportType`]
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn is_valid_instance(instance_path: PathBuf, r#type: ImportType) -> bool {
|
||||
match r#type {
|
||||
ImportType::MultiMC | ImportType::PrismLauncher => {
|
||||
|
|
@ -204,7 +202,6 @@ pub async fn is_valid_instance(instance_path: PathBuf, r#type: ImportType) -> bo
|
|||
}
|
||||
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn cache_icon(icon_path: PathBuf) -> crate::Result<Option<PathBuf>> {
|
||||
let state = crate::State::get().await?;
|
||||
let bytes = tokio::fs::read(&icon_path).await;
|
||||
|
|
@ -254,7 +251,6 @@ pub async fn copy_minecraft(
|
|||
}
|
||||
|
||||
/// recursively get a [`Vec<PathBuf>`] of all subfiles.
|
||||
#[onelauncher_debug::debugger]
|
||||
#[async_recursion::async_recursion]
|
||||
#[tracing::instrument]
|
||||
pub async fn sub(path: &Path) -> crate::Result<Vec<PathBuf>> {
|
||||
|
|
|
|||
|
|
@ -169,7 +169,6 @@ async fn load_instance_cfg(file_path: &Path) -> crate::Result<MMCInstance> {
|
|||
}
|
||||
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn import_mmc(
|
||||
mmc_base_path: PathBuf,
|
||||
instance_folder: String,
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ use super::from::{
|
|||
/// Wrapper around [`install_pack_files`] that generates a pack creation description, and
|
||||
/// attempts to install the pack files. If it fails, it will remove the cluster (fail safely)
|
||||
/// Install a modpack from a mrpack file (a modrinth .zip format)
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn install_zipped_mrpack(
|
||||
location: CreatePackLocation,
|
||||
cluster_path: ClusterPath,
|
||||
|
|
@ -66,7 +65,6 @@ pub async fn install_zipped_mrpack(
|
|||
}
|
||||
|
||||
/// Install all pack files from a description. Does not remove the cluster if it fails
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn install_zipped_mrpack_files(
|
||||
create_pack: CreatePack,
|
||||
ignore_lock: bool,
|
||||
|
|
@ -241,7 +239,6 @@ pub async fn install_zipped_mrpack_files(
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip(mrpack_file))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn remove_all_related_files(
|
||||
cluster_path: ClusterPath,
|
||||
mrpack_file: bytes::Bytes,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ use crate::api::proxy::{ClusterPayload, IngressPayload, MessagePayload, ProcessP
|
|||
#[cfg(feature = "tauri")]
|
||||
use tauri::Manager;
|
||||
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn init_ingress(
|
||||
ingress_type: IngressType,
|
||||
total: f64,
|
||||
|
|
@ -25,7 +24,6 @@ pub async fn init_ingress(
|
|||
#[cfg(feature = "cli")]
|
||||
const CLI_TOTAL_INGRESS: u64 = 1000;
|
||||
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn init_ingress_internal(
|
||||
ingress_type: IngressType,
|
||||
total: f64,
|
||||
|
|
@ -100,7 +98,6 @@ pub async fn edit_ingress(
|
|||
|
||||
#[allow(unused_variables)]
|
||||
#[tracing::instrument(level = "debug")]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn send_ingress(
|
||||
key: &IngressId,
|
||||
increment: f64,
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@ macro_rules! ingress_join {
|
|||
|
||||
/// TryStreamExt concurrently for Ingress feeds
|
||||
#[tracing::instrument(skip(stream, f))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn ingress_try_for_each<I, F, Fut, T>(
|
||||
stream: I,
|
||||
limit: Option<usize>,
|
||||
|
|
|
|||
|
|
@ -7,9 +7,7 @@
|
|||
/// The name of the launcher.
|
||||
pub const NAME: &str = "OneLauncher";
|
||||
/// The version of the launcher
|
||||
pub const VERSION: &str = "0.1.0"; // todo: env
|
||||
/// The ID of the launcher.
|
||||
pub const ID: &str = "org.polyfrost.launcher";
|
||||
pub const VERSION: &str = "1.0.0"; // todo: env
|
||||
|
||||
// =========== Authentication ===========
|
||||
/// The Discord RPC client ID.
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ pub async fn download_minecraft(
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip_all, fields(version = version.id.as_str(), loader = ?loader))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn download_version_info(
|
||||
st: &State,
|
||||
version: &GameVersion,
|
||||
|
|
@ -113,7 +112,6 @@ pub async fn fetch_partial_version(
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip_all)]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn download_assets_index(
|
||||
st: &State,
|
||||
version: &GameVersionInfo,
|
||||
|
|
@ -162,7 +160,6 @@ pub async fn fetch_assets_index(
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip(st, index))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn download_assets(
|
||||
st: &State,
|
||||
legacy: bool,
|
||||
|
|
@ -224,7 +221,6 @@ pub async fn download_assets(
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip(st, libraries))]
|
||||
#[onelauncher_debug::debugger]
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub async fn download_libraries(
|
||||
st: &State,
|
||||
|
|
@ -319,7 +315,6 @@ pub async fn download_libraries(
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip_all)]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn download_client(
|
||||
st: &State,
|
||||
version: &GameVersionInfo,
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ macro_rules! data_entry {
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip(cluster))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn install_minecraft(
|
||||
cluster: &Cluster,
|
||||
old_ingress: Option<IngressId>,
|
||||
|
|
@ -243,7 +242,6 @@ pub async fn install_minecraft(
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip_all)]
|
||||
#[onelauncher_debug::debugger]
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub async fn launch_minecraft(
|
||||
cluster: &Cluster,
|
||||
|
|
|
|||
|
|
@ -512,7 +512,6 @@ impl Cluster {
|
|||
|
||||
/// watch the filesystem for changes with [`notify`].
|
||||
#[tracing::instrument(skip(watcher))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn watch(
|
||||
cluster_path: &Path,
|
||||
watcher: &mut Debouncer<RecommendedWatcher>,
|
||||
|
|
@ -543,7 +542,6 @@ impl Cluster {
|
|||
impl Clusters {
|
||||
/// Initialize the cluster manager and HashMap.
|
||||
#[tracing::instrument(skip(watcher))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn initialize(
|
||||
dirs: &Directories,
|
||||
watcher: &mut Debouncer<RecommendedWatcher>,
|
||||
|
|
@ -580,7 +578,6 @@ impl Clusters {
|
|||
|
||||
/// update registered packages
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn update_packages() {
|
||||
let res = async {
|
||||
let state = State::get().await?;
|
||||
|
|
@ -634,7 +631,6 @@ impl Clusters {
|
|||
|
||||
/// update all available package versions
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn update_versions() {
|
||||
let res = async {
|
||||
let state = State::get().await?;
|
||||
|
|
@ -670,7 +666,6 @@ impl Clusters {
|
|||
|
||||
/// insert a cluster into the HashMap
|
||||
#[tracing::instrument(skip(self, cluster))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn insert(&mut self, cluster: Cluster, dont_watch: bool) -> crate::Result<&Self> {
|
||||
send_cluster(
|
||||
cluster.uuid,
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ impl Directories {
|
|||
/// Bootstrap the initial settings directory on first startup.
|
||||
pub fn init_settings_dir() -> Option<PathBuf> {
|
||||
Self::env_path("ONELAUNCHER_CONFIG")
|
||||
.or_else(|| Some(dirs::config_dir()?.join(constants::ID)))
|
||||
.or_else(|| Some(dirs::data_dir()?.join(constants::NAME)))
|
||||
}
|
||||
|
||||
/// Bootstrap the initial settings directory on first startup.
|
||||
|
|
|
|||
|
|
@ -144,7 +144,6 @@ impl Metadata {
|
|||
|
||||
/// Initialize the core Metadata manager.
|
||||
#[tracing::instrument(skip(io_semaphore, fetch_semaphore))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn initialize(
|
||||
dirs: &Directories,
|
||||
online: bool,
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@ impl State {
|
|||
|
||||
/// Initializes the core OneLauncher state fully.
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
async fn initialize() -> crate::Result<RwLock<State>> {
|
||||
let ingress =
|
||||
init_ingress_internal(crate::IngressType::Initialize, 100.0, "initializing state")
|
||||
|
|
@ -205,7 +204,6 @@ impl State {
|
|||
|
||||
/// Synchronizes data that can change outside of our control.
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn sync() -> crate::Result<()> {
|
||||
let state = Self::get().await?;
|
||||
let sync_settings = async {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ use super::{Cluster, PackagePath};
|
|||
/// Creates [`Package`] data for a given [`Cluster`] from on-device files and APIs.
|
||||
/// Paths must be the full paths and not relative paths.
|
||||
#[tracing::instrument(skip(paths, _cluster, _io_semaphore, _fetch_semaphore))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn generate_context(
|
||||
_cluster: Cluster,
|
||||
paths: Vec<PathBuf>,
|
||||
|
|
@ -255,7 +254,7 @@ impl ManagedVersionFile {
|
|||
tracing::info!("downloading mod '{}' to cluster '{}'", self.file_name, cluster.meta.name);
|
||||
let path = cluster.get_full_path().await?.join("mods").join(&self.file_name);
|
||||
let state = State::get().await?;
|
||||
|
||||
|
||||
// TODO: Implement hashes
|
||||
let bytes = http::fetch(&self.url, None, &state.fetch_semaphore).await?;
|
||||
http::write(&path, &bytes, &state.io_semaphore).await?;
|
||||
|
|
@ -319,7 +318,6 @@ pub enum PackageFile {
|
|||
}
|
||||
|
||||
#[tracing::instrument(skip(io_semaphore))]
|
||||
#[onelauncher_debug::debugger]
|
||||
async fn read_icon(
|
||||
icon_path: Option<String>,
|
||||
cache_path: &Path,
|
||||
|
|
|
|||
|
|
@ -412,7 +412,6 @@ impl Processor {
|
|||
/// insert a process with a command and [`ClusterPath`].
|
||||
#[tracing::instrument(skip(self, uuid, command, post, censors))]
|
||||
#[tracing::instrument(level = "trace", skip(self))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn insert_process(
|
||||
&mut self,
|
||||
uuid: Uuid,
|
||||
|
|
@ -456,7 +455,6 @@ impl Processor {
|
|||
/// Insert a cached process with a [`ProcessorCache`].
|
||||
#[tracing::instrument(skip(self, cache))]
|
||||
#[tracing::instrument(level = "trace", skip(self))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn insert_restored(
|
||||
&mut self,
|
||||
cache: ProcessorCache,
|
||||
|
|
@ -544,7 +542,6 @@ impl Processor {
|
|||
|
||||
/// Get a process manager and runner awaiting for the exit status.
|
||||
#[tracing::instrument(skip(current_child))]
|
||||
#[onelauncher_debug::debugger]
|
||||
async fn manager(
|
||||
uuid: Uuid,
|
||||
post: Option<String>,
|
||||
|
|
|
|||
|
|
@ -76,7 +76,6 @@ where
|
|||
|
||||
/// Advanced HTTP fetch interface with json, sha1 validation, and ingress support.
|
||||
#[tracing::instrument(skip(json_body, semaphore))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn fetch_advanced(
|
||||
method: Method,
|
||||
url: &str,
|
||||
|
|
@ -167,7 +166,6 @@ pub async fn fetch_advanced(
|
|||
|
||||
/// A utility to fetch from multiple mirrored sources.
|
||||
#[tracing::instrument(skip(semaphore))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn fetch_from_mirrors(
|
||||
mirrors: &[&str],
|
||||
sha1: Option<&str>,
|
||||
|
|
@ -189,7 +187,6 @@ pub async fn fetch_from_mirrors(
|
|||
|
||||
/// Checks if we are playing offline by contacting a reliable server.
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn check_internet_connection(timeout: u64) -> bool {
|
||||
REQWEST_CLIENT
|
||||
.get("https://api.polyfrost.org/")
|
||||
|
|
@ -201,7 +198,6 @@ pub async fn check_internet_connection(timeout: u64) -> bool {
|
|||
|
||||
/// Post JSON to a specified URL (helpful for Microsoft auth)
|
||||
#[tracing::instrument(skip(json_body, semaphore))]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn post_json<T>(
|
||||
url: &str,
|
||||
json_body: serde_json::Value,
|
||||
|
|
|
|||
|
|
@ -183,7 +183,6 @@ pub async fn locate_java() -> Result<Vec<JavaVersion>, JavaError> {
|
|||
|
||||
/// Locate JRE's auto-installed by the launcher instance.
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
async fn locate_installed_java() -> Result<HashSet<PathBuf>, JavaError> {
|
||||
Box::pin(async move {
|
||||
let state = State::get().await.map_err(|_| JavaError::MutexError)?;
|
||||
|
|
@ -245,7 +244,6 @@ pub async fn check_java(paths: HashSet<PathBuf>) -> HashSet<JavaVersion> {
|
|||
/// Verifies that a java instance [`Path`] is valid.
|
||||
/// java_check from https://github.com/modrinth/theseus/blob/master/theseus/library/JavaInfo.class under MIT
|
||||
#[tracing::instrument]
|
||||
#[onelauncher_debug::debugger]
|
||||
pub async fn check_java_instance(path: &Path) -> Option<JavaVersion> {
|
||||
let Ok(path) = io::canonicalize(path) else {
|
||||
return None;
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
[package]
|
||||
name = "onelauncher_debug"
|
||||
version = "0.0.0"
|
||||
description = "Debugger macros for OneLauncher"
|
||||
license = { workspace = true }
|
||||
edition = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
documentation = { workspace = true }
|
||||
readme = { workspace = true }
|
||||
homepage = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
|
||||
[lib]
|
||||
proc-macro = true
|
||||
|
||||
[dependencies]
|
||||
syn = { workspace = true }
|
||||
quote = { workspace = true }
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
extern crate proc_macro;
|
||||
|
||||
use proc_macro::TokenStream;
|
||||
use quote::quote;
|
||||
use syn::{parse_macro_input, ItemFn};
|
||||
|
||||
/// Macro that isolates <Box>s that automatically are isolated in Tauri Debug environments
|
||||
/// This is useful for debugging functions that manage memory.
|
||||
#[proc_macro_attribute]
|
||||
pub fn debugger(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||
let input = parse_macro_input!(item as ItemFn);
|
||||
|
||||
let attrs = &input.attrs;
|
||||
let vis = &input.vis;
|
||||
let sig = &input.sig;
|
||||
let body = &input.block;
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
let result = quote! {
|
||||
#(#attrs)*
|
||||
#vis #sig {
|
||||
Box::pin(async move {
|
||||
#body
|
||||
}).await
|
||||
}
|
||||
};
|
||||
#[cfg(not(debug_assertions))]
|
||||
let result = quote! {
|
||||
#(#attrs)*
|
||||
#vis #sig {
|
||||
#body
|
||||
}
|
||||
};
|
||||
|
||||
TokenStream::from(result)
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "onelauncher_test"
|
||||
version = "0.0.0"
|
||||
description = "test implementation of onelauncher"
|
||||
version = { workspace = true }
|
||||
license = { workspace = true }
|
||||
edition = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
|
|
|||
38
flake.nix
38
flake.nix
|
|
@ -1,38 +0,0 @@
|
|||
{
|
||||
description = "OneLauncher: Next-generation open source Minecraft launcher";
|
||||
|
||||
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
inputs.crane.url = "github:ipetkov/crane";
|
||||
inputs.crane.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
inputs.fenix.url = "github:nix-community/fenix";
|
||||
inputs.fenix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
inputs.utils.url = "github:numtide/flake-utils";
|
||||
inputs.utils.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
inputs.rust.url = "github:numtide/rust-overlay";
|
||||
inputs.rust.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
inputs.advisory.url = "github:rustsec/advisory-db";
|
||||
inputs.advisory.flake = false;
|
||||
|
||||
outputs = { self, nixpkgs, crane, fenix, utils, rust, advisory, ... }:
|
||||
utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
inherit (pkgs) lib;
|
||||
|
||||
craneLib = crane.lib.${system};
|
||||
cargoSrc = craneLib.cleanCargoSource (craneLib.path ./.);
|
||||
arguments = {
|
||||
inherit cargoSrc;
|
||||
strictDeps = true;
|
||||
|
||||
};
|
||||
in {
|
||||
|
||||
}
|
||||
);
|
||||
}
|
||||
22
package.json
22
package.json
|
|
@ -2,7 +2,7 @@
|
|||
"name": "@onelauncher/root",
|
||||
"type": "module",
|
||||
"version": "1.0.0",
|
||||
"packageManager": "pnpm@9.5.0",
|
||||
"packageManager": "pnpm@9.6.0",
|
||||
"description": "Next-generation open source Minecraft launcher and tools for interacting with Polyfrost",
|
||||
"license": "GPL-3.0-only",
|
||||
"repository": {
|
||||
|
|
@ -12,17 +12,23 @@
|
|||
"bugs": {
|
||||
"url": "https://github.com/polyfrost/onelauncher/issues"
|
||||
},
|
||||
"engines": {
|
||||
"pnpm": "9.6.0",
|
||||
"npm": "pnpm",
|
||||
"yarn": "pnpm",
|
||||
"node": ">=18"
|
||||
},
|
||||
"scripts": {
|
||||
"gui": "pnpm --filter @onelauncher/gui",
|
||||
"client": "pnpm --filter @onelauncher/client",
|
||||
"dev": "pnpm gui tauri dev",
|
||||
"build": "pnpm gui tauri build",
|
||||
"gui": "pnpm --filter @onelauncher/gui -- ",
|
||||
"client": "pnpm --filter @onelauncher/client --",
|
||||
"tauri": "pnpm gui tauri",
|
||||
"lint": "pnpm eslint . --cache",
|
||||
"format": "pnpm lint --fix",
|
||||
"release:node": "pnpm bumpp -r"
|
||||
"lint:fix": "pnpm lint --fix",
|
||||
"release:node": "pnpm bumpp -r",
|
||||
"core": "cd crates/core && cargo"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@flowr/eslint-config": "^3.9.1",
|
||||
"@flowr/eslint-config": "^3.10.0",
|
||||
"@types/node": "^20.14.12",
|
||||
"@vitest/ui": "^2.0.4",
|
||||
"bumpp": "^9.4.1",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:polyfrost/onelauncher",
|
||||
"directory": "client"
|
||||
"directory": "packages/client"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"main": "./src/index.ts",
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
"@tanstack/solid-query": "^5.51.9",
|
||||
"fast-equals": "^5.0.1",
|
||||
"plausible-tracker": "^0.3.9",
|
||||
"solid-js": "^1.8.18",
|
||||
"solid-js": "^1.8.19",
|
||||
"zod": "^3.23.8"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@ cask "onelauncher" do
|
|||
|
||||
app "OneLauncher.app"
|
||||
|
||||
uninstall quit: "org.polyfrost.launcher"
|
||||
uninstall quit: "OneLauncher"
|
||||
|
||||
zap trash: [
|
||||
"~/Library/Application Support/org.polyfrost.launcher",
|
||||
"~/Library/Caches/org.polyfrost.launcher",
|
||||
"~/Library/Saved Application State/org.polyfrost.launcher.savedState",
|
||||
"~/Library/WebKit/org.polyfrost.launcher",
|
||||
"~/Library/Application Support/OneLauncher",
|
||||
"~/Library/Caches/OneLauncher",
|
||||
"~/Library/Saved Application State/OneLauncher.savedState",
|
||||
"~/Library/WebKit/OneLauncher",
|
||||
]
|
||||
end
|
||||
|
|
|
|||
17
packages/distribution/package.json
Normal file
17
packages/distribution/package.json
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"name": "@onelauncher/distribution",
|
||||
"type": "module",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"description": "distribution files for OneLauncher",
|
||||
"license": "GPL-3.0-only",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:polyfrost/onelauncher",
|
||||
"directory": "packages/distribution"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"scripts": {},
|
||||
"dependencies": {},
|
||||
"devDependencies": {}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:polyfrost/onelauncher",
|
||||
"directory": "client"
|
||||
"directory": "packages/scripts"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"main": "./src/index.ts",
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
"tauri": "tsx tauri.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@flowr/utils": "^3.9.1",
|
||||
"@flowr/utils": "^3.10.0",
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"execa": "^9.3.0",
|
||||
"semver": "^7.6.3",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Set default value of 0 for external command exit code
|
||||
# set default value of 0 for external command exit code
|
||||
$LASTEXITCODE = 0
|
||||
# Enables strict mode, which causes PowerShell to treat uninitialized variables, undefined functions, and other common errors as terminating errors.
|
||||
# enables strict mode, which causes PowerShell to treat uninitialized variables, undefined functions, and other common errors as terminating errors.
|
||||
$ErrorActionPreference = if ($env:CI) { 'Stop' } else { 'Inquire' }
|
||||
Set-StrictMode -Version Latest
|
||||
|
||||
|
|
@ -12,7 +12,7 @@ function Reset-Path {
|
|||
)
|
||||
}
|
||||
|
||||
# Verify if environment is Windows 64-bit and if the user is an administrator
|
||||
# verifies if the environment is Windows 64-bit and if the user is an administrator
|
||||
if ((-not [string]::IsNullOrEmpty($env:PROCESSOR_ARCHITEW6432)) -or (
|
||||
"$env:PROCESSOR_ARCHITECTURE" -eq 'ARM64'
|
||||
) -or (
|
||||
|
|
@ -25,19 +25,20 @@ if ((-not [string]::IsNullOrEmpty($env:PROCESSOR_ARCHITEW6432)) -or (
|
|||
if (Test-Path "$($env:WINDIR)\SysNative\WindowsPowerShell\v1.0\powershell.exe" -PathType Leaf) {
|
||||
throw 'You are using PowerShell (32-bit), please re-run in PowerShell (64-bit)'
|
||||
} else {
|
||||
throw 'This script is only supported on Windows 64-bit'
|
||||
throw 'This script is only supported on Windows 64-bit operating systems, use the script.sh for Unix systems.'
|
||||
}
|
||||
Exit 1
|
||||
} elseif (
|
||||
-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
|
||||
) {
|
||||
# Start a new PowerShell process with administrator privileges and set the working directory to the directory where the script is located
|
||||
# starts a new PowerShell process with administrator privileges and set the working directory to the directory where the script is located
|
||||
$proc = Start-Process -PassThru -Wait -FilePath 'PowerShell.exe' -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$($MyInvocation.MyCommand.Definition)`"" -WorkingDirectory "$PSScriptRoot"
|
||||
# Reset path so the user doesn't have to restart the shell to use the tools installed by this script
|
||||
# resets path so the user doesn't have to restart the shell to use the tools installed by this script
|
||||
Reset-Path
|
||||
Exit $proc.ExitCode
|
||||
}
|
||||
|
||||
# exits the script with an error
|
||||
function Exit-WithError($err, $help = $null) {
|
||||
if ($null -ne $help) {
|
||||
Write-Host
|
||||
|
|
@ -47,6 +48,7 @@ function Exit-WithError($err, $help = $null) {
|
|||
Exit 1
|
||||
}
|
||||
|
||||
# adds a directory to the path env variable
|
||||
function Add-DirectoryToPath($directory) {
|
||||
Reset-Path
|
||||
if ($env:Path.Split([IO.Path]::PathSeparator) -notcontains $directory) {
|
||||
|
|
@ -57,21 +59,21 @@ function Add-DirectoryToPath($directory) {
|
|||
)
|
||||
|
||||
if ($env:CI) {
|
||||
# If running in CI, we need to use GITHUB_PATH instead of the normal PATH env variables
|
||||
# if running in CI, we need to use GITHUB_PATH instead of the normal PATH env variables
|
||||
Add-Content $env:GITHUB_PATH "$directory`n"
|
||||
}
|
||||
}
|
||||
Reset-Path
|
||||
}
|
||||
|
||||
# Reset PATH to ensure the script doesn't have stale Path entries
|
||||
# resets PATH to ensure the script doesn't have stale Path entries
|
||||
Reset-Path
|
||||
|
||||
# Get project dir (get grandparent dir from script location: <PROJECT_ROOT>\scripts\setup.ps1)
|
||||
# gets project dir (get grandparent dir from script location: <PROJECT_ROOT>\packages\scripts\setup.ps1)
|
||||
$projectRoot = Split-Path -Path $PSScriptRoot -Parent
|
||||
$packageJson = Get-Content -Raw -Path "$projectRoot\package.json" | ConvertFrom-Json
|
||||
|
||||
# Valid winget exit status
|
||||
# valid winget exit statuses
|
||||
$wingetValidExit = 0, -1978335189, -1978335153, -1978335135
|
||||
|
||||
Write-Host 'OneLauncher Development Environment Setup' -ForegroundColor Magenta
|
||||
|
|
@ -81,8 +83,8 @@ To set up your machine for OneLauncher development, this script will do the foll
|
|||
1) Install Windows C++ build tools
|
||||
2) Install Edge Webview 2
|
||||
3) Install Rust and Cargo
|
||||
4) Install Rust tools
|
||||
5) Install Node.js, npm and pnpm
|
||||
4) Install Rust tools (if not already installed)
|
||||
5) Install Node.js, npm and pnpm (if not already installed)
|
||||
"@
|
||||
|
||||
# Install System dependencies (GitHub Actions already has all of those installed)
|
||||
|
|
@ -94,7 +96,7 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
|||
'@
|
||||
}
|
||||
|
||||
# Check system winget version is greater or equal to v1.4.10052
|
||||
# check system winget version is greater or equal to v1.4.10052
|
||||
$wingetVersion = [Version]((winget --version) -replace '.*?(\d+)\.(\d+)\.(\d+).*', '$1.$2.$3')
|
||||
$requiredVersion = [Version]'1.4.10052'
|
||||
if ($wingetVersion.CompareTo($requiredVersion) -lt 0) {
|
||||
|
|
@ -102,7 +104,7 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
|||
Exit-WithError $errorMessage
|
||||
}
|
||||
|
||||
# Check connectivity to GitHub
|
||||
# check connectivity to github
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
if (-not ((Test-NetConnection -ComputerName 'github.com' -Port 80).TcpTestSucceeded)) {
|
||||
Exit-WithError "Can't connect to github, check your internet connection and run this script again"
|
||||
|
|
@ -118,7 +120,7 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
|||
Write-Host 'This will take some time as it involves downloading several gigabytes of data....' -ForegroundColor Cyan
|
||||
winget install -e --accept-source-agreements --force --disable-interactivity --id Microsoft.VisualStudio.2022.BuildTools `
|
||||
--override 'updateall --quiet --wait'
|
||||
# Force install because BuildTools is itself a package manager, so let it decide if something needs to be installed or not
|
||||
# force install because BuildTools is itself a package manager, so let it decide if something needs to be installed or not
|
||||
winget install -e --accept-source-agreements --force --disable-interactivity --id Microsoft.VisualStudio.2022.BuildTools `
|
||||
--override '--wait --quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended'
|
||||
if (-not ($wingetValidExit -contains $LASTEXITCODE)) {
|
||||
|
|
@ -129,7 +131,7 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
|||
|
||||
Write-Host
|
||||
Write-Host 'Installing Edge Webview 2...' -ForegroundColor Yellow
|
||||
# This is normally already available, but on some early Windows 10 versions it isn't
|
||||
# this is normally already available, but on some early windows 10 versions it isn't
|
||||
winget install -e --accept-source-agreements --disable-interactivity --id Microsoft.EdgeWebView2Runtime
|
||||
if (-not ($wingetValidExit -contains $LASTEXITCODE)) {
|
||||
Exit-WithError 'Failed to install Edge Webview 2'
|
||||
|
|
@ -157,7 +159,7 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
|||
|
||||
Write-Host
|
||||
Write-Host 'Installing NodeJS...' -ForegroundColor Yellow
|
||||
# Check if Node.JS is already installed and if it's compatible with the project
|
||||
# check if nodejs is already installed and if it's compatible with the project
|
||||
$currentNode = Get-Command node -ea 0
|
||||
$currentNodeVersion = if (-not $currentNode) { $null } elseif ($currentNode.Version) { $currentNode.Version } elseif ((node --version) -match '(?sm)(\d+(\.\d+)*)') { [Version]$matches[1] } else { $null }
|
||||
$enginesNodeVersion = if ($packageJson.engines.node -match '(?sm)(\d+(\.\d+)*)') { [Version]$matches[1] } else { $null }
|
||||
|
|
@ -165,17 +167,17 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
|||
Exit-WithError "Current Node.JS version: $currentNodeVersion (required: $enginesNodeVersion)" `
|
||||
'Uninstall the current version of Node.JS and run this script again'
|
||||
}
|
||||
# Install Node.JS
|
||||
# installs nodejs
|
||||
winget install -e --accept-source-agreements --disable-interactivity --id OpenJS.NodeJS
|
||||
if (-not ($wingetValidExit -contains $LASTEXITCODE)) {
|
||||
Exit-WithError 'Failed to install NodeJS'
|
||||
} else {
|
||||
$LASTEXITCODE = 0
|
||||
}
|
||||
# Add NodeJS to the PATH
|
||||
# adds nodejs to the PATH
|
||||
Add-DirectoryToPath "$env:SystemDrive\Program Files\nodejs"
|
||||
|
||||
# Reset Path to ensure that executable installed above are available to rest of the script
|
||||
# rests PATH to ensure that executable installed above are available to rest of the script
|
||||
Reset-Path
|
||||
|
||||
Write-Host
|
||||
|
|
@ -194,22 +196,22 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
|||
|
||||
Write-Host
|
||||
Write-Host 'Installing for pnpm...' -ForegroundColor Yellow
|
||||
# Check if pnpm is already installed and if it's compatible with the project
|
||||
# checks if pnpm is already installed and if it's compatible with the project
|
||||
$currentPnpmVersion = if (-not (Get-Command pnpm -ea 0)) { $null } elseif ((pnpm --version) -match '(?sm)(\d+(\.\d+)*)') { [Version]$matches[1] } else { $null }
|
||||
$enginesPnpmVersion = if ($packageJson.engines.pnpm -match '(?sm)(\d+(\.\d+)*)') { [Version]$matches[1] } else { $null }
|
||||
|
||||
if (-not $currentPnpmVersion) {
|
||||
# Remove possible remaining envvars from old pnpm installation
|
||||
# removes possible remaining envvars from old pnpm installation
|
||||
[System.Environment]::SetEnvironmentVariable('PNPM_HOME', $null, [System.EnvironmentVariableTarget]::Machine)
|
||||
[System.Environment]::SetEnvironmentVariable('PNPM_HOME', $null, [System.EnvironmentVariableTarget]::User)
|
||||
|
||||
# Install pnpm
|
||||
# installs pnpm
|
||||
npm install -g "pnpm@latest-$($enginesPnpmVersion.Major)"
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Exit-WithError 'Failed to install pnpm'
|
||||
}
|
||||
|
||||
# Add NPM global modules to the PATH
|
||||
# adds NPM global modules to the PATH
|
||||
if (Test-Path "$env:APPDATA\npm" -PathType Container) {
|
||||
Add-DirectoryToPath "$env:APPDATA\npm"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ if [ "${CI:-}" = "true" ]; then
|
|||
set -x
|
||||
fi
|
||||
|
||||
# displays an error message and exits the script
|
||||
err() {
|
||||
for _line in "$@"; do
|
||||
echo "$_line" >&2
|
||||
|
|
@ -13,6 +14,7 @@ err() {
|
|||
exit 1
|
||||
}
|
||||
|
||||
# checks if a command/program exists
|
||||
has() {
|
||||
for prog in "$@"; do
|
||||
if ! command -v "$prog" 1>/dev/null 2>&1; then
|
||||
|
|
@ -21,6 +23,7 @@ has() {
|
|||
done
|
||||
}
|
||||
|
||||
# runs a specified command with sudo
|
||||
sudo() {
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
"$@"
|
||||
|
|
@ -29,6 +32,7 @@ sudo() {
|
|||
fi
|
||||
}
|
||||
|
||||
# fails the script at a specific line with an unknown error
|
||||
script_failure() {
|
||||
if [ -n "${1:-}" ]; then
|
||||
_line="on line $1"
|
||||
|
|
@ -40,9 +44,10 @@ script_failure() {
|
|||
|
||||
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'
|
||||
err 'Bash for Windows is not supported, please use Powershell or CMD and run setup.ps1'
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
@ -53,6 +58,7 @@ if [ "${CI:-}" != "true" ]; then
|
|||
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." \
|
||||
|
|
@ -60,6 +66,7 @@ if [ "${CI:-}" != "true" ]; then
|
|||
'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." \
|
||||
|
|
@ -69,12 +76,14 @@ if [ "${CI:-}" != "true" ]; then
|
|||
echo
|
||||
fi
|
||||
|
||||
# Install system deps
|
||||
# installs system deps
|
||||
case "$(uname)" in
|
||||
"Darwin")
|
||||
if [ "$(uname -m)" = 'x86_64' ] && ! [ "${CI:-}" = "true" ]; then
|
||||
brew install nasm
|
||||
fi
|
||||
|
||||
echo
|
||||
;;
|
||||
"Linux")
|
||||
# https://v2.tauri.app/start/prerequisites/
|
||||
|
|
@ -84,7 +93,7 @@ case "$(uname)" in
|
|||
|
||||
# Tauri dependencies
|
||||
set -- build-essential curl wget file libssl-dev libgtk-3-dev librsvg2-dev \
|
||||
libwebkit2gtk-4.1-dev libayatana-appindicator3-dev libxdo-dev libvips42
|
||||
libwebkit2gtk-4.1-dev libayatana-appindicator3-dev libxdo-dev libdbus-1-dev libvips42
|
||||
|
||||
sudo apt-get -y update
|
||||
sudo apt-get -y install "$@"
|
||||
|
|
@ -93,7 +102,7 @@ case "$(uname)" in
|
|||
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 xdotool libvips
|
||||
set -- appmenu-gtk-module libappindicator-gtk3 base-devel curl wget file openssl gtk3 librsvg webkit2gtk-4.1 libayatana-appindicator dbus xdotool libvips
|
||||
|
||||
sudo pacman -Sy --needed "$@"
|
||||
elif has dnf; then
|
||||
|
|
@ -107,7 +116,7 @@ case "$(uname)" in
|
|||
fi
|
||||
|
||||
# Tauri dependencies
|
||||
set -- openssl webkit2gtk4.1-devel openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel libxdo-devel vips
|
||||
set -- openssl webkit2gtk4.1-devel openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel libxdo-devel dbus vips
|
||||
|
||||
sudo dnf install "$@"
|
||||
elif has apk; then
|
||||
|
|
@ -117,7 +126,7 @@ case "$(uname)" in
|
|||
|
||||
# Tauri dependencies
|
||||
set -- build-base curl wget file openssl-dev gtk+3.0-dev librsvg-dev \
|
||||
webkit2gtk-4.1-dev libayatana-indicator-dev xdotool vips
|
||||
webkit2gtk-4.1-dev libayatana-indicator-dev xdotool-dev dbus-dev vips
|
||||
|
||||
sudo apk add "$@"
|
||||
elif has emerge; then
|
||||
|
|
@ -154,6 +163,7 @@ case "$(uname)" in
|
|||
;;
|
||||
esac
|
||||
|
||||
# installs cargo-watch for development purposes
|
||||
if [ "${CI:-}" != "true" ]; then
|
||||
echo "Installing Rust tools..."
|
||||
|
||||
|
|
|
|||
325
pnpm-lock.yaml
generated
325
pnpm-lock.yaml
generated
|
|
@ -9,8 +9,8 @@ importers:
|
|||
.:
|
||||
devDependencies:
|
||||
'@flowr/eslint-config':
|
||||
specifier: ^3.9.1
|
||||
version: 3.9.1(@unocss/eslint-plugin@0.61.5(eslint@9.7.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.7.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.4)(vitest@2.0.4(@types/node@20.14.12)(@vitest/ui@2.0.4)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.7.0))
|
||||
specifier: ^3.10.0
|
||||
version: 3.10.0(@unocss/eslint-plugin@0.61.5(eslint@9.7.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.7.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.4)(vitest@2.0.4(@types/node@20.14.12)(@vitest/ui@2.0.4)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.7.0))
|
||||
'@types/node':
|
||||
specifier: ^20.14.12
|
||||
version: 20.14.12
|
||||
|
|
@ -61,19 +61,19 @@ importers:
|
|||
version: 0.2.3
|
||||
'@rspc/solid-query':
|
||||
specifier: ^0.2.3
|
||||
version: 0.2.3(@tanstack/solid-query@5.51.9(solid-js@1.8.18))(solid-js@1.8.18)
|
||||
version: 0.2.3(@tanstack/solid-query@5.51.9(solid-js@1.8.19))(solid-js@1.8.19)
|
||||
'@rspc/tauri':
|
||||
specifier: ^0.2.0
|
||||
version: 0.2.0(@tauri-apps/api@2.0.0-beta.14)
|
||||
'@solid-primitives/refs':
|
||||
specifier: ^1.0.8
|
||||
version: 1.0.8(solid-js@1.8.18)
|
||||
version: 1.0.8(solid-js@1.8.19)
|
||||
'@solidjs/router':
|
||||
specifier: ^0.14.1
|
||||
version: 0.14.1(solid-js@1.8.18)
|
||||
version: 0.14.1(solid-js@1.8.19)
|
||||
'@tanstack/solid-query':
|
||||
specifier: ^5.51.9
|
||||
version: 5.51.9(solid-js@1.8.18)
|
||||
version: 5.51.9(solid-js@1.8.19)
|
||||
'@tauri-apps/api':
|
||||
specifier: ^2.0.0-beta.13
|
||||
version: 2.0.0-beta.14
|
||||
|
|
@ -85,35 +85,35 @@ importers:
|
|||
version: https://codeload.github.com/tauri-apps/tauri-plugin-shell/tar.gz/adb938ddf434547ae35f74dc1a080908da03ea96
|
||||
'@thisbeyond/solid-dnd':
|
||||
specifier: ^0.7.5
|
||||
version: 0.7.5(solid-js@1.8.18)
|
||||
version: 0.7.5(solid-js@1.8.19)
|
||||
'@thisbeyond/solid-select':
|
||||
specifier: ^0.15.0
|
||||
version: 0.15.0(solid-js@1.8.18)
|
||||
version: 0.15.0(solid-js@1.8.19)
|
||||
'@unocss/reset':
|
||||
specifier: ^0.61.5
|
||||
version: 0.61.5
|
||||
'@untitled-theme/icons-solid':
|
||||
specifier: ^0.10.5
|
||||
version: 0.10.5(solid-js@1.8.18)
|
||||
version: 0.10.5(solid-js@1.8.19)
|
||||
overlayscrollbars:
|
||||
specifier: ^2.9.2
|
||||
version: 2.9.2
|
||||
overlayscrollbars-solid:
|
||||
specifier: ^0.5.5
|
||||
version: 0.5.5(overlayscrollbars@2.9.2)(solid-js@1.8.18)
|
||||
version: 0.5.5(overlayscrollbars@2.9.2)(solid-js@1.8.19)
|
||||
solid-js:
|
||||
specifier: ^1.8.18
|
||||
version: 1.8.18
|
||||
specifier: ^1.8.19
|
||||
version: 1.8.19
|
||||
solid-transition-group:
|
||||
specifier: ^0.2.3
|
||||
version: 0.2.3(solid-js@1.8.18)
|
||||
version: 0.2.3(solid-js@1.8.19)
|
||||
uuid:
|
||||
specifier: ^10.0.0
|
||||
version: 10.0.0
|
||||
devDependencies:
|
||||
'@solidjs/testing-library':
|
||||
specifier: ^0.8.9
|
||||
version: 0.8.9(@solidjs/router@0.14.1(solid-js@1.8.18))(solid-js@1.8.18)
|
||||
version: 0.8.9(@solidjs/router@0.14.1(solid-js@1.8.19))(solid-js@1.8.19)
|
||||
'@tauri-apps/cli':
|
||||
specifier: ^2.0.0-beta.20
|
||||
version: 2.0.0-beta.20
|
||||
|
|
@ -131,13 +131,13 @@ importers:
|
|||
version: 1.77.8
|
||||
unocss:
|
||||
specifier: ^0.61.5
|
||||
version: 0.61.5(postcss@8.4.39)(rollup@4.19.0)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
version: 0.61.5(postcss@8.4.40)(rollup@4.19.0)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
vite-plugin-solid:
|
||||
specifier: ^2.10.2
|
||||
version: 2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.18)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
version: 2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.19)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
vite-plugin-solid-svg:
|
||||
specifier: ^0.8.1
|
||||
version: 0.8.1(solid-js@1.8.18)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
version: 0.8.1(solid-js@1.8.19)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^4.3.2
|
||||
version: 4.3.2(typescript@5.5.4)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
|
|
@ -149,16 +149,16 @@ importers:
|
|||
version: 0.2.3
|
||||
'@rspc/solid-query':
|
||||
specifier: ^0.2.3
|
||||
version: 0.2.3(@tanstack/solid-query@5.51.9(solid-js@1.8.18))(solid-js@1.8.18)
|
||||
version: 0.2.3(@tanstack/solid-query@5.51.9(solid-js@1.8.19))(solid-js@1.8.19)
|
||||
'@rspc/tauri':
|
||||
specifier: ^0.2.0
|
||||
version: 0.2.0(@tauri-apps/api@2.0.0-beta.15)
|
||||
'@solid-primitives/deep':
|
||||
specifier: ^0.2.9
|
||||
version: 0.2.9(solid-js@1.8.18)
|
||||
version: 0.2.9(solid-js@1.8.19)
|
||||
'@tanstack/solid-query':
|
||||
specifier: ^5.51.9
|
||||
version: 5.51.9(solid-js@1.8.18)
|
||||
version: 5.51.9(solid-js@1.8.19)
|
||||
fast-equals:
|
||||
specifier: ^5.0.1
|
||||
version: 5.0.1
|
||||
|
|
@ -166,8 +166,8 @@ importers:
|
|||
specifier: ^0.3.9
|
||||
version: 0.3.9
|
||||
solid-js:
|
||||
specifier: ^1.8.18
|
||||
version: 1.8.18
|
||||
specifier: ^1.8.19
|
||||
version: 1.8.19
|
||||
zod:
|
||||
specifier: ^3.23.8
|
||||
version: 3.23.8
|
||||
|
|
@ -175,8 +175,8 @@ importers:
|
|||
packages/scripts:
|
||||
dependencies:
|
||||
'@flowr/utils':
|
||||
specifier: ^3.9.1
|
||||
version: 3.9.1
|
||||
specifier: ^3.10.0
|
||||
version: 3.10.0
|
||||
'@iarna/toml':
|
||||
specifier: ^2.2.5
|
||||
version: 2.2.5
|
||||
|
|
@ -206,16 +206,6 @@ packages:
|
|||
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
|
||||
'@antfu/eslint-plugin-unused-imports@4.0.0':
|
||||
resolution: {integrity: sha512-bvM3EnoradE3WbdOWafEGj0VzTi455gWvjmIHsmpWoIHJ6XehjnJh8Dq3+sz8t3bh14LQyFBKTx3m24q2zE1dw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/eslint-plugin': ^8.0.0-0
|
||||
eslint: ^9.0.0
|
||||
peerDependenciesMeta:
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
optional: true
|
||||
|
||||
'@antfu/install-pkg@0.1.1':
|
||||
resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==}
|
||||
|
||||
|
|
@ -590,24 +580,25 @@ packages:
|
|||
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@flowr/eslint-config@3.9.1':
|
||||
resolution: {integrity: sha512-xKukUf250BQ/FsEzzdNcCRfuSZ9lgzfTWnkWU8OaTgtLukOUyk+qhVCKIswG5jvoEpZeGHU43fGbOyGVB0PIBQ==}
|
||||
'@flowr/eslint-config@3.10.0':
|
||||
resolution: {integrity: sha512-ESQnoQGUU/48Jn/M+2EKQGpr2taz2+2bIc6ypk6yxhYEOgKIx6QMesxKwOEyS4h4qLn2JwUuYQ4bKX2jAh5Yrg==}
|
||||
engines: {node: '>=20'}
|
||||
peerDependencies:
|
||||
'@eslint-react/eslint-plugin': ^1.5.8
|
||||
'@prettier/plugin-xml': ^3.4.1
|
||||
'@tanstack/eslint-plugin-query': ^5.50.1
|
||||
'@unocss/eslint-plugin': '>=0.50.0'
|
||||
'@unocss/eslint-plugin': '>=0.59.4 < 1'
|
||||
astro-eslint-parser: ^1.0.2
|
||||
eslint: '>=8.40.0'
|
||||
eslint-plugin-astro: ^1.2.0
|
||||
eslint-plugin-format: '>=0.1.0'
|
||||
eslint-plugin-jsx-a11y: ^6.9.0
|
||||
eslint-plugin-react-hooks: ^4.6.0
|
||||
eslint-plugin-solid: ^0.14.0
|
||||
eslint-plugin-svelte: '>=2.39.0'
|
||||
eslint-plugin-vue: ^9.26.0
|
||||
eslint-plugin-vuejs-accessibility: ^2.3.0
|
||||
eslint-processor-vue-blocks: ^0.1.2
|
||||
eslint-processor-vue-blocks: '>=0.1.2'
|
||||
prettier-plugin-astro: ^0.14.0
|
||||
prettier-plugin-slidev: ^1.0.5
|
||||
svelte-eslint-parser: '>=0.36.0'
|
||||
|
|
@ -627,6 +618,8 @@ packages:
|
|||
optional: true
|
||||
eslint-plugin-format:
|
||||
optional: true
|
||||
eslint-plugin-jsx-a11y:
|
||||
optional: true
|
||||
eslint-plugin-react-hooks:
|
||||
optional: true
|
||||
eslint-plugin-solid:
|
||||
|
|
@ -648,8 +641,8 @@ packages:
|
|||
vue-eslint-parser:
|
||||
optional: true
|
||||
|
||||
'@flowr/utils@3.9.1':
|
||||
resolution: {integrity: sha512-SArBTE/8r9T0y0GPcGMEwtwpDxrJF/qrDRBt2s8XGAgDmj7msLRXe2EX0IsuIw6i3PPSOaTYbEAn8EawHn0MJw==}
|
||||
'@flowr/utils@3.10.0':
|
||||
resolution: {integrity: sha512-tr8c3m0rzBDab1A14yi6y19rapB8isULCYnYvpJacZmbyYaGCx6Ijmu00gtvv+RGkJcIhrJVueqC5B6YZ8KSVA==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
'@fontsource/poppins@5.0.14':
|
||||
|
|
@ -1205,8 +1198,8 @@ packages:
|
|||
resolution: {integrity: sha512-iNxuQ0TMVfFiMJ2al4bGd/mY9+aLtBxnHfo7B2xoVzR6cRFgUdBLlMa//MSIjSmVRpCEqNLQnkxpJb96tFG+xw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/scope-manager@8.0.0-alpha.51':
|
||||
resolution: {integrity: sha512-zT8Ib31deJCqRVJepZOMFoHiFAsSHOh5TmedcFeqyiMuzrqBMtF95iv6mPJqFDIXNgxmTkahpRan1z043ckBnA==}
|
||||
'@typescript-eslint/scope-manager@8.0.0-alpha.54':
|
||||
resolution: {integrity: sha512-z+5GlCAskUTTWOFF2G7olTyKZyn+AVdDkiNCP2fhDtOCV1ePX1EaXy1uwqRRROf8p8uryj7vR7OtIErZE5yAng==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/type-utils@8.0.0-alpha.41':
|
||||
|
|
@ -1230,8 +1223,8 @@ packages:
|
|||
resolution: {integrity: sha512-n0P2FP3YC3pD3yoiCf4lHqbUP45xlnOk8HkjB+LtKSUZZWLLJ8k1ZXZtQj7MEX22tytCMj//Bmq403xFuCwfIg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/types@8.0.0-alpha.51':
|
||||
resolution: {integrity: sha512-joqeu3jITe9BbgXAggKKg9mBIGDL6mAf2JVlo00zWP50u4qnsa3NWKMwWp77pjtI9E2DPU0vlTEdL+v/3aTPJA==}
|
||||
'@typescript-eslint/types@8.0.0-alpha.54':
|
||||
resolution: {integrity: sha512-p4CGzb2UW2tJgk7zRL1Iwyd4qMuPnF2TL5/VdEcz2KANHkTReagQ6B3MzJGcuNIK7t+ysolZZILJpj+8cHBzsQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@7.16.0':
|
||||
|
|
@ -1261,8 +1254,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.0.0-alpha.51':
|
||||
resolution: {integrity: sha512-p3kD3rVdqmr4Iga86xzUR5wTsIKof/GsqnUMWZbmFpD3fmMXs1VLoXJegTqVMtWncu14dZUohRV2xPSScBAnxg==}
|
||||
'@typescript-eslint/typescript-estree@8.0.0-alpha.54':
|
||||
resolution: {integrity: sha512-oCgHCQm88pBx9QwfGVE42LXVRG3M5PUIP4w521yGMijHn5FEt+E/NGMPU3NXWKUvp0LpEkxABSinYdz69aZITA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
|
@ -1288,8 +1281,8 @@ packages:
|
|||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
|
||||
'@typescript-eslint/utils@8.0.0-alpha.51':
|
||||
resolution: {integrity: sha512-OJac7/t6M/jQlgAQSM2yffKXZL8d/6vTbQPChC5v4oGHFuKHF2dEFeevNJlIS9iR6EtquRsHup2GDwqw6bWyrw==}
|
||||
'@typescript-eslint/utils@8.0.0-alpha.54':
|
||||
resolution: {integrity: sha512-Xu+dl3SJ4NOuzSHpRj1nIJPsoNTcPuG6EFVolrEVl+GZReaiBdexwpTo4/gV64khZEVewEIdYV3FBs5elIjI0g==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
|
|
@ -1306,8 +1299,8 @@ packages:
|
|||
resolution: {integrity: sha512-uetCAUBVC+YarBdZnWzDDgX11PpAEGV8Cw31I3d1xNrhx6/bJGThKX+holEmd3amMdnr4w/XUKH/4YuQOgtjDA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.0.0-alpha.51':
|
||||
resolution: {integrity: sha512-bOLfR14nLfhO9BBD1YpmnQSTNTapAIegKsb4Ms1RAQXkJRKIeuLS42AEYRM8uvLiNLk0hDIBjCnMPTAyDAWLbw==}
|
||||
'@typescript-eslint/visitor-keys@8.0.0-alpha.54':
|
||||
resolution: {integrity: sha512-lS8wrI6Vxw6ebIi+ehocAjXLG43bN5JCC8+wtGDD3Xw9O/EVpanAVdftefJs/mlK87eyccvVIiiHgD294TpIEQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@unocss/astro@0.61.5':
|
||||
|
|
@ -1871,13 +1864,14 @@ packages:
|
|||
peerDependencies:
|
||||
eslint: '>=8.23.0'
|
||||
|
||||
eslint-plugin-perfectionist@2.11.0:
|
||||
resolution: {integrity: sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==}
|
||||
eslint-plugin-perfectionist@3.0.0:
|
||||
resolution: {integrity: sha512-B+leJTo1YjxiNIm8Yv0rCHp4eWh9RaJHO6T1ifxd26wg8NCbEiWSdqZVeYLWPCI+zS1dlf89WpOkUzG7cE4vtQ==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
astro-eslint-parser: ^1.0.2
|
||||
eslint: '>=8.0.0'
|
||||
svelte: '>=3.0.0'
|
||||
svelte-eslint-parser: ^0.37.0
|
||||
svelte-eslint-parser: ^0.40.0
|
||||
vue-eslint-parser: '>=9.0.0'
|
||||
peerDependenciesMeta:
|
||||
astro-eslint-parser:
|
||||
|
|
@ -1889,8 +1883,8 @@ packages:
|
|||
vue-eslint-parser:
|
||||
optional: true
|
||||
|
||||
eslint-plugin-petal@3.9.1:
|
||||
resolution: {integrity: sha512-SmH9iIHgbqGMOzAOlHaznZfNf2ievd/IlWjCKSYIq8daRt0QZLsJqEtvevxDL+KXjp6ctMEXkmJKA4sQein+tQ==}
|
||||
eslint-plugin-petal@3.10.0:
|
||||
resolution: {integrity: sha512-0wGN+/9pPmCEHHatLluj/lOH14I5IYGPXOdNO5ihCFT4ubDWIDDhHyruJCiSncQ3fVikz5HS2PArqTYiELSMVg==}
|
||||
engines: {node: '>=20'}
|
||||
peerDependencies:
|
||||
eslint: '>=8.40.0'
|
||||
|
|
@ -1919,6 +1913,16 @@ packages:
|
|||
peerDependencies:
|
||||
eslint: '>=8.56.0'
|
||||
|
||||
eslint-plugin-unused-imports@4.0.1:
|
||||
resolution: {integrity: sha512-rax76s05z64uQgG9YXsWFmXrgjkaK79AvfeAWiSxhPP6RVGxeRaj4+2u+wxxu/mDy2pmJoOy1QTOEALMia2xGQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/eslint-plugin': ^8.0.0-0
|
||||
eslint: ^9.0.0
|
||||
peerDependenciesMeta:
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
optional: true
|
||||
|
||||
eslint-plugin-vitest@0.5.4:
|
||||
resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==}
|
||||
engines: {node: ^18.0.0 || >= 20.0.0}
|
||||
|
|
@ -2484,6 +2488,10 @@ packages:
|
|||
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
minimatch@10.0.1:
|
||||
resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
|
||||
engines: {node: 20 || >=22}
|
||||
|
||||
minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
|
||||
|
|
@ -2717,6 +2725,10 @@ packages:
|
|||
resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
||||
postcss@8.4.40:
|
||||
resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
||||
prelude-ls@1.2.1:
|
||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
|
@ -2853,14 +2865,14 @@ packages:
|
|||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
seroval-plugins@1.0.7:
|
||||
resolution: {integrity: sha512-GO7TkWvodGp6buMEX9p7tNyIkbwlyuAWbI6G9Ec5bhcm7mQdu3JOK1IXbEUwb3FVzSc363GraG/wLW23NSavIw==}
|
||||
seroval-plugins@1.1.0:
|
||||
resolution: {integrity: sha512-KtcJg590L3X3dd7ixs6am4UGVcV69TyjYhHtanIdQJq4dy2OceWXmmvWrYx7oFDNe+LNdxdWd0I5BQXuV5fBhA==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
seroval: ^1.0
|
||||
|
||||
seroval@1.0.7:
|
||||
resolution: {integrity: sha512-n6ZMQX5q0Vn19Zq7CIKNIo7E75gPkGCFUEqDpa8jgwpYr/vScjqnQ6H09t1uIiZ0ZSK0ypEGvrYK2bhBGWsGdw==}
|
||||
seroval@1.1.0:
|
||||
resolution: {integrity: sha512-74Wpe+hhPx4V8NFe00I2Fu9gTJopKoH5vE7nCqFzVgKOXV8AnN23T58K79QLYQotzGpH93UZ+UN2Y11j9huZJg==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
shebang-command@2.0.0:
|
||||
|
|
@ -2895,8 +2907,8 @@ packages:
|
|||
slashes@3.0.12:
|
||||
resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
|
||||
|
||||
solid-js@1.8.18:
|
||||
resolution: {integrity: sha512-cpkxDPvO/AuKBugVv6xKFd1C9VC0XZMu4VtF56IlHoux8HgyW44uqNSWbozMnVcpIzHIhS3vVXPAVZYM26jpWw==}
|
||||
solid-js@1.8.19:
|
||||
resolution: {integrity: sha512-h8z/TvTQYsf894LM9Iau/ZW2iAKrCzAWDwjPhMcXnonmW1OIIihc28wp82b1wwei1p81fH5+gnfNOe8RzLbDRQ==}
|
||||
|
||||
solid-refresh@0.6.3:
|
||||
resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
|
||||
|
|
@ -3339,8 +3351,8 @@ packages:
|
|||
resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==}
|
||||
engines: {node: ^14.17.0 || >=16.0.0}
|
||||
|
||||
yaml@2.4.5:
|
||||
resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==}
|
||||
yaml@2.5.0:
|
||||
resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==}
|
||||
engines: {node: '>= 14'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -3372,13 +3384,6 @@ snapshots:
|
|||
'@jridgewell/gen-mapping': 0.3.5
|
||||
'@jridgewell/trace-mapping': 0.3.25
|
||||
|
||||
'@antfu/eslint-plugin-unused-imports@4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)':
|
||||
dependencies:
|
||||
eslint: 9.7.0
|
||||
eslint-rule-composer: 0.3.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4)
|
||||
|
||||
'@antfu/install-pkg@0.1.1':
|
||||
dependencies:
|
||||
execa: 5.1.1
|
||||
|
|
@ -3806,9 +3811,8 @@ snapshots:
|
|||
|
||||
'@eslint/object-schema@2.1.4': {}
|
||||
|
||||
'@flowr/eslint-config@3.9.1(@unocss/eslint-plugin@0.61.5(eslint@9.7.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.7.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.4)(vitest@2.0.4(@types/node@20.14.12)(@vitest/ui@2.0.4)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.7.0))':
|
||||
'@flowr/eslint-config@3.10.0(@unocss/eslint-plugin@0.61.5(eslint@9.7.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.7.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.4)(vitest@2.0.4(@types/node@20.14.12)(@vitest/ui@2.0.4)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.7.0))':
|
||||
dependencies:
|
||||
'@antfu/eslint-plugin-unused-imports': 4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)
|
||||
'@antfu/install-pkg': 0.3.3
|
||||
'@clack/prompts': 0.7.0
|
||||
'@eslint-community/eslint-plugin-eslint-comments': 4.3.0(eslint@9.7.0)
|
||||
|
|
@ -3824,11 +3828,12 @@ snapshots:
|
|||
eslint-plugin-jsonc: 2.16.0(eslint@9.7.0)
|
||||
eslint-plugin-markdown: 5.1.0(eslint@9.7.0)
|
||||
eslint-plugin-n: 17.9.0(eslint@9.7.0)
|
||||
eslint-plugin-perfectionist: 2.11.0(eslint@9.7.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.7.0))
|
||||
eslint-plugin-petal: 3.9.1(eslint@9.7.0)
|
||||
eslint-plugin-perfectionist: 3.0.0(eslint@9.7.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.7.0))
|
||||
eslint-plugin-petal: 3.10.0(eslint@9.7.0)
|
||||
eslint-plugin-regexp: 2.6.0(eslint@9.7.0)
|
||||
eslint-plugin-toml: 0.11.1(eslint@9.7.0)
|
||||
eslint-plugin-unicorn: 54.0.0(eslint@9.7.0)
|
||||
eslint-plugin-unused-imports: 4.0.1(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)
|
||||
eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4)(vitest@2.0.4(@types/node@20.14.12)(@vitest/ui@2.0.4)(jsdom@24.1.1)(sass@1.77.8))
|
||||
eslint-plugin-yml: 1.14.0(eslint@9.7.0)
|
||||
find-up: 7.0.0
|
||||
|
|
@ -3850,7 +3855,7 @@ snapshots:
|
|||
- typescript
|
||||
- vitest
|
||||
|
||||
'@flowr/utils@3.9.1': {}
|
||||
'@flowr/utils@3.10.0': {}
|
||||
|
||||
'@fontsource/poppins@5.0.14': {}
|
||||
|
||||
|
|
@ -4040,12 +4045,12 @@ snapshots:
|
|||
'@rspc/client': 0.2.3
|
||||
'@tanstack/query-core': 5.51.1
|
||||
|
||||
'@rspc/solid-query@0.2.3(@tanstack/solid-query@5.51.9(solid-js@1.8.18))(solid-js@1.8.18)':
|
||||
'@rspc/solid-query@0.2.3(@tanstack/solid-query@5.51.9(solid-js@1.8.19))(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
'@rspc/client': 0.2.3
|
||||
'@rspc/query-core': 0.2.3(@rspc/client@0.2.3)
|
||||
'@tanstack/solid-query': 5.51.9(solid-js@1.8.18)
|
||||
solid-js: 1.8.18
|
||||
'@tanstack/solid-query': 5.51.9(solid-js@1.8.19)
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@rspc/tauri@0.2.0(@tauri-apps/api@2.0.0-beta.14)':
|
||||
dependencies:
|
||||
|
|
@ -4061,44 +4066,44 @@ snapshots:
|
|||
|
||||
'@sindresorhus/merge-streams@4.0.0': {}
|
||||
|
||||
'@solid-primitives/deep@0.2.9(solid-js@1.8.18)':
|
||||
'@solid-primitives/deep@0.2.9(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
'@solid-primitives/memo': 1.3.9(solid-js@1.8.18)
|
||||
solid-js: 1.8.18
|
||||
'@solid-primitives/memo': 1.3.9(solid-js@1.8.19)
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@solid-primitives/memo@1.3.9(solid-js@1.8.18)':
|
||||
'@solid-primitives/memo@1.3.9(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
'@solid-primitives/scheduled': 1.4.3(solid-js@1.8.18)
|
||||
'@solid-primitives/utils': 6.2.3(solid-js@1.8.18)
|
||||
solid-js: 1.8.18
|
||||
'@solid-primitives/scheduled': 1.4.3(solid-js@1.8.19)
|
||||
'@solid-primitives/utils': 6.2.3(solid-js@1.8.19)
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@solid-primitives/refs@1.0.8(solid-js@1.8.18)':
|
||||
'@solid-primitives/refs@1.0.8(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
'@solid-primitives/utils': 6.2.3(solid-js@1.8.18)
|
||||
solid-js: 1.8.18
|
||||
'@solid-primitives/utils': 6.2.3(solid-js@1.8.19)
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@solid-primitives/scheduled@1.4.3(solid-js@1.8.18)':
|
||||
'@solid-primitives/scheduled@1.4.3(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@solid-primitives/transition-group@1.0.5(solid-js@1.8.18)':
|
||||
'@solid-primitives/transition-group@1.0.5(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@solid-primitives/utils@6.2.3(solid-js@1.8.18)':
|
||||
'@solid-primitives/utils@6.2.3(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@solidjs/router@0.14.1(solid-js@1.8.18)':
|
||||
'@solidjs/router@0.14.1(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@solidjs/testing-library@0.8.9(@solidjs/router@0.14.1(solid-js@1.8.18))(solid-js@1.8.18)':
|
||||
'@solidjs/testing-library@0.8.9(@solidjs/router@0.14.1(solid-js@1.8.19))(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
'@testing-library/dom': 10.4.0
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
optionalDependencies:
|
||||
'@solidjs/router': 0.14.1(solid-js@1.8.18)
|
||||
'@solidjs/router': 0.14.1(solid-js@1.8.19)
|
||||
|
||||
'@stylistic/eslint-plugin-js@2.6.0-beta.0(eslint@9.7.0)':
|
||||
dependencies:
|
||||
|
|
@ -4119,7 +4124,7 @@ snapshots:
|
|||
'@stylistic/eslint-plugin-plus@2.6.0-beta.0(eslint@9.7.0)(typescript@5.5.4)':
|
||||
dependencies:
|
||||
'@types/eslint': 8.56.11
|
||||
'@typescript-eslint/utils': 8.0.0-alpha.51(eslint@9.7.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 8.0.0-alpha.54(eslint@9.7.0)(typescript@5.5.4)
|
||||
eslint: 9.7.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
|
@ -4129,7 +4134,7 @@ snapshots:
|
|||
dependencies:
|
||||
'@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.7.0)
|
||||
'@types/eslint': 8.56.11
|
||||
'@typescript-eslint/utils': 8.0.0-alpha.51(eslint@9.7.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 8.0.0-alpha.54(eslint@9.7.0)(typescript@5.5.4)
|
||||
eslint: 9.7.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
|
@ -4151,10 +4156,10 @@ snapshots:
|
|||
|
||||
'@tanstack/query-core@5.51.9': {}
|
||||
|
||||
'@tanstack/solid-query@5.51.9(solid-js@1.8.18)':
|
||||
'@tanstack/solid-query@5.51.9(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
'@tanstack/query-core': 5.51.9
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@tauri-apps/api@2.0.0-beta.14': {}
|
||||
|
||||
|
|
@ -4233,13 +4238,13 @@ snapshots:
|
|||
lodash: 4.17.21
|
||||
redent: 3.0.0
|
||||
|
||||
'@thisbeyond/solid-dnd@0.7.5(solid-js@1.8.18)':
|
||||
'@thisbeyond/solid-dnd@0.7.5(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@thisbeyond/solid-select@0.15.0(solid-js@1.8.18)':
|
||||
'@thisbeyond/solid-select@0.15.0(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@trysound/sax@0.2.0': {}
|
||||
|
||||
|
|
@ -4353,10 +4358,10 @@ snapshots:
|
|||
'@typescript-eslint/types': 8.0.0-alpha.41
|
||||
'@typescript-eslint/visitor-keys': 8.0.0-alpha.41
|
||||
|
||||
'@typescript-eslint/scope-manager@8.0.0-alpha.51':
|
||||
'@typescript-eslint/scope-manager@8.0.0-alpha.54':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.0.0-alpha.51
|
||||
'@typescript-eslint/visitor-keys': 8.0.0-alpha.51
|
||||
'@typescript-eslint/types': 8.0.0-alpha.54
|
||||
'@typescript-eslint/visitor-keys': 8.0.0-alpha.54
|
||||
|
||||
'@typescript-eslint/type-utils@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4)':
|
||||
dependencies:
|
||||
|
|
@ -4376,7 +4381,7 @@ snapshots:
|
|||
|
||||
'@typescript-eslint/types@8.0.0-alpha.41': {}
|
||||
|
||||
'@typescript-eslint/types@8.0.0-alpha.51': {}
|
||||
'@typescript-eslint/types@8.0.0-alpha.54': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@7.16.0(typescript@5.5.4)':
|
||||
dependencies:
|
||||
|
|
@ -4423,10 +4428,10 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.0.0-alpha.51(typescript@5.5.4)':
|
||||
'@typescript-eslint/typescript-estree@8.0.0-alpha.54(typescript@5.5.4)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.0.0-alpha.51
|
||||
'@typescript-eslint/visitor-keys': 8.0.0-alpha.51
|
||||
'@typescript-eslint/types': 8.0.0-alpha.54
|
||||
'@typescript-eslint/visitor-keys': 8.0.0-alpha.54
|
||||
debug: 4.3.5
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
|
|
@ -4471,12 +4476,12 @@ snapshots:
|
|||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@typescript-eslint/utils@8.0.0-alpha.51(eslint@9.7.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/utils@8.0.0-alpha.54(eslint@9.7.0)(typescript@5.5.4)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0)
|
||||
'@typescript-eslint/scope-manager': 8.0.0-alpha.51
|
||||
'@typescript-eslint/types': 8.0.0-alpha.51
|
||||
'@typescript-eslint/typescript-estree': 8.0.0-alpha.51(typescript@5.5.4)
|
||||
'@typescript-eslint/scope-manager': 8.0.0-alpha.54
|
||||
'@typescript-eslint/types': 8.0.0-alpha.54
|
||||
'@typescript-eslint/typescript-estree': 8.0.0-alpha.54(typescript@5.5.4)
|
||||
eslint: 9.7.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
|
@ -4497,9 +4502,9 @@ snapshots:
|
|||
'@typescript-eslint/types': 8.0.0-alpha.41
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.0.0-alpha.51':
|
||||
'@typescript-eslint/visitor-keys@8.0.0-alpha.54':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.0.0-alpha.51
|
||||
'@typescript-eslint/types': 8.0.0-alpha.54
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@unocss/astro@0.61.5(rollup@4.19.0)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))':
|
||||
|
|
@ -4561,7 +4566,7 @@ snapshots:
|
|||
gzip-size: 6.0.0
|
||||
sirv: 2.0.4
|
||||
|
||||
'@unocss/postcss@0.61.5(postcss@8.4.39)':
|
||||
'@unocss/postcss@0.61.5(postcss@8.4.40)':
|
||||
dependencies:
|
||||
'@unocss/config': 0.61.5
|
||||
'@unocss/core': 0.61.5
|
||||
|
|
@ -4569,7 +4574,7 @@ snapshots:
|
|||
css-tree: 2.3.1
|
||||
fast-glob: 3.3.2
|
||||
magic-string: 0.30.10
|
||||
postcss: 8.4.39
|
||||
postcss: 8.4.40
|
||||
|
||||
'@unocss/preset-attributify@0.61.5':
|
||||
dependencies:
|
||||
|
|
@ -4668,9 +4673,9 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
'@untitled-theme/icons-solid@0.10.5(solid-js@1.8.18)':
|
||||
'@untitled-theme/icons-solid@0.10.5(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@vitest/expect@2.0.4':
|
||||
dependencies:
|
||||
|
|
@ -5192,11 +5197,12 @@ snapshots:
|
|||
minimatch: 9.0.5
|
||||
semver: 7.6.3
|
||||
|
||||
eslint-plugin-perfectionist@2.11.0(eslint@9.7.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.7.0)):
|
||||
eslint-plugin-perfectionist@3.0.0(eslint@9.7.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.7.0)):
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 7.17.0
|
||||
'@typescript-eslint/utils': 7.17.0(eslint@9.7.0)(typescript@5.5.4)
|
||||
eslint: 9.7.0
|
||||
minimatch: 9.0.5
|
||||
minimatch: 10.0.1
|
||||
natural-compare-lite: 1.4.0
|
||||
optionalDependencies:
|
||||
vue-eslint-parser: 9.4.3(eslint@9.7.0)
|
||||
|
|
@ -5204,9 +5210,9 @@ snapshots:
|
|||
- supports-color
|
||||
- typescript
|
||||
|
||||
eslint-plugin-petal@3.9.1(eslint@9.7.0):
|
||||
eslint-plugin-petal@3.10.0(eslint@9.7.0):
|
||||
dependencies:
|
||||
'@flowr/utils': 3.9.1
|
||||
'@flowr/utils': 3.10.0
|
||||
eslint: 9.7.0
|
||||
|
||||
eslint-plugin-regexp@2.6.0(eslint@9.7.0):
|
||||
|
|
@ -5265,6 +5271,13 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-unused-imports@4.0.1(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0):
|
||||
dependencies:
|
||||
eslint: 9.7.0
|
||||
eslint-rule-composer: 0.3.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4)
|
||||
|
||||
eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4))(eslint@9.7.0)(typescript@5.5.4)(vitest@2.0.4(@types/node@20.14.12)(@vitest/ui@2.0.4)(jsdom@24.1.1)(sass@1.77.8)):
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 7.17.0(eslint@9.7.0)(typescript@5.5.4)
|
||||
|
|
@ -5857,6 +5870,10 @@ snapshots:
|
|||
|
||||
min-indent@1.0.1: {}
|
||||
|
||||
minimatch@10.0.1:
|
||||
dependencies:
|
||||
brace-expansion: 2.0.1
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
|
|
@ -5971,10 +5988,10 @@ snapshots:
|
|||
type-check: 0.4.0
|
||||
word-wrap: 1.2.5
|
||||
|
||||
overlayscrollbars-solid@0.5.5(overlayscrollbars@2.9.2)(solid-js@1.8.18):
|
||||
overlayscrollbars-solid@0.5.5(overlayscrollbars@2.9.2)(solid-js@1.8.19):
|
||||
dependencies:
|
||||
overlayscrollbars: 2.9.2
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
|
||||
overlayscrollbars@2.9.2: {}
|
||||
|
||||
|
|
@ -6089,6 +6106,12 @@ snapshots:
|
|||
picocolors: 1.0.1
|
||||
source-map-js: 1.2.0
|
||||
|
||||
postcss@8.4.40:
|
||||
dependencies:
|
||||
nanoid: 3.3.7
|
||||
picocolors: 1.0.1
|
||||
source-map-js: 1.2.0
|
||||
|
||||
prelude-ls@1.2.1: {}
|
||||
|
||||
pretty-format@27.5.1:
|
||||
|
|
@ -6251,11 +6274,11 @@ snapshots:
|
|||
|
||||
semver@7.6.3: {}
|
||||
|
||||
seroval-plugins@1.0.7(seroval@1.0.7):
|
||||
seroval-plugins@1.1.0(seroval@1.1.0):
|
||||
dependencies:
|
||||
seroval: 1.0.7
|
||||
seroval: 1.1.0
|
||||
|
||||
seroval@1.0.7: {}
|
||||
seroval@1.1.0: {}
|
||||
|
||||
shebang-command@2.0.0:
|
||||
dependencies:
|
||||
|
|
@ -6281,26 +6304,26 @@ snapshots:
|
|||
|
||||
slashes@3.0.12: {}
|
||||
|
||||
solid-js@1.8.18:
|
||||
solid-js@1.8.19:
|
||||
dependencies:
|
||||
csstype: 3.1.3
|
||||
seroval: 1.0.7
|
||||
seroval-plugins: 1.0.7(seroval@1.0.7)
|
||||
seroval: 1.1.0
|
||||
seroval-plugins: 1.1.0(seroval@1.1.0)
|
||||
|
||||
solid-refresh@0.6.3(solid-js@1.8.18):
|
||||
solid-refresh@0.6.3(solid-js@1.8.19):
|
||||
dependencies:
|
||||
'@babel/generator': 7.24.8
|
||||
'@babel/helper-module-imports': 7.24.7
|
||||
'@babel/types': 7.24.8
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
solid-transition-group@0.2.3(solid-js@1.8.18):
|
||||
solid-transition-group@0.2.3(solid-js@1.8.19):
|
||||
dependencies:
|
||||
'@solid-primitives/refs': 1.0.8(solid-js@1.8.18)
|
||||
'@solid-primitives/transition-group': 1.0.5(solid-js@1.8.18)
|
||||
solid-js: 1.8.18
|
||||
'@solid-primitives/refs': 1.0.8(solid-js@1.8.19)
|
||||
'@solid-primitives/transition-group': 1.0.5(solid-js@1.8.19)
|
||||
solid-js: 1.8.19
|
||||
|
||||
source-map-js@1.2.0: {}
|
||||
|
||||
|
|
@ -6498,13 +6521,13 @@ snapshots:
|
|||
|
||||
universalify@0.2.0: {}
|
||||
|
||||
unocss@0.61.5(postcss@8.4.39)(rollup@4.19.0)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8)):
|
||||
unocss@0.61.5(postcss@8.4.40)(rollup@4.19.0)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8)):
|
||||
dependencies:
|
||||
'@unocss/astro': 0.61.5(rollup@4.19.0)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
'@unocss/cli': 0.61.5(rollup@4.19.0)
|
||||
'@unocss/core': 0.61.5
|
||||
'@unocss/extractor-arbitrary-variants': 0.61.5
|
||||
'@unocss/postcss': 0.61.5(postcss@8.4.39)
|
||||
'@unocss/postcss': 0.61.5(postcss@8.4.40)
|
||||
'@unocss/preset-attributify': 0.61.5
|
||||
'@unocss/preset-icons': 0.61.5
|
||||
'@unocss/preset-mini': 0.61.5
|
||||
|
|
@ -6573,20 +6596,20 @@ snapshots:
|
|||
- supports-color
|
||||
- terser
|
||||
|
||||
vite-plugin-solid-svg@0.8.1(solid-js@1.8.18)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8)):
|
||||
vite-plugin-solid-svg@0.8.1(solid-js@1.8.19)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8)):
|
||||
dependencies:
|
||||
solid-js: 1.8.18
|
||||
solid-js: 1.8.19
|
||||
svgo: 3.3.2
|
||||
vite: 5.3.4(@types/node@20.14.12)(sass@1.77.8)
|
||||
|
||||
vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.18)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8)):
|
||||
vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.19)(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8)):
|
||||
dependencies:
|
||||
'@babel/core': 7.24.8
|
||||
'@types/babel__core': 7.20.5
|
||||
babel-preset-solid: 1.8.16(@babel/core@7.24.8)
|
||||
merge-anything: 5.1.7
|
||||
solid-js: 1.8.18
|
||||
solid-refresh: 0.6.3(solid-js@1.8.18)
|
||||
solid-js: 1.8.19
|
||||
solid-refresh: 0.6.3(solid-js@1.8.19)
|
||||
vite: 5.3.4(@types/node@20.14.12)(sass@1.77.8)
|
||||
vitefu: 0.2.5(vite@5.3.4(@types/node@20.14.12)(sass@1.77.8))
|
||||
optionalDependencies:
|
||||
|
|
@ -6712,9 +6735,9 @@ snapshots:
|
|||
dependencies:
|
||||
eslint-visitor-keys: 3.4.3
|
||||
lodash: 4.17.21
|
||||
yaml: 2.4.5
|
||||
yaml: 2.5.0
|
||||
|
||||
yaml@2.4.5: {}
|
||||
yaml@2.5.0: {}
|
||||
|
||||
yn@3.1.1: {}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue