diff --git a/.dockerignore b/.dockerignore index 04bb8af1c..7db082598 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,7 +4,7 @@ # build folders and similar which are not needed for the docker build ui/node_modules server/target -# docker/dev/volumes +docker/dev/volumes # docker/federation/volumes # docker/federation-test/volumes #.git # needed to get git sha diff --git a/.drone.yml b/.drone.yml index da16071e0..16eb40935 100644 --- a/.drone.yml +++ b/.drone.yml @@ -30,7 +30,7 @@ path: /cache - name: build_backend - image: rust:1.47 + image: rust:1.54 env: - CARGO_TARGET_DIR=/var/cache/drone/cargo - CARGO_HOME=/var/cache/drone/cargo diff --git a/README.md b/README.md index 5944588e6..a86b2701b 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,16 @@ -
- -

DOES NOT RUN IN RUST 1.48+ DUE TO AN ISSUE IN A DEPENDENCY. USE RUST 1.47

- -**Main Branch:** [![Build Status](https://drone.chapo.chat/api/badges/chapo-collective/lemmy-hexbear/status.svg?ref=refs/heads/main)](https://drone.chapo.chat/chapo-collective/lemmy-hexbear) +
+

+ + +

-**Production:** [![Build Status](https://drone.chapo.chat/api/badges/chapo-collective/lemmy-hexbear/status.svg?ref=refs/heads/prod)](https://drone.chapo.chat/chapo-collective/lemmy-hexbear) +**Main Branch:** [![Build Status](https://drone.chapo.chat/api/badges/hexbear-collective/lemmy-hexbear/status.svg?ref=refs/heads/main)](https://drone.chapo.chat/hexbear-collective/lemmy-hexbear) +**Production:** [![Build Status](https://drone.chapo.chat/api/badges/hexbear-collective/lemmy-hexbear/status.svg?ref=refs/heads/prod)](https://drone.chapo.chat/hexbear-collective/lemmy-hexbear) [Original Lemmy README](README-lemmy.md) -
-

- - -

+
# Hexbear diff --git a/docker/chapo-dev/docker-compose.yml b/docker/chapo-dev/docker-compose.yml index 7bfabee7b..be205bd69 100644 --- a/docker/chapo-dev/docker-compose.yml +++ b/docker/chapo-dev/docker-compose.yml @@ -68,12 +68,11 @@ services: restart: always iframely: - image: dogbin/iframely:latest - container_name: iframely-dev + image: jolt/iframely:v1.6.1 ports: - "127.0.0.1:8061:80" volumes: - - ./iframely.config.local.js:/iframely/config.local.js:ro + - ./volumes/iframely/iframely.config.local.js:/iframely/config.local.js:ro restart: always purgebot: diff --git a/docker/chapo-prod/docker-compose.yml b/docker/chapo-prod/docker-compose.yml index bc5293e1b..717cfe431 100644 --- a/docker/chapo-prod/docker-compose.yml +++ b/docker/chapo-prod/docker-compose.yml @@ -81,8 +81,7 @@ services: restart: always iframely: - image: dogbin/iframely:latest - container_name: iframely-prod + image: jolt/iframely:v1.6.1 ports: - "127.0.0.1:8062:80" volumes: diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 9dab3eb42..3ea3e352f 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -1,63 +1,54 @@ -FROM node:10-jessie as node +ARG RUST_BUILDER=ekidd/rust-musl-builder:latest -WORKDIR /app/ui +FROM $RUST_BUILDER as planner # Cache deps -COPY ui/package.json ui/yarn.lock ./ -RUN yarn install --pure-lockfile +WORKDIR /app -# Build -COPY ui /app/ui -COPY .git/ ./.git/ -RUN yarn build -RUN su && rm -rf .git +#install cargo chef +RUN cargo install cargo-chef -FROM ekidd/rust-musl-builder:nightly-2020-05-07 as rust +RUN sudo chown -R rust:rust . -# Cache deps -WORKDIR /app +WORKDIR /app/server + +COPY server/ . + +# list off needed dependencies +RUN cargo chef prepare --recipe-path recipe.json + + +FROM ${RUST_BUILDER} as cacher +WORKDIR /app/server + +RUN cargo install cargo-chef + +COPY --from=planner /app/server/recipe.json recipe.json RUN sudo chown -R rust:rust . -RUN USER=root cargo new server +RUN cargo chef cook --recipe-path recipe.json + + +FROM ${RUST_BUILDER} as builder -# Install cargo-build-deps -RUN cargo install --git https://github.com/romac/cargo-build-deps.git WORKDIR /app/server -RUN mkdir -p lemmy_db/src/ \ - lemmy_utils/src/ \ - lemmy_api_structs/src/ \ - lemmy_rate_limit/src/ \ - lemmy - -# Copy the cargo tomls -COPY server/Cargo.toml server/Cargo.lock server/build.rs ./ -COPY server/lemmy_db/Cargo.toml ./lemmy_db/ -COPY server/lemmy_utils/Cargo.toml ./lemmy_utils/ -COPY server/lemmy_api_structs/Cargo.toml ./lemmy_api_structs/ -COPY server/lemmy_rate_limit/Cargo.toml ./lemmy_rate_limit/ - -# Cache the deps -RUN cargo build-deps - -# Copy the src folders -COPY server/src ./src/ -COPY server/lemmy_db/src ./lemmy_db/src/ -COPY server/lemmy_utils/src/ ./lemmy_utils/src/ -COPY server/lemmy_api_structs/src/ ./lemmy_api_structs/src/ -COPY server/lemmy_rate_limit/src/ ./lemmy_rate_limit/src/ -COPY server/migrations ./migrations/ - -COPY .git/ ./.git/ - -# Build for debug + +COPY server/ . + +COPY --from=cacher /app/server/target ./target +COPY --from=cacher /home/rust/.cargo /home/rust/.cargo + +RUN sudo chown -R rust:rust . RUN cargo build -FROM ekidd/rust-musl-builder:nightly-2020-05-07 as docs + +FROM ${RUST_BUILDER} as docs WORKDIR /app COPY docs ./docs RUN sudo chown -R rust:rust . RUN mdbook build docs/ -FROM alpine:3.12 + +FROM alpine:3.12 as runner # Install libpq for postgres RUN apk add libpq @@ -67,9 +58,8 @@ RUN apk add espeak # Copy resources COPY server/config/defaults.hjson /config/defaults.hjson -COPY --from=rust /app/server/target/x86_64-unknown-linux-musl/debug/lemmy_server /app/lemmy +COPY --from=builder /app/server/target/x86_64-unknown-linux-musl/debug/lemmy_server /app/lemmy COPY --from=docs /app/docs/book/ /app/dist/documentation/ -COPY --from=node /app/ui/dist /app/dist RUN addgroup -g 1000 lemmy RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy diff --git a/docker/dev/docker-compose.yml b/docker/dev/docker-compose.yml index 8fc54e559..1b85ae145 100644 --- a/docker/dev/docker-compose.yml +++ b/docker/dev/docker-compose.yml @@ -3,9 +3,9 @@ version: '3.3' services: lemmy: - image: lemmy-dev:latest + image: hexbear-dev:latest ports: - - "8536:8536" + - 8536:8536 restart: always environment: - RUST_LOG=debug @@ -20,7 +20,7 @@ services: image: postgres:12-alpine ports: # use a different port so it doesnt conflict with postgres running on the host - - "5433:5432" + - 5433:5432 environment: - POSTGRES_USER=lemmy - POSTGRES_PASSWORD=password @@ -32,16 +32,16 @@ services: pictrs: image: asonix/pictrs:v0.2.5-r0 ports: - - "8537:8080" + - 8537:8080 user: 991:991 volumes: - ./volumes/pictrs:/mnt restart: always iframely: - image: jolt/iframely:v1.4.3 + image: jolt/iframely:v1.6.1 ports: - - "8061:80" + - 8061:80 volumes: - ../iframely.config.local.js:/iframely/config.local.js:ro restart: always diff --git a/docker/iframely.config.local.js b/docker/iframely.config.local.js index 8e8bc21fb..b2b503f76 100644 --- a/docker/iframely.config.local.js +++ b/docker/iframely.config.local.js @@ -25,6 +25,8 @@ // request with `redirect loop` error. MAX_REDIRECTS: 4, + DISABLE_HTTP2: true, + SKIP_OEMBED_RE_LIST: [ // /^https?:\/\/yourdomain\.com\//, ], diff --git a/docker/lemmy.hjson b/docker/lemmy.hjson index d17394767..165e1da18 100644 --- a/docker/lemmy.hjson +++ b/docker/lemmy.hjson @@ -4,15 +4,15 @@ setup: { # username for the admin user - admin_username: "lemmy" + admin_username: "hexdev" # password for the admin user - admin_password: "lemmy" + admin_password: "hexbear" # name of the site (can be changed later) - site_name: "lemmy-test" + site_name: "hexbear docker dev" } # the domain name of your instance (eg "dev.lemmy.ml") - hostname: "my_domain" + hostname: "localhost:4444" # address where lemmy should listen for incoming requests bind: "0.0.0.0" # port where lemmy should listen for incoming requests diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile index 971073691..918054e18 100644 --- a/docker/prod/Dockerfile +++ b/docker/prod/Dockerfile @@ -1,4 +1,4 @@ -ARG RUST_BUILDER_IMAGE=ekidd/rust-musl-builder:1.47.0 +ARG RUST_BUILDER_IMAGE=ekidd/rust-musl-builder:latest ARG FRONTEND_TAG=prod ARG FRONTEND_REPO=registry.chapo.chat/hexbear-frontend @@ -10,6 +10,7 @@ ARG RUSTRELEASEDIR="release" # Cache deps WORKDIR /app +COPY ./.git/ ./.git/ RUN sudo chown -R rust:rust . RUN USER=root cargo new server WORKDIR /app/server @@ -26,8 +27,6 @@ RUN find target/$CARGO_BUILD_TARGET/$RUSTRELEASEDIR -type f -name "$(echo "lemmy COPY server/src ./src/ COPY server/migrations ./migrations/ -COPY .git/ ./.git/ - # build for release # workaround for https://github.com/rust-lang/rust/issues/62896 RUN cargo build --frozen --release diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index c7eb3adec..3d432136d 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -35,7 +35,7 @@ services: restart: always iframely: - image: dogbin/iframely:latest + image: jolt/iframely:v1.6.1 ports: - "127.0.0.1:8061:80" volumes: diff --git a/server/Cargo.lock b/server/Cargo.lock index 2b7f24da0..7c4d8d267 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -1,14 +1,16 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "activitystreams" -version = "0.7.0-alpha.8" +version = "0.7.0-alpha.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9fedbe571e267d9b93d071bdc4493f944022c6cce717ebb27d352026fc81c4" +checksum = "3a5da1d857ec9ca65ef8d0469cdd64e7b93b59d6cad26f1444bf84b62f3eadd4" dependencies = [ "chrono", "mime", - "serde 1.0.118", + "serde 1.0.130", "serde_json", "thiserror", "url", @@ -21,161 +23,135 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb8e19a0810cc25df3535061a08b7d8f8a734d309ea4411c57a9767e4a2ffa0e" dependencies = [ "activitystreams", - "serde 1.0.118", + "serde 1.0.130", "serde_json", ] [[package]] name = "actix" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be241f88f3b1e7e9a3fbe3b5a8a0f6915b5a1d7ee0d9a248d3376d01068cc60" +checksum = "3720d0064a0ce5c0de7bd93bdb0a6caebab2a9b5668746145d7b3b0c5da02914" dependencies = [ "actix-rt", "actix_derive", - "bitflags 1.2.1", + "bitflags", "bytes", - "crossbeam-channel 0.4.4", - "derive_more", - "futures-channel", + "crossbeam-channel", + "futures-core", + "futures-sink", + "futures-task", "futures-util", "log", "once_cell", "parking_lot", - "pin-project 0.4.27", + "pin-project-lite", "smallvec", "tokio", "tokio-util", - "trust-dns-proto", - "trust-dns-resolver", ] [[package]] name = "actix-codec" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78d1833b3838dbe990df0f1f87baf640cf6146e898166afe401839d1b001e570" +checksum = "1d5dbeb2d9e51344cb83ca7cc170f1217f9fe25bfc50160e6e200b5c31c1019a" dependencies = [ - "bitflags 1.2.1", + "bitflags", "bytes", "futures-core", "futures-sink", "log", - "pin-project 0.4.27", + "pin-project-lite", "tokio", "tokio-util", ] -[[package]] -name = "actix-connect" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177837a10863f15ba8d3ae3ec12fac1099099529ed20083a27fdfe247381d0dc" -dependencies = [ - "actix-codec", - "actix-rt", - "actix-service", - "actix-utils", - "derive_more", - "either", - "futures-util", - "http", - "log", - "rustls", - "tokio-rustls", - "trust-dns-proto", - "trust-dns-resolver", - "webpki", -] - [[package]] name = "actix-cors" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f3a3d5493dbc9b8769fe88c030d057ef8d2edc5728e5e26267780e8fc5db0be" +version = "0.6.0-beta.2" +source = "git+https://github.com/actix/actix-extras.git#44c7b07ce274d22182e5356938de8456e15e23bf" dependencies = [ + "actix-service", "actix-web", "derive_more", "futures-util", "log", "once_cell", - "tinyvec", + "smallvec", ] [[package]] name = "actix-files" -version = "0.3.0" +version = "0.6.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8035f08f194893b199f4928b40425bd727c0257cf0fcf36f4ac214968d649ec7" +checksum = "89b864740ed79d26e6e3c33fd2a1e03a071daaa43c88e6900ff1f9378fca88ce" dependencies = [ "actix-http", "actix-service", + "actix-utils", "actix-web", - "bitflags 1.2.1", + "askama_escape", + "bitflags", "bytes", "derive_more", "futures-core", - "futures-util", + "http-range", "log", "mime", "mime_guess", "percent-encoding", - "v_htmlescape", ] [[package]] name = "actix-http" -version = "2.2.0" +version = "3.0.0-beta.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452299e87817ae5673910e53c243484ca38be3828db819b6011736fc6982e874" +checksum = "3cd16d6b846983ffabfd081e1a67abd7698094fcbe7b3d9bcf1acbc6f546a516" dependencies = [ "actix-codec", - "actix-connect", "actix-rt", "actix-service", - "actix-threadpool", "actix-tls", "actix-utils", + "ahash 0.7.4", "base64 0.13.0", - "bitflags 1.2.1", + "bitflags", "brotli2", "bytes", - "cookie", - "copyless", + "bytestring", "derive_more", - "either", "encoding_rs", "flate2", - "futures-channel", "futures-core", "futures-util", - "fxhash", "h2", "http", "httparse", - "indexmap", "itoa", "language-tags", - "lazy_static", + "local-channel", "log", "mime", + "once_cell", "percent-encoding", - "pin-project 1.0.2", - "rand 0.7.3", + "pin-project", + "pin-project-lite", + "rand 0.8.4", "regex", - "serde 1.0.118", - "serde_json", - "serde_urlencoded", - "sha-1 0.9.2", - "slab", - "time 0.2.23", + "serde 1.0.130", + "sha-1 0.9.6", + "smallvec", + "time 0.2.27", + "tokio", + "zstd", ] [[package]] name = "actix-macros" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ca8ce00b267af8ccebbd647de0d61e0674b6e61185cc7a592ff88772bed655" +checksum = "c2f86cd6857c135e6e9fe57b1619a88d1f94a7df34c00e11fe13e64fd3438837" dependencies = [ "quote", "syn", @@ -183,132 +159,90 @@ dependencies = [ [[package]] name = "actix-router" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd1f7dbda1645bf7da33554db60891755f6c01c1b2169e2f4c492098d30c235" +checksum = "2ad299af73649e1fc893e333ccf86f377751eb95ff875d095131574c6f43452c" dependencies = [ "bytestring", "http", "log", "regex", - "serde 1.0.118", + "serde 1.0.130", ] [[package]] name = "actix-rt" -version = "1.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227" +checksum = "bc7d7cd957c9ed92288a7c3c96af81fa5291f65247a76a34dac7b6af74e52ba0" dependencies = [ "actix-macros", - "actix-threadpool", - "copyless", - "futures-channel", - "futures-util", - "smallvec", + "futures-core", "tokio", ] [[package]] name = "actix-server" -version = "1.0.4" +version = "2.0.0-beta.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45407e6e672ca24784baa667c5d32ef109ccdd8d5e0b5ebb9ef8a67f4dfb708e" +checksum = "26369215fcc3b0176018b3b68756a8bcc275bb000e6212e454944913a1f9bf87" dependencies = [ - "actix-codec", "actix-rt", "actix-service", "actix-utils", - "futures-channel", - "futures-util", + "futures-core", "log", "mio", - "mio-uds", "num_cpus", "slab", - "socket2", + "tokio", ] [[package]] name = "actix-service" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb" -dependencies = [ - "futures-util", - "pin-project 0.4.27", -] - -[[package]] -name = "actix-testing" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c" -dependencies = [ - "actix-macros", - "actix-rt", - "actix-server", - "actix-service", - "log", - "socket2", -] - -[[package]] -name = "actix-threadpool" -version = "0.3.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30" +checksum = "77f5f9d66a8730d0fae62c26f3424f5751e5518086628a40b7ab6fca4a705034" dependencies = [ - "derive_more", - "futures-channel", - "lazy_static", - "log", - "num_cpus", - "parking_lot", - "threadpool", + "futures-core", + "paste", + "pin-project-lite", ] [[package]] name = "actix-tls" -version = "2.0.0" +version = "3.0.0-beta.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24789b7d7361cf5503a504ebe1c10806896f61e96eca9a7350e23001aca715fb" +checksum = "65b7bb60840962ef0332f7ea01a57d73a24d2cb663708511ff800250bbfef569" dependencies = [ "actix-codec", + "actix-rt", "actix-service", "actix-utils", - "futures-util", - "rustls", + "derive_more", + "futures-core", + "http", + "log", "tokio-rustls", - "webpki", + "tokio-util", "webpki-roots", ] [[package]] name = "actix-utils" -version = "2.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9022dec56632d1d7979e59af14f0597a28a830a9c1c7fec8b2327eb9f16b5a" +checksum = "e491cbaac2e7fc788dfff99ff48ef317e23b3cf63dbaf7aaab6418f40f92aa94" dependencies = [ - "actix-codec", - "actix-rt", - "actix-service", - "bitflags 1.2.1", - "bytes", - "either", - "futures-channel", - "futures-sink", - "futures-util", - "log", - "pin-project 0.4.27", - "slab", + "local-waker", + "pin-project-lite", ] [[package]] name = "actix-web" -version = "3.3.2" +version = "4.0.0-beta.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e641d4a172e7faa0862241a20ff4f1f5ab0ab7c279f00c2d4587b77483477b86" +checksum = "c503f726f895e55dac39adeafd14b5ee00cc956796314e9227fc7ae2e176f443" dependencies = [ "actix-codec", "actix-http", @@ -317,54 +251,57 @@ dependencies = [ "actix-rt", "actix-server", "actix-service", - "actix-testing", - "actix-threadpool", "actix-tls", "actix-utils", "actix-web-codegen", - "awc", + "ahash 0.7.4", "bytes", + "cfg-if", + "cookie", "derive_more", + "either", "encoding_rs", - "futures-channel", "futures-core", "futures-util", - "fxhash", + "itoa", + "language-tags", "log", "mime", - "pin-project 1.0.2", + "once_cell", + "paste", + "pin-project", "regex", - "rustls", - "serde 1.0.118", + "serde 1.0.130", "serde_json", "serde_urlencoded", + "smallvec", "socket2", - "time 0.2.23", - "tinyvec", + "time 0.2.27", "url", ] [[package]] name = "actix-web-actors" -version = "3.0.0" +version = "4.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6edf3c2693e2a8c422800c87ee89a6a4eac7dd01109bc172a1093ce1f4f001" +checksum = "7db5c2c78a2606e6634abee4973a4924221cfab66e48f23844256e4fb8ce0f42" dependencies = [ "actix", "actix-codec", "actix-http", "actix-web", "bytes", - "futures-channel", + "bytestring", "futures-core", - "pin-project 0.4.27", + "pin-project", + "tokio", ] [[package]] name = "actix-web-codegen" -version = "0.4.0" +version = "0.5.0-beta.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb" +checksum = "0d048c6986743105c1e8e9729fbc8d5d1667f2f62393a58be8d85a7d9a5a6c8d" dependencies = [ "proc-macro2", "quote", @@ -373,9 +310,9 @@ dependencies = [ [[package]] name = "actix_derive" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95aceadaf327f18f0df5962fedc1bde2f870566a0b9f65c89508a3b1f79334c" +checksum = "6d44b8fee1ced9671ba043476deddef739dd0959bf77030b26b738cc591737a7" dependencies = [ "proc-macro2", "quote", @@ -384,18 +321,18 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.14.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423" +checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a" dependencies = [ "gimli", ] [[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" @@ -403,11 +340,28 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" +[[package]] +name = "ahash" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" + +[[package]] +name = "ahash" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" +dependencies = [ + "getrandom 0.2.3", + "once_cell", + "version_check 0.9.3", +] + [[package]] name = "aho-corasick" -version = "0.7.15" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" dependencies = [ "memchr", ] @@ -418,14 +372,14 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] name = "anyhow" -version = "1.0.36" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68803225a7b13e47191bab76f2687382b60d259e8cf37f6e1893658b84bb9479" +checksum = "28ae2b3dec75a406790005a200b1bd89785afc02517a00ca99ecfe093ee9e6cf" [[package]] name = "arrayvec" @@ -439,6 +393,12 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a" +[[package]] +name = "askama_escape" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb" + [[package]] name = "async-mutex" version = "1.4.0" @@ -450,15 +410,27 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.42" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e" dependencies = [ "proc-macro2", "quote", "syn", ] +[[package]] +name = "atom_syndication" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5016bf52ff4f3ed28bf3ec1fed96b53daf4b137d5e6b9f97a8cfae7b57a3a2" +dependencies = [ + "chrono", + "derive_builder", + "diligent-date-parser", + "quick-xml", +] + [[package]] name = "atty" version = "0.2.14" @@ -467,7 +439,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -484,9 +456,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "awc" -version = "2.0.3" +version = "3.0.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b381e490e7b0cfc37ebc54079b0413d8093ef43d14a4e4747083f7fa47a9e691" +checksum = "364ef81705bf38403a3c3da4fab9eeec1e1503cd72dd6cd7c4259d2a6b08aa98" dependencies = [ "actix-codec", "actix-http", @@ -494,24 +466,26 @@ dependencies = [ "actix-service", "base64 0.13.0", "bytes", - "cfg-if 1.0.0", + "cfg-if", + "cookie", "derive_more", "futures-core", + "itoa", "log", "mime", "percent-encoding", - "rand 0.7.3", - "rustls", - "serde 1.0.118", + "pin-project-lite", + "rand 0.8.4", + "serde 1.0.130", "serde_json", "serde_urlencoded", ] [[package]] name = "background-jobs" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c445edc4c6f8329385507bddd65491bfa3293f0a46a785119a14e526710ab320" +checksum = "1ce8953ce13a4bc359900fca168b64e47d5f0af1c02f2d45527221babbb73a27" dependencies = [ "background-jobs-actix", "background-jobs-core", @@ -519,9 +493,9 @@ dependencies = [ [[package]] name = "background-jobs-actix" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9696729d7b14c1682af423381744f317f7180136b4a2c8e4eca3a46e242f5fc" +checksum = "9e170bb20c0ca37c8bdd212753a0c51dbe570fcb13dba2d2c819241bc376fb70" dependencies = [ "actix-rt", "anyhow", @@ -531,19 +505,18 @@ dependencies = [ "chrono", "log", "num_cpus", - "rand 0.7.3", - "serde 1.0.118", + "serde 1.0.130", "serde_json", "thiserror", "tokio", - "uuid 0.8.1", + "uuid 0.8.2", ] [[package]] name = "background-jobs-core" -version = "0.8.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68ae77ec4330e8ac4ea643ce2f25d1e8d81509eb659e671b18f68d91939d72d" +checksum = "d7fc10cc1d7bc1cf5695efa5f56e0f9d6906f7863bc14acb03ff8a6fff8b6e95" dependencies = [ "actix-rt", "anyhow", @@ -551,23 +524,24 @@ dependencies = [ "async-trait", "chrono", "log", - "serde 1.0.118", + "serde 1.0.130", "serde_json", "thiserror", "tokio", - "uuid 0.8.1", + "uuid 0.8.2", ] [[package]] name = "backtrace" -version = "0.3.55" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598" +checksum = "b7815ea54e4d821e791162e078acbebfd6d8c8939cd559c9335dceb1c8ca7282" dependencies = [ "addr2line", - "cfg-if 1.0.0", + "cc", + "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.4.4", "object", "rustc-demangle", ] @@ -578,15 +552,6 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" -[[package]] -name = "base64" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e93c03064e7590d0466209155251b90c22e37fab1daf2771582598b5827557" -dependencies = [ - "byteorder", -] - [[package]] name = "base64" version = "0.9.3" @@ -620,22 +585,15 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bcrypt" -version = "0.8.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2cab630912253fb9dc92c0e2fabd0a7b51f5a5a4007177cfa31e517015b7204" +checksum = "f691e63585950d8c1c43644d11bab9073e40f5060dd2822734ae7c3dc69a3a80" dependencies = [ - "base64 0.12.3", + "base64 0.13.0", "blowfish", - "byteorder", - "getrandom", + "getrandom 0.2.3", ] -[[package]] -name = "bitflags" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" - [[package]] name = "bitflags" version = "1.2.1" @@ -651,7 +609,7 @@ dependencies = [ "block-padding", "byte-tools", "byteorder", - "generic-array 0.12.3", + "generic-array 0.12.4", ] [[package]] @@ -663,15 +621,6 @@ dependencies = [ "generic-array 0.14.4", ] -[[package]] -name = "block-cipher" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f337a3e6da609650eb74e02bc9fac7b735049f7623ab12f2e4c719316fcc7e80" -dependencies = [ - "generic-array 0.14.4", -] - [[package]] name = "block-padding" version = "0.1.5" @@ -683,12 +632,12 @@ dependencies = [ [[package]] name = "blowfish" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f06850ba969bc59388b2cc0a4f186fc6d9d37208863b15b84ae3866ac90ac06" +checksum = "fe3ff3fc1de48c1ac2e3341c4df38b0d1bfb8fdf04632a187c8b75aaa319a7ab" dependencies = [ - "block-cipher", "byteorder", + "cipher", "opaque-debug 0.3.0", ] @@ -712,15 +661,6 @@ dependencies = [ "libc", ] -[[package]] -name = "buf-min" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6ae7069aad07c7cdefe6a22a671f00650728bd2331a4cc62e1e5d0becdf9ca4" -dependencies = [ - "bytes", -] - [[package]] name = "bufstream" version = "0.1.4" @@ -729,9 +669,9 @@ checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8" [[package]] name = "bumpalo" -version = "3.4.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" +checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" [[package]] name = "byte-tools" @@ -741,62 +681,53 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.4.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41aa2ec95ca3b5c54cf73c91acf06d24f4495d5f1b1c12506ae3483d646177ac" +checksum = "9966d2ab714d0f785dbac0a0396251a35280aeb42413281617d0209ab4898435" [[package]] name = "byteorder" -version = "1.3.4" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "0.5.6" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" +checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" [[package]] name = "bytestring" -version = "0.1.5" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7c05fa5172da78a62d9949d662d2ac89d4cc7355d7b49adee5163f1fb3f363" +checksum = "90706ba19e97b90786e19dc0d5e2abd80008d99d4c0c5d1ad0b5e72cec7c494d" dependencies = [ "bytes", ] -[[package]] -name = "c_vec" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a318911dce53b5f1ca6539c44f5342c632269f0fa7ea3e35f32458c27a7c30" - [[package]] name = "captcha" -version = "0.0.7" +version = "0.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d060a3be43adb2fe89d3448e9a193149806139b1ce99281865fcab7aeaf04ed" +checksum = "29256038744434f6d0e1328d7c9050f14aa5fc8562ff065b9e9481ac293ba5bc" dependencies = [ - "base64 0.5.2", + "base64 0.13.0", + "hound", "image", "lodepng", - "rand 0.3.23", + "rand 0.7.3", "serde_json", - "time 0.1.44", ] [[package]] name = "cc" -version = "1.0.66" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" +dependencies = [ + "jobserver", +] [[package]] name = "cfg-if" @@ -813,9 +744,18 @@ dependencies = [ "libc", "num-integer", "num-traits 0.2.14", - "serde 1.0.118", - "time 0.1.44", - "winapi 0.3.9", + "serde 1.0.130", + "time 0.1.43", + "winapi", +] + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array 0.14.4", ] [[package]] @@ -826,7 +766,7 @@ checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ "ansi_term", "atty", - "bitflags 1.2.1", + "bitflags", "strsim 0.8.0", "textwrap", "unicode-width", @@ -839,7 +779,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" dependencies = [ - "bitflags 1.2.1", + "bitflags", ] [[package]] @@ -850,9 +790,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "comrak" -version = "0.7.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17058cc536cf290563e88787d7b9e6030ce4742943017cc2ffb71f88034021c" +checksum = "17bac331cb476d0d005a492e07a5eb64f8b321e3788b1fb265e768fb6918ea13" dependencies = [ "clap", "entities", @@ -860,46 +800,48 @@ dependencies = [ "pest", "pest_derive", "regex", + "shell-words", "twoway", "typed-arena", "unicode_categories", + "xdg", ] [[package]] name = "config" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3" +checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" dependencies = [ "lazy_static", "nom 5.1.2", - "serde 1.0.118", + "serde 1.0.130", "serde-hjson", ] [[package]] name = "const_fn" -version = "0.4.4" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f92cfa0fd5690b3cf8c1ef2cabbd9b7ef22fa53cf5e1f92b05103f6d5d1cf6e7" + +[[package]] +name = "convert_case" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "cookie" -version = "0.14.3" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f" +checksum = "ffdf8865bac3d9a3bde5bde9088ca431b11f5d37c7a578b8086af77248b76627" dependencies = [ "percent-encoding", - "time 0.2.23", - "version_check 0.9.2", + "time 0.2.27", + "version_check 0.9.3", ] -[[package]] -name = "copyless" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" - [[package]] name = "core-foundation" version = "0.9.1" @@ -917,38 +859,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" [[package]] -name = "cpuid-bool" -version = "0.1.2" +name = "cpufeatures" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" +checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" +dependencies = [ + "libc", +] [[package]] -name = "crc32fast" -version = "1.2.1" +name = "cpufeatures" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" +checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" dependencies = [ - "cfg-if 1.0.0", + "libc", ] [[package]] -name = "crossbeam-channel" -version = "0.4.4" +name = "crc32fast" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" +checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", + "cfg-if", ] [[package]] name = "crossbeam-channel" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" +checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.1", + "cfg-if", + "crossbeam-utils", ] [[package]] @@ -957,20 +901,19 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-epoch", - "crossbeam-utils 0.8.1", + "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" +checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ - "cfg-if 1.0.0", - "const_fn", - "crossbeam-utils 0.8.1", + "cfg-if", + "crossbeam-utils", "lazy_static", "memoffset", "scopeguard", @@ -978,23 +921,11 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg 1.0.1", - "cfg-if 0.1.10", - "lazy_static", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.1" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "autocfg 1.0.1", - "cfg-if 1.0.0", + "cfg-if", "lazy_static", ] @@ -1035,9 +966,9 @@ dependencies = [ [[package]] name = "deflate" -version = "0.7.20" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" dependencies = [ "adler32", "byteorder", @@ -1070,10 +1001,11 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.11" +version = "0.99.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" +checksum = "5cc7b9cef1e351660e5443924e4f43ab25fbbed3e9a5f052df3677deb4d6b320" dependencies = [ + "convert_case", "proc-macro2", "quote", "syn", @@ -1081,18 +1013,18 @@ dependencies = [ [[package]] name = "diesel" -version = "1.4.6" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "047bfc4d5c3bd2ef6ca6f981941046113524b9a9f9a7cbdfdd7ff40f58e6f542" +checksum = "bba51ca66f57261fd17cadf8b73e4775cc307d0521d855de3f5de91a8f074e0e" dependencies = [ - "bitflags 1.2.1", + "bitflags", "byteorder", "chrono", "diesel_derives", "pq-sys", "r2d2", "serde_json", - "uuid 0.6.5", + "uuid 0.8.2", ] [[package]] @@ -1122,7 +1054,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]] @@ -1134,12 +1066,27 @@ dependencies = [ "generic-array 0.14.4", ] +[[package]] +name = "diligent-date-parser" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e37ea528f01b8bfca1f71bcd06a8e6c898bf8fdfbf24dd9dbc7fb49338ed6d84" +dependencies = [ + "chrono", +] + [[package]] name = "discard" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + [[package]] name = "dotenv" version = "0.15.0" @@ -1163,7 +1110,7 @@ dependencies = [ "encoding", "lazy_static", "rand 0.4.6", - "time 0.1.44", + "time 0.1.43", "version_check 0.1.5", ] @@ -1233,11 +1180,11 @@ checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" [[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", + "cfg-if", ] [[package]] @@ -1247,40 +1194,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca" [[package]] -name = "enum-as-inner" -version = "0.3.3" +name = "enum-iterator" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" +checksum = "c79a6321a1197d7730510c7e3f6cb80432dfefecb32426de8cea0aa19b4bb8d7" dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", + "enum-iterator-derive", ] [[package]] -name = "enum_primitive" -version = "0.1.1" +name = "enum-iterator-derive" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" +checksum = "1e94aa31f7c0dc764f57896dc615ddd76fc13b0d5dca7eb6cc5e018a5a09ec06" dependencies = [ - "num-traits 0.1.43", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "enumflags2" -version = "0.6.4" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0" +checksum = "a8672257d642ffdd235f6e9c723c2326ac1253c8f3c022e7cfd2e57da55b1131" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.6.4" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" +checksum = "33526f770a27828ce7c2792fdb7cb240220237e0ff12933ed6c23957fc5dd7cf" dependencies = [ "proc-macro2", "quote", @@ -1289,9 +1235,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime", @@ -1334,6 +1280,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +[[package]] +name = "fallible_collections" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad9169582543d2cfe9961be1e9eaf4fc42f9aa3483f7c485717b8dde36466ea" +dependencies = [ + "hashbrown 0.9.1", +] + [[package]] name = "fast_chemail" version = "0.9.6" @@ -1345,14 +1300,14 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129" +checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crc32fast", "libc", - "miniz_oxide", + "miniz_oxide 0.4.4", ] [[package]] @@ -1378,9 +1333,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[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", @@ -1392,27 +1347,11 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags 1.2.1", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "futures" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0" +checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca" dependencies = [ "futures-channel", "futures-core", @@ -1425,9 +1364,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64" +checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888" dependencies = [ "futures-core", "futures-sink", @@ -1435,15 +1374,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748" +checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" [[package]] name = "futures-executor" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65" +checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c" dependencies = [ "futures-core", "futures-task", @@ -1452,16 +1391,17 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb" +checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377" [[package]] name = "futures-macro" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556" +checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" dependencies = [ + "autocfg 1.0.1", "proc-macro-hack", "proc-macro2", "quote", @@ -1470,25 +1410,23 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d" +checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" [[package]] name = "futures-task" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d" -dependencies = [ - "once_cell", -] +checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" [[package]] name = "futures-util" -version = "0.3.8" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2" +checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" dependencies = [ + "autocfg 1.0.1", "futures-channel", "futures-core", "futures-io", @@ -1496,27 +1434,18 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project 1.0.2", + "pin-project-lite", "pin-utils", "proc-macro-hack", "proc-macro-nested", "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" dependencies = [ "typenum", ] @@ -1528,41 +1457,77 @@ 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]] name = "getrandom" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 0.1.10", + "cfg-if", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] +[[package]] +name = "getrandom" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.10.2+wasi-snapshot-preview1", +] + +[[package]] +name = "getset" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b328c01a4d71d2d8173daa93562a73ab0fe85616876f02500f53d82948c504" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "gif" -version = "0.9.2" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e41945ba23db3bf51b24756d73d81acb4f28d85c3dccc32c6fae904438c25f" +checksum = "5a668f699973d0f573d15749b7002a9ac9e1f9c6b220e7b165601334c173d8de" dependencies = [ "color_quant", - "lzw", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189" + +[[package]] +name = "git2" +version = "0.13.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9831e983241f8c5591ed53f17d874833e2fa82cac2625f3888c50cbfe136cba" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "url", ] -[[package]] -name = "gimli" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" - [[package]] name = "h2" -version = "0.2.7" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" +checksum = "825343c4eef0b63f541f8903f395dc5beb362a979b5799a84062527ef1e37726" dependencies = [ "bytes", "fnv", @@ -1575,7 +1540,6 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "tracing-futures", ] [[package]] @@ -1583,21 +1547,30 @@ name = "hashbrown" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +dependencies = [ + "ahash 0.4.7", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" [[package]] name = "heck" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ "unicode-segmentation", ] [[package]] name = "hermit-abi" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] @@ -1613,15 +1586,10 @@ dependencies = [ ] [[package]] -name = "hostname" -version = "0.3.1" +name = "hound" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi 0.3.9", -] +checksum = "8a164bb2ceaeff4f42542bdb847c41517c78a60f5649671b2a07312b6e117549" [[package]] name = "htmlescape" @@ -1631,9 +1599,9 @@ checksum = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163" [[package]] name = "http" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26" +checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" dependencies = [ "bytes", "fnv", @@ -1642,14 +1610,21 @@ dependencies = [ [[package]] name = "http-body" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" +checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9" dependencies = [ "bytes", "http", + "pin-project-lite", ] +[[package]] +name = "http-range" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee9694f83d9b7c09682fdb32213682939507884e5bcf227be9aff5d644b90dc" + [[package]] name = "http-signature-normalization" version = "0.5.3" @@ -1662,14 +1637,13 @@ dependencies = [ [[package]] name = "http-signature-normalization-actix" -version = "0.4.1" +version = "0.5.0-beta.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da981a97112479df3de7e88550c0de21dfbcc401efe832c8e5c7574ba1952e" +checksum = "aa7cf7b03512ba7341b4252794751c5ff46635e0ff33eb864a929a5b7381e17a" dependencies = [ "actix-web", "awc", - "base64 0.12.3", - "bytes", + "base64 0.13.0", "chrono", "futures", "http-signature-normalization", @@ -1680,30 +1654,27 @@ dependencies = [ [[package]] name = "httparse" -version = "1.3.4" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68" [[package]] name = "httpdate" -version = "0.3.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" +checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440" [[package]] name = "humantime" -version = "1.3.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.13.9" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" +checksum = "07d6baa1b441335f3ce5098ac421fb6547c46dda735ca1bc6d0153c838f9dd83" dependencies = [ "bytes", "futures-channel", @@ -1715,7 +1686,7 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project 1.0.2", + "pin-project-lite", "socket2", "tokio", "tower-service", @@ -1725,15 +1696,15 @@ dependencies = [ [[package]] name = "hyper-tls" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", "hyper", "native-tls", "tokio", - "tokio-tls", + "tokio-native-tls", ] [[package]] @@ -1744,9 +1715,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.2.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ "matches", "unicode-bidi", @@ -1755,103 +1726,86 @@ dependencies = [ [[package]] name = "image" -version = "0.13.0" +version = "0.23.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c3f4f5ea213ed9899eca760a8a14091d4b82d33e27cf8ced336ff730e9f6da8" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" dependencies = [ + "bytemuck", "byteorder", - "enum_primitive", + "color_quant", "gif", "jpeg-decoder", "num-iter", "num-rational", - "num-traits 0.1.43", + "num-traits 0.2.14", "png", "scoped_threadpool", + "tiff", ] [[package]] name = "indexmap" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ "autocfg 1.0.1", - "hashbrown", + "hashbrown 0.11.2", ] -[[package]] -name = "inflate" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1238524675af3938a7c74980899535854b88ba07907bb1c944abe5b8fc437e5" - [[package]] name = "instant" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] -name = "iovec" -version = "0.1.4" +name = "ipnet" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] +checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" [[package]] -name = "ipconfig" -version = "0.2.2" +name = "itertools" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" +checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" dependencies = [ - "socket2", - "widestring", - "winapi 0.3.9", - "winreg 0.6.2", + "either", ] [[package]] -name = "ipnet" -version = "2.3.0" +name = "itoa" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" +checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] -name = "itertools" -version = "0.9.0" +name = "jobserver" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +checksum = "972f5ae5d1cb9c6ae417789196c803205313edde988685da5e3aae0827b9e7fd" dependencies = [ - "either", + "libc", ] -[[package]] -name = "itoa" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" - [[package]] name = "jpeg-decoder" -version = "0.1.20" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3" +checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" dependencies = [ - "byteorder", "rayon", ] [[package]] name = "js-sys" -version = "0.3.46" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" +checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" dependencies = [ "wasm-bindgen", ] @@ -1865,26 +1819,16 @@ dependencies = [ "base64 0.12.3", "pem", "ring", - "serde 1.0.118", + "serde 1.0.130", "serde_json", "simple_asn1", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "language-tags" -version = "0.2.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" +checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" [[package]] name = "lazy_static" @@ -1898,9 +1842,9 @@ version = "0.1.0" dependencies = [ "chrono", "lemmy_db", - "serde 1.0.118", + "serde 1.0.130", "thiserror", - "uuid 0.6.5", + "uuid 0.8.2", ] [[package]] @@ -1913,13 +1857,13 @@ dependencies = [ "lazy_static", "log", "regex", - "serde 1.0.118", + "serde 1.0.130", "serde_json", "sha2", "strum", "strum_macros", "url", - "uuid 0.6.5", + "uuid 0.8.2", ] [[package]] @@ -1952,7 +1896,7 @@ dependencies = [ "async-trait", "awc", "background-jobs", - "base64 0.12.3", + "base64 0.13.0", "bcrypt", "captcha", "chrono", @@ -1980,11 +1924,11 @@ dependencies = [ "log", "openssl", "percent-encoding", - "rand 0.7.3", + "rand 0.8.4", "regex", "reqwest", "rss", - "serde 1.0.118", + "serde 1.0.130", "serde_json", "sha2", "strum", @@ -1993,7 +1937,7 @@ dependencies = [ "tokio", "ttl_cache", "url", - "uuid 0.6.5", + "uuid 0.8.2", "vergen", ] @@ -2012,27 +1956,27 @@ dependencies = [ "lettre_email", "log", "openssl", - "rand 0.7.3", + "rand 0.8.4", "regex", - "serde 1.0.118", + "serde 1.0.130", "serde_json", "url", ] [[package]] name = "lettre" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338d9a248c4b3ef60c51941c678bb8f64e244c0a98f1eb71db027d1e777a5700" +checksum = "86ed8677138975b573ab4949c35613931a4addeadd0a8a6aa0327e2a979660de" dependencies = [ "base64 0.10.1", "bufstream", "fast_chemail", - "hostname 0.1.5", + "hostname", "log", "native-tls", "nom 4.2.3", - "serde 1.0.118", + "serde 1.0.130", "serde_derive", "serde_json", ] @@ -2047,89 +1991,106 @@ dependencies = [ "email", "lettre", "mime", - "time 0.1.44", + "time 0.1.43", "uuid 0.7.4", ] [[package]] name = "lexical-core" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" dependencies = [ "arrayvec", - "bitflags 1.2.1", - "cfg-if 0.1.10", + "bitflags", + "cfg-if", "ryu", "static_assertions", ] [[package]] name = "libc" -version = "0.2.81" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb" +checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21" [[package]] -name = "linked-hash-map" -version = "0.3.0" +name = "libgit2-sys" +version = "0.12.21+1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d262045c5b87c0861b3f004610afd0e2c851e2908d08b6c870cbb9d5f494ecd" +checksum = "86271bacd72b2b9e854c3dcfb82efd538f15f870e4c11af66900effb462f6825" dependencies = [ - "serde 0.8.23", - "serde_test", + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "libz-sys" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] name = "linked-hash-map" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" +checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" [[package]] -name = "lock_api" -version = "0.4.2" +name = "local-channel" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" +checksum = "6246c68cf195087205a0512559c97e15eaf95198bf0e206d662092cdcb03fe9f" dependencies = [ - "scopeguard", + "futures-core", + "futures-sink", + "futures-util", + "local-waker", ] [[package]] -name = "lodepng" -version = "1.2.2" +name = "local-waker" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ac1dfdf85b7d5dea61a620e12c051a72078189366a0b3c0ab331e30847def2f" -dependencies = [ - "c_vec", - "cc", - "libc", - "rgb", -] +checksum = "84f9a2d3e27ce99ce2c3aad0b09b1a7b916293ea9b2bf624c13fe646fadd8da4" [[package]] -name = "log" -version = "0.4.11" +name = "lock_api" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" dependencies = [ - "cfg-if 0.1.10", + "scopeguard", ] [[package]] -name = "lru-cache" -version = "0.1.2" +name = "lodepng" +version = "3.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +checksum = "e1f7ef1b146a329001ccc6ad5fc1def8300281dda5176e8336b7fd44e440fb96" dependencies = [ - "linked-hash-map 0.5.3", + "fallible_collections", + "flate2", + "libc", + "rgb", ] [[package]] -name = "lzw" -version = "0.10.0" +name = "log" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if", +] [[package]] name = "maplit" @@ -2137,35 +2098,23 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - [[package]] name = "matches" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "memchr" -version = "2.3.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" [[package]] name = "memoffset" -version = "0.6.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" +checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" dependencies = [ "autocfg 1.0.1", ] @@ -2209,61 +2158,50 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.4.3" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" dependencies = [ - "adler", - "autocfg 1.0.1", + "adler32", ] [[package]] -name = "mio" -version = "0.6.23" +name = "miniz_oxide" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow", - "net2", - "slab", - "winapi 0.2.8", + "adler", + "autocfg 1.0.1", ] [[package]] -name = "mio-uds" -version = "0.6.8" +name = "mio" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16" dependencies = [ - "iovec", "libc", - "mio", + "log", + "miow", + "ntapi", + "winapi", ] [[package]] name = "miow" -version = "0.2.2" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", + "winapi", ] [[package]] name = "native-tls" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcc7939b5edc4e4f86b1b4a04bb1498afaaf871b1a6691838ed06fcb48d3a3f" +checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4" dependencies = [ "lazy_static", "libc", @@ -2277,17 +2215,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "net2" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - [[package]] name = "nom" version = "4.2.3" @@ -2306,7 +2233,16 @@ checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" dependencies = [ "lexical-core", "memchr", - "version_check 0.9.2", + "version_check 0.9.3", +] + +[[package]] +name = "ntapi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +dependencies = [ + "winapi", ] [[package]] @@ -2343,10 +2279,11 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.1.42" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ + "autocfg 1.0.1", "num-integer", "num-traits 0.2.14", ] @@ -2381,15 +2318,18 @@ dependencies = [ [[package]] name = "object" -version = "0.22.0" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" +checksum = "a38f2be3697a57b4060074ff41b44c16870d916ad7877c17696e063257482bc7" +dependencies = [ + "memchr", +] [[package]] name = "once_cell" -version = "1.5.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" +checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" [[package]] name = "opaque-debug" @@ -2405,29 +2345,29 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.31" +version = "0.10.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d008f51b1acffa0d3450a68606e6a51c123012edaacb0f4e1426bd978869187" +checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a" dependencies = [ - "bitflags 1.2.1", - "cfg-if 1.0.0", + "bitflags", + "cfg-if", "foreign-types", - "lazy_static", "libc", + "once_cell", "openssl-sys", ] [[package]] name = "openssl-probe" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.59" +version = "0.9.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de52d8eabd217311538a39bba130d7dea1f1e118010fee7a033d966845e7d5fe" +checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82" dependencies = [ "autocfg 1.0.1", "cc", @@ -2449,23 +2389,29 @@ 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", + "cfg-if", "instant", "libc", "redox_syscall", "smallvec", - "winapi 0.3.9", + "winapi", ] +[[package]] +name = "paste" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" + [[package]] name = "pem" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c220d01f863d13d96ca82359d1e81e64a7c6bf0637bcde7b2349630addf0c6" +checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" dependencies = [ "base64 0.13.0", "once_cell", @@ -2523,38 +2469,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" -dependencies = [ - "pin-project-internal 0.4.27", -] - -[[package]] -name = "pin-project" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7" -dependencies = [ - "pin-project-internal 1.0.2", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.27" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" +checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4" dependencies = [ - "proc-macro2", - "quote", - "syn", + "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.2" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f" +checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f" dependencies = [ "proc-macro2", "quote", @@ -2563,15 +2489,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" - -[[package]] -name = "pin-project-lite" -version = "0.2.0" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" [[package]] name = "pin-utils" @@ -2587,14 +2507,14 @@ checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" [[package]] name = "png" -version = "0.7.0" +version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f397b84083c2753ba53c7b56ad023edb94512b2885ffe227c66ff7edb61868" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" dependencies = [ - "bitflags 0.7.0", + "bitflags", + "crc32fast", "deflate", - "inflate", - "num-iter", + "miniz_oxide 0.3.7", ] [[package]] @@ -2612,6 +2532,30 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check 0.9.3", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check 0.9.3", +] + [[package]] name = "proc-macro-hack" version = "0.5.19" @@ -2620,30 +2564,24 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro-nested" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" +checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.24" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" dependencies = [ "unicode-xid", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quick-xml" -version = "0.17.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe1e430bdcf30c9fdc25053b9c459bb1a4672af4617b6c783d7d91dc17c6bbb0" +checksum = "26aab6b48e2590e4a64d1ed808749ba06257882b461d01ca71baeb747074a6dd" dependencies = [ "encoding_rs", "memchr", @@ -2651,9 +2589,9 @@ 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", ] @@ -2664,19 +2602,9 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "545c5bc2b880973c9c10e4067418407a0ccaa3091781d1671d46eb35107cb26f" dependencies = [ - "log", - "parking_lot", - "scheduled-thread-pool", -] - -[[package]] -name = "rand" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" -dependencies = [ - "libc", - "rand 0.4.6", + "log", + "parking_lot", + "scheduled-thread-pool", ] [[package]] @@ -2689,7 +2617,7 @@ dependencies = [ "libc", "rand_core 0.3.1", "rdrand", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2708,7 +2636,7 @@ dependencies = [ "rand_os", "rand_pcg", "rand_xorshift", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2717,13 +2645,25 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.16", "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc 0.2.0", ] +[[package]] +name = "rand" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.3", + "rand_hc 0.3.1", +] + [[package]] name = "rand_chacha" version = "0.1.1" @@ -2744,6 +2684,16 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.3", +] + [[package]] name = "rand_core" version = "0.3.1" @@ -2765,7 +2715,16 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom 0.2.3", ] [[package]] @@ -2786,6 +2745,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_hc" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" +dependencies = [ + "rand_core 0.6.3", +] + [[package]] name = "rand_isaac" version = "0.1.1" @@ -2803,7 +2771,7 @@ checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" dependencies = [ "libc", "rand_core 0.4.2", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2817,7 +2785,7 @@ dependencies = [ "libc", "rand_core 0.4.2", "rdrand", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2841,9 +2809,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg 1.0.1", "crossbeam-deque", @@ -2853,13 +2821,13 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ - "crossbeam-channel 0.5.0", + "crossbeam-channel", "crossbeam-deque", - "crossbeam-utils 0.8.1", + "crossbeam-utils", "lazy_static", "num_cpus", ] @@ -2875,27 +2843,29 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.57" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" +checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee" +dependencies = [ + "bitflags", +] [[package]] name = "regex" -version = "1.4.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "thread_local", ] [[package]] name = "regex-syntax" -version = "0.6.21" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "remove_dir_all" @@ -2903,14 +2873,14 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] name = "reqwest" -version = "0.10.10" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c" +checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22" dependencies = [ "base64 0.13.0", "bytes", @@ -2926,46 +2896,35 @@ dependencies = [ "lazy_static", "log", "mime", - "mime_guess", "native-tls", "percent-encoding", - "pin-project-lite 0.2.0", - "serde 1.0.118", + "pin-project-lite", + "serde 1.0.130", "serde_json", "serde_urlencoded", "tokio", - "tokio-tls", + "tokio-native-tls", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.7.0", -] - -[[package]] -name = "resolv-conf" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname 0.3.1", - "quick-error", + "winreg", ] [[package]] name = "rgb" -version = "0.8.25" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287f3c3f8236abb92d8b7e36797f19159df4b58f0a658cc3fb6dd3004b1f3bd3" +checksum = "8fddb3b23626145d1776addfc307e1a1851f60ef6ca64f376bcb889697144cf0" dependencies = [ "bytemuck", ] [[package]] name = "ring" -version = "0.16.19" +version = "0.16.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "024a1e66fea74c66c66624ee5622a7ff0e4b73a13b4f5c326ddb50c708944226" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" dependencies = [ "cc", "libc", @@ -2973,24 +2932,25 @@ dependencies = [ "spin", "untrusted", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] name = "rss" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99979205510c60f80a119dedbabd0b8426517384edf205322f8bcd51796bcef9" +checksum = "02e70d6ae72f8a4333af8ce9dce58942020528430eb0d46ee2fcb5e8d4d16377" dependencies = [ + "atom_syndication", "derive_builder", "quick-xml", ] [[package]] name = "rustc-demangle" -version = "0.1.18" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" +checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49" [[package]] name = "rustc_version" @@ -2998,22 +2958,37 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "semver", + "semver 0.9.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.3", ] [[package]] name = "rustls" -version = "0.18.1" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ - "base64 0.12.3", + "base64 0.13.0", "log", "ring", "sct", "webpki", ] +[[package]] +name = "rustversion" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088" + [[package]] name = "ryu" version = "1.0.5" @@ -3033,7 +3008,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" dependencies = [ "lazy_static", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3059,9 +3034,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "sct" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" dependencies = [ "ring", "untrusted", @@ -3069,11 +3044,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.0.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69" +checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467" dependencies = [ - "bitflags 1.2.1", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -3082,9 +3057,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.0.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b" +checksum = "7e4effb91b4b8b6fb7732e670b6cee160278ff8e6bf485c7805d9e319d76e284" dependencies = [ "core-foundation-sys", "libc", @@ -3099,6 +3074,12 @@ dependencies = [ "semver-parser", ] +[[package]] +name = "semver" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f3aac57ee7f3272d8395c6e4f502f434f0e289fcd62876f70daa008c20dcabe" + [[package]] name = "semver-parser" version = "0.7.0" @@ -3113,9 +3094,9 @@ checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" [[package]] name = "serde" -version = "1.0.118" +version = "1.0.130" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" +checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" dependencies = [ "serde_derive", ] @@ -3127,7 +3108,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" dependencies = [ "lazy_static", - "linked-hash-map 0.3.0", "num-traits 0.1.43", "regex", "serde 0.8.23", @@ -3135,9 +3115,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.118" +version = "1.0.130" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" +checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" dependencies = [ "proc-macro2", "quote", @@ -3146,23 +3126,14 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.60" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779" +checksum = "a7f9e390c27c3c0ce8bc5d725f6e4d30a29d26659494aa4b17535f7522c5c950" dependencies = [ "indexmap", "itoa", "ryu", - "serde 1.0.118", -] - -[[package]] -name = "serde_test" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5" -dependencies = [ - "serde 0.8.23", + "serde 1.0.130", ] [[package]] @@ -3174,7 +3145,7 @@ dependencies = [ "form_urlencoded", "itoa", "ryu", - "serde 1.0.118", + "serde 1.0.130", ] [[package]] @@ -3191,13 +3162,13 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.2" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c" +checksum = "8c4cfa741c5832d0ef7fab46cabed29c2aae926db0b11bb2069edd8db5e64e16" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpuid-bool", + "cfg-if", + "cpufeatures 0.1.5", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -3210,22 +3181,28 @@ checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" [[package]] name = "sha2" -version = "0.9.2" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" +checksum = "9204c41a1597a8c5af23c82d1c921cb01ec0a4c59e07a9c7306062829a3903f3" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpuid-bool", + "cfg-if", + "cpufeatures 0.2.1", "digest 0.9.0", "opaque-debug 0.3.0", ] +[[package]] +name = "shell-words" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074" + [[package]] name = "signal-hook-registry" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" dependencies = [ "libc", ] @@ -3243,25 +3220,24 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" [[package]] name = "smallvec" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae524f056d7d770e174287294f562e95044c68e88dec909a00d2094805db9d75" +checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "socket2" -version = "0.3.19" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2" dependencies = [ - "cfg-if 1.0.0", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3272,11 +3248,11 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "standback" -version = "0.2.13" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8" +checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" dependencies = [ - "version_check 0.9.2", + "version_check 0.9.3", ] [[package]] @@ -3292,7 +3268,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" dependencies = [ "discard", - "rustc_version", + "rustc_version 0.2.3", "stdweb-derive", "stdweb-internal-macros", "stdweb-internal-runtime", @@ -3307,7 +3283,7 @@ checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" dependencies = [ "proc-macro2", "quote", - "serde 1.0.118", + "serde 1.0.130", "serde_derive", "syn", ] @@ -3321,7 +3297,7 @@ dependencies = [ "base-x", "proc-macro2", "quote", - "serde 1.0.118", + "serde 1.0.130", "serde_derive", "serde_json", "sha1", @@ -3348,15 +3324,15 @@ checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" [[package]] name = "strum" -version = "0.18.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" +checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" [[package]] name = "strum_macros" -version = "0.18.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" +checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" dependencies = [ "heck", "proc-macro2", @@ -3366,9 +3342,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.55" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a571a711dddd09019ccc628e1b17fe87c59b09d513c06c026877aa708334f37a" +checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" dependencies = [ "proc-macro2", "quote", @@ -3387,18 +3363,33 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "sysinfo" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41c72bb3368a39bb153f226d8dd426ee33d54bc31f44037c078391b4a0b8dc04" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "doc-comment", + "libc", + "ntapi", + "once_cell", + "winapi", +] + [[package]] name = "tempfile" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" dependencies = [ - "cfg-if 0.1.10", + "cfg-if", "libc", - "rand 0.7.3", + "rand 0.8.4", "redox_syscall", "remove_dir_all", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3421,18 +3412,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.22" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e" +checksum = "283d5230e63df9608ac7d9691adc1dfb6e701225436eb64d0b9a7f0a5a04f6ec" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.22" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56" +checksum = "fa3884228611f5cd3608e2d409bf7dce832e4eb3135e3f11addbd7e41bd68e71" dependencies = [ "proc-macro2", "quote", @@ -3440,47 +3431,39 @@ dependencies = [ ] [[package]] -name = "thread_local" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "threadpool" -version = "1.8.1" +name = "tiff" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" dependencies = [ - "num_cpus", + "jpeg-decoder", + "miniz_oxide 0.4.4", + "weezl", ] [[package]] name = "time" -version = "0.1.44" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" dependencies = [ "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "winapi", ] [[package]] name = "time" -version = "0.2.23" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcdaeea317915d59b2b4cd3b5efcd156c309108664277793f5351700c02ce98b" +checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" dependencies = [ "const_fn", "libc", "standback", "stdweb", "time-macros", - "version_check 0.9.2", - "winapi 0.3.9", + "version_check 0.9.3", + "winapi", ] [[package]] @@ -3495,9 +3478,9 @@ dependencies = [ [[package]] name = "time-macros-impl" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" +checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" dependencies = [ "proc-macro-hack", "proc-macro2", @@ -3508,9 +3491,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f" +checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" dependencies = [ "tinyvec_macros", ] @@ -3523,137 +3506,81 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "0.2.24" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" +checksum = "92036be488bb6594459f2e03b60e42df6f937fe6ca5c5ffdcb539c6b84dc40f5" dependencies = [ + "autocfg 1.0.1", "bytes", - "fnv", - "futures-core", - "iovec", - "lazy_static", "libc", "memchr", "mio", - "mio-uds", - "pin-project-lite 0.1.11", + "once_cell", + "parking_lot", + "pin-project-lite", "signal-hook-registry", - "slab", - "winapi 0.3.9", + "winapi", ] [[package]] -name = "tokio-rustls" -version = "0.14.1" +name = "tokio-native-tls" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" dependencies = [ - "futures-core", - "rustls", + "native-tls", "tokio", - "webpki", ] [[package]] -name = "tokio-tls" -version = "0.3.1" +name = "tokio-rustls" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" +checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ - "native-tls", + "rustls", "tokio", + "webpki", ] [[package]] name = "tokio-util" -version = "0.3.1" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +checksum = "1caa0b0c8d94a049db56b5acf8cba99dc0623aab1b26d5b5f5e2d945846b3592" dependencies = [ "bytes", "futures-core", - "futures-io", "futures-sink", "log", - "pin-project-lite 0.1.11", + "pin-project-lite", "tokio", ] [[package]] name = "tower-service" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.22" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" +checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" dependencies = [ - "cfg-if 1.0.0", - "log", - "pin-project-lite 0.2.0", + "cfg-if", + "pin-project-lite", "tracing-core", ] [[package]] name = "tracing-core" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "tracing-futures" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" -dependencies = [ - "pin-project 0.4.27", - "tracing", -] - -[[package]] -name = "trust-dns-proto" -version = "0.19.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53861fcb288a166aae4c508ae558ed18b53838db728d4d310aad08270a7d4c2b" -dependencies = [ - "async-trait", - "backtrace", - "enum-as-inner", - "futures", - "idna", - "lazy_static", - "log", - "rand 0.7.3", - "smallvec", - "thiserror", - "tokio", - "url", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.19.6" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6759e8efc40465547b0dfce9500d733c65f969a4cbbfbe3ccf68daaa46ef179e" +checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052" dependencies = [ - "backtrace", - "cfg-if 0.1.10", - "futures", - "ipconfig", "lazy_static", - "log", - "lru-cache", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "trust-dns-proto", ] [[package]] @@ -3668,14 +3595,14 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4189890526f0168710b6ee65ceaedf1460c48a14318ceec933cb26baa492096a" dependencies = [ - "linked-hash-map 0.5.3", + "linked-hash-map", ] [[package]] name = "twoway" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b40075910de3a912adbd80b5d8bad6ad10a23eeb1f5bf9d4006839e899ba5bc" +checksum = "c57ffb460d7c24cd6eda43694110189030a3d1dfe418416d9468fd1c1d290b47" dependencies = [ "memchr", "unchecked-index", @@ -3689,9 +3616,9 @@ checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d" [[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" @@ -3711,32 +3638,32 @@ 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.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" @@ -3746,9 +3673,9 @@ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" [[package]] name = "unicode-xid" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "unicode_categories" @@ -3764,26 +3691,15 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.2.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" dependencies = [ "form_urlencoded", "idna", "matches", "percent-encoding", - "serde 1.0.118", -] - -[[package]] -name = "uuid" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363" -dependencies = [ - "cfg-if 0.1.10", - "rand 0.4.6", - "serde 1.0.118", + "serde 1.0.130", ] [[package]] @@ -3797,51 +3713,19 @@ dependencies = [ [[package]] name = "uuid" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11" -dependencies = [ - "rand 0.7.3", - "serde 1.0.118", -] - -[[package]] -name = "v_escape" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039a44473286eb84e4e74f90165feff67c802dbeced7ee4c5b00d719b0d0475e" -dependencies = [ - "buf-min", - "v_escape_derive", -] - -[[package]] -name = "v_escape_derive" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c860ad1273f4eee7006cee05db20c9e60e5d24cba024a32e1094aa8e574f3668" -dependencies = [ - "nom 4.2.3", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "v_htmlescape" -version = "0.10.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7c2a33ed7cf0dc1b42bcf39e01b6512f9df08f09e1cd8a49d9dc49a6a9482" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "cfg-if 1.0.0", - "v_escape", + "getrandom 0.2.3", + "serde 1.0.130", ] [[package]] name = "vcpkg" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vec_map" @@ -3851,12 +3735,20 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "vergen" -version = "3.1.0" +version = "5.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb" +checksum = "265455aab08c55a1ab13f07c8d5e25c7d46900f4484dd7cbd682e77171f93f3c" dependencies = [ - "bitflags 1.2.1", + "anyhow", + "cfg-if", "chrono", + "enum-iterator", + "getset", + "git2", + "rustc_version 0.4.0", + "rustversion", + "sysinfo", + "thiserror", ] [[package]] @@ -3867,9 +3759,9 @@ 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 = "want" @@ -3889,27 +3781,27 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" +version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" +checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" dependencies = [ - "cfg-if 1.0.0", - "serde 1.0.118", + "cfg-if", + "serde 1.0.130", "serde_json", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" +checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" dependencies = [ "bumpalo", "lazy_static", @@ -3922,11 +3814,11 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.19" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" +checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -3934,9 +3826,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" +checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3944,9 +3836,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" +checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" dependencies = [ "proc-macro2", "quote", @@ -3957,15 +3849,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" +checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" [[package]] name = "web-sys" -version = "0.3.46" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" +checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582" dependencies = [ "js-sys", "wasm-bindgen", @@ -3983,24 +3875,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.20.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" dependencies = [ "webpki", ] [[package]] -name = "widestring" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" - -[[package]] -name = "winapi" -version = "0.2.8" +name = "weezl" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +checksum = "d8b77fdfd5a253be4ab714e4ffa3c49caf146b4de743e97510c0656cf90f1e8e" [[package]] name = "winapi" @@ -4012,12 +3898,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -4030,7 +3910,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4039,22 +3919,13 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "winreg" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "winreg" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4063,15 +3934,40 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7daf138b6b14196e3830a588acf1e86966c694d3e8fb026fb105b8b5dca07e6e" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] -name = "ws2_32-sys" -version = "0.2.1" +name = "xdg" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +checksum = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" + +[[package]] +name = "zstd" +version = "0.7.0+zstd.1.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9428752481d8372e15b1bf779ea518a179ad6c771cca2d2c60e4fbff3cc2cd52" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "3.1.0+zstd.1.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa1926623ad7fe406e090555387daf73db555b948134b4d73eac5eb08fb666d" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "1.5.0+zstd.1.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e6c094340240369025fc6b731b054ee2a834328fa584310ac96aa4baebdc465" +dependencies = [ + "cc", + "libc", ] diff --git a/server/Cargo.toml b/server/Cargo.toml index 1bfffcd46..6ee35e7e0 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -22,56 +22,58 @@ lemmy_db = { path = "./lemmy_db" } lemmy_api_structs = { path = "./lemmy_api_structs" } lemmy_rate_limit = { path = "./lemmy_rate_limit" } -activitystreams = "0.7.0-alpha.3" +activitystreams = "0.7.0-alpha.11" activitystreams-ext = "0.1.0-alpha.2" -actix = "0.10.0-alpha.2" -actix-cors = "0.5.3" -actix-files = "0.3.0-alpha.1" -actix-rt = "1.1.1" -actix-web = { version = "3.0.0-alpha.3", features = ["rustls"] } -actix-web-actors = "3.0.0-alpha.1" -anyhow = "1.0.32" -async-trait = "0.1.36" -awc = "2.0.0-alpha.2" -background-jobs = " 0.8.0-alpha.2" -base64 = "0.12.1" -bcrypt = "0.8.0" -captcha = "0.0.7" -chrono = { version = "0.4.7", features = ["serde"] } -comrak = "0.7" -config = {version = "0.10.1", default-features = false, features = ["hjson"] } -diesel = { version = "1.4.6", features = ["postgres","chrono","r2d2","64-column-tables","serde_json","uuid"] } +actix = "0.12.0" +# The currently published actix-cors version is incompatible with newer actix-web versions +# let's pull from their git for now and monitor the version published on crates.io +actix-cors = { git = "https://github.com/actix/actix-extras.git" } +actix-files = "0.6.0-beta.6" +actix-rt = "2.2.0" +actix-web = { version = "4.0.0-beta.8", features = ["rustls"] } +actix-web-actors = "4.0.0-beta.6" +anyhow = "1.0.43" +async-trait = "0.1.51" +awc = "3.0.0-beta.7" +background-jobs = "0.9.0" +base64 = "0.13.0" +bcrypt = "0.10.1" +captcha = "0.0.8" +chrono = { version = "0.4.19", features = ["serde"] } +comrak = "0.11.0" +config = { version = "0.11.0", default-features = false, features = ["hjson"] } +diesel = { version = "1.4.7", features = ["postgres","chrono","r2d2","64-column-tables","serde_json","uuidv07"] } diesel_migrations = "1.4.0" dotenv = "0.15.0" -enumflags2 = "0.6.4" -env_logger = "0.7.1" +enumflags2 = "0.7.1" +env_logger = "0.9.0" failure = "0.1.8" -futures = "0.3.5" +futures = "0.3.17" htmlescape = "0.3.1" -http = "0.2.1" -http-signature-normalization-actix = { version = "0.4.0-alpha.0", default-features = false, features = ["sha-2"] } -itertools = "0.9.0" -jsonwebtoken = "7.0.1" -lazy_static = "1.3.0" -lettre = "0.9.3" +http = "0.2.4" +http-signature-normalization-actix = { version = "0.5.0-beta.7", default-features = false, features = ["sha-2"] } +itertools = "0.10.1" +jsonwebtoken = "7.2.0" +lazy_static = "1.4.0" +lettre = "0.9.6" lettre_email = "0.9.4" -log = "0.4.0" -openssl = "0.10" +log = "0.4.14" +openssl = "0.10.36" percent-encoding = "2.1.0" -rand = "0.7.3" -regex = "1.3.5" -reqwest = { version = "0.10", features = ["json"] } -rss = "1.9.0" -serde = { version = "1.0.105", features = ["derive"] } -serde_json = { version = "1.0.52", features = ["preserve_order"]} -sha2 = "0.9" -strum = "0.18.0" -strum_macros = "0.18.0" -thiserror = "1.0.20" -tokio = "0.2.21" +rand = "0.8.4" +regex = "1.5.4" +reqwest = { version = "0.11.4", features = ["json"] } +rss = "1.10.0" +serde = { version = "1.0.130", features = ["derive"] } +serde_json = { version = "1.0.67", features = ["preserve_order"] } +sha2 = "0.9.6" +strum = "0.21.0" +strum_macros = "0.21.1" +thiserror = "1.0.28" +tokio = "1.10.1" ttl_cache = "0.5.1" -url = { version = "2.1.1", features = ["serde"] } -uuid = { version = "0.6", features = ["serde", "v4"] } +url = { version = "2.2.2", features = ["serde"] } +uuid = { version = "0.8.2", features = ["serde", "v4"] } [build-dependencies] -vergen = "3" +vergen = "5.1.15" diff --git a/server/build.rs b/server/build.rs index 26a77d030..d6e4ad051 100644 --- a/server/build.rs +++ b/server/build.rs @@ -1,13 +1,14 @@ -// build.rs -extern crate vergen; - -use vergen::{generate_cargo_keys, ConstantsFlags}; +use vergen::{Config, SemverKind, ShaKind, TimestampKind, vergen}; fn main() { // Setup the flags, toggling off the 'SEMVER_FROM_CARGO_PKG' flag - let mut flags = ConstantsFlags::all(); - flags.toggle(ConstantsFlags::SEMVER_FROM_CARGO_PKG); + let mut config = Config::default(); + *config.build_mut().kind_mut() = TimestampKind::All; + *config.build_mut().semver_mut() = false; + + *config.git_mut().sha_kind_mut() = ShaKind::Short; + *config.git_mut().semver_kind_mut() = SemverKind::Lightweight; // Generate the 'cargo:' key output - generate_cargo_keys(flags).expect("Unable to generate the cargo keys!"); + vergen(config).expect("Unable to generate the cargo keys!"); } diff --git a/server/config/defaults.hjson b/server/config/defaults.hjson index 2f542dc6a..33ffbfd9e 100644 --- a/server/config/defaults.hjson +++ b/server/config/defaults.hjson @@ -1,15 +1,15 @@ { -# # optional: parameters for automatic configuration of new instance (only used at first start) -# setup: { -# # username for the admin user -# admin_username: "" -# # password for the admin user -# admin_password: "" -# # optional: email for the admin user (can be omitted and set later through the website) -# admin_email: "" -# # name of the site (can be changed later) -# site_name: "" -# } + # optional: parameters for automatic configuration of new instance (only used at first start) + setup: { + # username for the admin user + admin_username: "hexdev" + # password for the admin user + admin_password: "hexbear" + # optional: email for the admin user (can be omitted and set later through the website) + admin_email: "" + # name of the site (can be changed later) + site_name: "hexbear development" + } # settings related to the postgresql database database: { # username to connect to postgres diff --git a/server/lemmy_api_structs/Cargo.toml b/server/lemmy_api_structs/Cargo.toml index b8a45c924..889e30ea6 100644 --- a/server/lemmy_api_structs/Cargo.toml +++ b/server/lemmy_api_structs/Cargo.toml @@ -11,7 +11,7 @@ path = "src/lib.rs" [dependencies] lemmy_db = { path = "../lemmy_db" } -chrono = { version = "0.4.7", features = ["serde"] } -serde = { version = "1.0.105", features = ["derive"] } -thiserror = "1.0.20" -uuid = { version = "0.6", features = ["serde", "v4"] } \ No newline at end of file +chrono = { version = "0.4.19", features = ["serde"] } +serde = { version = "1.0.130", features = ["derive"] } +thiserror = "1.0.28" +uuid = { version = "0.8.2", features = ["serde", "v4"] } diff --git a/server/lemmy_db/Cargo.toml b/server/lemmy_db/Cargo.toml index 84364e718..46637bc03 100644 --- a/server/lemmy_db/Cargo.toml +++ b/server/lemmy_db/Cargo.toml @@ -8,16 +8,16 @@ name = "lemmy_db" path = "src/lib.rs" [dependencies] -diesel = { version = "1.4.4", features = ["postgres","chrono","r2d2","64-column-tables","serde_json"] } -chrono = { version = "0.4.7", features = ["serde"] } -serde = { version = "1.0.105", features = ["derive"] } -serde_json = { version = "1.0.52", features = ["preserve_order"]} -strum = "0.18.0" -strum_macros = "0.18.0" -log = "0.4.0" -sha2 = "0.9" -bcrypt = "0.8.0" -url = { version = "2.1.1", features = ["serde"] } -uuid = { version = "0.6", features = ["serde", "v4"] } -lazy_static = "1.3.0" -regex = "1.3.5" +diesel = { version = "1.4.7", features = ["postgres","chrono","r2d2","64-column-tables","serde_json","uuidv07"] } +chrono = { version = "0.4.19", features = ["serde"] } +serde = { version = "1.0.130", features = ["derive"] } +serde_json = { version = "1.0.67", features = ["preserve_order"] } +strum = "0.21.0" +strum_macros = "0.21.1" +log = "0.4.14" +sha2 = "0.9.6" +bcrypt = "0.10.1" +url = { version = "2.2.2", features = ["serde"] } +uuid = { version = "0.8.2", features = ["serde", "v4"] } +lazy_static = "1.4.0" +regex = "1.5.4" diff --git a/server/lemmy_db/src/comment_view.rs b/server/lemmy_db/src/comment_view.rs index 450c23455..ea10c6ed5 100644 --- a/server/lemmy_db/src/comment_view.rs +++ b/server/lemmy_db/src/comment_view.rs @@ -603,6 +603,7 @@ mod tests { community_id: inserted_community.id, community_name: inserted_community.name.to_owned(), community_icon: None, + community_hide_from_all: false, parent_id: None, removed: false, deleted: false, @@ -643,6 +644,7 @@ mod tests { community_id: inserted_community.id, community_name: inserted_community.name.to_owned(), community_icon: None, + community_hide_from_all: false, parent_id: None, removed: false, deleted: false, diff --git a/server/lemmy_db/src/post_view.rs b/server/lemmy_db/src/post_view.rs index e2f426625..d4fb968fa 100644 --- a/server/lemmy_db/src/post_view.rs +++ b/server/lemmy_db/src/post_view.rs @@ -531,6 +531,7 @@ mod tests { community_removed: false, community_deleted: false, community_nsfw: false, + community_hide_from_all: false, number_of_comments: 0, score: 1, upvotes: 1, @@ -583,6 +584,7 @@ mod tests { community_removed: false, community_deleted: false, community_nsfw: false, + community_hide_from_all: false, number_of_comments: 0, score: 1, upvotes: 1, diff --git a/server/lemmy_rate_limit/Cargo.toml b/server/lemmy_rate_limit/Cargo.toml index 001297fcc..0e938a311 100644 --- a/server/lemmy_rate_limit/Cargo.toml +++ b/server/lemmy_rate_limit/Cargo.toml @@ -11,9 +11,9 @@ path = "src/lib.rs" [dependencies] lemmy_utils = { path = "../lemmy_utils" } lemmy_api_structs = { path = "../lemmy_api_structs" } -tokio = "0.2.21" -strum = "0.18.0" -strum_macros = "0.18.0" -futures = "0.3.5" -actix-web = { version = "3.0.0-alpha.3", features = ["rustls"] } -log = "0.4.0" +tokio = "1.10.1" +strum = "0.21.0" +strum_macros = "0.21.1" +futures = "0.3.17" +actix-web = { version = "4.0.0-beta.8", features = ["rustls"] } +log = "0.4.14" diff --git a/server/lemmy_rate_limit/src/lib.rs b/server/lemmy_rate_limit/src/lib.rs index 45bebf4b9..f5e199846 100644 --- a/server/lemmy_rate_limit/src/lib.rs +++ b/server/lemmy_rate_limit/src/lib.rs @@ -7,6 +7,7 @@ pub extern crate tokio; use actix_web::dev::{Service, ServiceRequest, ServiceResponse, Transform}; use futures::future::{ok, Ready}; +use lemmy_api_structs::APIError; use lemmy_utils::{ get_ip, settings::{RateLimitConfig, Settings}, @@ -16,17 +17,14 @@ use rate_limiter::{RateLimitType, RateLimiter}; use std::{ future::Future, pin::Pin, - sync::Arc, + sync::{Arc, Mutex}, task::{Context, Poll}, }; -use tokio::sync::Mutex; pub mod rate_limiter; #[derive(Debug, Clone)] pub struct RateLimit { - // it might be reasonable to use a std::sync::Mutex here, since we don't need to lock this - // across await points pub rate_limiter: Arc>, } @@ -93,7 +91,7 @@ impl RateLimited { // before { - let mut limiter = self.rate_limiter.lock().await; + let mut limiter = self.rate_limiter.lock().map_err(|e| APIError::err(format!("Rate limiter mutex poisoned: {:?}", e).as_str()).into())?; match self.type_ { RateLimitType::Message => { @@ -169,7 +167,7 @@ impl RateLimited { // after { - let mut limiter = self.rate_limiter.lock().await; + let mut limiter = self.rate_limiter.lock().map_err(|e| APIError::err(format!("Rate limiter mutex poisoned: {:?}", e).as_str()).into())?; if res.is_ok() { match self.type_ { RateLimitType::Post => { @@ -199,12 +197,11 @@ impl RateLimited { } } -impl Transform for RateLimited +impl Transform for RateLimited where - S: Service, + S: Service, S::Future: 'static, { - type Request = S::Request; type Response = S::Response; type Error = actix_web::Error; type InitError = (); @@ -221,21 +218,20 @@ where type FutResult = dyn Future>; -impl Service for RateLimitedMiddleware +impl Service for RateLimitedMiddleware where - S: Service, + S: Service, S::Future: 'static, { - type Request = S::Request; type Response = S::Response; type Error = actix_web::Error; type Future = Pin>>; - fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { + fn poll_ready(&self, cx: &mut Context<'_>) -> Poll> { self.service.poll_ready(cx) } - fn call(&mut self, req: S::Request) -> Self::Future { + fn call(&self, req: ServiceRequest) -> Self::Future { let ip_addr = get_ip(&req.connection_info()); let fut = self diff --git a/server/lemmy_utils/Cargo.toml b/server/lemmy_utils/Cargo.toml index d0806e293..ef61f5f7e 100644 --- a/server/lemmy_utils/Cargo.toml +++ b/server/lemmy_utils/Cargo.toml @@ -10,19 +10,19 @@ path = "src/lib.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -regex = "1.3.5" -config = { version = "0.10.1", default-features = false, features = ["hjson"] } -chrono = { version = "0.4.7", features = ["serde"] } -lettre = "0.9.3" +regex = "1.5.4" +config = { version = "0.11.0", default-features = false, features = ["hjson"] } +chrono = { version = "0.4.19", features = ["serde"] } +lettre = "0.9.6" lettre_email = "0.9.4" -log = "0.4.0" -itertools = "0.9.0" -rand = "0.7.3" -serde = { version = "1.0.105", features = ["derive"] } -serde_json = { version = "1.0.52", features = ["preserve_order"]} -comrak = "0.7" -lazy_static = "1.3.0" -openssl = "0.10" -url = { version = "2.1.1", features = ["serde"] } -actix-web = "3.0.0-alpha.3" -anyhow = "1.0.32" +log = "0.4.14" +itertools = "0.10.1" +rand = "0.8.4" +serde = { version = "1.0.130", features = ["derive"] } +serde_json = { version = "1.0.67", features = ["preserve_order"] } +comrak = "0.11.0" +lazy_static = "1.4.0" +openssl = "0.10.36" +url = { version = "2.2.2", features = ["serde"] } +actix-web = "4.0.0-beta.8" +anyhow = "1.0.43" diff --git a/server/lemmy_utils/src/lib.rs b/server/lemmy_utils/src/lib.rs index d725b8b7b..bd625d2e8 100644 --- a/server/lemmy_utils/src/lib.rs +++ b/server/lemmy_utils/src/lib.rs @@ -140,8 +140,8 @@ pub fn pii_vec_to_str(pii: Vec<&str>) -> String { [start, combined].concat() } -pub fn generate_random_string() -> String { - thread_rng().sample_iter(&Alphanumeric).take(30).collect() +pub fn generate_random_string() -> Result { + Ok(String::from_utf8(thread_rng().sample_iter(&Alphanumeric).take(30).collect())?) } pub fn send_email( diff --git a/server/src/api/site.rs b/server/src/api/site.rs index c49ea7060..6d0a1ca64 100644 --- a/server/src/api/site.rs +++ b/server/src/api/site.rs @@ -4,7 +4,7 @@ use actix_web::web::Data; use anyhow::Context; use log::{debug, info}; -use enumflags2::BitFlags; +use enumflags2::{BitFlags, bitflags}; use lemmy_api_structs::{site::*, user::Register, APIError}; use lemmy_db::{ category::*, comment_view::*, community_view::*, diesel_option_overwrite, moderator::*, @@ -45,7 +45,8 @@ impl Perform for ListCategories { } } -#[derive(BitFlags, Copy, Clone, Debug, PartialEq)] +#[bitflags] +#[derive(Copy, Clone, Debug, PartialEq)] #[repr(u16)] pub enum ModlogActionFlag { RemovePost = 0b000000001, diff --git a/server/src/api/user.rs b/server/src/api/user.rs index 043d83c66..541f9850f 100644 --- a/server/src/api/user.rs +++ b/server/src/api/user.rs @@ -244,48 +244,51 @@ impl Perform for Register { return Err(APIError::err("admin_already_created").into()); } - // Make sure site has open registration - if let Ok(site) = blocking(context.pool(), move |conn| SiteView::read(conn)).await? { - let site: SiteView = site; - if !site.open_registration { - return Err(APIError::err("registration_closed").into()); + // If its not the admin, check other information about registration + if !data.admin { + // Make sure site has open registration + if let Ok(site) = blocking(context.pool(), move |conn| SiteView::read(conn)).await? { + let site: SiteView = site; + if !site.open_registration { + return Err(APIError::err("registration_closed").into()); + } } - } - // Make sure passwords match - if data.password != data.password_verify { - return Err(APIError::err("passwords_dont_match").into()); - } + // Make sure passwords match + if data.password != data.password_verify { + return Err(APIError::err("passwords_dont_match").into()); + } - // If its not the admin, check the captcha - if !data.admin && Settings::get().captcha.enabled { - match Settings::get().captcha.provider.as_str() { - "hcaptcha" => { - if let Some(hcaptcha_id) = data.hcaptcha_id.clone() { - if let Err(hcaptcha_error) = hcaptcha_verify(hcaptcha_id).await { - error!("hCaptcha failed: {:?}", hcaptcha_error); - return Err(APIError::err("captcha_failed").into()); + //Check the captcha if it's enabled + if Settings::get().captcha.enabled { + match Settings::get().captcha.provider.as_str() { + "hcaptcha" => { + if let Some(hcaptcha_id) = data.hcaptcha_id.clone() { + if let Err(hcaptcha_error) = hcaptcha_verify(hcaptcha_id).await { + error!("hCaptcha failed: {:?}", hcaptcha_error); + return Err(APIError::err("captcha_failed").into()); + } + } else { + return Err(APIError::err("missing_hcaptcha_id").into()); } - } else { - return Err(APIError::err("missing_hcaptcha_id").into()); } - } - _ => { - let check = context - .chat_server() - .send(CheckCaptcha { - uuid: data - .captcha_uuid - .to_owned() - .unwrap_or_else(|| "".to_string()), - answer: data - .captcha_answer - .to_owned() - .unwrap_or_else(|| "".to_string()), - }) - .await?; - if !check { - return Err(APIError::err("captcha_incorrect").into()); + _ => { + let check = context + .chat_server() + .send(CheckCaptcha { + uuid: data + .captcha_uuid + .to_owned() + .unwrap_or_else(|| "".to_string()), + answer: data + .captcha_answer + .to_owned() + .unwrap_or_else(|| "".to_string()), + }) + .await?; + if !check { + return Err(APIError::err("captcha_incorrect").into()); + } } } } @@ -313,7 +316,7 @@ impl Perform for Register { let user_form = UserForm { name: data.username.to_owned(), email: Some(email.to_owned()), - admin: false, + admin: data.admin, //only executes up to this point if there are no other admins. matrix_user_id: None, avatar: None, banner: None, @@ -387,10 +390,28 @@ impl Perform for Register { icon: None, banner: None, }; - blocking(context.pool(), move |conn| { + let community = blocking(context.pool(), move |conn| { Community::create(conn, &community_form) }) - .await?? + .await??; + + // Initialize community settings + let community_settings_form = CommunitySettingsForm { + id: community.id, + read_only: false, + private: false, + post_links: true, + comment_images: 1, + allow_as_default: true, + hide_from_all: false, + }; + + let _inserted_settings = blocking(context.pool(), move |conn| { + CommunitySettings::create(conn, &community_settings_form) + }) + .await??; + + community } }; @@ -406,9 +427,9 @@ impl Perform for Register { };*/ //get comms that are both admin-selected and enabled allow_as_default, then subscribe users to all of them + //if the read site throws an error, we may be registering before the site is created. just pass over no defaults let default_communities = blocking(context.pool(), move |conn| SiteView::read(conn)) - .await?? - .autosubscribe_comms; + .await?.map(|s| s.autosubscribe_comms).unwrap_or(Vec::new()); let optin_communities = blocking(context.pool(), move |conn| { CommunitySettings::list_allowed_as_default(conn) }) @@ -1221,7 +1242,7 @@ impl Perform for PasswordReset { }; // Generate a random token - let token = generate_random_string(); + let token = generate_random_string()?; // Insert the row let token2 = token.clone(); diff --git a/server/src/apub/activities.rs b/server/src/apub/activities.rs index 0ba8f8735..a1f5c16b4 100644 --- a/server/src/apub/activities.rs +++ b/server/src/apub/activities.rs @@ -6,9 +6,10 @@ use activitystreams::{ base::{Extends, ExtendsExt}, object::AsObject, }; +use core::fmt::Debug; use lemmy_db::{community::Community, user::User_}; use lemmy_utils::{get_apub_protocol_string, settings::Settings, LemmyError}; -use serde::{export::fmt::Debug, Serialize}; +use serde::{Serialize}; use url::{ParseError, Url}; use uuid::Uuid; diff --git a/server/src/apub/activity_queue.rs b/server/src/apub/activity_queue.rs index e3461736d..3426d8e33 100644 --- a/server/src/apub/activity_queue.rs +++ b/server/src/apub/activity_queue.rs @@ -71,7 +71,7 @@ impl ActixJob for SendActivityTask { let request = state .client .post(to_url.as_str()) - .header("Content-Type", "application/json"); + .insert_header(("Content-Type", "application/json")); // TODO: i believe we have to do the signing in here because it is only valid for a few seconds let signed = sign( diff --git a/server/src/apub/community.rs b/server/src/apub/community.rs index c166ce33e..c8baef652 100644 --- a/server/src/apub/community.rs +++ b/server/src/apub/community.rs @@ -10,18 +10,10 @@ use crate::{ }, blocking, DbPool, LemmyContext, }; -use activitystreams::{ - activity::{ +use activitystreams::{activity::{ kind::{AcceptType, AnnounceType, DeleteType, LikeType, RemoveType, UndoType}, Accept, Announce, Delete, Follow, Remove, Undo, - }, - actor::{kind::GroupType, ApActor, Endpoints, Group}, - base::{AnyBase, BaseExt}, - collection::{OrderedCollection, UnorderedCollection}, - object::{Image, Tombstone}, - prelude::*, - public, -}; + }, actor::{kind::GroupType, ApActor, Endpoints, Group}, base::{AnyBase, BaseExt}, collection::{OrderedCollection, UnorderedCollection}, object::{Image, Tombstone}, prelude::*, public}; use activitystreams_ext::Ext2; use actix_web::{body::Body, web, HttpResponse}; use anyhow::Context; @@ -344,9 +336,9 @@ impl FromApub for CommunityForm { let description = group .inner .content() - .map(|s| s.as_single_xsd_string()) - .flatten() - .map(|s| s.to_string()); + .map(|s| s.as_single_xsd_string() + .map(|str| str.to_string())) + .flatten(); check_slurs(&name)?; check_slurs(&title)?; check_slurs_opt(&description)?; diff --git a/server/src/apub/extensions/signatures.rs b/server/src/apub/extensions/signatures.rs index 4a261c17e..b07f65524 100644 --- a/server/src/apub/extensions/signatures.rs +++ b/server/src/apub/extensions/signatures.rs @@ -1,7 +1,8 @@ use crate::apub::ActorType; use activitystreams::unparsed::UnparsedMutExt; use activitystreams_ext::UnparsedExtension; -use actix_web::{client::ClientRequest, HttpRequest}; +use actix_web::HttpRequest; +use awc::ClientRequest; use anyhow::{anyhow, Context}; use http_signature_normalization_actix::{ digest::{DigestClient, SignExt}, diff --git a/server/src/apub/fetcher.rs b/server/src/apub/fetcher.rs index d3989ee6e..3bf5c3e22 100644 --- a/server/src/apub/fetcher.rs +++ b/server/src/apub/fetcher.rs @@ -69,8 +69,8 @@ where } /// The types of ActivityPub objects that can be fetched directly by searching for their ID. -#[serde(untagged)] #[derive(serde::Deserialize, Debug)] +#[serde(untagged)] pub enum SearchAcceptedObjects { Person(Box), Group(Box), diff --git a/server/src/apub/post.rs b/server/src/apub/post.rs index a297a4086..1b2de5e47 100644 --- a/server/src/apub/post.rs +++ b/server/src/apub/post.rs @@ -152,14 +152,14 @@ fn extract_embed_from_apub( .map(|s| s.to_string()); let description = preview_page .summary() - .map(|s| s.as_single_xsd_string()) - .flatten() - .map(|s| s.to_string()); + .map(|s| s.as_single_xsd_string() + .map(|str| str.to_string())) + .flatten(); let html = preview_page .content() - .map(|c| c.as_single_xsd_string()) - .flatten() - .map(|s| s.to_string()); + .map(|c| c.as_single_xsd_string() + .map(|str| str.to_string())) + .flatten(); Ok(EmbedType { title, description, diff --git a/server/src/apub/user.rs b/server/src/apub/user.rs index 42028e063..0797eff78 100644 --- a/server/src/apub/user.rs +++ b/server/src/apub/user.rs @@ -233,9 +233,9 @@ impl FromApub for UserForm { let bio = person .inner .summary() - .map(|s| s.as_single_xsd_string()) - .flatten() - .map(|s| s.to_string()); + .map(|s| s.as_single_xsd_string() + .map(|str| str.to_string())) + .flatten(); check_slurs(&name)?; check_slurs_opt(&preferred_username)?; check_slurs_opt(&bio)?; diff --git a/server/src/lib.rs b/server/src/lib.rs index c9901bda0..ab4cf91d4 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -102,14 +102,34 @@ impl LemmyContext { #[derive(Deserialize, Debug)] pub struct IframelyResponse { - title: Option, + html: Option, + links: Option, + meta: Option +} + +#[derive(Deserialize, Debug)] +pub struct IframelyMeta { description: Option, - thumbnail_url: Option, + title: Option, + site: Option +} + +#[derive(Deserialize, Debug)] +pub struct IframelyLink { + href: Option, html: Option, + #[serde(rename = "type")] + content_type: Option +} + +#[derive(Deserialize, Debug)] +pub struct IframelyLinks { + icon: Option>, + thumbnail: Option>, } pub async fn fetch_iframely(client: &Client, url: &str) -> Result { - let fetch_url = format!("http://iframely/oembed?url={}", url); + let fetch_url = format!("http://iframely/iframely?url={}", url); let response = retry(|| client.get(&fetch_url).send()).await?; @@ -168,7 +188,11 @@ async fn fetch_iframely_and_pictrs_data( // Fetch iframely data let (iframely_title, iframely_description, iframely_thumbnail_url, iframely_html) = match fetch_iframely(client, url).await { - Ok(res) => (res.title, res.description, res.thumbnail_url, res.html), + Ok(res) => { + let meta = res.meta.map(|m| (m.title, m.description)).unwrap_or((None, None)); + let thumbnail = res.links.map(|l| l.thumbnail.map(|t| t[0].href.clone()).flatten()).flatten(); + (meta.0, meta.1, thumbnail, res.html) + }, Err(e) => { error!("iframely err: {}", e); (None, None, None, None) @@ -244,7 +268,7 @@ where let res = (f)(&conn); Ok(res) as Result<_, LemmyError> }) - .await?; + .await??; Ok(res) } @@ -319,7 +343,7 @@ mod tests { #[test] fn test_image() { - actix_rt::System::new("tset_image").block_on(async move { + actix_rt::System::new().block_on(async move { let client = reqwest::Client::default(); assert!(is_image_content_type(&client, "https://1734811051.rsc.cdn77.org/data/images/full/365645/as-virus-kills-navajos-in-their-homes-tribal-women-provide-lifeline.jpg?w=600?w=650").await.is_ok()); assert!(is_image_content_type(&client, diff --git a/server/src/main.rs b/server/src/main.rs index 8d898f6d4..2809ec8f5 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -5,19 +5,15 @@ pub extern crate lazy_static; use actix::prelude::*; use actix_cors::Cors; -use actix_web::{ - body::Body, - dev::{Service, ServiceRequest, ServiceResponse}, - http::{ +use actix_web::{*, body::Body, dev::{Service, ServiceRequest, ServiceResponse}, http::{ header::{CACHE_CONTROL, CONTENT_TYPE}, HeaderValue, - }, - *, -}; + }, web::Data}; use diesel::{ r2d2::{ConnectionManager, Pool}, PgConnection, }; +use futures::Future; use lemmy_db::get_database_url_from_env; use lemmy_rate_limit::{rate_limiter::RateLimiter, RateLimit}; use lemmy_server::{ @@ -28,8 +24,7 @@ use lemmy_utils::{ settings::Settings, LemmyError, CACHE_CONTROL_APPLICATION_REGEX, CACHE_CONTROL_IMAGE_REGEX, }; use reqwest::Client; -use std::sync::Arc; -use tokio::sync::Mutex; +use std::sync::{Arc, Mutex}; lazy_static! { // static ref CACHE_CONTROL_VALUE: String = format!("public, max-age={}", 365 * 24 * 60 * 60); @@ -108,7 +103,7 @@ async fn main() -> Result<(), LemmyError> { .wrap_fn(add_cache_headers) .wrap(cors) .wrap(middleware::Logger::default()) - .data(context) + .app_data(Data::new(context)) // The routes .configure(|cfg| api::config(cfg, &rate_limiter)) .configure(federation::config) @@ -126,10 +121,10 @@ async fn main() -> Result<(), LemmyError> { fn add_cache_headers( req: ServiceRequest, - srv: &mut S, + srv: &S, ) -> impl Future> where - S: Service, Error = Error>, + S: Service, Error = Error> { let fut = srv.call(req); async move { diff --git a/server/src/routes/feeds.rs b/server/src/routes/feeds.rs index 615b8ff5b..fd59cb355 100644 --- a/server/src/routes/feeds.rs +++ b/server/src/routes/feeds.rs @@ -79,10 +79,11 @@ fn get_feed_all_data(conn: &PgConnection, sort_type: &SortType) -> Result, + path: web::Path<(String, String)>, info: web::Query, context: web::Data, ) -> Result { + let (r_type, name) = path.into_inner(); let sort_type = get_sort_type(info).map_err(ErrorBadRequest)?; let request_type = match r_type.as_str() { diff --git a/server/src/routes/images.rs b/server/src/routes/images.rs index 5cb84126b..b95cff40b 100644 --- a/server/src/routes/images.rs +++ b/server/src/routes/images.rs @@ -1,6 +1,6 @@ use crate::api::claims::Claims; -use actix::clock::Duration; -use actix_web::{body::BodyStream, http::StatusCode, *}; +use std::time::Duration; +use actix_web::{*, body::BodyStream, http::StatusCode, web::Data}; use awc::Client; use lemmy_rate_limit::RateLimit; use lemmy_utils::settings::Settings; @@ -13,7 +13,7 @@ pub fn config(cfg: &mut web::ServiceConfig, rate_limit: &RateLimit) { .finish(); cfg - .data(client) + .app_data(Data::new(client)) .service( web::resource("/pictrs/image") .wrap(rate_limit.image()) @@ -58,12 +58,12 @@ async fn upload( client.request_from(format!("{}/image", Settings::get().pictrs_url), req.head()); if let Some(addr) = req.head().peer_addr { - client_req = client_req.header("X-Forwarded-For", addr.to_string()) + client_req = client_req.append_header(("X-Forwarded-For", addr.to_string())) }; - let mut res = client_req.send_stream(body).await?; + let mut res = client_req.send_stream(body).await.map_err(|e| error::ErrorBadRequest(e))?; - let images = res.json::().await?; + let images = res.json::().await.map_err(|e| error::ErrorBadRequest(e))?; Ok(HttpResponse::build(res.status()).json(images)) } @@ -107,10 +107,10 @@ async fn image( let mut client_req = client.request_from(url, req.head()); if let Some(addr) = req.head().peer_addr { - client_req = client_req.header("X-Forwarded-For", addr.to_string()) + client_req = client_req.append_header(("X-Forwarded-For", addr.to_string())) }; - let res = client_req.no_decompress().send().await?; + let res = client_req.no_decompress().send().await.map_err(|e| error::ErrorBadRequest(e))?; if res.status() == StatusCode::NOT_FOUND { return Ok(HttpResponse::NotFound().finish()); @@ -119,7 +119,7 @@ async fn image( let mut client_res = HttpResponse::build(res.status()); for (name, value) in res.headers().iter().filter(|(h, _)| *h != "connection") { - client_res.header(name.clone(), value.clone()); + client_res.append_header((name.clone(), value.clone())); } Ok(client_res.body(BodyStream::new(res))) @@ -142,10 +142,10 @@ async fn delete( let mut client_req = client.request_from(url, req.head()); if let Some(addr) = req.head().peer_addr { - client_req = client_req.header("X-Forwarded-For", addr.to_string()) + client_req = client_req.append_header(("X-Forwarded-For", addr.to_string())) }; - let res = client_req.no_decompress().send().await?; + let res = client_req.no_decompress().send().await.map_err(|e| error::ErrorBadRequest(e))?; Ok(HttpResponse::build(res.status()).body(BodyStream::new(res))) } diff --git a/server/src/routes/websocket.rs b/server/src/routes/websocket.rs index 465974c00..1bd5272c6 100644 --- a/server/src/routes/websocket.rs +++ b/server/src/routes/websocket.rs @@ -8,6 +8,7 @@ use crate::{ use actix::prelude::*; use actix_web::*; use actix_web_actors::ws; +use core::ops::Deref; use lemmy_utils::get_ip; use log::{debug, error, info}; use std::time::{Duration, Instant}; @@ -28,7 +29,7 @@ pub async fn chat_route( cs_addr: context.chat_server().to_owned(), id: 0, hb: Instant::now(), - ip: get_ip(&req.connection_info()), + ip: get_ip(req.connection_info().deref()), }, &req, stream, diff --git a/server/src/version.rs b/server/src/version.rs index 3c40e4c99..826c63cbb 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1,6 +1,5 @@ -pub const VERSION: &str = "v0.7.57"; -pub const GIT_SHA: &str = env!("VERGEN_SHA"); -pub const GIT_SHA_SHORT: &str = env!("VERGEN_SHA_SHORT"); -pub const SEMVER_LIGHTWEIGHT: &str = env!("VERGEN_SEMVER_LIGHTWEIGHT"); +pub const VERSION: &str = "v0.7.60.hex"; +pub const GIT_SHA_SHORT: &str = env!("VERGEN_GIT_SHA_SHORT"); +pub const SEMVER_LIGHTWEIGHT: &str = env!("VERGEN_GIT_SEMVER_LIGHTWEIGHT"); pub const BUILD_TIMESTAMP: &str = env!("VERGEN_BUILD_TIMESTAMP"); pub const BUILD_DATE: &str = env!("VERGEN_BUILD_DATE"); diff --git a/server/src/websocket/chat_server.rs b/server/src/websocket/chat_server.rs index 7fbbf43fc..a0d2bbfd0 100644 --- a/server/src/websocket/chat_server.rs +++ b/server/src/websocket/chat_server.rs @@ -14,6 +14,7 @@ use diesel::{ r2d2::{ConnectionManager, Pool}, PgConnection, }; +use futures::Future; use lemmy_api_structs::{ comment::*, community::*, community_settings::*, post::*, post_hexbear::FeaturePost, report::*, site::*, user::*, APIError,