diff --git a/Cargo.lock b/Cargo.lock index 2abe05f..f5c194d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,150 +14,108 @@ dependencies = [ [[package]] name = "actix" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be241f88f3b1e7e9a3fbe3b5a8a0f6915b5a1d7ee0d9a248d3376d01068cc60" +checksum = "3720d0064a0ce5c0de7bd93bdb0a6caebab2a9b5668746145d7b3b0c5da02914" dependencies = [ "actix-rt", "actix_derive", "bitflags", - "bytes 0.5.6", + "bytes 1.1.0", "crossbeam-channel", - "derive_more", - "futures-channel", + "futures-core", + "futures-sink", + "futures-task", "futures-util", "log", "once_cell", "parking_lot", - "pin-project 0.4.28", + "pin-project-lite 0.2.7", "smallvec", - "tokio", - "tokio-util", - "trust-dns-proto", - "trust-dns-resolver", + "tokio 1.12.0", + "tokio-util 0.6.8", ] [[package]] name = "actix-codec" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78d1833b3838dbe990df0f1f87baf640cf6146e898166afe401839d1b001e570" +checksum = "1d5dbeb2d9e51344cb83ca7cc170f1217f9fe25bfc50160e6e200b5c31c1019a" dependencies = [ "bitflags", - "bytes 0.5.6", + "bytes 1.1.0", "futures-core", "futures-sink", "log", - "pin-project 0.4.28", - "tokio", - "tokio-util", -] - -[[package]] -name = "actix-connect" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177837a10863f15ba8d3ae3ec12fac1099099529ed20083a27fdfe247381d0dc" -dependencies = [ - "actix-codec", - "actix-rt", - "actix-service", - "actix-utils", - "derive_more", - "either", - "futures-util", - "http", - "log", - "trust-dns-proto", - "trust-dns-resolver", + "pin-project-lite 0.2.7", + "tokio 1.12.0", + "tokio-util 0.6.8", ] [[package]] name = "actix-cors" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36b133d8026a9f209a9aeeeacd028e7451bcca975f592881b305d37983f303d7" -dependencies = [ - "actix-web", - "derive_more", - "futures-util", - "log", - "once_cell", - "tinyvec", -] - -[[package]] -name = "actix-files" -version = "0.5.0" +version = "0.6.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51e8a9146c12fce92a6e4c24b8c4d9b05268130bfd8d61bc587e822c32ce689" +checksum = "01552b8facccd5d7a4cc5d8e2b07d306160c97a4968181c2db965533389c8725" dependencies = [ "actix-service", "actix-web", - "bitflags", - "bytes 0.5.6", "derive_more", - "futures-core", "futures-util", "log", - "mime", - "mime_guess", - "percent-encoding", - "v_htmlescape", + "once_cell", + "smallvec", ] [[package]] name = "actix-http" -version = "2.2.1" +version = "3.0.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cb8958da437716f3f31b0e76f8daf36554128517d7df37ceba7df00f09622ee" +checksum = "dd38a862fa7fead2b47ee55e550982aba583ebc7365ccf0155b49934ad6f16f9" dependencies = [ "actix-codec", - "actix-connect", "actix-rt", "actix-service", - "actix-threadpool", + "actix-tls", "actix-utils", + "ahash", "base64 0.13.0", "bitflags", "brotli2", - "bytes 0.5.6", - "cookie", - "copyless", + "bytes 1.1.0", + "bytestring", "derive_more", - "either", "encoding_rs", "flate2", - "futures-channel", "futures-core", "futures-util", - "fxhash", - "h2", + "h2 0.3.6", "http", "httparse", - "indexmap", "itoa", "language-tags", - "lazy_static", + "local-channel", "log", "mime", + "once_cell", "percent-encoding", - "pin-project 1.0.8", - "rand 0.7.3", + "pin-project", + "pin-project-lite 0.2.7", + "rand 0.8.4", "regex", "serde 1.0.130", - "serde_json", - "serde_urlencoded", "sha-1", - "slab", + "smallvec", "time 0.2.27", + "tokio 1.12.0", + "zstd", ] [[package]] name = "actix-macros" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ca8ce00b267af8ccebbd647de0d61e0674b6e61185cc7a592ff88772bed655" +checksum = "c2f86cd6857c135e6e9fe57b1619a88d1f94a7df34c00e11fe13e64fd3438837" dependencies = [ "quote", "syn", @@ -165,11 +123,12 @@ dependencies = [ [[package]] name = "actix-router" -version = "0.2.7" +version = "0.5.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad299af73649e1fc893e333ccf86f377751eb95ff875d095131574c6f43452c" +checksum = "36b95ce0d76d1aa2f98b681702807475ade0f99bd4552546a6843a966d42ea3d" dependencies = [ "bytestring", + "firestorm", "http", "log", "regex", @@ -178,115 +137,75 @@ dependencies = [ [[package]] name = "actix-rt" -version = "1.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227" +checksum = "bc7d7cd957c9ed92288a7c3c96af81fa5291f65247a76a34dac7b6af74e52ba0" dependencies = [ "actix-macros", - "actix-threadpool", - "copyless", - "futures-channel", - "futures-util", - "smallvec", - "tokio", + "futures-core", + "tokio 1.12.0", ] [[package]] name = "actix-server" -version = "1.0.4" +version = "2.0.0-beta.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45407e6e672ca24784baa667c5d32ef109ccdd8d5e0b5ebb9ef8a67f4dfb708e" +checksum = "26369215fcc3b0176018b3b68756a8bcc275bb000e6212e454944913a1f9bf87" dependencies = [ - "actix-codec", "actix-rt", "actix-service", "actix-utils", - "futures-channel", - "futures-util", + "futures-core", "log", - "mio", - "mio-uds", + "mio 0.7.13", "num_cpus", "slab", - "socket2", + "tokio 1.12.0", ] [[package]] name = "actix-service" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb" -dependencies = [ - "futures-util", - "pin-project 0.4.28", -] - -[[package]] -name = "actix-testing" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c" -dependencies = [ - "actix-macros", - "actix-rt", - "actix-server", - "actix-service", - "log", - "socket2", -] - -[[package]] -name = "actix-threadpool" -version = "0.3.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30" +checksum = "77f5f9d66a8730d0fae62c26f3424f5751e5518086628a40b7ab6fca4a705034" dependencies = [ - "derive_more", - "futures-channel", - "lazy_static", - "log", - "num_cpus", - "parking_lot", - "threadpool", + "futures-core", + "paste", + "pin-project-lite 0.2.7", ] [[package]] name = "actix-tls" -version = "2.0.0" +version = "3.0.0-beta.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24789b7d7361cf5503a504ebe1c10806896f61e96eca9a7350e23001aca715fb" +checksum = "65b7bb60840962ef0332f7ea01a57d73a24d2cb663708511ff800250bbfef569" dependencies = [ "actix-codec", + "actix-rt", "actix-service", "actix-utils", - "futures-util", + "derive_more", + "futures-core", + "http", + "log", + "tokio-util 0.6.8", ] [[package]] name = "actix-utils" -version = "2.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9022dec56632d1d7979e59af14f0597a28a830a9c1c7fec8b2327eb9f16b5a" +checksum = "e491cbaac2e7fc788dfff99ff48ef317e23b3cf63dbaf7aaab6418f40f92aa94" dependencies = [ - "actix-codec", - "actix-rt", - "actix-service", - "bitflags", - "bytes 0.5.6", - "either", - "futures-channel", - "futures-sink", - "futures-util", - "log", - "pin-project 0.4.28", - "slab", + "local-waker", + "pin-project-lite 0.2.7", ] [[package]] name = "actix-web" -version = "3.3.2" +version = "4.0.0-beta.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e641d4a172e7faa0862241a20ff4f1f5ab0ab7c279f00c2d4587b77483477b86" +checksum = "d34aa2b23ec9c7c9a799b3cf9258f67c91b18ac3f0f5f484e175c7ac46739bb5" dependencies = [ "actix-codec", "actix-http", @@ -295,38 +214,41 @@ dependencies = [ "actix-rt", "actix-server", "actix-service", - "actix-testing", - "actix-threadpool", - "actix-tls", "actix-utils", "actix-web-codegen", - "awc", - "bytes 0.5.6", + "ahash", + "bytes 1.1.0", + "cfg-if 1.0.0", + "cookie", "derive_more", + "either", "encoding_rs", - "futures-channel", "futures-core", "futures-util", - "fxhash", + "itoa", + "language-tags", "log", "mime", - "pin-project 1.0.8", + "once_cell", + "paste", + "pin-project", "regex", "serde 1.0.130", "serde_json", "serde_urlencoded", - "socket2", + "smallvec", + "socket2 0.4.2", "time 0.2.27", - "tinyvec", "url", ] [[package]] name = "actix-web-codegen" -version = "0.4.0" +version = "0.5.0-beta.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb" +checksum = "4a11fd6f322120a74b23327e778ef0a4950b1f44a2b76468a69316a150f5c6dd" dependencies = [ + "actix-router", "proc-macro2", "quote", "syn", @@ -334,10 +256,11 @@ dependencies = [ [[package]] name = "actix-web-httpauth" -version = "0.5.1" +version = "0.6.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3b11a07a3df3f7970fd8bd38cc66998b5549f507c54cc64c6e843bc82d6358" +checksum = "264d0eb4698d59493cafc96554c3919837115f8c4e9040a3790c2b55400ff758" dependencies = [ + "actix-service", "actix-web", "base64 0.13.0", "futures-util", @@ -345,9 +268,9 @@ dependencies = [ [[package]] name = "actix_derive" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95aceadaf327f18f0df5962fedc1bde2f870566a0b9f65c89508a3b1f79334c" +checksum = "6d44b8fee1ced9671ba043476deddef739dd0959bf77030b26b738cc591737a7" dependencies = [ "proc-macro2", "quote", @@ -369,6 +292,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "ahash" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" +dependencies = [ + "getrandom 0.2.3", + "once_cell", + "version_check 0.9.3", +] + [[package]] name = "aho-corasick" version = "0.7.18" @@ -424,30 +358,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" -[[package]] -name = "awc" -version = "2.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b381e490e7b0cfc37ebc54079b0413d8093ef43d14a4e4747083f7fa47a9e691" -dependencies = [ - "actix-codec", - "actix-http", - "actix-rt", - "actix-service", - "base64 0.13.0", - "bytes 0.5.6", - "cfg-if 1.0.0", - "derive_more", - "futures-core", - "log", - "mime", - "percent-encoding", - "rand 0.7.3", - "serde 1.0.130", - "serde_json", - "serde_urlencoded", -] - [[package]] name = "backtrace" version = "0.3.61" @@ -588,22 +498,13 @@ dependencies = [ "chrono", "hex", "lazy_static", - "linked-hash-map 0.5.4", + "linked-hash-map", "rand 0.7.3", "serde 1.0.130", "serde_json", "uuid 0.8.2", ] -[[package]] -name = "buf-min" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa17aa1cf56bdd6bb30518767d00e58019d326f3f05d8c3e0730b549d332ea83" -dependencies = [ - "bytes 0.5.6", -] - [[package]] name = "bufstream" version = "0.1.4" @@ -612,9 +513,9 @@ checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8" [[package]] name = "bumpalo" -version = "3.7.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" +checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" [[package]] name = "byteorder" @@ -651,9 +552,12 @@ checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad" [[package]] name = "cc" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0" +checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd" +dependencies = [ + "jobserver", +] [[package]] name = "cfg-if" @@ -701,9 +605,9 @@ dependencies = [ [[package]] name = "config" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3" +checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" dependencies = [ "lazy_static", "nom 5.1.2", @@ -729,21 +633,15 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "cookie" -version = "0.14.4" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" +checksum = "d5f1c7727e460397e56abc4bddc1d49e07a1ad78fc98eb2e1c8f032a58a2f80d" dependencies = [ "percent-encoding", "time 0.2.27", "version_check 0.9.3", ] -[[package]] -name = "copyless" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" - [[package]] name = "core-foundation" version = "0.9.1" @@ -780,22 +678,21 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.4.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" +checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ + "cfg-if 1.0.0", "crossbeam-utils", - "maybe-uninit", ] [[package]] name = "crossbeam-utils" -version = "0.7.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "autocfg 1.0.1", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "lazy_static", ] @@ -1066,11 +963,17 @@ dependencies = [ "ascii_utils", ] +[[package]] +name = "firestorm" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31586bda1b136406162e381a3185a506cdfc1631708dd40cba2f6628d8634499" + [[package]] name = "flate2" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80edafed416a46fb378521624fab1cfa2eb514784fd8921adbe8a8d8321da811" +checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" dependencies = [ "cfg-if 1.0.0", "crc32fast", @@ -1235,15 +1138,6 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" version = "0.14.4" @@ -1296,12 +1190,31 @@ dependencies = [ "http", "indexmap", "slab", - "tokio", - "tokio-util", + "tokio 0.2.25", + "tokio-util 0.3.1", "tracing", "tracing-futures", ] +[[package]] +name = "h2" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c06815895acec637cd6ed6e9662c935b866d20a106f8361892893a7d9234964" +dependencies = [ + "bytes 1.1.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio 1.12.0", + "tokio-util 0.6.8", + "tracing", +] + [[package]] name = "hashbrown" version = "0.11.2" @@ -1379,9 +1292,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" dependencies = [ "bytes 1.1.0", "fnv", @@ -1398,6 +1311,17 @@ dependencies = [ "http", ] +[[package]] +name = "http-body" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5" +dependencies = [ + "bytes 1.1.0", + "http", + "pin-project-lite 0.2.7", +] + [[package]] name = "httparse" version = "1.5.1" @@ -1410,6 +1334,12 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" +[[package]] +name = "httpdate" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440" + [[package]] name = "humantime" version = "1.3.0" @@ -1429,15 +1359,39 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", + "h2 0.2.7", "http", - "http-body", + "http-body 0.3.1", "httparse", - "httpdate", + "httpdate 0.3.2", "itoa", - "pin-project 1.0.8", - "socket2", - "tokio", + "pin-project", + "socket2 0.3.19", + "tokio 0.2.25", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "0.14.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593" +dependencies = [ + "bytes 1.1.0", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.6", + "http", + "http-body 0.4.3", + "httparse", + "httpdate 1.0.1", + "itoa", + "pin-project-lite 0.2.7", + "socket2 0.4.2", + "tokio 1.12.0", "tower-service", "tracing", "want", @@ -1451,25 +1405,25 @@ checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6" dependencies = [ "bytes 0.5.6", "futures-util", - "hyper", + "hyper 0.13.10", "log", "rustls 0.18.1", - "tokio", + "tokio 0.2.25", "tokio-rustls 0.14.1", "webpki", ] [[package]] name = "hyper-tls" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 0.5.6", - "hyper", + "bytes 1.1.0", + "hyper 0.14.13", "native-tls", - "tokio", - "tokio-tls", + "tokio 1.12.0", + "tokio-native-tls", ] [[package]] @@ -1507,9 +1461,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" +checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd" dependencies = [ "cfg-if 1.0.0", ] @@ -1529,7 +1483,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" dependencies = [ - "socket2", + "socket2 0.3.19", "widestring", "winapi 0.3.9", "winreg 0.6.2", @@ -1556,11 +1510,20 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" +[[package]] +name = "jobserver" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" -version = "0.3.54" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1866b355d9c878e5e607473cbe3f63282c0b7aad2db1dbebf55076c686918254" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" dependencies = [ "wasm-bindgen", ] @@ -1591,9 +1554,9 @@ dependencies = [ [[package]] name = "language-tags" -version = "0.2.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" +checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" [[package]] name = "lazy_static" @@ -1648,19 +1611,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21" - -[[package]] -name = "linked-hash-map" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d262045c5b87c0861b3f004610afd0e2c851e2908d08b6c870cbb9d5f494ecd" -dependencies = [ - "serde 0.8.23", - "serde_test", -] +checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" [[package]] name = "linked-hash-map" @@ -1675,7 +1628,6 @@ dependencies = [ "Inflector", "actix", "actix-cors", - "actix-files", "actix-web", "actix-web-httpauth", "async-trait", @@ -1693,7 +1645,7 @@ dependencies = [ "maud", "pretty_env_logger", "rand 0.8.4", - "reqwest", + "reqwest 0.11.5", "select", "serde 1.0.130", "serde_derive", @@ -1708,6 +1660,24 @@ dependencies = [ "wither", ] +[[package]] +name = "local-channel" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6246c68cf195087205a0512559c97e15eaf95198bf0e206d662092cdcb03fe9f" +dependencies = [ + "futures-core", + "futures-sink", + "futures-util", + "local-waker", +] + +[[package]] +name = "local-waker" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f9a2d3e27ce99ce2c3aad0b09b1a7b916293ea9b2bf624c13fe646fadd8da4" + [[package]] name = "lock_api" version = "0.4.5" @@ -1732,7 +1702,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" dependencies = [ - "linked-hash-map 0.5.4", + "linked-hash-map", ] [[package]] @@ -1781,9 +1751,9 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "maud" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0784808b0c06f80365c1071048df9b6414a83fc56b8d4b305859e39f5162fa" +checksum = "59d449907de7d1ae5b290cbaf9ea34a8a7df3fa5db027664bb55bb2b0fc1407c" dependencies = [ "maud_htmlescape", "maud_macros", @@ -1791,15 +1761,15 @@ dependencies = [ [[package]] name = "maud_htmlescape" -version = "0.17.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0fb85bccffc42302ad1e1ed8679f6a39d1317f775a37fbc3f79bdfbe054bfb7" +checksum = "0555daa37f94b5ebb206faf8cdc7b260c2aa371b509e929de9a1e37416d97fa6" [[package]] name = "maud_macros" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73a00158abd4671407a3d8bd2c8577e9c7dc8d0b8a8e5523bdaba7d486655b1e" +checksum = "e6896f8e8cdcea80b99ac0f1f7a233708e640737a8517448f50500e401bb8d76" dependencies = [ "maud_htmlescape", "proc-macro-error", @@ -1808,12 +1778,6 @@ dependencies = [ "syn", ] -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "md-5" version = "0.9.1" @@ -1870,21 +1834,23 @@ dependencies = [ "kernel32-sys", "libc", "log", - "miow", + "miow 0.2.2", "net2", "slab", "winapi 0.2.8", ] [[package]] -name = "mio-uds" -version = "0.6.8" +name = "mio" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16" dependencies = [ - "iovec", "libc", - "mio", + "log", + "miow 0.3.7", + "ntapi", + "winapi 0.3.9", ] [[package]] @@ -1899,6 +1865,15 @@ dependencies = [ "ws2_32-sys", ] +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "mongodb" version = "1.2.3" @@ -1921,19 +1896,19 @@ dependencies = [ "pbkdf2", "percent-encoding", "rand 0.7.3", - "reqwest", + "reqwest 0.10.10", "rustls 0.17.0", "serde 1.0.130", "serde_bytes", "serde_with", "sha-1", "sha2", - "socket2", + "socket2 0.3.19", "stringprep", "strsim 0.10.0", "take_mut", "time 0.1.44", - "tokio", + "tokio 0.2.25", "tokio-rustls 0.13.1", "trust-dns-proto", "trust-dns-resolver", @@ -2000,6 +1975,15 @@ dependencies = [ "version_check 0.9.3", ] +[[package]] +name = "ntapi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "num-bigint" version = "0.2.6" @@ -2092,9 +2076,9 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.66" +version = "0.9.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82" +checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058" dependencies = [ "autocfg 1.0.1", "cc", @@ -2138,6 +2122,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "paste" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" + [[package]] name = "pbkdf2" version = "0.8.0" @@ -2211,33 +2201,13 @@ dependencies = [ "siphasher", ] -[[package]] -name = "pin-project" -version = "0.4.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f" -dependencies = [ - "pin-project-internal 0.4.28", -] - [[package]] name = "pin-project" version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08" dependencies = [ - "pin-project-internal 1.0.8", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "pin-project-internal", ] [[package]] @@ -2271,9 +2241,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" [[package]] name = "ppv-lite86" @@ -2350,9 +2320,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" dependencies = [ "proc-macro2", ] @@ -2623,26 +2593,23 @@ dependencies = [ "futures-core", "futures-util", "http", - "http-body", - "hyper", + "http-body 0.3.1", + "hyper 0.13.10", "hyper-rustls", - "hyper-tls", "ipnet", "js-sys", "lazy_static", "log", "mime", "mime_guess", - "native-tls", "percent-encoding", "pin-project-lite 0.2.7", "rustls 0.18.1", "serde 1.0.130", "serde_json", "serde_urlencoded", - "tokio", + "tokio 0.2.25", "tokio-rustls 0.14.1", - "tokio-tls", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -2651,6 +2618,41 @@ dependencies = [ "winreg 0.7.0", ] +[[package]] +name = "reqwest" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51c732d463dd300362ffb44b7b125f299c23d2990411a4253824630ebc7467fb" +dependencies = [ + "base64 0.13.0", + "bytes 1.1.0", + "encoding_rs", + "futures-core", + "futures-util", + "http", + "http-body 0.4.3", + "hyper 0.14.13", + "hyper-tls", + "ipnet", + "js-sys", + "lazy_static", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite 0.2.7", + "serde 1.0.130", + "serde_json", + "serde_urlencoded", + "tokio 1.12.0", + "tokio-native-tls", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.7.0", +] + [[package]] name = "resolv-conf" version = "0.7.0" @@ -2865,7 +2867,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" dependencies = [ "lazy_static", - "linked-hash-map 0.3.0", "num-traits 0.1.43", "regex", "serde 0.8.23", @@ -2893,9 +2894,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.67" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f9e390c27c3c0ce8bc5d725f6e4d30a29d26659494aa4b17535f7522c5c950" +checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" dependencies = [ "indexmap", "itoa", @@ -2905,24 +2906,15 @@ dependencies = [ [[package]] name = "serde_qs" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a72808528a89fa9eca23bbb6a1eb92cb639b881357269b6510f11e50c0f8a9" +checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" dependencies = [ "percent-encoding", "serde 1.0.130", "thiserror", ] -[[package]] -name = "serde_test" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5" -dependencies = [ - "serde 0.8.23", -] - [[package]] name = "serde_urlencoded" version = "0.7.0" @@ -3033,9 +3025,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" +checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" [[package]] name = "socket2" @@ -3048,6 +3040,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "socket2" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "spin" version = "0.5.2" @@ -3194,9 +3196,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.76" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" +checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194" dependencies = [ "proc-macro2", "quote", @@ -3275,15 +3277,6 @@ dependencies = [ "syn", ] -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - [[package]] name = "time" version = "0.1.44" @@ -3335,9 +3328,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" +checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" dependencies = [ "tinyvec_macros", ] @@ -3359,15 +3352,29 @@ dependencies = [ "futures-core", "iovec", "lazy_static", - "libc", "memchr", - "mio", - "mio-uds", + "mio 0.6.23", "num_cpus", "pin-project-lite 0.1.12", - "signal-hook-registry", "slab", "tokio-macros", +] + +[[package]] +name = "tokio" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" +dependencies = [ + "autocfg 1.0.1", + "bytes 1.1.0", + "libc", + "memchr", + "mio 0.7.13", + "once_cell", + "parking_lot", + "pin-project-lite 0.2.7", + "signal-hook-registry", "winapi 0.3.9", ] @@ -3382,6 +3389,16 @@ dependencies = [ "syn", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio 1.12.0", +] + [[package]] name = "tokio-rustls" version = "0.13.1" @@ -3390,7 +3407,7 @@ checksum = "15cb62a0d2770787abc96e99c1cd98fcf17f94959f3af63ca85bdfb203f051b4" dependencies = [ "futures-core", "rustls 0.17.0", - "tokio", + "tokio 0.2.25", "webpki", ] @@ -3402,33 +3419,36 @@ checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" dependencies = [ "futures-core", "rustls 0.18.1", - "tokio", + "tokio 0.2.25", "webpki", ] [[package]] -name = "tokio-tls" +name = "tokio-util" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" +checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" dependencies = [ - "native-tls", - "tokio", + "bytes 0.5.6", + "futures-core", + "futures-sink", + "log", + "pin-project-lite 0.1.12", + "tokio 0.2.25", ] [[package]] name = "tokio-util" -version = "0.3.1" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +checksum = "08d3725d3efa29485e87311c5b699de63cde14b00ed4d256b8318aa30ca452cd" dependencies = [ - "bytes 0.5.6", + "bytes 1.1.0", "futures-core", - "futures-io", "futures-sink", "log", - "pin-project-lite 0.1.12", - "tokio", + "pin-project-lite 0.2.7", + "tokio 1.12.0", ] [[package]] @@ -3448,9 +3468,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.26" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ "cfg-if 1.0.0", "log", @@ -3460,9 +3480,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" dependencies = [ "lazy_static", ] @@ -3473,7 +3493,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.8", + "pin-project", "tracing", ] @@ -3494,7 +3514,7 @@ dependencies = [ "rand 0.7.3", "smallvec", "thiserror", - "tokio", + "tokio 0.2.25", "url", ] @@ -3513,7 +3533,7 @@ dependencies = [ "resolv-conf", "smallvec", "thiserror", - "tokio", + "tokio 0.2.25", "trust-dns-proto", ] @@ -3557,9 +3577,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" [[package]] name = "unicode-normalization" @@ -3624,38 +3644,6 @@ dependencies = [ "getrandom 0.2.3", ] -[[package]] -name = "v_escape" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e0ab5fab1db278a9413d2ea794cb66f471f898c5b020c3c394f6447625d9d4" -dependencies = [ - "buf-min", - "v_escape_derive", -] - -[[package]] -name = "v_escape_derive" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c860ad1273f4eee7006cee05db20c9e60e5d24cba024a32e1094aa8e574f3668" -dependencies = [ - "nom 4.2.3", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "v_htmlescape" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f9a8af610ad6f7fc9989c9d2590d9764bc61f294884e9ee93baa58795174572" -dependencies = [ - "cfg-if 1.0.0", - "v_escape", -] - [[package]] name = "validator" version = "0.12.0" @@ -3737,9 +3725,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e68338db6becec24d3c7977b5bf8a48be992c934b5d07177e3931f5dc9b076c" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if 1.0.0", "serde 1.0.130", @@ -3749,9 +3737,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34c405b4f0658583dba0c1c7c9b694f3cac32655db463b56c254a1c75269523" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", @@ -3764,9 +3752,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a87d738d4abc4cf22f6eb142f5b9a81301331ee3c767f2fef2fda4e325492060" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -3776,9 +3764,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d5a6580be83b19dc570a8f9c324251687ab2184e57086f71625feb57ec77c8" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3786,9 +3774,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3775a030dc6f5a0afd8a84981a21cc92a781eb429acef9ecce476d0c9113e92" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote", @@ -3799,15 +3787,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c279e376c7a8e8752a8f1eaa35b7b0bee6bb9fb0cdacfa97cc3f1f289c87e2b4" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "web-sys" -version = "0.3.54" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a84d70d1ec7d2da2d26a5bd78f4bca1b8c3254805363ce743b7a05bc30d195a" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" dependencies = [ "js-sys", "wasm-bindgen", @@ -3977,5 +3965,34 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" dependencies = [ - "linked-hash-map 0.5.4", + "linked-hash-map", +] + +[[package]] +name = "zstd" +version = "0.7.0+zstd.1.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9428752481d8372e15b1bf779ea518a179ad6c771cca2d2c60e4fbff3cc2cd52" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "3.1.0+zstd.1.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa1926623ad7fe406e090555387daf73db555b948134b4d73eac5eb08fb666d" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "1.5.0+zstd.1.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e6c094340240369025fc6b731b054ee2a834328fa584310ac96aa4baebdc465" +dependencies = [ + "cc", + "libc", ] diff --git a/api/Cargo.toml b/api/Cargo.toml index 2b9a711..8fdfbc1 100644 --- a/api/Cargo.toml +++ b/api/Cargo.toml @@ -5,22 +5,21 @@ authors = ["ndelvalle "] edition = "2018" [dependencies] -config = "0.10.1" +config = "0.11.0" log = "0.4.14" pretty_env_logger = "0.4.0" serde = { version = "1.0.124", features = ["derive"] } serde_json = "1.0.64" serde_derive = "1.0.116" -actix-web = "3.1.0" -actix-cors = "0.5.0" +actix-web = "4.0.0-beta.9" +actix-cors = "0.6.0-beta.2" +actix-web-httpauth = "0.6.0-beta.2" wither = "0.9.0" thiserror = "1.0.24" chrono = { version = "0.4.19", features = ["serde"] } futures-util = "0.3.13" -actix-files = "0.5.0" -actix-web-httpauth = "0.5.0" # Do not update until actix web runs on tokio v1 -reqwest = { version = "0.10.10", features = ["json"] } +reqwest = { version = "0.11.5", features = ["json"] } jsonwebtoken = "7.2.0" bcrypt = "0.9.0" lettre = "0.9" @@ -38,7 +37,7 @@ serde_qs = "0.8.3" strum = { version = "0.20.0", features = ["derive"] } serde_with = "1.7.0" # Do not update until actix web runs on tokio v1 -actix = "0.10.0" +actix = "0.12.0" async-trait = "0.1.48" [dev-dependencies.cargo-husky] diff --git a/api/src/errors.rs b/api/src/errors.rs index a8d860a..6149b9c 100644 --- a/api/src/errors.rs +++ b/api/src/errors.rs @@ -1,10 +1,12 @@ -use actix_web::dev::HttpResponseBuilder; use actix_web::error::BlockingError; use actix_web::http::StatusCode; use actix_web::HttpResponse; +use actix_web::HttpResponseBuilder; +use bcrypt::BcryptError; use lettre_email::error::Error as LettreEmailError; use reqwest::Error as ReqwestError; use serde_json::json; +use serde_qs::Error as SerdeQsError; use wither::bson; use wither::mongodb::error::CommandError as MongoCommandError; use wither::mongodb::error::Error as MongoError; @@ -41,13 +43,13 @@ pub enum Error { GoogleAuthentication {}, #[error("{0}")] - HashPassword(#[from] BlockingError), + HashPassword(#[from] BcryptError), #[error("Failed to parse URL")] ParseURL(), #[error("Failed to parse query string {0}")] - ParseQueryString(#[from] serde_qs::Error), + ParseQueryString(#[from] SerdeQsError), #[error("RSS Integration error: {0}")] RSSIntegration(String), @@ -60,6 +62,9 @@ pub enum Error { #[error("{0}")] Reqwest(#[from] ReqwestError), + + #[error("{0}")] + BlockingError(#[from] BlockingError), } impl Error { @@ -94,6 +99,7 @@ impl Error { Error::SendEmail(_) => (StatusCode::INTERNAL_SERVER_ERROR, 5007), Error::BuildEmail(_) => (StatusCode::INTERNAL_SERVER_ERROR, 5008), Error::SerializeMongoResponse(_) => (StatusCode::INTERNAL_SERVER_ERROR, 5009), + Error::BlockingError(_) => (StatusCode::INTERNAL_SERVER_ERROR, 5010), } } } diff --git a/api/src/lib/util.rs b/api/src/lib/util.rs index 5e504d8..62ecdbb 100644 --- a/api/src/lib/util.rs +++ b/api/src/lib/util.rs @@ -1,4 +1,3 @@ -use actix_web::http::header::IntoHeaderValue; use actix_web::{http, HttpResponse}; use itertools::Itertools; use rand::Rng; @@ -11,12 +10,15 @@ use crate::errors::Error; type Response = actix_web::Result; -pub fn redirect_to(url: T) -> Response { +// TODO: Validate that the given URL is a valid URL. +pub fn redirect_to(url: T) -> Response +where + T: AsRef, +{ Ok( HttpResponse::Found() - .header(http::header::LOCATION, url) - .finish() - .into_body(), + .append_header((http::header::LOCATION, url.as_ref())) + .finish(), ) } @@ -41,8 +43,8 @@ pub fn to_object_id(id: String) -> Result { pub fn parse_url(url: &str) -> Result { let mut url = url.to_owned(); + // Removes the URL trailing slashes while url.ends_with('/') { - // Removes the URL trailing slashes url.pop(); } diff --git a/api/src/mailer.rs b/api/src/mailer.rs index 01f8c93..94cb1f2 100644 --- a/api/src/mailer.rs +++ b/api/src/mailer.rs @@ -11,14 +11,14 @@ use crate::settings::Settings; #[derive(thiserror::Error, Debug)] #[error("...")] pub enum MailerError { - #[error("Failed to acquire mailer transport mutex")] + #[error("Failed to send email: Could not acquire transport mutex")] LockTransport, - #[error("Failed to send email using SMTP transport {0}")] + #[error("Failed to send email: SMTP transport error {0}")] Smtp(#[from] SmtpError), - #[error("Failed to send email actix_web::web::block operation was cancelled")] - Canceled, + #[error("Failed to send email: Blocking error {0}")] + BlockingError(#[from] BlockingError), } #[derive(Clone)] @@ -51,14 +51,13 @@ impl Mailer { .send(email.into()) .map_err(MailerError::Smtp)?; - Ok(()) + Ok::<(), MailerError>(()) }) .await; match sent { Ok(_) => Ok(()), - Err(BlockingError::Canceled) => Err(Error::SendEmail(MailerError::Canceled)), - Err(BlockingError::Error(err)) => Err(Error::SendEmail(err)), + Err(err) => Err(Error::SendEmail(MailerError::BlockingError(err))), } } } diff --git a/api/src/main.rs b/api/src/main.rs index 514e971..ac7d209 100644 --- a/api/src/main.rs +++ b/api/src/main.rs @@ -75,9 +75,9 @@ async fn main() { HttpServer::new(move || { App::new() + .wrap(Cors::permissive()) .wrap(middleware::Compress::default()) .wrap(middleware::Logger::default()) - .wrap(Cors::permissive()) .app_data(web::Data::new(settings.clone())) .app_data(context.clone()) .configure(routes::user::create_router) diff --git a/api/src/models/list/model.rs b/api/src/models/list/model.rs index a3f37c2..ae63721 100644 --- a/api/src/models/list/model.rs +++ b/api/src/models/list/model.rs @@ -223,6 +223,7 @@ impl Model { self.like.count(doc! { "list": list_id }).await } + // TODO: Make this function reactive based on what we have on the database. pub async fn update_last_activity_at(&self, list_id: &ObjectId) -> Result<(), Error> { let update = doc! { "$set": { diff --git a/api/src/models/user/mod.rs b/api/src/models/user/mod.rs index 443999d..f80d264 100644 --- a/api/src/models/user/mod.rs +++ b/api/src/models/user/mod.rs @@ -76,9 +76,9 @@ impl User { // } pub async fn hash_password(password: String) -> Result { - let hash = to_future(move || bcrypt::hash(password, bcrypt::DEFAULT_COST)); + let hash = to_future(move || bcrypt::hash(password, bcrypt::DEFAULT_COST)).await?; - match hash.await { + match hash { Ok(hash) => Ok(hash), Err(err) => Err(Error::HashPassword(err)), } diff --git a/api/src/routes/integration.rs b/api/src/routes/integration.rs index 5572cba..88d7e41 100644 --- a/api/src/routes/integration.rs +++ b/api/src/routes/integration.rs @@ -184,7 +184,7 @@ async fn create_rss_integration(ctx: Ctx, body: RSSCreateBody, user_id: UserID) "Failed to update last activity for list {}. Error {}", &list_id, err ) - })?; + }); debug!("Returning integration and 200 status code"); let integration: PrivateIntegration = integration.into(); @@ -277,7 +277,7 @@ async fn create_subscription_integration( "Failed to update last activity for list {}. Error {}", &follower_list_id, err ) - })?; + }); debug!("Returning integration and 200 status code"); let integration: PrivateIntegration = integration.into(); @@ -320,7 +320,7 @@ async fn remove_integration(ctx: Ctx, id: ID, user_id: UserID) -> Response { "Failed to update last activity for list {}. Error {}", &integration.list, err ) - })?; + }); debug!("Integration removed, returning 204 status code"); let res = HttpResponse::NoContent().finish(); diff --git a/api/src/routes/list.rs b/api/src/routes/list.rs index eefb8e6..470ed38 100644 --- a/api/src/routes/list.rs +++ b/api/src/routes/list.rs @@ -169,7 +169,7 @@ async fn update_list(ctx: web::Data, id: ID, body: web::Json, id: ID, user: UserID) -> Response id: list_id.clone(), title: list.title.clone(), }) - .map_err(|err| error!("Failed to send message to subscription actor, {}", err))?; + .map_err(|err| error!("Failed to send message to subscription actor, {}", err)); debug!("List removed, returning 204 status code"); let res = HttpResponse::NoContent().finish(); diff --git a/api/src/routes/resource.rs b/api/src/routes/resource.rs index 0dcd9cd..1a5450b 100644 --- a/api/src/routes/resource.rs +++ b/api/src/routes/resource.rs @@ -286,7 +286,7 @@ async fn create_resource(ctx: Ctx, body: ResourceCreateBody, user_id: UserID) -> .try_send(subscription::on_resource_created::ResourceCreated { resource_id: resource_id.clone(), }) - .map_err(|err| error!("Failed to send message to subscription actor, {}", err))?; + .map_err(|err| error!("Failed to send message to subscription actor, {}", err)); ctx .actors @@ -294,7 +294,7 @@ async fn create_resource(ctx: Ctx, body: ResourceCreateBody, user_id: UserID) -> .try_send(EnreachResourceMessage { resource_id: resource_id.clone(), }) - .map_err(|err| error!("Failed to send message to resource actor, {}", err))?; + .map_err(|err| error!("Failed to send message to resource actor, {}", err)); ctx .models @@ -306,7 +306,7 @@ async fn create_resource(ctx: Ctx, body: ResourceCreateBody, user_id: UserID) -> "Failed to update last activity for list {}. Error {}", &resource.list, err ) - })?; + }); debug!("Returning created resource"); let resource: PrivateResource = resource.into(); @@ -389,7 +389,7 @@ async fn remove_resource(ctx: Ctx, id: ID, user_id: UserID) -> Response { "Failed to update last activity for list {}. Error {}", &resource.list, err ) - })?; + }); debug!("Resource removed, returning 204 status code"); let res = HttpResponse::NoContent().finish(); diff --git a/config/default.json b/config/default.json index fc8214e..4d07bcc 100644 --- a/config/default.json +++ b/config/default.json @@ -37,5 +37,9 @@ "sendgrid": { "token": "" + }, + + "traer": { + "token": "" } }