From 6cfe5ec9df085c8e576a9bfc7520af6b518f01cf Mon Sep 17 00:00:00 2001 From: jrconlin Date: Tue, 13 Dec 2022 10:41:25 -0800 Subject: [PATCH 1/9] Update: modernize to rust 1.65 * use workspace cargo dependencies to ensure crate/meta consistency * update libraries and calls * include `-A dead_code` to clippy to get around `future_state_machine` * modern fmt/clippy recommendations --- .circleci/config.yml | 5 +- Cargo.lock | 1394 +++++++++++-------- Cargo.toml | 38 + autoendpoint/Cargo.toml | 48 +- autoendpoint/src/extractors/notification.rs | 12 +- autoendpoint/src/extractors/subscription.rs | 49 +- autoendpoint/src/metrics.rs | 12 +- autoendpoint/src/settings.rs | 4 +- autoendpoint/src/tags.rs | 2 + autopush-common/Cargo.toml | 54 +- autopush-common/src/db/models.rs | 2 +- autopush-common/src/endpoint.rs | 10 +- autopush-common/src/logging.rs | 2 +- autopush/Cargo.toml | 52 +- autopush/src/client.rs | 35 +- autopush/src/server/mod.rs | 3 +- 16 files changed, 989 insertions(+), 733 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5c670f38e..81febb751 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -85,9 +85,12 @@ jobs: cargo build - run: name: Check formatting + # Rust 1.65+ is stricter about dead_code and flags auto-generated methods created by + # state_machine_future. Since these are auto-generated, it's not possible to tag them as + # allowed. Adding `-A dead_code` until state_machine_future is removed. command: | cargo fmt -- --check - cargo clippy --all --all-targets --all-features -- -D warnings --deny=clippy::dbg_macro + cargo clippy --all --all-targets --all-features -- -D warnings --deny=clippy::dbg_macro -A dead_code - run: name: Integration tests command: py.test -v diff --git a/Cargo.lock b/Cargo.lock index 3c9e2aebb..4e41189ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9,8 +9,8 @@ source = "git+https://github.com/mozilla-services/a2.git?branch=autoendpoint#74c dependencies = [ "base64 0.12.3", "erased-serde", - "futures 0.3.21", - "http 0.2.7", + "futures 0.3.25", + "http 0.2.8", "hyper 0.13.10", "hyper-alpn", "log", @@ -31,7 +31,7 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project 0.4.29", + "pin-project 0.4.30", "tokio 0.2.25", "tokio-util 0.3.1", ] @@ -43,14 +43,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe" dependencies = [ "bitflags", - "bytes 1.1.0", + "bytes 1.3.0", "futures-core", "futures-sink", "log", "memchr", "pin-project-lite 0.2.9", - "tokio 1.18.2", - "tokio-util 0.7.2", + "tokio 1.23.0", + "tokio-util 0.7.4", ] [[package]] @@ -66,7 +66,7 @@ dependencies = [ "derive_more", "either", "futures-util", - "http 0.2.7", + "http 0.2.8", "log", "trust-dns-proto", "trust-dns-resolver", @@ -98,7 +98,7 @@ dependencies = [ "actix-service 1.0.6", "actix-threadpool", "actix-utils 2.0.0", - "base64 0.13.0", + "base64 0.13.1", "bitflags", "brotli", "bytes 0.5.6", @@ -113,7 +113,7 @@ dependencies = [ "futures-util", "fxhash", "h2 0.2.7", - "http 0.2.7", + "http 0.2.8", "httparse", "indexmap", "itoa 0.4.8", @@ -121,8 +121,8 @@ dependencies = [ "lazy_static", "log", "mime", - "percent-encoding 2.1.0", - "pin-project 1.0.10", + "percent-encoding 2.2.0", + "pin-project 1.0.12", "rand 0.7.3", "regex", "serde", @@ -135,30 +135,30 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.2.1" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f9ffb6db08c1c3a1f4aef540f1a63193adc73c4fbd40b75a95fc8c5258f6e51" +checksum = "0c83abf9903e1f0ad9973cc4f7b9767fd5a03a583f51a5b7a339e07987cd2724" dependencies = [ "actix-codec 0.5.0", "actix-rt 2.7.0", "actix-service 2.0.2", - "actix-utils 3.0.0", + "actix-utils 3.0.1", "ahash", "bitflags", - "bytes 1.1.0", + "bytes 1.3.0", "bytestring", "derive_more", "encoding_rs", "futures-core", - "http 0.2.7", + "http 0.2.8", "httparse", "httpdate 1.0.2", - "itoa 1.0.2", + "itoa 1.0.4", "language-tags 0.3.2", "mime", - "percent-encoding 2.1.0", + "percent-encoding 2.2.0", "pin-project-lite 0.2.9", - "smallvec 1.8.0", + "smallvec 1.10.0", "tracing", ] @@ -168,8 +168,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ca8ce00b267af8ccebbd647de0d61e0674b6e61185cc7a592ff88772bed655" dependencies = [ - "quote 1.0.18", - "syn 1.0.95", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] @@ -179,7 +179,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ad299af73649e1fc893e333ccf86f377751eb95ff875d095131574c6f43452c" dependencies = [ "bytestring", - "http 0.2.7", + "http 0.2.8", "log", "regex", "serde", @@ -196,7 +196,7 @@ dependencies = [ "copyless", "futures-channel", "futures-util", - "smallvec 1.8.0", + "smallvec 1.10.0", "tokio 0.2.25", ] @@ -207,7 +207,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ea16c295198e958ef31930a6ef37d0fb64e9ca3b6116e6b93a8bdae96ee1000" dependencies = [ "futures-core", - "tokio 1.18.2", + "tokio 1.23.0", ] [[package]] @@ -237,7 +237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb" dependencies = [ "futures-util", - "pin-project 0.4.29", + "pin-project 0.4.30", ] [[package]] @@ -308,15 +308,15 @@ dependencies = [ "futures-sink", "futures-util", "log", - "pin-project 0.4.29", + "pin-project 0.4.30", "slab", ] [[package]] name = "actix-utils" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e491cbaac2e7fc788dfff99ff48ef317e23b3cf63dbaf7aaab6418f40f92aa94" +checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" dependencies = [ "local-waker", "pin-project-lite 0.2.9", @@ -350,7 +350,7 @@ dependencies = [ "fxhash", "log", "mime", - "pin-project 1.0.10", + "pin-project 1.0.12", "regex", "serde", "serde_json", @@ -358,7 +358,7 @@ dependencies = [ "socket2 0.3.19", "time 0.2.27", "tinyvec", - "url 2.2.2", + "url 2.3.1", ] [[package]] @@ -367,9 +367,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] @@ -404,40 +404,49 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.8", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] [[package]] name = "alloc-no-stdlib" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" [[package]] name = "alloc-stdlib" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "arc-swap" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d78ce20460b82d3fa150275ed9d55e21064fc7951177baacf86a145c4a4b1f" +checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164" [[package]] name = "arrayref" @@ -453,9 +462,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "assert-json-diff" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f1c3703dd33532d7f0ca049168930e9099ecac238e23cf932f3a69c42f06da" +checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" dependencies = [ "serde", "serde_json", @@ -463,13 +472,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.53" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" +checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] @@ -500,23 +509,23 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "autoendpoint" -version = "1.65.0" +version = "1.65.1" dependencies = [ "a2", "actix-cors", - "actix-http 3.2.1", + "actix-http 3.2.2", "actix-rt 1.1.1", "actix-web", "again", "async-trait", "autopush_common", "backtrace", - "base64 0.13.0", + "base64 0.20.0", "cadence", "config", "docopt", "fernet", - "futures 0.3.21", + "futures 0.3.25", "hex", "jsonwebtoken", "lazy_static", @@ -529,8 +538,9 @@ dependencies = [ "reqwest 0.10.10", "rusoto_core 0.45.0", "rusoto_dynamodb 0.45.0", - "sentry 0.19.1", + "sentry", "serde", + "serde_derive", "serde_dynamodb 0.6.0", "serde_json", "slog", @@ -540,12 +550,12 @@ dependencies = [ "slog-scope", "slog-stdlog", "slog-term", - "smallvec 1.8.0", + "smallvec 1.10.0", "tempfile", "thiserror", "tokio 0.2.25", - "url 2.2.2", - "uuid 1.1.1", + "url 2.3.1", + "uuid 1.2.2", "validator", "validator_derive", "yup-oauth2", @@ -553,10 +563,10 @@ dependencies = [ [[package]] name = "autopush" -version = "1.65.0" +version = "1.65.1" dependencies = [ "autopush_common", - "base64 0.13.0", + "base64 0.20.0", "bytes 0.4.12", "cadence", "chrono", @@ -577,7 +587,7 @@ dependencies = [ "openssl", "reqwest 0.9.24", "rusoto_dynamodb 0.42.0", - "sentry 0.18.1", + "sentry", "serde", "serde_derive", "serde_dynamodb 0.4.1", @@ -585,10 +595,12 @@ dependencies = [ "signal-hook", "slog", "slog-async", + "slog-envlogger", "slog-mozlog-json", "slog-scope", + "slog-stdlog", "slog-term", - "smallvec 1.8.0", + "smallvec 1.10.0", "state_machine_future", "tokio-core", "tokio-io", @@ -596,15 +608,15 @@ dependencies = [ "tokio-service", "tokio-tungstenite", "tungstenite", - "uuid 1.1.1", + "uuid 1.2.2", "woothee", ] [[package]] name = "autopush_common" -version = "1.65.0" +version = "1.65.1" dependencies = [ - "base64 0.13.0", + "base64 0.20.0", "cadence", "chrono", "config", @@ -625,22 +637,23 @@ dependencies = [ "rusoto_core 0.42.0", "rusoto_credential 0.42.0", "rusoto_dynamodb 0.42.0", - "sentry 0.19.1", + "sentry", "serde", "serde_derive", "serde_dynamodb 0.4.1", "serde_json", "slog", "slog-async", + "slog-envlogger", "slog-mozlog-json", "slog-scope", "slog-stdlog", "slog-term", - "smallvec 1.8.0", + "smallvec 1.10.0", "tokio-core", "tungstenite", - "url 2.2.2", - "uuid 1.1.1", + "url 2.3.1", + "uuid 1.2.2", ] [[package]] @@ -653,14 +666,14 @@ dependencies = [ "actix-http 2.2.2", "actix-rt 1.1.1", "actix-service 1.0.6", - "base64 0.13.0", + "base64 0.13.1", "bytes 0.5.6", "cfg-if 1.0.0", "derive_more", "futures-core", "log", "mime", - "percent-encoding 2.1.0", + "percent-encoding 2.2.0", "rand 0.7.3", "serde", "serde_json", @@ -669,24 +682,24 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" +checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide", + "miniz_oxide 0.5.4", "object", "rustc-demangle", ] [[package]] name = "base-x" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc19a4937b4fbd3fe3379793130e42060d10627a360f2127802b10b87e7baf74" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" [[package]] name = "base64" @@ -711,9 +724,15 @@ checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "base64" -version = "0.13.0" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" [[package]] name = "bitflags" @@ -759,7 +778,16 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array 0.14.6", ] [[package]] @@ -794,9 +822,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.10.0" +version = "3.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" [[package]] name = "byte-tools" @@ -829,17 +857,17 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" [[package]] name = "bytestring" -version = "1.0.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90706ba19e97b90786e19dc0d5e2abd80008d99d4c0c5d1ad0b5e72cec7c494d" +checksum = "f7f83e57d9154148e355404702e2694463241880b939570d7c97c014da7a69a1" dependencies = [ - "bytes 1.1.0", + "bytes 1.3.0", ] [[package]] @@ -853,9 +881,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.73" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" [[package]] name = "cfg-if" @@ -871,15 +899,17 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" dependencies = [ - "libc", + "iana-time-zone", + "js-sys", "num-integer", "num-traits", "serde", - "time 0.1.44", + "time 0.1.45", + "wasm-bindgen", "winapi 0.3.9", ] @@ -892,6 +922,16 @@ dependencies = [ "bitflags", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "colored" version = "2.0.0" @@ -905,9 +945,9 @@ dependencies = [ [[package]] name = "config" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea917b74b6edfb5024e3b55d3c8f710b5f4ed92646429601a42e96f0812b31b" +checksum = "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7" dependencies = [ "async-trait", "json5", @@ -946,7 +986,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" dependencies = [ - "time 0.1.44", + "time 0.1.45", "url 1.7.2", ] @@ -956,7 +996,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" dependencies = [ - "percent-encoding 2.1.0", + "percent-encoding 2.2.0", "time 0.2.27", "version_check", ] @@ -974,7 +1014,7 @@ dependencies = [ "publicsuffix", "serde", "serde_json", - "time 0.1.44", + "time 0.1.45", "try_from", "url 1.7.2", ] @@ -1019,9 +1059,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -1037,12 +1077,12 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.8", + "crossbeam-utils 0.8.14", ] [[package]] @@ -1114,12 +1154,21 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ "cfg-if 1.0.0", - "lazy_static", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.6", + "typenum", ] [[package]] @@ -1138,7 +1187,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", "subtle 2.4.1", ] @@ -1151,6 +1200,50 @@ dependencies = [ "sct", ] +[[package]] +name = "cxx" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2 1.0.47", + "quote 1.0.21", + "scratch", + "syn 1.0.105", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6" +dependencies = [ + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", +] + [[package]] name = "darling" version = "0.8.6" @@ -1202,10 +1295,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.39", - "quote 1.0.18", + "proc-macro2 1.0.47", + "quote 1.0.21", "rustc_version 0.4.0", - "syn 1.0.95", + "syn 1.0.105", ] [[package]] @@ -1243,7 +1336,17 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer 0.10.3", + "crypto-common", ] [[package]] @@ -1337,9 +1440,9 @@ checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" [[package]] name = "either" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "encoding_rs" @@ -1357,16 +1460,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4" dependencies = [ "heck 0.4.0", - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" dependencies = [ "atty", "humantime", @@ -1377,9 +1480,9 @@ dependencies = [ [[package]] name = "erased-serde" -version = "0.3.20" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad132dd8d0d0b546348d7d86cb3191aad14b34e5f979781fc005c80d4ac67ffd" +checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11" dependencies = [ "serde", ] @@ -1410,9 +1513,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", "synstructure", ] @@ -1424,22 +1527,22 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] [[package]] name = "fernet" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93804560e638370a8be6d59ce71ed803e55e230abdbf42598e666b41adda9b1f" +checksum = "c6dedfc944f4ac38cac8b74cb1c7b4fb73c175db232d6fa98e9bd1fd81908b89" dependencies = [ - "base64 0.13.0", + "base64 0.13.1", "byteorder", - "getrandom 0.2.6", + "getrandom 0.2.8", "openssl", "zeroize", ] @@ -1452,12 +1555,12 @@ checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.6.2", ] [[package]] @@ -1492,19 +1595,27 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", - "percent-encoding 2.1.0", + "percent-encoding 2.2.0", ] [[package]] name = "fragile" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d758e60b45e8d749c89c1b389ad8aee550f86aa12e2b9298b546dda7a82ab1" +checksum = "b7464c5c4a3f014d9b2ec4073650e5c06596f385060af740fc45ad5a19f959e8" +dependencies = [ + "fragile 2.0.0", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "fuchsia-cprng" @@ -1536,9 +1647,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" dependencies = [ "futures-channel", "futures-core", @@ -1562,9 +1673,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" dependencies = [ "futures-core", "futures-sink", @@ -1572,9 +1683,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" [[package]] name = "futures-cpupool" @@ -1588,9 +1699,9 @@ dependencies = [ [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" dependencies = [ "futures-core", "futures-task", @@ -1599,9 +1710,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" [[package]] name = "futures-locks" @@ -1616,26 +1727,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" [[package]] name = "futures-timer" @@ -1648,9 +1759,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" dependencies = [ "futures-channel", "futures-core", @@ -1684,9 +1795,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -1705,20 +1816,20 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.0+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] name = "gimli" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" [[package]] name = "h2" @@ -1749,7 +1860,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 0.2.7", + "http 0.2.8", "indexmap", "slab", "tokio 0.2.25", @@ -1760,34 +1871,28 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" dependencies = [ - "bytes 1.1.0", + "bytes 1.3.0", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.7", + "http 0.2.8", "indexmap", "slab", - "tokio 1.18.2", - "tokio-util 0.7.2", + "tokio 1.23.0", + "tokio-util 0.7.4", "tracing", ] [[package]] name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" - -[[package]] -name = "hashbrown" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash", ] @@ -1876,13 +1981,13 @@ dependencies = [ [[package]] name = "http" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ - "bytes 1.1.0", + "bytes 1.3.0", "fnv", - "itoa 1.0.2", + "itoa 1.0.4", ] [[package]] @@ -1904,7 +2009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" dependencies = [ "bytes 0.5.6", - "http 0.2.7", + "http 0.2.8", ] [[package]] @@ -1913,16 +2018,16 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.1.0", - "http 0.2.7", + "bytes 1.3.0", + "http 0.2.8", "pin-project-lite 0.2.9", ] [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -1960,7 +2065,7 @@ dependencies = [ "log", "net2", "rustc_version 0.2.3", - "time 0.1.44", + "time 0.1.45", "tokio 0.1.22", "tokio-buf", "tokio-executor", @@ -1983,12 +2088,12 @@ dependencies = [ "futures-core", "futures-util", "h2 0.2.7", - "http 0.2.7", + "http 0.2.8", "http-body 0.3.1", "httparse", "httpdate 0.3.2", "itoa 0.4.8", - "pin-project 1.0.10", + "pin-project 1.0.12", "socket2 0.3.19", "tokio 0.2.25", "tower-service", @@ -1998,23 +2103,23 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.19" +version = "0.14.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f" +checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" dependencies = [ - "bytes 1.1.0", + "bytes 1.3.0", "futures-channel", "futures-core", "futures-util", - "h2 0.3.13", - "http 0.2.7", + "h2 0.3.15", + "http 0.2.8", "http-body 0.4.5", "httparse", "httpdate 1.0.2", - "itoa 1.0.2", + "itoa 1.0.4", "pin-project-lite 0.2.9", - "socket2 0.4.4", - "tokio 1.18.2", + "socket2 0.4.7", + "tokio 1.23.0", "tower-service", "tracing", "want 0.3.0", @@ -2026,7 +2131,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5a8e8e9f05ea8e7d34fd477eab717cdd66391689ea884cf44c5d172c6aff96c" dependencies = [ - "futures 0.3.21", + "futures 0.3.25", "hyper 0.13.10", "log", "rustls 0.16.0", @@ -2086,13 +2191,37 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.1.0", - "hyper 0.14.19", + "bytes 1.3.0", + "hyper 0.14.23", "native-tls", - "tokio 1.18.2", + "tokio 1.23.0", "tokio-native-tls", ] +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys 0.8.3", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi 0.3.9", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2121,6 +2250,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "if_chain" version = "1.0.2" @@ -2143,12 +2282,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.8.2" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6012d540c5baa3589337a98ce73408de9b5a25ec9fc2c6fd6be8f0d39e0ca5a" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg 1.1.0", - "hashbrown 0.11.2", + "hashbrown", ] [[package]] @@ -2192,9 +2331,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.5.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" +checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e" [[package]] name = "itoa" @@ -2204,15 +2343,15 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -2230,11 +2369,11 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "8.1.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9051c17f81bae79440afa041b3a278e1de71bfb96d32454b477fd4703ccb6f" +checksum = "09f4f04699947111ec1733e71778d763555737579e44b85844cae8e1940a1828" dependencies = [ - "base64 0.13.0", + "base64 0.13.1", "pem", "ring", "serde", @@ -2272,15 +2411,24 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.126" +version = "0.2.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" + +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] [[package]] name = "linked-hash-map" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "local-waker" @@ -2299,9 +2447,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -2325,12 +2473,6 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - [[package]] name = "match_cfg" version = "0.1.0" @@ -2394,9 +2536,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +dependencies = [ + "adler", +] + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" dependencies = [ "adler", ] @@ -2422,14 +2573,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.42.0", ] [[package]] @@ -2484,7 +2635,7 @@ checksum = "41cabea45a7fc0e37093f4f30a5e2b62602253f91791c057d5f0470c63260c3d" dependencies = [ "cfg-if 0.1.10", "downcast", - "fragile", + "fragile 1.2.2", "lazy_static", "mockall_derive", "predicates", @@ -2498,16 +2649,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c461918bf7f59eefb1459252756bf2351a995d6bd510d0b2061bd86bcdabfa6" dependencies = [ "cfg-if 0.1.10", - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] name = "mockito" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401edc088069634afaa5f4a29617b36dba683c0c16fe4435a86debad23fa2f1a" +checksum = "80f9fece9bd97ab74339fe19f4bcaf52b76dcc18e5364c7977c1838f76b38de9" dependencies = [ "assert-json-diff", "colored", @@ -2540,14 +2691,14 @@ checksum = "51fba38c7ded23ca88a409f72277d177170b3eadb5e283741182fd3cae60ecdf" dependencies = [ "hostname 0.3.1", "lazy_static", - "reqwest 0.11.10", + "reqwest 0.11.13", ] [[package]] name = "native-tls" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" dependencies = [ "lazy_static", "libc", @@ -2556,16 +2707,16 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.6.1", + "security-framework 2.7.0", "security-framework-sys 2.6.1", "tempfile", ] [[package]] name = "net2" -version = "0.2.37" +version = "0.2.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" dependencies = [ "cfg-if 0.1.10", "libc", @@ -2620,9 +2771,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" dependencies = [ "hermit-abi", "libc", @@ -2639,18 +2790,18 @@ dependencies = [ [[package]] name = "object" -version = "0.28.4" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.12.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" [[package]] name = "opaque-debug" @@ -2666,9 +2817,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.40" +version = "0.10.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e" +checksum = "29d971fd5722fec23977260f6e81aa67d2f22cadbdc2aa049f1022d9a3be1566" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -2685,9 +2836,9 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] @@ -2698,9 +2849,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.74" +version = "0.9.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1" +checksum = "5454462c0eced1e97f2ec09036abc8da362e66802f66fd20f86854d9d8cbcbc4" dependencies = [ "autocfg 1.1.0", "cc", @@ -2716,7 +2867,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" dependencies = [ "dlv-list", - "hashbrown 0.12.1", + "hashbrown", ] [[package]] @@ -2732,7 +2883,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" dependencies = [ "lock_api 0.3.4", - "parking_lot_core 0.6.2", + "parking_lot_core 0.6.3", "rustc_version 0.2.3", ] @@ -2743,8 +2894,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", - "lock_api 0.4.7", - "parking_lot_core 0.8.5", + "lock_api 0.4.9", + "parking_lot_core 0.8.6", ] [[package]] @@ -2753,15 +2904,15 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ - "lock_api 0.4.7", - "parking_lot_core 0.9.3", + "lock_api 0.4.9", + "parking_lot_core 0.9.5", ] [[package]] name = "parking_lot_core" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +checksum = "bda66b810a62be75176a80873726630147a5ca780cd33921e0b5709033e66b0a" dependencies = [ "cfg-if 0.1.10", "cloudabi", @@ -2774,36 +2925,36 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.13", - "smallvec 1.8.0", + "redox_syscall 0.2.16", + "smallvec 1.10.0", "winapi 0.3.9", ] [[package]] name = "parking_lot_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.13", - "smallvec 1.8.0", - "windows-sys", + "redox_syscall 0.2.16", + "smallvec 1.10.0", + "windows-sys 0.42.0", ] [[package]] name = "paste" -version = "1.0.7" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" +checksum = "cf1c2c742266c2f1041c914ba65355a83ae8747b05f208319784083583494b4b" [[package]] name = "pathdiff" @@ -2813,11 +2964,11 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" [[package]] name = "pem" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9a3b09a20e374558580a4914d3b7d89bd61b954a5a5e1dcbea98753addb1947" +checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" dependencies = [ - "base64 0.13.0", + "base64 0.13.1", ] [[package]] @@ -2828,24 +2979,25 @@ checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.1.3" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0" dependencies = [ + "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.1.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +checksum = "cdc078600d06ff90d4ed238f0119d84ab5d43dbaad278b0e33a8820293b32344" dependencies = [ "pest", "pest_generator", @@ -2853,26 +3005,26 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.1.3" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +checksum = "28a1af60b1c4148bb269006a750cff8e2ea36aff34d2d96cf7be0b14d1bed23c" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] name = "pest_meta" -version = "2.1.3" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +checksum = "fec8605d59fc2ae0c6c1aefc0c7c7a9769732017c0ce07f7a9cfffa7b4404f20" dependencies = [ - "maplit", + "once_cell", "pest", - "sha-1 0.8.2", + "sha1 0.10.5", ] [[package]] @@ -2887,42 +3039,42 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9615c18d31137579e9ff063499264ddc1278e7b1982757ebc111028c4d1dc909" +checksum = "3ef0f924a5ee7ea9cbcea77529dba45f8a9ba9f622419fe3386ca581a3ae9d5a" dependencies = [ - "pin-project-internal 0.4.29", + "pin-project-internal 0.4.30", ] [[package]] name = "pin-project" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ - "pin-project-internal 1.0.10", + "pin-project-internal 1.0.12", ] [[package]] name = "pin-project-internal" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a" +checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] name = "pin-project-internal" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] @@ -2945,15 +3097,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" @@ -2970,15 +3122,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da1c2388b1513e1b605fcec39a95e0a9e8ef088f71443ef37099fa9ae6673fcb" +checksum = "72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2" [[package]] name = "predicates-tree" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d86de6de25020a36c6d3643a86d9a6a9f552107c0559c60ea03551b5e16c032" +checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" dependencies = [ "predicates-core", "termtree", @@ -2991,9 +3143,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", "version_check", ] @@ -3003,8 +3155,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", + "proc-macro2 1.0.47", + "quote 1.0.21", "version_check", ] @@ -3025,9 +3177,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.39" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" dependencies = [ "unicode-ident", ] @@ -3039,7 +3191,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95b4ce31ff0a27d93c8de1849cf58162283752f065a90d508f1105fa6c9a213f" dependencies = [ "idna 0.2.3", - "url 2.2.2", + "url 2.3.1", ] [[package]] @@ -3048,15 +3200,6 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quickcheck" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" -dependencies = [ - "rand 0.8.5", -] - [[package]] name = "quote" version = "0.6.13" @@ -3068,11 +3211,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ - "proc-macro2 1.0.39", + "proc-macro2 1.0.47", ] [[package]] @@ -3128,7 +3271,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -3158,7 +3301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -3187,11 +3330,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.8", ] [[package]] @@ -3291,9 +3434,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -3315,16 +3458,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.6", - "redox_syscall 0.2.13", + "getrandom 0.2.8", + "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "regex" -version = "1.5.6" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" +checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" dependencies = [ "aho-corasick", "memchr", @@ -3333,9 +3476,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.26" +version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" [[package]] name = "remove_dir_all" @@ -3375,7 +3518,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded 0.5.5", - "time 0.1.44", + "time 0.1.45", "tokio 0.1.22", "tokio-executor", "tokio-io", @@ -3392,12 +3535,12 @@ version = "0.10.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c" dependencies = [ - "base64 0.13.0", + "base64 0.13.1", "bytes 0.5.6", "encoding_rs", "futures-core", "futures-util", - "http 0.2.7", + "http 0.2.8", "http-body 0.3.1", "hyper 0.13.10", "hyper-tls 0.4.3", @@ -3408,14 +3551,14 @@ dependencies = [ "mime", "mime_guess", "native-tls", - "percent-encoding 2.1.0", + "percent-encoding 2.2.0", "pin-project-lite 0.2.9", "serde", "serde_json", "serde_urlencoded 0.7.1", "tokio 0.2.25", "tokio-tls", - "url 2.2.2", + "url 2.3.1", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -3424,34 +3567,35 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.10" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" +checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" dependencies = [ - "base64 0.13.0", - "bytes 1.1.0", + "base64 0.13.1", + "bytes 1.3.0", "encoding_rs", "futures-core", "futures-util", - "h2 0.3.13", - "http 0.2.7", + "h2 0.3.15", + "http 0.2.8", "http-body 0.4.5", - "hyper 0.14.19", + "hyper 0.14.23", "hyper-tls 0.5.0", "ipnet", "js-sys", - "lazy_static", "log", "mime", "native-tls", - "percent-encoding 2.1.0", + "once_cell", + "percent-encoding 2.2.0", "pin-project-lite 0.2.9", "serde", "serde_json", "serde_urlencoded 0.7.1", - "tokio 1.18.2", + "tokio 1.23.0", "tokio-native-tls", - "url 2.2.2", + "tower-service", + "url 2.3.1", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -3485,11 +3629,11 @@ dependencies = [ [[package]] name = "ron" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b861ecaade43ac97886a512b360d01d66be9f41f3c61088b42cedf92e03d678" +checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a" dependencies = [ - "base64 0.13.0", + "base64 0.13.1", "bitflags", "serde", ] @@ -3514,7 +3658,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.1.44", + "time 0.1.45", "tokio 0.1.22", "tokio-timer", "xml-rs", @@ -3530,15 +3674,15 @@ dependencies = [ "base64 0.12.3", "bytes 0.5.6", "crc32fast", - "futures 0.3.21", - "http 0.2.7", + "futures 0.3.25", + "http 0.2.8", "hyper 0.13.10", "hyper-tls 0.4.3", "lazy_static", "log", "md5", - "percent-encoding 2.1.0", - "pin-project 0.4.29", + "percent-encoding 2.2.0", + "pin-project 0.4.30", "rusoto_credential 0.45.0", "rusoto_signature 0.45.0", "rustc_version 0.2.3", @@ -3577,9 +3721,9 @@ dependencies = [ "async-trait", "chrono", "dirs 2.0.2", - "futures 0.3.21", + "futures 0.3.25", "hyper 0.13.10", - "pin-project 0.4.29", + "pin-project 0.4.30", "regex", "serde", "serde_json", @@ -3610,7 +3754,7 @@ checksum = "8a1473bb1c1dd54f61c5e150aec47bcbf4a992963dcc3c60e12be5af3245cefc" dependencies = [ "async-trait", "bytes 0.5.6", - "futures 0.3.21", + "futures 0.3.25", "rusoto_core 0.45.0", "serde", "serde_json", @@ -3631,12 +3775,12 @@ dependencies = [ "hyper 0.12.36", "log", "md5", - "percent-encoding 2.1.0", + "percent-encoding 2.2.0", "rusoto_credential 0.42.0", "rustc_version 0.2.3", "serde", "sha2 0.8.2", - "time 0.1.44", + "time 0.1.45", "tokio 0.1.22", ] @@ -3648,15 +3792,15 @@ checksum = "97a740a88dde8ded81b6f2cff9cd5e054a5a2e38a38397260f7acdd2c85d17dd" dependencies = [ "base64 0.12.3", "bytes 0.5.6", - "futures 0.3.21", + "futures 0.3.25", "hex", "hmac 0.8.1", - "http 0.2.7", + "http 0.2.8", "hyper 0.13.10", "log", "md5", - "percent-encoding 2.1.0", - "pin-project 0.4.29", + "percent-encoding 2.2.0", + "pin-project 0.4.30", "rusoto_credential 0.45.0", "rustc_version 0.2.3", "serde", @@ -3671,10 +3815,10 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" dependencies = [ - "base64 0.13.0", + "base64 0.13.1", "blake2b_simd", "constant_time_eq", - "crossbeam-utils 0.8.8", + "crossbeam-utils 0.8.14", ] [[package]] @@ -3708,7 +3852,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.9", + "semver 1.0.14", ] [[package]] @@ -3751,15 +3895,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" [[package]] name = "ryu" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "schannel" @@ -3768,7 +3912,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" dependencies = [ "lazy_static", - "windows-sys", + "windows-sys 0.36.1", ] [[package]] @@ -3783,6 +3927,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + [[package]] name = "sct" version = "0.6.1" @@ -3814,9 +3964,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", "core-foundation 0.9.3", @@ -3856,9 +4006,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.9" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" [[package]] name = "semver-parser" @@ -3866,29 +4016,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -[[package]] -name = "sentry" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b01b723fc1b0a0f9394ca1a8451daec6e20206d47f96c3dceea7fd11ec9eec0" -dependencies = [ - "backtrace", - "error-chain", - "failure", - "hostname 0.3.1", - "httpdate 0.3.2", - "im", - "lazy_static", - "libc", - "rand 0.7.3", - "regex", - "reqwest 0.10.10", - "rustc_version 0.2.3", - "sentry-types 0.14.1", - "uname", - "url 2.2.2", -] - [[package]] name = "sentry" version = "0.19.1" @@ -3943,7 +4070,7 @@ dependencies = [ "lazy_static", "log", "rand 0.7.3", - "sentry-types 0.19.1", + "sentry-types", ] [[package]] @@ -3978,21 +4105,6 @@ dependencies = [ "sentry-core", ] -[[package]] -name = "sentry-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ec406c11c060c8a7d5d67fc6f4beb2888338dcb12b9af409451995f124749d" -dependencies = [ - "chrono", - "debugid", - "failure", - "serde", - "serde_json", - "url 2.2.2", - "uuid 0.8.2", -] - [[package]] name = "sentry-types" version = "0.19.1" @@ -4004,28 +4116,28 @@ dependencies = [ "serde", "serde_json", "thiserror", - "url 2.2.2", + "url 2.3.1", "uuid 0.8.2", ] [[package]] name = "serde" -version = "1.0.137" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "e326c9ec8042f1b5da33252c8a37e9ffbd2c9bef0155215b6e6c80c790e05f91" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "42a3df25b0713732468deadad63ab9da1f1fd75a48a15024b50363f128db627e" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] @@ -4051,11 +4163,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" dependencies = [ - "itoa 1.0.2", + "itoa 1.0.4", "ryu", "serde", ] @@ -4079,7 +4191,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.2", + "itoa 1.0.4", "ryu", "serde", ] @@ -4118,6 +4230,17 @@ dependencies = [ "sha1_smol", ] +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.6", +] + [[package]] name = "sha1_smol" version = "1.0.0" @@ -4176,20 +4299,20 @@ dependencies = [ [[package]] name = "similar" -version = "2.1.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3" +checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" [[package]] name = "simple_asn1" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a762b1c38b9b990c694b9c2f8abe3372ce6a9ceaae6bca39cfc46e054f45745" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", "num-traits", "thiserror", - "time 0.3.9", + "time 0.3.17", ] [[package]] @@ -4204,9 +4327,12 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg 1.1.0", +] [[package]] name = "slog" @@ -4288,7 +4414,7 @@ dependencies = [ "slog", "term", "thread_local", - "time 0.3.9", + "time 0.3.17", ] [[package]] @@ -4302,9 +4428,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "socket2" @@ -4319,9 +4445,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi 0.3.9", @@ -4373,11 +4499,11 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", + "proc-macro2 1.0.47", + "quote 1.0.21", "serde", "serde_derive", - "syn 1.0.95", + "syn 1.0.105", ] [[package]] @@ -4387,13 +4513,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" dependencies = [ "base-x", - "proc-macro2 1.0.39", - "quote 1.0.18", + "proc-macro2 1.0.47", + "quote 1.0.21", "serde", "serde_derive", "serde_json", - "sha1", - "syn 1.0.95", + "sha1 0.6.1", + "syn 1.0.105", ] [[package]] @@ -4442,12 +4568,12 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.95" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942" +checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", + "proc-macro2 1.0.47", + "quote 1.0.21", "unicode-ident", ] @@ -4457,10 +4583,10 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", - "unicode-xid 0.2.3", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", + "unicode-xid 0.2.4", ] [[package]] @@ -4478,7 +4604,7 @@ dependencies = [ "cfg-if 1.0.0", "fastrand", "libc", - "redox_syscall 0.2.13", + "redox_syscall 0.2.16", "remove_dir_all", "winapi 0.3.9", ] @@ -4505,28 +4631,28 @@ dependencies = [ [[package]] name = "termtree" -version = "0.2.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b" +checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] @@ -4549,9 +4675,9 @@ dependencies = [ [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -4575,17 +4701,24 @@ dependencies = [ [[package]] name = "time" -version = "0.3.9" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" +checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" dependencies = [ - "itoa 1.0.2", + "itoa 1.0.4", "libc", "num_threads", - "quickcheck", - "time-macros 0.2.4", + "serde", + "time-core", + "time-macros 0.2.6", ] +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + [[package]] name = "time-macros" version = "0.1.1" @@ -4598,9 +4731,12 @@ dependencies = [ [[package]] name = "time-macros" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" +checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +dependencies = [ + "time-core", +] [[package]] name = "time-macros-impl" @@ -4609,10 +4745,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.39", - "quote 1.0.18", + "proc-macro2 1.0.47", + "quote 1.0.21", "standback", - "syn 1.0.95", + "syn 1.0.105", ] [[package]] @@ -4680,21 +4816,21 @@ dependencies = [ [[package]] name = "tokio" -version = "1.18.2" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" +checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" dependencies = [ - "bytes 1.1.0", + "autocfg 1.1.0", + "bytes 1.3.0", "libc", "memchr", - "mio 0.8.3", + "mio 0.8.5", "num_cpus", - "once_cell", "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", - "socket2 0.4.4", - "winapi 0.3.9", + "socket2 0.4.7", + "windows-sys 0.42.0", ] [[package]] @@ -4786,9 +4922,9 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", ] [[package]] @@ -4798,7 +4934,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" dependencies = [ "native-tls", - "tokio 1.18.2", + "tokio 1.23.0", ] [[package]] @@ -5023,15 +5159,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" dependencies = [ - "bytes 1.1.0", + "bytes 1.3.0", "futures-core", "futures-sink", "pin-project-lite 0.2.9", - "tokio 1.18.2", + "tokio 1.23.0", "tracing", ] @@ -5046,41 +5182,29 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.34" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", "log", "pin-project-lite 0.2.9", - "tracing-attributes", "tracing-core", ] -[[package]] -name = "tracing-attributes" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" -dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", -] - [[package]] name = "tracing-core" -version = "0.1.26" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ - "lazy_static", + "once_cell", ] [[package]] @@ -5089,7 +5213,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.10", + "pin-project 1.0.12", "tracing", ] @@ -5102,15 +5226,15 @@ dependencies = [ "async-trait", "cfg-if 1.0.0", "enum-as-inner", - "futures 0.3.21", + "futures 0.3.25", "idna 0.2.3", "lazy_static", "log", "rand 0.7.3", - "smallvec 1.8.0", + "smallvec 1.10.0", "thiserror", "tokio 0.2.25", - "url 2.2.2", + "url 2.3.1", ] [[package]] @@ -5120,13 +5244,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "710f593b371175db53a26d0b38ed2978fafb9e9e8d3868b1acd753ea18df0ceb" dependencies = [ "cfg-if 0.1.10", - "futures 0.3.21", + "futures 0.3.25", "ipconfig", "lazy_static", "log", "lru-cache", "resolv-conf", - "smallvec 1.8.0", + "smallvec 1.10.0", "thiserror", "tokio 0.2.25", "trust-dns-proto", @@ -5162,21 +5286,21 @@ dependencies = [ "log", "rand 0.7.3", "sha-1 0.8.2", - "url 2.2.2", + "url 2.3.1", "utf-8", ] [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "uname" @@ -5204,24 +5328,30 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "unicode-xid" @@ -5231,9 +5361,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "untrusted" @@ -5254,14 +5384,13 @@ dependencies = [ [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", - "idna 0.2.3", - "matches", - "percent-encoding 2.1.0", + "idna 0.3.0", + "percent-encoding 2.2.0", "serde", ] @@ -5286,17 +5415,17 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.8", "serde", ] [[package]] name = "uuid" -version = "1.1.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6d5d669b51467dcf7b2f1a796ce0f955f05f01cafda6c19d6e95f730df29238" +checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.8", "serde", ] @@ -5312,7 +5441,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "url 2.2.2", + "url 2.3.1", ] [[package]] @@ -5324,10 +5453,10 @@ dependencies = [ "if_chain", "lazy_static", "proc-macro-error", - "proc-macro2 1.0.39", - "quote 1.0.18", + "proc-macro2 1.0.47", + "quote 1.0.21", "regex", - "syn 1.0.95", + "syn 1.0.105", "validator_types", ] @@ -5337,8 +5466,8 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2ddf34293296847abfc1493b15c6e2f5d3cd19f57ad7d22673bf4c6278da329" dependencies = [ - "proc-macro2 1.0.39", - "syn 1.0.95", + "proc-macro2 1.0.47", + "syn 1.0.105", ] [[package]] @@ -5394,9 +5523,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if 1.0.0", "serde", @@ -5406,24 +5535,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", - "lazy_static", "log", - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "once_cell", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -5433,32 +5562,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ - "quote 1.0.18", + "quote 1.0.21", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "wasm-timer" @@ -5466,7 +5595,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.21", + "futures 0.3.25", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -5477,9 +5606,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", @@ -5559,43 +5688,100 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + [[package]] name = "windows_aarch64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + [[package]] name = "windows_i686_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + [[package]] name = "windows_i686_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + [[package]] name = "windows_x86_64_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + [[package]] name = "windows_x86_64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + [[package]] name = "winreg" version = "0.6.2" @@ -5673,39 +5859,39 @@ version = "4.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70bda49548edbe1158753b4bc39cf97c332a263fde622638b4111ecaec856a92" dependencies = [ - "base64 0.13.0", + "base64 0.13.1", "chrono", - "futures 0.3.21", - "http 0.2.7", + "futures 0.3.25", + "http 0.2.8", "hyper 0.13.10", "hyper-rustls", "log", - "percent-encoding 2.1.0", + "percent-encoding 2.2.0", "rustls 0.17.0", "seahash", "serde", "serde_json", "tokio 0.2.25", - "url 2.2.2", + "url 2.3.1", ] [[package]] name = "zeroize" -version = "1.5.5" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94693807d016b2f2d2e14420eb3bfcca689311ff775dcf113d74ea624b7cdf07" +checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" dependencies = [ - "proc-macro2 1.0.39", - "quote 1.0.18", - "syn 1.0.95", + "proc-macro2 1.0.47", + "quote 1.0.21", + "syn 1.0.105", "synstructure", ] diff --git a/Cargo.toml b/Cargo.toml index c96307216..df1c745cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,5 +5,43 @@ members = [ "autoendpoint", ] +[workspace.package] +version = "1.65.1" +authors = [ + "Ben Bangert ", + "JR Conlin ", + "Phil Jenvey ", + "Alex Crichton ", + "Mark Drobnak ", +] +edition = "2021" + +[workspace.dependencies] +# ideally, this would contain any crates that are shared between crates. +# there are some lingering code interdependencies that prevent that, but it should +# remain a goal for the overall refactor. +base64 = "0.20" +cadence = "0.29" +config = "0.13" +fernet = "0.2.0" +hex = "0.4.2" +lazy_static = "1.4" +log = { version = "0.4", features = ["max_level_info", "release_max_level_info"] } +openssl = "0.10" +# Using debug-logs avoids https://github.com/getsentry/sentry-rust/issues/237 +sentry = { version = "0.19", features = ["debug-logs", "with_error_chain"] } # Keep on 0.19 in order to work with our backend and use `with_error_chain` +serde = "1.0" +serde_derive = "1.0" +serde_dynamodb = "0.4" # 0.7+ requires carg 0.46+ +serde_json = "1.0" +slog = { version = "2.7", features = ["max_level_trace", "release_max_level_info"] } +slog-async = "2.6" +slog-envlogger = "2.2.0" +slog-mozlog-json = "0.1" +slog-scope = "4.4" +slog-stdlog = "4.1" +slog-term = "2.6" +uuid = { version = "1.1", features = ["serde", "v4"] } + [profile.release] debug = 1 diff --git a/autoendpoint/Cargo.toml b/autoendpoint/Cargo.toml index 98ac26e5b..39ca032d9 100644 --- a/autoendpoint/Cargo.toml +++ b/autoendpoint/Cargo.toml @@ -1,11 +1,31 @@ [package] name = "autoendpoint" -# Should match version in ../autopush/Cargo.toml -version = "1.65.0" -authors = ["Mark Drobnak ", "jrconlin "] -edition = "2021" +version.workspace = true +authors.workspace = true +edition.workspace = true [dependencies] +base64.workspace = true +cadence.workspace = true +config.workspace = true +fernet.workspace = true +hex.workspace = true +lazy_static.workspace = true +log.workspace = true +openssl.workspace = true +sentry.workspace = true +serde.workspace = true +serde_derive.workspace = true +serde_json.workspace = true +slog.workspace = true +slog-async.workspace = true +slog-envlogger.workspace = true +slog-mozlog-json.workspace = true +slog-scope.workspace = true +slog-stdlog.workspace = true +slog-term.workspace = true +uuid.workspace = true + # Using a fork temporarily until these three PRs are merged: # - https://github.com/pimeys/a2/pull/49 # - https://github.com/pimeys/a2/pull/48 @@ -22,39 +42,19 @@ again = { version = "0.1.2", default-features = false, features = ["log", "rand" async-trait = "0.1" autopush_common = { path = "../autopush-common" } backtrace = "0.3" -base64 = "0.13" -cadence = "0.29" -config = "0.13" docopt = "1.1.0" -fernet = "0.1.3" futures = "0.3" -hex = "0.4.2" jsonwebtoken = "8.0" -lazy_static = "1.4.0" -log = "0.4" -openssl = "0.10" rand = "0.8" regex = "1.4" reqwest = "0.10.6" # 0.11+ requires futures 0.3+ rusoto_core = "0.45.0" # 0.46+ requires futures 0.3+ rusoto_dynamodb = "0.45.0" # 0.46+ requires futures 0.3+ -# Using debug-logs avoids https://github.com/getsentry/sentry-rust/issues/237 -sentry = { version = "0.19", features = ["debug-logs"] } # Keep on 0.19 in order to work with our backend -serde = { version = "1.0", features = ["derive"] } serde_dynamodb = "0.6" # 0.7+ requires rusoto_dynamodb 0.46+ -serde_json = "1.0" -slog = { version = "2.7", features = ["max_level_trace", "release_max_level_error", "dynamic-keys"] } -slog-async = "2.6" -slog-envlogger = "2.2.0" -slog-mozlog-json = "0.1" -slog-scope = "4.4" -slog-stdlog = "4.1" -slog-term = "2.6" smallvec = "1.6" # for RUSTSEC-2021-0003 tokio = { version = "0.2", features = ["fs"] } # 1.1+ requires futures 0.3+ thiserror = "1.0" url = "2.2" -uuid = { version = "1.1", features = ["serde", "v4"] } validator = "0.15" validator_derive = "0.15" yup-oauth2 = "4.1.2" # 5.0+ requires tokio 1.1+ diff --git a/autoendpoint/src/extractors/notification.rs b/autoendpoint/src/extractors/notification.rs index 02792e18a..86b29faed 100644 --- a/autoendpoint/src/extractors/notification.rs +++ b/autoendpoint/src/extractors/notification.rs @@ -53,7 +53,13 @@ impl FromRequest for Notification { let data = if data.is_empty() { None } else { - Some(base64::encode_config(data, base64::URL_SAFE_NO_PAD)) + Some(base64::encode_engine( + data, + &base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::URL_SAFE, + base64::engine::fast_portable::NO_PAD, + ), //base64::URL_SAFE_NO_PAD + )) }; let headers = NotificationHeaders::from_request(&req, data.is_some())?; @@ -158,7 +164,7 @@ impl Notification { map.insert( "channelID", - serde_json::to_value(&self.subscription.channel_id).unwrap(), + serde_json::to_value(self.subscription.channel_id).unwrap(), ); map.insert("version", serde_json::to_value(&self.message_id).unwrap()); map.insert("ttl", serde_json::to_value(self.headers.ttl).unwrap()); @@ -166,7 +172,7 @@ impl Notification { map.insert("timestamp", serde_json::to_value(self.timestamp).unwrap()); if let Some(data) = &self.data { - map.insert("data", serde_json::to_value(&data).unwrap()); + map.insert("data", serde_json::to_value(data).unwrap()); let headers: HashMap<_, _> = self.headers.clone().into(); map.insert("headers", serde_json::to_value(&headers).unwrap()); diff --git a/autoendpoint/src/extractors/subscription.rs b/autoendpoint/src/extractors/subscription.rs index c2e79169b..e36ad7307 100644 --- a/autoendpoint/src/extractors/subscription.rs +++ b/autoendpoint/src/extractors/subscription.rs @@ -196,12 +196,18 @@ fn version_1_validation(token: &[u8]) -> ApiResult<()> { /// in standard base64 encoding. (Both of these violate the VAPID RFC) /// Prior python versions ignored these errors, so we should too. fn decode_public_key(public_key: &str) -> ApiResult> { - let encoding = if public_key.contains(['/', '+']) { - base64::STANDARD_NO_PAD + let engine = if public_key.contains(['/', '+']) { + base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::STANDARD, + base64::engine::fast_portable::NO_PAD, + ) } else { - base64::URL_SAFE_NO_PAD + base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::URL_SAFE, + base64::engine::fast_portable::NO_PAD, + ) }; - base64::decode_config(public_key.trim_end_matches('='), encoding) + base64::decode_engine(public_key.trim_end_matches('='), &engine) .map_err(|e| VapidError::InvalidKey(e.to_string()).into()) } @@ -308,11 +314,14 @@ mod tests { #[test] fn vapid_aud_valid() { - let priv_key = base64::decode_config( + let priv_key = base64::decode_engine( "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - base64::STANDARD, + &base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::STANDARD, + base64::engine::fast_portable::NO_PAD, + ), ) .unwrap(); // Specify a potentially invalid padding. @@ -341,11 +350,14 @@ mod tests { #[test] fn vapid_aud_invalid() { - let priv_key = base64::decode_config( + let priv_key = base64::decode_engine( "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - base64::STANDARD, + &base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::STANDARD, + base64::engine::fast_portable::NO_PAD, + ), ) .unwrap(); let public_key = "BM3bVjW_wuZC54alIbqjTbaBNtthriVtdZlchOyOSdbVYeYQu2i5inJdft7jUWIAy4O9xHBbY196Gf-1odb8hds".to_owned(); @@ -383,11 +395,14 @@ mod tests { sub: String, } - let priv_key = base64::decode_config( + let priv_key = base64::decode_engine( "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - base64::STANDARD, + &base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::STANDARD, + base64::engine::fast_portable::NO_PAD, + ), ) .unwrap(); let public_key = "BM3bVjW_wuZC54alIbqjTbaBNtthriVtdZlchOyOSdbVYeYQu2i5inJdft7jUWIAy4O9xHBbY196Gf-1odb8hds".to_owned(); @@ -426,11 +441,14 @@ mod tests { sub: String, } - let priv_key = base64::decode_config( + let priv_key = base64::decode_engine( "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - base64::STANDARD, + &base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::STANDARD, + base64::engine::fast_portable::NO_PAD, + ), ) .unwrap(); // pretty much matches the kind of key we get from some partners. @@ -496,11 +514,14 @@ mod tests { sub: Option, } - let priv_key = base64::decode_config( + let priv_key = base64::decode_engine( "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - base64::STANDARD, + &base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::STANDARD, + base64::engine::fast_portable::NO_PAD, + ), ) .unwrap(); let public_key = "BM3bVjW_wuZC54alIbqjTbaBNtthriVtdZlchOyOSdbVYeYQu2i5inJdft7jUWIAy4O9xHBbY196Gf-1odb8hds".to_owned(); diff --git a/autoendpoint/src/metrics.rs b/autoendpoint/src/metrics.rs index 964e47609..ba7bfefd5 100644 --- a/autoendpoint/src/metrics.rs +++ b/autoendpoint/src/metrics.rs @@ -34,8 +34,12 @@ impl Drop for Metrics { if let Some(client) = self.client.as_ref() { if let Some(timer) = self.timer.as_ref() { let lapse = (Instant::now() - timer.start).as_millis() as u64; - trace!("⌚ Ending timer at nanos: {:?} : {:?}", &timer.label, lapse; - tags); + trace!( + "⌚ Ending timer at nanos: {:?} : {:?} [{:?}]", + &timer.label, + lapse, + tags + ); let mut tagged = client.time_with_tags(&timer.label, lapse); // Include any "hard coded" tags. // tagged = tagged.with_tag("version", env!("CARGO_PKG_VERSION")); @@ -122,7 +126,7 @@ impl Metrics { mtags.extend(t.tags) } - trace!("⌚ Starting timer... {:?}", &label; &mtags); + trace!("⌚ Starting timer... {:?} [{:?}]", &label, &mtags); self.timer = Some(MetricTimer { label: label.to_owned(), start: Instant::now(), @@ -152,7 +156,7 @@ impl Metrics { match tagged.try_send() { Err(e) => { // eat the metric, but log the error - warn!("⚠️ Metric {} error: {:?} ", label, e; mtags); + warn!("⚠️ Metric {} error: {:?} [{:?}]", label, e, mtags); } Ok(v) => trace!("☑️ {:?}", v.as_metric_str()), } diff --git a/autoendpoint/src/settings.rs b/autoendpoint/src/settings.rs index 1047992c1..fef476894 100644 --- a/autoendpoint/src/settings.rs +++ b/autoendpoint/src/settings.rs @@ -123,7 +123,7 @@ impl Settings { /// Initialize the fernet encryption instance pub fn make_fernet(&self) -> MultiFernet { - let keys = &self.crypto_keys.replace('"', "").replace(' ', ""); + let keys = &self.crypto_keys.replace(['"', ' '], ""); let fernets = Self::read_list_from_str(keys, "Invalid AUTOEND_CRYPTO_KEYS") .map(|key| { debug!("Fernet keys: {:?}", &key); @@ -135,7 +135,7 @@ impl Settings { /// Get the list of auth hash keys pub fn auth_keys(&self) -> Vec { - let keys = &self.auth_keys.replace('"', "").replace(' ', ""); + let keys = &self.auth_keys.replace(['"', ' '], ""); Self::read_list_from_str(keys, "Invalid AUTOEND_AUTH_KEYS") .map(|v| v.to_owned()) .collect() diff --git a/autoendpoint/src/tags.rs b/autoendpoint/src/tags.rs index 7c8070e2c..b23c06a9e 100644 --- a/autoendpoint/src/tags.rs +++ b/autoendpoint/src/tags.rs @@ -92,6 +92,7 @@ impl Tags { } } +/* impl slog::KV for Tags { fn serialize( &self, @@ -104,6 +105,7 @@ impl slog::KV for Tags { Ok(()) } } +*/ impl FromRequest for Tags { type Config = (); diff --git a/autopush-common/Cargo.toml b/autopush-common/Cargo.toml index 0d7223e9e..0d4b1d47a 100644 --- a/autopush-common/Cargo.toml +++ b/autopush-common/Cargo.toml @@ -1,53 +1,49 @@ [package] name = "autopush_common" -# Should match version in ../autopush/Cargo.toml -version = "1.65.0" -authors = [ - "Ben Bangert ", - "JR Conlin ", - "Alex Crichton ", - "Phil Jenvey ", -] -edition = "2021" +version.workspace = true +authors.workspace = true +edition.workspace = true [lib] name = "autopush_common" [dependencies] -base64 = "0.13" -cadence = "0.29" +base64.workspace = true +cadence.workspace = true +config.workspace = true +fernet.workspace = true +hex.workspace = true +lazy_static.workspace = true +log.workspace = true +openssl.workspace = true +sentry.workspace = true +serde.workspace = true +serde_derive.workspace = true +serde_dynamodb.workspace = true +serde_json.workspace = true +slog.workspace = true +slog-async.workspace = true +slog-envlogger.workspace = true +slog-mozlog-json.workspace = true +slog-scope.workspace = true +slog-stdlog.workspace = true +slog-term.workspace = true +uuid.workspace = true + chrono = "0.4" -config = "0.13" error-chain = "0.12" -fernet = "0.1.3" futures = "0.1.29" # 0.1.30 requires hyper 0.13+ futures-backoff = "0.1.0" -hex = "0.4.2" httparse = "1.3" hyper = "0.12.36" # 0.13+ requires too many changes -lazy_static = "1.4.0" -log = { version = "0.4", features = ["max_level_info", "release_max_level_info"] } mozsvc-common = "0.1.1" -openssl = "0.10" rand = "0.8" regex = "1.4" reqwest = "0.9.24" # 0.10+ requires futures 0.3+ rusoto_core = "0.42.0" # 0.46+ requires futures 0.3+ rusoto_credential = "0.42.0" # 0.46+ requires futures 0.3+ rusoto_dynamodb = "0.42.0" # 0.46+ requires futures 0.3+ -sentry = { version = "0.19", features = ["with_error_chain"] } # 0.20+ requires new sentry server -serde = "1.0" -serde_derive = "1.0" -serde_dynamodb = "0.4.1" # 0.7+ requires rusoto 0.46+ -serde_json = "1.0" -slog = { version = "2.7", features = ["max_level_trace", "release_max_level_info"] } -slog-async = "2.6.0" -slog-term = "2.6.0" -slog-mozlog-json = "0.1.0" -slog-scope = "4.4.0" -slog-stdlog = "4.1.0" smallvec = "1.6" # for RUSTSEC-2021-0003 tokio-core = "0.1.17" tungstenite = { version = "0.9.2", default-features = false } # 0.10+ requires hyper 0.13+ url = "2.2" -uuid = { version = "1.1", features = ["serde", "v4"] } diff --git a/autopush-common/src/db/models.rs b/autopush-common/src/db/models.rs index 3be9c5cbe..b55ca812c 100644 --- a/autopush-common/src/db/models.rs +++ b/autopush-common/src/db/models.rs @@ -149,7 +149,7 @@ impl DynamoDbNotification { fn parse_sort_key(key: &str) -> Result { lazy_static! { static ref RE: RegexSet = - RegexSet::new(&[r"^01:\S+:\S+$", r"^02:\d+:\S+$", r"^\S{3,}:\S+$",]).unwrap(); + RegexSet::new([r"^01:\S+:\S+$", r"^02:\d+:\S+$", r"^\S{3,}:\S+$",]).unwrap(); } if !RE.is_match(key) { return Err("Invalid chidmessageid".into()); diff --git a/autopush-common/src/endpoint.rs b/autopush-common/src/endpoint.rs index db2d34adf..07961cf79 100644 --- a/autopush-common/src/endpoint.rs +++ b/autopush-common/src/endpoint.rs @@ -24,8 +24,14 @@ pub fn make_endpoint( base.extend(chid.as_bytes()); if let Some(k) = key { - let raw_key = - base64::decode_config(k, base64::URL_SAFE).chain_err(|| "Error encrypting payload")?; + let raw_key = base64::decode_engine( + k, + &base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::URL_SAFE, + base64::engine::fast_portable::PAD, + ), + ) + .chain_err(|| "Error encrypting payload")?; let key_digest = hash::hash(hash::MessageDigest::sha256(), &raw_key) .chain_err(|| "Error creating message digest for key")?; base.extend(key_digest.iter()); diff --git a/autopush-common/src/logging.rs b/autopush-common/src/logging.rs index 502d42c66..307ed891d 100644 --- a/autopush-common/src/logging.rs +++ b/autopush-common/src/logging.rs @@ -9,7 +9,7 @@ use slog_mozlog_json::MozLogJson; pub fn init_logging(json: bool) -> Result<()> { let logger = if json { let hostname = get_ec2_instance_id() - .map(&str::to_owned) + .map(str::to_owned) .or_else(get_hostname) .ok_or("Couldn't get_hostname")?; diff --git a/autopush/Cargo.toml b/autopush/Cargo.toml index 1e9f94b9a..4eea7a56d 100644 --- a/autopush/Cargo.toml +++ b/autopush/Cargo.toml @@ -1,52 +1,51 @@ [package] name = "autopush" -version = "1.65.0" -authors = [ - "Ben Bangert ", - "JR Conlin ", - "Alex Crichton ", - "Phil Jenvey ", -] -edition = "2021" +version.workspace = true +authors.workspace = true +edition.workspace = true [[bin]] name = "autopush_rs" path = "src/main.rs" [dependencies] +base64.workspace = true +cadence.workspace = true +config.workspace = true +fernet.workspace = true +hex.workspace = true +lazy_static.workspace = true +log.workspace = true +openssl.workspace = true +sentry.workspace = true +serde.workspace = true +serde_derive.workspace = true +serde_dynamodb.workspace = true +serde_json.workspace = true +slog.workspace = true +slog-async.workspace = true +slog-envlogger.workspace = true +slog-mozlog-json.workspace = true +slog-scope.workspace = true +slog-stdlog.workspace = true +slog-term.workspace = true +uuid.workspace = true + autopush_common = { path = "../autopush-common" } -base64 = "0.13" bytes = "0.4" # XXX: pin to < 0.5 for hyper 0.12 -cadence = "0.29" crossbeam-channel = "0.5" chrono = "0.4" -config = "0.13" docopt = "1.1.0" env_logger = "0.9" error-chain = "0.12" -fernet = "0.1.3" futures = "0.1.29" # XXX: pin to 0.1 until likely hyper 0.13 futures-locks = "0.5" # pin to 0.5 until futures update -hex = "0.4.2" httparse = "1.3" hyper = "^0.12.36" # pin to hyper 0.12 for now: 0.13 has many changes.. -lazy_static = "1.4.0" -log = { version = "0.4", features = ["max_level_info", "release_max_level_info"] } mozsvc-common = "0.2" -openssl = "0.10" reqwest = "0.9.24" # XXX: pin to < 0.10 until futures 0.3 rusoto_dynamodb = "0.42.0" # XXX: pin to 0.42 until futures 0.3 -sentry = { version = "0.18.1", features = ["with_error_chain"] } # pin to 0.18 for "error_chain" feature -serde = "1.0" -serde_derive = "1.0" -serde_dynamodb = "0.4.1" # 0.7+ requires rusoto 0.46+ -serde_json = "1.0" signal-hook = "0.3" -slog = { version = "2.7", features = ["max_level_trace", "release_max_level_info"] } -slog-async = "2.6" -slog-term = "2.6.0" -slog-mozlog-json = "0.1.0" -slog-scope = "4.4" smallvec = "1.6" # for RUSTSEC-2021-0003 # state_machine_future = { version = "0.1.6", features = ["debug_code_generation"] } state_machine_future = "0.2.0" @@ -57,5 +56,4 @@ tokio-service = "0.1.0" # XXX: pin tokio-tungstenite & tungstenite until hyper 0.13 tokio-tungstenite = { version = "0.9.0", default-features = false } # 0.10+ requires tokio 0.3+ tungstenite = { version = "0.9.2", default-features = false } # 0.10+ requires tokio 0.3+ -uuid = { version = "1.1", features = ["serde", "v4"] } woothee = "0.13" diff --git a/autopush/src/client.rs b/autopush/src/client.rs index 7c568fcc3..829737ff3 100644 --- a/autopush/src/client.rs +++ b/autopush/src/client.rs @@ -1193,25 +1193,22 @@ where // Filter out TTL expired messages let now = sec_since_epoch(); let srv = data.srv.clone(); - messages = messages - .into_iter() - .filter(|n| { - if !n.expired(now) { - return true; - } - if n.sortkey_timestamp.is_none() { - srv.handle.spawn( - srv.ddb - .delete_message(&webpush.message_month, &webpush.uaid, n) - .then(|_| { - debug!("Deleting expired message without sortkey_timestamp"); - Ok(()) - }), - ); - } - false - }) - .collect(); + messages.retain(|n| { + if !n.expired(now) { + return true; + } + if n.sortkey_timestamp.is_none() { + srv.handle.spawn( + srv.ddb + .delete_message(&webpush.message_month, &webpush.uaid, n) + .then(|_| { + debug!("Deleting expired message without sortkey_timestamp"); + Ok(()) + }), + ); + } + false + }); webpush.flags.increment_storage = !include_topic && timestamp.is_some(); // If there's still messages send them out if !messages.is_empty() { diff --git a/autopush/src/server/mod.rs b/autopush/src/server/mod.rs index 96d33e909..79a5e6cf5 100644 --- a/autopush/src/server/mod.rs +++ b/autopush/src/server/mod.rs @@ -18,7 +18,7 @@ use futures::{task, try_ready}; use futures::{Async, AsyncSink, Future, Poll, Sink, StartSend, Stream}; use hyper::{server::conn::Http, StatusCode}; use openssl::ssl::SslAcceptor; -use sentry::{self, capture_message, integrations::panic::register_panic_handler}; +use sentry::{self, capture_message}; use serde_json::{self, json}; use tokio_core::net::TcpListener; use tokio_core::reactor::{Core, Handle, Timeout}; @@ -94,7 +94,6 @@ impl AutopushServer { ..Default::default() }, )); - register_panic_handler(); Some(guard) } else { None From 7da8f83165f7fa6d39172c33524e1891d414208d Mon Sep 17 00:00:00 2001 From: jrconlin Date: Tue, 13 Dec 2022 10:56:27 -0800 Subject: [PATCH 2/9] f update Docker --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7fe6f7cca..926310b29 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.61-buster as builder +FROM rust:1.65-buster as builder ARG CRATE ADD . /app From 653364a89cd1e6146b140bc4c7f1ff1634fb2d55 Mon Sep 17 00:00:00 2001 From: jrconlin Date: Tue, 13 Dec 2022 15:09:56 -0800 Subject: [PATCH 3/9] f fix padding * Add local overrides to contract test script for local testing --- autoendpoint/src/extractors/subscription.rs | 15 +++++++-------- autopush-common/src/endpoint.rs | 7 ++++++- autopush/src/client.rs | 11 +++++++---- tests/test_integration_all_rust.py | 12 +++++++++--- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/autoendpoint/src/extractors/subscription.rs b/autoendpoint/src/extractors/subscription.rs index e36ad7307..256b02a55 100644 --- a/autoendpoint/src/extractors/subscription.rs +++ b/autoendpoint/src/extractors/subscription.rs @@ -196,16 +196,15 @@ fn version_1_validation(token: &[u8]) -> ApiResult<()> { /// in standard base64 encoding. (Both of these violate the VAPID RFC) /// Prior python versions ignored these errors, so we should too. fn decode_public_key(public_key: &str) -> ApiResult> { + let padding = if public_key.contains('=') { + base64::engine::fast_portable::PAD + } else { + base64::engine::fast_portable::NO_PAD + }; let engine = if public_key.contains(['/', '+']) { - base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::STANDARD, - base64::engine::fast_portable::NO_PAD, - ) + base64::engine::fast_portable::FastPortable::from(&base64::alphabet::STANDARD, padding) } else { - base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::URL_SAFE, - base64::engine::fast_portable::NO_PAD, - ) + base64::engine::fast_portable::FastPortable::from(&base64::alphabet::URL_SAFE, padding) }; base64::decode_engine(public_key.trim_end_matches('='), &engine) .map_err(|e| VapidError::InvalidKey(e.to_string()).into()) diff --git a/autopush-common/src/endpoint.rs b/autopush-common/src/endpoint.rs index 07961cf79..2ccce6841 100644 --- a/autopush-common/src/endpoint.rs +++ b/autopush-common/src/endpoint.rs @@ -24,11 +24,16 @@ pub fn make_endpoint( base.extend(chid.as_bytes()); if let Some(k) = key { + let padding = if k.contains('=') { + base64::engine::fast_portable::PAD + } else { + base64::engine::fast_portable::NO_PAD + }; let raw_key = base64::decode_engine( k, &base64::engine::fast_portable::FastPortable::from( &base64::alphabet::URL_SAFE, - base64::engine::fast_portable::PAD, + padding, ), ) .chain_err(|| "Error encrypting payload")?; diff --git a/autopush/src/client.rs b/autopush/src/client.rs index 829737ff3..a562b650a 100644 --- a/autopush/src/client.rs +++ b/autopush/src/client.rs @@ -990,10 +990,13 @@ where &endpoint, webpush.deferred_user_registration.as_ref(), ), - Err(_) => Box::new(future::ok(RegisterResponse::Error { - error_msg: "Failed to generate endpoint".to_string(), - status: 400, - })), + Err(e) => { + error!("make_endpoint: {:?}", e); + Box::new(future::ok(RegisterResponse::Error { + error_msg: "Failed to generate endpoint".to_string(), + status: 400, + })) + } }; transition!(AwaitRegister { channel_id, diff --git a/tests/test_integration_all_rust.py b/tests/test_integration_all_rust.py index 219d971ac..9b659fd4c 100644 --- a/tests/test_integration_all_rust.py +++ b/tests/test_integration_all_rust.py @@ -58,7 +58,7 @@ MESSAGE_TABLE = os.environ.get("MESSAGE_TABLE", "message_int_test") MSG_LIMIT = 20 -CRYPTO_KEY = Fernet.generate_key() +CRYPTO_KEY = os.environ.get("CRYPTO_KEY") or Fernet.generate_key() CONNECTION_PORT = 9150 ENDPOINT_PORT = 9160 ROUTER_PORT = 9170 @@ -630,9 +630,15 @@ def setup_module(): os.environ["RUST_LOG"] = RUST_LOG connection_binary = get_rust_binary_path("autopush_rs") - setup_connection_server(connection_binary) + if not os.environ.get("SKIP_CONNECTION"): + setup_connection_server(connection_binary) + else: + print("@@@ Skipping start of connection server") setup_megaphone_server(connection_binary) - setup_endpoint_server() + if not os.environ.get("SKIP_ENDPOINT"): + setup_endpoint_server() + else: + print ("@@@ Skipping start of endpoint") time.sleep(2) From ba9a40ec00997c6d4258025c046ce68afe080bff Mon Sep 17 00:00:00 2001 From: jrconlin Date: Tue, 13 Dec 2022 15:57:58 -0800 Subject: [PATCH 4/9] f always NO_PAD --- autoendpoint/src/extractors/subscription.rs | 21 ++++++++++++--------- autopush-common/src/endpoint.rs | 9 ++------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/autoendpoint/src/extractors/subscription.rs b/autoendpoint/src/extractors/subscription.rs index 256b02a55..a3ab550ae 100644 --- a/autoendpoint/src/extractors/subscription.rs +++ b/autoendpoint/src/extractors/subscription.rs @@ -196,18 +196,21 @@ fn version_1_validation(token: &[u8]) -> ApiResult<()> { /// in standard base64 encoding. (Both of these violate the VAPID RFC) /// Prior python versions ignored these errors, so we should too. fn decode_public_key(public_key: &str) -> ApiResult> { - let padding = if public_key.contains('=') { - base64::engine::fast_portable::PAD - } else { - base64::engine::fast_portable::NO_PAD - }; let engine = if public_key.contains(['/', '+']) { - base64::engine::fast_portable::FastPortable::from(&base64::alphabet::STANDARD, padding) + base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::STANDARD, + base64::engine::fast_portable::NO_PAD, + ) } else { - base64::engine::fast_portable::FastPortable::from(&base64::alphabet::URL_SAFE, padding) + base64::engine::fast_portable::FastPortable::from( + &base64::alphabet::URL_SAFE, + base64::engine::fast_portable::NO_PAD, + ) }; - base64::decode_engine(public_key.trim_end_matches('='), &engine) - .map_err(|e| VapidError::InvalidKey(e.to_string()).into()) + base64::decode_engine(public_key.trim_end_matches('='), &engine).map_err(|e| { + error!("decode_public_key: {:?}", e); + VapidError::InvalidKey(e.to_string()).into() + }) } /// `/webpush/v2/` validations diff --git a/autopush-common/src/endpoint.rs b/autopush-common/src/endpoint.rs index 2ccce6841..e1138fb9f 100644 --- a/autopush-common/src/endpoint.rs +++ b/autopush-common/src/endpoint.rs @@ -24,16 +24,11 @@ pub fn make_endpoint( base.extend(chid.as_bytes()); if let Some(k) = key { - let padding = if k.contains('=') { - base64::engine::fast_portable::PAD - } else { - base64::engine::fast_portable::NO_PAD - }; let raw_key = base64::decode_engine( - k, + k.trim_end_matches('='), &base64::engine::fast_portable::FastPortable::from( &base64::alphabet::URL_SAFE, - padding, + base64::engine::fast_portable::NO_PAD, ), ) .chain_err(|| "Error encrypting payload")?; From fb7897f5927210180acc506014b168de849630dc Mon Sep 17 00:00:00 2001 From: jrconlin Date: Wed, 14 Dec 2022 15:32:50 -0800 Subject: [PATCH 5/9] f r's --- autoendpoint/src/extractors/notification.rs | 9 ++--- autoendpoint/src/extractors/subscription.rs | 37 +++++---------------- autopush-common/src/endpoint.rs | 17 +++++----- 3 files changed, 20 insertions(+), 43 deletions(-) diff --git a/autoendpoint/src/extractors/notification.rs b/autoendpoint/src/extractors/notification.rs index 86b29faed..38b332567 100644 --- a/autoendpoint/src/extractors/notification.rs +++ b/autoendpoint/src/extractors/notification.rs @@ -6,6 +6,7 @@ use crate::server::ServerState; use actix_web::dev::{Payload, PayloadStream}; use actix_web::web::Data; use actix_web::{web, FromRequest, HttpRequest}; +use autopush_common::endpoint::URL_SAFE_NO_PAD; use autopush_common::util::{ms_since_epoch, sec_since_epoch}; use cadence::CountedExt; use fernet::MultiFernet; @@ -53,13 +54,7 @@ impl FromRequest for Notification { let data = if data.is_empty() { None } else { - Some(base64::encode_engine( - data, - &base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::URL_SAFE, - base64::engine::fast_portable::NO_PAD, - ), //base64::URL_SAFE_NO_PAD - )) + Some(base64::encode_engine(data, &URL_SAFE_NO_PAD)) }; let headers = NotificationHeaders::from_request(&req, data.is_some())?; diff --git a/autoendpoint/src/extractors/subscription.rs b/autoendpoint/src/extractors/subscription.rs index a3ab550ae..4562771a6 100644 --- a/autoendpoint/src/extractors/subscription.rs +++ b/autoendpoint/src/extractors/subscription.rs @@ -8,6 +8,7 @@ use actix_web::dev::{Payload, PayloadStream}; use actix_web::web::Data; use actix_web::{FromRequest, HttpRequest}; use autopush_common::db::DynamoDbUser; +use autopush_common::endpoint::{STANDARD_NO_PAD, URL_SAFE_NO_PAD}; use autopush_common::util::sec_since_epoch; use cadence::{CountedExt, StatsdClient}; use futures::future::LocalBoxFuture; @@ -197,15 +198,9 @@ fn version_1_validation(token: &[u8]) -> ApiResult<()> { /// Prior python versions ignored these errors, so we should too. fn decode_public_key(public_key: &str) -> ApiResult> { let engine = if public_key.contains(['/', '+']) { - base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::STANDARD, - base64::engine::fast_portable::NO_PAD, - ) + STANDARD_NO_PAD } else { - base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::URL_SAFE, - base64::engine::fast_portable::NO_PAD, - ) + URL_SAFE_NO_PAD }; base64::decode_engine(public_key.trim_end_matches('='), &engine).map_err(|e| { error!("decode_public_key: {:?}", e); @@ -299,6 +294,7 @@ mod tests { use crate::error::ApiErrorKind; use crate::extractors::subscription::repad_base64; use crate::headers::vapid::{VapidError, VapidHeader, VapidHeaderWithKey, VapidVersionData}; + use autopush_common::endpoint::STANDARD_NO_PAD; use autopush_common::util::sec_since_epoch; use serde::{Deserialize, Serialize}; use std::str::FromStr; @@ -320,10 +316,7 @@ mod tests { "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - &base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::STANDARD, - base64::engine::fast_portable::NO_PAD, - ), + &STANDARD_NO_PAD, ) .unwrap(); // Specify a potentially invalid padding. @@ -356,10 +349,7 @@ mod tests { "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - &base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::STANDARD, - base64::engine::fast_portable::NO_PAD, - ), + &STANDARD_NO_PAD, ) .unwrap(); let public_key = "BM3bVjW_wuZC54alIbqjTbaBNtthriVtdZlchOyOSdbVYeYQu2i5inJdft7jUWIAy4O9xHBbY196Gf-1odb8hds".to_owned(); @@ -401,10 +391,7 @@ mod tests { "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - &base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::STANDARD, - base64::engine::fast_portable::NO_PAD, - ), + &STANDARD_NO_PAD, ) .unwrap(); let public_key = "BM3bVjW_wuZC54alIbqjTbaBNtthriVtdZlchOyOSdbVYeYQu2i5inJdft7jUWIAy4O9xHBbY196Gf-1odb8hds".to_owned(); @@ -447,10 +434,7 @@ mod tests { "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - &base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::STANDARD, - base64::engine::fast_portable::NO_PAD, - ), + &STANDARD_NO_PAD, ) .unwrap(); // pretty much matches the kind of key we get from some partners. @@ -520,10 +504,7 @@ mod tests { "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZImOgpRszunnU3j1\ oX5UQiX8KU4X2OdbENuvc/t8wpmhRANCAATN21Y1v8LmQueGpSG6o022gTbbYa4l\ bXWZXITsjknW1WHmELtouYpyXX7e41FiAMuDvcRwW2Nfehn/taHW/IXb", - &base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::STANDARD, - base64::engine::fast_portable::NO_PAD, - ), + &STANDARD_NO_PAD, ) .unwrap(); let public_key = "BM3bVjW_wuZC54alIbqjTbaBNtthriVtdZlchOyOSdbVYeYQu2i5inJdft7jUWIAy4O9xHBbY196Gf-1odb8hds".to_owned(); diff --git a/autopush-common/src/endpoint.rs b/autopush-common/src/endpoint.rs index e1138fb9f..55504c00d 100644 --- a/autopush-common/src/endpoint.rs +++ b/autopush-common/src/endpoint.rs @@ -1,9 +1,16 @@ use crate::errors::{Result, ResultExt}; +use base64::{ + alphabet::{STANDARD, URL_SAFE}, + engine::fast_portable::{FastPortable, NO_PAD}, +}; use fernet::MultiFernet; use openssl::hash; use url::Url; use uuid::Uuid; +pub const URL_SAFE_NO_PAD: FastPortable = FastPortable::from(&URL_SAFE, NO_PAD); +pub const STANDARD_NO_PAD: FastPortable = FastPortable::from(&STANDARD, NO_PAD); + /// Create an v1 or v2 WebPush endpoint from the identifiers /// /// Both endpoints use bytes instead of hex to reduce ID length. @@ -24,14 +31,8 @@ pub fn make_endpoint( base.extend(chid.as_bytes()); if let Some(k) = key { - let raw_key = base64::decode_engine( - k.trim_end_matches('='), - &base64::engine::fast_portable::FastPortable::from( - &base64::alphabet::URL_SAFE, - base64::engine::fast_portable::NO_PAD, - ), - ) - .chain_err(|| "Error encrypting payload")?; + let raw_key = base64::decode_engine(k.trim_end_matches('='), &URL_SAFE_NO_PAD) + .chain_err(|| "Error encrypting payload")?; let key_digest = hash::hash(hash::MessageDigest::sha256(), &raw_key) .chain_err(|| "Error creating message digest for key")?; base.extend(key_digest.iter()); From 01c2f2673c3ffaa6919531b039528fb9eecb9b7c Mon Sep 17 00:00:00 2001 From: jrconlin Date: Thu, 15 Dec 2022 09:23:10 -0800 Subject: [PATCH 6/9] f remove unused crates --- Cargo.lock | 195 ++++++------------------------------- autoendpoint/Cargo.toml | 1 - autopush-common/Cargo.toml | 2 - autopush/Cargo.toml | 1 - 4 files changed, 31 insertions(+), 168 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4e41189ae..4f99c19be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -36,33 +36,16 @@ dependencies = [ "tokio-util 0.3.1", ] -[[package]] -name = "actix-codec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe" -dependencies = [ - "bitflags", - "bytes 1.3.0", - "futures-core", - "futures-sink", - "log", - "memchr", - "pin-project-lite 0.2.9", - "tokio 1.23.0", - "tokio-util 0.7.4", -] - [[package]] name = "actix-connect" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "177837a10863f15ba8d3ae3ec12fac1099099529ed20083a27fdfe247381d0dc" dependencies = [ - "actix-codec 0.3.0", - "actix-rt 1.1.1", - "actix-service 1.0.6", - "actix-utils 2.0.0", + "actix-codec", + "actix-rt", + "actix-service", + "actix-utils", "derive_more", "either", "futures-util", @@ -92,12 +75,12 @@ version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2be6b66b62a794a8e6d366ac9415bb7d475ffd1e9f4671f38c1d8a8a5df950b3" dependencies = [ - "actix-codec 0.3.0", + "actix-codec", "actix-connect", - "actix-rt 1.1.1", - "actix-service 1.0.6", + "actix-rt", + "actix-service", "actix-threadpool", - "actix-utils 2.0.0", + "actix-utils", "base64 0.13.1", "bitflags", "brotli", @@ -117,7 +100,7 @@ dependencies = [ "httparse", "indexmap", "itoa 0.4.8", - "language-tags 0.2.2", + "language-tags", "lazy_static", "log", "mime", @@ -133,35 +116,6 @@ dependencies = [ "time 0.2.27", ] -[[package]] -name = "actix-http" -version = "3.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c83abf9903e1f0ad9973cc4f7b9767fd5a03a583f51a5b7a339e07987cd2724" -dependencies = [ - "actix-codec 0.5.0", - "actix-rt 2.7.0", - "actix-service 2.0.2", - "actix-utils 3.0.1", - "ahash", - "bitflags", - "bytes 1.3.0", - "bytestring", - "derive_more", - "encoding_rs", - "futures-core", - "http 0.2.8", - "httparse", - "httpdate 1.0.2", - "itoa 1.0.4", - "language-tags 0.3.2", - "mime", - "percent-encoding 2.2.0", - "pin-project-lite 0.2.9", - "smallvec 1.10.0", - "tracing", -] - [[package]] name = "actix-macros" version = "0.1.3" @@ -200,26 +154,16 @@ dependencies = [ "tokio 0.2.25", ] -[[package]] -name = "actix-rt" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ea16c295198e958ef31930a6ef37d0fb64e9ca3b6116e6b93a8bdae96ee1000" -dependencies = [ - "futures-core", - "tokio 1.23.0", -] - [[package]] name = "actix-server" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45407e6e672ca24784baa667c5d32ef109ccdd8d5e0b5ebb9ef8a67f4dfb708e" dependencies = [ - "actix-codec 0.3.0", - "actix-rt 1.1.1", - "actix-service 1.0.6", - "actix-utils 2.0.0", + "actix-codec", + "actix-rt", + "actix-service", + "actix-utils", "futures-channel", "futures-util", "log", @@ -240,17 +184,6 @@ dependencies = [ "pin-project 0.4.30", ] -[[package]] -name = "actix-service" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a" -dependencies = [ - "futures-core", - "paste", - "pin-project-lite 0.2.9", -] - [[package]] name = "actix-testing" version = "1.0.1" @@ -258,9 +191,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c" dependencies = [ "actix-macros", - "actix-rt 1.1.1", + "actix-rt", "actix-server", - "actix-service 1.0.6", + "actix-service", "log", "socket2 0.3.19", ] @@ -286,9 +219,9 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24789b7d7361cf5503a504ebe1c10806896f61e96eca9a7350e23001aca715fb" dependencies = [ - "actix-codec 0.3.0", - "actix-service 1.0.6", - "actix-utils 2.0.0", + "actix-codec", + "actix-service", + "actix-utils", "futures-util", ] @@ -298,9 +231,9 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e9022dec56632d1d7979e59af14f0597a28a830a9c1c7fec8b2327eb9f16b5a" dependencies = [ - "actix-codec 0.3.0", - "actix-rt 1.1.1", - "actix-service 1.0.6", + "actix-codec", + "actix-rt", + "actix-service", "bitflags", "bytes 0.5.6", "either", @@ -312,33 +245,23 @@ dependencies = [ "slab", ] -[[package]] -name = "actix-utils" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" -dependencies = [ - "local-waker", - "pin-project-lite 0.2.9", -] - [[package]] name = "actix-web" version = "3.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6534a126df581caf443ba2751cab42092c89b3f1d06a9d829b1e17edfe3e277" dependencies = [ - "actix-codec 0.3.0", - "actix-http 2.2.2", + "actix-codec", + "actix-http", "actix-macros", "actix-router", - "actix-rt 1.1.1", + "actix-rt", "actix-server", - "actix-service 1.0.6", + "actix-service", "actix-testing", "actix-threadpool", "actix-tls", - "actix-utils 2.0.0", + "actix-utils", "actix-web-codegen", "awc", "bytes 0.5.6", @@ -513,8 +436,7 @@ version = "1.65.1" dependencies = [ "a2", "actix-cors", - "actix-http 3.2.2", - "actix-rt 1.1.1", + "actix-rt", "actix-web", "again", "async-trait", @@ -605,7 +527,6 @@ dependencies = [ "tokio-core", "tokio-io", "tokio-openssl", - "tokio-service", "tokio-tungstenite", "tungstenite", "uuid 1.2.2", @@ -637,7 +558,6 @@ dependencies = [ "rusoto_core 0.42.0", "rusoto_credential 0.42.0", "rusoto_dynamodb 0.42.0", - "sentry", "serde", "serde_derive", "serde_dynamodb 0.4.1", @@ -649,7 +569,6 @@ dependencies = [ "slog-scope", "slog-stdlog", "slog-term", - "smallvec 1.10.0", "tokio-core", "tungstenite", "url 2.3.1", @@ -662,10 +581,10 @@ version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b381e490e7b0cfc37ebc54079b0413d8093ef43d14a4e4747083f7fa47a9e691" dependencies = [ - "actix-codec 0.3.0", - "actix-http 2.2.2", - "actix-rt 1.1.1", - "actix-service 1.0.6", + "actix-codec", + "actix-http", + "actix-rt", + "actix-service", "base64 0.13.1", "bytes 0.5.6", "cfg-if 1.0.0", @@ -2397,12 +2316,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" -[[package]] -name = "language-tags" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" - [[package]] name = "lazy_static" version = "1.4.0" @@ -2430,12 +2343,6 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" -[[package]] -name = "local-waker" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1" - [[package]] name = "lock_api" version = "0.3.4" @@ -2898,16 +2805,6 @@ dependencies = [ "parking_lot_core 0.8.6", ] -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api 0.4.9", - "parking_lot_core 0.9.5", -] - [[package]] name = "parking_lot_core" version = "0.6.3" @@ -2937,25 +2834,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "parking_lot_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall 0.2.16", - "smallvec 1.10.0", - "windows-sys 0.42.0", -] - -[[package]] -name = "paste" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1c2c742266c2f1041c914ba65355a83ae8747b05f208319784083583494b4b" - [[package]] name = "pathdiff" version = "0.2.1" @@ -4826,9 +4704,7 @@ dependencies = [ "memchr", "mio 0.8.5", "num_cpus", - "parking_lot 0.12.1", "pin-project-lite 0.2.9", - "signal-hook-registry", "socket2 0.4.7", "windows-sys 0.42.0", ] @@ -5010,15 +4886,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "tokio-service" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" -dependencies = [ - "futures 0.1.31", -] - [[package]] name = "tokio-signal" version = "0.2.9" diff --git a/autoendpoint/Cargo.toml b/autoendpoint/Cargo.toml index 39ca032d9..f85e1d2b0 100644 --- a/autoendpoint/Cargo.toml +++ b/autoendpoint/Cargo.toml @@ -37,7 +37,6 @@ a2 = { git = "https://github.com/mozilla-services/a2.git", branch = "autoendpoin actix-web = "3.3" actix-rt = "1.1" # 2.0+ requires futures 0.3+ actix-cors = "0.5" -actix-http = "3.0" again = { version = "0.1.2", default-features = false, features = ["log", "rand"] } async-trait = "0.1" autopush_common = { path = "../autopush-common" } diff --git a/autopush-common/Cargo.toml b/autopush-common/Cargo.toml index 0d4b1d47a..d65ccffb4 100644 --- a/autopush-common/Cargo.toml +++ b/autopush-common/Cargo.toml @@ -16,7 +16,6 @@ hex.workspace = true lazy_static.workspace = true log.workspace = true openssl.workspace = true -sentry.workspace = true serde.workspace = true serde_derive.workspace = true serde_dynamodb.workspace = true @@ -43,7 +42,6 @@ reqwest = "0.9.24" # 0.10+ requires futures 0.3+ rusoto_core = "0.42.0" # 0.46+ requires futures 0.3+ rusoto_credential = "0.42.0" # 0.46+ requires futures 0.3+ rusoto_dynamodb = "0.42.0" # 0.46+ requires futures 0.3+ -smallvec = "1.6" # for RUSTSEC-2021-0003 tokio-core = "0.1.17" tungstenite = { version = "0.9.2", default-features = false } # 0.10+ requires hyper 0.13+ url = "2.2" diff --git a/autopush/Cargo.toml b/autopush/Cargo.toml index 4eea7a56d..0861414e4 100644 --- a/autopush/Cargo.toml +++ b/autopush/Cargo.toml @@ -52,7 +52,6 @@ state_machine_future = "0.2.0" tokio-core = "0.1" tokio-io = "0.1.13" tokio-openssl = "0.3.0" # XXX: pin to < 0.4 until hyper 0.13 -tokio-service = "0.1.0" # XXX: pin tokio-tungstenite & tungstenite until hyper 0.13 tokio-tungstenite = { version = "0.9.0", default-features = false } # 0.10+ requires tokio 0.3+ tungstenite = { version = "0.9.2", default-features = false } # 0.10+ requires tokio 0.3+ From 5eaecc23a2d148eeab4a7137a9313c5e04819996 Mon Sep 17 00:00:00 2001 From: jrconlin Date: Thu, 15 Dec 2022 09:29:55 -0800 Subject: [PATCH 7/9] f 1.66 clippy --- autoendpoint/src/extractors/notification.rs | 2 +- autopush-common/src/notification.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autoendpoint/src/extractors/notification.rs b/autoendpoint/src/extractors/notification.rs index 38b332567..1f8731d2b 100644 --- a/autoendpoint/src/extractors/notification.rs +++ b/autoendpoint/src/extractors/notification.rs @@ -170,7 +170,7 @@ impl Notification { map.insert("data", serde_json::to_value(data).unwrap()); let headers: HashMap<_, _> = self.headers.clone().into(); - map.insert("headers", serde_json::to_value(&headers).unwrap()); + map.insert("headers", serde_json::to_value(headers).unwrap()); } map diff --git a/autopush-common/src/notification.rs b/autopush-common/src/notification.rs index 5c205a28e..dfd52e229 100644 --- a/autopush-common/src/notification.rs +++ b/autopush-common/src/notification.rs @@ -57,7 +57,7 @@ impl Notification { } pub fn expired(&self, at_sec: u64) -> bool { - at_sec >= self.timestamp as u64 + self.ttl as u64 + at_sec >= self.timestamp + self.ttl } } From fd5dc4237e970afeb29b4762d040c11c476372e8 Mon Sep 17 00:00:00 2001 From: jrconlin Date: Thu, 15 Dec 2022 10:09:30 -0800 Subject: [PATCH 8/9] f fmt --- autopush-common/src/notification.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autopush-common/src/notification.rs b/autopush-common/src/notification.rs index dfd52e229..f5d0e13dc 100644 --- a/autopush-common/src/notification.rs +++ b/autopush-common/src/notification.rs @@ -57,7 +57,7 @@ impl Notification { } pub fn expired(&self, at_sec: u64) -> bool { - at_sec >= self.timestamp + self.ttl + at_sec >= self.timestamp + self.ttl } } From fbff7d299f49b8ced53b790bafcfac7f2928e7db Mon Sep 17 00:00:00 2001 From: jrconlin Date: Thu, 15 Dec 2022 15:32:13 -0800 Subject: [PATCH 9/9] f restore KV for tags --- Cargo.toml | 2 +- autoendpoint/src/metrics.rs | 8 ++++---- autoendpoint/src/tags.rs | 2 -- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index df1c745cc..11f8c0a47 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,7 @@ serde = "1.0" serde_derive = "1.0" serde_dynamodb = "0.4" # 0.7+ requires carg 0.46+ serde_json = "1.0" -slog = { version = "2.7", features = ["max_level_trace", "release_max_level_info"] } +slog = { version = "2.7", features = ["dynamic-keys", "max_level_trace", "release_max_level_info"] } slog-async = "2.6" slog-envlogger = "2.2.0" slog-mozlog-json = "0.1" diff --git a/autoendpoint/src/metrics.rs b/autoendpoint/src/metrics.rs index ba7bfefd5..373037424 100644 --- a/autoendpoint/src/metrics.rs +++ b/autoendpoint/src/metrics.rs @@ -35,9 +35,9 @@ impl Drop for Metrics { if let Some(timer) = self.timer.as_ref() { let lapse = (Instant::now() - timer.start).as_millis() as u64; trace!( - "⌚ Ending timer at nanos: {:?} : {:?} [{:?}]", + "⌚ Ending timer at nanos: {:?} : {:?}", &timer.label, - lapse, + lapse; tags ); let mut tagged = client.time_with_tags(&timer.label, lapse); @@ -126,7 +126,7 @@ impl Metrics { mtags.extend(t.tags) } - trace!("⌚ Starting timer... {:?} [{:?}]", &label, &mtags); + trace!("⌚ Starting timer... {:?}", &label; &mtags); self.timer = Some(MetricTimer { label: label.to_owned(), start: Instant::now(), @@ -156,7 +156,7 @@ impl Metrics { match tagged.try_send() { Err(e) => { // eat the metric, but log the error - warn!("⚠️ Metric {} error: {:?} [{:?}]", label, e, mtags); + warn!("⚠️ Metric {} error: {:?}", label, e; mtags); } Ok(v) => trace!("☑️ {:?}", v.as_metric_str()), } diff --git a/autoendpoint/src/tags.rs b/autoendpoint/src/tags.rs index b23c06a9e..7c8070e2c 100644 --- a/autoendpoint/src/tags.rs +++ b/autoendpoint/src/tags.rs @@ -92,7 +92,6 @@ impl Tags { } } -/* impl slog::KV for Tags { fn serialize( &self, @@ -105,7 +104,6 @@ impl slog::KV for Tags { Ok(()) } } -*/ impl FromRequest for Tags { type Config = ();