mirror of
https://github.com/spacedriveapp/spacedrive
synced 2024-07-06 22:33:27 +00:00
[ENG-980] Barebones, essential telemetry (#1237)
* rename everything to "full" telemetry and re-word onboarding * impl the `ping` event every 4.5 mins, or on path change * fix debug popover * update mobile * remove callback (and cargo lock update?) * add to mobile, remove eslint ignore, remove console log --------- Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
This commit is contained in:
parent
e4b03619d2
commit
6acc47ef09
309
Cargo.lock
generated
309
Cargo.lock
generated
|
@ -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#f4f98ab7f30b6f6550cd058e9889570a58501822"
|
||||
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#f4f98ab7f30b6f6550cd058e9889570a58501822"
|
||||
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#f4f98ab7f30b6f6550cd058e9889570a58501822"
|
||||
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#f4f98ab7f30b6f6550cd058e9889570a58501822"
|
||||
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#f4f98ab7f30b6f6550cd058e9889570a58501822"
|
||||
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",
|
||||
|
@ -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]]
|
||||
|
|
|
@ -25,7 +25,9 @@ import {
|
|||
initPlausible,
|
||||
useClientContext,
|
||||
useInvalidateQuery,
|
||||
usePlausiblePageViewMonitor
|
||||
usePlausibleEvent,
|
||||
usePlausiblePageViewMonitor,
|
||||
usePlausiblePingMonitor
|
||||
} from '@sd/client';
|
||||
import { GlobalModals } from './components/modal/GlobalModals';
|
||||
import { useTheme } from './hooks/useTheme';
|
||||
|
@ -46,6 +48,7 @@ changeTwTheme('dark');
|
|||
|
||||
function AppNavigation() {
|
||||
const { libraries, library } = useClientContext();
|
||||
const plausibleEvent = usePlausibleEvent();
|
||||
|
||||
// TODO: Make sure library has actually been loaded by this point - precache with useCachedLibraries?
|
||||
// if (library === undefined) throw new Error("Tried to render AppNavigation before libraries fetched!")
|
||||
|
@ -56,6 +59,19 @@ function AppNavigation() {
|
|||
const [currentPath, setCurrentPath] = useState<string>('/');
|
||||
|
||||
usePlausiblePageViewMonitor({ currentPath });
|
||||
usePlausiblePingMonitor({ currentPath });
|
||||
|
||||
useEffect(() => {
|
||||
const interval = setInterval(() => {
|
||||
plausibleEvent({
|
||||
event: {
|
||||
type: 'ping'
|
||||
}
|
||||
});
|
||||
}, 270 * 1000);
|
||||
|
||||
return () => clearInterval(interval);
|
||||
}, []);
|
||||
|
||||
if (library === null && libraries.data) {
|
||||
currentLibraryStore.id = libraries.data[0]?.uuid ?? null;
|
||||
|
|
|
@ -34,7 +34,7 @@ const CreatingLibraryScreen = ({ navigation }: OnboardingStackScreenProps<'Creat
|
|||
]);
|
||||
// Switch to the new library
|
||||
currentLibraryStore.id = lib.uuid;
|
||||
if (obStore.shareTelemetry) {
|
||||
if (obStore.shareFullTelemetry) {
|
||||
submitPlausibleEvent({ event: { type: 'libraryCreate' } });
|
||||
}
|
||||
},
|
||||
|
@ -48,7 +48,7 @@ const CreatingLibraryScreen = ({ navigation }: OnboardingStackScreenProps<'Creat
|
|||
const created = useRef(false);
|
||||
|
||||
const create = async () => {
|
||||
telemetryStore.shareTelemetry = obStore.shareTelemetry;
|
||||
telemetryStore.shareFullTelemetry = obStore.shareFullTelemetry;
|
||||
createLibrary.mutate({ name: obStore.newLibraryName });
|
||||
};
|
||||
|
||||
|
|
|
@ -39,12 +39,12 @@ const RadioButton = ({ title, description, isSelected, style }: RadioButtonProps
|
|||
};
|
||||
|
||||
const PrivacyScreen = ({ navigation }: OnboardingStackScreenProps<'Privacy'>) => {
|
||||
const [shareTelemetry, setShareTelemetry] = useState<'share-telemetry' | 'no-share-telemetry'>(
|
||||
const [shareTelemetry, setShareTelemetry] = useState<'share-telemetry' | 'share-minimal'>(
|
||||
'share-telemetry'
|
||||
);
|
||||
|
||||
const onPress = () => {
|
||||
getOnboardingStore().shareTelemetry = shareTelemetry === 'share-telemetry';
|
||||
getOnboardingStore().shareFullTelemetry = shareTelemetry === 'share-telemetry';
|
||||
navigation.navigate('CreatingLibrary');
|
||||
};
|
||||
|
||||
|
@ -65,13 +65,13 @@ const PrivacyScreen = ({ navigation }: OnboardingStackScreenProps<'Privacy'>) =>
|
|||
/>
|
||||
</Pressable>
|
||||
<Pressable
|
||||
testID="share-nothing"
|
||||
onPress={() => setShareTelemetry('no-share-telemetry')}
|
||||
testID="share-minimal"
|
||||
onPress={() => setShareTelemetry('share-minimal')}
|
||||
>
|
||||
<RadioButton
|
||||
title="Share nothing"
|
||||
description="Do not share any telemetry data with the developers"
|
||||
isSelected={shareTelemetry === 'no-share-telemetry'}
|
||||
title="Share the bare minimum"
|
||||
description="Only share that I am an active user of Spacedrive and a few technical bits"
|
||||
isSelected={shareTelemetry === 'share-minimal'}
|
||||
/>
|
||||
</Pressable>
|
||||
</View>
|
||||
|
|
|
@ -2,14 +2,14 @@ appId: com.spacedrive.app
|
|||
---
|
||||
- launchApp:
|
||||
clearState: true
|
||||
- tapOn: 'Get Started'
|
||||
- tapOn: "Get Started"
|
||||
- tapOn:
|
||||
id: 'library-name'
|
||||
- inputText: 'TestLib'
|
||||
- tapOn: 'New Library'
|
||||
id: "library-name"
|
||||
- inputText: "TestLib"
|
||||
- tapOn: "New Library"
|
||||
- tapOn:
|
||||
id: 'share-nothing'
|
||||
- tapOn: 'Continue'
|
||||
id: "share-minimal"
|
||||
- tapOn: "Continue"
|
||||
- tapOn:
|
||||
id: 'drawer-toggle'
|
||||
- assertVisible: 'TestLib'
|
||||
id: "drawer-toggle"
|
||||
- assertVisible: "TestLib"
|
||||
|
|
|
@ -47,13 +47,16 @@ export default () => {
|
|||
description="Share telemetry, even in debug mode (telemetry sharing must also be enabled in your client settings)"
|
||||
>
|
||||
<Switch
|
||||
checked={debugState.shareTelemetry}
|
||||
checked={debugState.shareFullTelemetry}
|
||||
onClick={() => {
|
||||
// if debug telemetry sharing is about to be disabled, but telemetry logging is enabled
|
||||
// then disable it
|
||||
if (!debugState.shareTelemetry === false && debugState.telemetryLogging)
|
||||
if (
|
||||
!debugState.shareFullTelemetry === false &&
|
||||
debugState.telemetryLogging
|
||||
)
|
||||
getDebugState().telemetryLogging = false;
|
||||
getDebugState().shareTelemetry = !debugState.shareTelemetry;
|
||||
getDebugState().shareFullTelemetry = !debugState.shareFullTelemetry;
|
||||
}}
|
||||
/>
|
||||
</Setting>
|
||||
|
@ -67,8 +70,11 @@ export default () => {
|
|||
onClick={() => {
|
||||
// if telemetry logging is about to be enabled, but debug telemetry sharing is disabled
|
||||
// then enable it
|
||||
if (!debugState.telemetryLogging && debugState.shareTelemetry === false)
|
||||
getDebugState().shareTelemetry = true;
|
||||
if (
|
||||
!debugState.telemetryLogging &&
|
||||
debugState.shareFullTelemetry === false
|
||||
)
|
||||
getDebugState().shareFullTelemetry = true;
|
||||
getDebugState().telemetryLogging = !debugState.telemetryLogging;
|
||||
}}
|
||||
/>
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
import clsx from 'clsx';
|
||||
import { Suspense, useMemo, useRef } from 'react';
|
||||
import { Suspense, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||
import { Navigate, Outlet } from 'react-router-dom';
|
||||
import {
|
||||
ClientContextProvider,
|
||||
LibraryContextProvider,
|
||||
initPlausible,
|
||||
useClientContext,
|
||||
usePlausiblePageViewMonitor
|
||||
usePlausibleEvent,
|
||||
usePlausiblePageViewMonitor,
|
||||
usePlausiblePingMonitor
|
||||
} from '@sd/client';
|
||||
import { useRootContext } from '~/app/RootContext';
|
||||
import { LibraryIdParamsSchema } from '~/app/route-schemas';
|
||||
|
@ -20,6 +22,7 @@ import Toasts from './Toasts';
|
|||
const Layout = () => {
|
||||
const { libraries, library } = useClientContext();
|
||||
const os = useOperatingSystem();
|
||||
const plausibleEvent = usePlausibleEvent();
|
||||
|
||||
const layoutRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
|
@ -30,6 +33,19 @@ const Layout = () => {
|
|||
const { rawPath } = useRootContext();
|
||||
|
||||
usePlausiblePageViewMonitor({ currentPath: rawPath });
|
||||
usePlausiblePingMonitor({ currentPath: rawPath });
|
||||
|
||||
useEffect(() => {
|
||||
const interval = setInterval(() => {
|
||||
plausibleEvent({
|
||||
event: {
|
||||
type: 'ping'
|
||||
}
|
||||
});
|
||||
}, 270 * 1000);
|
||||
|
||||
return () => clearInterval(interval);
|
||||
}, []);
|
||||
|
||||
const ctxValue = useMemo(() => ({ ref: layoutRef }), [layoutRef]);
|
||||
|
||||
|
|
|
@ -4,19 +4,21 @@ import { Heading } from '../Layout';
|
|||
import Setting from '../Setting';
|
||||
|
||||
export const Component = () => {
|
||||
const shareTelemetry = useTelemetryState().shareTelemetry;
|
||||
const fullTelemetry = useTelemetryState().shareFullTelemetry;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Heading title="Privacy" description="" />
|
||||
<Setting
|
||||
mini
|
||||
title="Share Telemetry and Usage Data"
|
||||
description="Share anonymous usage data to help us improve the app."
|
||||
title="Share Additional Telemetry and Usage Data"
|
||||
description="Enable to share extra usage information and telemetry with developers in order to further improve the app.
|
||||
If disabled, the only data sent is that you are an active user, which version of the app and core you're using, and which platform you're on
|
||||
(e.g. mobile, web or desktop)."
|
||||
>
|
||||
<Switch
|
||||
checked={shareTelemetry}
|
||||
onClick={() => (telemetryStore.shareTelemetry = !shareTelemetry)}
|
||||
checked={fullTelemetry}
|
||||
onClick={() => (telemetryStore.shareFullTelemetry = !fullTelemetry)}
|
||||
className="m-2 ml-4"
|
||||
size="md"
|
||||
/>
|
||||
|
|
|
@ -33,16 +33,16 @@ export const useContextValue = () => {
|
|||
|
||||
export const shareTelemetry = RadioGroupField.options([
|
||||
z.literal('share-telemetry'),
|
||||
z.literal('no-telemetry')
|
||||
z.literal('minimal-telemetry')
|
||||
]).details({
|
||||
'share-telemetry': {
|
||||
heading: 'Share anonymous usage',
|
||||
description:
|
||||
'Share completely anonymous telemetry data to help the developers improve the app'
|
||||
},
|
||||
'no-telemetry': {
|
||||
heading: 'Share nothing',
|
||||
description: 'Do not share any telemetry data with the developers'
|
||||
'minimal-telemetry': {
|
||||
heading: 'Share the bare minimum',
|
||||
description: 'Only share that I am an active user of Spacedrive and a few technical bits'
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -74,7 +74,7 @@ const useFormState = () => {
|
|||
|
||||
// opted to place this here as users could change their mind before library creation/onboarding finalization
|
||||
// it feels more fitting to configure it here (once)
|
||||
telemetryStore.shareTelemetry = getOnboardingStore().shareTelemetry;
|
||||
telemetryStore.shareFullTelemetry = getOnboardingStore().shareFullTelemetry;
|
||||
|
||||
try {
|
||||
// show creation screen for a bit for smoothness
|
||||
|
@ -90,7 +90,7 @@ const useFormState = () => {
|
|||
library
|
||||
]);
|
||||
|
||||
if (telemetryStore.shareTelemetry) {
|
||||
if (telemetryStore.shareFullTelemetry) {
|
||||
submitPlausibleEvent({ event: { type: 'libraryCreate' } });
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ export default function OnboardingPrivacy() {
|
|||
<Form
|
||||
form={form}
|
||||
onSubmit={(e) => {
|
||||
getOnboardingStore().shareTelemetry =
|
||||
getOnboardingStore().shareFullTelemetry =
|
||||
form.getValues('shareTelemetry') === 'share-telemetry';
|
||||
return onSubmit(e);
|
||||
}}
|
||||
|
|
|
@ -6,7 +6,7 @@ export interface DebugState {
|
|||
enabled: boolean;
|
||||
rspcLogger: boolean;
|
||||
reactQueryDevtools: 'enabled' | 'disabled' | 'invisible';
|
||||
shareTelemetry: boolean; // used for sending telemetry even if the app is in debug mode, and ONLY if client settings also allow telemetry sharing
|
||||
shareFullTelemetry: boolean; // used for sending telemetry even if the app is in debug mode
|
||||
telemetryLogging: boolean;
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@ const debugState: DebugState = valtioPersist('sd-debugState', {
|
|||
enabled: globalThis.isDev,
|
||||
rspcLogger: false,
|
||||
reactQueryDevtools: globalThis.isDev ? 'invisible' : 'enabled',
|
||||
shareTelemetry: false,
|
||||
shareFullTelemetry: false,
|
||||
telemetryLogging: false
|
||||
});
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ const onboardingStoreDefaults = () => ({
|
|||
newLibraryName: '',
|
||||
unlockedScreens: ['alpha'],
|
||||
lastActiveScreen: null as string | null,
|
||||
shareTelemetry: true,
|
||||
shareFullTelemetry: true,
|
||||
useCases: [] as UseCase[],
|
||||
grantedFullDiskAccess: false
|
||||
});
|
||||
|
|
|
@ -6,7 +6,8 @@ import { PlausiblePlatformType, telemetryStore, useTelemetryState } from './useT
|
|||
/**
|
||||
* This should be in sync with the Core's version.
|
||||
*/
|
||||
const VERSION = '0.1.0';
|
||||
const CORE_VERSION = '0.1.0'; // This will need to be embedded accordingly
|
||||
const APP_VERSION = '0.1.0'; // This is specific to desktop/web/mobile and will need to be embedded accordingly
|
||||
const DOMAIN = 'app.spacedrive.com';
|
||||
const MOBILE_DOMAIN = 'mobile.spacedrive.com';
|
||||
|
||||
|
@ -86,6 +87,8 @@ type TagCreateEvent = BasePlausibleEvent<'tagCreate'>;
|
|||
type TagDeleteEvent = BasePlausibleEvent<'tagDelete'>;
|
||||
type TagAssignEvent = BasePlausibleEvent<'tagAssign'>;
|
||||
|
||||
type PingEvent = BasePlausibleEvent<'ping'>;
|
||||
|
||||
/**
|
||||
* All union of available, ready-to-use events.
|
||||
*
|
||||
|
@ -99,7 +102,8 @@ type PlausibleEvent =
|
|||
| LocationDeleteEvent
|
||||
| TagCreateEvent
|
||||
| TagDeleteEvent
|
||||
| TagAssignEvent;
|
||||
| TagAssignEvent
|
||||
| PingEvent;
|
||||
|
||||
/**
|
||||
* An event information wrapper for internal use only.
|
||||
|
@ -110,7 +114,9 @@ interface PlausibleTrackerEvent {
|
|||
eventName: string;
|
||||
props: {
|
||||
platform: PlausiblePlatformType;
|
||||
version: string;
|
||||
fullTelemetry: boolean;
|
||||
coreVersion: string;
|
||||
appVersion: string;
|
||||
debug: boolean;
|
||||
};
|
||||
options: PlausibleTrackerOptions;
|
||||
|
@ -135,18 +141,18 @@ interface SubmitEventProps {
|
|||
*/
|
||||
screenWidth?: number;
|
||||
/**
|
||||
* Whether or not telemetry sharing is enabled for the current client.
|
||||
* Whether or not full telemetry sharing is enabled for the current client.
|
||||
*
|
||||
* It is **crucial** that this is the direct output of `useTelemetryState().shareTelemetry`,
|
||||
* It is **crucial** that this is the direct output of `useTelemetryState().shareFullTelemetry`,
|
||||
* regardless of other conditions that may affect whether we share it (such as event overrides).
|
||||
*/
|
||||
shareTelemetry: boolean;
|
||||
shareFullTelemetry: boolean;
|
||||
/**
|
||||
* It is **crucial** that this is sourced from the output of `useDebugState()`
|
||||
*/
|
||||
debugState: {
|
||||
enabled: boolean;
|
||||
shareTelemetry: boolean;
|
||||
shareFullTelemetry: boolean;
|
||||
telemetryLogging: boolean;
|
||||
};
|
||||
}
|
||||
|
@ -175,11 +181,11 @@ interface SubmitEventProps {
|
|||
*/
|
||||
const submitPlausibleEvent = async ({ event, debugState, ...props }: SubmitEventProps) => {
|
||||
if (props.platformType === 'unknown') return;
|
||||
if (debugState.enabled && debugState.shareTelemetry !== true) return;
|
||||
// if (debugState.enabled && debugState.shareFullTelemetry !== true) return;
|
||||
if (
|
||||
'plausibleOptions' in event && 'telemetryOverride' in event.plausibleOptions
|
||||
? event.plausibleOptions.telemetryOverride !== true
|
||||
: props.shareTelemetry !== true
|
||||
: props.shareFullTelemetry !== true && event.type !== 'ping'
|
||||
)
|
||||
return;
|
||||
|
||||
|
@ -187,7 +193,9 @@ const submitPlausibleEvent = async ({ event, debugState, ...props }: SubmitEvent
|
|||
eventName: event.type,
|
||||
props: {
|
||||
platform: props.platformType,
|
||||
version: VERSION,
|
||||
fullTelemetry: props.shareFullTelemetry,
|
||||
coreVersion: CORE_VERSION,
|
||||
appVersion: APP_VERSION,
|
||||
debug: debugState.enabled
|
||||
},
|
||||
options: {
|
||||
|
@ -270,7 +278,7 @@ export const usePlausibleEvent = () => {
|
|||
|
||||
submitPlausibleEvent({
|
||||
debugState,
|
||||
shareTelemetry: telemetryState.shareTelemetry,
|
||||
shareFullTelemetry: telemetryState.shareFullTelemetry,
|
||||
platformType: telemetryState.platform,
|
||||
...props
|
||||
});
|
||||
|
@ -279,7 +287,7 @@ export const usePlausibleEvent = () => {
|
|||
);
|
||||
};
|
||||
|
||||
export interface PageViewMonitorProps {
|
||||
export interface PlausibleMonitorProps {
|
||||
/**
|
||||
* This should be sanitized, containing no user-specific information.
|
||||
*
|
||||
|
@ -313,7 +321,7 @@ export interface PageViewMonitorProps {
|
|||
* });
|
||||
* ```
|
||||
*/
|
||||
export const usePlausiblePageViewMonitor = ({ currentPath }: PageViewMonitorProps) => {
|
||||
export const usePlausiblePageViewMonitor = ({ currentPath }: PlausibleMonitorProps) => {
|
||||
const plausibleEvent = usePlausibleEvent();
|
||||
|
||||
useEffect(() => {
|
||||
|
@ -326,6 +334,32 @@ export const usePlausiblePageViewMonitor = ({ currentPath }: PageViewMonitorProp
|
|||
}, [currentPath, plausibleEvent]);
|
||||
};
|
||||
|
||||
/**
|
||||
* A Plausible Analytics `ping` monitoring hook. It watches the router's current
|
||||
* path, and sends events if a change in the path is detected.
|
||||
*
|
||||
* This should be included next to the {@link usePlausiblePageViewMonitor}.
|
||||
*
|
||||
* For desktop/web, we use this hook in the `$libraryId` layout and it covers the
|
||||
* entire app (excluding onboarding, which should not be monitored).
|
||||
*
|
||||
* @remarks
|
||||
* This will submit an 'ping' event, independently of what the currernt telemetry
|
||||
* sharing settings are (minimum or full).
|
||||
*
|
||||
*/
|
||||
export const usePlausiblePingMonitor = ({ currentPath }: PlausibleMonitorProps) => {
|
||||
const plausibleEvent = usePlausibleEvent();
|
||||
|
||||
useEffect(() => {
|
||||
plausibleEvent({
|
||||
event: {
|
||||
type: 'ping'
|
||||
}
|
||||
});
|
||||
}, [currentPath, plausibleEvent]);
|
||||
};
|
||||
|
||||
export const initPlausible = ({ platformType }: { platformType: PlausiblePlatformType }) => {
|
||||
telemetryStore.platform = platformType;
|
||||
return;
|
||||
|
|
|
@ -10,12 +10,12 @@ import { valtioPersist } from '../lib';
|
|||
export type PlausiblePlatformType = 'web' | 'mobile' | 'desktop' | 'unknown';
|
||||
|
||||
type TelemetryState = {
|
||||
shareTelemetry: boolean;
|
||||
shareFullTelemetry: boolean;
|
||||
platform: PlausiblePlatformType;
|
||||
};
|
||||
|
||||
export const telemetryStore = valtioPersist<TelemetryState>('sd-telemetryStore', {
|
||||
shareTelemetry: false, // false by default, so functions cannot accidentally send data if the user has not decided
|
||||
shareFullTelemetry: false, // false by default
|
||||
platform: 'unknown'
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue