diff --git a/Cargo.lock b/Cargo.lock index 68ab754c..d120c48d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,11 +2,17 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + [[package]] name = "Readest" version = "0.2.1" dependencies = [ - "cocoa 0.25.0", + "cocoa", "font-enumeration", "futures-util", "log", @@ -17,10 +23,9 @@ dependencies = [ "serde", "serde_json", "tauri", - "tauri-build", + "tauri-build 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tauri-plugin-cli", "tauri-plugin-deep-link", - "tauri-plugin-devtools", "tauri-plugin-dialog", "tauri-plugin-fs", "tauri-plugin-haptics", @@ -56,6 +61,41 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + [[package]] name = "ahash" version = "0.7.8" @@ -338,28 +378,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "async-task" version = "4.7.1" @@ -412,51 +430,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "axum" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" -dependencies = [ - "async-trait", - "axum-core", - "bitflags 1.3.2", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "itoa 1.0.15", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper 0.1.2", - "tower 0.4.13", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - [[package]] name = "backtrace" version = "0.3.74" @@ -484,6 +457,21 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + [[package]] name = "bitflags" version = "1.3.2" @@ -652,6 +640,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + [[package]] name = "bytes" version = "1.10.1" @@ -789,6 +783,16 @@ dependencies = [ "windows-link", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clap" version = "4.5.32" @@ -824,26 +828,10 @@ checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" dependencies = [ "bitflags 1.3.2", "block", - "cocoa-foundation 0.1.2", + "cocoa-foundation", "core-foundation 0.9.4", "core-graphics 0.23.2", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" -dependencies = [ - "bitflags 2.9.0", - "block", - "cocoa-foundation 0.2.0", - "core-foundation 0.10.0", - "core-graphics 0.24.0", - "foreign-types", + "foreign-types 0.5.0", "libc", "objc", ] @@ -862,36 +850,12 @@ dependencies = [ "objc", ] -[[package]] -name = "cocoa-foundation" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" -dependencies = [ - "bitflags 2.9.0", - "block", - "core-foundation 0.10.0", - "core-graphics-types 0.2.0", - "libc", - "objc", -] - [[package]] name = "colorchoice" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" -[[package]] -name = "colored" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" -dependencies = [ - "lazy_static", - "windows-sys 0.59.0", -] - [[package]] name = "combine" version = "4.6.7" @@ -1001,7 +965,7 @@ dependencies = [ "bitflags 1.3.2", "core-foundation 0.9.4", "core-graphics-types 0.1.3", - "foreign-types", + "foreign-types 0.5.0", "libc", ] @@ -1014,7 +978,7 @@ dependencies = [ "bitflags 2.9.0", "core-foundation 0.10.0", "core-graphics-types 0.2.0", - "foreign-types", + "foreign-types 0.5.0", "libc", ] @@ -1048,7 +1012,7 @@ checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" dependencies = [ "core-foundation 0.9.4", "core-graphics 0.23.2", - "foreign-types", + "foreign-types 0.5.0", "libc", ] @@ -1098,6 +1062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", + "rand_core 0.6.4", "typenum", ] @@ -1138,6 +1103,15 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + [[package]] name = "darling" version = "0.20.10" @@ -1213,48 +1187,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "devtools-core" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78cdd51f6f62ad4eb9b6581d7e238e1779db3144ddbd711388f552e6ed3194b" -dependencies = [ - "async-stream", - "bytes", - "devtools-wire-format", - "futures", - "http 0.2.12", - "hyper 0.14.32", - "log", - "prost-types", - "ringbuf", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tonic", - "tonic-health", - "tonic-web", - "tower 0.4.13", - "tower-http", - "tower-layer", - "tracing", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "devtools-wire-format" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1c0de542960449c9566001c1879d10ede95f3f2e0013fdae0cc3b153bfabb0d" -dependencies = [ - "bitflags 2.9.0", - "prost", - "prost-types", - "tonic", - "tracing-core", -] - [[package]] name = "digest" version = "0.10.7" @@ -1415,12 +1347,6 @@ version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - [[package]] name = "embed-resource" version = "3.0.2" @@ -1487,6 +1413,16 @@ dependencies = [ "regex", ] +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +dependencies = [ + "log", + "regex", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -1618,6 +1554,15 @@ dependencies = [ "yeslogic-fontconfig-sys", ] +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + [[package]] name = "foreign-types" version = "0.5.0" @@ -1625,7 +1570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" dependencies = [ "foreign-types-macros", - "foreign-types-shared", + "foreign-types-shared 0.3.1", ] [[package]] @@ -1639,6 +1584,12 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "foreign-types-shared" version = "0.3.1" @@ -1938,6 +1889,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + [[package]] name = "gimli" version = "0.31.1" @@ -2092,25 +2053,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.8.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.8" @@ -2122,7 +2064,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.3.1", + "http", "indexmap 2.8.0", "slab", "tokio", @@ -2189,17 +2131,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.15", -] - [[package]] name = "http" version = "1.3.1" @@ -2211,17 +2142,6 @@ dependencies = [ "itoa 1.0.15", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -2229,7 +2149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.3.1", + "http", ] [[package]] @@ -2240,8 +2160,8 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.3.1", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -2251,48 +2171,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" -[[package]] -name = "http-range-header" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" - [[package]] name = "httparse" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa 1.0.15", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.6.0" @@ -2302,9 +2186,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.8", - "http 1.3.1", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "itoa 1.0.15", "pin-project-lite", @@ -2320,8 +2204,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.3.1", - "hyper 1.6.0", + "http", + "hyper", "hyper-util", "rustls", "rustls-pki-types", @@ -2332,15 +2216,19 @@ dependencies = [ ] [[package]] -name = "hyper-timeout" -version = "0.4.1" +name = "hyper-tls" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "hyper 0.14.32", - "pin-project-lite", + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", "tokio", - "tokio-io-timeout", + "tokio-native-tls", + "tower-service", ] [[package]] @@ -2352,9 +2240,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "hyper 1.6.0", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -2541,6 +2429,18 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "image" +version = "0.25.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" +dependencies = [ + "bytemuck", + "byteorder-lite", + "num-traits", + "png", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -2572,6 +2472,15 @@ dependencies = [ "cfb", ] +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + [[package]] name = "ipnet" version = "2.11.0" @@ -2603,15 +2512,6 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "0.4.8" @@ -2691,6 +2591,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "json5" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" +dependencies = [ + "pest", + "pest_derive", + "serde", +] + [[package]] name = "jsonptr" version = "0.6.3" @@ -2792,6 +2703,25 @@ dependencies = [ "redox_syscall", ] +[[package]] +name = "libxdo" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00333b8756a3d28e78def82067a377de7fa61b24909000aeaa2b446a948d14db" +dependencies = [ + "libxdo-sys", +] + +[[package]] +name = "libxdo-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23b9e7e2b7831bbd8aac0bbeeeb7b68cbebc162b227e7052e8e55829a09212" +dependencies = [ + "libc", + "x11", +] + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -2816,18 +2746,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" -[[package]] -name = "local-ip-address" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612ed4ea9ce5acfb5d26339302528a5e1e59dfed95e9e11af3c083236ff1d15d" -dependencies = [ - "libc", - "neli", - "thiserror 1.0.69", - "windows-sys 0.48.0", -] - [[package]] name = "lock_api" version = "0.4.12" @@ -2876,27 +2794,12 @@ dependencies = [ "tendril", ] -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - [[package]] name = "matches" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "memchr" version = "2.7.4" @@ -2955,6 +2858,7 @@ dependencies = [ "dpi", "gtk", "keyboard-types", + "libxdo", "objc2 0.6.0", "objc2-app-kit", "objc2-core-foundation", @@ -2966,6 +2870,23 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "ndk" version = "0.9.0" @@ -2996,31 +2917,6 @@ dependencies = [ "jni-sys", ] -[[package]] -name = "neli" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93062a0dce6da2517ea35f301dfc88184ce18d3601ec786a727a87bf535deca9" -dependencies = [ - "byteorder", - "libc", - "log", - "neli-proc-macros", -] - -[[package]] -name = "neli-proc-macros" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8034b7fbb6f9455b2a96c19e6edf8dc9fc34c70449938d8ee3b4df363f61fe" -dependencies = [ - "either", - "proc-macro2", - "quote", - "serde", - "syn 1.0.109", -] - [[package]] name = "new_debug_unreachable" version = "1.0.6" @@ -3046,16 +2942,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - [[package]] name = "num-conv" version = "0.1.0" @@ -3308,6 +3194,17 @@ dependencies = [ "objc2-foundation 0.3.0", ] +[[package]] +name = "objc2-security" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3126341c65c5d5728423ae95d788e1b660756486ad0592307ab87ba02d9a7268" +dependencies = [ + "bitflags 2.9.0", + "objc2 0.6.0", + "objc2-core-foundation", +] + [[package]] name = "objc2-ui-kit" version = "0.3.0" @@ -3332,6 +3229,7 @@ dependencies = [ "objc2-app-kit", "objc2-core-foundation", "objc2-foundation 0.3.0", + "objc2-security", ] [[package]] @@ -3349,6 +3247,12 @@ version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + [[package]] name = "open" version = "5.3.2" @@ -3361,6 +3265,60 @@ dependencies = [ "pathdiff", ] +[[package]] +name = "openssl" +version = "0.10.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-src" +version = "300.4.2+3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -3422,12 +3380,6 @@ dependencies = [ "thiserror 2.0.12", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "pango" version = "0.18.3" @@ -3482,6 +3434,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + [[package]] name = "pathdiff" version = "0.2.3" @@ -3494,6 +3452,51 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pest" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" +dependencies = [ + "memchr", + "thiserror 2.0.12", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "pest_meta" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" +dependencies = [ + "once_cell", + "pest", + "sha2", +] + [[package]] name = "phf" version = "0.8.0" @@ -3628,26 +3631,6 @@ dependencies = [ "siphasher 1.0.1", ] -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "pin-project-lite" version = "0.2.16" @@ -3719,18 +3702,15 @@ dependencies = [ ] [[package]] -name = "portable-atomic" -version = "1.11.0" +name = "polyval" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ - "portable-atomic", + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", ] [[package]] @@ -3822,35 +3802,23 @@ dependencies = [ ] [[package]] -name = "prost" -version = "0.12.6" +name = "proptest" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "prost-types" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" -dependencies = [ - "prost", + "bit-set", + "bit-vec", + "bitflags 2.9.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", ] [[package]] @@ -3889,6 +3857,12 @@ dependencies = [ "psl-types", ] +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quick-xml" version = "0.32.0" @@ -3898,6 +3872,28 @@ dependencies = [ "memchr", ] +[[package]] +name = "quickcheck" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +dependencies = [ + "env_logger", + "log", + "rand 0.8.5", +] + +[[package]] +name = "quickcheck_macros" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "quinn" version = "0.11.7" @@ -4084,6 +4080,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -4129,17 +4134,8 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -4150,15 +4146,9 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.5" @@ -4187,17 +4177,19 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.4.8", - "http 1.3.1", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-rustls", + "hyper-tls", "hyper-util", "ipnet", "js-sys", "log", "mime", + "native-tls", "once_cell", "percent-encoding", "pin-project-lite", @@ -4208,12 +4200,13 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "system-configuration", "tokio", + "tokio-native-tls", "tokio-rustls", "tokio-util", - "tower 0.5.2", + "tower", "tower-service", "url", "wasm-bindgen", @@ -4263,17 +4256,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ringbuf" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe47b720588c8702e34b5979cb3271a8b1842c7cb6f57408efa70c779363488c" -dependencies = [ - "crossbeam-utils", - "portable-atomic", - "portable-atomic-util", -] - [[package]] name = "rkyv" version = "0.7.45" @@ -4426,6 +4408,18 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + [[package]] name = "ryu" version = "1.0.20" @@ -4441,6 +4435,24 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scc" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea091f6cac2595aa38993f04f4ee692ed43757035c36e67c180b6828356385b1" +dependencies = [ + "sdd", +] + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "schemars" version = "0.8.22" @@ -4474,12 +4486,41 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sdd" +version = "3.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "584e070911c7017da6cb2eb0788d09f43d789029b5877d3e5ecc8acf86ceee21" + [[package]] name = "seahash" version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "selectors" version = "0.22.0" @@ -4625,6 +4666,31 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "serial_test" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" +dependencies = [ + "futures", + "log", + "once_cell", + "parking_lot", + "scc", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "serialize-to-javascript" version = "0.1.1" @@ -4668,15 +4734,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - [[package]] name = "shared_child" version = "1.0.1" @@ -4760,7 +4817,7 @@ dependencies = [ "bytemuck", "cfg_aliases", "core-graphics 0.24.0", - "foreign-types", + "foreign-types 0.5.0", "js-sys", "log", "objc2 0.5.2", @@ -4799,6 +4856,29 @@ dependencies = [ "system-deps", ] +[[package]] +name = "specta" +version = "2.0.0-rc.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab7f01e9310a820edd31c80fde3cae445295adde21a3f9416517d7d65015b971" +dependencies = [ + "paste", + "specta-macros", + "thiserror 1.0.69", +] + +[[package]] +name = "specta-macros" +version = "2.0.0-rc.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0074b9e30ed84c6924eb63ad8d2fe71cdc82628525d84b1fcb1f2fd40676517" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -4881,12 +4961,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -5026,11 +5100,11 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511dd38065a5d3b36c33cdba4362b99a40a5103bebcd4aebb930717e7c8ba292" dependencies = [ "anyhow", "bytes", + "cargo_toml", + "data-url", "dirs", "dunce", "embed_plist", @@ -5039,8 +5113,9 @@ dependencies = [ "glob", "gtk", "heck 0.5.0", - "http 1.3.1", + "http", "http-range", + "image", "jni", "libc", "log", @@ -5049,32 +5124,61 @@ dependencies = [ "objc2 0.6.0", "objc2-app-kit", "objc2-foundation 0.3.0", + "objc2-web-kit", "percent-encoding", "plist", + "proptest", + "quickcheck", + "quickcheck_macros", "raw-window-handle", "reqwest", "serde", "serde_json", "serde_repr", "serialize-to-javascript", + "specta", "swift-rs", - "tauri-build", + "tauri", + "tauri-build 2.1.0", "tauri-macros", "tauri-runtime", "tauri-runtime-wry", - "tauri-utils", + "tauri-utils 2.3.0", "thiserror 2.0.12", "tokio", "tracing", "tray-icon", "url", "urlpattern", + "uuid", "webkit2gtk", "webview2-com", "window-vibrancy", "windows", ] +[[package]] +name = "tauri-build" +version = "2.1.0" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "quote", + "schemars", + "semver", + "serde", + "serde_json", + "tauri-codegen", + "tauri-utils 2.3.0", + "tauri-winres", + "toml", + "walkdir", +] + [[package]] name = "tauri-build" version = "2.1.0" @@ -5091,7 +5195,7 @@ dependencies = [ "semver", "serde", "serde_json", - "tauri-utils", + "tauri-utils 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tauri-winres", "toml", "walkdir", @@ -5100,8 +5204,6 @@ dependencies = [ [[package]] name = "tauri-codegen" version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c266a247f14d63f40c6282c2653a8bac5cc3d482ca562a003a88513653ea817a" dependencies = [ "base64 0.22.1", "brotli", @@ -5111,12 +5213,13 @@ dependencies = [ "png", "proc-macro2", "quote", + "regex", "semver", "serde", "serde_json", "sha2", "syn 2.0.100", - "tauri-utils", + "tauri-utils 2.3.0", "thiserror 2.0.12", "time", "url", @@ -5127,15 +5230,13 @@ dependencies = [ [[package]] name = "tauri-macros" version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f47a1cf94b3bd6c4dc37dce1a43fc96120ff29a91757f0ab3cf713c7ad846e7c" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.100", "tauri-codegen", - "tauri-utils", + "tauri-utils 2.3.0", ] [[package]] @@ -5150,7 +5251,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "tauri-utils", + "tauri-utils 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "toml", "walkdir", ] @@ -5182,7 +5283,7 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "tauri-utils", + "tauri-utils 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 2.0.12", "tracing", "url", @@ -5190,33 +5291,6 @@ dependencies = [ "windows-result 0.2.0", ] -[[package]] -name = "tauri-plugin-devtools" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5cd17faa36a826e5686bd0fda5bc3f4c903682263f00cd50f2f778fc4bb866" -dependencies = [ - "async-stream", - "bytes", - "cocoa 0.26.0", - "colored", - "devtools-core", - "futures", - "local-ip-address", - "log", - "objc", - "serde", - "serde_json", - "swift-rs", - "tauri", - "tauri-plugin", - "tokio", - "tonic", - "tonic-health", - "tracing", - "tracing-subscriber", -] - [[package]] name = "tauri-plugin-dialog" version = "2.2.0" @@ -5251,7 +5325,7 @@ dependencies = [ "serde_repr", "tauri", "tauri-plugin", - "tauri-utils", + "tauri-utils 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 2.0.12", "toml", "url", @@ -5279,7 +5353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "696ef548befeee6c6c17b80ef73e7c41205b6c2204e87ef78ccc231212389a5c" dependencies = [ "data-url", - "http 1.3.1", + "http", "regex", "reqwest", "schemars", @@ -5450,7 +5524,7 @@ dependencies = [ "dirs", "flate2", "futures-util", - "http 1.3.1", + "http", "infer", "log", "minisign-verify", @@ -5490,18 +5564,16 @@ dependencies = [ [[package]] name = "tauri-runtime" version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9c7bce5153f1ca7bc45eba37349b31ba50e975e28edc8b5766c5ec02b0b63a" dependencies = [ "cookie", "dpi", "gtk", - "http 1.3.1", + "http", "jni", "raw-window-handle", "serde", "serde_json", - "tauri-utils", + "tauri-utils 2.3.0", "thiserror 2.0.12", "url", "windows", @@ -5510,11 +5582,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "087188020fd6facb8578fe9b38e81fa0fe5fb85744c73da51a299f94a530a1e3" dependencies = [ "gtk", - "http 1.3.1", + "http", "jni", "log", "objc2 0.6.0", @@ -5526,7 +5596,7 @@ dependencies = [ "softbuffer", "tao", "tauri-runtime", - "tauri-utils", + "tauri-utils 2.3.0", "tracing", "url", "webkit2gtk", @@ -5538,17 +5608,57 @@ dependencies = [ [[package]] name = "tauri-utils" version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82dcced4014e59af9790cc22f5d271df3be09ecd6728ec68861642553c8d01b7" dependencies = [ + "aes-gcm", "anyhow", "brotli", "cargo_metadata", "ctor", "dunce", + "getrandom 0.2.15", "glob", "html5ever", - "http 1.3.1", + "http", + "infer", + "json-patch", + "json5", + "kuchikiki", + "log", + "memchr", + "phf 0.11.3", + "proc-macro2", + "quote", + "regex", + "schemars", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "serial_test", + "serialize-to-javascript", + "swift-rs", + "thiserror 2.0.12", + "toml", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-utils" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82dcced4014e59af9790cc22f5d271df3be09ecd6728ec68861642553c8d01b7" +dependencies = [ + "anyhow", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "html5ever", + "http", "infer", "json-patch", "kuchikiki", @@ -5653,16 +5763,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - [[package]] name = "time" version = "0.3.41" @@ -5740,6 +5840,7 @@ dependencies = [ "bytes", "libc", "mio", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -5748,16 +5849,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-macros" version = "2.5.0" @@ -5769,6 +5860,16 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.26.2" @@ -5779,17 +5880,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-stream" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.14" @@ -5859,86 +5949,6 @@ dependencies = [ "winnow 0.7.4", ] -[[package]] -name = "tonic" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.21.7", - "bytes", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "tokio", - "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic-health" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f80db390246dfb46553481f6024f0082ba00178ea495dbb99e70ba9a4fafb5e1" -dependencies = [ - "async-stream", - "prost", - "tokio", - "tokio-stream", - "tonic", -] - -[[package]] -name = "tonic-web" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fddb2a37b247e6adcb9f239f4e5cefdcc5ed526141a416b943929f13aea2cce" -dependencies = [ - "base64 0.21.7", - "bytes", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "pin-project", - "tokio-stream", - "tonic", - "tower-http", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "tower" version = "0.5.2" @@ -5948,30 +5958,12 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", ] -[[package]] -name = "tower-http" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" -dependencies = [ - "bitflags 2.9.0", - "bytes", - "futures-core", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "http-range-header", - "pin-project-lite", - "tower-layer", - "tower-service", -] - [[package]] name = "tower-layer" version = "0.3.3" @@ -5990,7 +5982,6 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -6014,36 +6005,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", ] [[package]] @@ -6092,6 +6053,12 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + [[package]] name = "uds_windows" version = "1.1.0" @@ -6103,6 +6070,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + [[package]] name = "unic-char-property" version = "0.9.0" @@ -6156,6 +6129,16 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + [[package]] name = "untrusted" version = "0.9.0" @@ -6226,18 +6209,18 @@ dependencies = [ "serde", ] -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - [[package]] name = "value-bag" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version-compare" version = "0.2.0" @@ -6270,6 +6253,15 @@ dependencies = [ "libc", ] +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -7059,7 +7051,7 @@ dependencies = [ "gdkx11", "gtk", "html5ever", - "http 1.3.1", + "http", "javascriptcore-rs", "jni", "kuchikiki", diff --git a/Cargo.toml b/Cargo.toml index dff14fe6..401758f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,18 @@ [workspace] -members = ["apps/readest-app/src-tauri"] +members = [ + "apps/readest-app/src-tauri", + "packages/tauri/crates/tauri", +] resolver = "2" + +[workspace.package] +authors = ["Bilingify LLC"] +homepage = "https://readest.com" +license = "AGPL-3.0" +repository = "https://github.com/readest/readest" +categories = [] +edition = "2021" +rust-version = "1.77.2" + +[patch.crates-io] +tauri = { path = "packages/tauri/crates/tauri" } \ No newline at end of file diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index 4bba7cb9..8b2278f1 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -152,7 +152,6 @@ "Text Indent": "مسافة بادئة للنص", "Paragraph Margin": "هامش الفقرة", "Override Book Layout": "تجاوز تخطيط الكتاب", - "Add to Group": "إضافة إلى مجموعة", "Untitled Group": "مجموعة بدون عنوان", "Group Books": "تجميع الكتب", "Remove From Group": "إزالة من المجموعة", @@ -265,5 +264,6 @@ "No chapters detected.": "لم يتم التعرف على فصول.", "Failed to parse the EPUB file.": "فشل في تحليل ملف EPUB.", "This book format is not supported.": "هذا تنسيق الكتاب غير مدعوم.", - "Unable to fetch the translation. Please log in first and try again.": "تعذر جلب الترجمة. يرجى تسجيل الدخول أولاً ثم المحاولة مرة أخرى." + "Unable to fetch the translation. Please log in first and try again.": "تعذر جلب الترجمة. يرجى تسجيل الدخول أولاً ثم المحاولة مرة أخرى.", + "Group": "تجميع" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index be6fa820..7a4d6cbb 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Texteinzug", "Paragraph Margin": "Absatzrand", "Override Book Layout": "Buch-Layout überschreiben", - "Add to Group": "Zur Gruppe hinzufügen", "Untitled Group": "Unbenannte Gruppe", "Group Books": "Bücher gruppieren", "Remove From Group": "Aus Gruppe entfernen", @@ -265,5 +264,6 @@ "No chapters detected.": "Keine Kapitel erkannt.", "Failed to parse the EPUB file.": "Fehler beim Parsen der EPUB-Datei.", "This book format is not supported.": "Dieses Buchformat wird nicht unterstützt.", - "Unable to fetch the translation. Please log in first and try again.": "Übersetzung konnte nicht abgerufen werden. Bitte zuerst anmelden und erneut versuchen." + "Unable to fetch the translation. Please log in first and try again.": "Übersetzung konnte nicht abgerufen werden. Bitte zuerst anmelden und erneut versuchen.", + "Group": "Gruppieren" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index f78e1032..12fead21 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Εσοχή κειμένου", "Paragraph Margin": "Περιθώριο παραγράφου", "Override Book Layout": "Παράκαμψη διάταξης βιβλίου", - "Add to Group": "Προσθήκη στην ομάδα", "Untitled Group": "Ομάδα χωρίς τίτλο", "Group Books": "Ομαδοποίηση βιβλίων", "Remove From Group": "Αφαίρεση από την ομάδα", @@ -265,5 +264,6 @@ "No chapters detected.": "Δεν εντοπίστηκαν κεφάλαια.", "Failed to parse the EPUB file.": "Αποτυχία ανάλυσης του αρχείου EPUB.", "This book format is not supported.": "Αυτή η μορφή βιβλίου δεν υποστηρίζεται.", - "Unable to fetch the translation. Please log in first and try again.": "Αδυναμία λήψης της μετάφρασης. Παρακαλώ συνδεθείτε πρώτα και δοκιμάστε ξανά." + "Unable to fetch the translation. Please log in first and try again.": "Αδυναμία λήψης της μετάφρασης. Παρακαλώ συνδεθείτε πρώτα και δοκιμάστε ξανά.", + "Group": "Ομάδα" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index ff77714e..f71f395c 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Sangría de texto", "Paragraph Margin": "Margen de párrafo", "Override Book Layout": "Sobrescribir diseño del libro", - "Add to Group": "Añadir a grupo", "Untitled Group": "Grupo sin título", "Group Books": "Agrupar libros", "Remove From Group": "Eliminar del grupo", @@ -265,5 +264,6 @@ "No chapters detected.": "No se detectaron capítulos.", "Failed to parse the EPUB file.": "Error al analizar el archivo EPUB.", "This book format is not supported.": "Este formato de libro no es compatible.", - "Unable to fetch the translation. Please log in first and try again.": "No se puede obtener la traducción. Por favor, inicia sesión primero e inténtalo de nuevo." + "Unable to fetch the translation. Please log in first and try again.": "No se puede obtener la traducción. Por favor, inicia sesión primero e inténtalo de nuevo.", + "Group": "Grupo" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 4138ba28..01b5dc68 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Retrait du texte", "Paragraph Margin": "Marge de paragraphe", "Override Book Layout": "Remplacer la mise en page du livre", - "Add to Group": "Ajouter au groupe", "Untitled Group": "Groupe sans titre", "Group Books": "Regrouper les livres", "Remove From Group": "Retirer du groupe", @@ -265,5 +264,6 @@ "No chapters detected.": "Aucun chapitre détecté.", "Failed to parse the EPUB file.": "Échec de l'analyse du fichier EPUB.", "This book format is not supported.": "Ce format de livre n'est pas pris en charge.", - "Unable to fetch the translation. Please log in first and try again.": "Impossible de récupérer la traduction. Veuillez d'abord vous connecter et réessayer." + "Unable to fetch the translation. Please log in first and try again.": "Impossible de récupérer la traduction. Veuillez d'abord vous connecter et réessayer.", + "Group": "Groupe" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index f88e33f0..ed0bf573 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -152,7 +152,6 @@ "Text Indent": "टेक्स्ट इंडेंट", "Paragraph Margin": "पैराग्राफ मार्जिन", "Override Book Layout": "पुस्तक लेआउट ओवरराइड करें", - "Add to Group": "समूह में जोड़ें", "Untitled Group": "अभिनामित समूह", "Group Books": "समूह पुस्तकें", "Remove From Group": "समूह से हटाएं", @@ -265,5 +264,6 @@ "No chapters detected.": "कोई अध्याय नहीं मिला।", "Failed to parse the EPUB file.": "EPUB फ़ाइल को पार्स करने में विफल।", "This book format is not supported.": "यह पुस्तक प्रारूप समर्थित नहीं है।", - "Unable to fetch the translation. Please log in first and try again.": "अनुवाद प्राप्त करने में असमर्थ। कृपया पहले लॉग इन करें और पुनः प्रयास करें।" + "Unable to fetch the translation. Please log in first and try again.": "अनुवाद प्राप्त करने में असमर्थ। कृपया पहले लॉग इन करें और पुनः प्रयास करें।", + "Group": "समूह" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index ddc012ae..0e97b05f 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Indentasi Teks", "Paragraph Margin": "Margin Paragraf", "Override Book Layout": "Ganti Tata Letak Buku", - "Add to Group": "Tambahkan ke Grup", "Untitled Group": "Grup Tanpa Judul", "Group Books": "Grupkan Buku", "Remove From Group": "Hapus dari Grup", @@ -265,5 +264,6 @@ "No chapters detected.": "Tidak ada bab yang terdeteksi.", "Failed to parse the EPUB file.": "Gagal mengurai file EPUB.", "This book format is not supported.": "Format buku ini tidak didukung.", - "Unable to fetch the translation. Please log in first and try again.": "Tidak dapat mengambil terjemahan. Silakan masuk terlebih dahulu dan coba lagi." + "Unable to fetch the translation. Please log in first and try again.": "Tidak dapat mengambil terjemahan. Silakan masuk terlebih dahulu dan coba lagi.", + "Group": "Grup" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index 3e3809c6..2b1cf62d 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Rientro testo", "Paragraph Margin": "Margine paragrafo", "Override Book Layout": "Sovrascrivi layout libro", - "Add to Group": "Aggiungi al gruppo", "Untitled Group": "Gruppo senza titolo", "Group Books": "Raggruppa libri", "Remove From Group": "Rimuovi dal", @@ -265,5 +264,6 @@ "No chapters detected.": "Nessun capitolo rilevato.", "Failed to parse the EPUB file.": "Impossibile analizzare il file EPUB.", "This book format is not supported.": "Questo formato di libro non è supportato.", - "Unable to fetch the translation. Please log in first and try again.": "Impossibile recuperare la traduzione. Accedi prima e riprova." + "Unable to fetch the translation. Please log in first and try again.": "Impossibile recuperare la traduzione. Accedi prima e riprova.", + "Group": "Gruppo" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index c1cdcfd4..d8043354 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -152,7 +152,6 @@ "Text Indent": "テキストインデント", "Paragraph Margin": "段落マージン", "Override Book Layout": "書籍のレイアウトを上書き", - "Add to Group": "グループに追加", "Untitled Group": "無題のグループ", "Group Books": "書籍をグループ化", "Remove From Group": "グループから削除", @@ -265,5 +264,6 @@ "No chapters detected.": "章が検出されません。", "Failed to parse the EPUB file.": "EPUBファイルの解析に失敗しました。", "This book format is not supported.": "この書籍形式はサポートされていません。", - "Unable to fetch the translation. Please log in first and try again.": "翻訳を取得できません。まずログインして再試行してください。" + "Unable to fetch the translation. Please log in first and try again.": "翻訳を取得できません。まずログインして再試行してください。", + "Group": "グループ" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index 857baf21..0c876608 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -152,7 +152,6 @@ "Text Indent": "들여쓰기", "Paragraph Margin": "단락 여백", "Override Book Layout": "책 레이아웃 덮어쓰기", - "Add to Group": "그룹에 추가", "Untitled Group": "제목 없는 그룹", "Group Books": "책 그룹화", "Remove From Group": "그룹에서 제거", @@ -265,5 +264,6 @@ "No chapters detected.": "장 발견되지 않음.", "Failed to parse the EPUB file.": "EPUB 파일 구문 분석 실패.", "This book format is not supported.": "이 책 형식은 지원되지 않습니다.", - "Unable to fetch the translation. Please log in first and try again.": "번역을 가져올 수 없습니다. 먼저 로그인하고 다시 시도하세요." + "Unable to fetch the translation. Please log in first and try again.": "번역을 가져올 수 없습니다. 먼저 로그인하고 다시 시도하세요.", + "Group": "그룹" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index bcabfcc3..e3bd14f8 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Wcięcie tekstu", "Paragraph Margin": "Margines akapitu", "Override Book Layout": "Nadpisz układ książki", - "Add to Group": "Dodaj do grupy", "Untitled Group": "Grupa bez tytułu", "Group Books": "Grupuj książki", "Remove From Group": "Usuń z grupy", @@ -265,5 +264,6 @@ "No chapters detected.": "Nie wykryto rozdziałów.", "Failed to parse the EPUB file.": "Nie udało się przeanalizować pliku EPUB.", "This book format is not supported.": "Ten format książki nie jest obsługiwany.", - "Unable to fetch the translation. Please log in first and try again.": "Nie można pobrać tłumaczenia. Proszę najpierw się zalogować i spróbować ponownie." + "Unable to fetch the translation. Please log in first and try again.": "Nie można pobrać tłumaczenia. Proszę najpierw się zalogować i spróbować ponownie.", + "Group": "Grupa" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index a993da36..1669a650 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Recuo de Texto", "Paragraph Margin": "Margem de Parágrafo", "Override Book Layout": "Sobrescrever Layout do Livro", - "Add to Group": "Adicionar ao Grupo", "Untitled Group": "Grupo Sem Título", "Group Books": "Agrupar Livros", "Remove From Group": "Remover do Grupo", @@ -265,5 +264,6 @@ "No chapters detected.": "Nenhum capítulo detectado.", "Failed to parse the EPUB file.": "Falha ao analisar o arquivo EPUB.", "This book format is not supported.": "Este formato de livro não é suportado.", - "Unable to fetch the translation. Please log in first and try again.": "Não foi possível buscar a tradução. Faça login primeiro e tente novamente." + "Unable to fetch the translation. Please log in first and try again.": "Não foi possível buscar a tradução. Faça login primeiro e tente novamente.", + "Group": "Grupo" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index 312c58d4..1b31edab 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Отступ текста", "Paragraph Margin": "Отступ абзаца", "Override Book Layout": "Переопределить макет книги", - "Add to Group": "Добавить в группу", "Untitled Group": "Группа без названия", "Group Books": "Группировать книги", "Remove From Group": "Удалить из группы", @@ -265,5 +264,6 @@ "No chapters detected.": "Не обнаружено глав.", "Failed to parse the EPUB file.": "Не удалось разобрать файл EPUB.", "This book format is not supported.": "Этот формат книги не поддерживается.", - "Unable to fetch the translation. Please log in first and try again.": "Не удалось получить перевод. Пожалуйста, войдите в систему и попробуйте снова." + "Unable to fetch the translation. Please log in first and try again.": "Не удалось получить перевод. Пожалуйста, войдите в систему и попробуйте снова.", + "Group": "Группа" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index ec06b469..ca49042a 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Metin Girintisi", "Paragraph Margin": "Paragraf Kenarı", "Override Book Layout": "Kitap Düzenini Geçersiz Kıl", - "Add to Group": "Gruba Ekle", "Untitled Group": "Başlıksız Grup", "Group Books": "Kitapları Grupla", "Remove From Group": "Grubu Kaldır", @@ -265,5 +264,6 @@ "No chapters detected.": "Bölüm bulunamadı.", "Failed to parse the EPUB file.": "EPUB dosyası ayrıştırılamadı.", "This book format is not supported.": "Bu kitap formatı desteklenmiyor.", - "Unable to fetch the translation. Please log in first and try again.": "Çeviri alınamıyor. Lütfen önce giriş yapın ve tekrar deneyin." + "Unable to fetch the translation. Please log in first and try again.": "Çeviri alınamıyor. Lütfen önce giriş yapın ve tekrar deneyin.", + "Group": "Grup" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 38ca096e..628e42e5 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Відступ тексту", "Paragraph Margin": "Відступ абзацу", "Override Book Layout": "Перевизначити макет книги", - "Add to Group": "Додати до групи", "Untitled Group": "Група без назви", "Group Books": "Групувати книги", "Remove From Group": "Видалити з групи", @@ -265,5 +264,6 @@ "No chapters detected.": "Не виявлено жодного розділу.", "Failed to parse the EPUB file.": "Не вдалося розібрати файл EPUB.", "This book format is not supported.": "Цей формат книги не підтримується.", - "Unable to fetch the translation. Please log in first and try again.": "Не вдалося отримати переклад. Будь ласка, спочатку увійдіть у систему та спробуйте ще раз." + "Unable to fetch the translation. Please log in first and try again.": "Не вдалося отримати переклад. Будь ласка, спочатку увійдіть у систему та спробуйте ще раз.", + "Group": "Група" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index f1df8ff6..83a296ea 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -152,7 +152,6 @@ "Text Indent": "Thụt lề", "Paragraph Margin": "Lề đoạn", "Override Book Layout": "Ghi đè bố cục sách", - "Add to Group": "Thêm vào nhóm", "Untitled Group": "Nhóm không có tiêu đề", "Group Books": "Nhóm sách", "Remove From Group": "Xóa khỏi nhóm", @@ -265,5 +264,6 @@ "No chapters detected.": "Không phát hiện thấy chương nào.", "Failed to parse the EPUB file.": "Không thể phân tích tệp EPUB.", "This book format is not supported.": "Định dạng sách này không được hỗ trợ.", - "Unable to fetch the translation. Please log in first and try again.": "Không thể tải dịch vụ. Vui lòng đăng nhập trước và thử lại." + "Unable to fetch the translation. Please log in first and try again.": "Không thể tải dịch vụ. Vui lòng đăng nhập trước và thử lại.", + "Group": "Nhóm" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index d6f93e48..28c61d27 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -152,7 +152,6 @@ "Text Indent": "首行缩进", "Paragraph Margin": "段间距", "Override Book Layout": "覆盖版面布局", - "Add to Group": "添加到分组", "Untitled Group": "无标题分组", "Group Books": "分组书籍", "Remove From Group": "从分组中移除", @@ -265,5 +264,6 @@ "No chapters detected.": "未检测到章节。", "Failed to parse the EPUB file.": "无法解析 EPUB 文件。", "This book format is not supported.": "不支持此书籍格式。", - "Unable to fetch the translation. Please log in first and try again.": "无法获取翻译。请登录后重试。" + "Unable to fetch the translation. Please log in first and try again.": "无法获取翻译。请登录后重试。", + "Group": "分组" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index ac4155cb..7485006b 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -152,7 +152,6 @@ "Text Indent": "首行縮進", "Paragraph Margin": "段間距", "Override Book Layout": "覆蓋版面佈局", - "Add to Group": "添加到組", "Untitled Group": "無標題組", "Group Books": "分組書籍", "Remove From Group": "從組中移除", @@ -265,5 +264,6 @@ "No chapters detected.": "未檢測到章節。", "Failed to parse the EPUB file.": "無法解析 EPUB 文件。", "This book format is not supported.": "不支援此書籍格式。", - "Unable to fetch the translation. Please log in first and try again.": "無法獲取翻譯。請先登入然後重試。" + "Unable to fetch the translation. Please log in first and try again.": "無法獲取翻譯。請先登入然後重試。", + "Group": "分組" } diff --git a/apps/readest-app/src-tauri/Cargo.toml b/apps/readest-app/src-tauri/Cargo.toml index a122de19..d271420d 100644 --- a/apps/readest-app/src-tauri/Cargo.toml +++ b/apps/readest-app/src-tauri/Cargo.toml @@ -31,24 +31,21 @@ reqwest = { version = "0.12", default-features = false, features = [ "stream", ] } # FIXME: remove the devtools feature in production -tauri = { version = "2.1.1", features = [ "protocol-asset", "devtools"] } -tauri-build = "2.0.3" -tauri-plugin-log = "2.0.2" -tauri-plugin-fs = "2.0.3" -tauri-plugin-dialog = "2.0.3" -tauri-plugin-os = "2.0.1" -tauri-plugin-http = "2.0.3" -tauri-plugin-devtools = "2.0.0" -tauri-plugin-shell = "2" -tauri-plugin-process = "2" +tauri = { version = "2.4.0", features = [ "protocol-asset", "devtools"] } +tauri-build = "2.1.0" +tauri-plugin-log = "2.3.1" +tauri-plugin-fs = "2.2.0" +tauri-plugin-dialog = "2.2.0" +tauri-plugin-os = "2.2.1" +tauri-plugin-http = "2.4.2" +tauri-plugin-shell = "2.2.0" +tauri-plugin-process = "2.2.0" tauri-plugin-oauth = "2" tauri-plugin-opener = "2.2.2" tauri-plugin-deep-link = "2" tauri-plugin-sign-in-with-apple = "1.0.2" tauri-plugin-haptics = "2.2.3" tauri-plugin-native-bridge = { path = "./plugins/tauri-plugin-native-bridge" } -[patch.crates-io] -tauri = { path = "../../../packages/tauri/crates/tauri" } [target."cfg(target_os = \"macos\")".dependencies] cocoa = "0.25" diff --git a/apps/readest-app/src-tauri/capabilities/default.json b/apps/readest-app/src-tauri/capabilities/default.json index 90e78ce9..f3728a8c 100644 --- a/apps/readest-app/src-tauri/capabilities/default.json +++ b/apps/readest-app/src-tauri/capabilities/default.json @@ -63,6 +63,7 @@ "core:window:allow-start-dragging", "core:window:allow-toggle-maximize", "core:window:allow-set-fullscreen", + "log:default", "shell:default", "process:default", "process:allow-exit", diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/android/src/main/java/NativeBridgePlugin.kt b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/android/src/main/java/NativeBridgePlugin.kt index 00e06c50..bc379607 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/android/src/main/java/NativeBridgePlugin.kt +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/android/src/main/java/NativeBridgePlugin.kt @@ -1,18 +1,26 @@ package com.readest.native_bridge import android.app.Activity +import android.net.Uri import app.tauri.annotation.Command import app.tauri.annotation.InvokeArg import app.tauri.annotation.TauriPlugin import app.tauri.plugin.JSObject import app.tauri.plugin.Plugin import app.tauri.plugin.Invoke +import java.io.* @InvokeArg class SafariAuthRequestArgs { var authUrl: String? = null } +@InvokeArg +class CopyURIRequestArgs { + var uri: String? = null + var dst: String? = null +} + @TauriPlugin class NativeBridgePlugin(private val activity: Activity): Plugin(activity) { private val implementation = NativeBridge() @@ -25,4 +33,31 @@ class NativeBridgePlugin(private val activity: Activity): Plugin(activity) { ret.put("redirectUrl", implementation.auth_with_safari(args.authUrl ?: "")) invoke.resolve(ret) } + + @Command + fun copy_uri_to_path(invoke: Invoke) { + val args = invoke.parseArgs(CopyURIRequestArgs::class.java) + val ret = JSObject() + try { + val uri = Uri.parse(args.uri ?: "") + val dst = File(args.dst ?: "") + val inputStream = activity.contentResolver.openInputStream(uri) + + if (inputStream != null) { + dst.outputStream().use { output -> + inputStream.use { input -> + input.copyTo(output) + } + } + ret.put("success", true) + } else { + ret.put("success", false) + ret.put("error", "Failed to open input stream from URI") + } + } catch (e: Exception) { + ret.put("success", false) + ret.put("error", e.message) + } + invoke.resolve(ret) + } } diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/build.rs b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/build.rs index 8254cdef..c723adbe 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/build.rs +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/build.rs @@ -1,8 +1,8 @@ -const COMMANDS: &[&str] = &["auth_with_safari"]; +const COMMANDS: &[&str] = &["auth_with_safari", "copy_uri_to_path"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) - .android_path("android") - .ios_path("ios") - .build(); + tauri_plugin::Builder::new(COMMANDS) + .android_path("android") + .ios_path("ios") + .build(); } diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/copy_uri_to_path.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/copy_uri_to_path.toml new file mode 100644 index 00000000..eb6fe864 --- /dev/null +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/copy_uri_to_path.toml @@ -0,0 +1,13 @@ +# Automatically generated - DO NOT EDIT! + +"$schema" = "../../schemas/schema.json" + +[[permission]] +identifier = "allow-copy-uri-to-path" +description = "Enables the copy_uri_to_path command without any pre-configured scope." +commands.allow = ["copy_uri_to_path"] + +[[permission]] +identifier = "deny-copy-uri-to-path" +description = "Denies the copy_uri_to_path command without any pre-configured scope." +commands.deny = ["copy_uri_to_path"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/reference.md b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/reference.md index 54c183a4..9e38b005 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/reference.md +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/reference.md @@ -3,6 +3,7 @@ Default permissions for the plugin - `allow-auth-with-safari` +- `allow-copy-uri-to-path` ## Permission Table @@ -36,6 +37,32 @@ Enables the auth_with_safari command without any pre-configured scope. Denies the auth_with_safari command without any pre-configured scope. + + + + + + +`native-bridge:allow-copy-uri-to-path` + + + + +Enables the copy_uri_to_path command without any pre-configured scope. + + + + + + + +`native-bridge:deny-copy-uri-to-path` + + + + +Denies the copy_uri_to_path command without any pre-configured scope. + diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/default.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/default.toml index 86dfedad..fe7bfdb1 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/default.toml +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/default.toml @@ -1,3 +1,3 @@ [default] description = "Default permissions for the plugin" -permissions = ["allow-auth-with-safari"] +permissions = ["allow-auth-with-safari", "allow-copy-uri-to-path"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/schemas/schema.json b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/schemas/schema.json index 6e1e5971..05a60511 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/schemas/schema.json +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/schemas/schema.json @@ -304,6 +304,16 @@ "type": "string", "const": "deny-auth-with-safari" }, + { + "description": "Enables the copy_uri_to_path command without any pre-configured scope.", + "type": "string", + "const": "allow-copy-uri-to-path" + }, + { + "description": "Denies the copy_uri_to_path command without any pre-configured scope.", + "type": "string", + "const": "deny-copy-uri-to-path" + }, { "description": "Default permissions for the plugin", "type": "string", diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/commands.rs b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/commands.rs index 9aba26ba..a5d12120 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/commands.rs +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/commands.rs @@ -11,3 +11,11 @@ pub(crate) async fn auth_with_safari( ) -> Result { app.native_bridge().auth_with_safari(payload) } + +#[command] +pub(crate) async fn copy_uri_to_path( + app: AppHandle, + payload: CopyURIRequest, +) -> Result { + app.native_bridge().copy_uri_to_path(payload) +} diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/desktop.rs b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/desktop.rs index 56edd6d0..98655ba8 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/desktop.rs +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/desktop.rs @@ -20,4 +20,8 @@ impl NativeBridge { ) -> crate::Result { Err(crate::Error::UnsupportedPlatformError) } + + pub fn copy_uri_to_path(&self, _payload: CopyURIRequest) -> crate::Result { + Err(crate::Error::UnsupportedPlatformError) + } } diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/lib.rs b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/lib.rs index 78083ada..bc70ae80 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/lib.rs +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/lib.rs @@ -36,7 +36,10 @@ impl> crate::NativeBridgeExt for T { /// Initializes the plugin. pub fn init() -> TauriPlugin { Builder::new("native-bridge") - .invoke_handler(tauri::generate_handler![commands::auth_with_safari]) + .invoke_handler(tauri::generate_handler![ + commands::auth_with_safari, + commands::copy_uri_to_path, + ]) .setup(|app, api| { #[cfg(mobile)] let native_bridge = mobile::init(app, api)?; diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/mobile.rs b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/mobile.rs index ef4b5bda..85fc0c45 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/mobile.rs +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/mobile.rs @@ -34,3 +34,11 @@ impl NativeBridge { .map_err(Into::into) } } + +impl NativeBridge { + pub fn copy_uri_to_path(&self, payload: CopyURIRequest) -> crate::Result { + self.0 + .run_mobile_plugin("copy_uri_to_path", payload) + .map_err(Into::into) + } +} diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/models.rs b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/models.rs index 771acf3e..87af6310 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/models.rs +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/src/models.rs @@ -11,3 +11,17 @@ pub struct SafariAuthRequest { pub struct SafariAuthResponse { pub redirect_url: String, } + +#[derive(Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct CopyURIRequest { + pub uri: String, + pub dst: String, +} + +#[derive(Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct CopyURIResponse { + pub success: bool, + pub error: Option, +} diff --git a/apps/readest-app/src-tauri/src/lib.rs b/apps/readest-app/src-tauri/src/lib.rs index 95ebf27d..db646709 100644 --- a/apps/readest-app/src-tauri/src/lib.rs +++ b/apps/readest-app/src-tauri/src/lib.rs @@ -217,14 +217,11 @@ pub fn run() { app.deep_link().register_all()?; } - #[cfg(desktop)] - if cfg!(debug_assertions) { - app.handle().plugin( - tauri_plugin_log::Builder::default() - .level(log::LevelFilter::Info) - .build(), - )?; - } + app.handle().plugin( + tauri_plugin_log::Builder::default() + .level(log::LevelFilter::Info) + .build(), + )?; let win_builder = WebviewWindowBuilder::new(app, "main", WebviewUrl::default()); diff --git a/apps/readest-app/src/app/library/components/Bookshelf.tsx b/apps/readest-app/src/app/library/components/Bookshelf.tsx index 6c548b4d..dc3cb152 100644 --- a/apps/readest-app/src/app/library/components/Bookshelf.tsx +++ b/apps/readest-app/src/app/library/components/Bookshelf.tsx @@ -210,7 +210,7 @@ const Bookshelf: React.FC = ({ )} > -
{_('Add to Group')}
+
{_('Group')}