diff --git a/Cargo.lock b/Cargo.lock index c3975918..fa6194ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,20 +4,18 @@ version = 3 [[package]] name = "a2" -version = "0.5.2" -source = "git+https://github.com/mozilla-services/a2.git?branch=autoendpoint#74c8588f2cc7d40e9c239897acb99031ceb29117" +version = "0.8.0" +source = "git+https://github.com/mozilla-services/a2?branch=master#118a7793bb3edfa7f0b362bbe8d7114a161e2a12" dependencies = [ - "base64 0.12.3", + "base64 0.20.0", "erased-serde", - "futures 0.3.27", "http 0.2.9", - "hyper 0.13.10", + "hyper 0.14.26", "hyper-alpn", - "log", "openssl", "serde", - "serde_derive", "serde_json", + "thiserror", ] [[package]] @@ -40,25 +38,25 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite 0.2.9", "smallvec 1.10.0", - "tokio 1.27.0", - "tokio-util 0.7.7", + "tokio 1.28.1", + "tokio-util", ] [[package]] name = "actix-codec" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe" +checksum = "617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8" dependencies = [ "bitflags", "bytes 1.4.0", "futures-core", "futures-sink", - "log", "memchr", "pin-project-lite 0.2.9", - "tokio 1.27.0", - "tokio-util 0.7.7", + "tokio 1.28.1", + "tokio-util", + "tracing", ] [[package]] @@ -87,7 +85,7 @@ dependencies = [ "actix-service", "actix-utils", "ahash 0.8.3", - "base64 0.21.0", + "base64 0.21.2", "bitflags", "brotli", "bytes 1.4.0", @@ -96,10 +94,10 @@ dependencies = [ "encoding_rs", "flate2", "futures-core", - "h2 0.3.18", + "h2 0.3.19", "http 0.2.9", "httparse", - "httpdate 1.0.2", + "httpdate", "itoa 1.0.6", "language-tags", "local-channel", @@ -109,8 +107,8 @@ dependencies = [ "rand 0.8.5", "sha1", "smallvec 1.10.0", - "tokio 1.27.0", - "tokio-util 0.7.7", + "tokio 1.28.1", + "tokio-util", "tracing", "zstd", ] @@ -136,8 +134,8 @@ dependencies = [ "serde_json", "serde_urlencoded 0.7.1", "slab", - "socket2 0.4.9", - "tokio 1.27.0", + "socket2", + "tokio 1.28.1", ] [[package]] @@ -146,7 +144,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6" dependencies = [ - "quote 1.0.26", + "quote 1.0.28", "syn 1.0.109", ] @@ -171,7 +169,7 @@ checksum = "15265b6b8e2347670eb363c47fc8c75208b4a4994b27192f345fcbe707804f3e" dependencies = [ "actix-macros", "futures-core", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] @@ -187,8 +185,8 @@ dependencies = [ "futures-util", "mio 0.8.6", "num_cpus", - "socket2 0.4.9", - "tokio 1.27.0", + "socket2", + "tokio 1.28.1", "tracing", ] @@ -223,7 +221,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded 0.7.1", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] @@ -240,7 +238,7 @@ dependencies = [ "http 0.2.9", "log", "pin-project-lite 0.2.9", - "tokio-util 0.7.7", + "tokio-util", ] [[package]] @@ -289,8 +287,8 @@ dependencies = [ "serde_json", "serde_urlencoded 0.7.1", "smallvec 1.10.0", - "socket2 0.4.9", - "time 0.3.20", + "socket2", + "time 0.3.21", "url 2.3.1", ] @@ -301,8 +299,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9" dependencies = [ "actix-router", - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "syn 1.0.109", ] @@ -316,7 +314,7 @@ dependencies = [ "actix-http", "actix-web", "futures-core", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] @@ -325,8 +323,8 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d44b8fee1ced9671ba043476deddef739dd0959bf77030b26b738cc591737a7" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "syn 1.0.109", ] @@ -362,7 +360,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.9", "once_cell", "version_check", ] @@ -374,16 +372,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if 1.0.0", - "getrandom 0.2.8", + "getrandom 0.2.9", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" dependencies = [ "memchr", ] @@ -414,9 +412,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" [[package]] name = "arc-swap" @@ -448,9 +446,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad445822218ce64be7a341abfb0b1ea43b5c23aa83902542a4542e78309d8e5e" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", @@ -459,13 +457,13 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4655ae1a7b0cdf149156f780c5bf3f1352bc53cbd9e0a361a7ef7b22947e965" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] @@ -474,9 +472,9 @@ version = "0.1.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 2.0.11", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] @@ -527,14 +525,14 @@ dependencies = [ "docopt", "env_logger 0.10.0", "fernet", - "futures 0.3.27", + "futures 0.3.28", "futures-locks 0.7.1", "futures-util", "hex", "lazy_static", "log", "mozsvc-common", - "reqwest 0.11.16", + "reqwest 0.11.18", "sentry", "sentry-actix", "sentry-core 0.29.3", @@ -548,7 +546,7 @@ dependencies = [ "slog-scope", "slog-stdlog", "slog-term", - "uuid 1.3.0", + "uuid 1.3.3", ] [[package]] @@ -557,17 +555,17 @@ version = "1.66.0" dependencies = [ "actix-web", "autopush_common", - "futures 0.3.27", + "futures 0.3.28", "futures-locks 0.7.1", - "reqwest 0.11.16", + "reqwest 0.11.18", "sentry", "serde", "serde_derive", "serde_json", "slog", "slog-scope", - "tokio 1.27.0", - "uuid 1.3.0", + "tokio 1.28.1", + "uuid 1.3.3", ] [[package]] @@ -581,12 +579,12 @@ dependencies = [ "fernet", "lazy_static", "mozsvc-common", - "reqwest 0.11.16", + "reqwest 0.11.18", "serde", "serde_derive", "slog", "slog-scope", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] @@ -608,11 +606,11 @@ dependencies = [ "cadence", "ctor", "futures-util", - "reqwest 0.11.16", + "reqwest 0.11.18", "serde_json", "slog-scope", - "tokio 1.27.0", - "uuid 1.3.0", + "tokio 1.28.1", + "uuid 1.3.3", ] [[package]] @@ -630,14 +628,14 @@ dependencies = [ "autoconnect_ws_sm", "autopush_common", "ctor", - "futures 0.3.27", + "futures 0.3.28", "mockall", "sentry", "serde_json", "slog-scope", "strum", "thiserror", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] @@ -652,13 +650,13 @@ dependencies = [ "autopush_common", "cadence", "ctor", - "futures 0.3.27", + "futures 0.3.28", "mockall", - "reqwest 0.11.16", + "reqwest 0.11.18", "slog-scope", "thiserror", - "tokio 1.27.0", - "uuid 1.3.0", + "tokio 1.28.1", + "uuid 1.3.3", ] [[package]] @@ -674,12 +672,13 @@ dependencies = [ "async-trait", "autopush_common", "backtrace", - "base64 0.21.0", + "base64 0.21.2", + "bytebuffer", "cadence", "config", "docopt", "fernet", - "futures 0.3.27", + "futures 0.3.28", "futures-util", "hex", "jsonwebtoken", @@ -690,7 +689,7 @@ dependencies = [ "openssl", "rand 0.8.5", "regex", - "reqwest 0.11.16", + "reqwest 0.11.18", "rusoto_core 0.47.0", "rusoto_dynamodb 0.47.0", "sentry", @@ -709,9 +708,9 @@ dependencies = [ "slog-term", "tempfile", "thiserror", - "tokio 1.27.0", + "tokio 1.28.1", "url 2.3.1", - "uuid 1.3.0", + "uuid 1.3.3", "validator", "validator_derive", "yup-oauth2", @@ -722,7 +721,7 @@ name = "autopush" version = "1.66.0" dependencies = [ "autopush_common", - "base64 0.21.0", + "base64 0.21.2", "bytes 0.4.12", "cadence", "chrono", @@ -767,7 +766,7 @@ dependencies = [ "tokio-openssl", "tokio-tungstenite", "tungstenite", - "uuid 1.3.0", + "uuid 1.3.3", "woothee", ] @@ -780,17 +779,17 @@ dependencies = [ "again", "async-trait", "backtrace", - "base64 0.21.0", + "base64 0.21.2", "cadence", "chrono", "config", "fernet", - "futures 0.3.27", + "futures 0.3.28", "futures-backoff", "futures-util", "hex", "httparse", - "hyper 0.14.25", + "hyper 0.14.26", "lazy_static", "log", "mockall", @@ -799,7 +798,7 @@ dependencies = [ "openssl", "rand 0.8.5", "regex", - "reqwest 0.11.16", + "reqwest 0.11.18", "rusoto_core 0.47.0", "rusoto_credential 0.47.0", "rusoto_dynamodb 0.47.0", @@ -820,11 +819,11 @@ dependencies = [ "tempfile", "thiserror", "tokio 0.2.25", - "tokio 1.27.0", + "tokio 1.28.1", "tokio-core", "tungstenite", "url 2.3.1", - "uuid 1.3.0", + "uuid 1.3.3", "woothee", ] @@ -841,14 +840,14 @@ dependencies = [ "actix-tls", "actix-utils", "ahash 0.7.6", - "base64 0.21.0", + "base64 0.21.2", "bytes 1.4.0", "cfg-if 1.0.0", "cookie 0.16.2", "derive_more", "futures-core", "futures-util", - "h2 0.3.18", + "h2 0.3.19", "http 0.2.9", "itoa 1.0.6", "log", @@ -859,7 +858,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded 0.7.1", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] @@ -872,7 +871,7 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide", + "miniz_oxide 0.6.2", "object", "rustc-demangle", ] @@ -894,21 +893,21 @@ checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" [[package]] name = "base64" -version = "0.12.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.13.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "bitflags" @@ -989,9 +988,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byte-tools" @@ -999,6 +998,15 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +[[package]] +name = "bytebuffer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2468af960a9069ae7f77b6c16836e0ccc13f0caf8c8856b942924241c72f7b" +dependencies = [ + "byteorder", +] + [[package]] name = "byteorder" version = "1.4.3" @@ -1039,9 +1047,9 @@ dependencies = [ [[package]] name = "cadence" -version = "0.29.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb681a7408f21c9d9dcb6638e340913ea260cc587518b5976510d2341f085a19" +checksum = "f39286bc075b023101dccdb79456a1334221c768b8faede0c2aff7ed29a9482d" dependencies = [ "crossbeam-channel", ] @@ -1092,16 +1100,6 @@ 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" @@ -1161,7 +1159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding 2.2.0", - "time 0.3.20", + "time 0.3.21", "version_check", ] @@ -1195,15 +1193,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" +checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" dependencies = [ "libc", ] @@ -1219,9 +1217,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils 0.8.15", @@ -1348,54 +1346,10 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ - "quote 1.0.26", + "quote 1.0.28", "syn 1.0.109", ] -[[package]] -name = "cxx" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2 1.0.54", - "quote 1.0.26", - "scratch", - "syn 2.0.11", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" -dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 2.0.11", -] - [[package]] name = "darling" version = "0.8.6" @@ -1437,7 +1391,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ "serde", - "uuid 1.3.0", + "uuid 1.3.3", ] [[package]] @@ -1447,8 +1401,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "rustc_version 0.4.0", "syn 1.0.109", ] @@ -1493,9 +1447,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "crypto-common", @@ -1615,13 +1569,13 @@ dependencies = [ [[package]] name = "errno" -version = "0.2.8" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" dependencies = [ "errno-dragonfly", "libc", - "winapi 0.3.9", + "windows-sys 0.48.0", ] [[package]] @@ -1650,8 +1604,8 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "syn 1.0.109", "synstructure", ] @@ -1673,13 +1627,13 @@ dependencies = [ [[package]] name = "fernet" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6dedfc944f4ac38cac8b74cb1c7b4fb73c175db232d6fa98e9bd1fd81908b89" +checksum = "3364d69f691f3903b1a71605fa04f40a7c2d259f0f0512347e36d19a63debf1f" dependencies = [ - "base64 0.13.1", + "base64 0.21.2", "byteorder", - "getrandom 0.2.8", + "getrandom 0.2.9", "openssl", "zeroize", ] @@ -1704,12 +1658,12 @@ checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.7.1", ] [[package]] @@ -1796,9 +1750,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -1822,9 +1776,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -1832,9 +1786,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-cpupool" @@ -1848,9 +1802,9 @@ dependencies = [ [[package]] name = "futures-executor" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -1859,9 +1813,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-locks" @@ -1882,31 +1836,31 @@ checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" dependencies = [ "futures-channel", "futures-task", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] name = "futures-macro" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] name = "futures-sink" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-timer" @@ -1919,9 +1873,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures 0.1.31", "futures-channel", @@ -1968,9 +1922,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ "cfg-if 1.0.0", "libc", @@ -2003,29 +1957,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" -dependencies = [ - "bytes 0.5.6", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.9", - "indexmap", - "slab", - "tokio 0.2.25", - "tokio-util 0.3.1", - "tracing", - "tracing-futures", -] - -[[package]] -name = "h2" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" dependencies = [ "bytes 1.4.0", "fnv", @@ -2035,8 +1969,8 @@ dependencies = [ "http 0.2.9", "indexmap", "slab", - "tokio 1.27.0", - "tokio-util 0.7.7", + "tokio 1.28.1", + "tokio-util", "tracing", ] @@ -2159,16 +2093,6 @@ dependencies = [ "tokio-buf", ] -[[package]] -name = "http-body" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" -dependencies = [ - "bytes 0.5.6", - "http 0.2.9", -] - [[package]] name = "http-body" version = "0.4.5" @@ -2186,12 +2110,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" -[[package]] -name = "httpdate" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" - [[package]] name = "httpdate" version = "1.0.2" @@ -2236,47 +2154,23 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.10" +version = "0.14.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" -dependencies = [ - "bytes 0.5.6", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.2.7", - "http 0.2.9", - "http-body 0.3.1", - "httparse", - "httpdate 0.3.2", - "itoa 0.4.8", - "pin-project", - "socket2 0.3.19", - "tokio 0.2.25", - "tower-service", - "tracing", - "want 0.3.0", -] - -[[package]] -name = "hyper" -version = "0.14.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" +checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" dependencies = [ "bytes 1.4.0", "futures-channel", "futures-core", "futures-util", - "h2 0.3.18", + "h2 0.3.19", "http 0.2.9", "http-body 0.4.5", "httparse", - "httpdate 1.0.2", + "httpdate", "itoa 1.0.6", "pin-project-lite 0.2.9", - "socket2 0.4.9", - "tokio 1.27.0", + "socket2", + "tokio 1.28.1", "tower-service", "tracing", "want 0.3.0", @@ -2284,17 +2178,15 @@ dependencies = [ [[package]] name = "hyper-alpn" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5a8e8e9f05ea8e7d34fd477eab717cdd66391689ea884cf44c5d172c6aff96c" +version = "0.4.0" +source = "git+https://github.com/WalletConnect/hyper-alpn#0030fd02266f761db7770412b4efa051af76c23d" dependencies = [ - "futures 0.3.27", - "hyper 0.13.10", + "hyper 0.14.26", "log", - "rustls 0.16.0", - "tokio 0.2.25", - "tokio-rustls 0.12.3", - "webpki 0.21.4", + "rustls 0.20.8", + "rustls-pemfile", + "tokio 1.28.1", + "tokio-rustls 0.23.4", "webpki-roots", ] @@ -2306,28 +2198,28 @@ checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" dependencies = [ "ct-logs", "futures-util", - "hyper 0.14.25", + "hyper 0.14.26", "log", "rustls 0.19.1", "rustls-native-certs 0.5.0", - "tokio 1.27.0", + "tokio 1.28.1", "tokio-rustls 0.22.0", "webpki 0.21.4", ] [[package]] name = "hyper-rustls" -version = "0.23.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7" dependencies = [ "http 0.2.9", - "hyper 0.14.25", + "hyper 0.14.26", "log", - "rustls 0.20.8", + "rustls 0.21.1", "rustls-native-certs 0.6.2", - "tokio 1.27.0", - "tokio-rustls 0.23.4", + "tokio 1.28.1", + "tokio-rustls 0.24.0", ] [[package]] @@ -2350,17 +2242,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes 1.4.0", - "hyper 0.14.25", + "hyper 0.14.26", "native-tls", - "tokio 1.27.0", + "tokio 1.28.1", "tokio-native-tls", ] [[package]] name = "iana-time-zone" -version = "0.1.54" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" +checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2372,12 +2264,11 @@ dependencies = [ [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] @@ -2454,13 +2345,13 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi 0.3.1", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -2480,14 +2371,14 @@ checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" [[package]] name = "is-terminal" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", "rustix", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -2522,9 +2413,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" dependencies = [ "wasm-bindgen", ] @@ -2546,7 +2437,7 @@ version = "8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", "pem", "ring", "serde", @@ -2578,18 +2469,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.140" +version = "0.2.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" - -[[package]] -name = "link-cplusplus" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] +checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" [[package]] name = "linked-hash-map" @@ -2599,9 +2481,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.1.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "local-channel" @@ -2730,6 +2612,15 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.6.23" @@ -2827,8 +2718,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c461918bf7f59eefb1459252756bf2351a995d6bd510d0b2061bd86bcdabfa6" dependencies = [ "cfg-if 0.1.10", - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "syn 1.0.109", ] @@ -2858,7 +2749,7 @@ checksum = "51fba38c7ded23ca88a409f72277d177170b3eadb5e283741182fd3cae60ecdf" dependencies = [ "hostname", "lazy_static", - "reqwest 0.11.16", + "reqwest 0.11.18", ] [[package]] @@ -2984,9 +2875,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.48" +version = "0.10.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518915b97df115dd36109bfa429a48b8f737bd05508cf9588977b599648926d2" +checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -2999,13 +2890,13 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] @@ -3016,11 +2907,10 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.83" +version = "0.9.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666416d899cf077260dac8698d60a60b435a46d57e82acb1be3d0dad87284e5b" +checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" dependencies = [ - "autocfg 1.1.0", "cc", "libc", "pkg-config", @@ -3163,9 +3053,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.5.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7" +checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" dependencies = [ "thiserror", "ucd-trie", @@ -3173,9 +3063,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.5.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7" +checksum = "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb" dependencies = [ "pest", "pest_generator", @@ -3183,22 +3073,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b" +checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] name = "pest_meta" -version = "2.5.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80" +checksum = "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411" dependencies = [ "once_cell", "pest", @@ -3215,26 +3105,6 @@ dependencies = [ "ordermap", ] -[[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" -dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 1.0.109", -] - [[package]] name = "pin-project-lite" version = "0.1.12" @@ -3255,9 +3125,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "ppv-lite86" @@ -3301,8 +3171,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "syn 1.0.109", "version_check", ] @@ -3313,8 +3183,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "version_check", ] @@ -3329,9 +3199,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.54" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534" +checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" dependencies = [ "unicode-ident", ] @@ -3357,11 +3227,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" dependencies = [ - "proc-macro2 1.0.54", + "proc-macro2 1.0.59", ] [[package]] @@ -3480,7 +3350,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.9", ] [[package]] @@ -3578,6 +3448,15 @@ dependencies = [ "bitflags", ] +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + [[package]] name = "redox_users" version = "0.3.5" @@ -3595,16 +3474,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.9", "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "regex" -version = "1.7.3" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" +checksum = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390" dependencies = [ "aho-corasick", "memchr", @@ -3613,9 +3492,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.29" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" [[package]] name = "rent_to_own" @@ -3659,19 +3538,19 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.16" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", "bytes 1.4.0", "encoding_rs", "futures-core", "futures-util", - "h2 0.3.18", + "h2 0.3.19", "http 0.2.9", "http-body 0.4.5", - "hyper 0.14.25", + "hyper 0.14.26", "hyper-tls 0.5.0", "ipnet", "js-sys", @@ -3684,7 +3563,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded 0.7.1", - "tokio 1.27.0", + "tokio 1.28.1", "tokio-native-tls", "tower-service", "url 2.3.1", @@ -3756,9 +3635,9 @@ dependencies = [ "base64 0.13.1", "bytes 1.4.0", "crc32fast", - "futures 0.3.27", + "futures 0.3.28", "http 0.2.9", - "hyper 0.14.25", + "hyper 0.14.26", "hyper-rustls 0.22.1", "lazy_static", "log", @@ -3767,7 +3646,7 @@ dependencies = [ "rustc_version 0.4.0", "serde", "serde_json", - "tokio 1.27.0", + "tokio 1.28.1", "xml-rs", ] @@ -3800,12 +3679,12 @@ dependencies = [ "async-trait", "chrono", "dirs-next", - "futures 0.3.27", - "hyper 0.14.25", + "futures 0.3.28", + "hyper 0.14.26", "serde", "serde_json", "shlex 1.1.0", - "tokio 1.27.0", + "tokio 1.28.1", "zeroize", ] @@ -3831,7 +3710,7 @@ checksum = "7935e1f9ca57c4ee92a4d823dcd698eb8c992f7e84ca21976ae72cd2b03016e7" dependencies = [ "async-trait", "bytes 1.4.0", - "futures 0.3.27", + "futures 0.3.28", "rusoto_core 0.47.0", "serde", "serde_json", @@ -3871,11 +3750,11 @@ dependencies = [ "bytes 1.4.0", "chrono", "digest 0.9.0", - "futures 0.3.27", + "futures 0.3.28", "hex", "hmac 0.11.0", "http 0.2.9", - "hyper 0.14.25", + "hyper 0.14.26", "log", "md-5", "percent-encoding 2.2.0", @@ -3884,7 +3763,7 @@ dependencies = [ "rustc_version 0.4.0", "serde", "sha2 0.9.9", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] @@ -3911,9 +3790,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a36c42d1873f9a77c53bde094f9664d9891bc604a45b4798fd2c389ed12e5b" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc_version" @@ -3935,25 +3814,25 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.11" +version = "0.37.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" +checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "rustls" -version = "0.16.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b25a18b1bf7387f0145e7f8324e700805aade3842dd3db2e74e4cdeb4677c09e" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ - "base64 0.10.1", + "base64 0.13.1", "log", "ring", "sct 0.6.1", @@ -3962,27 +3841,26 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ - "base64 0.13.1", "log", "ring", - "sct 0.6.1", - "webpki 0.21.4", + "sct 0.7.0", + "webpki 0.22.0", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e" dependencies = [ "log", "ring", + "rustls-webpki", "sct 0.7.0", - "webpki 0.22.0", ] [[package]] @@ -4015,7 +3893,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", ] [[package]] @@ -4051,12 +3939,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "scratch" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" - [[package]] name = "sct" version = "0.6.1" @@ -4085,9 +3967,9 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "security-framework" -version = "2.8.2" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" dependencies = [ "bitflags", "core-foundation", @@ -4098,9 +3980,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" dependencies = [ "core-foundation-sys", "libc", @@ -4133,16 +4015,16 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5ce6d3512e2617c209ec1e86b0ca2fea06454cd34653c91092bf0f3ec41f8e3" dependencies = [ - "httpdate 1.0.2", + "httpdate", "log", "native-tls", - "reqwest 0.11.16", + "reqwest 0.11.18", "sentry-backtrace", "sentry-contexts", "sentry-core 0.30.0", "sentry-debug-images", "sentry-panic", - "tokio 1.27.0", + "tokio 1.28.1", "ureq", ] @@ -4238,14 +4120,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10d8587b12c0b8211bb3066979ee57af6e8657e23cf439dc6c8581fd86de24e8" dependencies = [ "debugid", - "getrandom 0.2.8", + "getrandom 0.2.9", "hex", "serde", "serde_json", "thiserror", - "time 0.3.20", + "time 0.3.21", "url 2.3.1", - "uuid 1.3.0", + "uuid 1.3.3", ] [[package]] @@ -4255,34 +4137,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "360ee3270f7a4a1eee6c667f7d38360b995431598a73b740dfe420da548d9cc9" dependencies = [ "debugid", - "getrandom 0.2.8", + "getrandom 0.2.9", "hex", "serde", "serde_json", "thiserror", - "time 0.3.20", + "time 0.3.21", "url 2.3.1", - "uuid 1.3.0", + "uuid 1.3.3", ] [[package]] name = "serde" -version = "1.0.159" +version = "1.0.163" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" +checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.159" +version = "1.0.163" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" +checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 2.0.11", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] @@ -4308,9 +4190,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.95" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ "itoa 1.0.6", "ryu", @@ -4361,7 +4243,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -4397,7 +4279,7 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -4446,7 +4328,7 @@ dependencies = [ "num-bigint", "num-traits", "thiserror", - "time 0.3.20", + "time 0.3.21", ] [[package]] @@ -4538,7 +4420,7 @@ dependencies = [ "slog", "term", "thread_local", - "time 0.3.20", + "time 0.3.21", ] [[package]] @@ -4556,17 +4438,6 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" -[[package]] -name = "socket2" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "winapi 0.3.9", -] - [[package]] name = "socket2" version = "0.4.9" @@ -4625,8 +4496,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "rustversion", "syn 1.0.109", ] @@ -4660,19 +4531,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.11" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e3787bb71465627110e7d87ed4faaa36c1f61042ee67badb9e2ef173accc40" +checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "unicode-ident", ] @@ -4682,8 +4553,8 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "syn 1.0.109", "unicode-xid 0.2.4", ] @@ -4696,15 +4567,15 @@ checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" [[package]] name = "tempfile" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ "cfg-if 1.0.0", "fastrand", - "redox_syscall 0.2.16", + "redox_syscall 0.3.5", "rustix", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -4748,9 +4619,9 @@ version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 2.0.11", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] @@ -4776,9 +4647,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" dependencies = [ "itoa 1.0.6", "libc", @@ -4790,15 +4661,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" dependencies = [ "time-core", ] @@ -4849,24 +4720,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" dependencies = [ "bytes 0.5.6", - "fnv", - "futures-core", - "iovec", - "lazy_static", - "libc", - "memchr", - "mio 0.6.23", - "mio-uds", "pin-project-lite 0.1.12", - "slab", "tokio-macros 0.2.6", ] [[package]] name = "tokio" -version = "1.27.0" +version = "1.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" +checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105" dependencies = [ "autocfg 1.1.0", "bytes 1.4.0", @@ -4876,9 +4738,9 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", - "socket2 0.4.9", - "tokio-macros 2.0.0", - "windows-sys 0.45.0", + "socket2", + "tokio-macros 2.1.0", + "windows-sys 0.48.0", ] [[package]] @@ -4970,20 +4832,20 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "syn 1.0.109", ] [[package]] name = "tokio-macros" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 2.0.11", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] @@ -4993,7 +4855,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", - "tokio 1.27.0", + "tokio 1.28.1", ] [[package]] @@ -5045,18 +4907,6 @@ dependencies = [ "tokio-sync", ] -[[package]] -name = "tokio-rustls" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3068d891551949b37681724d6b73666787cc63fa8e255c812a41d2513aff9775" -dependencies = [ - "futures-core", - "rustls 0.16.0", - "tokio 0.2.25", - "webpki 0.21.4", -] - [[package]] name = "tokio-rustls" version = "0.22.0" @@ -5064,7 +4914,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ "rustls 0.19.1", - "tokio 1.27.0", + "tokio 1.28.1", "webpki 0.21.4", ] @@ -5075,10 +4925,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ "rustls 0.20.8", - "tokio 1.27.0", + "tokio 1.28.1", "webpki 0.22.0", ] +[[package]] +name = "tokio-rustls" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5" +dependencies = [ + "rustls 0.21.1", + "tokio 1.28.1", +] + [[package]] name = "tokio-signal" version = "0.2.9" @@ -5195,29 +5055,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.3.1" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" -dependencies = [ - "bytes 0.5.6", - "futures-core", - "futures-sink", - "log", - "pin-project-lite 0.1.12", - "tokio 0.2.25", -] - -[[package]] -name = "tokio-util" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" dependencies = [ "bytes 1.4.0", "futures-core", "futures-sink", "pin-project-lite 0.2.9", - "tokio 1.27.0", + "tokio 1.28.1", "tracing", ] @@ -5250,23 +5096,13 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.4" @@ -5339,9 +5175,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" [[package]] name = "unicode-normalization" @@ -5358,12 +5194,6 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - [[package]] name = "unicode-xid" version = "0.1.0" @@ -5435,11 +5265,11 @@ dependencies = [ [[package]] name = "uuid" -version = "1.3.0" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.9", "serde", ] @@ -5467,8 +5297,8 @@ dependencies = [ "if_chain", "lazy_static", "proc-macro-error", - "proc-macro2 1.0.54", - "quote 1.0.26", + "proc-macro2 1.0.59", + "quote 1.0.28", "regex", "syn 1.0.109", "validator_types", @@ -5480,7 +5310,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "111abfe30072511849c5910134e8baf8dc05de4c0e5903d681cbd5c9c4d611e3" dependencies = [ - "proc-macro2 1.0.54", + "proc-macro2 1.0.59", "syn 1.0.109", ] @@ -5537,9 +5367,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -5547,24 +5377,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.34" +version = "0.4.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -5574,32 +5404,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" dependencies = [ - "quote 1.0.26", + "quote 1.0.28", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" [[package]] name = "wasm-timer" @@ -5607,7 +5437,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.27", + "futures 0.3.28", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -5618,9 +5448,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.61" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2" dependencies = [ "js-sys", "wasm-bindgen", @@ -5648,11 +5478,11 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.17.0" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a262ae37dd9d60f60dd473d1158f9fbebf110ba7b6a5051c8160460f6043718b" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "webpki 0.21.4", + "webpki 0.22.0", ] [[package]] @@ -5700,11 +5530,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.46.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", ] [[package]] @@ -5713,13 +5543,13 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -5728,7 +5558,16 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets", + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", ] [[package]] @@ -5737,13 +5576,28 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", ] [[package]] @@ -5752,42 +5606,84 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + [[package]] name = "windows_i686_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + [[package]] name = "windows_i686_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + [[package]] name = "winreg" version = "0.6.2" @@ -5828,9 +5724,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.4" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +checksum = "2d8f380ae16a37b30e6a2cf67040608071384b1450c189e61bea3ff57cde922d" [[package]] name = "yaml-rust" @@ -5843,27 +5739,27 @@ dependencies = [ [[package]] name = "yup-oauth2" -version = "8.1.0" +version = "8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cb398cca4dedd0203666d7c3e7a089d14557be759efd57ab75f067949276e7" +checksum = "364ca376b5c04d9b2be9693054e3e0d2d146b363819d0f9a10c6ee66e4c8406b" dependencies = [ "anyhow", "async-trait", "base64 0.13.1", - "futures 0.3.27", + "futures 0.3.28", "http 0.2.9", - "hyper 0.14.25", - "hyper-rustls 0.23.2", + "hyper 0.14.26", + "hyper-rustls 0.24.0", "itertools", "log", "percent-encoding 2.2.0", - "rustls 0.20.8", + "rustls 0.21.1", "rustls-pemfile", "seahash", "serde", "serde_json", - "time 0.3.20", - "tokio 1.27.0", + "time 0.3.21", + "tokio 1.28.1", "tower-service", "url 2.3.1", ] @@ -5879,13 +5775,13 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25588073e5216b50bca71d61cb8595cdb9745e87032a58c199730def2862c934" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.54", - "quote 1.0.26", - "syn 2.0.11", + "proc-macro2 1.0.59", + "quote 1.0.28", + "syn 2.0.18", ] [[package]] @@ -5899,9 +5795,9 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "6.0.4+zstd.1.5.4" +version = "6.0.5+zstd.1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7afb4b54b8910cf5447638cb54bf4e8a65cbedd783af98b98c62ffe91f185543" +checksum = "d56d9e60b4b1758206c238a10165fbcae3ca37b01744e394c463463f6529d23b" dependencies = [ "libc", "zstd-sys", @@ -5909,9 +5805,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.7+zstd.1.5.4" +version = "2.0.8+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index d88c0ea4..933e25c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,6 @@ actix-http = "3.2" actix-rt = "2.7" actix-test = "0.1" actix-web = "4.2" -#actix-web-actors = "4.1" actix-ws = "0.2" backtrace = "0.3" base64 = "0.21" @@ -45,7 +44,6 @@ ctor = "0.1" docopt = "1.1" env_logger = "0.10" fernet = "0.2.0" -# autoendpoint used futures 0.3 futures = {version="0.3", features=["compat"]} futures-util = {version="0.3", features=["async-await", "compat", "sink", "io"]} futures-locks = "0.7" @@ -63,8 +61,7 @@ reqwest = {version="0.11", features = ["json"] } rusoto_core = { version="0.47", default-features=false, features=["rustls"] } # locked by serde_dynamodb 0.9 rusoto_credential = { version="0.47"} # locked by serde_dynamodb 0.9 rusoto_dynamodb = { version="0.47", default-features=false, features=["rustls"]} # locked by serde_dynamodb 0.9 -# Using debug-logs avoids https://github.com/getsentry/sentry-rust/issues/237 -sentry = { version = "0.30", features = ["debug-logs"] } +sentry = { version = "0.30", features = ["debug-logs"] } # Using debug-logs avoids https://github.com/getsentry/sentry-rust/issues/237 sentry-core = {version = "0.30"} sentry-actix = "0.30" sentry-backtrace = "0.30" @@ -85,7 +82,7 @@ tokio-compat-02 = "0.2" tokio-core = "0.1" tokio-io = "0.1" tokio-openssl = "0.6" -tokio-tungstenite = { version = "0.9.0", default-features = false } # 0.10+ requires tokio 0.3+ +# Use older version of tungstenite to support legacy connection server. tungstenite = { version = "0.9.2", default-features = false } # 0.10+ requires tokio 0.3+ uuid = { version = "1.1", features = ["serde", "v4"] } url = "2.2" diff --git a/autoendpoint/Cargo.toml b/autoendpoint/Cargo.toml index 0f611f55..2d738098 100644 --- a/autoendpoint/Cargo.toml +++ b/autoendpoint/Cargo.toml @@ -45,14 +45,8 @@ tokio.workspace = true url.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 -# - https://github.com/pimeys/a2/pull/47 -# The `autoendpoint` branch merges these three PRs together. -# The version of a2 at the time of the fork is v0.5.3. -a2 = { git = "https://github.com/mozilla-services/a2.git", branch = "autoendpoint" } -# several of these libraries are pinned due to https://github.com/mozilla-services/autopush-rs/issues/249 +a2 = {version = "0.8", git = "https://github.com/mozilla-services/a2", branch="master"} +bytebuffer = "2.1" again = { version = "0.1.2", default-features = false, features = ["log", "rand"] } async-trait = "0.1" autopush_common = { path = "../autopush-common" } diff --git a/autoendpoint/src/extractors/router_data_input.rs b/autoendpoint/src/extractors/router_data_input.rs index b9099a49..348af985 100644 --- a/autoendpoint/src/extractors/router_data_input.rs +++ b/autoendpoint/src/extractors/router_data_input.rs @@ -20,7 +20,7 @@ pub struct RouterDataInput { #[serde(rename = "channelID")] pub channel_id: Option, pub key: Option, - pub aps: Option, + pub aps: Option, } impl FromRequest for RouterDataInput { diff --git a/autoendpoint/src/routers/apns/error.rs b/autoendpoint/src/routers/apns/error.rs index 61a6586a..1aa526f3 100644 --- a/autoendpoint/src/routers/apns/error.rs +++ b/autoendpoint/src/routers/apns/error.rs @@ -21,6 +21,10 @@ pub enum ApnsError { #[error("APNS error, {0}")] ApnsUpstream(#[source] a2::Error), + /// Configuration error {Type of error}, {Error string} + #[error("APNS config, {0}:{1}")] + Config(String, String), + #[error("No device token found for user")] NoDeviceToken, @@ -49,9 +53,10 @@ impl ApnsError { StatusCode::GONE } - ApnsError::ChannelSettingsDecode(_) | ApnsError::Io(_) | ApnsError::ApnsClient(_) => { - StatusCode::INTERNAL_SERVER_ERROR - } + ApnsError::ChannelSettingsDecode(_) + | ApnsError::Io(_) + | ApnsError::ApnsClient(_) + | ApnsError::Config(..) => StatusCode::INTERNAL_SERVER_ERROR, ApnsError::ApnsUpstream(_) => StatusCode::BAD_GATEWAY, } @@ -70,6 +75,7 @@ impl ApnsError { | ApnsError::ApnsUpstream(_) | ApnsError::InvalidReleaseChannel | ApnsError::InvalidApsData + | ApnsError::Config(..) | ApnsError::SizeLimit(_) => None, } } diff --git a/autoendpoint/src/routers/apns/router.rs b/autoendpoint/src/routers/apns/router.rs index e4bd90ee..ce7560ec 100644 --- a/autoendpoint/src/routers/apns/router.rs +++ b/autoendpoint/src/routers/apns/router.rs @@ -9,15 +9,17 @@ use crate::routers::common::{ build_message_data, incr_error_metric, incr_success_metrics, message_size_check, }; use crate::routers::{Router, RouterError, RouterResponse}; -use a2::request::notification::LocalizedAlert; -use a2::request::payload::{APSAlert, Payload, APS}; -use a2::{self, Endpoint, NotificationOptions, Priority, Response}; +use a2::request::payload::Payload; +use a2::{ + self, DefaultNotificationBuilder, Endpoint, NotificationBuilder, NotificationOptions, Priority, + Response, +}; use actix_web::http::StatusCode; use async_trait::async_trait; use cadence::StatsdClient; use futures::{StreamExt, TryStreamExt}; -use serde::Deserialize; -use serde_json::{Number, Value}; +use serde::{Deserialize, Serialize}; +use serde_json::Value; use std::collections::HashMap; use std::sync::Arc; use url::Url; @@ -50,6 +52,60 @@ impl ApnsClient for a2::Client { } } +/// a2 does not allow for Deserialization of the APS structure. +/// this is copied from that library +#[derive(Deserialize, Serialize, Default, Debug, Clone)] +#[serde(rename_all = "kebab-case")] +#[allow(clippy::upper_case_acronyms)] +pub struct ApsDeser<'a> { + // The notification content. Can be empty for silent notifications. + // Note, we overwrite this value, but it's copied and commented here + // so that future development notes the change. + // #[serde(skip_serializing_if = "Option::is_none")] + //pub alert: Option>, + /// A number shown on top of the app icon. + #[serde(skip_serializing_if = "Option::is_none")] + pub badge: Option, + + /// The name of the sound file to play when user receives the notification. + #[serde(skip_serializing_if = "Option::is_none")] + pub sound: Option<&'a str>, + + /// Set to one for silent notifications. + #[serde(skip_serializing_if = "Option::is_none")] + pub content_available: Option, + + /// When a notification includes the category key, the system displays the + /// actions for that category as buttons in the banner or alert interface. + #[serde(skip_serializing_if = "Option::is_none")] + pub category: Option<&'a str>, + + /// If set to one, the app can change the notification content before + /// displaying it to the user. + #[serde(skip_serializing_if = "Option::is_none")] + pub mutable_content: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + // Converted for Deserialization + // pub url_args: Option<&'a [&'a str]>, + pub url_args: Option>, +} + +#[derive(Default)] +// Replicate a2::request::notification::DefaultAlert +// for lifetime reasons. +pub struct ApsAlertHolder { + title: String, + subtitle: String, + body: String, + title_loc_key: String, + title_loc_args: Vec, + action_loc_key: String, + loc_key: String, + loc_args: Vec, + launch_image: String, +} + impl ApnsRouter { /// Create a new APNS router. APNS clients will be initialized for each /// channel listed in the settings. @@ -110,18 +166,11 @@ impl ApnsRouter { } /// The default APS data for a notification - fn default_aps<'a>() -> APS<'a> { - APS { - alert: Some(APSAlert::Localized({ - LocalizedAlert { - title_loc_key: Some("SentTab.NoTabArrivingNotification.title"), - loc_key: Some("SentTab.NoTabArrivingNotification.body"), - ..Default::default() - } - })), - mutable_content: Some(1), - ..Default::default() - } + fn default_aps<'a>() -> DefaultNotificationBuilder<'a> { + DefaultNotificationBuilder::new() + .set_title_loc_key("SentTab.NoTabArrivingNotification.title") + .set_loc_key("SentTab.NoTabArrivingNotification.body") + .set_mutable_content() } /// Handle an error by logging, updating metrics, etc @@ -149,8 +198,8 @@ impl ApnsRouter { warn!("APNS error: {:?}", response.error); } } - a2::Error::ConnectionError => { - error!("APNS connection error"); + a2::Error::ConnectionError(e) => { + error!("APNS connection error: {:?}", e); incr_error_metric( &self.metrics, "apns", @@ -181,7 +230,7 @@ impl ApnsRouter { /// it expects an integer and gets a float. fn convert_value_float_to_int(value: &mut Value) { if let Some(float) = value.as_f64() { - *value = Value::Number(Number::from(float as i64)); + *value = Value::Number(serde_json::Number::from(float as i64)); } if let Some(object) = value.as_object_mut() { @@ -195,6 +244,127 @@ impl ApnsRouter { pub fn active(&self) -> bool { !self.clients.is_empty() } + + /// Derive an APS message from the replacement JSON block. + /// + /// This requires an external "holder" that contains the data that APS will refer to. + /// The holder should live in the same context as the `aps.build()` method. + fn derive_aps<'a>( + &self, + replacement: Value, + holder: &'a mut ApsAlertHolder, + ) -> Result, ApnsError> { + let mut aps = Self::default_aps(); + // a2 does not have a way to bulk replace these values, so do them by hand. + // these could probably be turned into a macro, but hopefully, this is + // more one off and I didn't want to fight with the macro generator. + // This whole thing was included as a byproduct of + // https://bugzilla.mozilla.org/show_bug.cgi?id=1364403 which was put + // in place to help debug the iOS build. It was supposed to be temporary, + // but apparently bit-lock set in and now no one is super sure if it's + // still needed or used. (I want to get rid of this.) + if let Some(v) = replacement.get("title") { + if let Some(v) = v.as_str() { + holder.title = v.to_owned(); + aps = aps.set_title(&holder.title); + } else { + return Err(ApnsError::InvalidApsData); + } + } + if let Some(v) = replacement.get("subtitle") { + if let Some(v) = v.as_str() { + holder.subtitle = v.to_owned(); + aps = aps.set_subtitle(&holder.subtitle); + } else { + return Err(ApnsError::InvalidApsData); + } + } + if let Some(v) = replacement.get("body") { + if let Some(v) = v.as_str() { + holder.body = v.to_owned(); + aps = aps.set_body(&holder.body); + } else { + return Err(ApnsError::InvalidApsData); + } + } + if let Some(v) = replacement.get("title_loc_key") { + if let Some(v) = v.as_str() { + holder.title_loc_key = v.to_owned(); + aps = aps.set_title_loc_key(&holder.title_loc_key); + } else { + return Err(ApnsError::InvalidApsData); + } + } + if let Some(v) = replacement.get("title_loc_args") { + if let Some(v) = v.as_array() { + let mut args: Vec = Vec::new(); + for val in v { + if let Some(value) = val.as_str() { + args.push(value.to_owned()) + } else { + return Err(ApnsError::InvalidApsData); + } + } + holder.title_loc_args = args; + aps = aps.set_title_loc_args(&holder.title_loc_args); + } else { + return Err(ApnsError::InvalidApsData); + } + } + if let Some(v) = replacement.get("action_loc_key") { + if let Some(v) = v.as_str() { + holder.action_loc_key = v.to_owned(); + aps = aps.set_action_loc_key(&holder.action_loc_key); + } else { + return Err(ApnsError::InvalidApsData); + } + } + if let Some(v) = replacement.get("loc_key") { + if let Some(v) = v.as_str() { + holder.loc_key = v.to_owned(); + aps = aps.set_loc_key(&holder.loc_key); + } else { + return Err(ApnsError::InvalidApsData); + } + } + if let Some(v) = replacement.get("loc_args") { + if let Some(v) = v.as_array() { + let mut args: Vec = Vec::new(); + for val in v { + if let Some(value) = val.as_str() { + args.push(value.to_owned()) + } else { + return Err(ApnsError::InvalidApsData); + } + } + holder.loc_args = args; + aps = aps.set_loc_args(&holder.loc_args); + } else { + return Err(ApnsError::InvalidApsData); + } + } + if let Some(v) = replacement.get("launch_image") { + if let Some(v) = v.as_str() { + holder.launch_image = v.to_owned(); + aps = aps.set_launch_image(&holder.launch_image); + } else { + return Err(ApnsError::InvalidApsData); + } + } + // Honestly, we should just check to see if this is present + // we don't really care what the value is since we'll never + // use + if let Some(v) = replacement.get("mutable-content") { + if let Some(v) = v.as_i64() { + if v != 0 { + aps = aps.set_mutable_content(); + } + } else { + return Err(ApnsError::InvalidApsData); + } + } + Ok(aps) + } } #[async_trait(?Send)] @@ -219,11 +389,13 @@ impl Router for ApnsRouter { ); if let Some(aps) = &router_input.aps { - if APS::deserialize(aps).is_err() { + if serde_json::from_str::>(aps).is_err() { return Err(ApnsError::InvalidApsData.into()); } - - router_data.insert("aps".to_string(), aps.clone()); + router_data.insert( + "aps".to_string(), + serde_json::to_value(aps.clone()).unwrap(), + ); } Ok(router_data) @@ -251,15 +423,13 @@ impl Router for ApnsRouter { .get("rel_channel") .and_then(Value::as_str) .ok_or(ApnsError::NoReleaseChannel)?; + // XXX: We don't really use anything that is a numeric here, aside from + // mutable contant, and even there we should just check for presense. + // Once we're off of DynamoDB, we might want to kill the map. let aps_json = router_data.get("aps").cloned().map(|mut value| { Self::convert_value_float_to_int(&mut value); value }); - let aps: APS<'_> = aps_json - .as_ref() - .map(|value| APS::deserialize(value).map_err(|_| ApnsError::InvalidApsData)) - .transpose()? - .unwrap_or_else(Self::default_aps); let mut message_data = build_message_data(notification)?; message_data.insert("ver", notification.message_id.clone()); @@ -268,21 +438,34 @@ impl Router for ApnsRouter { .clients .get(channel) .ok_or(ApnsError::InvalidReleaseChannel)?; - let payload = Payload { - aps, - data: message_data - .into_iter() - .map(|(k, v)| (k, Value::String(v))) - .collect(), - device_token: token, - options: NotificationOptions { + + // A simple bucket variable so that I don't have to deal with fun lifetime issues if we need + // to derive. + let mut holder = ApsAlertHolder::default(); + + // If we are provided a replacement APS block, derive an APS message from it, otherwise + // start with a blank APS message. + let aps = if let Some(replacement) = aps_json { + self.derive_aps(replacement, &mut holder)? + } else { + Self::default_aps() + }; + + // Finalize the APS object. + let mut payload = aps.build( + token, + NotificationOptions { apns_id: None, apns_priority: Some(Priority::High), apns_topic: Some(topic), apns_collapse_id: None, apns_expiration: Some(notification.timestamp + notification.headers.ttl as u64), }, - }; + ); + payload.data = message_data + .into_iter() + .map(|(k, v)| (k, Value::String(v))) + .collect(); // Check size limit let payload_json = payload @@ -408,10 +591,13 @@ mod tests { /// A notification with no data is packaged correctly and sent to APNS #[tokio::test] async fn successful_routing_no_data() { + use a2::NotificationBuilder; + let client = MockApnsClient::new(|payload| { + let built = ApnsRouter::default_aps().build(DEVICE_TOKEN, Default::default()); assert_eq!( serde_json::to_value(payload.aps).unwrap(), - serde_json::to_value(ApnsRouter::default_aps()).unwrap() + serde_json::to_value(built.aps).unwrap() ); assert_eq!(payload.device_token, DEVICE_TOKEN); assert_eq!(payload.options.apns_topic, Some("test-topic")); @@ -440,11 +626,11 @@ mod tests { /// A notification with data is packaged correctly and sent to APNS #[tokio::test] async fn successful_routing_with_data() { + use a2::NotificationBuilder; + let client = MockApnsClient::new(|payload| { - assert_eq!( - serde_json::to_value(payload.aps).unwrap(), - serde_json::to_value(ApnsRouter::default_aps()).unwrap() - ); + let built = ApnsRouter::default_aps().build(DEVICE_TOKEN, Default::default()); + assert_eq!(serde_json::json!(payload.aps), serde_json::json!(built.aps)); assert_eq!(payload.device_token, DEVICE_TOKEN); assert_eq!(payload.options.apns_topic, Some("test-topic")); assert_eq!( diff --git a/autopush/Cargo.toml b/autopush/Cargo.toml index 7f65b713..b9d77372 100644 --- a/autopush/Cargo.toml +++ b/autopush/Cargo.toml @@ -34,6 +34,7 @@ slog-mozlog-json.workspace = true slog-scope.workspace = true slog-stdlog.workspace = true slog-term.workspace = true +tungstenite.workspace = true uuid.workspace = true autopush_common = { path = "../autopush-common" } @@ -56,7 +57,5 @@ 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 -# 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+ woothee = "0.13"