🔨 chore: prepare for tauri rc
This commit is contained in:
parent
7009f5db08
commit
ee70456c48
40 changed files with 393 additions and 330 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -3,6 +3,10 @@ result*
|
|||
repl-result-out*
|
||||
.direnv
|
||||
|
||||
# auto-generated files
|
||||
apps/frontend/src/bindings.ts
|
||||
apps/frontend/ipc
|
||||
|
||||
# Prisma
|
||||
crates/prisma/src/prisma.rs
|
||||
dev.db
|
||||
|
|
|
|||
55
Cargo.toml
55
Cargo.toml
|
|
@ -21,10 +21,16 @@ authors = [
|
|||
version = "1.0.0-alpha.1"
|
||||
|
||||
[workspace.dependencies]
|
||||
# best practice to define all workspace crates in the root
|
||||
# even if they are not use, with no features enabled.
|
||||
onelauncher = { path = "./packages/core" }
|
||||
onelauncher_macros = { path = "./packages/macros" }
|
||||
onelauncher_gui = { path = "./apps/desktop" }
|
||||
onelauncher_test = { path = "./apps/testing" }
|
||||
|
||||
# tauri uses latest crates.io beta channel (temporarily can use v2 and main branches if necessary)
|
||||
# tauri uses latest crates.io beta channel
|
||||
# (temporarily can use v2 and main branches if necessary)
|
||||
# TODO: release candidate update is blocked by tauri-specta.
|
||||
tauri = { version = "=2.0.0-beta.25", features = [
|
||||
"rustls-tls",
|
||||
"tracing",
|
||||
|
|
@ -32,6 +38,8 @@ tauri = { version = "=2.0.0-beta.25", features = [
|
|||
"uuid",
|
||||
"protocol-asset"
|
||||
] }
|
||||
|
||||
# TODO: remove locked tauri-* deps once we update to the release candidate.
|
||||
tauri-utils = { version = "=2.0.0-beta.19" }
|
||||
tauri-build = { version = "=2.0.0-beta.19" }
|
||||
tauri-codegen = { version = "=2.0.0-beta.19" }
|
||||
|
|
@ -39,15 +47,39 @@ tauri-macros = { version = "=2.0.0-beta.19" }
|
|||
tauri-plugin = { version = "=2.0.0-beta.19" }
|
||||
tauri-runtime = { version = "=2.0.0-beta.21" }
|
||||
|
||||
tauri-plugin-authenticator = { version = "=2.0.0-beta.10" }
|
||||
# tauri-plugin-shell adds a bridge for opening urls and paths in the frontend.
|
||||
tauri-plugin-shell = { version = "=2.0.0-beta.10" }
|
||||
# tauri-plugin-window-state saves the window position and size to be restored.
|
||||
tauri-plugin-window-state = { version = "=2.0.0-beta.12" }
|
||||
# tauri-plugin-single-instance ensures that only one instance of the app is running.
|
||||
tauri-plugin-single-instance = { version = "=2.0.0-beta.12" }
|
||||
# tauri-plugin-clipboard-manager adds a bridge for reading/writing to the clipboard.
|
||||
tauri-plugin-clipboard-manager = { version = "=2.1.0-beta.7" }
|
||||
tauri-plugin-updater = { version = "=2.0.0-beta.12", features = [ "rustls-tls" ] }
|
||||
# tauri-plugin-updater allows for us to use it's functionality for in-app updates.
|
||||
tauri-plugin-updater = { version = "=2.0.0-beta.12" }
|
||||
# tauri-plugin-dialog adds a bridge for opening file manager and message dialogs.
|
||||
tauri-plugin-dialog = { version = "=2.0.0-beta.12" }
|
||||
|
||||
rspc = { version = "=0.2.0", features = [ "specta2" ] }
|
||||
# rspc is used as a faster and more intuitive replacement for tauri-specta
|
||||
# commands/apis that don't depend on tauri. rather than using the tauri
|
||||
# event and invoke apis for handling api calling, it creates a router which
|
||||
# we can easily use with tanstack solid query apis.
|
||||
# this means we don't have to redefine all our core apis as tauri commands.
|
||||
# features: "specta2" is for using the latest v2 rc of specta.
|
||||
# TODO: the api migration is blocked until rspc updates to a newer version of tauri v2.
|
||||
rspc = { version = "=0.2.0", features = [
|
||||
"specta2",
|
||||
"tracing"
|
||||
] }
|
||||
|
||||
# specta is used as a peer dependency for tauri-specta and rspc.
|
||||
# it generates rust code into other languages, in our case, typescript.
|
||||
# v2 is the latest/only version, and it is updated as a release candidate
|
||||
# on crates.io almost after every commit, so a git dep isn't necessary.
|
||||
# features: "derive" and "function" are core apis of specta we rely on.
|
||||
# the remaining features implements the specta::Type trait for their
|
||||
# respective dependencies of the same name. if we add a new dependency
|
||||
# and run into specta errors, adding the dependency as a feature will usually solve this.
|
||||
specta = { version = "=2.0.0-rc.19", features = [
|
||||
"chrono",
|
||||
"uuid",
|
||||
|
|
@ -57,15 +89,22 @@ specta = { version = "=2.0.0-rc.19", features = [
|
|||
"derive",
|
||||
"time"
|
||||
] }
|
||||
|
||||
# tauri-specta
|
||||
tauri-specta = { version = "=2.0.0-rc.13", features = [
|
||||
"javascript",
|
||||
"typescript",
|
||||
"derive"
|
||||
] }
|
||||
|
||||
# specta-typescript is the typescript adapter for specta.
|
||||
specta-typescript = { version = "=0.0.6" }
|
||||
|
||||
# rspc-specta2 is the specta v2 (rc) adapter for rspc.
|
||||
rspc-tauri2 = { version = "=0.0.1" }
|
||||
|
||||
# all other dependencies are updated to latest crates.io release channel
|
||||
|
||||
interpulse = { version = "1", features = [ "specta" ] }
|
||||
|
||||
tracing = { version = "0.1" }
|
||||
|
|
@ -175,7 +214,7 @@ features = [
|
|||
]
|
||||
default-features = false
|
||||
|
||||
[patch.crates-io]
|
||||
[patch.crates-io] # we hack to the high heavens
|
||||
# rspc = { git = "https://github.com/oscartbeaumont/rspc", rev = "9f26d6400affdb501837cb023678268ad72feb9b" }
|
||||
# rspc-tauri2 = { git = "https://github.com/specta-rs/tauri2", rev = "6b9419566e2a826fb2a62538c7647f4524ab0fea" }
|
||||
|
||||
|
|
@ -202,16 +241,16 @@ lto = "off"
|
|||
codegen-units = 256
|
||||
incremental = true
|
||||
|
||||
# Set the settings for build scripts and proc-macros.
|
||||
# set the settings for build scripts and proc-macros.
|
||||
[profile.dev.build-override]
|
||||
opt-level = 3
|
||||
|
||||
# Set the default for dependencies, except workspace members.
|
||||
# set the default for dependencies, except workspace members.
|
||||
[profile.dev.package."*"]
|
||||
opt-level = 3
|
||||
incremental = false
|
||||
|
||||
# sets the default for dependencies, except workspace members.
|
||||
# set the default for dependencies, except workspace members.
|
||||
[profile.dev-debug.package."*"]
|
||||
inherits = "dev"
|
||||
opt-level = 3
|
||||
|
|
|
|||
|
|
@ -24,13 +24,6 @@ tauri-build = { workspace = true, features = [ "isolation" ] }
|
|||
[dependencies]
|
||||
onelauncher = { workspace = true, features = [ "tauri" ] }
|
||||
|
||||
tauri = { workspace = true, features = [
|
||||
"isolation",
|
||||
"macos-private-api",
|
||||
"image-ico",
|
||||
"image-png",
|
||||
"protocol-asset"
|
||||
] }
|
||||
tauri-utils = { workspace = true }
|
||||
tauri-build = { workspace = true }
|
||||
tauri-codegen = { workspace = true }
|
||||
|
|
@ -42,7 +35,6 @@ tauri-plugin-shell = { workspace = true }
|
|||
tauri-plugin-window-state = { workspace = true }
|
||||
tauri-plugin-single-instance = { workspace = true }
|
||||
tauri-plugin-updater = { workspace = true }
|
||||
tauri-plugin-authenticator = { workspace = true }
|
||||
tauri-plugin-clipboard-manager = { workspace = true }
|
||||
tauri-plugin-dialog = { workspace = true }
|
||||
|
||||
|
|
@ -63,6 +55,20 @@ uuid = { workspace = true }
|
|||
tracing = { workspace = true }
|
||||
tracing-error = { workspace = true }
|
||||
|
||||
[dependencies.tauri]
|
||||
workspace = true
|
||||
features = [
|
||||
"isolation",
|
||||
"macos-private-api",
|
||||
"image-ico",
|
||||
"image-png",
|
||||
"protocol-asset"
|
||||
]
|
||||
|
||||
[dev-dependencies.tauri]
|
||||
workspace = true
|
||||
features = [ "test" ]
|
||||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
cocoa.workspace = true
|
||||
objc.workspace = true
|
||||
|
|
|
|||
|
|
@ -6,17 +6,16 @@ pub mod error;
|
|||
pub mod ext;
|
||||
|
||||
#[derive(Clone, serde::Serialize)]
|
||||
struct SingleInstancePayload {
|
||||
pub struct SingleInstancePayload {
|
||||
args: Vec<String>,
|
||||
cwd: String,
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip_all)]
|
||||
async fn initialize_state(app: tauri::AppHandle) -> api::Result<()> {
|
||||
onelauncher::ProxyState::initialize(app).await?;
|
||||
async fn initialize_state(handle: &tauri::AppHandle) -> api::Result<()> {
|
||||
onelauncher::ProxyState::initialize(handle).await?;
|
||||
let s = onelauncher::State::get().await?;
|
||||
onelauncher::State::update();
|
||||
|
||||
s.processor.write().await.restore().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -26,9 +25,9 @@ pub async fn run() {
|
|||
// we panic because nothing else can be debugged once the logger fails.
|
||||
// the only thing that can fail before the logger should be our `tokio::main` loop.
|
||||
let _log_guard = onelauncher::start_logger();
|
||||
tracing::info!("initialized tracing subscriber. loading onelauncher...");
|
||||
tracing::info!("initialized logger. loading onelauncher/tauri...");
|
||||
|
||||
run_app(|app| {
|
||||
run_app(tauri::Builder::default(), |app| {
|
||||
if let Err(err) = setup(app) {
|
||||
tracing::error!("failed to setup app: {:?}", err);
|
||||
}
|
||||
|
|
@ -36,7 +35,10 @@ pub async fn run() {
|
|||
.await;
|
||||
}
|
||||
|
||||
pub async fn run_app<F: FnOnce(&mut tauri::App) + Send + 'static>(setup: F) {
|
||||
pub async fn run_app<F: FnOnce(&tauri::AppHandle<tauri::Wry>) + Send + 'static>(
|
||||
builder: tauri::Builder<tauri::Wry>,
|
||||
setup: F,
|
||||
) {
|
||||
let prebuild = tauri_specta::Builder::<tauri::Wry>::new()
|
||||
.commands(collect_commands!())
|
||||
.events(collect_events!())
|
||||
|
|
@ -51,7 +53,7 @@ pub async fn run_app<F: FnOnce(&mut tauri::App) + Send + 'static>(setup: F) {
|
|||
)
|
||||
.expect("failed to export debug bindings!");
|
||||
|
||||
let builder = tauri::Builder::default()
|
||||
let builder = builder
|
||||
.plugin(tauri_plugin_shell::init())
|
||||
.plugin(tauri_plugin_single_instance::init(|app, argv, cwd| {
|
||||
println!("{}, {argv:?}, {cwd}", app.package_info().name);
|
||||
|
|
@ -70,7 +72,7 @@ pub async fn run_app<F: FnOnce(&mut tauri::App) + Send + 'static>(setup: F) {
|
|||
.invoke_handler(prebuild.invoke_handler())
|
||||
.setup(move |app| {
|
||||
prebuild.mount_events(app.handle());
|
||||
setup(app);
|
||||
setup(app.handle());
|
||||
Ok(())
|
||||
});
|
||||
|
||||
|
|
@ -78,15 +80,15 @@ pub async fn run_app<F: FnOnce(&mut tauri::App) + Send + 'static>(setup: F) {
|
|||
.build(tauri::generate_context!())
|
||||
.expect("failed to build tauri application");
|
||||
|
||||
if let Err(err) = initialize_state(app.app_handle().clone()).await {
|
||||
if let Err(err) = initialize_state(app.handle()).await {
|
||||
tracing::error!("{err}");
|
||||
};
|
||||
|
||||
app.run(|_, _| {})
|
||||
}
|
||||
|
||||
fn setup(app: &mut tauri::App) -> Result<(), Box<dyn std::error::Error>> {
|
||||
let win = app.get_webview_window("main").unwrap();
|
||||
fn setup(handle: &tauri::AppHandle) -> Result<(), Box<dyn std::error::Error>> {
|
||||
let win = handle.get_webview_window("main").unwrap();
|
||||
win.show().unwrap();
|
||||
|
||||
Ok(())
|
||||
|
|
|
|||
|
|
@ -7,17 +7,51 @@
|
|||
"macOSPrivateApi": true,
|
||||
"security": {
|
||||
"csp": {
|
||||
"default-src": ["'self'", "customprotocol:", "asset:"],
|
||||
"connect-src": ["https://modrinth.com", "https://api.modrinth.com", "https://polyfrost.org", "https://*.polyfrost.org", "https://*.cloudflare.com", "https://api.mclo.gs"],
|
||||
"img-src": ["'self'", "tauri:", "https:", "data:", "blob:", "'unsafe-inline'", "asset:", "https://asset.localhost"],
|
||||
"script-src": ["'self'", "https://*.cloudflare.com", "https://*.polyfrost.org"],
|
||||
"frame-src": ["https://*.cloudflare.com", "https://www.youtube.com", "https://www.youtube-nocookie.com", "https://discord.com", "https://*.githubusercontent.com", "'self'"],
|
||||
"style-src": ["unsafe-inline", "'self'"]
|
||||
"default-src": [
|
||||
"'self'",
|
||||
"customprotocol:",
|
||||
"asset:"
|
||||
],
|
||||
"connect-src": [
|
||||
"https://modrinth.com",
|
||||
"https://api.modrinth.com",
|
||||
"https://polyfrost.org",
|
||||
"https://*.polyfrost.org",
|
||||
"https://*.cloudflare.com",
|
||||
"https://api.mclo.gs"
|
||||
],
|
||||
"img-src": [
|
||||
"'self'",
|
||||
"tauri:",
|
||||
"https:",
|
||||
"data:",
|
||||
"blob:",
|
||||
"'unsafe-inline'",
|
||||
"asset:",
|
||||
"https://asset.localhost"
|
||||
],
|
||||
"script-src": [
|
||||
"'self'",
|
||||
"https://*.cloudflare.com",
|
||||
"https://*.polyfrost.org"
|
||||
],
|
||||
"frame-src": [
|
||||
"https://*.cloudflare.com",
|
||||
"https://www.youtube.com",
|
||||
"https://www.youtube-nocookie.com",
|
||||
"https://discord.com",
|
||||
"https://*.githubusercontent.com",
|
||||
"'self'"
|
||||
],
|
||||
"style-src": [
|
||||
"unsafe-inline",
|
||||
"'self'"
|
||||
]
|
||||
},
|
||||
"pattern": {
|
||||
"use": "isolation",
|
||||
"options": {
|
||||
"dir": "../frontend/src-isolation/"
|
||||
"dir": "../frontend/isolation/"
|
||||
}
|
||||
},
|
||||
"assetProtocol": {
|
||||
|
|
|
|||
3
apps/frontend/.gitignore
vendored
3
apps/frontend/.gitignore
vendored
|
|
@ -1,3 +0,0 @@
|
|||
/dist-isolation
|
||||
/coverage
|
||||
/src/bindings.ts
|
||||
|
|
@ -1,17 +1,15 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<link rel="icon" type="image/svg+xml" href="/src/assets/logo.svg" />
|
||||
<title>OneLauncher</title>
|
||||
</head>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<link rel="icon" type="image/svg+xml" href="/src/assets/logo.svg" />
|
||||
<title>OneLauncher</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<noscript>JavaScript is disabled, please contact support at <a href="https://polyfrost.org/discord">our Discord</a>!</noscript>
|
||||
<div id="root" />
|
||||
|
||||
<script src="/src/index.tsx" type="module"></script>
|
||||
</body>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/index.tsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
10
apps/frontend/isolation/index.html
Normal file
10
apps/frontend/isolation/index.html
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Isolation Secure Script</title>
|
||||
</head>
|
||||
<body>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
// @ts-nocheck
|
||||
window.__TAURI_ISOLATION_HOOK__ = (payload) => {
|
||||
return payload;
|
||||
};
|
||||
|
|
@ -24,10 +24,10 @@
|
|||
"@rspc/tauri": "^0.2.0",
|
||||
"@solid-primitives/refs": "^1.0.8",
|
||||
"@solidjs/router": "^0.14.1",
|
||||
"@tanstack/solid-query": "^5.51.16",
|
||||
"@tanstack/solid-query": "^5.51.21",
|
||||
"@tauri-apps/api": "2.0.0-beta.16",
|
||||
"@tauri-apps/plugin-clipboard-manager": "github:tauri-apps/tauri-plugin-clipboard-manager#v2",
|
||||
"@tauri-apps/plugin-dialog": "2.0.0-beta.8",
|
||||
"@tauri-apps/plugin-dialog": "github:tauri-apps/tauri-plugin-dialog#v2",
|
||||
"@tauri-apps/plugin-shell": "github:tauri-apps/tauri-plugin-shell#v2",
|
||||
"@thisbeyond/solid-dnd": "^0.7.5",
|
||||
"@thisbeyond/solid-select": "^0.15.0",
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
"@untitled-theme/icons-solid": "^0.10.5",
|
||||
"overlayscrollbars": "^2.10.0",
|
||||
"overlayscrollbars-solid": "^0.5.5",
|
||||
"pathe": "^1.1.2",
|
||||
"solid-js": "^1.8.19",
|
||||
"solid-transition-group": "^0.2.3",
|
||||
"uuid": "^10.0.0"
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Isolation Secure Script</title>
|
||||
</head>
|
||||
<body>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
7
apps/frontend/src/shims.d.ts
vendored
7
apps/frontend/src/shims.d.ts
vendored
|
|
@ -1,7 +0,0 @@
|
|||
import type { AttributifyAttributes } from 'unocss/preset-attributify';
|
||||
|
||||
declare module 'solid-js' {
|
||||
namespace JSX {
|
||||
interface HTMLAttributes<T> extends AttributifyAttributes { }
|
||||
}
|
||||
}
|
||||
13
apps/frontend/src/types.ts
Normal file
13
apps/frontend/src/types.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
export type WithIndex<T> = T & { index: number };
|
||||
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
||||
|
||||
type GrowToSize<T, N extends number, A extends T[]> = A['length'] extends N ? A : GrowToSize<T, N, [...A, T]>;
|
||||
export type FixedArray<T, N extends number> = GrowToSize<T, N, []>;
|
||||
|
||||
// Get size of enum as a type - https://stackoverflow.com/a/68317984/23592613
|
||||
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
||||
type UnionToOvlds<U> = UnionToIntersection<U extends any ? (f: U) => void : never>;
|
||||
type PopUnion<U> = UnionToOvlds<U> extends (a: infer A) => void ? A : never;
|
||||
|
||||
export type IsUnion<T> = [T] extends [UnionToIntersection<T>] ? false : true;
|
||||
export type UnionToArray<T, A extends unknown[] = []> = IsUnion<T> extends true ? UnionToArray<Exclude<T, PopUnion<T>>, [PopUnion<T>, ...A]> : [T, ...A];
|
||||
24
apps/frontend/src/types/global.d.ts
vendored
24
apps/frontend/src/types/global.d.ts
vendored
|
|
@ -1,24 +0,0 @@
|
|||
declare namespace globalThis {
|
||||
export type WithIndex<T> = T & { index: number }
|
||||
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
|
||||
|
||||
type GrowToSize<T, N extends number, A extends T[]> = A['length'] extends N ? A : GrowToSize<T, N, [...A, T]>;
|
||||
export type FixedArray<T, N extends number> = GrowToSize<T, N, []>;
|
||||
|
||||
// Get size of enum as a type - https://stackoverflow.com/a/68317984/23592613
|
||||
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
||||
type UnionToOvlds<U> = UnionToIntersection<U extends any ? (f: U) => void : never>;
|
||||
type PopUnion<U> = UnionToOvlds<U> extends (a: infer A) => void ? A : never;
|
||||
export type IsUnion<T> = [T] extends [UnionToIntersection<T>] ? false : true;
|
||||
export type UnionToArray<T, A extends unknown[] = []> = IsUnion<T> extends true ? UnionToArray<Exclude<T, PopUnion<T>>, [PopUnion<T>, ...A]> : [T, ...A];
|
||||
|
||||
// enum Example {
|
||||
// how = "how",
|
||||
// to = "to",
|
||||
// count = "count",
|
||||
// enum = "enum",
|
||||
// entries = "entries"
|
||||
// }
|
||||
|
||||
// type Result = UnionToArray<keyof typeof Example>['length'] // = 5
|
||||
}
|
||||
|
|
@ -13,9 +13,7 @@ import { PROGRAM_INFO } from '~bindings';
|
|||
|
||||
function App(props: ParentProps) {
|
||||
if (PROGRAM_INFO.dev_build !== true)
|
||||
document.addEventListener('contextmenu', (event) => {
|
||||
event.preventDefault();
|
||||
});
|
||||
document.addEventListener('contextmenu', e => e.preventDefault());
|
||||
|
||||
return (
|
||||
<GlobalContexts>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { Download01Icon, HeartIcon } from '@untitled-theme/icons-solid';
|
||||
import { useNavigate } from '@solidjs/router';
|
||||
import { abbreviateNumber } from '../../../utils/primitives';
|
||||
import { abbreviateNumber } from '~utils';
|
||||
import BrowserMod from '~ui/pages/browser/BrowserMod';
|
||||
import type { ManagedPackage } from '~bindings';
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import { For, createEffect, createSignal, on } from 'solid-js';
|
|||
import { mergeRefs } from '@solid-primitives/refs';
|
||||
import Button from '../base/Button';
|
||||
import FullscreenOverlay from './FullscreenOverlay';
|
||||
import type { MakeOptional } from '~types.ts';
|
||||
|
||||
export type ModalProps = {
|
||||
visible: Accessor<boolean>;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import { ClusterStepTwo } from './ClusterStepTwo';
|
|||
import Button from '~ui/components/base/Button';
|
||||
import type { CreateCluster } from '~bindings';
|
||||
import { bridge } from '~imports';
|
||||
import type { FixedArray, UnionToArray } from '~types.ts';
|
||||
|
||||
type PartialCluster = Partial<CreateCluster>;
|
||||
type PartialClusterUpdateFunc = <K extends keyof PartialCluster>(key: K, value: PartialCluster[K]) => any;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import { bridge } from '~imports';
|
|||
import SelectList from '~ui/components/base/SelectList';
|
||||
import Checkbox from '~ui/components/base/Checkbox';
|
||||
import type { Loader, VersionType } from '~bindings';
|
||||
import { formatVersionRelease } from '~utils/helpers';
|
||||
import { formatVersionRelease } from '~utils';
|
||||
|
||||
const loaders: {
|
||||
name: string;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { type JSX, Match, Show, Switch, createEffect, createSignal } from 'solid-js';
|
||||
import { InfoCircleIcon } from '@untitled-theme/icons-solid';
|
||||
import TimeAgo from '../../TimeAgo';
|
||||
import { PausableTimer } from '~utils/PausableTimer';
|
||||
import { PausableTimer } from '~utils';
|
||||
|
||||
type NotificationComponentProps = Core.Notification & {
|
||||
overlay: boolean;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import ClusterCover from '~ui/components/game/ClusterCover';
|
|||
import type { Cluster } from '~bindings';
|
||||
import useCommand from '~ui/hooks/useCommand';
|
||||
import { bridge } from '~imports';
|
||||
import { secondsToWords, upperFirst } from '~utils/primitives';
|
||||
import { secondsToWords, upperFirst } from '~utils';
|
||||
import { useClusterModalController } from '~ui/components/overlay/cluster/ClusterCreationModal';
|
||||
|
||||
type GroupedClusters = Record<string, Cluster[]>;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import Dropdown from '~ui/components/base/Dropdown';
|
|||
import TextField from '~ui/components/base/TextField';
|
||||
import ModCard, { Provider } from '~ui/components/content/ModCard';
|
||||
import { tryResult } from '~ui/hooks/useCommand';
|
||||
import createSortable from '~utils/sorting';
|
||||
import { createSortable } from '~utils';
|
||||
|
||||
interface CardProps {
|
||||
id: string;
|
||||
|
|
@ -35,21 +35,21 @@ function BrowserMain() {
|
|||
tryResult(bridge.commands.getMod, 'oneconfig'),
|
||||
tryResult(bridge.commands.getMod, 'chatting'),
|
||||
tryResult(bridge.commands.getMod, 'patcher'),
|
||||
]).then((res: ManagedPackage[]) => {
|
||||
]).then((pkgs) => {
|
||||
const list: ModsRowProps[] = [
|
||||
{
|
||||
header: 'Polyfrost',
|
||||
category: 'polyfrost',
|
||||
packages: [
|
||||
res[1],
|
||||
res[2],
|
||||
res[3],
|
||||
pkgs[1],
|
||||
pkgs[2],
|
||||
pkgs[3],
|
||||
],
|
||||
},
|
||||
{
|
||||
header: 'Random Mods',
|
||||
category: 'random',
|
||||
packages: res[0],
|
||||
packages: pkgs[0],
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ import { For, Show, createEffect, createSignal, untrack } from 'solid-js';
|
|||
import { OverlayScrollbarsComponent } from 'overlayscrollbars-solid';
|
||||
import { LinkExternal01Icon, Upload01Icon } from '@untitled-theme/icons-solid';
|
||||
import { open } from '@tauri-apps/plugin-shell';
|
||||
import { join } from 'pathe';
|
||||
import useCommand, { tryResult } from '~ui/hooks/useCommand';
|
||||
import { bridge } from '~imports';
|
||||
import useClusterContext from '~ui/hooks/useCluster';
|
||||
import Dropdown from '~ui/components/base/Dropdown';
|
||||
import Button from '~ui/components/base/Button';
|
||||
import useSettingsContext from '~ui/hooks/useSettings';
|
||||
import joinPath from '~utils/helpers';
|
||||
import FormattedLog from '~ui/components/content/FormattedLog';
|
||||
|
||||
function ClusterLogs() {
|
||||
|
|
@ -37,9 +37,8 @@ function ClusterLogs() {
|
|||
if (root === null || root === undefined || path === null || path === undefined)
|
||||
return;
|
||||
|
||||
const dir = joinPath(root, 'clusters', path);
|
||||
|
||||
open(joinPath(dir, 'logs'));
|
||||
const dir = join(root, 'clusters', path);
|
||||
open(join(dir, 'logs'));
|
||||
}
|
||||
|
||||
async function uploadAndOpenLog() {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import Button from '../../components/base/Button';
|
|||
import ScrollableContainer from '~ui/components/ScrollableContainer';
|
||||
import Sidebar from '~ui/components/Sidebar';
|
||||
import type { Cluster } from '~bindings';
|
||||
import { upperFirst } from '~utils/primitives';
|
||||
import { upperFirst } from '~utils';
|
||||
import useClusterContext from '~ui/hooks/useCluster';
|
||||
import Modal from '~ui/components/overlay/Modal';
|
||||
import { bridge } from '~imports';
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
import type { VersionType } from '~bindings';
|
||||
|
||||
export function formatVersionRelease(release: VersionType): string {
|
||||
const mapping: { [key in VersionType]: string } = {
|
||||
old_alpha: 'Alpha',
|
||||
old_beta: 'Beta',
|
||||
release: 'Release',
|
||||
snapshot: 'Snapshot',
|
||||
};
|
||||
|
||||
return mapping[release];
|
||||
}
|
||||
|
||||
/**
|
||||
* A simple analog of Node.js's `path.join(...)`.
|
||||
* https://gist.github.com/creationix/7435851#gistcomment-3698888
|
||||
*/
|
||||
export default function joinPath(...segments: string[]) {
|
||||
const parts = segments.reduce<string[]>((parts, segment) => {
|
||||
// Remove leading slashes from non-first part.
|
||||
if (parts.length > 0)
|
||||
segment = segment.replace(/^\//, '');
|
||||
|
||||
// Remove trailing slashes.
|
||||
segment = segment.replace(/\/$/, '');
|
||||
return parts.concat(segment.split('/'));
|
||||
}, []);
|
||||
|
||||
const resultParts: string[] = [];
|
||||
for (const part of parts) {
|
||||
if (part === '.')
|
||||
continue;
|
||||
|
||||
if (part === '..') {
|
||||
resultParts.pop();
|
||||
continue;
|
||||
}
|
||||
resultParts.push(part);
|
||||
}
|
||||
return resultParts.join('/');
|
||||
}
|
||||
|
|
@ -1,3 +1,19 @@
|
|||
import type { VersionType } from '~bindings';
|
||||
|
||||
export * from './PausableTimer';
|
||||
export * from './sorting';
|
||||
|
||||
export function formatVersionRelease(release: VersionType): string {
|
||||
const mapping: { [key in VersionType]: string } = {
|
||||
old_alpha: 'Alpha',
|
||||
old_beta: 'Beta',
|
||||
release: 'Release',
|
||||
snapshot: 'Snapshot',
|
||||
};
|
||||
|
||||
return mapping[release];
|
||||
}
|
||||
|
||||
export function upperFirst(object: any): string {
|
||||
const str = object.toString();
|
||||
return str.charAt(0).toUpperCase() + str.slice(1);
|
||||
|
|
@ -17,12 +33,6 @@ export function abbreviateNumber(n: number) {
|
|||
return `${n}`;
|
||||
};
|
||||
|
||||
export function getEnumMembers(obj: any): string[] {
|
||||
return Object.keys(obj).filter((item) => {
|
||||
return Number.isNaN(Number(item));
|
||||
});
|
||||
}
|
||||
|
||||
export function secondsToWords(seconds: number | bigint): string {
|
||||
const n = Number(seconds);
|
||||
|
||||
|
|
@ -43,8 +53,3 @@ export function secondsToWords(seconds: number | bigint): string {
|
|||
|
||||
return `${n} seconds`; // Hmmmmmm
|
||||
}
|
||||
|
||||
export default {
|
||||
upperFirst,
|
||||
abbreviateNumber,
|
||||
};
|
||||
8
apps/frontend/src/vite-env.d.ts
vendored
8
apps/frontend/src/vite-env.d.ts
vendored
|
|
@ -1 +1,9 @@
|
|||
/// <reference types="vite/client" />
|
||||
|
||||
import type { AttributifyAttributes } from 'unocss/preset-attributify';
|
||||
|
||||
declare module 'solid-js' {
|
||||
namespace JSX {
|
||||
interface HTMLAttributes<T> extends AttributifyAttributes { }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,8 +35,6 @@
|
|||
"include": [
|
||||
"./src/**/*.ts",
|
||||
"./src/**/*.d.ts",
|
||||
"./src/**/*.tsx",
|
||||
"./src-isolation/**/*.ts",
|
||||
"./*.ts"
|
||||
"./src/**/*.tsx"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
/// <reference types="vitest/config"/>
|
||||
|
||||
import process from 'node:process';
|
||||
import type { UserConfig } from 'vite';
|
||||
import { defineConfig, loadEnv } from 'vite';
|
||||
|
|
@ -41,11 +39,6 @@ export default defineConfig(async ({ mode }) => {
|
|||
ignored: ['**/src-tauri/**'],
|
||||
},
|
||||
},
|
||||
|
||||
test: {
|
||||
globals: true,
|
||||
reporters: ['dot'],
|
||||
},
|
||||
};
|
||||
|
||||
return config;
|
||||
|
|
|
|||
3
apps/frontend/vitest.config.ts
Normal file
3
apps/frontend/vitest.config.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import shared from '../../shared.config';
|
||||
|
||||
export default shared`frontend`.vitest;
|
||||
18
changelogithub.config.ts
Normal file
18
changelogithub.config.ts
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// define the `changelogithub` configuration so we can automatically generate
|
||||
// changelogs with github actions upon each `pnpm release`.
|
||||
export default {
|
||||
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' },
|
||||
},
|
||||
capitalize: false,
|
||||
};
|
||||
|
|
@ -10,6 +10,7 @@ export default petal({
|
|||
'toml/padding-line-between-pairs': 'off',
|
||||
},
|
||||
},
|
||||
gitignore: true,
|
||||
ignores: [
|
||||
'**/target',
|
||||
'**/dist',
|
||||
|
|
|
|||
35
package.json
35
package.json
|
|
@ -3,16 +3,18 @@
|
|||
"type": "module",
|
||||
"version": "1.0.0-alpha.1",
|
||||
"private": true,
|
||||
"engineStrict": true,
|
||||
"packageManager": "pnpm@9.6.0",
|
||||
"description": "Next-generation open source Minecraft launcher and tools for interacting with Polyfrost",
|
||||
"license": "GPL-3.0-only",
|
||||
"homepage": "https://polyfrost.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:polyfrost/onelauncher"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/polyfrost/onelauncher/issues"
|
||||
"url": "git@github.com:polyfrost/onelauncher",
|
||||
"directory": "/"
|
||||
},
|
||||
"bugs": "https://github.com/polyfrost/onelauncher/issues",
|
||||
"sideEffects": false,
|
||||
"engines": {
|
||||
"pnpm": "9.6.0",
|
||||
"npm": "pnpm",
|
||||
|
|
@ -20,29 +22,44 @@
|
|||
"node": ">=18"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "pnpm --filter=./* run build",
|
||||
"dev": "pnpm --filter=./* run dev",
|
||||
"start": "pnpm --filter=./* run start",
|
||||
"test": "pnpm test:vi && pnpm --filter=./* run test",
|
||||
"format": "pnpm format:es && pnpm format:rs",
|
||||
"lint": "pnpm lint:es && pnpm lint:rs",
|
||||
|
||||
"frontend": "pnpm --filter @onelauncher/frontend -- ",
|
||||
"client": "pnpm --filter @onelauncher/client -- ",
|
||||
"desktop": "pnpm --filter @onelauncher/desktop -- ",
|
||||
"core": "cd packages/core && cargo",
|
||||
"testing": "cd apps/testing && cargo",
|
||||
"tauri": "cd apps/desktop && cargo",
|
||||
"format": "pnpm format:es && pnpm format:rs",
|
||||
"lint": "pnpm lint:es && pnpm lint:rs",
|
||||
|
||||
"test:vi": "pnpm vitest run",
|
||||
"test:update": "pnpm vitest -u",
|
||||
"test:ui": "pnpm vitest --ui",
|
||||
"lint:es": "eslint . --cache",
|
||||
"format:es": "pnpm lint:es --fix",
|
||||
"lint:rs": "cargo +nightly fmt --check && cargo clippy -- -D warnings",
|
||||
"format:rs": "cargo +nightly fmt && cargo clippy --fix",
|
||||
"release:node": "bumpp -r"
|
||||
},
|
||||
"workspaces": {
|
||||
"packages": [
|
||||
"packages/*",
|
||||
"apps/*"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@flowr/eslint-config": "^3.10.2",
|
||||
"@types/node": "^22.0.2",
|
||||
"@types/node": "^22.1.0",
|
||||
"@vitest/ui": "^2.0.5",
|
||||
"bumpp": "^9.4.1",
|
||||
"bumpp": "^9.4.2",
|
||||
"eslint": "^9.8.0",
|
||||
"eslint-plugin-solid": "^0.14.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsx": "^4.16.4",
|
||||
"tsx": "~4.16.5",
|
||||
"typescript": "^5.5.4",
|
||||
"vite": "^5.3.5",
|
||||
"vitest": "^2.0.5"
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
"@rspc/solid-query": "^0.2.3",
|
||||
"@rspc/tauri": "^0.2.0",
|
||||
"@solid-primitives/deep": "^0.2.9",
|
||||
"@tanstack/solid-query": "^5.51.16",
|
||||
"@tanstack/solid-query": "^5.51.21",
|
||||
"fast-equals": "^5.0.1",
|
||||
"plausible-tracker": "^0.3.9",
|
||||
"solid-js": "^1.8.19",
|
||||
|
|
|
|||
3
packages/client/vitest.config.ts
Normal file
3
packages/client/vitest.config.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import shared from '../../shared.config';
|
||||
|
||||
export default shared`client`.vitest;
|
||||
|
|
@ -15,7 +15,7 @@ pub use utils::*;
|
|||
static PROXY_STATE: OnceCell<Arc<ProxyState>> = OnceCell::const_new();
|
||||
pub struct ProxyState {
|
||||
#[cfg(feature = "tauri")]
|
||||
pub app: tauri::AppHandle,
|
||||
pub app: tauri::AppHandle<tauri::Wry>,
|
||||
pub ingress_feeds: RwLock<HashMap<Uuid, Ingress>>,
|
||||
}
|
||||
|
||||
|
|
@ -88,11 +88,11 @@ impl Drop for IngressId {
|
|||
|
||||
impl ProxyState {
|
||||
#[cfg(feature = "tauri")]
|
||||
pub async fn initialize(app: tauri::AppHandle) -> crate::Result<Arc<Self>> {
|
||||
pub async fn initialize(handle: &tauri::AppHandle<tauri::Wry>) -> crate::Result<Arc<Self>> {
|
||||
PROXY_STATE
|
||||
.get_or_try_init(|| async {
|
||||
Ok(Arc::new(Self {
|
||||
app,
|
||||
app: handle.clone(),
|
||||
ingress_feeds: RwLock::new(HashMap::new()),
|
||||
}))
|
||||
})
|
||||
|
|
|
|||
259
pnpm-lock.yaml
generated
259
pnpm-lock.yaml
generated
|
|
@ -10,16 +10,16 @@ importers:
|
|||
devDependencies:
|
||||
'@flowr/eslint-config':
|
||||
specifier: ^3.10.2
|
||||
version: 3.10.2(@unocss/eslint-plugin@0.61.9(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.8.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.8.0))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.0.2)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.8.0))
|
||||
version: 3.10.2(@unocss/eslint-plugin@0.61.9(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.8.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.8.0))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.8.0))
|
||||
'@types/node':
|
||||
specifier: ^22.0.2
|
||||
version: 22.0.2
|
||||
specifier: ^22.1.0
|
||||
version: 22.1.0
|
||||
'@vitest/ui':
|
||||
specifier: ^2.0.5
|
||||
version: 2.0.5(vitest@2.0.5)
|
||||
bumpp:
|
||||
specifier: ^9.4.1
|
||||
version: 9.4.1
|
||||
specifier: ^9.4.2
|
||||
version: 9.4.2
|
||||
eslint:
|
||||
specifier: ^9.8.0
|
||||
version: 9.8.0
|
||||
|
|
@ -28,19 +28,19 @@ importers:
|
|||
version: 0.14.1(eslint@9.8.0)(typescript@5.5.4)
|
||||
ts-node:
|
||||
specifier: ^10.9.2
|
||||
version: 10.9.2(@types/node@22.0.2)(typescript@5.5.4)
|
||||
version: 10.9.2(@types/node@22.1.0)(typescript@5.5.4)
|
||||
tsx:
|
||||
specifier: ^4.16.4
|
||||
version: 4.16.4
|
||||
specifier: ~4.16.5
|
||||
version: 4.16.5
|
||||
typescript:
|
||||
specifier: ^5.5.4
|
||||
version: 5.5.4
|
||||
vite:
|
||||
specifier: ^5.3.5
|
||||
version: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
version: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
vitest:
|
||||
specifier: ^2.0.5
|
||||
version: 2.0.5(@types/node@22.0.2)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)
|
||||
version: 2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)
|
||||
|
||||
apps/desktop:
|
||||
dependencies:
|
||||
|
|
@ -77,7 +77,7 @@ importers:
|
|||
version: 0.2.3
|
||||
'@rspc/solid-query':
|
||||
specifier: ^0.2.3
|
||||
version: 0.2.3(@tanstack/solid-query@5.51.16(solid-js@1.8.19))(solid-js@1.8.19)
|
||||
version: 0.2.3(@tanstack/solid-query@5.51.21(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.16)
|
||||
|
|
@ -88,8 +88,8 @@ importers:
|
|||
specifier: ^0.14.1
|
||||
version: 0.14.1(solid-js@1.8.19)
|
||||
'@tanstack/solid-query':
|
||||
specifier: ^5.51.16
|
||||
version: 5.51.16(solid-js@1.8.19)
|
||||
specifier: ^5.51.21
|
||||
version: 5.51.21(solid-js@1.8.19)
|
||||
'@tauri-apps/api':
|
||||
specifier: 2.0.0-beta.16
|
||||
version: 2.0.0-beta.16
|
||||
|
|
@ -97,8 +97,8 @@ importers:
|
|||
specifier: github:tauri-apps/tauri-plugin-clipboard-manager#v2
|
||||
version: https://codeload.github.com/tauri-apps/tauri-plugin-clipboard-manager/tar.gz/20e84cfbdebcd86bb1854846feb0aaff4481fbd0
|
||||
'@tauri-apps/plugin-dialog':
|
||||
specifier: 2.0.0-beta.8
|
||||
version: 2.0.0-beta.8
|
||||
specifier: github:tauri-apps/tauri-plugin-dialog#v2
|
||||
version: https://codeload.github.com/tauri-apps/tauri-plugin-dialog/tar.gz/f83833c5445948c1b2f022e3c530ca48be9f8768
|
||||
'@tauri-apps/plugin-shell':
|
||||
specifier: github:tauri-apps/tauri-plugin-shell#v2
|
||||
version: https://codeload.github.com/tauri-apps/tauri-plugin-shell/tar.gz/5cc36dadeaad0520111c6f5e32ecdbbae7cb1311
|
||||
|
|
@ -120,6 +120,9 @@ importers:
|
|||
overlayscrollbars-solid:
|
||||
specifier: ^0.5.5
|
||||
version: 0.5.5(overlayscrollbars@2.10.0)(solid-js@1.8.19)
|
||||
pathe:
|
||||
specifier: ^1.1.2
|
||||
version: 1.1.2
|
||||
solid-js:
|
||||
specifier: ^1.8.19
|
||||
version: 1.8.19
|
||||
|
|
@ -150,16 +153,16 @@ importers:
|
|||
version: 1.77.8
|
||||
unocss:
|
||||
specifier: ^0.61.9
|
||||
version: 0.61.9(postcss@8.4.40)(rollup@4.19.2)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))
|
||||
version: 0.61.9(postcss@8.4.40)(rollup@4.19.2)(vite@5.3.5(@types/node@22.1.0)(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.19)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))
|
||||
version: 2.10.2(@testing-library/jest-dom@6.4.8)(solid-js@1.8.19)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))
|
||||
vite-plugin-solid-svg:
|
||||
specifier: ^0.8.1
|
||||
version: 0.8.1(solid-js@1.8.19)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))
|
||||
version: 0.8.1(solid-js@1.8.19)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^4.3.2
|
||||
version: 4.3.2(typescript@5.5.4)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))
|
||||
version: 4.3.2(typescript@5.5.4)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))
|
||||
|
||||
apps/testing: {}
|
||||
|
||||
|
|
@ -170,16 +173,16 @@ importers:
|
|||
version: 0.2.3
|
||||
'@rspc/solid-query':
|
||||
specifier: ^0.2.3
|
||||
version: 0.2.3(@tanstack/solid-query@5.51.16(solid-js@1.8.19))(solid-js@1.8.19)
|
||||
version: 0.2.3(@tanstack/solid-query@5.51.21(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.16)
|
||||
version: 0.2.0(@tauri-apps/api@2.0.0-rc.0)
|
||||
'@solid-primitives/deep':
|
||||
specifier: ^0.2.9
|
||||
version: 0.2.9(solid-js@1.8.19)
|
||||
'@tanstack/solid-query':
|
||||
specifier: ^5.51.16
|
||||
version: 5.51.16(solid-js@1.8.19)
|
||||
specifier: ^5.51.21
|
||||
version: 5.51.21(solid-js@1.8.19)
|
||||
fast-equals:
|
||||
specifier: ^5.0.1
|
||||
version: 5.0.1
|
||||
|
|
@ -1187,22 +1190,22 @@ packages:
|
|||
'@tanstack/query-core@5.51.1':
|
||||
resolution: {integrity: sha512-fJBMQMpo8/KSsWW5ratJR5+IFr7YNJ3K2kfP9l5XObYHsgfVy1w3FJUWU4FT2fj7+JMaEg33zOcNDBo0LMwHnw==}
|
||||
|
||||
'@tanstack/query-core@5.51.16':
|
||||
resolution: {integrity: sha512-zfV+WAtBGm1dUIbL0w/x8qTqVLKU1/Bo1p19J9LF02MmIc4FxzMImMXhFzYJQl5Hx8Wit6RiQ4tB/DvN8y9zaQ==}
|
||||
'@tanstack/query-core@5.51.21':
|
||||
resolution: {integrity: sha512-POQxm42IUp6n89kKWF4IZi18v3fxQWFRolvBA6phNVmA8psdfB1MvDnGacCJdS+EOX12w/CyHM62z//rHmYmvw==}
|
||||
|
||||
'@tanstack/solid-query@5.51.16':
|
||||
resolution: {integrity: sha512-jQpTqNzmtMuNM1hgJRZoPitsGRbh0d254rRRlpK60zUb0avQpY4n+BdHRRnLWi/PrJ/HPYj4WId1C/5ZkxDztg==}
|
||||
'@tanstack/solid-query@5.51.21':
|
||||
resolution: {integrity: sha512-ZwiTMpownN5qwEZE7UB7ccfGkbzSECkZOv/P1+SQ+dKchNtkF9sA0Zz8IVnr6lgqumkCwS8M65ciBdzI0JfTAQ==}
|
||||
peerDependencies:
|
||||
solid-js: ^1.6.0
|
||||
|
||||
'@tauri-apps/api@2.0.0-beta.15':
|
||||
resolution: {integrity: sha512-H9w6iISmR+NvH4XuyCZB4zDN10tf9RFt6i/9JHEjaRhAowdAaJ+oiXq/3kedizNClHMtbTQ5j0oqDVPkZDAI8g==}
|
||||
engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
|
||||
|
||||
'@tauri-apps/api@2.0.0-beta.16':
|
||||
resolution: {integrity: sha512-YGjkR9HxS/YyIoqoXDkk8o9Yy5NW6u9YxzeqEodwwOUoeS0nac6mzLTW3VYIuSelHmyUQCgbyENVY6e5CJXA4Q==}
|
||||
engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
|
||||
|
||||
'@tauri-apps/api@2.0.0-rc.0':
|
||||
resolution: {integrity: sha512-v454Qs3REHc3Za59U+/eSmBsdmF+3NE5+76+lFDaitVqN4ZglDHENDaMARYKGJVZuxiSkzyqG0SeG7lLQjVkPA==}
|
||||
engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
|
||||
|
||||
'@tauri-apps/cli-darwin-arm64@2.0.0-beta.23':
|
||||
resolution: {integrity: sha512-Ppt76xF2SeXdkzgYdIo/UZwkvj76G33MCX9ouqqIlTVqj1FUWYLnHqUh9iCbav98NI3WzhMpNtxzRJq++7/qmw==}
|
||||
engines: {node: '>= 10'}
|
||||
|
|
@ -1272,8 +1275,9 @@ packages:
|
|||
resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-clipboard-manager/tar.gz/20e84cfbdebcd86bb1854846feb0aaff4481fbd0}
|
||||
version: 2.1.0-beta.6
|
||||
|
||||
'@tauri-apps/plugin-dialog@2.0.0-beta.8':
|
||||
resolution: {integrity: sha512-6iVhEBceWYLUgX6ygBc4/yJ1o/D4YwgoAGt7ebFUTjEyIhp79PeFtE8OTjdyJbtVOc6bAcDeAn4+pbWtSw9/4w==}
|
||||
'@tauri-apps/plugin-dialog@https://codeload.github.com/tauri-apps/tauri-plugin-dialog/tar.gz/f83833c5445948c1b2f022e3c530ca48be9f8768':
|
||||
resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-dialog/tar.gz/f83833c5445948c1b2f022e3c530ca48be9f8768}
|
||||
version: 2.0.0-rc.0
|
||||
|
||||
'@tauri-apps/plugin-shell@https://codeload.github.com/tauri-apps/tauri-plugin-shell/tar.gz/5cc36dadeaad0520111c6f5e32ecdbbae7cb1311':
|
||||
resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-shell/tar.gz/5cc36dadeaad0520111c6f5e32ecdbbae7cb1311}
|
||||
|
|
@ -1351,8 +1355,8 @@ packages:
|
|||
'@types/node@20.14.10':
|
||||
resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==}
|
||||
|
||||
'@types/node@22.0.2':
|
||||
resolution: {integrity: sha512-yPL6DyFwY5PiMVEwymNeqUTKsDczQBJ/5T7W/46RwLU/VH+AA8aT5TZkvBviLKLbbm0hlfftEkGrNzfRk/fofQ==}
|
||||
'@types/node@22.1.0':
|
||||
resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==}
|
||||
|
||||
'@types/normalize-package-data@2.4.4':
|
||||
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
|
||||
|
|
@ -1762,8 +1766,8 @@ packages:
|
|||
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
bumpp@9.4.1:
|
||||
resolution: {integrity: sha512-kzhp/LpNX0HkUpEyLd7sU2LTN/mbAVgcxJ1Zi2cAJTE/tul6rypSKGpH8UywDpzKWItL8LVdKsIFnwmylw0+7g==}
|
||||
bumpp@9.4.2:
|
||||
resolution: {integrity: sha512-D0Cb5Mgxei7PObv4FkKQ19v1qSRhA3buQqCEQW6EU4+iort7JxL06DC6bZG5E0x/euZkaBuAQqOtFd2zIJKPjA==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -1773,8 +1777,13 @@ packages:
|
|||
peerDependencies:
|
||||
esbuild: '>=0.18'
|
||||
|
||||
c12@1.10.0:
|
||||
resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==}
|
||||
c12@1.11.1:
|
||||
resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==}
|
||||
peerDependencies:
|
||||
magicast: ^0.3.4
|
||||
peerDependenciesMeta:
|
||||
magicast:
|
||||
optional: true
|
||||
|
||||
cac@6.7.14:
|
||||
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
|
||||
|
|
@ -2562,10 +2571,6 @@ packages:
|
|||
isexe@2.0.0:
|
||||
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
||||
|
||||
jiti@1.21.0:
|
||||
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
|
||||
hasBin: true
|
||||
|
||||
jiti@1.21.6:
|
||||
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
|
||||
hasBin: true
|
||||
|
|
@ -2772,12 +2777,6 @@ packages:
|
|||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
mlly@1.6.1:
|
||||
resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==}
|
||||
|
||||
mlly@1.7.0:
|
||||
resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==}
|
||||
|
||||
mlly@1.7.1:
|
||||
resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
|
||||
|
||||
|
|
@ -2829,8 +2828,8 @@ packages:
|
|||
nwsapi@2.2.12:
|
||||
resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==}
|
||||
|
||||
nypm@0.3.8:
|
||||
resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==}
|
||||
nypm@0.3.9:
|
||||
resolution: {integrity: sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==}
|
||||
engines: {node: ^14.16.0 || >=16.10.0}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -2959,9 +2958,6 @@ packages:
|
|||
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
pkg-types@1.1.0:
|
||||
resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==}
|
||||
|
||||
pkg-types@1.1.3:
|
||||
resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==}
|
||||
|
||||
|
|
@ -3343,8 +3339,8 @@ packages:
|
|||
tslib@2.6.3:
|
||||
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
|
||||
|
||||
tsx@4.16.4:
|
||||
resolution: {integrity: sha512-E0EDobc7FtOxdNtG0ZQWztLa9PK/TqC5QvdV0heyIMJySwcJ8vyvziOznzO1MIM2IDfacLGBgfiCUmba6mvI7Q==}
|
||||
tsx@4.16.5:
|
||||
resolution: {integrity: sha512-ArsiAQHEW2iGaqZ8fTA1nX0a+lN5mNTyuGRRO6OW3H/Yno1y9/t1f9YOI1Cfoqz63VAthn++ZYcbDP7jPflc+A==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -3373,9 +3369,6 @@ packages:
|
|||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
ufo@1.5.3:
|
||||
resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==}
|
||||
|
||||
ufo@1.5.4:
|
||||
resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
|
||||
|
||||
|
|
@ -3385,8 +3378,8 @@ packages:
|
|||
undici-types@5.26.5:
|
||||
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
|
||||
|
||||
undici-types@6.11.1:
|
||||
resolution: {integrity: sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==}
|
||||
undici-types@6.13.0:
|
||||
resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==}
|
||||
|
||||
undici@6.19.5:
|
||||
resolution: {integrity: sha512-LryC15SWzqQsREHIOUybavaIHF5IoL0dJ9aWWxL/PgT1KfqAW5225FZpDUFlt9xiDMS2/S7DOKhFWA7RLksWdg==}
|
||||
|
|
@ -4173,7 +4166,7 @@ snapshots:
|
|||
|
||||
'@eslint/object-schema@2.1.4': {}
|
||||
|
||||
'@flowr/eslint-config@3.10.2(@unocss/eslint-plugin@0.61.9(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.8.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.8.0))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.0.2)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.8.0))':
|
||||
'@flowr/eslint-config@3.10.2(@unocss/eslint-plugin@0.61.9(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-solid@0.14.1(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-vue@9.27.0(eslint@9.8.0))(eslint-processor-vue-blocks@0.1.2(eslint@9.8.0))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))(vue-eslint-parser@9.4.3(eslint@9.8.0))':
|
||||
dependencies:
|
||||
'@antfu/install-pkg': 0.3.3
|
||||
'@clack/prompts': 0.7.0
|
||||
|
|
@ -4196,7 +4189,7 @@ snapshots:
|
|||
eslint-plugin-toml: 0.11.1(eslint@9.8.0)
|
||||
eslint-plugin-unicorn: 55.0.0(eslint@9.8.0)
|
||||
eslint-plugin-unused-imports: 4.0.1(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)
|
||||
eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.0.2)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))
|
||||
eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8))
|
||||
eslint-plugin-yml: 1.14.0(eslint@9.8.0)
|
||||
find-up: 7.0.0
|
||||
globals: 15.8.0
|
||||
|
|
@ -4407,11 +4400,11 @@ snapshots:
|
|||
'@rspc/client': 0.2.3
|
||||
'@tanstack/query-core': 5.51.1
|
||||
|
||||
'@rspc/solid-query@0.2.3(@tanstack/solid-query@5.51.16(solid-js@1.8.19))(solid-js@1.8.19)':
|
||||
'@rspc/solid-query@0.2.3(@tanstack/solid-query@5.51.21(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.16(solid-js@1.8.19)
|
||||
'@tanstack/solid-query': 5.51.21(solid-js@1.8.19)
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@rspc/tauri@0.2.0(@tauri-apps/api@2.0.0-beta.16)':
|
||||
|
|
@ -4419,6 +4412,11 @@ snapshots:
|
|||
'@rspc/client': 0.2.0
|
||||
'@tauri-apps/api': 2.0.0-beta.16
|
||||
|
||||
'@rspc/tauri@0.2.0(@tauri-apps/api@2.0.0-rc.0)':
|
||||
dependencies:
|
||||
'@rspc/client': 0.2.0
|
||||
'@tauri-apps/api': 2.0.0-rc.0
|
||||
|
||||
'@sec-ant/readable-stream@0.4.1': {}
|
||||
|
||||
'@sindresorhus/merge-streams@4.0.0': {}
|
||||
|
|
@ -4511,17 +4509,17 @@ snapshots:
|
|||
|
||||
'@tanstack/query-core@5.51.1': {}
|
||||
|
||||
'@tanstack/query-core@5.51.16': {}
|
||||
'@tanstack/query-core@5.51.21': {}
|
||||
|
||||
'@tanstack/solid-query@5.51.16(solid-js@1.8.19)':
|
||||
'@tanstack/solid-query@5.51.21(solid-js@1.8.19)':
|
||||
dependencies:
|
||||
'@tanstack/query-core': 5.51.16
|
||||
'@tanstack/query-core': 5.51.21
|
||||
solid-js: 1.8.19
|
||||
|
||||
'@tauri-apps/api@2.0.0-beta.15': {}
|
||||
|
||||
'@tauri-apps/api@2.0.0-beta.16': {}
|
||||
|
||||
'@tauri-apps/api@2.0.0-rc.0': {}
|
||||
|
||||
'@tauri-apps/cli-darwin-arm64@2.0.0-beta.23':
|
||||
optional: true
|
||||
|
||||
|
|
@ -4569,9 +4567,9 @@ snapshots:
|
|||
dependencies:
|
||||
'@tauri-apps/api': 2.0.0-beta.16
|
||||
|
||||
'@tauri-apps/plugin-dialog@2.0.0-beta.8':
|
||||
'@tauri-apps/plugin-dialog@https://codeload.github.com/tauri-apps/tauri-plugin-dialog/tar.gz/f83833c5445948c1b2f022e3c530ca48be9f8768':
|
||||
dependencies:
|
||||
'@tauri-apps/api': 2.0.0-beta.16
|
||||
'@tauri-apps/api': 2.0.0-rc.0
|
||||
|
||||
'@tauri-apps/plugin-shell@https://codeload.github.com/tauri-apps/tauri-plugin-shell/tar.gz/5cc36dadeaad0520111c6f5e32ecdbbae7cb1311':
|
||||
dependencies:
|
||||
|
|
@ -4666,9 +4664,9 @@ snapshots:
|
|||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
'@types/node@22.0.2':
|
||||
'@types/node@22.1.0':
|
||||
dependencies:
|
||||
undici-types: 6.11.1
|
||||
undici-types: 6.13.0
|
||||
|
||||
'@types/normalize-package-data@2.4.4': {}
|
||||
|
||||
|
|
@ -4916,13 +4914,13 @@ snapshots:
|
|||
'@typescript-eslint/types': 8.0.0-alpha.55
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@unocss/astro@0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))':
|
||||
'@unocss/astro@0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))':
|
||||
dependencies:
|
||||
'@unocss/core': 0.61.9
|
||||
'@unocss/reset': 0.61.9
|
||||
'@unocss/vite': 0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))
|
||||
'@unocss/vite': 0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))
|
||||
optionalDependencies:
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
|
@ -5072,7 +5070,7 @@ snapshots:
|
|||
dependencies:
|
||||
'@unocss/core': 0.61.9
|
||||
|
||||
'@unocss/vite@0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))':
|
||||
'@unocss/vite@0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.19.2)
|
||||
|
|
@ -5084,7 +5082,7 @@ snapshots:
|
|||
chokidar: 3.6.0
|
||||
fast-glob: 3.3.2
|
||||
magic-string: 0.30.11
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
|
@ -5128,7 +5126,7 @@ snapshots:
|
|||
pathe: 1.1.2
|
||||
sirv: 2.0.4
|
||||
tinyrainbow: 1.2.0
|
||||
vitest: 2.0.5(@types/node@22.0.2)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)
|
||||
vitest: 2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)
|
||||
|
||||
'@vitest/utils@2.0.5':
|
||||
dependencies:
|
||||
|
|
@ -5239,35 +5237,37 @@ snapshots:
|
|||
|
||||
builtin-modules@3.3.0: {}
|
||||
|
||||
bumpp@9.4.1:
|
||||
bumpp@9.4.2:
|
||||
dependencies:
|
||||
'@jsdevtools/ez-spawn': 3.0.4
|
||||
c12: 1.10.0
|
||||
c12: 1.11.1
|
||||
cac: 6.7.14
|
||||
escalade: 3.1.2
|
||||
fast-glob: 3.3.2
|
||||
js-yaml: 4.1.0
|
||||
prompts: 2.4.2
|
||||
semver: 7.6.3
|
||||
transitivePeerDependencies:
|
||||
- magicast
|
||||
|
||||
bundle-require@5.0.0(esbuild@0.23.0):
|
||||
dependencies:
|
||||
esbuild: 0.23.0
|
||||
load-tsconfig: 0.2.5
|
||||
|
||||
c12@1.10.0:
|
||||
c12@1.11.1:
|
||||
dependencies:
|
||||
chokidar: 3.6.0
|
||||
confbox: 0.1.7
|
||||
defu: 6.1.4
|
||||
dotenv: 16.4.5
|
||||
giget: 1.2.3
|
||||
jiti: 1.21.0
|
||||
mlly: 1.7.0
|
||||
jiti: 1.21.6
|
||||
mlly: 1.7.1
|
||||
ohash: 1.1.3
|
||||
pathe: 1.1.2
|
||||
perfect-debounce: 1.0.0
|
||||
pkg-types: 1.1.0
|
||||
pkg-types: 1.1.3
|
||||
rc9: 2.1.2
|
||||
|
||||
cac@6.7.14: {}
|
||||
|
|
@ -5728,13 +5728,13 @@ snapshots:
|
|||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)
|
||||
|
||||
eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.0.2)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)):
|
||||
eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)):
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 7.17.0(eslint@9.8.0)(typescript@5.5.4)
|
||||
eslint: 9.8.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.0.0-alpha.41(@typescript-eslint/parser@8.0.0-alpha.41(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)
|
||||
vitest: 2.0.5(@types/node@22.0.2)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)
|
||||
vitest: 2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
|
@ -5994,7 +5994,7 @@ snapshots:
|
|||
consola: 3.2.3
|
||||
defu: 6.1.4
|
||||
node-fetch-native: 1.6.4
|
||||
nypm: 0.3.8
|
||||
nypm: 0.3.9
|
||||
ohash: 1.1.3
|
||||
pathe: 1.1.2
|
||||
tar: 6.2.1
|
||||
|
|
@ -6097,7 +6097,7 @@ snapshots:
|
|||
jiti-v1: jiti@1.21.6
|
||||
pathe: 1.1.2
|
||||
pkg-types: 1.1.3
|
||||
tsx: 4.16.4
|
||||
tsx: 4.16.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
|
@ -6162,8 +6162,6 @@ snapshots:
|
|||
|
||||
isexe@2.0.0: {}
|
||||
|
||||
jiti@1.21.0: {}
|
||||
|
||||
jiti@1.21.6: {}
|
||||
|
||||
jiti@2.0.0-beta.2: {}
|
||||
|
|
@ -6358,20 +6356,6 @@ snapshots:
|
|||
|
||||
mkdirp@1.0.4: {}
|
||||
|
||||
mlly@1.6.1:
|
||||
dependencies:
|
||||
acorn: 8.11.3
|
||||
pathe: 1.1.2
|
||||
pkg-types: 1.1.0
|
||||
ufo: 1.5.3
|
||||
|
||||
mlly@1.7.0:
|
||||
dependencies:
|
||||
acorn: 8.11.3
|
||||
pathe: 1.1.2
|
||||
pkg-types: 1.1.0
|
||||
ufo: 1.5.3
|
||||
|
||||
mlly@1.7.1:
|
||||
dependencies:
|
||||
acorn: 8.12.1
|
||||
|
|
@ -6418,13 +6402,14 @@ snapshots:
|
|||
|
||||
nwsapi@2.2.12: {}
|
||||
|
||||
nypm@0.3.8:
|
||||
nypm@0.3.9:
|
||||
dependencies:
|
||||
citty: 0.1.6
|
||||
consola: 3.2.3
|
||||
execa: 8.0.1
|
||||
pathe: 1.1.2
|
||||
ufo: 1.5.3
|
||||
pkg-types: 1.1.3
|
||||
ufo: 1.5.4
|
||||
|
||||
ofetch@1.3.4:
|
||||
dependencies:
|
||||
|
|
@ -6541,12 +6526,6 @@ snapshots:
|
|||
|
||||
picomatch@4.0.2: {}
|
||||
|
||||
pkg-types@1.1.0:
|
||||
dependencies:
|
||||
confbox: 0.1.7
|
||||
mlly: 1.6.1
|
||||
pathe: 1.1.2
|
||||
|
||||
pkg-types@1.1.3:
|
||||
dependencies:
|
||||
confbox: 0.1.7
|
||||
|
|
@ -6910,14 +6889,14 @@ snapshots:
|
|||
dependencies:
|
||||
typescript: 5.5.4
|
||||
|
||||
ts-node@10.9.2(@types/node@22.0.2)(typescript@5.5.4):
|
||||
ts-node@10.9.2(@types/node@22.1.0)(typescript@5.5.4):
|
||||
dependencies:
|
||||
'@cspotcode/source-map-support': 0.8.1
|
||||
'@tsconfig/node10': 1.0.11
|
||||
'@tsconfig/node12': 1.0.11
|
||||
'@tsconfig/node14': 1.0.3
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/node': 22.0.2
|
||||
'@types/node': 22.1.0
|
||||
acorn: 8.11.3
|
||||
acorn-walk: 8.3.2
|
||||
arg: 4.1.3
|
||||
|
|
@ -6934,7 +6913,7 @@ snapshots:
|
|||
|
||||
tslib@2.6.3: {}
|
||||
|
||||
tsx@4.16.4:
|
||||
tsx@4.16.5:
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
get-tsconfig: 4.7.6
|
||||
|
|
@ -6956,8 +6935,6 @@ snapshots:
|
|||
|
||||
typescript@5.5.4: {}
|
||||
|
||||
ufo@1.5.3: {}
|
||||
|
||||
ufo@1.5.4: {}
|
||||
|
||||
unconfig@0.5.5:
|
||||
|
|
@ -6970,7 +6947,7 @@ snapshots:
|
|||
|
||||
undici-types@5.26.5: {}
|
||||
|
||||
undici-types@6.11.1: {}
|
||||
undici-types@6.13.0: {}
|
||||
|
||||
undici@6.19.5: {}
|
||||
|
||||
|
|
@ -6982,9 +6959,9 @@ snapshots:
|
|||
|
||||
universalify@0.2.0: {}
|
||||
|
||||
unocss@0.61.9(postcss@8.4.40)(rollup@4.19.2)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8)):
|
||||
unocss@0.61.9(postcss@8.4.40)(rollup@4.19.2)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8)):
|
||||
dependencies:
|
||||
'@unocss/astro': 0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))
|
||||
'@unocss/astro': 0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))
|
||||
'@unocss/cli': 0.61.9(rollup@4.19.2)
|
||||
'@unocss/core': 0.61.9
|
||||
'@unocss/extractor-arbitrary-variants': 0.61.9
|
||||
|
|
@ -7003,9 +6980,9 @@ snapshots:
|
|||
'@unocss/transformer-compile-class': 0.61.9
|
||||
'@unocss/transformer-directives': 0.61.9
|
||||
'@unocss/transformer-variant-group': 0.61.9
|
||||
'@unocss/vite': 0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))
|
||||
'@unocss/vite': 0.61.9(rollup@4.19.2)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))
|
||||
optionalDependencies:
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- postcss
|
||||
- rollup
|
||||
|
|
@ -7040,13 +7017,13 @@ snapshots:
|
|||
spdx-correct: 3.2.0
|
||||
spdx-expression-parse: 3.0.1
|
||||
|
||||
vite-node@2.0.5(@types/node@22.0.2)(sass@1.77.8):
|
||||
vite-node@2.0.5(@types/node@22.1.0)(sass@1.77.8):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.3.6
|
||||
pathe: 1.1.2
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
|
|
@ -7057,13 +7034,13 @@ snapshots:
|
|||
- supports-color
|
||||
- terser
|
||||
|
||||
vite-plugin-solid-svg@0.8.1(solid-js@1.8.19)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8)):
|
||||
vite-plugin-solid-svg@0.8.1(solid-js@1.8.19)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8)):
|
||||
dependencies:
|
||||
solid-js: 1.8.19
|
||||
svgo: 3.3.2
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@22.1.0)(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.5(@types/node@22.0.2)(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.5(@types/node@22.1.0)(sass@1.77.8)):
|
||||
dependencies:
|
||||
'@babel/core': 7.24.9
|
||||
'@types/babel__core': 7.20.5
|
||||
|
|
@ -7071,39 +7048,39 @@ snapshots:
|
|||
merge-anything: 5.1.7
|
||||
solid-js: 1.8.19
|
||||
solid-refresh: 0.6.3(solid-js@1.8.19)
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vitefu: 0.2.5(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8))
|
||||
vite: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
vitefu: 0.2.5(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8))
|
||||
optionalDependencies:
|
||||
'@testing-library/jest-dom': 6.4.8
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vite-tsconfig-paths@4.3.2(typescript@5.5.4)(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8)):
|
||||
vite-tsconfig-paths@4.3.2(typescript@5.5.4)(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8)):
|
||||
dependencies:
|
||||
debug: 4.3.5
|
||||
globrex: 0.1.2
|
||||
tsconfck: 3.0.3(typescript@5.5.4)
|
||||
optionalDependencies:
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite@5.3.5(@types/node@22.0.2)(sass@1.77.8):
|
||||
vite@5.3.5(@types/node@22.1.0)(sass@1.77.8):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.40
|
||||
rollup: 4.19.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.0.2
|
||||
'@types/node': 22.1.0
|
||||
fsevents: 2.3.3
|
||||
sass: 1.77.8
|
||||
|
||||
vitefu@0.2.5(vite@5.3.5(@types/node@22.0.2)(sass@1.77.8)):
|
||||
vitefu@0.2.5(vite@5.3.5(@types/node@22.1.0)(sass@1.77.8)):
|
||||
optionalDependencies:
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
|
||||
vitest@2.0.5(@types/node@22.0.2)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8):
|
||||
vitest@2.0.5(@types/node@22.1.0)(@vitest/ui@2.0.5)(jsdom@24.1.1)(sass@1.77.8):
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@vitest/expect': 2.0.5
|
||||
|
|
@ -7121,11 +7098,11 @@ snapshots:
|
|||
tinybench: 2.8.0
|
||||
tinypool: 1.0.0
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.3.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite-node: 2.0.5(@types/node@22.0.2)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
vite-node: 2.0.5(@types/node@22.1.0)(sass@1.77.8)
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.0.2
|
||||
'@types/node': 22.1.0
|
||||
'@vitest/ui': 2.0.5(vitest@2.0.5)
|
||||
jsdom: 24.1.1
|
||||
transitivePeerDependencies:
|
||||
|
|
|
|||
14
shared.config.ts
Normal file
14
shared.config.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import { defineProject as defineVitestConfig } from 'vitest/config';
|
||||
|
||||
export function shared(name: TemplateStringsArray) {
|
||||
return {
|
||||
vitest: defineVitestConfig({
|
||||
test: {
|
||||
globals: true,
|
||||
name: name[0]!,
|
||||
},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
export default shared;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"extends": "./tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"types": ["vitest/globals", "vite/client"]
|
||||
"types": ["vitest/globals", "vite/client", "node"]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
6
vitest.workspace.ts
Normal file
6
vitest.workspace.ts
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
import { defineWorkspace } from 'vitest/config';
|
||||
|
||||
export default defineWorkspace([
|
||||
'packages/client/vitest.config.ts',
|
||||
'apps/frontend/vitest.config.ts',
|
||||
]);
|
||||
Loading…
Add table
Reference in a new issue