Merge branch 'onelauncher/main' of https://github.com/Polyfrost/OneLauncher into onelauncher/main

This commit is contained in:
Szedann 2025-07-20 16:51:38 +02:00
commit e37d2d11be
21 changed files with 681 additions and 831 deletions

View file

@ -5,12 +5,21 @@ body:
- type: markdown
attributes:
value: Before raising an issue, please search for existing issues to avoid creating duplicates.
- type: textarea
- type: input
attributes:
label: Original reporter/ticket ID
description: If you are rewording a ticket, put the original reporter(s) and ticket ID(s). If not, leave this blank.
validations:
required: false
- type: dropdown
attributes:
label: Project
description: Select the project this issue is related to.
multiple: true
options:
- Core
- OneClient
- OneLauncher
- type: textarea
attributes:
label: Describe the bug

View file

@ -5,12 +5,23 @@ body:
- type: markdown
attributes:
value: Before raising an issue, please search for existing issues and [Discord](https://polyfrost.org/discord) suggestions to avoid creating duplicates.
- type: textarea
- type: input
attributes:
label: Original reporter/ticket ID
description: If you are rewording a ticket, put the original reporter(s) and ticket ID(s). If not, leave this blank.
validations:
required: false
- type: dropdown
attributes:
label: Project
description: Select the project this issue is related to.
multiple: true
default: General
options:
- General
- Core
- OneClient
- OneLauncher
- type: textarea
attributes:
label: Is your suggested enhancement related to a problem? Please describe, or link another Issue.

BIN
.github/media/RepoBanner.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

47
.github/workflows/oneclient_release.yml vendored Normal file
View file

@ -0,0 +1,47 @@
name: OneClient Release Build
on:
workflow_dispatch:
jobs:
publish-tauri:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: macos-latest # ARM
args: --target aarch64-apple-darwin
- platform: macos-latest # Intel
args: --target x86_64-apple-darwin
- platform: ubuntu-22.04
args: ''
- platform: windows-latest
args: ''
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: ./.github/actions/setup-rust
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
target: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
save-cache: true
restore-cache: true
- name: Setup Packages
uses: ./.github/actions/setup-packages
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: oneclient-__VERSION__
releaseName: OneClient __VERSION__
releaseDraft: true
prerelease: ${{ startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-alpha') || false }}
tauriScript: pnpm oneclient:desktop
args: ${{ matrix.args }}

View file

@ -1,4 +1,4 @@
name: Release Build
name: OneLauncher Release Build
on:
workflow_dispatch:
@ -43,5 +43,5 @@ jobs:
releaseName: OneLauncher __VERSION__
releaseDraft: true
prerelease: ${{ startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-alpha') || false }}
tauriScript: pnpm desktop
tauriScript: pnpm onelauncher:desktop
args: ${{ matrix.args }}

View file

@ -3,8 +3,7 @@
"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.
"bradlc.vscode-tailwindcss", // Provides UnoCSS intellisense.
"EditorConfig.EditorConfig", // Maintains consistent coding styles.
"dbaeumer.vscode-eslint" // Code formatting using ESLint.
]

View file

@ -27,9 +27,6 @@
"rust-analyzer.diagnostics.disabled": [
"macro-error" // TODO: Remove this once taurpc upgrades to latest specta
],
"rust-analyzer.procMacro.ignored": {
"tauri-specta": ["command"]
},
"rust-analyzer.check.command": "check",
"rust-analyzer.diagnostics.experimental.enable": false,
"rust-analyzer.linkedProjects": [],

View file

@ -1,6 +1,6 @@
# Attribution
The source code of this repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE), with a header provided below. [Certain files in our library wrappers](./core/wrapper/) may be under a different license or [require credit](#additional-libraries), with their specific headers outlined in the below non-exhaustive list.
The source code of this repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE), with a header provided below. Certain files in our library wrappers may be under a different license or [require credit](#additional-libraries), with their specific headers outlined in the below non-exhaustive list.
## OneLauncher
@ -16,6 +16,20 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
```
## OneClient
```txt
OneClient - A Minecraft Launcher
Copyright (C) 2023~CURRENT Polyfrost and Contributors
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
```
## Polyfrost branding
Any files depicting [Polyfrost branding](https://polyfrost.org/legal/branding), including the Polyfrost logo, any landing and background images, the OneConfig logo, the OneLauncher logo, and variations thereof, are licensed under the following:
@ -31,80 +45,25 @@ This includes, but may not be limited to, the following files:
## Additional Libraries
The following are libraries, projects, and codebases which we (Polyfrost and Contributors) copied or modified, with additional attribution inline (THIS IS A NON-EXHAUSTIVE LIST, IF WE ARE MISSING A LICENSE, PLEASE CHECK OUR [attributions page](https://polyfrost.org/attributions), OR LEAVE A TICKET IN [our Discord server](https://polyfrost.org/discord)):
## [Prism Launcher]
```txt
Prism Launcher - Minecraft Launcher
Copyright (C) 2022-2024 Prism Launcher Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
This file incorporates work covered by the following copyright and
permission notice:
Copyright 2013-2021 MultiMC Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```
## [Modrinth App]
```txt
Modrinth App
Copyright (C) 2022-2023 Modrinth
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
```
The following are libraries, projects, and codebases which we (Polyfrost and Contributors) copied or modified, with additional attribution inline (THIS IS A NON-EXHAUSTIVE LIST, IF WE ARE MISSING A LICENSE, PLEASE LEAVE A TICKET IN [our Discord server](https://polyfrost.org/discord)):
## [Gamemode]
```txt
Copyright (c) 2017-2022, Feral Interactive
Copyright (c) 2017-2025, Feral Interactive and the GameMode contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Feral Interactive nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Feral Interactive nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -145,7 +104,5 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
[Prism Launcher]: https://github.com/PrismLauncher/PrismLauncher
[Modrinth App]: https://github.com/modrinth/code
[Gamemode]: https://github.com/FeralInteractive/gamemode
[Rust Gamemode Internal Linking]: https://github.com/SophieSilver/linking-gamemode

View file

@ -47,17 +47,14 @@ To make changes locally, follow these steps:
4. Install dependencies: `pnpm i`
5. Prepare your cargo installation: `pnpm prep`
To quickly run only the desktop app after `prep`, you can use:
### Running
The most common scripts you will use are:
- `pnpm desktop dev`
- `pnpm onelauncher:desktop dev` - Runs the **OneLauncher** desktop application with watch mode enabled and starts up the frontend's vite dev server.
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.
- `pnpm oneclient:desktop dev` - Runs the **OneClient** desktop application with watch mode enabled and starts up the frontend's vite dev server.
If you encounter any issues, ensure that you are using the following versions (or later) of Rust, Node and Pnpm:
- `rustc` version: **1.80**
- `node` version: **20.15**
- `pnpm` version: **9.6.0**
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.
After cleaning out your build artifacts using `pnpm clean`, `git clean`, or `cargo clean`, it is necessary to re-run the `setup` script.

View file

@ -1,10 +1,45 @@
# OneLauncher
<div align="center">
Rust-based Minecraft launcher utilizing Tauri, SolidJS, and Tailwind
<img src=".github/media/RepoBanner.png" alt="Repository Banner" />
## Project Structure
# ` OneLauncher ` + ` OneClient `
Here is the monorepo containing the code for OneLauncher and OneClient.
* [`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.
</div>
## Technologies Used
- [**Tauri**](https://tauri.app/)
- [**Sea ORM**](https://www.sea-ql.org/SeaORM/)
- [**SQLite**](https://www.sqlite.org/)
- [**React**](https://react.dev/)
- [**Tailwind CSS**](https://tailwindcss.com/)
- [**Tanstack Query**](https://tanstack.com/query/latest)
- [**Tanstack Router**](https://tanstack.com/router/latest)
## Contributing
We welcome contributions! Please read our [contributing guidelines](CONTRIBUTING.md) before getting started.
### Requirements
If you encounter any issues, ensure that you are using the following versions (or later) of Rust, Node and Pnpm:
- `rustc` version: **1.89**
- `node` version: **22.15**
- `pnpm` version: **10.13**
### Project Structure
- **`packages/`** - Shared libraries and utilities.
- [**`core/`**](./packages/core/) - Launcher Core. This is the library that contains the entire launcher logic.
- [**`entity/`**](./packages/entity/) - Contains entity definitions used in the launcher's database.
- [**`macro/`**](./packages/macro/) - Contains macro definitions to simplify some code.
- [**`scripts/`**](./packages/scripts/) - General scripts for CI/CD or development environments.
- [**`web_common/`**](./packages/web_common/) - Contains common web code used by both OneLauncher and OneClient.
- **`apps/`**
- [**`onelauncher/`**](./apps/onelauncher/)
- **`desktop/`** - Tauri desktop application.
- **`frontend/`** - React SPA frontend.
- **`distribution/`** - Files used for release builds.
- [**`oneclient/`**](./apps/oneclient/)
- **`desktop/`** - Tauri desktop application.
- **`frontend/`** - React SPA frontend.
- **`distribution/`** - Files used for release builds.

View file

@ -12,43 +12,43 @@
"check": "prettier --write . && eslint --fix"
},
"dependencies": {
"@fontsource/poppins": "^5.2.6",
"@formatjs/intl-durationformat": "^0.7.4",
"@fontsource/poppins": "catalog:",
"@formatjs/intl-durationformat": "catalog:",
"@onelauncher/common": "workspace:*",
"@tailwindcss/vite": "^4.0.6",
"@tanstack/match-sorter-utils": "^8.19.4",
"@tanstack/react-query": "^5.66.5",
"@tanstack/react-query-devtools": "^5.66.5",
"@tanstack/react-router": "^1.114.3",
"@tanstack/react-router-devtools": "^1.114.3",
"@tanstack/react-table": "^8.21.2",
"@tanstack/router-plugin": "^1.114.3",
"@tauri-apps/api": "^2.5.0",
"@tauri-apps/plugin-clipboard-manager": "^2.2.2",
"@tauri-apps/plugin-dialog": "^2.2.1",
"@tauri-apps/plugin-shell": "^2.2.1",
"@untitled-theme/icons-react": "^0.14.0",
"motion": "^12.10.5",
"overlayscrollbars": "^2.11.2",
"overlayscrollbars-react": "^0.5.6",
"react": "^19.0.0",
"react-aria-components": "^1.8.0",
"react-dom": "^19.0.0",
"tailwind-merge": "^3.2.0",
"tailwind-variants": "^1.0.0",
"tailwindcss": "^4.0.6",
"tailwindcss-animated": "^2.0.0",
"tailwindcss-react-aria-components": "^2.0.0",
"taurpc": "^1.8.1",
"zustand": "^5.0.5"
"@tailwindcss/vite": "catalog:",
"@tanstack/match-sorter-utils": "catalog:",
"@tanstack/react-query": "catalog:",
"@tanstack/react-query-devtools": "catalog:",
"@tanstack/react-router": "catalog:",
"@tanstack/react-router-devtools": "catalog:",
"@tanstack/react-table": "catalog:",
"@tanstack/router-plugin": "catalog:",
"@tauri-apps/api": "catalog:",
"@tauri-apps/plugin-clipboard-manager": "catalog:",
"@tauri-apps/plugin-dialog": "catalog:",
"@tauri-apps/plugin-shell": "catalog:",
"@untitled-theme/icons-react": "catalog:",
"motion": "catalog:",
"overlayscrollbars": "catalog:",
"overlayscrollbars-react": "catalog:",
"react": "catalog:",
"react-aria-components": "catalog:",
"react-dom": "catalog:",
"tailwind-merge": "catalog:",
"tailwind-variants": "catalog:",
"tailwindcss": "catalog:",
"tailwindcss-animated": "catalog:",
"tailwindcss-react-aria-components": "catalog:",
"taurpc": "catalog:",
"zustand": "catalog:"
},
"devDependencies": {
"@tanstack/eslint-config": "^0.1.0",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"@vitejs/plugin-react": "^4.3.4",
"typescript": "^5.7.2",
"vite": "^6.1.0",
"vite-plugin-svgr": "^4.3.0"
"@tanstack/eslint-config": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"@vitejs/plugin-react": "catalog:",
"typescript": "catalog:",
"vite": "catalog:",
"vite-plugin-svgr": "catalog:"
}
}

View file

@ -11,42 +11,42 @@
"check": "eslint --fix"
},
"dependencies": {
"@fontsource/poppins": "^5.2.6",
"@fontsource/poppins": "catalog:",
"@onelauncher/common": "workspace:*",
"@tailwindcss/vite": "^4.0.6",
"@tanstack/match-sorter-utils": "^8.19.4",
"@tanstack/react-query": "^5.66.5",
"@tanstack/react-query-devtools": "^5.66.5",
"@tanstack/react-router": "^1.114.3",
"@tanstack/react-router-devtools": "^1.114.3",
"@tanstack/react-table": "^8.21.2",
"@tanstack/router-plugin": "^1.114.3",
"@tauri-apps/api": "^2.5.0",
"@tauri-apps/plugin-clipboard-manager": "^2.2.2",
"@tauri-apps/plugin-dialog": "^2.2.1",
"@tauri-apps/plugin-opener": "^2.3.0",
"@tauri-apps/plugin-shell": "^2.2.1",
"@untitled-theme/icons-react": "^0.14.0",
"motion": "^12.10.5",
"overlayscrollbars": "^2.11.2",
"overlayscrollbars-react": "^0.5.6",
"react": "^19.0.0",
"react-aria-components": "^1.8.0",
"react-dom": "^19.0.0",
"tailwind-merge": "^3.2.0",
"tailwind-variants": "^1.0.0",
"tailwindcss": "^4.0.6",
"tailwindcss-animated": "^2.0.0",
"tailwindcss-react-aria-components": "^2.0.0",
"taurpc": "^1.8.1",
"valtio": "^2.1.5"
"@tailwindcss/vite": "catalog:",
"@tanstack/match-sorter-utils": "catalog:",
"@tanstack/react-query": "catalog:",
"@tanstack/react-query-devtools": "catalog:",
"@tanstack/react-router": "catalog:",
"@tanstack/react-router-devtools": "catalog:",
"@tanstack/react-table": "catalog:",
"@tanstack/router-plugin": "catalog:",
"@tauri-apps/api": "catalog:",
"@tauri-apps/plugin-clipboard-manager": "catalog:",
"@tauri-apps/plugin-dialog": "catalog:",
"@tauri-apps/plugin-opener": "catalog:",
"@tauri-apps/plugin-shell": "catalog:",
"@untitled-theme/icons-react": "catalog:",
"motion": "catalog:",
"overlayscrollbars": "catalog:",
"overlayscrollbars-react": "catalog:",
"react": "catalog:",
"react-aria-components": "catalog:",
"react-dom": "catalog:",
"tailwind-merge": "catalog:",
"tailwind-variants": "catalog:",
"tailwindcss": "catalog:",
"tailwindcss-animated": "catalog:",
"tailwindcss-react-aria-components": "catalog:",
"taurpc": "catalog:",
"valtio": "catalog:"
},
"devDependencies": {
"@tanstack/eslint-config": "^0.1.0",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"@vitejs/plugin-react": "^4.3.4",
"typescript": "^5.7.2",
"vite": "^6.1.0"
"@tanstack/eslint-config": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"@vitejs/plugin-react": "catalog:",
"typescript": "catalog:",
"vite": "catalog:"
}
}

View file

@ -1,17 +0,0 @@
const config = {
types: {
chore: { title: '🔨 Chores' },
feature: { title: '✨ Features' },
fix: { title: '🐞 Bug Fixes' },
perf: { title: '🏎 Performance' },
refactor: { title: '♻️ Refactors' },
test: { title: '✅ Tests' },
style: { title: '🎨 Stylistic' },
doc: { title: '📝 Docs' },
deps: { title: '📦 Dependencies' },
deploy: { title: '🚀 Deployments' },
wip: { title: '🚧 Experiments' },
},
};
export default config;

View file

@ -49,20 +49,14 @@
]
},
"devDependencies": {
"@eslint-react/eslint-plugin": "^1.48.5",
"@flowr/eslint": "^6.0.0",
"@tanstack/eslint-config": "^0.1.0",
"@tanstack/eslint-plugin-query": "5.74.7",
"@tanstack/eslint-plugin-router": "1.115.0",
"@types/node": "^22.7.9",
"@unocss/eslint-plugin": "^66.0.0",
"eslint": "^9.20.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-solid": "^0.14.5",
"jiti": "^2.3.3",
"rimraf": "^6.0.1",
"tsx": "^4.19.4",
"typescript": "^5.8.3",
"vite": "^6.3.4"
"@eslint-react/eslint-plugin": "catalog:",
"@flowr/eslint": "catalog:",
"@tanstack/eslint-config": "catalog:",
"@types/node": "catalog:",
"eslint": "catalog:",
"rimraf": "catalog:",
"tsx": "catalog:",
"typescript": "catalog:",
"vite": "catalog:"
}
}

View file

@ -22,29 +22,29 @@
"build": "vite build"
},
"peerDependencies": {
"@tanstack/react-query": "^5.66.5",
"@tanstack/react-router": "^1.114.3",
"@untitled-theme/icons-react": "^0.14.0",
"motion": "^12.10.5",
"react": "^19.0.0",
"react-aria-components": "^1.8.0",
"tailwind-merge": "^3.2.0",
"tailwind-variants": "^1.0.0",
"tailwindcss": "^4.0.6",
"tailwindcss-animated": "^2.0.0",
"tailwindcss-react-aria-components": "^2.0.0"
},
"devDependencies": {
"@tailwindcss/vite": "^4.0.6",
"@types/react": "^19.0.8",
"@vitejs/plugin-react": "^4.3.4",
"typescript": "^5.8.3",
"vite": "^6.1.0",
"vite-plugin-dts": "^4.5.4",
"vite-plugin-static-copy": "^3.0.0"
"@tanstack/react-query": "catalog:",
"@tanstack/react-router": "catalog:",
"@untitled-theme/icons-react": "catalog:",
"motion": "catalog:",
"react": "catalog:",
"react-aria-components": "catalog:",
"tailwind-merge": "catalog:",
"tailwind-variants": "catalog:",
"tailwindcss": "catalog:",
"tailwindcss-animated": "catalog:",
"tailwindcss-react-aria-components": "catalog:"
},
"dependencies": {
"@untitled-theme/icons-react": "^0.14.0",
"overlayscrollbars-react": "^0.5.6"
"@untitled-theme/icons-react": "catalog:",
"overlayscrollbars-react": "catalog:"
},
"devDependencies": {
"@tailwindcss/vite": "catalog:",
"@types/react": "catalog:",
"@vitejs/plugin-react": "catalog:",
"typescript": "catalog:",
"vite": "catalog:",
"vite-plugin-dts": "catalog:",
"vite-plugin-static-copy": "catalog:"
}
}

974
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -3,3 +3,75 @@ packages:
- apps/onelauncher/*
- packages/*
- .github/actions/*
catalog:
# --
# dev dependencies
# ---
# typescript
tsx: ^4.19.4
typescript: ^5.8.3
'@types/node': ^22.13.14
'@types/react': ^19.0.8
'@types/react-dom': ^19.0.3
# eslintjs
eslint: ^9.20.0
'@flowr/eslint': ^6.0.0
'@eslint-react/eslint-plugin': ^1.48.5
'@tanstack/eslint-config': ^0.1.0
# vite
vite: ^6.3.4
vite-plugin-dts: ^4.5.4
vite-plugin-static-copy: ^3.0.0
vite-plugin-svgr: ^4.3.0
'@vitejs/plugin-react': ^4.3.4
'@tailwindcss/vite': ^4.0.6
# other
rimraf: ^6.0.1
# ---
# dependencies
# ---
# react + libraries
react: ^19.0.0
react-aria-components: ^1.8.0
'@tanstack/react-query': ^5.66.5
'@tanstack/react-router': ^1.114.3
'@untitled-theme/icons-react': ^0.14.0
motion: ^12.10.5
react-dom: ^19.0.0
# tailwindcss
tailwind-merge: ^3.2.0
tailwind-variants: ^1.0.0
tailwindcss: ^4.0.6
tailwindcss-animated: ^2.0.0
tailwindcss-react-aria-components: ^2.0.0
# tanstack
'@tanstack/match-sorter-utils': ^8.19.4
'@tanstack/react-query-devtools': ^5.66.5
'@tanstack/react-router-devtools': ^1.114.3
'@tanstack/react-table': ^8.21.2
'@tanstack/router-plugin': ^1.114.3
# tauri
taurpc: ^1.8.1
'@tauri-apps/api': ^2.5.0
'@tauri-apps/plugin-clipboard-manager': ^2.2.2
'@tauri-apps/plugin-dialog': ^2.2.1
'@tauri-apps/plugin-shell': ^2.2.1
'@tauri-apps/plugin-opener': ^2.3.0
# other
overlayscrollbars: ^2.11.2
overlayscrollbars-react: ^0.5.6
'@fontsource/poppins': ^5.2.6
'@formatjs/intl-durationformat': ^0.7.4
zustand: ^5.0.5
valtio: ^2.1.5

View file

View file

@ -2,7 +2,7 @@
"compilerOptions": {
"target": "ESNext",
"jsx": "preserve",
"jsxImportSource": "solid-js",
"jsxImportSource": "react",
"lib": ["ESNext", "DOM", "DOM.Iterable"],
"useDefineForClassFields": true,
"module": "ESNext",

View file

@ -1 +0,0 @@
export { default } from './apps/onelauncher/old_frontend/uno.config';

View file

@ -1,4 +0,0 @@
[
"packages/client/vitest.config.ts",
"apps/frontend/vitest.config.ts"
]