Upgrade dependencies

This commit is contained in:
kodjomoustapha 2024-02-03 21:14:04 +01:00
parent ca81405f43
commit 2af65f09ff
15 changed files with 2199 additions and 334 deletions

69
Cargo.lock generated
View file

@ -422,6 +422,16 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
dependencies = [
"libc",
"windows-sys 0.52.0",
]
[[package]]
name = "exr"
version = "1.71.0"
@ -726,9 +736,9 @@ dependencies = [
[[package]]
name = "image"
version = "0.24.7"
version = "0.24.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
dependencies = [
"bytemuck",
"byteorder",
@ -736,7 +746,6 @@ dependencies = [
"exr",
"gif",
"jpeg-decoder",
"num-rational",
"num-traits",
"png",
"qoi",
@ -794,9 +803,15 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
[[package]]
name = "libc"
version = "0.2.149"
version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "linux-raw-sys"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
[[package]]
name = "litemap"
@ -878,17 +893,6 @@ dependencies = [
"num-traits",
]
[[package]]
name = "num-rational"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.17"
@ -1212,15 +1216,18 @@ dependencies = [
[[package]]
name = "rinf"
version = "6.1.0"
version = "6.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90aa69e1a7ff87d0aba9d172c3cfe3f87dd40b4c1cf9bec2b4fc79e9339de1c1"
checksum = "525fbe92d54cd8ac897310e03f8346122ea04fcb3cb627ebbaabff29264d2e3a"
dependencies = [
"allo-isolate",
"backtrace",
"home",
"js-sys",
"os-thread-local",
"protoc-prebuilt",
"wasm-bindgen",
"which",
]
[[package]]
@ -1249,6 +1256,19 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustix"
version = "0.38.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
dependencies = [
"bitflags 2.4.1",
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.52.0",
]
[[package]]
name = "rustls"
version = "0.21.10"
@ -1729,6 +1749,19 @@ version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
[[package]]
name = "which"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c"
dependencies = [
"either",
"home",
"once_cell",
"rustix",
"windows-sys 0.52.0",
]
[[package]]
name = "winapi"
version = "0.3.9"

View file

@ -36,7 +36,7 @@ class MyHttpoverrides extends HttpOverrides {
/// Entry point of the application.
void main(List<String> args) async {
await Rinf.initialize();
await initializeRust();
// Override the default HTTP client.
HttpOverrides.global = MyHttpoverrides();
// If running on desktop platforms and web view title bar widget is active, exit.

View file

@ -826,8 +826,8 @@ class _MangaChapterPageGalleryState
}
void _initCurrentIndex() async {
await Rinf.finalize();
await Rinf.initialize();
await finalizeRust();
await initializeRust();
final readerMode = _readerController.getReaderMode();
_uChapDataPreload.addAll(_chapterUrlModel.uChapDataPreload);
_readerController.setMangaHistoryUpdate();

View file

@ -62,8 +62,8 @@ Future<GetChapterPagesModel> getChapterPages(
isarPageUrls.first.urls!.isNotEmpty) {
pageUrls = isarPageUrls.first.urls!;
} else {
await Rinf.finalize();
await Rinf.initialize();
await finalizeRust();
await initializeRust();
final bytecode =
compilerEval(useTestSourceCode ? testSourceCode : source.sourceCode!);

View file

@ -37,8 +37,8 @@ Future<(List<Video>, bool, String?)> getVideoList(
await MTorrentServer().getTorrentPlaylist(episode.url!);
return (videos, false, infohash);
}
await Rinf.finalize();
await Rinf.initialize();
await finalizeRust();
await initializeRust();
final bytecode =
compilerEval(useTestSourceCode ? testSourceCode : source.sourceCode!);

View file

@ -6,8 +6,7 @@ import 'package:mangayomi/messages/generated.dart';
import 'package:mangayomi/providers/storage_provider.dart';
Future<void> initInIsolate(RootIsolateToken token) async {
BackgroundIsolateBinaryMessenger.ensureInitialized(token);
await Rinf.initialize();
await initializeRust();
HttpOverrides.global = MyHttpoverrides();
isar = await StorageProvider().initDB(null, inspector: kDebugMode);
iniDateFormatting();

2080
native/hub/Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -12,10 +12,10 @@ edition = "2021"
crate-type = ["lib", "cdylib", "staticlib"]
[dependencies]
rinf = "6.1.0"
rinf = "6.4.0"
allo-isolate = "0.1.24"
wasm-bindgen = "0.2.90"
prost = "0.12.3"
tokio_with_wasm = "0.4.0"
image = "0.24.7"
image = "0.24.8"
boa_engine = "0.17.3"

View file

@ -1,53 +0,0 @@
#![allow(dead_code)]
use std::cell::RefCell;
use std::sync::Mutex;
use std::sync::OnceLock;
#[cfg(not(target_family = "wasm"))]
pub use super::interface_os::*;
#[cfg(target_family = "wasm")]
pub use super::interface_web::*;
/// This contains a message from Dart.
/// Optionally, a custom binary called `blob` can also be included.
/// This type is generic, and the message
/// can be of any type declared in Protobuf.
pub struct DartSignal<T> {
pub message: T,
pub blob: Option<Vec<u8>>,
}
/// This is a mutable cell type that can be shared across threads.
pub type SharedCell<T> = OnceLock<Mutex<RefCell<Option<T>>>>;
/// Send a signal to Dart.
pub fn send_rust_signal(message_id: i32, message_bytes: Vec<u8>, blob: Option<Vec<u8>>) {
send_rust_signal_extern(
message_id,
message_bytes,
blob.is_some(),
blob.unwrap_or_default(),
);
}
/// Delegates the printing operation to Flutter,
/// which excels at handling various platforms
/// including web and mobile emulators.
/// When debugging, using this macro is recommended over `println!()`,
/// as it seamlessly adapts to different environments.
/// Note that this macro does nothing in release mode.
#[macro_export]
macro_rules! debug_print {
( $( $t:tt )* ) => {
let rust_report = format!( $( $t )* );
#[cfg(debug_assertions)]
$crate::bridge::send_rust_signal(
-1, // This is a special message ID for Rust reports
Vec::new(),
Some(rust_report.into_bytes()),
);
#[cfg(not(debug_assertions))]
let _ = rust_report;
}
}

View file

@ -1,119 +0,0 @@
use super::SharedCell;
use crate::debug_print;
use crate::tokio::runtime::Builder;
use crate::tokio::runtime::Runtime;
use allo_isolate::IntoDart;
use allo_isolate::Isolate;
use allo_isolate::ZeroCopyBuffer;
use rinf::externs::backtrace::Backtrace;
use rinf::externs::os_thread_local::ThreadLocal;
use std::cell::RefCell;
use std::panic::catch_unwind;
use std::sync::Mutex;
use std::sync::OnceLock;
static DART_ISOLATE: SharedCell<Isolate> = OnceLock::new();
#[no_mangle]
pub extern "C" fn prepare_isolate_extern(port: i64) {
let _ = catch_unwind(|| {
let dart_isolate = Isolate::new(port);
let cell = DART_ISOLATE
.get_or_init(|| Mutex::new(RefCell::new(None)))
.lock()
.unwrap();
cell.replace(Some(dart_isolate));
});
}
// We use `os_thread_local` so that when the program fails
// and the main thread exits unexpectedly,
// the whole async tokio runtime can disappear as well.
type TokioRuntime = OnceLock<ThreadLocal<RefCell<Option<Runtime>>>>;
static TOKIO_RUNTIME: TokioRuntime = OnceLock::new();
#[no_mangle]
pub extern "C" fn start_rust_logic_extern() {
let _ = catch_unwind(|| {
// Enable backtrace output for panics.
#[cfg(debug_assertions)]
{
std::panic::set_hook(Box::new(|panic_info| {
let backtrace = Backtrace::new();
debug_print!("A panic occurred in Rust.\n{panic_info}\n{backtrace:?}");
}));
}
// Run the main function.
let tokio_runtime = Builder::new_multi_thread().enable_all().build().unwrap();
tokio_runtime.spawn(crate::main());
let os_cell = TOKIO_RUNTIME.get_or_init(|| ThreadLocal::new(|| RefCell::new(None)));
os_cell.with(move |cell| {
// If there was already a tokio runtime previously,
// most likely due to Dart's hot restart,
// its tasks as well as itself will be terminated,
// being replaced with the new one.
cell.replace(Some(tokio_runtime));
});
});
}
#[no_mangle]
pub extern "C" fn stop_rust_logic_extern() {
let _ = catch_unwind(|| {
let os_cell = TOKIO_RUNTIME.get_or_init(|| ThreadLocal::new(|| RefCell::new(None)));
os_cell.with(move |cell| {
// If there was already a tokio runtime previously,
// most likely due to Dart's hot restart,
// its tasks as well as itself will be terminated,
// being replaced with the new one.
cell.replace(None);
});
});
}
#[no_mangle]
pub extern "C" fn send_dart_signal_extern(
message_id: i64,
message_pointer: *const u8,
message_size: usize,
blob_valid: bool,
blob_pointer: *const u8,
blob_size: usize,
) {
let message_bytes =
unsafe { Vec::from_raw_parts(message_pointer as *mut u8, message_size, message_size) };
let blob = if blob_valid {
unsafe {
Some(Vec::from_raw_parts(
blob_pointer as *mut u8,
blob_size,
blob_size,
))
}
} else {
None
};
let _ = catch_unwind(|| {
crate::messages::generated::handle_dart_signal(message_id as i32, message_bytes, blob);
});
}
pub fn send_rust_signal_extern(
message_id: i32,
message_bytes: Vec<u8>,
blob_valid: bool,
blob_bytes: Vec<u8>,
) {
let cell = DART_ISOLATE.get().unwrap().lock().unwrap();
let dart_isolate = cell.borrow().unwrap();
dart_isolate.post(
vec![
message_id.into_dart(),
ZeroCopyBuffer(message_bytes).into_dart(),
blob_valid.into_dart(),
ZeroCopyBuffer(blob_bytes).into_dart(),
]
.into_dart(),
);
}

View file

@ -1,64 +0,0 @@
use crate::debug_print;
use crate::tokio;
use rinf::externs::js_sys::Uint8Array;
use std::panic::catch_unwind;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn start_rust_logic_extern() {
let _ = catch_unwind(|| {
// Add kind description for panics.
#[cfg(debug_assertions)]
{
std::panic::set_hook(Box::new(|panic_info| {
debug_print!("A panic occurred in Rust.\n{panic_info}");
}));
}
// Run the main function.
tokio::spawn(crate::main());
});
}
#[wasm_bindgen]
pub fn send_dart_signal_extern(
message_id: i32,
message_bytes: &[u8],
blob_valid: bool,
blob_bytes: &[u8],
) {
let message_bytes = message_bytes.to_vec();
let blob = if blob_valid {
Some(blob_bytes.to_vec())
} else {
None
};
let _ = catch_unwind(|| {
crate::messages::generated::handle_dart_signal(message_id, message_bytes, blob);
});
}
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_name = rinf_send_rust_signal_extern)]
pub fn send_rust_signal_extern_raw(
resource: i32,
message_bytes: Uint8Array,
blob_valid: bool,
blob_bytes: Uint8Array,
);
}
pub fn send_rust_signal_extern(
message_id: i32,
message_bytes: Vec<u8>,
blob_valid: bool,
blob_bytes: Vec<u8>,
) {
send_rust_signal_extern_raw(
message_id,
rinf::externs::js_sys::Uint8Array::from(message_bytes.as_slice()),
blob_valid,
rinf::externs::js_sys::Uint8Array::from(blob_bytes.as_slice()),
);
}

View file

@ -1,12 +0,0 @@
//! This module supports communication with Dart.
//! DO NOT EDIT.
#![allow(dead_code)]
mod interface;
pub use interface::*;
#[cfg(not(target_family = "wasm"))]
mod interface_os;
#[cfg(target_family = "wasm")]
mod interface_web;

View file

@ -1,10 +1,11 @@
use tokio_with_wasm::tokio;
mod boa_js;
mod bridge;
mod imagecrop;
mod messages;
rinf::write_interface!();
/// This `hub` crate is the entry point for the Rust logic.
/// Always use non-blocking async functions such as `tokio::fs::File::open`.
async fn main() {

View file

@ -29,10 +29,10 @@ packages:
dependency: "direct main"
description:
name: archive
sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b"
sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d"
url: "https://pub.dev"
source: hosted
version: "3.4.9"
version: "3.4.10"
args:
dependency: transitive
description:
@ -150,26 +150,26 @@ packages:
dependency: "direct main"
description:
name: cached_network_image
sha256: f98972704692ba679db144261172a8e20feb145636c617af0eb4022132a6797f
sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f"
url: "https://pub.dev"
source: hosted
version: "3.3.0"
version: "3.3.1"
cached_network_image_platform_interface:
dependency: transitive
description:
name: cached_network_image_platform_interface
sha256: "56aa42a7a01e3c9db8456d9f3f999931f1e05535b5a424271e9a38cabf066613"
sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f"
url: "https://pub.dev"
source: hosted
version: "3.0.0"
version: "4.0.0"
cached_network_image_web:
dependency: transitive
description:
name: cached_network_image_web
sha256: "759b9a9f8f6ccbb66c185df805fac107f05730b1dab9c64626d1008cca532257"
sha256: "42a835caa27c220d1294311ac409a43361088625a4f23c820b006dd9bffb3316"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.1.1"
characters:
dependency: transitive
description:
@ -294,10 +294,10 @@ packages:
dependency: "direct main"
description:
name: dart_eval
sha256: "8896832008bb5379caad1c55109ef357566365ec1abb4f49819c79021cc0e0e1"
sha256: "2c591884656b550d9d532d2e5ee72341d3dd07df1e0fd379a837d501a41bc00c"
url: "https://pub.dev"
source: hosted
version: "0.7.3"
version: "0.7.4"
dart_style:
dependency: transitive
description:
@ -520,10 +520,10 @@ packages:
dependency: "direct main"
description:
name: flutter_riverpod
sha256: da9591d1f8d5881628ccd5c25c40e74fc3eef50ba45e40c3905a06e1712412d5
sha256: "4bce556b7ecbfea26109638d5237684538d4abc509d253e6c5c4c5733b360098"
url: "https://pub.dev"
source: hosted
version: "2.4.9"
version: "2.4.10"
flutter_test:
dependency: "direct dev"
description: flutter
@ -533,10 +533,10 @@ packages:
dependency: "direct main"
description:
name: flutter_web_auth_2
sha256: ea57000909d0002824179f1e4907c074f39538e86a9e4d93a74b7c37dbaee242
sha256: "3ea3a0cc539ca74319f4f2f7484f62742fe5b2ff9a0fca37575426d6e6f07901"
url: "https://pub.dev"
source: hosted
version: "3.0.4"
version: "3.1.1"
flutter_web_auth_2_platform_interface:
dependency: transitive
description:
@ -623,13 +623,13 @@ packages:
source: hosted
version: "0.15.4"
http:
dependency: "direct main"
dependency: "direct overridden"
description:
name: http
sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139
sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba
url: "https://pub.dev"
source: hosted
version: "1.1.2"
version: "1.2.0"
http_client_helper:
dependency: transitive
description:
@ -754,10 +754,10 @@ packages:
dependency: "direct main"
description:
name: json_path
sha256: "93f2cb012eb37112e62d3b5e5eb535431beb4c2566a9c1987b079b13b308763b"
sha256: b1a3e5e34c862a6ca598e226e725647e462bde9fd98dbfa21bb53e105efeb177
url: "https://pub.dev"
source: hosted
version: "0.6.6"
version: "0.7.0"
lazy_memo:
dependency: transitive
description:
@ -947,10 +947,10 @@ packages:
dependency: "direct main"
description:
name: path_provider
sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa
sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "2.1.2"
path_provider_android:
dependency: transitive
description:
@ -995,50 +995,50 @@ packages:
dependency: "direct main"
description:
name: permission_handler
sha256: "860c6b871c94c78e202dc69546d4d8fd84bd59faeb36f8fb9888668a53ff4f78"
sha256: "45ff3fbcb99040fde55c528d5e3e6ca29171298a85436274d49c6201002087d6"
url: "https://pub.dev"
source: hosted
version: "11.1.0"
version: "11.2.0"
permission_handler_android:
dependency: transitive
description:
name: permission_handler_android
sha256: "2f1bec180ee2f5665c22faada971a8f024761f632e93ddc23310487df52dcfa6"
sha256: "758284a0976772f9c744d6384fc5dc4834aa61e3f7aa40492927f244767374eb"
url: "https://pub.dev"
source: hosted
version: "12.0.1"
version: "12.0.3"
permission_handler_apple:
dependency: transitive
description:
name: permission_handler_apple
sha256: "1a816084338ada8d574b1cb48390e6e8b19305d5120fe3a37c98825bacc78306"
sha256: c6bf440f80acd2a873d3d91a699e4cc770f86e7e6b576dda98759e8b92b39830
url: "https://pub.dev"
source: hosted
version: "9.2.0"
version: "9.3.0"
permission_handler_html:
dependency: transitive
description:
name: permission_handler_html
sha256: "11b762a8c123dced6461933a88ea1edbbe036078c3f9f41b08886e678e7864df"
sha256: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d"
url: "https://pub.dev"
source: hosted
version: "0.1.0+2"
version: "0.1.1"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
sha256: d87349312f7eaf6ce0adaf668daf700ac5b06af84338bd8b8574dfbd93ffe1a1
sha256: "5c43148f2bfb6d14c5a8162c0a712afe891f2d847f35fcff29c406b37da43c3c"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
version: "4.1.0"
permission_handler_windows:
dependency: transitive
description:
name: permission_handler_windows
sha256: "1e8640c1e39121128da6b816d236e714d2cf17fac5a105dd6acdd3403a628004"
sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e"
url: "https://pub.dev"
source: hosted
version: "0.2.0"
version: "0.2.1"
petitparser:
dependency: transitive
description:
@ -1139,18 +1139,18 @@ packages:
dependency: "direct main"
description:
name: rinf
sha256: "780cc8e6c5390957b26b17510baf51e59f9b8f2562c50cb073b9f40a17d439a1"
sha256: "85db886bad3ee747c60106fb177d30d29c75bc1d07d27bc83280307343264732"
url: "https://pub.dev"
source: hosted
version: "6.1.0"
version: "6.4.0"
riverpod:
dependency: transitive
description:
name: riverpod
sha256: "942999ee48b899f8a46a860f1e13cee36f2f77609eb54c5b7a669bb20d550b11"
sha256: "548e2192eb7aeb826eb89387f814edb76594f3363e2c0bb99dd733d795ba3589"
url: "https://pub.dev"
source: hosted
version: "2.4.9"
version: "2.5.0"
riverpod_analyzer_utils:
dependency: transitive
description:
@ -1259,10 +1259,10 @@ packages:
dependency: "direct main"
description:
name: share_plus
sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd
sha256: "3ef39599b00059db0990ca2e30fca0a29d8b37aae924d60063f8e0184cf20900"
url: "https://pub.dev"
source: hosted
version: "7.2.1"
version: "7.2.2"
share_plus_platform_interface:
dependency: transitive
description:
@ -1448,10 +1448,10 @@ packages:
dependency: "direct main"
description:
name: url_launcher
sha256: e9aa5ea75c84cf46b3db4eea212523591211c3cf2e13099ee4ec147f54201c86
sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c
url: "https://pub.dev"
source: hosted
version: "6.2.2"
version: "6.2.4"
url_launcher_android:
dependency: transitive
description:
@ -1584,10 +1584,10 @@ packages:
dependency: "direct main"
description:
name: window_manager
sha256: dcc865277f26a7dad263a47d0e405d77e21f12cb71f30333a52710a408690bd7
sha256: b3c895bdf936c77b83c5254bec2e6b3f066710c1f89c38b20b8acc382b525494
url: "https://pub.dev"
source: hosted
version: "0.3.7"
version: "0.3.8"
window_to_front:
dependency: transitive
description:

View file

@ -13,9 +13,8 @@ dependencies:
flutter_localizations:
sdk: flutter
go_router: ^12.1.3
flutter_riverpod: ^2.4.9
cached_network_image: ^3.3.0
http: ^1.1.2
flutter_riverpod: ^2.4.10
cached_network_image: ^3.3.1
riverpod_annotation: ^2.3.3
html: ^0.15.4
font_awesome_flutter: ^10.6.0
@ -27,28 +26,28 @@ dependencies:
grouped_list: ^5.1.2
intl: ^0.18.0
google_fonts: ^6.1.0
url_launcher: ^6.2.2
url_launcher: ^6.2.4
package_info_plus: ^5.0.1
background_downloader:
git:
url: https://github.com/kodjodevf/background_downloader.git
ref: 2cc16eeb475788ec0443b64badc325c00d7dab90
permission_handler: ^11.1.0
permission_handler: ^11.2.0
flutter_inappwebview: ^5.8.0
draggable_menu: ^4.4.1
isar: 3.1.0+1
isar_flutter_libs: 3.1.0+1
share_plus: ^7.2.1
share_plus: ^7.2.2
xpath_selector_html_parser: ^3.0.1
desktop_webview_window: ^0.2.3
archive: ^3.4.9
archive: ^3.4.10
file_picker: ^6.1.1
path_provider: ^2.1.1
path_provider: ^2.1.2
scrollable_positioned_list: ^0.3.5
dart_eval: ^0.7.3
json_path: ^0.6.2
dart_eval: ^0.7.4
json_path: ^0.7.0
bot_toast: ^4.1.3
flutter_web_auth_2: ^3.0.4
flutter_web_auth_2: ^3.1.1
numberpicker: ^2.1.2
encrypt: ^5.0.3
js_packer: ^0.0.5
@ -60,10 +59,10 @@ dependencies:
ref: 0ab6b10ea660ead8e8e1694517aabe3582f25d5c
media_kit_libs_video: ^1.0.4
crypto: ^3.0.3
rinf: ^6.1.0
rinf: ^6.4.0
protobuf: ^3.1.0
cupertino_icons: ^1.0.2
window_manager: ^0.3.7
window_manager: ^0.3.8
ffi: ^2.1.0
ffigen: ^11.0.0
http_interceptor: ^2.0.0-beta.7
@ -72,6 +71,7 @@ dependencies:
dependency_overrides:
analyzer: ">=5.2.0 <7.0.0"
http: ^1.2.0
dev_dependencies:
flutter_test: