diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..49718c4
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,2 @@
+run:
+ cd site && cargo run
diff --git a/README.md b/README.md
index fbddbc6..ee6f4fc 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,8 @@ Pure rust. Built with actix, diesel, tera, serde and sqlite3.
## Run instructions using docker
+**TODO REWRITE, OUTDATED**
+
1. Clone the repository
```bash
git clone https://github.com/mtrx1337/crablog
@@ -23,23 +25,22 @@ docker-compose up -d
## Configuration environment file
-All configuration options are defined in crablog.env, an example configuration is provided.
-When not using Docker you may have to add crablog.env to your startup script or define the variables there.
+All configuration options are defined in .env which should be placed in the path where crablog is run. An example configuration is provided:
-`crablog.env`
+`.env`
```
-USERNAME=yourusername
-EMAIL=me@mydomain.tld
-BIND_PORT=8000
-SUBMIT_TOKEN=Submit!123 # token needed for submitting
-GITHUB_ACCOUNT=usernam3
-TWITTER_ACCOUNT=usernam3
-MASTODON_ACCOUNT=usernam3@mastodon.social
-REDDIT_ACCOUNT=usernam3
-DISCORD_ACCOUNT=usernam3
+CL_USERNAME=yourusername
+CL_EMAIL=me@mydomain.tld # optional
+CL_BIND_PORT=8000 # optional
+CL_SUBMIT_TOKEN=Submit!123 # required, token needed for submitting
+CL_GITHUB_ACCOUNT=yourusername # optional
+CL_TWITTER_ACCOUNT=yourusername # optional
+CL_MASTODON_ACCOUNT=yourusername@mastodon.social # optional
+CL_REDDIT_ACCOUNT=yourusername # optional
+CL_DISCORD_ACCOUNT=yourusername # optional
# only needed when not using a docker container
-ROOT_PATH=/path/to/template/directory/and/sqliteDB
+CL_ROOT_PATH=/path/to/template/directory/and/sqliteDB
```
## Routes
@@ -58,3 +59,7 @@ ROOT_PATH=/path/to/template/directory/and/sqliteDB
| Route | Description |
| ---------------- | ------------------------- |
| `api/blog/posts` | returns all posts as json |
+
+## Regenerate Migrations from Schema:
+
+`diesel migration generate --diff-schema=./src/db/schema.rs create_posts`
diff --git a/content/static/css/index.css b/content/static/css/index.css
deleted file mode 100644
index beb14fc..0000000
--- a/content/static/css/index.css
+++ /dev/null
@@ -1,24 +0,0 @@
-* {
- margin: 0;
- padding: 0;
-}
-
-html {
- font-family: sans-serif;
- padding: 20px;
- width: 60%;
- padding-left: 20%;
-}
-
-.social-icon {
- height: 1em;
- width: 1em;
-}
-
-@media (max-width:1080px) {
- html {
- font-family: sans-serif;
- padding: 20px;
- width: 90%;
- padding-left: 5%;
-}
diff --git a/content/static/js/blog.js b/content/static/js/blog.js
deleted file mode 100644
index 1d01900..0000000
--- a/content/static/js/blog.js
+++ /dev/null
@@ -1,35 +0,0 @@
-function setTokenCookie() {
- let token = document.getElementById('set-token').value;
- let tokenCookie = 'token=' + token + "; SameSite=None; secure";
- document.cookie = tokenCookie;
- setFormTokens(token);
- document.getElementById("cookie-block").hidden = true;
-}
-
-function clearTokenCookie() {
- document.cookie = "token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=None; secure";
- document.getElementById("cookie-block").hidden = false;
-}
-
-function setFormTokens(token) {
- let tokenFields = document.querySelectorAll(".token");
- for (t of tokenFields) {
- t.value = token;
- }
-}
-
-// if cookie is set, use it to pass the token
-let c_pairs = document.cookie.split(";");
-let cookie_set = false;
-for (c of c_pairs) {
- if (c.trim().split("=")[0].startsWith("token")){
- // stick token into all the form input fields
- let token = c.split("=")[1];
- setFormTokens(token);
- cookie_set = true;
- }
-}
-
-if (!cookie_set) {
- document.getElementById("cookie-block").hidden = false;
-}
diff --git a/content/templates/about.html b/content/templates/about.html
deleted file mode 100644
index b52bc53..0000000
--- a/content/templates/about.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
-
- {{ username }}' site
-
-
-
-
-
- Hi, I'm {{ username }}
-
- Back to the blog
-
-
- This is my blog. If you have questions or input for me please send me an E-Mail to {{ email }}
-
-
-
-
-
-
-
diff --git a/content/templates/blog-all-posts.html b/content/templates/blog-all-posts.html
deleted file mode 100644
index 7f9eeaf..0000000
--- a/content/templates/blog-all-posts.html
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
- All posts
-
-
-
-
-
-
-
- About
- Last 5 posts
-
-
-
-
diff --git a/content/templates/blog-by-id.html b/content/templates/blog-by-id.html
deleted file mode 100644
index 89f4ec4..0000000
--- a/content/templates/blog-by-id.html
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ post.title }} | {{ username }}' blog
-
-
-
-
-
-
-
- Home
- About
- All Posts
-
-
-
-
-
-
{{ post.title }}
-
{{ post.publish_date | date(format="%Y-%m-%d at %H:%M") }}
-
{{ post.body }}
-
-
-
-
-
diff --git a/content/templates/blog.html b/content/templates/blog.html
deleted file mode 100644
index c5a13ee..0000000
--- a/content/templates/blog.html
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ username }}' blog
-
-
-
-
-
-
-
- About
- All Posts
-
- {% for post in posts %}
-
-
-
-
{{ post.title }}
-
{{ post.publish_date | date(format="%Y-%m-%d at %H:%M") }}
-
{{ post.body }}
-
-
- {% endfor %}
-
-
-
diff --git a/content/templates/edit-form.html b/content/templates/edit-form.html
deleted file mode 100644
index 5215c94..0000000
--- a/content/templates/edit-form.html
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
- Edit '{{ title }}'
-
-
-
-
-
-
Please set your token cookie first.
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/templates/edit.html b/content/templates/edit.html
deleted file mode 100644
index e6a1643..0000000
--- a/content/templates/edit.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
- Edit posts...
-
-
-
-
-
- Edit posts
-
-
-
diff --git a/content/templates/submit.html b/content/templates/submit.html
deleted file mode 100644
index 449c02e..0000000
--- a/content/templates/submit.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
- Submit post
-
-
-
-
-
-
Please set your token cookie first.
-
-
-
-
-
-
-
-
-
diff --git a/crablog.env b/crablog.env
deleted file mode 100644
index 0342b21..0000000
--- a/crablog.env
+++ /dev/null
@@ -1,9 +0,0 @@
-USERNAME=yourusername
-EMAIL=me@mydomain.tld
-BIND_PORT=8000
-SUBMIT_TOKEN=Submit!123 # token needed for submitting
-GITHUB_ACCOUNT=usernam3
-TWITTER_ACCOUNT=usernam3
-MASTODON_ACCOUNT=usernam3@mastodon.social
-REDDIT_ACCOUNT=usernam3
-DISCORD_ACCOUNT=usernam3
\ No newline at end of file
diff --git a/site/Cargo.lock b/site/Cargo.lock
index 536511d..0db2806 100644
--- a/site/Cargo.lock
+++ b/site/Cargo.lock
@@ -1,241 +1,164 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
+version = 3
+
[[package]]
name = "actix-codec"
-version = "0.3.0"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78d1833b3838dbe990df0f1f87baf640cf6146e898166afe401839d1b001e570"
+checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a"
dependencies = [
"bitflags",
"bytes",
"futures-core",
"futures-sink",
- "log",
- "pin-project 0.4.27",
+ "memchr",
+ "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",
- "trust-dns-proto",
- "trust-dns-resolver",
+ "tracing",
]
[[package]]
name = "actix-files"
-version = "0.4.0"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc0a9181e93c91dc7eb401a0debaed5c8294e12019c307c72fd7a1731b672fc"
+checksum = "bf0bdd6ff79de7c9a021f5d9ea79ce23e108d8bfc9b49b5b4a2cf6fad5a35212"
dependencies = [
+ "actix-http",
"actix-service",
+ "actix-utils",
"actix-web",
"bitflags",
"bytes",
"derive_more",
"futures-core",
- "futures-util",
+ "http-range",
"log",
"mime",
"mime_guess",
"percent-encoding",
+ "pin-project-lite",
"v_htmlescape",
]
[[package]]
name = "actix-http"
-version = "2.2.0"
+version = "3.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "452299e87817ae5673910e53c243484ca38be3828db819b6011736fc6982e874"
+checksum = "4eb9843d84c775696c37d9a418bbb01b932629d01870722c0f13eb3f95e2536d"
dependencies = [
"actix-codec",
- "actix-connect",
"actix-rt",
"actix-service",
- "actix-threadpool",
"actix-utils",
+ "ahash",
"base64",
"bitflags",
- "brotli2",
+ "brotli",
"bytes",
- "cookie",
- "copyless",
+ "bytestring",
"derive_more",
- "either",
"encoding_rs",
"flate2",
- "futures-channel",
"futures-core",
- "futures-util",
- "fxhash",
"h2",
"http",
"httparse",
- "indexmap",
+ "httpdate",
"itoa",
"language-tags",
- "lazy_static",
- "log",
+ "local-channel",
"mime",
"percent-encoding",
- "pin-project 1.0.1",
- "rand 0.7.3",
- "regex",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "sha-1 0.9.2",
- "slab",
- "time 0.2.22",
+ "pin-project-lite",
+ "rand",
+ "sha1",
+ "smallvec",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "zstd",
]
[[package]]
name = "actix-macros"
-version = "0.1.2"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a60f9ba7c4e6df97f3aacb14bb5c0cd7d98a49dcbaed0d7f292912ad9a6a3ed2"
+checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
dependencies = [
- "quote 1.0.7",
- "syn 1.0.71",
+ "quote",
+ "syn 2.0.66",
]
[[package]]
name = "actix-router"
-version = "0.2.5"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbd1f7dbda1645bf7da33554db60891755f6c01c1b2169e2f4c492098d30c235"
+checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8"
dependencies = [
"bytestring",
+ "cfg-if",
"http",
- "log",
"regex",
+ "regex-lite",
"serde",
+ "tracing",
]
[[package]]
name = "actix-rt"
-version = "1.1.1"
+version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227"
+checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d"
dependencies = [
- "actix-macros",
- "actix-threadpool",
- "copyless",
- "futures-channel",
- "futures-util",
- "smallvec",
+ "futures-core",
"tokio",
]
[[package]]
name = "actix-server"
-version = "1.0.4"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45407e6e672ca24784baa667c5d32ef109ccdd8d5e0b5ebb9ef8a67f4dfb708e"
+checksum = "3eb13e7eef0423ea6eab0e59f6c72e7cb46d33691ad56a726b3cd07ddec2c2d4"
dependencies = [
- "actix-codec",
"actix-rt",
"actix-service",
"actix-utils",
- "futures-channel",
+ "futures-core",
"futures-util",
- "log",
"mio",
- "mio-uds",
- "num_cpus",
- "slab",
"socket2",
+ "tokio",
+ "tracing",
]
[[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"
+version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c"
+checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a"
dependencies = [
- "actix-macros",
- "actix-rt",
- "actix-server",
- "actix-service",
- "log",
- "socket2",
-]
-
-[[package]]
-name = "actix-threadpool"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30"
-dependencies = [
- "derive_more",
- "futures-channel",
- "lazy_static",
- "log",
- "num_cpus",
- "parking_lot",
- "threadpool",
-]
-
-[[package]]
-name = "actix-tls"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24789b7d7361cf5503a504ebe1c10806896f61e96eca9a7350e23001aca715fb"
-dependencies = [
- "actix-codec",
- "actix-service",
- "actix-utils",
- "futures-util",
+ "futures-core",
+ "paste",
+ "pin-project-lite",
]
[[package]]
name = "actix-utils"
-version = "2.0.0"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e9022dec56632d1d7979e59af14f0597a28a830a9c1c7fec8b2327eb9f16b5a"
+checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8"
dependencies = [
- "actix-codec",
- "actix-rt",
- "actix-service",
- "bitflags",
- "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.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e641d4a172e7faa0862241a20ff4f1f5ab0ab7c279f00c2d4587b77483477b86"
+checksum = "b1cf67dadb19d7c95e5a299e2dda24193b89d5d4f33a3b9800888ede9e19aa32"
dependencies = [
"actix-codec",
"actix-http",
@@ -244,263 +167,266 @@ dependencies = [
"actix-rt",
"actix-server",
"actix-service",
- "actix-testing",
- "actix-threadpool",
- "actix-tls",
"actix-utils",
"actix-web-codegen",
- "awc",
+ "ahash",
"bytes",
+ "bytestring",
+ "cfg-if",
+ "cookie",
"derive_more",
"encoding_rs",
- "futures-channel",
"futures-core",
"futures-util",
- "fxhash",
+ "itoa",
+ "language-tags",
"log",
"mime",
- "pin-project 1.0.1",
+ "once_cell",
+ "pin-project-lite",
"regex",
+ "regex-lite",
"serde",
"serde_json",
"serde_urlencoded",
+ "smallvec",
"socket2",
- "time 0.2.22",
- "tinyvec",
+ "time",
"url",
]
[[package]]
name = "actix-web-codegen"
-version = "0.4.0"
+version = "4.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb"
+checksum = "eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5"
dependencies = [
+ "actix-router",
"proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "quote",
+ "syn 2.0.66",
]
[[package]]
name = "addr2line"
-version = "0.14.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
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 = "aho-corasick"
-version = "0.7.15"
+name = "ahash"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
- "memchr",
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy",
]
[[package]]
-name = "async-trait"
-version = "0.1.41"
+name = "aho-corasick"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b246867b8b3b6ae56035f1eb1ed557c1d8eae97f0d53696138a50fa0e3a3b8c0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
- "proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "memchr",
]
[[package]]
-name = "atty"
-version = "0.2.14"
+name = "alloc-no-stdlib"
+version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi 0.3.9",
-]
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
[[package]]
-name = "autocfg"
-version = "1.0.1"
+name = "alloc-stdlib"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
[[package]]
-name = "awc"
-version = "2.0.3"
+name = "android-tzdata"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b381e490e7b0cfc37ebc54079b0413d8093ef43d14a4e4747083f7fa47a9e691"
-dependencies = [
- "actix-codec",
- "actix-http",
- "actix-rt",
- "actix-service",
- "base64",
- "bytes",
- "cfg-if 1.0.0",
- "derive_more",
- "futures-core",
- "log",
- "mime",
- "percent-encoding",
- "rand 0.7.3",
- "serde",
- "serde_json",
- "serde_urlencoded",
-]
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]]
-name = "backtrace"
-version = "0.3.54"
+name = "android_system_properties"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2baad346b2d4e94a24347adeee9c7a93f412ee94b9cc26e5b59dea23848e9f28"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
dependencies = [
- "addr2line",
- "cfg-if 1.0.0",
"libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
]
[[package]]
-name = "base-x"
-version = "0.2.8"
+name = "anstream"
+version = "0.6.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
[[package]]
-name = "base64"
-version = "0.13.0"
+name = "anstyle"
+version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
[[package]]
-name = "bitflags"
-version = "1.2.1"
+name = "anstyle-parse"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
+dependencies = [
+ "utf8parse",
+]
[[package]]
-name = "block-buffer"
-version = "0.7.3"
+name = "anstyle-query"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
dependencies = [
- "block-padding",
- "byte-tools",
- "byteorder",
- "generic-array 0.12.3",
+ "windows-sys 0.52.0",
]
[[package]]
-name = "block-buffer"
-version = "0.9.0"
+name = "anstyle-wincon"
+version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
dependencies = [
- "generic-array 0.14.4",
+ "anstyle",
+ "windows-sys 0.52.0",
]
[[package]]
-name = "block-padding"
-version = "0.1.5"
+name = "autocfg"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
-dependencies = [
- "byte-tools",
-]
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
[[package]]
-name = "brotli-sys"
-version = "0.3.2"
+name = "backtrace"
+version = "0.3.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4445dea95f4c2b41cde57cc9fee236ae4dbae88d8fcbdb4750fc1bb5d86aaecd"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
dependencies = [
+ "addr2line",
"cc",
+ "cfg-if",
"libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
]
[[package]]
-name = "brotli2"
-version = "0.3.2"
+name = "base64"
+version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cb036c3eade309815c15ddbacec5b22c4d1f3983a774ab2eac2e3e9ea85568e"
-dependencies = [
- "brotli-sys",
- "libc",
-]
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
-name = "bstr"
-version = "0.2.14"
+name = "bitflags"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
dependencies = [
- "memchr",
+ "generic-array",
]
[[package]]
-name = "buf-min"
-version = "0.1.1"
+name = "brotli"
+version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6ae7069aad07c7cdefe6a22a671f00650728bd2331a4cc62e1e5d0becdf9ca4"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
dependencies = [
- "bytes",
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
]
[[package]]
-name = "bumpalo"
-version = "3.4.0"
+name = "brotli-decompressor"
+version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
+checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
[[package]]
-name = "byte-tools"
-version = "0.3.1"
+name = "bstr"
+version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "serde",
+]
[[package]]
-name = "byteorder"
-version = "1.3.4"
+name = "bumpalo"
+version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "bytes"
-version = "0.5.6"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
[[package]]
name = "bytestring"
-version = "0.1.5"
+version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7c05fa5172da78a62d9949d662d2ac89d4cc7355d7b49adee5163f1fb3f363"
+checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72"
dependencies = [
"bytes",
]
[[package]]
name = "cc"
-version = "1.0.62"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1770ced377336a88a67c473594ccc14eca6f4559217c34f64aac8f83d641b40"
-
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
+version = "1.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+dependencies = [
+ "jobserver",
+ "libc",
+ "once_cell",
+]
[[package]]
name = "cfg-if"
@@ -510,75 +436,88 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
-version = "0.4.19"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
- "libc",
- "num-integer",
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
"num-traits",
"serde",
- "time 0.1.44",
- "winapi 0.3.9",
+ "wasm-bindgen",
+ "windows-targets 0.52.5",
]
[[package]]
name = "chrono-tz"
-version = "0.5.3"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2554a3155fec064362507487171dcc4edc3df60cb10f3a1fb10ed8094822b120"
+checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb"
dependencies = [
"chrono",
- "parse-zoneinfo",
+ "chrono-tz-build",
+ "phf",
]
[[package]]
-name = "cloudabi"
-version = "0.1.0"
+name = "chrono-tz-build"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467"
+checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1"
dependencies = [
- "bitflags",
+ "parse-zoneinfo",
+ "phf",
+ "phf_codegen",
]
[[package]]
-name = "const_fn"
-version = "0.4.3"
+name = "colorchoice"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c478836e029dcef17fb47c89023448c64f781a046e0300e257ad8225ae59afab"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
[[package]]
name = "cookie"
-version = "0.14.3"
+version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f"
+checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
dependencies = [
"percent-encoding",
- "time 0.2.22",
- "version_check 0.9.2",
+ "time",
+ "version_check",
]
[[package]]
-name = "copyless"
-version = "0.1.5"
+name = "core-foundation-sys"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
[[package]]
-name = "cpuid-bool"
-version = "0.1.2"
+name = "cpufeatures"
+version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
[[package]]
name = "crablog"
-version = "0.3.1"
+version = "0.4.0"
dependencies = [
"actix-files",
"actix-web",
"chrono",
- "diesel 1.4.6",
- "diesel_codegen",
+ "diesel",
+ "dotenvy",
"env_logger",
"once_cell",
"serde",
@@ -590,165 +529,170 @@ dependencies = [
[[package]]
name = "crc32fast"
-version = "1.2.1"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
-name = "crossbeam-utils"
-version = "0.7.2"
+name = "crossbeam-deque"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
dependencies = [
- "autocfg",
- "cfg-if 0.1.10",
- "lazy_static",
+ "crossbeam-epoch",
+ "crossbeam-utils",
]
[[package]]
-name = "derive_more"
-version = "0.99.11"
+name = "crossbeam-epoch"
+version = "0.9.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
dependencies = [
- "proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "crossbeam-utils",
]
[[package]]
-name = "deunicode"
-version = "0.4.3"
+name = "crossbeam-utils"
+version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
-name = "diesel"
-version = "0.16.0"
+name = "crypto-common"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "304226fa7a3982b0405f6bb95dd9c10c3e2000709f194038a60ec2c277150951"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [
- "byteorder",
+ "generic-array",
+ "typenum",
]
[[package]]
-name = "diesel"
-version = "1.4.6"
+name = "deranged"
+version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "047bfc4d5c3bd2ef6ca6f981941046113524b9a9f9a7cbdfdd7ff40f58e6f542"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
dependencies = [
- "byteorder",
- "chrono",
- "diesel_derives",
- "libsqlite3-sys",
+ "powerfmt",
]
[[package]]
-name = "diesel_codegen"
-version = "0.16.1"
+name = "derive_more"
+version = "0.99.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22006237aee4465b49fb3a0248310a0aaefa6f165fc63c5f6e67810c63521c31"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
- "diesel 0.16.0",
- "quote 0.3.15",
- "serde",
- "serde_json",
- "syn 0.11.11",
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
]
[[package]]
-name = "diesel_derives"
-version = "1.4.1"
+name = "deunicode"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3"
+checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00"
+
+[[package]]
+name = "diesel"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff236accb9a5069572099f0b350a92e9560e8e63a9b8d546162f4a5e03026bb2"
dependencies = [
- "proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "chrono",
+ "diesel_derives",
+ "libsqlite3-sys",
+ "time",
]
[[package]]
-name = "digest"
-version = "0.8.1"
+name = "diesel_derives"
+version = "2.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
+checksum = "14701062d6bed917b5c7103bdffaee1e4609279e240488ad24e7bd979ca6866c"
dependencies = [
- "generic-array 0.12.3",
+ "diesel_table_macro_syntax",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
]
[[package]]
-name = "digest"
-version = "0.9.0"
+name = "diesel_table_macro_syntax"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
dependencies = [
- "generic-array 0.14.4",
+ "syn 2.0.66",
]
[[package]]
-name = "discard"
-version = "1.0.4"
+name = "digest"
+version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
[[package]]
-name = "either"
-version = "1.6.1"
+name = "dotenvy"
+version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
[[package]]
name = "encoding_rs"
-version = "0.8.26"
+version = "0.8.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
-name = "enum-as-inner"
-version = "0.3.3"
+name = "env_filter"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
dependencies = [
- "heck",
- "proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "log",
+ "regex",
]
[[package]]
name = "env_logger"
-version = "0.8.3"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
dependencies = [
- "atty",
+ "anstream",
+ "anstyle",
+ "env_filter",
"humantime",
"log",
- "regex",
- "termcolor",
]
[[package]]
-name = "fake-simd"
-version = "0.1.2"
+name = "equivalent"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "flate2"
-version = "1.0.19"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
dependencies = [
- "cfg-if 1.0.0",
"crc32fast",
- "libc",
"miniz_oxide",
]
@@ -760,187 +704,88 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "form_urlencoded"
-version = "1.0.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
dependencies = [
- "matches",
"percent-encoding",
]
-[[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-dependencies = [
- "bitflags",
- "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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
[[package]]
name = "futures-core"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
-
-[[package]]
-name = "futures-io"
-version = "0.3.8"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"
-dependencies = [
- "proc-macro-hack",
- "proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
-]
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-sink"
-version = "0.3.8"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
[[package]]
name = "futures-task"
-version = "0.3.8"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
-dependencies = [
- "once_cell",
-]
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
[[package]]
name = "futures-util"
-version = "0.3.8"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
- "futures-channel",
"futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
"futures-task",
- "memchr",
- "pin-project 1.0.1",
+ "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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
-dependencies = [
- "typenum",
]
[[package]]
name = "generic-array"
-version = "0.14.4"
+version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
- "version_check 0.9.2",
+ "version_check",
]
[[package]]
name = "getrandom"
-version = "0.1.15"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if",
"libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
+ "wasi",
]
[[package]]
name = "gimli"
-version = "0.23.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
[[package]]
name = "globset"
-version = "0.4.6"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c152169ef1e421390738366d2f796655fec62621dabbd0fd476f905934061e4a"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
dependencies = [
"aho-corasick",
"bstr",
- "fnv",
"log",
- "regex",
+ "regex-automata",
+ "regex-syntax",
]
[[package]]
name = "globwalk"
-version = "0.8.1"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc"
+checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757"
dependencies = [
"bitflags",
"ignore",
@@ -949,9 +794,9 @@ dependencies = [
[[package]]
name = "h2"
-version = "0.2.7"
+version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
dependencies = [
"bytes",
"fnv",
@@ -964,163 +809,152 @@ dependencies = [
"tokio",
"tokio-util",
"tracing",
- "tracing-futures",
]
[[package]]
name = "hashbrown"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
-
-[[package]]
-name = "heck"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hostname"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
-dependencies = [
- "libc",
- "match_cfg",
- "winapi 0.3.9",
-]
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
name = "http"
-version = "0.2.1"
+version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
dependencies = [
"bytes",
"fnv",
"itoa",
]
+[[package]]
+name = "http-range"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
+
[[package]]
name = "httparse"
-version = "1.3.4"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
[[package]]
name = "humansize"
-version = "1.1.0"
+version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
+checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7"
+dependencies = [
+ "libm",
+]
[[package]]
name = "humantime"
-version = "2.0.1"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
[[package]]
name = "idna"
-version = "0.2.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
dependencies = [
- "matches",
"unicode-bidi",
"unicode-normalization",
]
[[package]]
name = "ignore"
-version = "0.4.16"
+version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22dcbf2a4a289528dbef21686354904e1c694ac642610a9bff9e7df730d9ec72"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
dependencies = [
- "crossbeam-utils",
+ "crossbeam-deque",
"globset",
- "lazy_static",
"log",
"memchr",
- "regex",
+ "regex-automata",
"same-file",
- "thread_local",
"walkdir",
"winapi-util",
]
[[package]]
name = "indexmap"
-version = "1.6.0"
+version = "2.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
dependencies = [
- "autocfg",
+ "equivalent",
"hashbrown",
]
[[package]]
-name = "instant"
-version = "0.1.8"
+name = "is_terminal_polyfill"
+version = "1.70.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb1fc4429a33e1f80d41dc9fea4d108a88bec1de8053878898ae448a0b52f613"
-dependencies = [
- "cfg-if 1.0.0",
-]
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
[[package]]
-name = "iovec"
-version = "0.1.4"
+name = "itoa"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-dependencies = [
- "libc",
-]
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
-name = "ipconfig"
-version = "0.2.2"
+name = "jobserver"
+version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
dependencies = [
- "socket2",
- "widestring",
- "winapi 0.3.9",
- "winreg",
+ "libc",
]
[[package]]
-name = "itoa"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
-
-[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
+name = "js-sys"
+version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
dependencies = [
- "winapi 0.2.8",
- "winapi-build",
+ "wasm-bindgen",
]
[[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"
@@ -1130,88 +964,76 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.80"
+version = "0.2.155"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+
+[[package]]
+name = "libm"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
[[package]]
name = "libsqlite3-sys"
-version = "0.18.0"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e704a02bcaecd4a08b93a23f6be59d0bd79cd161e0963e9499165a0a35df7bd"
+checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f"
dependencies = [
"pkg-config",
"vcpkg",
]
[[package]]
-name = "linked-hash-map"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
-
-[[package]]
-name = "lock_api"
-version = "0.4.1"
+name = "local-channel"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c"
+checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8"
dependencies = [
- "scopeguard",
+ "futures-core",
+ "futures-sink",
+ "local-waker",
]
[[package]]
-name = "log"
-version = "0.4.11"
+name = "local-waker"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
-dependencies = [
- "cfg-if 0.1.10",
-]
+checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487"
[[package]]
-name = "lru-cache"
-version = "0.1.2"
+name = "lock_api"
+version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
dependencies = [
- "linked-hash-map",
+ "autocfg",
+ "scopeguard",
]
[[package]]
-name = "maplit"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
-
-[[package]]
-name = "match_cfg"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
-
-[[package]]
-name = "matches"
-version = "0.1.8"
+name = "log"
+version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "memchr"
-version = "2.3.4"
+version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
[[package]]
name = "mime"
-version = "0.3.16"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]]
name = "mime_guess"
-version = "2.0.3"
+version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
dependencies = [
"mime",
"unicase",
@@ -1219,185 +1041,115 @@ dependencies = [
[[package]]
name = "miniz_oxide"
-version = "0.4.3"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
dependencies = [
"adler",
- "autocfg",
]
[[package]]
name = "mio"
-version = "0.6.22"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
- "cfg-if 0.1.10",
- "fuchsia-zircon",
- "fuchsia-zircon-sys",
- "iovec",
- "kernel32-sys",
"libc",
"log",
- "miow",
- "net2",
- "slab",
- "winapi 0.2.8",
-]
-
-[[package]]
-name = "mio-uds"
-version = "0.6.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
-dependencies = [
- "iovec",
- "libc",
- "mio",
-]
-
-[[package]]
-name = "miow"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-dependencies = [
- "kernel32-sys",
- "net2",
- "winapi 0.2.8",
- "ws2_32-sys",
-]
-
-[[package]]
-name = "net2"
-version = "0.2.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853"
-dependencies = [
- "cfg-if 0.1.10",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "nom"
-version = "4.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
-dependencies = [
- "memchr",
- "version_check 0.1.5",
+ "wasi",
+ "windows-sys 0.48.0",
]
[[package]]
-name = "num-integer"
-version = "0.1.44"
+name = "num-conv"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
-dependencies = [
- "autocfg",
- "num-traits",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "num-traits"
-version = "0.2.14"
+version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
]
[[package]]
-name = "num_cpus"
-version = "1.13.0"
+name = "object"
+version = "0.35.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
dependencies = [
- "hermit-abi",
- "libc",
+ "memchr",
]
-[[package]]
-name = "object"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
-
[[package]]
name = "once_cell"
-version = "1.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
-
-[[package]]
-name = "opaque-debug"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
-
-[[package]]
-name = "opaque-debug"
-version = "0.3.0"
+version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "parking_lot"
-version = "0.11.0"
+version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
dependencies = [
- "instant",
"lock_api",
"parking_lot_core",
]
[[package]]
name = "parking_lot_core"
-version = "0.8.0"
+version = "0.9.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
dependencies = [
- "cfg-if 0.1.10",
- "cloudabi",
- "instant",
+ "cfg-if",
"libc",
"redox_syscall",
"smallvec",
- "winapi 0.3.9",
+ "windows-targets 0.52.5",
]
[[package]]
name = "parse-zoneinfo"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
+checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24"
dependencies = [
"regex",
]
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
[[package]]
name = "percent-encoding"
-version = "2.1.0"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pest"
-version = "2.1.3"
+version = "2.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
+checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8"
dependencies = [
+ "memchr",
+ "thiserror",
"ucd-trie",
]
[[package]]
name = "pest_derive"
-version = "2.1.0"
+version = "2.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
+checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459"
dependencies = [
"pest",
"pest_generator",
@@ -1405,73 +1157,71 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.1.3"
+version = "2.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
+checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "quote",
+ "syn 2.0.66",
]
[[package]]
name = "pest_meta"
-version = "2.1.3"
+version = "2.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
+checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd"
dependencies = [
- "maplit",
+ "once_cell",
"pest",
- "sha-1 0.8.2",
+ "sha2",
]
[[package]]
-name = "pin-project"
-version = "0.4.27"
+name = "phf"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
dependencies = [
- "pin-project-internal 0.4.27",
+ "phf_shared",
]
[[package]]
-name = "pin-project"
-version = "1.0.1"
+name = "phf_codegen"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee41d838744f60d959d7074e3afb6b35c7456d0f61cad38a24e35e6553f73841"
+checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
dependencies = [
- "pin-project-internal 1.0.1",
+ "phf_generator",
+ "phf_shared",
]
[[package]]
-name = "pin-project-internal"
-version = "0.4.27"
+name = "phf_generator"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
dependencies = [
- "proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "phf_shared",
+ "rand",
]
[[package]]
-name = "pin-project-internal"
-version = "1.0.1"
+name = "phf_shared"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81a4ffa594b66bff340084d4081df649a7dc049ac8d7fc458d8e628bfbbb2f86"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
dependencies = [
- "proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "siphasher",
]
[[package]]
name = "pin-project-lite"
-version = "0.1.11"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
[[package]]
name = "pin-utils"
@@ -1481,193 +1231,134 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
-version = "0.3.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.10"
+version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]]
-name = "proc-macro-hack"
-version = "0.5.19"
+name = "powerfmt"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
-name = "proc-macro-nested"
-version = "0.1.6"
+name = "ppv-lite86"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "proc-macro2"
-version = "1.0.26"
+version = "1.0.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
+checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
dependencies = [
- "unicode-xid 0.2.1",
+ "unicode-ident",
]
-[[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
-name = "quote"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-
[[package]]
name = "quote"
-version = "1.0.7"
+version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.15",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc 0.2.0",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.3"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
- "rand_chacha 0.3.0",
- "rand_core 0.6.2",
- "rand_hc 0.3.0",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
+ "rand_chacha",
+ "rand_core",
]
[[package]]
name = "rand_chacha"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
- "rand_core 0.6.2",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.15",
+ "rand_core",
]
[[package]]
name = "rand_core"
-version = "0.6.2"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
- "getrandom 0.2.2",
+ "getrandom",
]
[[package]]
-name = "rand_hc"
-version = "0.2.0"
+name = "redox_syscall"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
dependencies = [
- "rand_core 0.5.1",
+ "bitflags",
]
[[package]]
-name = "rand_hc"
-version = "0.3.0"
+name = "regex"
+version = "1.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
dependencies = [
- "rand_core 0.6.2",
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
]
[[package]]
-name = "redox_syscall"
-version = "0.1.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
-
-[[package]]
-name = "regex"
-version = "1.4.2"
+name = "regex-automata"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
- "thread_local",
]
[[package]]
-name = "regex-syntax"
-version = "0.6.21"
+name = "regex-lite"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
[[package]]
-name = "resolv-conf"
-version = "0.7.0"
+name = "regex-syntax"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
-dependencies = [
- "hostname",
- "quick-error",
-]
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
[[package]]
name = "rustc-demangle"
-version = "0.1.18"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]]
name = "rustc_version"
-version = "0.2.3"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
"semver",
]
[[package]]
name = "ryu"
-version = "1.0.5"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "same-file"
@@ -1680,235 +1371,164 @@ dependencies = [
[[package]]
name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "semver"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver-parser"
-version = "0.7.0"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
[[package]]
name = "serde"
-version = "1.0.125"
+version = "1.0.203"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.125"
+version = "1.0.203"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
dependencies = [
"proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "quote",
+ "syn 2.0.66",
]
[[package]]
name = "serde_json"
-version = "1.0.59"
+version = "1.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
dependencies = [
"itoa",
"ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
-dependencies = [
- "form_urlencoded",
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sha-1"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
-dependencies = [
- "block-buffer 0.7.3",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug 0.2.3",
-]
-
-[[package]]
-name = "sha-1"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c"
-dependencies = [
- "block-buffer 0.9.0",
- "cfg-if 1.0.0",
- "cpuid-bool",
- "digest 0.9.0",
- "opaque-debug 0.3.0",
-]
-
-[[package]]
-name = "sha1"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce32ea0c6c56d5eacaeb814fbed9960547021d3edd010ded1425f180536b20ab"
-dependencies = [
- "libc",
+ "serde",
]
[[package]]
-name = "slab"
-version = "0.4.2"
+name = "serde_urlencoded"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
[[package]]
-name = "slug"
-version = "0.1.4"
+name = "sha1"
+version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [
- "deunicode",
+ "cfg-if",
+ "cpufeatures",
+ "digest",
]
[[package]]
-name = "smallvec"
-version = "1.4.2"
+name = "sha1_smol"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
+checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
[[package]]
-name = "socket2"
-version = "0.3.16"
+name = "sha2"
+version = "0.10.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fd8b795c389288baa5f355489c65e71fd48a02104600d15c4cfbc561e9e429d"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
dependencies = [
- "cfg-if 0.1.10",
- "libc",
- "redox_syscall",
- "winapi 0.3.9",
+ "cfg-if",
+ "cpufeatures",
+ "digest",
]
[[package]]
-name = "standback"
-version = "0.2.11"
+name = "signal-hook-registry"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4e0831040d2cf2bdfd51b844be71885783d489898a192f254ae25d57cce725c"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
dependencies = [
- "version_check 0.9.2",
+ "libc",
]
[[package]]
-name = "stdweb"
-version = "0.4.20"
+name = "siphasher"
+version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
-dependencies = [
- "discard",
- "rustc_version",
- "stdweb-derive",
- "stdweb-internal-macros",
- "stdweb-internal-runtime",
- "wasm-bindgen",
-]
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
[[package]]
-name = "stdweb-derive"
-version = "0.5.3"
+name = "slab"
+version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
dependencies = [
- "proc-macro2",
- "quote 1.0.7",
- "serde",
- "serde_derive",
- "syn 1.0.71",
+ "autocfg",
]
[[package]]
-name = "stdweb-internal-macros"
-version = "0.2.9"
+name = "slug"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
+checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4"
dependencies = [
- "base-x",
- "proc-macro2",
- "quote 1.0.7",
- "serde",
- "serde_derive",
- "serde_json",
- "sha1",
- "syn 1.0.71",
+ "deunicode",
+ "wasm-bindgen",
]
[[package]]
-name = "stdweb-internal-runtime"
-version = "0.1.5"
+name = "smallvec"
+version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
-name = "syn"
-version = "0.11.11"
+name = "socket2"
+version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
dependencies = [
- "quote 0.3.15",
- "synom",
- "unicode-xid 0.0.4",
+ "libc",
+ "windows-sys 0.52.0",
]
[[package]]
name = "syn"
-version = "1.0.71"
+version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad184cc9470f9117b2ac6817bfe297307418819ba40552f9b3846f05c33d5373"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
- "quote 1.0.7",
- "unicode-xid 0.2.1",
+ "quote",
+ "unicode-ident",
]
[[package]]
-name = "synom"
-version = "0.11.3"
+name = "syn"
+version = "2.0.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
dependencies = [
- "unicode-xid 0.0.4",
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
]
[[package]]
name = "tera"
-version = "1.8.0"
+version = "1.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b64b021b8d3ab1f59ceae9e6cd1c26c8e7ce0322a9ebfff6c0e22b3b66938935"
+checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee"
dependencies = [
"chrono",
"chrono-tz",
@@ -1918,7 +1538,7 @@ dependencies = [
"percent-encoding",
"pest",
"pest_derive",
- "rand 0.8.3",
+ "rand",
"regex",
"serde",
"serde_json",
@@ -1926,158 +1546,108 @@ dependencies = [
"unic-segment",
]
-[[package]]
-name = "termcolor"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
-dependencies = [
- "winapi-util",
-]
-
[[package]]
name = "thiserror"
-version = "1.0.22"
+version = "1.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.22"
+version = "1.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
dependencies = [
"proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
-]
-
-[[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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
-dependencies = [
- "num_cpus",
-]
-
-[[package]]
-name = "time"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi 0.3.9",
+ "quote",
+ "syn 2.0.66",
]
[[package]]
name = "time"
-version = "0.2.22"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55b7151c9065e80917fbf285d9a5d1432f60db41d170ccafc749a136b41a93af"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
- "const_fn",
- "libc",
- "standback",
- "stdweb",
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
"time-macros",
- "version_check 0.9.2",
- "winapi 0.3.9",
]
[[package]]
-name = "time-macros"
-version = "0.1.1"
+name = "time-core"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
-dependencies = [
- "proc-macro-hack",
- "time-macros-impl",
-]
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
-name = "time-macros-impl"
-version = "0.1.1"
+name = "time-macros"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
- "proc-macro-hack",
- "proc-macro2",
- "quote 1.0.7",
- "standback",
- "syn 1.0.71",
+ "num-conv",
+ "time-core",
]
[[package]]
name = "tinyvec"
-version = "1.0.1"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b78a366903f506d2ad52ca8dc552102ffdd3e937ba8a227f024dc1d1eae28575"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
dependencies = [
"tinyvec_macros",
]
[[package]]
name = "tinyvec_macros"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "0.2.23"
+version = "1.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6d7ad61edd59bfcc7e80dababf0f4aed2e6d5e0ba1659356ae889752dfc12ff"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
dependencies = [
+ "backtrace",
"bytes",
- "futures-core",
- "iovec",
- "lazy_static",
"libc",
- "memchr",
"mio",
- "mio-uds",
+ "parking_lot",
"pin-project-lite",
"signal-hook-registry",
- "slab",
- "winapi 0.3.9",
+ "socket2",
+ "windows-sys 0.48.0",
]
[[package]]
name = "tokio-util"
-version = "0.3.1"
+version = "0.7.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
dependencies = [
"bytes",
"futures-core",
"futures-sink",
- "log",
"pin-project-lite",
"tokio",
]
[[package]]
name = "tracing"
-version = "0.1.21"
+version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
- "cfg-if 0.1.10",
"log",
"pin-project-lite",
"tracing-core",
@@ -2085,74 +1655,24 @@ dependencies = [
[[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"
+version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53861fcb288a166aae4c508ae558ed18b53838db728d4d310aad08270a7d4c2b"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6759e8efc40465547b0dfce9500d733c65f969a4cbbfbe3ccf68daaa46ef179e"
-dependencies = [
- "backtrace",
- "cfg-if 0.1.10",
- "futures",
- "ipconfig",
- "lazy_static",
- "log",
- "lru-cache",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio",
- "trust-dns-proto",
+ "once_cell",
]
[[package]]
name = "typenum"
-version = "1.12.0"
+version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]]
name = "ucd-trie"
-version = "0.1.3"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
[[package]]
name = "unic-char-property"
@@ -2206,262 +1726,350 @@ dependencies = [
[[package]]
name = "unicase"
-version = "2.6.0"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
dependencies = [
- "version_check 0.9.2",
+ "version_check",
]
[[package]]
name = "unicode-bidi"
-version = "0.3.4"
+version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-dependencies = [
- "matches",
-]
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-normalization"
-version = "0.1.14"
+version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7f98e67a4d84f730d343392f9bfff7d21e3fca562b9cb7a43b768350beeddc6"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
dependencies = [
"tinyvec",
]
-[[package]]
-name = "unicode-segmentation"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db8716a166f290ff49dabc18b44aa407cb7c6dbe1aa0971b44b8a24b0ca35aae"
-
-[[package]]
-name = "unicode-xid"
-version = "0.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
-
[[package]]
name = "url"
-version = "2.2.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
dependencies = [
"form_urlencoded",
"idna",
- "matches",
"percent-encoding",
]
[[package]]
-name = "uuid"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
-dependencies = [
- "serde",
- "sha1",
-]
-
-[[package]]
-name = "v_escape"
-version = "0.13.2"
+name = "utf8parse"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "039a44473286eb84e4e74f90165feff67c802dbeced7ee4c5b00d719b0d0475e"
-dependencies = [
- "buf-min",
- "v_escape_derive",
-]
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
-name = "v_escape_derive"
-version = "0.8.4"
+name = "uuid"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c860ad1273f4eee7006cee05db20c9e60e5d24cba024a32e1094aa8e574f3668"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
dependencies = [
- "nom",
- "proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "serde",
+ "sha1_smol",
]
[[package]]
name = "v_htmlescape"
-version = "0.10.4"
+version = "0.15.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11d7c2a33ed7cf0dc1b42bcf39e01b6512f9df08f09e1cd8a49d9dc49a6a9482"
-dependencies = [
- "cfg-if 1.0.0",
- "v_escape",
-]
+checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c"
[[package]]
name = "vcpkg"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
-
-[[package]]
-name = "version_check"
-version = "0.1.5"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "version_check"
-version = "0.9.2"
+version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "walkdir"
-version = "2.3.1"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
dependencies = [
"same-file",
- "winapi 0.3.9",
"winapi-util",
]
[[package]]
name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
+version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.68"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.68"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f22b422e2a757c35a73774860af8e112bff612ce6cb604224e8e47641a9e4f68"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
dependencies = [
"bumpalo",
- "lazy_static",
"log",
+ "once_cell",
"proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "quote",
+ "syn 2.0.66",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.68"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b13312a745c08c469f0b292dd2fcd6411dba5f7160f593da6ef69b64e407038"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
dependencies = [
- "quote 1.0.7",
+ "quote",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.68"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f249f06ef7ee334cc3b8ff031bfc11ec99d00f34d86da7498396dc1e3b1498fe"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
- "quote 1.0.7",
- "syn 1.0.71",
+ "quote",
+ "syn 2.0.66",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.68"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
[[package]]
-name = "widestring"
-version = "0.4.3"
+name = "winapi-util"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
+dependencies = [
+ "windows-sys 0.52.0",
+]
[[package]]
-name = "winapi"
-version = "0.2.8"
+name = "windows-core"
+version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.5",
+]
[[package]]
-name = "winapi"
-version = "0.3.9"
+name = "windows-sys"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows-targets 0.48.5",
]
[[package]]
-name = "winapi-build"
-version = "0.1.1"
+name = "windows-sys"
+version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
[[package]]
-name = "winapi-util"
-version = "0.1.5"
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
dependencies = [
- "winapi 0.3.9",
+ "zerocopy-derive",
]
[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "zerocopy-derive"
+version = "0.7.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "zstd"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a"
+dependencies = [
+ "zstd-safe",
+]
[[package]]
-name = "winreg"
-version = "0.6.2"
+name = "zstd-safe"
+version = "7.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a"
dependencies = [
- "winapi 0.3.9",
+ "zstd-sys",
]
[[package]]
-name = "ws2_32-sys"
-version = "0.2.1"
+name = "zstd-sys"
+version = "2.0.10+zstd.1.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
dependencies = [
- "winapi 0.2.8",
- "winapi-build",
+ "cc",
+ "pkg-config",
]
diff --git a/site/Cargo.toml b/site/Cargo.toml
index 35dd93d..86ac0a5 100644
--- a/site/Cargo.toml
+++ b/site/Cargo.toml
@@ -1,27 +1,27 @@
[package]
name = "crablog"
-version = "0.3.1"
-authors = ["Leonard Lorenz "]
-edition = "2018"
+version = "0.4.0"
+authors = ["mtrx "]
+edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-chrono = { version = "*", features = ["serde"] }
-actix-web = "3.3.2"
-actix-files = "0.4.0"
+chrono = { version = "0.4", features = ["serde"] }
+actix-web = "4.5.1"
+actix-files = "0.6.5"
-serde = { version = "1.0.125", features = ["derive"] }
+serde = { version = "1.0.201", features = ["derive"] }
serde_json = "*"
serde_derive = "*"
-diesel = { version = "1.4.6", default-features = false, features = ["sqlite", "chrono"] }
-diesel_codegen = { version = "0.16.1", default-features = false }
+diesel = { version = "2.1.0", default-features = false, features = ["sqlite", "chrono"] }
+dotenvy = "0.15"
-uuid = { version = "0.8.2", features = ["serde", "v5"] }
+uuid = { version = "1.8.0", features = ["serde", "v5"] }
-tera = "1.8.0"
+tera = "1.18.1"
once_cell = "1.7.2"
-env_logger = "0.8.3"
+env_logger = "0.11.3"
diff --git a/content/static/css/blog.css b/site/content/static/css/blog.css
similarity index 53%
rename from content/static/css/blog.css
rename to site/content/static/css/blog.css
index 090eab9..a32a425 100644
--- a/content/static/css/blog.css
+++ b/site/content/static/css/blog.css
@@ -10,18 +10,33 @@ html {
padding-left: 20%;
}
-img {
+.side-nav {
+ text-align: right;
+}
+
+.social-icon {
+ height: 1rem;
+ width: 1rem;
+}
+
+.post-img {
width: 50%;
padding: 20px 0px 20px 0px;
}
-article {
- padding-top: 2em;
+.blog-article {
+ padding-top: 2rem;
display: flex;
}
+.hidden-link {
+ text-decoration: none;
+ color: black;
+}
+
.post-link {
- padding-right: 20px;
+ text-decoration: none;
+ color: black;
}
.post-title {
@@ -29,20 +44,27 @@ article {
}
.post-publish-date {
- font-size: 0.7em;
+ font-size: 0.7rem;
}
.post-body {
- padding-top: 1em;
+ padding-top: 1rem;
+ margin-left: 2rem;
+}
+
+.submit-box {
+ display: flex;
+ justify-content: space-between;
}
#submit-form {
- padding-top: 2em;
+ padding-top: 2rem;
}
-#submit-body, #submit-title {
+#submit-body,
+#submit-title {
width: 100%;
- margin-bottom: 2em;
+ margin-bottom: 2rem;
resize: none;
}
@@ -60,4 +82,4 @@ article {
width: 90%;
padding-left: 5%;
}
-}
+}
\ No newline at end of file
diff --git a/content/static/favicon.ico b/site/content/static/favicon.ico
similarity index 100%
rename from content/static/favicon.ico
rename to site/content/static/favicon.ico
diff --git a/content/static/social-icons/discord.ico b/site/content/static/social-icons/discord.ico
similarity index 100%
rename from content/static/social-icons/discord.ico
rename to site/content/static/social-icons/discord.ico
diff --git a/content/static/social-icons/github.ico b/site/content/static/social-icons/github.ico
similarity index 100%
rename from content/static/social-icons/github.ico
rename to site/content/static/social-icons/github.ico
diff --git a/content/static/social-icons/mastodon.ico b/site/content/static/social-icons/mastodon.ico
similarity index 100%
rename from content/static/social-icons/mastodon.ico
rename to site/content/static/social-icons/mastodon.ico
diff --git a/content/static/social-icons/reddit.ico b/site/content/static/social-icons/reddit.ico
similarity index 100%
rename from content/static/social-icons/reddit.ico
rename to site/content/static/social-icons/reddit.ico
diff --git a/content/static/social-icons/twitter.ico b/site/content/static/social-icons/twitter.ico
similarity index 100%
rename from content/static/social-icons/twitter.ico
rename to site/content/static/social-icons/twitter.ico
diff --git a/site/content/templates/about.html b/site/content/templates/about.html
new file mode 100644
index 0000000..6e6ec58
--- /dev/null
+++ b/site/content/templates/about.html
@@ -0,0 +1,47 @@
+{% extends "base.html" %}
+
+{% block head %}
+{{ super() }}
+Submit post
+
+{% endblock head %}
+
+{% block content %}
+
+
+ Back to the blog
+
+
+ This is my blog.
+
+ {% if email %}
+ If you have questions or input for me please send me an E-Mail to
{{ email }}
+ {% endif %}
+
+
+
+
+
+{% endblock content %}
\ No newline at end of file
diff --git a/site/content/templates/article.html.macro b/site/content/templates/article.html.macro
new file mode 100644
index 0000000..bd24fe7
--- /dev/null
+++ b/site/content/templates/article.html.macro
@@ -0,0 +1,11 @@
+{% macro article(id, title, body, publish_date) %}
+
+
+
+ {{ title }}
+
+
{{ publish_date | date(format="%Y-%m-%d at %H:%M") }}
+
{{ body }}
+
+
+{% endmacro article %}
\ No newline at end of file
diff --git a/site/content/templates/base.html b/site/content/templates/base.html
new file mode 100644
index 0000000..8217b2e
--- /dev/null
+++ b/site/content/templates/base.html
@@ -0,0 +1,21 @@
+
+
+
+
+ {% block head %}
+
+
+
+
+
+ {% endblock head %}
+
+
+
+
+ {% block content %}
+ {% endblock content %}
+
+
+
+
\ No newline at end of file
diff --git a/site/content/templates/blog-all-posts.html b/site/content/templates/blog-all-posts.html
new file mode 100644
index 0000000..b40a86a
--- /dev/null
+++ b/site/content/templates/blog-all-posts.html
@@ -0,0 +1,25 @@
+{% extends "base.html" %}
+{% import "article.html.macro" as article_macro %}
+
+{% block head %}
+{{ super() }}
+
+
+
+ All posts
+{% endblock head %}
+
+
+{% block content %}
+
+
+ About
+ Last 5 posts
+
+
+ {% for post in posts %}
+ {{ article_macro::article(id=post.id,title=post.title,body=post.body,publish_date=post.publish_date) }}
+ {% endfor %}
+
+
+{% endblock content %}
\ No newline at end of file
diff --git a/site/content/templates/blog-by-id.html b/site/content/templates/blog-by-id.html
new file mode 100644
index 0000000..d4bcd8a
--- /dev/null
+++ b/site/content/templates/blog-by-id.html
@@ -0,0 +1,21 @@
+{% extends "base.html" %}
+{% import "article.html.macro" as article_macro %}
+
+{% block head %}
+{{ super() }}
+
+
+ {{ post.title }} | {{ username }}' blog
+{% endblock head %}
+
+{% block content %}
+
+
+
+{{ article_macro::article(id=post.id,title=post.title,body=post.body,publish_date=post.publish_date) }}
+
+{% endblock content %}
\ No newline at end of file
diff --git a/site/content/templates/blog.html b/site/content/templates/blog.html
new file mode 100644
index 0000000..3153265
--- /dev/null
+++ b/site/content/templates/blog.html
@@ -0,0 +1,22 @@
+{% extends "base.html" %}
+{% import "article.html.macro" as article_macro %}
+
+{% block head %}
+{{ super() }}
+
+
+ {{ username }} blog
+{% endblock head %}
+
+{% block content %}
+
+
+ About
+ All Posts
+
+
+ {% for post in posts %}
+ {{ article_macro::article(id=post.id,title=post.title,body=post.body,publish_date=post.publish_date) }}
+ {% endfor %}
+
+{% endblock content %}
\ No newline at end of file
diff --git a/site/content/templates/edit-form.html b/site/content/templates/edit-form.html
new file mode 100644
index 0000000..5952609
--- /dev/null
+++ b/site/content/templates/edit-form.html
@@ -0,0 +1,33 @@
+{% extends "base.html" %}
+
+{% block head %}
+{{ super() }}
+Edit '{{ post.title }}'
+
+{% endblock head %}
+
+{% block content %}
+
+
+
+
+
+{% endblock content %}
\ No newline at end of file
diff --git a/site/content/templates/edit.html b/site/content/templates/edit.html
new file mode 100644
index 0000000..ba11447
--- /dev/null
+++ b/site/content/templates/edit.html
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+
+{% block head %}
+{{ super() }}
+
+Edit posts...
+{% endblock head %}
+
+{% block content %}
+
+Edit posts
+
+{% endblock content %}
\ No newline at end of file
diff --git a/site/content/templates/submit.html b/site/content/templates/submit.html
new file mode 100644
index 0000000..599d7da
--- /dev/null
+++ b/site/content/templates/submit.html
@@ -0,0 +1,26 @@
+{% extends "base.html" %}
+
+{% block head %}
+{{ super() }}
+Submit post
+
+{% endblock head %}
+
+
+{% block content %}
+
+{% endblock content %}
\ No newline at end of file
diff --git a/site/migrations/.gitkeep b/site/migrations/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/site/src/api.rs b/site/src/api.rs
index cb03b02..7e7eab0 100644
--- a/site/src/api.rs
+++ b/site/src/api.rs
@@ -1,8 +1,8 @@
+use crate::config::CONFIG;
use crate::db::*;
use crate::routes::{id_valid, replace_newlines};
use actix_web::{get, http::StatusCode, post, web, web::Form, HttpResponse, Responder};
use serde::Deserialize;
-use super::CONFIG_MAP;
#[derive(Deserialize)]
struct NewPostForm {
@@ -18,7 +18,7 @@ struct BlogActionForm {
#[post("/api/blog/create")]
async fn blog_create_post(form: Form) -> impl Responder {
- if *CONFIG_MAP.read().unwrap().get("SUBMIT_TOKEN").unwrap() == form.token {
+ if CONFIG.submit_token == form.token {
create_post(&form.title.as_str(), replace_newlines(&form.body).as_str());
println!("New blog post created.");
} else {
@@ -26,17 +26,14 @@ async fn blog_create_post(form: Form) -> impl Responder {
}
HttpResponse::MovedPermanently()
- .set_header("LOCATION", "/blog")
+ .insert_header(("LOCATION", "/"))
.finish()
}
#[post("/api/blog/posts/edit/{post_id}")]
-async fn blog_edit_post(
- web::Path(post_id): web::Path,
- form: Form,
-) -> impl Responder {
- let (valid, id) = id_valid(post_id);
- if valid && *CONFIG_MAP.read().unwrap().get("SUBMIT_TOKEN").unwrap() == form.token {
+async fn blog_edit_post(post_id: web::Path, form: Form) -> impl Responder {
+ let (valid, id) = id_valid(post_id.into_inner());
+ if valid && CONFIG.submit_token == form.token {
edit_post_by_id(
id as i32,
&form.title.as_str(),
@@ -49,17 +46,17 @@ async fn blog_edit_post(
}
return HttpResponse::MovedPermanently()
- .set_header("LOCATION", "/blog")
+ .insert_header(("LOCATION", "/"))
.finish();
}
#[post("/api/blog/posts/delete/{post_id}")]
async fn blog_delete_post(
- web::Path(post_id): web::Path,
+ post_id: web::Path,
form: Form,
) -> impl Responder {
- let (valid, id) = id_valid(post_id);
- if valid && *CONFIG_MAP.read().unwrap().get("SUBMIT_TOKEN").unwrap() == form.token {
+ let (valid, id) = id_valid(post_id.into_inner());
+ if valid && CONFIG.submit_token == form.token {
println!("Deleted post: {}", id);
delete_post_by_id(id as i32);
} else {
@@ -68,17 +65,14 @@ async fn blog_delete_post(
}
return HttpResponse::MovedPermanently()
- .set_header("LOCATION", "/blog")
+ .insert_header(("LOCATION", "/"))
.finish();
}
#[post("/api/blog/posts/hide/{post_id}")]
-async fn blog_hide_post(
- web::Path(post_id): web::Path,
- form: Form,
-) -> impl Responder {
- let (valid, id) = id_valid(post_id);
- if valid && *CONFIG_MAP.read().unwrap().get("SUBMIT_TOKEN").unwrap() == form.token {
+async fn blog_hide_post(post_id: web::Path, form: Form) -> impl Responder {
+ let (valid, id) = id_valid(post_id.into_inner());
+ if valid && CONFIG.submit_token == form.token {
println!("Hid post: {}", id);
hide_post_by_id(id as i32);
} else {
@@ -87,7 +81,7 @@ async fn blog_hide_post(
}
return HttpResponse::MovedPermanently()
- .set_header("LOCATION", "/blog")
+ .insert_header(("LOCATION", "/"))
.finish();
}
diff --git a/site/src/config.rs b/site/src/config.rs
new file mode 100644
index 0000000..fcdd2b8
--- /dev/null
+++ b/site/src/config.rs
@@ -0,0 +1,83 @@
+use dotenvy::dotenv;
+use once_cell::sync::Lazy;
+
+pub const ENV_PREFIX: &str = "CL_";
+
+pub struct Config {
+ pub submit_token: String,
+ pub root_path: String,
+ pub username: String,
+ pub bind_port: String,
+ pub accounts: Accounts,
+}
+
+pub struct Accounts {
+ pub email: Option,
+ pub github: Option,
+ pub twitter: Option,
+ pub mastodon: Option,
+ pub discord: Option,
+ pub reddit: Option,
+}
+
+fn load_config() -> Config {
+ dotenv().expect(".env file not found");
+
+ // return config value or panic if not set
+ fn eval_required_conf(variable_name: String) -> String {
+ match std::env::var(variable_name.clone()) {
+ Ok(value) => {
+ println!("{}: {}", variable_name, value);
+ return value;
+ }
+ Err(_) => {
+ panic!("{} not set!", variable_name)
+ }
+ }
+ }
+
+ // return optional value
+ fn eval_optional_conf(variable_name: String, default_value: Option<&str>) -> Option {
+ match std::env::var(variable_name.clone()) {
+ Ok(value) => {
+ println!("{}: {}", variable_name, value);
+ return Some(value);
+ }
+ Err(_) => match default_value {
+ Some(val) => {
+ println!("Variable {variable_name} not set. Using default value: {val}.");
+ return Some(String::from(val));
+ }
+ None => {
+ println!("Variable {variable_name} not set. No default, leaving this empty.");
+ None
+ }
+ },
+ }
+ }
+
+ fn eval_conf_var(name: &str, required_var: bool, default: Option<&str>) -> Option {
+ if required_var {
+ Some(eval_required_conf(format!("{ENV_PREFIX}{name}")))
+ } else {
+ eval_optional_conf(format!("{ENV_PREFIX}{name}"), default)
+ }
+ }
+
+ Config {
+ submit_token: eval_conf_var("SUBMIT_TOKEN", true, None).unwrap(),
+ root_path: eval_conf_var("ROOT_PATH", false, Some("./content")).unwrap(),
+ username: eval_conf_var("USERNAME", true, None).unwrap(),
+ bind_port: eval_conf_var("BIND_PORT", false, Some("8000")).unwrap(),
+ accounts: Accounts {
+ email: eval_conf_var("EMAIL", false, None),
+ github: eval_conf_var("GITHUB_ACCOUNT", false, None),
+ discord: eval_conf_var("DISCORD_ACCOUNT", false, None),
+ twitter: eval_conf_var("TWITTER_ACCOUNT", false, None),
+ mastodon: eval_conf_var("MASTODON_ACCOUNT", false, None),
+ reddit: eval_conf_var("REDDIT_ACCOUNT", false, None),
+ },
+ }
+}
+
+pub static CONFIG: Lazy = Lazy::new(|| load_config());
diff --git a/site/src/db.rs b/site/src/db.rs
index a6484a7..02e41ec 100644
--- a/site/src/db.rs
+++ b/site/src/db.rs
@@ -4,11 +4,12 @@ mod schema;
use diesel::prelude::*;
use diesel::sqlite::SqliteConnection;
use models::*;
-use std::env;
+
+use crate::config::CONFIG;
/// Returns an SqliteConnection if connection successful.
fn establish_connection() -> SqliteConnection {
- let db_path = env::var("ROOT_PATH").unwrap() + "/db.sqlite3";
+ let db_path = CONFIG.root_path.clone() + "/db.sqlite3";
SqliteConnection::establish(&db_path)
.unwrap_or_else(|_| panic!("Error, connection to {} failed.", &db_path))
}
@@ -16,33 +17,33 @@ fn establish_connection() -> SqliteConnection {
/// Returns all posts
pub fn get_all_posts() -> std::vec::Vec {
use schema::posts::dsl::*;
- let connection = establish_connection();
+ let mut connection = establish_connection();
posts
.filter(published.eq(true))
.order(id.desc())
- .load::(&connection)
+ .load::(&mut connection)
.expect("Error, couldn't load posts.")
}
/// Returns the last five posts.
pub fn get_last_five_posts() -> std::vec::Vec {
use schema::posts::dsl::*;
- let connection = establish_connection();
+ let mut connection = establish_connection();
posts
.filter(published.eq(true))
.order(id.desc())
.limit(5)
- .load::(&connection)
+ .load::(&mut connection)
.expect("Error, couldn't load posts.")
}
/// Returns the post with the given ID.
pub fn get_post_by_id(post_id: i32) -> Post {
use schema::posts::dsl::*;
- let connection = establish_connection();
+ let mut connection = establish_connection();
posts
.find(post_id)
- .get_result(&connection)
+ .get_result(&mut connection)
.expect("Error, couldn't find post.")
}
@@ -51,7 +52,7 @@ pub fn create_post(title: &str, body: &str) {
use chrono::prelude::*;
use schema::posts;
- let connection = establish_connection();
+ let mut connection = establish_connection();
let new_post = NewPost {
title,
@@ -62,40 +63,40 @@ pub fn create_post(title: &str, body: &str) {
diesel::insert_into(posts::table)
.values(&new_post)
- .execute(&connection)
+ .execute(&mut connection)
.unwrap_or_else(|_| panic!("Error, couldn't insert new Post."));
}
/// Updates a post with the new title and body.
pub fn edit_post_by_id(post_id: i32, new_title: &str, new_body: &str) {
use schema::posts::dsl::*;
- let connection = establish_connection();
+ let mut connection = establish_connection();
diesel::update(posts)
.filter(id.eq(post_id))
.set((title.eq(new_title), body.eq(new_body)))
- .execute(&connection)
+ .execute(&mut connection)
.expect("Error, couldn't update post.");
}
/// Deletes a post by id.
pub fn delete_post_by_id(post_id: i32) {
use schema::posts::dsl::*;
- let connection = establish_connection();
+ let mut connection = establish_connection();
diesel::delete(posts.filter(id.eq(post_id)))
- .execute(&connection)
+ .execute(&mut connection)
.expect("Error, couldn't update post.");
}
/// Sets the published bool of a post to false.
pub fn hide_post_by_id(post_id: i32) {
use schema::posts::dsl::*;
- let connection = establish_connection();
+ let mut connection = establish_connection();
diesel::update(posts)
.filter(id.eq(post_id))
.set(published.eq(false))
- .execute(&connection)
+ .execute(&mut connection)
.expect("Error, couldn't update post.");
}
diff --git a/site/src/db/models.rs b/site/src/db/models.rs
index ae5bbf0..94d518c 100644
--- a/site/src/db/models.rs
+++ b/site/src/db/models.rs
@@ -1,6 +1,7 @@
-use super::schema::posts;
+use crate::db::schema::posts;
use serde::{Deserialize, Serialize};
+
#[derive(Queryable, Serialize, Deserialize)]
pub struct Post {
pub id: i32,
@@ -11,7 +12,7 @@ pub struct Post {
}
#[derive(Insertable)]
-#[table_name = "posts"]
+#[diesel(table_name = posts)]
pub struct NewPost<'a> {
pub title: &'a str,
pub body: &'a str,
diff --git a/site/src/main.rs b/site/src/main.rs
index ad7d5a1..5be401f 100644
--- a/site/src/main.rs
+++ b/site/src/main.rs
@@ -1,4 +1,5 @@
mod api;
+mod config;
mod db;
mod routes;
@@ -9,88 +10,22 @@ extern crate serde_derive;
extern crate tera;
use actix_files as fs;
-use actix_web::{middleware::Logger, App, HttpServer};
+use actix_web::{middleware::Logger, web::Data, App, HttpServer};
+use config::CONFIG;
use env_logger::Env;
-use once_cell::sync::Lazy;
-use std::{collections::HashMap, env, sync::RwLock};
use tera::Tera;
-pub static CONFIG_MAP: Lazy>> = Lazy::new(|| {
- let mut config: HashMap = HashMap::new();
-
- let required_env_vars = [
- "SUBMIT_TOKEN",
- "ROOT_PATH",
- "USERNAME",
- "EMAIL",
- "BIND_PORT",
- ];
-
- let optional_env_vars = [
- "GITHUB_ACCOUNT",
- "TWITTER_ACCOUNT",
- "MASTODON_ACCOUNT",
- "DISCORD_ACCOUNT",
- "REDDIT_ACCOUNT",
- ];
-
- // Test if variable is set. If not, panic.
- let mut insert_required_env = |env: &str| {
- let env_string = String::from(env);
- config.insert(
- env_string.clone(), // env var name
- env::var(env_string).expect(format!("`{}` variable not set.", env).as_str()), // env var content
- )
- };
-
- for var in required_env_vars.iter() {
- insert_required_env(var);
- }
-
- // Test if variable is set. If it is insert into config.
- let mut insert_optional_env = |env: &str| {
- if let Ok(var_content) = env::var(String::from(env)) {
- config.insert(String::from(env), var_content.clone());
- }
- };
-
- for var in optional_env_vars.iter() {
- insert_optional_env(var);
- }
-
- // Print some info about the current configuration
- println!("Submit token = `{}`", config.get("SUBMIT_TOKEN").unwrap());
- println!(
- "Current working directory = `{}`",
- env::current_dir().unwrap().to_str().unwrap()
- );
- println!("Root path = `{}`", config.get("ROOT_PATH").unwrap());
- println!(
- "Template path = `{}/templates/*`",
- config.get("ROOT_PATH").unwrap()
- );
- println!("Launching on 0.0.0.0:{}", config.get("BIND_PORT").unwrap());
- RwLock::new(config)
-});
-
#[actix_web::main]
async fn main() -> std::io::Result<()> {
- HttpServer::new(|| {
- let mut tera = Tera::new(
- format!(
- "{}{}",
- CONFIG_MAP.read().unwrap().get("ROOT_PATH").unwrap(),
- "/templates/*"
- )
- .as_str(),
- )
- .unwrap();
+ HttpServer::new(move || {
+ let mut tera =
+ Tera::new(format!("{}{}", CONFIG.root_path, "/templates/*").as_str()).unwrap();
tera.autoescape_on(vec![".sql"]);
- env_logger::Builder::from_env(Env::default().default_filter_or("info"));
+ env_logger::Builder::from_env(Env::default().default_filter_or("debug"));
App::new()
- .data(tera)
+ .app_data(Data::new(tera))
.service(routes::about)
.service(routes::blog)
.service(routes::blog_all)
@@ -105,18 +40,11 @@ async fn main() -> std::io::Result<()> {
.service(api::blog_delete_post)
.service(fs::Files::new(
"/static",
- format!(
- "{}{}",
- CONFIG_MAP.read().unwrap().get("ROOT_PATH").unwrap(),
- "/static"
- ),
+ format!("{}{}", CONFIG.root_path, "/static"),
))
.wrap(Logger::new("%a %r %t"))
})
- .bind(format!(
- "0.0.0.0:{}",
- CONFIG_MAP.read().unwrap().get("BIND_PORT").unwrap()
- ))?
+ .bind(format!("0.0.0.0:{}", CONFIG.bind_port))?
.run()
.await
}
diff --git a/site/src/routes.rs b/site/src/routes.rs
index aadc38f..15c0071 100644
--- a/site/src/routes.rs
+++ b/site/src/routes.rs
@@ -1,6 +1,6 @@
use crate::db;
-use super::CONFIG_MAP;
+use super::CONFIG;
use actix_web::{error, get, http::StatusCode, web, Error, HttpResponse};
use tera::Context;
@@ -36,30 +36,36 @@ pub fn replace_br_tags(x: &str) -> String {
#[get("/about")]
async fn about(tmpl: web::Data) -> Result {
let mut context = Context::new();
- context.insert(
- "username",
- CONFIG_MAP.read().unwrap().get("USERNAME").unwrap(),
- );
- context.insert("email", CONFIG_MAP.read().unwrap().get("EMAIL").unwrap());
- if let Some(acc) = CONFIG_MAP.read().unwrap().get("GITHUB_ACCOUNT") {
- context.insert("github_account", acc);
- }
- if let Some(acc) = CONFIG_MAP.read().unwrap().get("TWITTER_ACCOUNT") {
- context.insert("twitter_account", acc);
- }
- if let Some(acc) = CONFIG_MAP.read().unwrap().get("MASTODON_ACCOUNT") {
- context.insert("mastodon_account", acc);
- }
- if let Some(acc) = CONFIG_MAP.read().unwrap().get("DISCORD_ACCOUNT") {
- context.insert("discord_account", acc);
- }
- if let Some(acc) = CONFIG_MAP.read().unwrap().get("REDDIT_ACCOUNT") {
- context.insert("reddit_account", acc);
+ context.insert("username", &CONFIG.username);
+ match &CONFIG.accounts.email {
+ Some(acc) => context.insert("email", &acc.replace("@", " (at) ")),
+ None => (),
}
+ match &CONFIG.accounts.github {
+ Some(acc) => context.insert("github_account", &acc),
+ None => (),
+ };
+ match &CONFIG.accounts.twitter {
+ Some(acc) => context.insert("twitter_account", &acc),
+ None => (),
+ };
+ match &CONFIG.accounts.mastodon {
+ Some(acc) => context.insert("mastodon_account", &acc),
+ None => (),
+ };
+ match &CONFIG.accounts.reddit {
+ Some(acc) => context.insert("reddit_account", &acc),
+ None => (),
+ };
+ match &CONFIG.accounts.discord {
+ Some(acc) => context.insert("discord_account", &acc),
+ None => (),
+ };
let result = tmpl
.render("about.html", &context)
- .map_err(|e| error::ErrorInternalServerError(format!("Template error\n{}", e)))?;
+ .map_err(|err| error::ErrorInternalServerError(err))
+ .unwrap();
Ok(HttpResponse::Ok().content_type("text/html").body(result))
}
@@ -70,14 +76,12 @@ async fn blog(tmpl: web::Data) -> Result {
let mut context = Context::new();
context.insert("posts", &posts);
- context.insert(
- "username",
- CONFIG_MAP.read().unwrap().get("USERNAME").unwrap(),
- );
+ context.insert("username", &CONFIG.username);
let result = tmpl
.render("blog.html", &context)
- .map_err(|_| error::ErrorInternalServerError("Template error"))?;
+ .map_err(|err| error::ErrorInternalServerError(err))
+ .unwrap();
Ok(HttpResponse::Ok().content_type("text/html").body(result))
}
@@ -88,14 +92,12 @@ async fn blog_all(tmpl: web::Data) -> Result {
let mut context = Context::new();
context.insert("posts", &posts);
- context.insert(
- "username",
- CONFIG_MAP.read().unwrap().get("USERNAME").unwrap(),
- );
+ context.insert("username", &CONFIG.username);
let result = tmpl
.render("blog-all-posts.html", &context)
- .map_err(|_| error::ErrorInternalServerError("Template error"))?;
+ .map_err(|err| error::ErrorInternalServerError(err))
+ .unwrap();
Ok(HttpResponse::Ok().content_type("text/html").body(result))
}
@@ -103,9 +105,9 @@ async fn blog_all(tmpl: web::Data) -> Result {
#[get("/id/{post_id}")]
async fn blog_by_id(
tmpl: web::Data,
- web::Path(post_id): web::Path,
+ post_id: web::Path, // web::Path(post_id): web::Path,
) -> Result {
- let (valid, id) = id_valid(post_id);
+ let (valid, id) = id_valid(post_id.into_inner());
if valid {
let post = db::get_post_by_id(id as i32);
@@ -114,15 +116,13 @@ async fn blog_by_id(
}
let mut context = Context::new();
+ context.insert("username", &CONFIG.username);
context.insert("post", &post);
- context.insert(
- "username",
- CONFIG_MAP.read().unwrap().get("USERNAME").unwrap(),
- );
let result = tmpl
.render("blog-by-id.html", &context)
- .map_err(|_| error::ErrorInternalServerError("Template error"))?;
+ .map_err(|err| error::ErrorInternalServerError(err))
+ .unwrap();
return Ok(HttpResponse::Ok().content_type("text/html").body(result));
} else {
@@ -138,7 +138,8 @@ async fn blog_submit(tmpl: web::Data) -> Result
let result = tmpl
.render("submit.html", &context)
- .map_err(|_| error::ErrorInternalServerError("Template error"))?;
+ .map_err(|err| error::ErrorInternalServerError(err))
+ .unwrap();
return Ok(HttpResponse::Ok().content_type("text/html").body(result));
}
@@ -147,14 +148,12 @@ async fn blog_submit(tmpl: web::Data) -> Result
async fn blog_edit(tmpl: web::Data) -> Result {
let mut context = Context::new();
context.insert("posts", &db::get_all_posts());
- context.insert(
- "username",
- CONFIG_MAP.read().unwrap().get("USERNAME").unwrap(),
- );
+ context.insert("username", &CONFIG.username);
let result = tmpl
.render("edit.html", &context)
- .map_err(|_| error::ErrorInternalServerError("Template error"))?;
+ .map_err(|err| error::ErrorInternalServerError(err))
+ .unwrap();
Ok(HttpResponse::Ok().content_type("text/html").body(result))
}
@@ -162,9 +161,9 @@ async fn blog_edit(tmpl: web::Data) -> Result {
#[get("/edit/{post_id}")]
async fn blog_edit_by_id(
tmpl: web::Data,
- web::Path(post_id): web::Path,
+ post_id: web::Path,
) -> Result {
- let (valid, id) = id_valid(post_id);
+ let (valid, id) = id_valid(post_id.into_inner());
if valid {
let mut post = db::get_post_by_id(id as i32);
@@ -172,13 +171,13 @@ async fn blog_edit_by_id(
post.body = replace_br_tags(&post.body);
let mut context = Context::new();
- context.insert("title", &post.title);
- context.insert("body", &post.body);
- context.insert("id", &id);
+ context.insert("username", &CONFIG.username);
+ context.insert("post", &post);
let result = tmpl
.render("edit-form.html", &context)
- .map_err(|_| error::ErrorInternalServerError("Template error"))?;
+ .map_err(|err| error::ErrorInternalServerError(err))
+ .unwrap();
Ok(HttpResponse::Ok().content_type("text/html").body(result))
} else {
diff --git a/site/src/schema.rs b/site/src/schema.rs
deleted file mode 100644
index 22b279e..0000000
--- a/site/src/schema.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-table! {
- posts (id) {
- id -> Nullable,
- title -> Text,
- body -> Text,
- published -> Bool,
- publish_date -> Timestamp,
- }
-}