diff --git a/.prettierignore b/.prettierignore index b85a6071866d..0a0e91aed6d9 100644 --- a/.prettierignore +++ b/.prettierignore @@ -19,5 +19,8 @@ apps/desktop/src/index.tsx /packages/client/src/core.ts apps/desktop/src/commands.ts +# Import only file, which order is relevant +interface/components/TextViewer/prism.ts + .next/ -.contentlayer/ \ No newline at end of file +.contentlayer/ diff --git a/.prettierrc.js b/.prettierrc.js index b55c3845ab41..b5ad19188668 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -21,7 +21,6 @@ module.exports = { ], importOrderSortSpecifiers: true, importOrderParserPlugins: ['importAssertions', 'typescript', 'jsx'], - pluginSearchDirs: false, plugins: ['@trivago/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'], tailwindConfig: './packages/ui/tailwind.config.js' }; diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 469c56d32911..30d5e4722282 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -3,6 +3,7 @@ "tauri-apps.tauri-vscode", "rust-lang.rust-analyzer", "oscartbeaumont.rspc-vscode", - "EditorConfig.EditorConfig" + "EditorConfig.EditorConfig", + "bradlc.vscode-tailwindcss" ] } diff --git a/Cargo.lock b/Cargo.lock index 2e497d44205a..f4a5f843acba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -156,9 +156,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] @@ -244,9 +244,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "aovec" @@ -420,18 +420,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -689,9 +689,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bitvec" @@ -945,9 +945,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", "libc", @@ -1122,9 +1122,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.21" +version = "4.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd" +checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3" dependencies = [ "clap_builder", "clap_derive", @@ -1133,9 +1133,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.21" +version = "4.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa" +checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98" dependencies = [ "anstream", "anstyle", @@ -1152,7 +1152,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -1495,7 +1495,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -1584,18 +1584,31 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-rc.1" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16" +checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" dependencies = [ "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", "fiat-crypto", - "packed_simd_2", "platforms", + "rustc_version", "subtle", "zeroize", ] +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + [[package]] name = "darling" version = "0.14.4" @@ -1641,7 +1654,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -1663,7 +1676,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core 0.20.3", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -1781,9 +1794,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" +checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" dependencies = [ "serde", ] @@ -1928,7 +1941,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -2129,7 +2142,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -2140,7 +2153,7 @@ checksum = "b893c4eb2dc092c811165f84dc7447fae16fb66521717968c34c509b39b1a5c5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -2319,9 +2332,9 @@ checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -2434,13 +2447,15 @@ dependencies = [ [[package]] name = "futures-concurrency" -version = "7.3.0" +version = "7.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b726119e6cd29cf120724495b2085e1ed3d17821ea17b86de54576d1aa565f5e" +checksum = "0cf49eababd62240534b6e7178bd8b20fac90318ed4295917b0565b6708ed670" dependencies = [ "bitvec", "futures-core", "pin-project", + "slab", + "smallvec 1.11.0", ] [[package]] @@ -2501,7 +2516,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -2816,7 +2831,7 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ - "aho-corasick 1.0.3", + "aho-corasick 1.0.4", "bstr", "fnv", "log", @@ -3135,9 +3150,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "httpz" @@ -3518,7 +3533,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.7", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -3771,12 +3786,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "libm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" - [[package]] name = "libp2p" version = "0.51.3" @@ -4170,9 +4179,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "loom" @@ -4457,9 +4466,9 @@ dependencies = [ [[package]] name = "mini-moka" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452ebc1428a585e31e637b928b76355ef2fd72d765b2530d72fe475e514cd1eb" +checksum = "23e0b72e7c9042467008b10279fc732326bd605459ae03bda88825909dd19b56" dependencies = [ "crossbeam-channel", "crossbeam-utils", @@ -4897,9 +4906,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -5101,7 +5110,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -5227,16 +5236,6 @@ dependencies = [ "sha2 0.10.7", ] -[[package]] -name = "packed_simd_2" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" -dependencies = [ - "cfg-if", - "libm", -] - [[package]] name = "pango" version = "0.15.10" @@ -5335,7 +5334,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec 1.11.0", - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -5433,7 +5432,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -5572,7 +5571,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -5625,9 +5624,9 @@ dependencies = [ [[package]] name = "png" -version = "0.17.9" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -5721,7 +5720,7 @@ dependencies = [ [[package]] name = "prisma-client-rust" version = "0.6.8" -source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#f00f2689f26dcc818fb0d05b0c4d8826973a2989" +source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#b93c4597daa40ca87e7b63c9b6b5d1b517d9df0b" dependencies = [ "base64 0.13.1", "bigdecimal", @@ -5754,7 +5753,7 @@ dependencies = [ [[package]] name = "prisma-client-rust-cli" version = "0.6.8" -source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#f00f2689f26dcc818fb0d05b0c4d8826973a2989" +source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#b93c4597daa40ca87e7b63c9b6b5d1b517d9df0b" dependencies = [ "directories", "flate2", @@ -5774,7 +5773,7 @@ dependencies = [ [[package]] name = "prisma-client-rust-generator" version = "0.6.8" -source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#f00f2689f26dcc818fb0d05b0c4d8826973a2989" +source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#b93c4597daa40ca87e7b63c9b6b5d1b517d9df0b" dependencies = [ "directories", "flate2", @@ -5794,7 +5793,7 @@ dependencies = [ [[package]] name = "prisma-client-rust-macros" version = "0.6.8" -source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#f00f2689f26dcc818fb0d05b0c4d8826973a2989" +source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#b93c4597daa40ca87e7b63c9b6b5d1b517d9df0b" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -5806,7 +5805,7 @@ dependencies = [ [[package]] name = "prisma-client-rust-sdk" version = "0.6.8" -source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#f00f2689f26dcc818fb0d05b0c4d8826973a2989" +source = "git+https://github.com/Brendonovich/prisma-client-rust?branch=spacedrive#b93c4597daa40ca87e7b63c9b6b5d1b517d9df0b" dependencies = [ "convert_case 0.5.0", "dmmf", @@ -5926,13 +5925,13 @@ dependencies = [ [[package]] name = "prometheus-client-derive-encode" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b6a5217beb0ad503ee7fa752d451c905113d70721b937126158f3106a48cc1" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.29", ] [[package]] @@ -6160,9 +6159,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -6398,7 +6397,7 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" dependencies = [ - "aho-corasick 1.0.3", + "aho-corasick 1.0.4", "memchr", "regex-automata 0.3.6", "regex-syntax 0.7.4", @@ -6419,7 +6418,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" dependencies = [ - "aho-corasick 1.0.3", + "aho-corasick 1.0.4", "memchr", "regex-syntax 0.7.4", ] @@ -6722,11 +6721,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.7" +version = "0.38.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172891ebdceb05aa0005f533a6cbfca599ddd7d966f6f5d4d9b2e70478e70399" +checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "errno", "libc", "linux-raw-sys 0.4.5", @@ -7048,7 +7047,7 @@ dependencies = [ "tauri-build", "tauri-specta", "tokio", - "tracing 0.1.37", + "tracing 0.2.0", "uuid", "window-shadows", ] @@ -7088,7 +7087,7 @@ dependencies = [ "tempfile", "thiserror", "tokio", - "tracing 0.1.37", + "tracing 0.2.0", "webp", ] @@ -7127,7 +7126,7 @@ version = "0.1.0" dependencies = [ "jni 0.19.0", "sd-mobile-core", - "tracing 0.1.37", + "tracing 0.2.0", ] [[package]] @@ -7144,7 +7143,7 @@ dependencies = [ "sd-core", "serde_json", "tokio", - "tracing 0.1.37", + "tracing 0.2.0", ] [[package]] @@ -7176,8 +7175,8 @@ dependencies = [ "thiserror", "tokio", "tokio-util", - "tracing 0.1.37", - "tracing-subscriber 0.3.17", + "tracing 0.2.0", + "tracing-subscriber 0.3.0", "uuid", ] @@ -7205,7 +7204,7 @@ dependencies = [ "sd-core", "tokio", "tower-http", - "tracing 0.1.37", + "tracing 0.2.0", ] [[package]] @@ -7342,9 +7341,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.183" +version = "1.0.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +checksum = "be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31" dependencies = [ "serde_derive", ] @@ -7388,20 +7387,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.183" +version = "1.0.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" +checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] name = "serde_json" -version = "1.0.104" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" dependencies = [ "indexmap 2.0.0", "itoa 1.0.9", @@ -7427,7 +7426,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -7469,9 +7468,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1402f54f9a3b9e2efe71c1cea24e648acce55887983553eeb858cf3115acfd49" +checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" dependencies = [ "base64 0.21.2", "chrono", @@ -7480,7 +7479,7 @@ dependencies = [ "indexmap 2.0.0", "serde", "serde_json", - "serde_with_macros 3.2.0", + "serde_with_macros 3.3.0", "time 0.3.25", ] @@ -7493,19 +7492,19 @@ dependencies = [ "darling 0.20.3", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] name = "serde_with_macros" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9197f1ad0e3c173a0222d3c4404fb04c3afe87e962bcb327af73e8301fa203c7" +checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c" dependencies = [ "darling 0.20.3", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -7716,14 +7715,14 @@ checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "snow" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733" +checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155" dependencies = [ "aes-gcm 0.9.4", "blake2", "chacha20poly1305 0.9.1", - "curve25519-dalek 4.0.0-rc.1", + "curve25519-dalek 4.0.0", "rand_core 0.6.4", "ring", "rustc_version", @@ -8080,9 +8079,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" dependencies = [ "proc-macro2", "quote", @@ -8237,9 +8236,9 @@ dependencies = [ [[package]] name = "tao-macros" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b27a4bcc5eb524658234589bdffc7e7bfb996dbae6ce9393bfd39cb4159b445" +checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2" dependencies = [ "proc-macro2", "quote", @@ -8461,7 +8460,7 @@ dependencies = [ "semver", "serde", "serde_json", - "serde_with 3.2.0", + "serde_with 3.3.0", "thiserror", "url", "walkdir", @@ -8490,14 +8489,14 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.7.1" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.7", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -8529,22 +8528,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -8633,9 +8632,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.30.0" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3ce25f50619af8b0aec2eb23deebe84249e19e2ddd393a6e16e3300a6dadfd" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ "backtrace", "bytes", @@ -8658,7 +8657,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -8762,7 +8761,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55ae70283aba8d2a8b411c695c437fe25b8b5e44e23e780662002fc72fb47a82" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "bytes", "futures-core", "futures-util", @@ -8835,7 +8834,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -8845,7 +8844,7 @@ source = "git+https://github.com/tokio-rs/tracing?rev=29146260fb4615d271d2e899ad dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] @@ -9404,7 +9403,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", "wasm-bindgen-shared", ] @@ -9438,7 +9437,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -9622,9 +9621,9 @@ dependencies = [ [[package]] name = "webrtc-dtls" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" +checksum = "c4a00f4242f2db33307347bd5be53263c52a0331c96c14292118c9a6bb48d267" dependencies = [ "aes 0.6.0", "aes-gcm 0.10.2", @@ -9639,12 +9638,11 @@ dependencies = [ "hkdf 0.12.3", "hmac 0.12.1", "log", - "oid-registry 0.6.1", "p256", "p384", "rand 0.8.5", "rand_core 0.6.4", - "rcgen 0.9.3", + "rcgen 0.10.0", "ring", "rustls 0.19.1", "sec1", @@ -9657,7 +9655,7 @@ dependencies = [ "tokio", "webpki 0.21.4", "webrtc-util", - "x25519-dalek 2.0.0-pre.1", + "x25519-dalek 2.0.0", "x509-parser 0.13.2", ] @@ -9912,7 +9910,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -9971,7 +9969,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -9991,17 +9989,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -10018,9 +10016,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -10048,9 +10046,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -10078,9 +10076,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -10108,9 +10106,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -10138,9 +10136,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -10150,9 +10148,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -10180,15 +10178,15 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.4" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64" +checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" dependencies = [ "memchr", ] @@ -10303,12 +10301,13 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0-pre.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" dependencies = [ - "curve25519-dalek 3.2.0", + "curve25519-dalek 4.0.0", "rand_core 0.6.4", + "serde", "zeroize", ] @@ -10419,7 +10418,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.29", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index d28cd39bebe6..5ef9763d895b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,6 +35,12 @@ prisma-client-rust-sdk = { git = "https://github.com/Brendonovich/prisma-client- "sqlite", ], default-features = false } +tracing = { git = "https://github.com/tokio-rs/tracing", rev = "29146260fb4615d271d2e899ad95a753bb42915e" } # To work with tracing-appender +tracing-subscriber = { git = "https://github.com/tokio-rs/tracing", rev = "29146260fb4615d271d2e899ad95a753bb42915e", features = [ + "env-filter", +] } # To work with tracing-appender +tracing-appender = { git = "https://github.com/tokio-rs/tracing", rev = "29146260fb4615d271d2e899ad95a753bb42915e" } # Unreleased changes for rolling log deletion + rspc = { version = "0.1.4" } specta = { version = "1.0.4" } httpz = { version = "0.0.3" } diff --git a/apps/desktop/crates/linux/src/app_info.rs b/apps/desktop/crates/linux/src/app_info.rs index 4729196bdab9..d982186b6e31 100644 --- a/apps/desktop/crates/linux/src/app_info.rs +++ b/apps/desktop/crates/linux/src/app_info.rs @@ -123,7 +123,7 @@ pub async fn list_apps_associated_with_ext(file_path: impl AsRef) -> Vec], id: &str) -> Result<(), GlibError> { let Some(app) = DesktopAppInfo::new(id) else { - return Err(GlibError::new(ResourceError::NotFound, "App not found")) + return Err(GlibError::new(ResourceError::NotFound, "App not found")); }; LAUNCH_CTX.with(|ctx| { diff --git a/apps/desktop/crates/linux/src/lib.rs b/apps/desktop/crates/linux/src/lib.rs index 14ddcb43e951..65a5e70d83fd 100644 --- a/apps/desktop/crates/linux/src/lib.rs +++ b/apps/desktop/crates/linux/src/lib.rs @@ -4,4 +4,4 @@ mod app_info; mod env; pub use app_info::{list_apps_associated_with_ext, open_file_path, open_files_path_with}; -pub use env::{is_appimage, is_flatpak, is_snap, normalize_environment}; +pub use env::{get_current_user_home, is_appimage, is_flatpak, is_snap, normalize_environment}; diff --git a/apps/desktop/crates/windows/Cargo.toml b/apps/desktop/crates/windows/Cargo.toml index 8ca87856105b..680930d45bb4 100644 --- a/apps/desktop/crates/windows/Cargo.toml +++ b/apps/desktop/crates/windows/Cargo.toml @@ -12,4 +12,4 @@ libc = "0.2" [target.'cfg(target_os = "windows")'.dependencies.windows] version = "0.48" -features = ["Win32_UI_Shell", "Win32_System_Com"] +features = ["Win32_UI_Shell", "Win32_Foundation", "Win32_System_Com"] diff --git a/apps/desktop/crates/windows/src/lib.rs b/apps/desktop/crates/windows/src/lib.rs index 80e47f2eef54..cf11ea539f87 100644 --- a/apps/desktop/crates/windows/src/lib.rs +++ b/apps/desktop/crates/windows/src/lib.rs @@ -2,21 +2,22 @@ use std::{ ffi::{OsStr, OsString}, - os::windows::ffi::OsStrExt, - path::Path, + os::windows::{ffi::OsStrExt, prelude::OsStringExt}, + path::{Path, PathBuf}, }; use normpath::PathExt; use windows::{ - core::{HSTRING, PCWSTR}, + core::{GUID, HSTRING, PCWSTR}, Win32::{ + Foundation::HANDLE, System::Com::{ CoInitializeEx, CoUninitialize, IDataObject, COINIT_APARTMENTTHREADED, COINIT_DISABLE_OLE1DDE, }, UI::Shell::{ - BHID_DataObject, IAssocHandler, IShellItem, SHAssocEnumHandlers, - SHCreateItemFromParsingName, ASSOC_FILTER_RECOMMENDED, + BHID_DataObject, FOLDERID_Profile, IAssocHandler, IShellItem, SHAssocEnumHandlers, + SHCreateItemFromParsingName, SHGetKnownFolderPath, ASSOC_FILTER_RECOMMENDED, }, }, }; diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 4902e288e63b..f3e6c57f5642 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -21,10 +21,10 @@ "@sd/ui": "workspace:*", "@tanstack/react-query": "^4.24.4", "@tauri-apps/api": "1.3.0", + "comlink": "^4.4.1", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "6.9.0", - "vite-plugin-html": "^3.2.0" + "react-router-dom": "6.9.0" }, "devDependencies": { "@iarna/toml": "^2.2.5", @@ -40,6 +40,8 @@ "typescript": "^5.0.4", "vite": "^4.0.4", "vite-plugin-svgr": "^2.2.1", - "vite-tsconfig-paths": "^4.0.3" + "vite-tsconfig-paths": "^4.0.3", + "vite-plugin-comlink": "^3.0.5", + "vite-plugin-html": "^3.2.0" } } diff --git a/apps/desktop/src-tauri/Cargo.toml b/apps/desktop/src-tauri/Cargo.toml index 85841d870f97..c1a561ba5fcb 100644 --- a/apps/desktop/src-tauri/Cargo.toml +++ b/apps/desktop/src-tauri/Cargo.toml @@ -9,7 +9,7 @@ repository = { workspace = true } edition = { workspace = true } [dependencies] -tauri = { version = "1.3.0", features = ["dialog-all", "linux-protocol-headers", "macos-private-api", "os-all", "path-all", "protocol-all", "shell-all", "window-all"] } +tauri = { version = "1.3.0", features = ["dialog-all", "linux-protocol-headers", "macos-private-api", "os-all", "path-all", "protocol-all", "shell-all", "updater", "window-all"] } rspc = { workspace = true, features = ["tauri"] } httpz = { workspace = true, features = [ "axum", @@ -22,7 +22,7 @@ sd-core = { path = "../../../core", features = [ ] } tokio = { workspace = true, features = ["sync"] } window-shadows = "0.2.1" -tracing = "0.1.37" +tracing = { workspace = true } serde = "1.0.163" percent-encoding = "2.2.0" http = "0.2.9" @@ -50,6 +50,5 @@ sd-desktop-windows = { path = "../crates/windows" } tauri-build = { version = "1.3.0", features = [] } [features] -default = ["custom-protocol", "updater"] -updater = ["tauri/updater"] +default = ["custom-protocol"] custom-protocol = ["tauri/custom-protocol"] diff --git a/apps/desktop/src-tauri/src/file.rs b/apps/desktop/src-tauri/src/file.rs index 38605f138c07..61912f5ccf4e 100644 --- a/apps/desktop/src-tauri/src/file.rs +++ b/apps/desktop/src-tauri/src/file.rs @@ -92,17 +92,15 @@ pub async fn get_file_path_open_with_apps( ids: Vec, node: NodeState<'_>, ) -> Result, ()> { - let Some(library) = node.libraries.get_library(&library).await - else { - return Ok(vec![]); - }; + let Some(library) = node.libraries.get_library(&library).await else { + return Ok(vec![]); + }; - let Ok(paths) = library - .get_file_paths(ids).await - .map_err(|e| {error!("{e:#?}");}) - else { - return Ok(vec![]); - }; + let Ok(paths) = library.get_file_paths(ids).await.map_err(|e| { + error!("{e:#?}"); + }) else { + return Ok(vec![]); + }; #[cfg(target_os = "macos")] return { @@ -110,10 +108,10 @@ pub async fn get_file_path_open_with_apps( .into_values() .flat_map(|path| { let Some(path) = path.and_then(|path| path.into_os_string().into_string().ok()) - else { - error!("File not found in database"); - return None; - }; + else { + error!("File not found in database"); + return None; + }; Some( unsafe { sd_desktop_macos::get_open_with_applications(&path.as_str().into()) } @@ -137,11 +135,10 @@ pub async fn get_file_path_open_with_apps( use sd_desktop_linux::list_apps_associated_with_ext; let apps = future::join_all(paths.into_values().map(|path| async { - let Some(path) = path - else { - error!("File not found in database"); - return None; - }; + let Some(path) = path else { + error!("File not found in database"); + return None; + }; Some( list_apps_associated_with_ext(&path) @@ -168,17 +165,15 @@ pub async fn get_file_path_open_with_apps( return Ok(paths .into_values() .filter_map(|path| { - let Some(path) = path - else { - error!("File not found in database"); - return None; - }; + let Some(path) = path else { + error!("File not found in database"); + return None; + }; - let Some(ext) = path.extension() - else { - error!("Failed to extract file extension"); - return None; - }; + let Some(ext) = path.extension() else { + error!("Failed to extract file extension"); + return None; + }; sd_desktop_windows::list_apps_associated_with_ext(ext) .map_err(|e| { @@ -191,15 +186,27 @@ pub async fn get_file_path_open_with_apps( .iter() .filter_map(|handler| { let (Ok(name), Ok(url)) = ( - unsafe { handler.GetUIName() }.map_err(|e| { error!("{e:#?}");}) - .and_then(|name| unsafe { name.to_string() } - .map_err(|e| { error!("{e:#?}");})), - unsafe { handler.GetName() }.map_err(|e| { error!("{e:#?}");}) - .and_then(|name| unsafe { name.to_string() } - .map_err(|e| { error!("{e:#?}");})), + unsafe { handler.GetUIName() } + .map_err(|e| { + error!("{e:#?}"); + }) + .and_then(|name| { + unsafe { name.to_string() }.map_err(|e| { + error!("{e:#?}"); + }) + }), + unsafe { handler.GetName() } + .map_err(|e| { + error!("{e:#?}"); + }) + .and_then(|name| { + unsafe { name.to_string() }.map_err(|e| { + error!("{e:#?}"); + }) + }), ) else { error!("Failed to get handler info"); - return None + return None; }; Some(OpenWithApplication { name, url }) @@ -223,10 +230,9 @@ pub async fn open_file_path_with( file_ids_and_urls: Vec, node: NodeState<'_>, ) -> Result<(), ()> { - let Some(library) = node.libraries.get_library(&library).await - else { - return Err(()) - }; + let Some(library) = node.libraries.get_library(&library).await else { + return Err(()); + }; let url_by_id = file_ids_and_urls.into_iter().collect::>(); let ids = url_by_id.keys().copied().collect::>(); @@ -246,12 +252,11 @@ pub async fn open_file_path_with( path.as_ref(), #[cfg(not(windows))] path.as_ref().and_then(|path| path.to_str()), - url_by_id.get(id) - ) - else { - error!("File not found in database"); - return Err(()); - }; + url_by_id.get(id), + ) else { + error!("File not found in database"); + return Err(()); + }; #[cfg(target_os = "macos")] return { @@ -290,10 +295,9 @@ pub async fn reveal_items( items: Vec, node: NodeState<'_>, ) -> Result<(), ()> { - let Some(library) = node.libraries.get_library(&library).await - else { - return Err(()) - }; + let Some(library) = node.libraries.get_library(&library).await else { + return Err(()); + }; let (paths, locations): (Vec<_>, Vec<_>) = items diff --git a/apps/desktop/src-tauri/src/main.rs b/apps/desktop/src-tauri/src/main.rs index 0b8238e60df4..9aa1e1d72793 100644 --- a/apps/desktop/src-tauri/src/main.rs +++ b/apps/desktop/src-tauri/src/main.rs @@ -97,11 +97,11 @@ async fn main() -> tauri::Result<()> { #[cfg(debug_assertions)] let data_dir = data_dir.join("dev"); - // Initialize and configure app logging - // Return value must be assigned to variable for flushing remaining logs on main exit throught Drop - let _guard = Node::init_logger(&data_dir); - - let result = Node::new(data_dir).await; + // The `_guard` must be assigned to variable for flushing remaining logs on main exit through Drop + let (_guard, result) = match Node::init_logger(&data_dir) { + Ok(guard) => (Some(guard), Node::new(data_dir).await), + Err(err) => (None, Err(NodeError::Logger(err))), + }; let app = tauri::Builder::default(); @@ -144,7 +144,6 @@ async fn main() -> tauri::Result<()> { let app = app .setup(|app| { - #[cfg(feature = "updater")] tauri::updater::builder(app.handle()).should_install(|_current, _latest| true); let app = app.handle(); diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index 8af60eed0c11..023865e5d562 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -50,11 +50,9 @@ } }, "updater": { - "active": false, + "active": true, "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEZBMURCMkU5NEU3NDAyOEMKUldTTUFuUk82YklkK296dlkxUGkrTXhCT3ZMNFFVOWROcXNaS0RqWU1kMUdRV2tDdFdIS0Y3YUsK", - "endpoints": [ - "https://spacedrive.com/api/releases/{{target}}/{{arch}}/{{current_version}}" - ] + "endpoints": ["https://spacedrive.com/api/releases/alpha/{{target}}/{{arch}}"] }, "allowlist": { "all": false, diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index 8c9c9b0a19fc..9dc38e67d0e6 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -2,6 +2,7 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { dialog, invoke, os, shell } from '@tauri-apps/api'; import { confirm } from '@tauri-apps/api/dialog'; import { listen } from '@tauri-apps/api/event'; +import { homeDir } from '@tauri-apps/api/path'; import { convertFileSrc } from '@tauri-apps/api/tauri'; import { appWindow } from '@tauri-apps/api/window'; import { useEffect } from 'react'; @@ -76,6 +77,7 @@ const platform: Platform = { saveFilePickerDialog: () => dialog.save(), showDevtools: () => invoke('show_devtools'), confirm: (msg, cb) => confirm(msg).then(cb), + userHomeDir: homeDir, ...commands }; diff --git a/apps/desktop/src/commands.ts b/apps/desktop/src/commands.ts index e413d10f03ee..b6d17db5036c 100644 --- a/apps/desktop/src/commands.ts +++ b/apps/desktop/src/commands.ts @@ -42,7 +42,7 @@ export function lockAppTheme(themeType: AppThemeType) { return invoke()("lock_app_theme", { themeType }) } -export type RevealItem = { Location: { id: number } } | { FilePath: { id: number } } export type AppThemeType = "Auto" | "Light" | "Dark" export type OpenFilePathResult = { t: "NoLibrary" } | { t: "NoFile"; c: number } | { t: "OpenError"; c: [number, string] } | { t: "AllGood"; c: number } | { t: "Internal"; c: string } +export type RevealItem = { Location: { id: number } } | { FilePath: { id: number } } export type OpenWithApplication = { url: string; name: string } diff --git a/apps/desktop/src/vite-env.d.ts b/apps/desktop/src/vite-env.d.ts index 16334d7f0764..7f26f947a510 100644 --- a/apps/desktop/src/vite-env.d.ts +++ b/apps/desktop/src/vite-env.d.ts @@ -1,4 +1,5 @@ /// +/// declare interface ImportMetaEnv { VITE_OS: string; diff --git a/apps/desktop/vite.config.ts b/apps/desktop/vite.config.ts index 09c4a5502339..689e4c07323b 100644 --- a/apps/desktop/vite.config.ts +++ b/apps/desktop/vite.config.ts @@ -1,4 +1,5 @@ import { Plugin, mergeConfig } from 'vite'; +import { comlink } from 'vite-plugin-comlink'; import baseConfig from '../../packages/config/vite'; const devtoolsPlugin: Plugin = { @@ -20,5 +21,8 @@ export default mergeConfig(baseConfig, { server: { port: 8001 }, - plugins: [devtoolsPlugin] + plugins: [devtoolsPlugin, comlink()], + worker: { + plugins: [comlink()] + } }); diff --git a/apps/landing/package.json b/apps/landing/package.json index d8b635f7f228..35927a9245f1 100644 --- a/apps/landing/package.json +++ b/apps/landing/package.json @@ -31,7 +31,7 @@ "react": "18.2.0", "react-burger-menu": "^3.0.9", "react-dom": "^18.2.0", - "react-hook-form": "^7.43.9", + "react-hook-form": "~7.45.2", "react-tsparticles": "^2.10.1", "reading-time": "^1.5.0", "rehype-autolink-headings": "^6.1.1", @@ -45,7 +45,7 @@ "three": "^0.154", "tsparticles": "^2.9.3", "uuid": "^9.0.0", - "zod": "^3.21.4" + "zod": "~3.22.2" }, "devDependencies": { "@sd/config": "workspace:*", diff --git a/apps/landing/src/app/api/releases/[target]/[arch]/[currentVersion]/route.ts b/apps/landing/src/app/api/releases/[target]/[arch]/[currentVersion]/route.ts deleted file mode 100644 index 317e81348811..000000000000 --- a/apps/landing/src/app/api/releases/[target]/[arch]/[currentVersion]/route.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { get } from '@vercel/edge-config'; -import { NextResponse } from 'next/server'; - -export const runtime = 'edge'; - -export async function GET( - _: Request, - { - params - }: { - params: { - target: string; - arch: string; - currentVersion: string; - }; - } -) { - const releases = await get>('main'); - - return NextResponse.json(releases![params.target]); -} diff --git a/apps/landing/src/app/api/releases/[version]/[target]/[arch]/route.ts b/apps/landing/src/app/api/releases/[version]/[target]/[arch]/route.ts new file mode 100644 index 000000000000..ea0d09a1b6b0 --- /dev/null +++ b/apps/landing/src/app/api/releases/[version]/[target]/[arch]/route.ts @@ -0,0 +1,107 @@ +import { NextResponse } from 'next/server'; +import { z } from 'zod'; +import { env } from '~/env'; + +const version = z.union([z.literal('stable'), z.literal('alpha')]); +const tauriTarget = z.union([z.literal('linux'), z.literal('windows'), z.literal('darwin')]); +const tauriArch = z.union([z.literal('x86_64'), z.literal('aarch64')]); + +const paramsSchema = z.object({ + target: tauriTarget, + arch: tauriArch, + version: version.or(z.string()) +}); + +type TauriResponse = { + // Must be > than the version in tauri.conf.json for update to be detected + version: string; + pub_date: string; + url: string; + signature: string; + notes: string; +}; + +export const runtime = 'edge'; + +export async function GET(req: Request, extra: { params: Record }) { + // handles old /api/releases/[target]/[arch]/[currentVersion] requests + // should be removed once stable release is out + if (tauriArch.safeParse(extra.params['target']).success) { + return NextResponse.redirect( + new URL(`/api/releases/alpha/${extra.params.version}/${extra.params.target}`, req.url) + ); + } + + const params = await paramsSchema.parseAsync(extra.params); + + const release = await getRelease(params); + + if (!release) return NextResponse.json({ error: 'Release not found' }, { status: 404 }); + + params.version = release.tag_name; + + const asset = release.assets.find(({ name }: any) => name === binaryName(params)); + + if (!asset) return NextResponse.json({ error: 'Asset not found' }, { status: 404 }); + + const signatureAsset = release.assets.find( + ({ name }: any) => name === `${binaryName(params)}.sig` + ); + + if (!signatureAsset) + return NextResponse.json({ error: 'Signature asset not found' }, { status: 404 }); + + const signature = await fetch(signatureAsset.browser_download_url).then((r) => r.text()); + + const response: TauriResponse = { + version: release.tag_name, + url: asset.browser_download_url, + signature, + notes: release.body, + pub_date: release.published_at + }; + + return NextResponse.json(response); +} + +const ORG = 'spacedriveapp'; +const REPO = 'spacedrive'; + +async function getRelease({ version }: z.infer): Promise { + switch (version) { + case 'alpha': { + const data = await githubFetch(`/repos/${ORG}/${REPO}/releases`); + + return data.find((d: any) => d.tag_name.includes('alpha')); + } + case 'stable': + return githubFetch(`/repos/${ORG}/${REPO}/releases/latest`); + default: + return githubFetch(`/repos/${ORG}/${REPO}/releases/tags/${version}`); + } +} + +const FETCH_META = { + headers: { + Authorization: `Bearer ${env.GITHUB_PAT}`, + Accept: 'application/vnd.github+json' + }, + next: { + revalidate: 60 + } +} as RequestInit; + +async function githubFetch(path: string) { + return fetch(`https://api.github.com${path}`, FETCH_META).then((r) => r.json()); +} + +function binaryName({ version, target, arch }: z.infer) { + const ext = extensionForTarget(target); + + return `Spacedrive-Updater-${version}-${target}-${arch}.${ext}`; +} + +function extensionForTarget(target: z.infer) { + if (target === 'windows') return 'zip'; + else return 'tar.gz'; +} diff --git a/apps/landing/src/env.ts b/apps/landing/src/env.ts index 305b7adce289..1ed99450fa46 100644 --- a/apps/landing/src/env.ts +++ b/apps/landing/src/env.ts @@ -6,6 +6,7 @@ export const env = createEnv({ DATABASE_URL: z.string().url(), SLACK_FEEDBACK_URL: z.string().url(), AUTH_SECRET: z.string(), + GITHUB_PAT: z.string(), GITHUB_CLIENT_ID: z.string(), GITHUB_SECRET: z.string(), AWS_SES_ACCESS_KEY: z.string(), @@ -18,6 +19,7 @@ export const env = createEnv({ DATABASE_URL: process.env.DATABASE_URL, SLACK_FEEDBACK_URL: process.env.SLACK_FEEDBACK_URL, AUTH_SECRET: process.env.AUTH_SECRET, + GITHUB_PAT: process.env.GITHUB_PAT, GITHUB_CLIENT_ID: process.env.GITHUB_CLIENT_ID, GITHUB_SECRET: process.env.GITHUB_SECRET, AWS_SES_ACCESS_KEY: process.env.AWS_SES_ACCESS_KEY, diff --git a/apps/mobile/.gitignore b/apps/mobile/.gitignore index 6ea85667fe09..5a75721f6d3f 100644 --- a/apps/mobile/.gitignore +++ b/apps/mobile/.gitignore @@ -1,55 +1,34 @@ -# OSX -# -.DS_Store -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -project.xcworkspace - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml -*.hprof -.cxx/ -*.keystore -!debug.keystore - -# node.js -# +# dependencies node_modules/ -npm-debug.log -yarn-error.log -# Bundle artifacts -*.jsbundle +# Expo +.expo/ +dist/ +web-build/ -# CocoaPods -/ios/Pods/ +# Native +*.orig.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision -# Temporary files created by Metro to check the health of the file watcher +# Metro .metro-health-check* -# Expo -.expo/ -web-build/ -dist/ \ No newline at end of file +# debug +npm-debug.* +yarn-debug.* +yarn-error.* + +# macOS +.DS_Store +*.pem + +# local env files +.env*.local + +# typescript +*.tsbuildinfo diff --git a/apps/mobile/android/.gitignore b/apps/mobile/android/.gitignore index ab9e6d1400a8..877b87e9a569 100644 --- a/apps/mobile/android/.gitignore +++ b/apps/mobile/android/.gitignore @@ -12,4 +12,4 @@ local.properties *.hprof # Bundle artifacts -*.jsbundle \ No newline at end of file +*.jsbundle diff --git a/apps/mobile/android/app/build.gradle b/apps/mobile/android/app/build.gradle index 05b7395add74..03524c0df53d 100644 --- a/apps/mobile/android/app/build.gradle +++ b/apps/mobile/android/app/build.gradle @@ -1,8 +1,6 @@ apply plugin: "com.android.application" apply plugin: "com.facebook.react" -import com.android.build.OutputFile - // SPACEDRIVE CODE apply plugin: 'org.mozilla.rust-android-gradle.rust-android' @@ -33,16 +31,7 @@ tasks.whenTaskAdded { task -> } // END SPACEDRIVE CODE - def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() -def expoDebuggableVariants = ['debug'] -// Override `debuggableVariants` for expo-updates debugging -if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == "1") { - react { - expoDebuggableVariants = [] - } -} - /** * This is the configuration block to customize your React Native Android app. @@ -52,17 +41,20 @@ react { entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim()) reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc" - debuggableVariants = expoDebuggableVariants + codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + + // Use Expo CLI to bundle the app, this ensures the Metro config + // works correctly with Expo projects. + cliFile = new File(["node", "--print", "require.resolve('@expo/cli')"].execute(null, rootDir).text.trim()) + bundleCommand = "export:embed" /* Folders */ // The root of your project, i.e. where "package.json" lives. Default is '..' // root = file("../") // The folder where the react-native NPM package is. Default is ../node_modules/react-native // reactNativeDir = file("../node_modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen - // codegenDir = file("../node_modules/react-native-codegen") - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js - // cliFile = file("../node_modules/react-native/cli.js") + // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen + // codegenDir = file("../node_modules/@react-native/codegen") /* Variants */ // The list of variants to that are debuggable. For those we're going to @@ -73,9 +65,7 @@ react { /* Bundling */ // A list containing the node command and its flags. Default is just 'node'. // nodeExecutableAndArgs = ["node"] - // - // The command to run when bundling. By default is 'bundle' - // bundleCommand = "ram-bundle" + // // The path to the CLI configuration file. Default is empty. // bundleConfig = file(../rn-cli.config.js) @@ -98,19 +88,6 @@ react { // hermesFlags = ["-O", "-output-source-map"] } -// Override `hermesEnabled` by `expo.jsEngine` -ext { - hermesEnabled = (findProperty('expo.jsEngine') ?: "hermes") == "hermes" -} - -/** - * Set this to true to create four separate APKs instead of one, - * one for each native architecture. This is useful if you don't - * use App Bundles (https://developer.android.com/guide/app-bundle/) - * and want to have separate APKs to upload to the Play Store. - */ -def enableSeparateBuildPerCPUArchitecture = false - /** * Set this to true to Run Proguard on Release builds to minify the Java bytecode. */ @@ -129,37 +106,20 @@ def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInRelea */ def jscFlavor = 'org.webkit:android-jsc:+' -/** - * Private function to get the list of Native Architectures you want to build. - * This reads the value from reactNativeArchitectures in your gradle.properties - * file and works together with the --active-arch-only flag of react-native run-android. - */ -def reactNativeArchitectures() { - def value = project.getProperties().get("reactNativeArchitectures") - return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] -} - android { ndkVersion rootProject.ext.ndkVersion compileSdkVersion rootProject.ext.compileSdkVersion - namespace 'com.spacedrive.app' + namespace "com.spacedrive" defaultConfig { applicationId 'com.spacedrive.app' minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "0.0.1" - } - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include (*reactNativeArchitectures()) - } + buildConfigField("boolean", "REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS", (findProperty("reactNative.unstable_useRuntimeSchedulerAlways") ?: true).toString()) } signingConfigs { debug { @@ -177,26 +137,11 @@ android { // Caution! In production, you need to generate your own keystore file. // see https://reactnative.dev/docs/signed-apk-android. signingConfig signingConfigs.debug + shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false) minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } - - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // https://developer.android.com/studio/build/configure-apk-splits.html - // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. - def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - defaultConfig.versionCode * 1000 + versionCodes.get(abi) - } - - } - } } // Apply static values from `gradle.properties` to the `android.packagingOptions` @@ -248,8 +193,6 @@ dependencies { } } - implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") - debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { exclude group:'com.squareup.okhttp3', module:'okhttp' diff --git a/apps/mobile/android/app/proguard-rules.pro b/apps/mobile/android/app/proguard-rules.pro index 78d6c0389058..551eb41da242 100644 --- a/apps/mobile/android/app/proguard-rules.pro +++ b/apps/mobile/android/app/proguard-rules.pro @@ -11,4 +11,4 @@ -keep class com.swmansion.reanimated.** { *; } -keep class com.facebook.react.turbomodule.** { *; } -# Add any project specific keep options here: \ No newline at end of file +# Add any project specific keep options here: diff --git a/apps/mobile/android/app/src/debug/java/com/spacedrive/app/ReactNativeFlipper.java b/apps/mobile/android/app/src/debug/java/com/spacedrive/app/ReactNativeFlipper.java index 37ca9c9043f5..de7a6b4ad91f 100644 --- a/apps/mobile/android/app/src/debug/java/com/spacedrive/app/ReactNativeFlipper.java +++ b/apps/mobile/android/app/src/debug/java/com/spacedrive/app/ReactNativeFlipper.java @@ -72,4 +72,4 @@ public void run() { } } } -} \ No newline at end of file +} diff --git a/apps/mobile/android/app/src/main/AndroidManifest.xml b/apps/mobile/android/app/src/main/AndroidManifest.xml index 23d2b8676999..b1193eef6396 100644 --- a/apps/mobile/android/app/src/main/AndroidManifest.xml +++ b/apps/mobile/android/app/src/main/AndroidManifest.xml @@ -14,11 +14,10 @@ - + diff --git a/apps/mobile/android/app/src/main/java/com/spacedrive/app/MainActivity.java b/apps/mobile/android/app/src/main/java/com/spacedrive/app/MainActivity.java index 1309a4b94738..26c73b363a60 100644 --- a/apps/mobile/android/app/src/main/java/com/spacedrive/app/MainActivity.java +++ b/apps/mobile/android/app/src/main/java/com/spacedrive/app/MainActivity.java @@ -40,10 +40,7 @@ protected ReactActivityDelegate createReactActivityDelegate() { this, getMainComponentName(), // If you opted-in for the New Architecture, we enable the Fabric Renderer. - DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled - // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18). - DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled - )); + DefaultNewArchitectureEntryPoint.getFabricEnabled())); } /** @@ -65,4 +62,4 @@ public void invokeDefaultOnBackPressed() { // because it's doing more than {@link Activity#moveTaskToBack} in fact. super.invokeDefaultOnBackPressed(); } -} \ No newline at end of file +} diff --git a/apps/mobile/android/app/src/main/java/com/spacedrive/app/MainApplication.java b/apps/mobile/android/app/src/main/java/com/spacedrive/app/MainApplication.java index ad2962a9e611..a8b2cd804d9f 100644 --- a/apps/mobile/android/app/src/main/java/com/spacedrive/app/MainApplication.java +++ b/apps/mobile/android/app/src/main/java/com/spacedrive/app/MainApplication.java @@ -8,6 +8,7 @@ import com.facebook.react.ReactApplication; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; +import com.facebook.react.config.ReactFeatureFlags; import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; import com.facebook.react.defaults.DefaultReactNativeHost; import com.facebook.soloader.SoLoader; @@ -37,7 +38,7 @@ protected List getPackages() { @Override protected String getJSMainModuleName() { - return "index"; + return ".expo/.virtual-metro-entry"; } @Override @@ -60,6 +61,9 @@ public ReactNativeHost getReactNativeHost() { public void onCreate() { super.onCreate(); SoLoader.init(this, /* native exopackage */ false); + if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) { + ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false; + } if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { // If you opted-in for the New Architecture, we load the native entry point for this app. DefaultNewArchitectureEntryPoint.load(); @@ -73,4 +77,4 @@ public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig); } -} \ No newline at end of file +} diff --git a/apps/mobile/android/app/src/main/res/drawable-hdpi/splashscreen_image.png b/apps/mobile/android/app/src/main/res/drawable-hdpi/splashscreen_image.png index 0e07622120d1..9fe550638112 100644 Binary files a/apps/mobile/android/app/src/main/res/drawable-hdpi/splashscreen_image.png and b/apps/mobile/android/app/src/main/res/drawable-hdpi/splashscreen_image.png differ diff --git a/apps/mobile/android/app/src/main/res/drawable-mdpi/splashscreen_image.png b/apps/mobile/android/app/src/main/res/drawable-mdpi/splashscreen_image.png index 0e07622120d1..9fe550638112 100644 Binary files a/apps/mobile/android/app/src/main/res/drawable-mdpi/splashscreen_image.png and b/apps/mobile/android/app/src/main/res/drawable-mdpi/splashscreen_image.png differ diff --git a/apps/mobile/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png b/apps/mobile/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png index 0e07622120d1..9fe550638112 100644 Binary files a/apps/mobile/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png and b/apps/mobile/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png differ diff --git a/apps/mobile/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png b/apps/mobile/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png index 0e07622120d1..9fe550638112 100644 Binary files a/apps/mobile/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png and b/apps/mobile/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png differ diff --git a/apps/mobile/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png b/apps/mobile/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png index 0e07622120d1..9fe550638112 100644 Binary files a/apps/mobile/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png and b/apps/mobile/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png differ diff --git a/apps/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml b/apps/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml index f35d9962026a..73b37e4d9963 100644 --- a/apps/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml +++ b/apps/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -20,7 +20,7 @@ android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> -