diff --git a/Cargo.lock b/Cargo.lock index 79ab647..0c83b89 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,7 +21,7 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project 0.4.27", + "pin-project 0.4.28", "tokio", "tokio-util", ] @@ -81,15 +81,15 @@ dependencies = [ "log", "mime", "percent-encoding", - "pin-project 1.0.4", + "pin-project 1.0.6", "rand 0.7.3", "regex", "serde", "serde_json", "serde_urlencoded", - "sha-1 0.9.3", + "sha-1 0.9.4", "slab", - "time 0.2.25", + "time 0.2.26", ] [[package]] @@ -103,7 +103,7 @@ dependencies = [ "futures-util", "serde", "serde_json", - "time 0.2.25", + "time 0.2.26", ] [[package]] @@ -112,15 +112,15 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ca8ce00b267af8ccebbd647de0d61e0674b6e61185cc7a592ff88772bed655" dependencies = [ - "quote 1.0.8", + "quote 1.0.9", "syn", ] [[package]] name = "actix-router" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8be584b3b6c705a18eabc11c4059cf83b255bdd8511673d1d569f4ce40c69de" +checksum = "2ad299af73649e1fc893e333ccf86f377751eb95ff875d095131574c6f43452c" dependencies = [ "bytestring", "http", @@ -171,7 +171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb" dependencies = [ "futures-util", - "pin-project 0.4.27", + "pin-project 0.4.28", ] [[package]] @@ -182,8 +182,8 @@ checksum = "c697a62a2f51c5c26af6b1dded0622f15bec690da191615947e0c1b2b7b75198" dependencies = [ "actix-web", "chrono", - "futures 0.3.12", - "pin-project 0.4.27", + "futures 0.3.13", + "pin-project 0.4.28", "slog", ] @@ -244,7 +244,7 @@ dependencies = [ "futures-sink", "futures-util", "log", - "pin-project 0.4.27", + "pin-project 0.4.28", "slab", ] @@ -276,13 +276,13 @@ dependencies = [ "fxhash", "log", "mime", - "pin-project 1.0.4", + "pin-project 1.0.6", "regex", "serde", "serde_json", "serde_urlencoded", "socket2", - "time 0.2.25", + "time 0.2.26", "tinyvec", "url", ] @@ -293,8 +293,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] @@ -307,7 +307,7 @@ dependencies = [ "actix-service", "actix-web", "derive_more", - "futures 0.3.12", + "futures 0.3.13", "mime_guess", "path-slash", ] @@ -323,9 +323,9 @@ dependencies = [ [[package]] name = "adler" -version = "0.2.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "adler32" @@ -401,7 +401,7 @@ checksum = "796540673305a66d127804eef19ad696f1f204b8c1025aaca4958c17eab32877" dependencies = [ "getrandom 0.2.2", "once_cell", - "version_check 0.9.2", + "version_check 0.9.3", ] [[package]] @@ -446,7 +446,7 @@ dependencies = [ "cc", "cfg-if 0.1.10", "failure", - "futures 0.1.30", + "futures 0.1.31", "futures-cpupool", "libc", "log", @@ -465,12 +465,12 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "async-trait" -version = "0.1.42" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +checksum = "36ea56748e10732c49404c153638a15ec3d6211ec5ff35d9bb20e13b93576adf" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] @@ -539,7 +539,7 @@ dependencies = [ "addr2line", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.4.3", + "miniz_oxide 0.4.4", "object", "rustc-demangle", ] @@ -620,7 +620,7 @@ dependencies = [ "block-padding", "byte-tools", "byteorder", - "generic-array 0.12.3", + "generic-array 0.12.4", ] [[package]] @@ -663,9 +663,9 @@ dependencies = [ [[package]] name = "bstr" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf" +checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d" dependencies = [ "memchr", ] @@ -678,9 +678,9 @@ checksum = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" [[package]] name = "bumpalo" -version = "3.6.0" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099e596ef14349721d9016f6b80dd3419ea1bf289ab9b44df8e4dfd3a005d5d9" +checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" [[package]] name = "byte-tools" @@ -690,15 +690,15 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a4bad0c5981acc24bc09e532f35160f952e35422603f0563cd7a73c2c2e65a0" +checksum = "bed57e2090563b83ba8f83366628ce535a7584c9afa4c9fc0612a03925c6df58" [[package]] name = "byteorder" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" @@ -745,9 +745,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.66" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" +checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" dependencies = [ "jobserver", ] @@ -855,25 +855,31 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "const_fn" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6" +checksum = "076a6803b0dacd6a88cfe64deba628b01533ff5ef265687e6938280c1afd0a28" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "cookie" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f" +checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" dependencies = [ "aes-gcm", - "base64 0.12.3", + "base64 0.13.0", "hkdf", "hmac", "percent-encoding", - "rand 0.7.3", + "rand 0.8.3", "sha2", - "time 0.2.25", - "version_check 0.9.2", + "time 0.2.26", + "version_check 0.9.3", ] [[package]] @@ -935,12 +941,11 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" +checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" dependencies = [ "cfg-if 1.0.0", - "const_fn", "crossbeam-utils", "lazy_static", "memoffset", @@ -959,9 +964,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" dependencies = [ "autocfg 1.0.1", "cfg-if 1.0.0", @@ -999,12 +1004,13 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.11" +version = "0.99.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" +checksum = "f82b1b72f1263f214c0f823371768776c4f5841b942c9883aa8e5ec584fd0ba6" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "convert_case", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] @@ -1020,7 +1026,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" dependencies = [ - "generic-array 0.12.3", + "generic-array 0.12.4", ] [[package]] @@ -1082,9 +1088,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.26" +version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283" +checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" dependencies = [ "cfg-if 1.0.0", ] @@ -1096,8 +1102,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" dependencies = [ "heck", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] @@ -1130,8 +1136,8 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", "synstructure", ] @@ -1151,7 +1157,7 @@ dependencies = [ "cfg-if 1.0.0", "crc32fast", "libc", - "miniz_oxide 0.4.3", + "miniz_oxide 0.4.4", ] [[package]] @@ -1204,8 +1210,8 @@ dependencies = [ "flume", "ignore", "once_cell", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", "unic-langid", ] @@ -1243,7 +1249,7 @@ dependencies = [ "futures-core", "futures-sink", "nanorand", - "pin-project 1.0.4", + "pin-project 1.0.6", "spinning_top", ] @@ -1255,9 +1261,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ "matches", "percent-encoding", @@ -1293,15 +1299,15 @@ checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" [[package]] name = "futures" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150" +checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1" dependencies = [ "futures-channel", "futures-core", @@ -1314,9 +1320,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846" +checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" dependencies = [ "futures-core", "futures-sink", @@ -1324,9 +1330,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65" +checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" [[package]] name = "futures-cpupool" @@ -1334,15 +1340,15 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", "num_cpus", ] [[package]] name = "futures-executor" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9" +checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1" dependencies = [ "futures-core", "futures-task", @@ -1351,42 +1357,39 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500" +checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59" [[package]] name = "futures-macro" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd" +checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] [[package]] name = "futures-sink" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6" +checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" [[package]] name = "futures-task" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86" -dependencies = [ - "once_cell", -] +checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" [[package]] name = "futures-util" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b" +checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" dependencies = [ "futures-channel", "futures-core", @@ -1395,7 +1398,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.4", + "pin-project-lite 0.2.6", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -1413,9 +1416,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" dependencies = [ "typenum", ] @@ -1427,7 +1430,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" dependencies = [ "typenum", - "version_check 0.9.2", + "version_check 0.9.3", ] [[package]] @@ -1466,9 +1469,9 @@ dependencies = [ [[package]] name = "gif" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02efba560f227847cb41463a7395c514d127d4f74fff12ef0137fff1b84b96c4" +checksum = "5a668f699973d0f573d15749b7002a9ac9e1f9c6b220e7b165601334c173d8de" dependencies = [ "color_quant", "weezl", @@ -1615,9 +1618,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" +checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" dependencies = [ "bytes 1.0.1", "fnv", @@ -1626,9 +1629,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.3.5" +version = "1.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691" +checksum = "bc35c995b9d93ec174cf9a27d425c7892722101e14993cd227fdb51d70cf9589" [[package]] name = "humansize" @@ -1647,9 +1650,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21" dependencies = [ "matches", "unicode-bidi", @@ -1676,9 +1679,9 @@ dependencies = [ [[package]] name = "image" -version = "0.23.13" +version = "0.23.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293f07a1875fa7e9c5897b51aa68b2d8ed8271b87e1a44cb64b9c3d98aabbc0d" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" dependencies = [ "bytemuck", "byteorder", @@ -1695,9 +1698,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b" +checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" dependencies = [ "autocfg 1.0.1", "hashbrown 0.9.1", @@ -1779,9 +1782,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.48" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78" +checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c" dependencies = [ "wasm-bindgen", ] @@ -1823,9 +1826,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.85" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccac4b00700875e6a07c6cde370d44d32fa01c5a65cdd2fca6858c479d28bb3" +checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41" [[package]] name = "libloading" @@ -1856,9 +1859,9 @@ checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" [[package]] name = "lock_api" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" +checksum = "5a3c91c24eae6777794bb1997ad98bbb87daf92890acab859f7eaa4320333176" dependencies = [ "scopeguard 1.1.0", ] @@ -1907,9 +1910,9 @@ checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] name = "memoffset" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" +checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d" dependencies = [ "autocfg 1.0.1", ] @@ -1941,9 +1944,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ "adler", "autocfg 1.0.1", @@ -2031,7 +2034,7 @@ dependencies = [ "funty", "lexical-core", "memchr", - "version_check 0.9.2", + "version_check 0.9.3", ] [[package]] @@ -2093,9 +2096,9 @@ checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" [[package]] name = "once_cell" -version = "1.5.2" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" +checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" [[package]] name = "opaque-debug" @@ -2127,8 +2130,8 @@ checksum = "129943a960e6a08c7e70ca5a09f113c273fe7f10ae8420992c78293e3dffdf65" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] @@ -2145,14 +2148,14 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272" +checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.1.57", + "redox_syscall", "smallvec", "winapi 0.3.9", ] @@ -2211,8 +2214,8 @@ checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] @@ -2229,55 +2232,55 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" +checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f" dependencies = [ - "pin-project-internal 0.4.27", + "pin-project-internal 0.4.28", ] [[package]] name = "pin-project" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2" +checksum = "bc174859768806e91ae575187ada95c91a29e96a98dc5d2cd9a1fed039501ba6" dependencies = [ - "pin-project-internal 1.0.4", + "pin-project-internal 1.0.6", ] [[package]] name = "pin-project-internal" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" +checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] [[package]] name = "pin-project-internal" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71" +checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] [[package]] name = "pin-project-lite" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" +checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" [[package]] name = "pin-utils" @@ -2327,10 +2330,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", - "version_check 0.9.2", + "version_check 0.9.3", ] [[package]] @@ -2339,9 +2342,9 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "version_check 0.9.2", + "proc-macro2 1.0.26", + "quote 1.0.9", + "version_check 0.9.3", ] [[package]] @@ -2367,9 +2370,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" dependencies = [ "unicode-xid 0.2.1", ] @@ -2429,11 +2432,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", ] [[package]] @@ -2495,7 +2498,7 @@ checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" dependencies = [ "libc", "rand_chacha 0.3.0", - "rand_core 0.6.1", + "rand_core 0.6.2", "rand_hc 0.3.0", ] @@ -2526,7 +2529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", - "rand_core 0.6.1", + "rand_core 0.6.2", ] [[package]] @@ -2555,9 +2558,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" +checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" dependencies = [ "getrandom 0.2.2", ] @@ -2586,7 +2589,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" dependencies = [ - "rand_core 0.6.1", + "rand_core 0.6.2", ] [[package]] @@ -2676,12 +2679,6 @@ dependencies = [ "rand_core 0.3.1", ] -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - [[package]] name = "redox_syscall" version = "0.2.5" @@ -2698,26 +2695,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ "getrandom 0.2.2", - "redox_syscall 0.2.5", + "redox_syscall", ] [[package]] name = "regex" -version = "1.4.3" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" +checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "thread_local", ] [[package]] name = "regex-syntax" -version = "0.6.22" +version = "0.6.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" +checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" [[package]] name = "remove_dir_all" @@ -2882,29 +2878,29 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.123" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae" +checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.123" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" +checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] [[package]] name = "serde_json" -version = "1.0.61" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a" +checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" dependencies = [ "indexmap", "itoa", @@ -2938,9 +2934,9 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4b312c3731e3fe78a185e6b9b911a7aa715b8e31cce117975219aab2acf285d" +checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", @@ -3045,8 +3041,8 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] @@ -3069,9 +3065,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spinning_top" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e529d73e80d64b5f2631f9035113347c578a1c9c7774b83a2b880788459ab36" +checksum = "8bd0ab6b8c375d2d963503b90d3770010d95bc3b5f98036f948dee24bf4e8879" dependencies = [ "lock_api", ] @@ -3152,12 +3148,12 @@ dependencies = [ "cargo_metadata", "dotenv", "either", - "futures 0.3.12", + "futures 0.3.13", "heck", "hex", "lazy_static", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "serde", "serde_json", "sha2", @@ -3188,11 +3184,11 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "standback" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66a8cff4fa24853fdf6b51f75c6d7f8206d7c75cab4e467bcd7f25c2b1febe0" +checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" dependencies = [ - "version_check 0.9.2", + "version_check 0.9.3", ] [[package]] @@ -3221,8 +3217,8 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "serde", "serde_derive", "syn", @@ -3235,8 +3231,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" dependencies = [ "base-x", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "serde", "serde_derive", "serde_json", @@ -3274,12 +3270,12 @@ checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" [[package]] name = "syn" -version = "1.0.60" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" +checksum = "48fe99c6bd8b1cc636890bcc071842de909d902c81ac7dab53ba33c421ab8ffb" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "unicode-xid 0.2.1", ] @@ -3289,8 +3285,8 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", "unicode-xid 0.2.1", ] @@ -3319,9 +3315,9 @@ dependencies = [ [[package]] name = "tera" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac6ab7eacf40937241959d540670f06209c38ceadb62116999db4a950fbf8dc" +checksum = "5cb278a72e426f291faf182cb0e0cb7d20241e8e9881046724ac874a83c62346" dependencies = [ "chrono", "chrono-tz", @@ -3383,16 +3379,16 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] [[package]] name = "thread_local" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8208a331e1cb318dd5bd76951d2b8fc48ca38a69f5f4e4af1b6a9f8c6236915" +checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" dependencies = [ "once_cell", ] @@ -3413,7 +3409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" dependencies = [ "jpeg-decoder", - "miniz_oxide 0.4.3", + "miniz_oxide 0.4.4", "weezl", ] @@ -3429,16 +3425,16 @@ dependencies = [ [[package]] name = "time" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1195b046942c221454c2539395f85413b33383a067449d78aab2b7b052a142f7" +checksum = "08a8cbfbf47955132d0202d1662f49b2423ae35862aee471f3ba4b133358f372" dependencies = [ "const_fn", "libc", "standback", "stdweb", "time-macros", - "version_check 0.9.2", + "version_check 0.9.3", "winapi 0.3.9", ] @@ -3459,8 +3455,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "standback", "syn", ] @@ -3473,9 +3469,9 @@ checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1" [[package]] name = "tinyvec" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023" +checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" dependencies = [ "tinyvec_macros", ] @@ -3501,7 +3497,7 @@ dependencies = [ "mio", "mio-uds", "num_cpus", - "pin-project-lite 0.1.11", + "pin-project-lite 0.1.12", "signal-hook-registry", "slab", "tokio-macros", @@ -3514,8 +3510,8 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", ] @@ -3541,19 +3537,19 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project-lite 0.1.11", + "pin-project-lite 0.1.12", "tokio", ] [[package]] name = "tracing" -version = "0.1.22" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" +checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" dependencies = [ "cfg-if 1.0.0", "log", - "pin-project-lite 0.2.4", + "pin-project-lite 0.2.6", "tracing-core", ] @@ -3568,24 +3564,24 @@ dependencies = [ [[package]] name = "tracing-futures" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 0.4.27", + "pin-project 1.0.6", "tracing", ] [[package]] name = "trust-dns-proto" -version = "0.19.6" +version = "0.19.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53861fcb288a166aae4c508ae558ed18b53838db728d4d310aad08270a7d4c2b" +checksum = "1cad71a0c0d68ab9941d2fb6e82f8fb2e86d9945b94e1661dd0aaea2b88215a9" dependencies = [ "async-trait", - "backtrace", + "cfg-if 1.0.0", "enum-as-inner", - "futures 0.3.12", + "futures 0.3.13", "idna", "lazy_static", "log", @@ -3598,13 +3594,12 @@ dependencies = [ [[package]] name = "trust-dns-resolver" -version = "0.19.6" +version = "0.19.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6759e8efc40465547b0dfce9500d733c65f969a4cbbfbe3ccf68daaa46ef179e" +checksum = "710f593b371175db53a26d0b38ed2978fafb9e9e8d3868b1acd753ea18df0ceb" dependencies = [ - "backtrace", "cfg-if 0.1.10", - "futures 0.3.12", + "futures 0.3.13", "ipconfig", "lazy_static", "log", @@ -3627,9 +3622,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" [[package]] name = "ucd-trie" @@ -3696,7 +3691,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29396ffd97e27574c3e01368b1a64267d3064969e4848e2e130ff668be9daa9f" dependencies = [ "proc-macro-hack", - "quote 1.0.8", + "quote 1.0.9", "syn", "unic-langid-impl", ] @@ -3736,23 +3731,23 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" dependencies = [ - "version_check 0.9.2", + "version_check 0.9.3", ] [[package]] name = "unicode-bidi" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" dependencies = [ "matches", ] [[package]] name = "unicode-normalization" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" +checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" dependencies = [ "tinyvec", ] @@ -3805,9 +3800,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" +checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" dependencies = [ "form_urlencoded", "idna", @@ -3835,15 +3830,15 @@ checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" [[package]] name = "version_check" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" [[package]] name = "walkdir" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", "winapi 0.3.9", @@ -3864,9 +3859,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7" +checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -3874,37 +3869,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7d8b6942b8bb3a9b0e73fc79b98095a27de6fa247615e59d096754a3bc2aa8" +checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ac38da8ef716661f0f36c0d8320b89028efe10c7c0afde65baffb496ce0d3b" +checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f" dependencies = [ - "quote 1.0.8", + "quote 1.0.9", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc053ec74d454df287b9374ee8abb36ffd5acb95ba87da3ba5b7d3fe20eb401e" +checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", + "proc-macro2 1.0.26", + "quote 1.0.9", "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -3912,15 +3907,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1" +checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489" [[package]] name = "web-sys" -version = "0.3.48" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b" +checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be" dependencies = [ "js-sys", "wasm-bindgen", @@ -3938,9 +3933,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.21.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82015b7e0b8bad8185994674a13a93306bea76cf5a16c5a181382fd3a5ec2376" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" dependencies = [ "webpki", ] @@ -3963,9 +3958,9 @@ dependencies = [ [[package]] name = "whoami" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e296f550993cba2c5c3eba5da0fb335562b2fa3d97b7a8ac9dc91f40a3abc70" +checksum = "4abacf325c958dfeaf1046931d37f2a901b6dfe0968ee965a29e94c6766b2af6" dependencies = [ "wasm-bindgen", "web-sys", diff --git a/Cargo.toml b/Cargo.toml index 2791fd0..83f9c3a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ dotenv = "0.15.0" actix-identity = "0.3" chrono = { version = "0.4", features = ["serde"] } argonautica = "0.2" -slog = "2" +slog = { version = "2", features = ["max_level_trace", "release_max_level_info"] } slog-term = "2" slog-async = "2" qrcode = "0.12" diff --git a/src/bin/pslink/cli.rs b/src/bin/pslink/cli.rs index e8703dd..d51731d 100644 --- a/src/bin/pslink/cli.rs +++ b/src/bin/pslink/cli.rs @@ -223,7 +223,7 @@ pub(crate) async fn setup() -> Result, ServerError> // Print launch info slog_info!(log, "Launching Pslink a 'Private short link generator'"); - slog_info!(log, "logging initialized"); + slog_trace!(log, "logging initialized"); let app = generate_cli(); @@ -239,6 +239,7 @@ pub(crate) async fn setup() -> Result, ServerError> .parse::() .expect("Failed to parse Database path."); if !db.exists() { + slog_trace!(log, "No database file found {}", db.display()); if config.subcommand_matches("migrate-database").is_none() { let msg = format!( concat!( @@ -252,8 +253,9 @@ pub(crate) async fn setup() -> Result, ServerError> eprintln!("{}", msg); return Ok(None); } + slog_trace!(log, "Creating database: {}", db.display()); - // create an empty database file the if above makes sure that this file does not exist. + // create an empty database file. The if above makes sure that this file does not exist. File::create(db)?; }; @@ -290,8 +292,10 @@ pub(crate) async fn setup() -> Result, ServerError> " Create a user with `pslink create-admin`" ) ); + } else { + slog_trace!(&server_config.log, "At least one admin user is found."); } - slog_info!( + slog_trace!( &server_config.log, "Initialization finished starting the service." ); diff --git a/src/bin/pslink/main.rs b/src/bin/pslink/main.rs index 5cd7778..50e38a7 100644 --- a/src/bin/pslink/main.rs +++ b/src/bin/pslink/main.rs @@ -2,6 +2,7 @@ extern crate sqlx; #[allow(unused_imports)] #[macro_use( slog_o, + slog_trace, slog_info, slog_warn, slog_error, @@ -82,25 +83,26 @@ fn build_tera() -> Result { Ok(tera) } -#[allow(clippy::future_not_send)] +#[allow(clippy::future_not_send, clippy::too_many_lines)] async fn webservice(server_config: ServerConfig) -> Result<()> { let host_port = format!("{}:{}", &server_config.internal_ip, &server_config.port); - + let cfg = server_config.clone(); slog_info!( - server_config.log, + cfg.log, "Running on: {}://{}/admin/login/", &server_config.protocol, host_port ); slog_info!( - server_config.log, + cfg.log, "If the public url is set up correctly it should be accessible via: {}://{}/admin/login/", &server_config.protocol, &server_config.public_url ); + let tera = build_tera()?; + slog_trace!(cfg.log, "The tera templates are ready"); HttpServer::new(move || { - let tera = build_tera(); //Tera::new("templates/**/*").expect("failed to initialize the templates"); let generated = generate(); App::new() .data(server_config.clone()) @@ -112,7 +114,7 @@ async fn webservice(server_config: ServerConfig) -> Result<()> { .name("auth-cookie") .secure(false), )) - .data(tera) + .data(tera.clone()) .service(actix_web_static_files::ResourceFiles::new( "/static", generated, )) @@ -187,7 +189,11 @@ async fn webservice(server_config: ServerConfig) -> Result<()> { .route("/{redirect_id}", web::get().to(views::redirect)) }) .bind(host_port) - .context("Failed to bind to port")? + .context("Failed to bind to port") + .map_err(|e| { + slog_error!(cfg.log, "Failed to bind to port!"); + e + })? .run() .await .context("Failed to run the webservice") diff --git a/src/bin/pslink/views.rs b/src/bin/pslink/views.rs index c2d51f7..49fbdcb 100644 --- a/src/bin/pslink/views.rs +++ b/src/bin/pslink/views.rs @@ -13,6 +13,7 @@ use fluent_langneg::{ use fluent_templates::LanguageIdentifier; use image::{DynamicImage, ImageOutputFormat, Luma}; use qrcode::{render::svg, QrCode}; +use queries::{authenticate, Role}; use tera::{Context, Tera}; use pslink::forms::LinkForm; @@ -57,14 +58,13 @@ fn detect_language(request: &HttpRequest) -> Result { let languagecode = supported .get(0) .map_or("en".to_string(), std::string::ToString::to_string); - println!("Detected the language: {}", &languagecode); Ok(languagecode) } /// Show the list of all available links if a user is authenticated pub async fn index( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { if let Ok(links) = queries::list_all_allowed(&id, &config).await { @@ -82,7 +82,7 @@ pub async fn index( /// Show the list of all available links if a user is authenticated pub async fn index_users( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { if let Ok(users) = queries::list_users(&id, &config).await { @@ -99,7 +99,7 @@ pub async fn index_users( } pub async fn view_link_empty( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { view_link(tera, config, id, web::Path::from("".to_owned())).await @@ -107,7 +107,7 @@ pub async fn view_link_empty( pub async fn view_link( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, link_id: web::Path, ) -> Result { @@ -146,7 +146,7 @@ pub async fn view_link( pub async fn view_profile( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, user_id: web::Path, ) -> Result { @@ -173,7 +173,7 @@ pub async fn view_profile( pub async fn edit_profile( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, user_id: web::Path, ) -> Result { @@ -199,7 +199,7 @@ pub async fn edit_profile( pub async fn process_edit_profile( data: web::Form, - config: web::Data, + config: web::Data, id: Identity, user_id: web::Path, ) -> Result { @@ -215,7 +215,7 @@ pub async fn process_edit_profile( pub async fn download_png( id: Identity, - config: web::Data, + config: web::Data, link_code: web::Path, ) -> Result { match queries::get_link(&id, &link_code.0, &config).await { @@ -239,7 +239,7 @@ pub async fn download_png( pub async fn signup( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { match queries::authenticate(&id, &config).await? { @@ -259,7 +259,7 @@ pub async fn signup( pub async fn process_signup( data: web::Form, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { slog_info!(config.log, "Creating a User: {:?}", &data); @@ -272,7 +272,7 @@ pub async fn process_signup( pub async fn toggle_admin( data: web::Path, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { let update = queries::toggle_admin(&id, &data.0, &config).await?; @@ -284,7 +284,7 @@ pub async fn toggle_admin( pub async fn set_language( data: web::Path, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { queries::set_language(&id, &data.0, &config).await?; @@ -294,7 +294,7 @@ pub async fn set_language( pub async fn login( tera: web::Data, id: Identity, - config: web::Data, + config: web::Data, req: HttpRequest, ) -> Result { let language_code = detect_language(&req)?; @@ -303,8 +303,22 @@ pub async fn login( data.insert("title", "Login"); data.insert("language", &language_code); - if let Some(_id) = id.identity() { - return Ok(redirect_builder("/admin/index/")); + if id.identity().is_some() { + if let Ok(r) = authenticate(&id, &config).await { + match r { + Role::Admin { user } | Role::Regular { user } => { + slog_trace!( + config.log, + "This user ({}) is already logged in redirecting to /admin/index/", + user.username + ); + return Ok(redirect_builder("/admin/index/")); + } + Role::Disabled | Role::NotAuthenticated => (), + } + } + slog_warn!(config.log, "Invalid user session. The user might be deleted or something tampered with the cookies."); + id.forget(); } let rendered = tera.render("login.html", &data)?; @@ -313,7 +327,7 @@ pub async fn login( pub async fn process_login( data: web::Form, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { let user = queries::get_user_by_name(&data.username, &config).await; @@ -350,7 +364,7 @@ pub async fn logout(id: Identity) -> Result { pub async fn redirect( tera: web::Data, - config: web::Data, + config: web::Data, data: web::Path, req: HttpRequest, ) -> Result { @@ -382,14 +396,14 @@ pub async fn redirect( } pub async fn redirect_empty( - config: web::Data, + config: web::Data, ) -> Result { Ok(redirect_builder(&config.empty_forward_url)) } pub async fn create_link( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { match queries::authenticate(&id, &config).await? { @@ -409,7 +423,7 @@ pub async fn create_link( pub async fn process_link_creation( data: web::Form, - config: web::Data, + config: web::Data, id: Identity, ) -> Result { let new_link = queries::create_link(&id, data, &config).await?; @@ -421,7 +435,7 @@ pub async fn process_link_creation( pub async fn edit_link( tera: web::Data, - config: web::Data, + config: web::Data, id: Identity, link_id: web::Path, ) -> Result { @@ -438,7 +452,7 @@ pub async fn edit_link( } pub async fn process_link_edit( data: web::Form, - config: web::Data, + config: web::Data, id: Identity, link_code: web::Path, ) -> Result { @@ -453,7 +467,7 @@ pub async fn process_link_edit( pub async fn process_link_delete( id: Identity, - config: web::Data, + config: web::Data, link_code: web::Path, ) -> Result { queries::delete_link(&id, &link_code.0, &config).await?; diff --git a/src/lib.rs b/src/lib.rs index d3aca9e..d5d034a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -51,25 +51,86 @@ impl From for ServerError { } } +impl ServerError { + fn render_error(title: &str, content: &str) -> String { + format!( + " + + + + {0} + + + + + +
+

{0}

+
+ {1} +
+
+ + ", + title, content + ) + } +} + impl actix_web::error::ResponseError for ServerError { fn error_response(&self) -> HttpResponse { match self { - Self::Argonautica(_) => HttpResponse::InternalServerError().json("Argonautica Error"), - Self::Database(e) => { - HttpResponse::InternalServerError().json(format!("Database Error: {:?}", e)) + Self::Argonautica(e) => { + eprintln!("Argonautica Error happened: {:?}", e); + HttpResponse::InternalServerError() + .body("Failed to encrypt the password - Aborting!") } - Self::DatabaseMigration(_) => { + Self::Database(e) => { + eprintln!("Database Error happened: {:?}", e); + HttpResponse::InternalServerError().body(&Self::render_error( + "Server Error", + "Database could not be accessed! - It could be that this value already was in the database! If you are the admin look into the logs for a more detailed error.", + )) + } + Self::DatabaseMigration(e) => { + eprintln!("Migration Error happened: {:?}", e); unimplemented!("A migration error should never be rendered") } - Self::Environment(_) => HttpResponse::InternalServerError().json("Environment Error"), + Self::Environment(e) => { + eprintln!("Environment Error happened: {:?}", e); + HttpResponse::InternalServerError().body(&Self::render_error( + "Server Error", + "This Server is not properly configured, if you are the admin look into the installation- or update instructions!", + )) + } Self::Template(e) => { - HttpResponse::InternalServerError().json(format!("Template Error: {:?}", e)) + eprintln!("Template Error happened: {:?}", e); + HttpResponse::InternalServerError().body(&Self::render_error( + "Server Error", + "The templates could not be rendered.", + )) } Self::Qr(e) => { - HttpResponse::InternalServerError().json(format!("Qr Code Error: {:?}", e)) + eprintln!("QR Error happened: {:?}", e); + HttpResponse::InternalServerError().body(&Self::render_error( + "Server Error", + "Could not generate the QR-code!", + )) + } + Self::Io(e) => { + eprintln!("Io Error happened: {:?}", e); + HttpResponse::InternalServerError().body(&Self::render_error( + "Server Error", + "Some Files could not be read or written. If you are the admin look into the logfiles for more details.", + )) + } + Self::User(data) => { + eprintln!("User Error happened: {:?}", data); + HttpResponse::InternalServerError().body(&Self::render_error( + "Server Error", + &format!("An error happened: {}", data), + )) } - Self::Io(e) => HttpResponse::InternalServerError().json(format!("IO Error: {:?}", e)), - Self::User(data) => HttpResponse::InternalServerError().json(data), } } }