mirror of
https://github.com/stoatchat/stoatchat.git
synced 2026-07-06 03:06:04 +00:00
chore: migrate all local dependancies to workspace dependancies (#710)
* chore: start moving all deps to workspace deps
Signed-off-by: Zomatree <me@zomatree.live>
* chore: migrate all deps to workspace deps
Signed-off-by: Zomatree <me@zomatree.live>
* chore: add more dep groups
Signed-off-by: Zomatree <me@zomatree.live>
* fix: add migration to update existing files to be animated (#705)
* fix: add migration to update existing files to be animated
Signed-off-by: Zomatree <me@zomatree.live>
* Revert "fix: add migration to update existing files to be animated"
This reverts commit 4e1f1c116c.
Signed-off-by: Zomatree <me@zomatree.live>
* fix: calculate animated for existing files when fetched
Signed-off-by: Zomatree <me@zomatree.live>
---------
Signed-off-by: Zomatree <me@zomatree.live>
* fix: mise start + missing docker image (#564)
* fix: mise start + missing docker image
Signed-off-by: Damocles078 <hellodamocles078@gmail.com>
* fix: bump livekit version
Signed-off-by: Damocles <106018783+Damocles078@users.noreply.github.com>
---------
Signed-off-by: Damocles078 <hellodamocles078@gmail.com>
Signed-off-by: Tom <iamtomahawkx@gmail.com>
Signed-off-by: Damocles <106018783+Damocles078@users.noreply.github.com>
Co-authored-by: Tom <iamtomahawkx@gmail.com>
* docs: update donation link (#709)
Signed-off-by: Zomatree <me@zomatree.live>
* fix: remove usage of deprecated functions
Signed-off-by: Zomatree <me@zomatree.live>
---------
Signed-off-by: Zomatree <me@zomatree.live>
Signed-off-by: Damocles078 <hellodamocles078@gmail.com>
Signed-off-by: Tom <iamtomahawkx@gmail.com>
Signed-off-by: Damocles <106018783+Damocles078@users.noreply.github.com>
Co-authored-by: Damocles <106018783+Damocles078@users.noreply.github.com>
Co-authored-by: Tom <iamtomahawkx@gmail.com>
Co-authored-by: Paul Makles <me@insrt.uk>
This commit is contained in:
3771
Cargo.lock
generated
3771
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
169
Cargo.toml
169
Cargo.toml
@@ -1,5 +1,5 @@
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
resolver = "3"
|
||||
|
||||
members = [
|
||||
"crates/delta",
|
||||
@@ -20,24 +20,129 @@ lto = true
|
||||
[workspace.dependencies]
|
||||
# Async
|
||||
async-trait = "0.1.89"
|
||||
tokio = { version = "1.49.0", features = ["macros", "rt"] }
|
||||
tokio = "1.49.0"
|
||||
async-channel = "2.3.1"
|
||||
futures = "0.3.32"
|
||||
async-std = "1.8.0"
|
||||
async-tungstenite = "0.17.0"
|
||||
futures-locks = "0.7.1"
|
||||
async-lock = "2.8.0"
|
||||
async-recursion = "1.0.4"
|
||||
|
||||
# Error Handling
|
||||
anyhow = "1.0.100"
|
||||
thiserror = "2.0.18"
|
||||
sentry = "0.31.5"
|
||||
sentry-anyhow = "0.38.1"
|
||||
|
||||
# Other Utilities
|
||||
uuid = { version = "1.19.0", features = ["v4"] }
|
||||
# Data Validation
|
||||
regex = "1.12.3"
|
||||
validator = "0.16"
|
||||
|
||||
# Data Types
|
||||
uuid = "1.19.0"
|
||||
ulid = "1.2.1"
|
||||
nanoid = "0.4.0"
|
||||
typenum = "1.17.0"
|
||||
num_enum = "0.6.1"
|
||||
bitfield = "0.13.2"
|
||||
|
||||
# Time
|
||||
chrono = "0.4.15"
|
||||
iso8601-timestamp = "0.2.10"
|
||||
|
||||
# Data Collections
|
||||
lru = "0.16.3"
|
||||
indexmap = "2.13.1"
|
||||
dashmap = "5.2.0"
|
||||
moka = "0.12.8"
|
||||
lru_time_cache = "0.11.11"
|
||||
deadqueue = "0.2.4"
|
||||
|
||||
# Web scraping
|
||||
scraper = "0.20.0"
|
||||
encoding_rs = "0.8.34"
|
||||
|
||||
# Mail
|
||||
lettre = "0.10.0-alpha.4"
|
||||
|
||||
# HTTP Requests
|
||||
reqwest = "0.13.2"
|
||||
isahc = "1.7"
|
||||
|
||||
# Notifications
|
||||
fcm_v1 = "0.3.0"
|
||||
web-push = "0.10.0"
|
||||
revolt_a2 = "0.10"
|
||||
|
||||
# Parsing
|
||||
logos = "0.15"
|
||||
|
||||
# SVG rendering
|
||||
usvg = "0.44.0"
|
||||
resvg = "0.44.0"
|
||||
tiny-skia = "0.11.4"
|
||||
|
||||
# Logging
|
||||
log = "0.4.29"
|
||||
pretty_env_logger = "0.4.0"
|
||||
|
||||
# Redis
|
||||
redis-kiss = "0.1.4"
|
||||
fred = "8.0.1"
|
||||
|
||||
# Serialisation
|
||||
bincode = "1.3.3"
|
||||
serde_json = "1.0.79"
|
||||
rmp-serde = "1.0.0"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
strum_macros = "0.26.4"
|
||||
|
||||
# MongoDB
|
||||
bson = { version = "2.1.0" }
|
||||
mongodb = { version = "3.1.0" }
|
||||
|
||||
# S3
|
||||
aws-config = "1.5.5"
|
||||
aws-sdk-s3 = "1.46.0"
|
||||
|
||||
# Axum (HTTP server)
|
||||
axum-macros = "0.4.1"
|
||||
axum_typed_multipart = "0.12.1"
|
||||
axum = { version = "0.7.5", features = ["multipart"] }
|
||||
tower-http = { version = "0.5.2", features = ["cors", "trace"] }
|
||||
axum = "0.7.5"
|
||||
axum-extra = "0.9"
|
||||
tower-http = "0.5.2"
|
||||
|
||||
# Rocket (HTTP server)
|
||||
rocket = "0.5.1"
|
||||
rocket_empty = "0.1.1"
|
||||
revolt_rocket_okapi = "0.10.0"
|
||||
rocket_cors = { git = "https://github.com/lawliet89/rocket_cors", rev = "072d90359b23e9b291df6b672c07c93de9c46011" }
|
||||
rocket_authifier = "1.0.16"
|
||||
rocket_prometheus = "0.10.0-rc.3"
|
||||
|
||||
# Spec Generation
|
||||
utoipa = "4.2.3"
|
||||
revolt_okapi = "0.9.1"
|
||||
schemars = "0.8.8"
|
||||
utoipa-scalar = "0.1.0"
|
||||
|
||||
# Image Processing
|
||||
jxl-oxide = { version = "0.12.5", features = ["image"] }
|
||||
image = "0.25.9"
|
||||
jxl-oxide = "0.12.5"
|
||||
sha2 = "0.10.8"
|
||||
kamadak-exif = "0.5.4"
|
||||
webp = "0.3.0"
|
||||
image = "0.25.2" # avif encode requires dav1d system library: features = ["avif-native"]
|
||||
thumbhash = "0.1.0"
|
||||
|
||||
# File processing
|
||||
revolt_clamav-client = "0.1.5"
|
||||
simdutf8 = "0.1.4"
|
||||
|
||||
# Content type processing
|
||||
infer = "0.16.0"
|
||||
ffprobe = "0.4.0"
|
||||
imagesize = "0.13.0"
|
||||
|
||||
# OpenTelemetry
|
||||
tracing = "0.1.44"
|
||||
@@ -47,4 +152,50 @@ tracing-subscriber = { version = "0.3.22", features = [
|
||||
opentelemetry = { version = "0.31.0", features = ["logs"] }
|
||||
opentelemetry_sdk = { version = "0.31.0", features = ["logs"] }
|
||||
opentelemetry-otlp = { version = "0.31.0", features = ["logs"] }
|
||||
opentelemetry-appender-tracing = { version = "0.31.1" }
|
||||
opentelemetry-appender-tracing = "0.31.1"
|
||||
|
||||
# Authifier
|
||||
authifier = "1.0.16"
|
||||
|
||||
# RabbitMQ
|
||||
amqprs = "1.7.0"
|
||||
|
||||
# Voice
|
||||
livekit-api = "0.4.4"
|
||||
livekit-protocol = "0.7.4"
|
||||
livekit-runtime = "0.4.0"
|
||||
|
||||
# Other Utilities
|
||||
once_cell = "1.9.0"
|
||||
config = "0.13.3"
|
||||
cached = "0.44.0"
|
||||
rand = "0.8.5"
|
||||
base64 = "0.21.3"
|
||||
decancer = "1.6.2"
|
||||
linkify = "0.8.1"
|
||||
url-escape = "0.1.1"
|
||||
revolt_optional_struct = "0.2.0"
|
||||
unicode-segmentation = "1.10.1"
|
||||
querystring = "1.1.0"
|
||||
tempfile = "3.12.0"
|
||||
aes-gcm = "0.10.3"
|
||||
auto_ops = "0.3.0"
|
||||
url = "2.2.2"
|
||||
impl_ops = "0.1.1"
|
||||
lazy_static = "1.5.0"
|
||||
mime = "0.3.17"
|
||||
|
||||
# Build Dependencies
|
||||
vergen = "7.5.0"
|
||||
|
||||
# Local packages
|
||||
revolt-coalesced = { version = "0.12.0", path = "crates/core/coalesced" }
|
||||
revolt-config = { version = "0.12.0", path = "crates/core/config" }
|
||||
revolt-database = { version = "0.12.0", path = "crates/core/database" }
|
||||
revolt-files = { version = "0.12.0", path = "crates/core/files" }
|
||||
revolt-models = { version = "0.12.0", path = "crates/core/models" }
|
||||
revolt-parser = { version = "0.12.0", path = "crates/core/parser" }
|
||||
revolt-permissions = { version = "0.12.0", path = "crates/core/permissions" }
|
||||
revolt-presence = { version = "0.12.0", path = "crates/core/presence" }
|
||||
revolt-ratelimits = { version = "0.12.0", path = "crates/core/ratelimits" }
|
||||
revolt-result = { version = "0.12.0", path = "crates/core/result" }
|
||||
@@ -9,42 +9,38 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
# util
|
||||
log = "*"
|
||||
sentry = "0.31.5"
|
||||
lru = "0.7.6"
|
||||
ulid = "0.5.0"
|
||||
once_cell = "1.9.0"
|
||||
redis-kiss = "0.1.4"
|
||||
lru_time_cache = "0.11.11"
|
||||
async-channel = "2.3.1"
|
||||
log = { workspace = true }
|
||||
sentry = { workspace = true }
|
||||
lru = { workspace = true }
|
||||
ulid = { workspace = true }
|
||||
once_cell = { workspace = true }
|
||||
redis-kiss = { workspace = true }
|
||||
lru_time_cache = { workspace = true }
|
||||
async-channel = { workspace = true }
|
||||
|
||||
# parsing
|
||||
querystring = "1.1.0"
|
||||
regex = "1.11.1"
|
||||
querystring = { workspace = true }
|
||||
regex = { workspace = true }
|
||||
|
||||
# serde
|
||||
bincode = "1.3.3"
|
||||
serde_json = "1.0.79"
|
||||
rmp-serde = "1.0.0"
|
||||
serde = "1.0.136"
|
||||
bincode = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
rmp-serde = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
|
||||
# async
|
||||
futures = "0.3.21"
|
||||
async-tungstenite = { version = "0.17.0", features = ["async-std-runtime"] }
|
||||
async-std = { version = "1.8.0", features = [
|
||||
"tokio1",
|
||||
"tokio02",
|
||||
"attributes",
|
||||
] }
|
||||
futures = { workspace = true }
|
||||
async-tungstenite = { workspace = true, features = ["async-std-runtime"] }
|
||||
async-std = { workspace = true }
|
||||
|
||||
# core
|
||||
authifier = { version = "1.0.16" }
|
||||
revolt-result = { path = "../core/result" }
|
||||
revolt-models = { path = "../core/models" }
|
||||
revolt-config = { path = "../core/config" }
|
||||
revolt-database = { path = "../core/database", features = ["voice"] }
|
||||
revolt-permissions = { path = "../core/permissions" }
|
||||
revolt-presence = { path = "../core/presence", features = ["redis-is-patched"] }
|
||||
authifier = { workspace = true }
|
||||
revolt-result = { workspace = true }
|
||||
revolt-models = { workspace = true }
|
||||
revolt-config = { workspace = true }
|
||||
revolt-database = { workspace = true, features = ["voice"] }
|
||||
revolt-permissions = { workspace = true }
|
||||
revolt-presence = { workspace = true, features = ["redis-is-patched"] }
|
||||
|
||||
# redis
|
||||
fred = { version = "8.0.1", features = ["subscriber-client"] }
|
||||
fred = { workspace = true, features = ["subscriber-client"] }
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
use std::{
|
||||
collections::{HashMap, HashSet},
|
||||
sync::Arc,
|
||||
time::Duration,
|
||||
collections::{HashMap, HashSet}, num::NonZeroUsize, sync::Arc, time::Duration
|
||||
};
|
||||
|
||||
use async_std::sync::{Mutex, RwLock};
|
||||
@@ -57,7 +55,7 @@ impl Default for Cache {
|
||||
members: Default::default(),
|
||||
servers: Default::default(),
|
||||
|
||||
seen_events: LruCache::new(20),
|
||||
seen_events: LruCache::new(NonZeroUsize::new(20).unwrap()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,12 +15,12 @@ cache = ["dep:lru"]
|
||||
default = ["tokio"]
|
||||
|
||||
[dependencies]
|
||||
tokio = { version = "1.47.0", features = ["sync"], optional = true }
|
||||
indexmap = { version = "2.13.0", optional = true }
|
||||
lru = { version = "0.16.3", optional = true }
|
||||
tokio = { workspace = true, features = ["sync"], optional = true }
|
||||
indexmap = { workspace = true, optional = true }
|
||||
lru = { workspace = true, optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
tokio = { version = "1.47.0", features = [
|
||||
tokio = { workspace = true, features = [
|
||||
"rt",
|
||||
"rt-multi-thread",
|
||||
"macros",
|
||||
|
||||
@@ -18,24 +18,24 @@ default = ["test", "sentry"]
|
||||
|
||||
[dependencies]
|
||||
# Utility
|
||||
config = "0.13.3"
|
||||
cached = "0.44.0"
|
||||
once_cell = "1.18.0"
|
||||
config = { workspace = true }
|
||||
cached = { workspace = true }
|
||||
once_cell = { workspace = true }
|
||||
|
||||
# Serde
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde = { workspace = true }
|
||||
|
||||
# Async
|
||||
futures-locks = "0.7.1"
|
||||
async-std = { version = "1.8.0", features = ["attributes"], optional = true }
|
||||
futures-locks = { workspace = true }
|
||||
async-std = { workspace = true, features = ["attributes"], optional = true }
|
||||
|
||||
# Logging
|
||||
log = "0.4.14"
|
||||
pretty_env_logger = "0.4.0"
|
||||
log = { workspace = true }
|
||||
pretty_env_logger = { workspace = true }
|
||||
|
||||
# Sentry
|
||||
sentry = { version = "0.31.5", optional = true }
|
||||
sentry-anyhow = { version = "0.38.1", optional = true }
|
||||
sentry = { workspace = true, optional = true }
|
||||
sentry-anyhow = { workspace = true, optional = true }
|
||||
|
||||
# Core
|
||||
revolt-result = { version = "0.12.1", path = "../result", optional = true }
|
||||
revolt-result = { workspace = true, optional = true }
|
||||
|
||||
@@ -32,80 +32,71 @@ default = ["mongodb", "async-std-runtime", "tasks"]
|
||||
|
||||
[dependencies]
|
||||
# Core
|
||||
revolt-config = { version = "0.12.1", path = "../config", features = [
|
||||
"report-macros",
|
||||
] }
|
||||
revolt-result = { version = "0.12.1", path = "../result" }
|
||||
revolt-models = { version = "0.12.1", path = "../models", features = [
|
||||
"validator",
|
||||
] }
|
||||
revolt-presence = { version = "0.12.1", path = "../presence" }
|
||||
revolt-permissions = { version = "0.12.1", path = "../permissions", features = [
|
||||
"serde",
|
||||
"bson",
|
||||
] }
|
||||
revolt-parser = { version = "0.12.1", path = "../parser" }
|
||||
revolt-config = { workspace = true, features = ["report-macros"] }
|
||||
revolt-result = { workspace = true }
|
||||
revolt-models = { workspace = true, features = ["validator"] }
|
||||
revolt-presence = { workspace = true }
|
||||
revolt-permissions = { workspace = true, features = ["serde", "bson"] }
|
||||
revolt-parser = { workspace = true }
|
||||
|
||||
# Utility
|
||||
log = "0.4"
|
||||
lru = "0.11.0"
|
||||
rand = "0.8.5"
|
||||
ulid = "1.0.0"
|
||||
nanoid = "0.4.0"
|
||||
base64 = "0.21.3"
|
||||
once_cell = "1.17"
|
||||
indexmap = "1.9.1"
|
||||
decancer = "1.6.2"
|
||||
deadqueue = "0.2.4"
|
||||
linkify = { optional = true, version = "0.8.1" }
|
||||
url-escape = { optional = true, version = "0.1.1" }
|
||||
validator = { version = "0.16", features = ["derive"] }
|
||||
isahc = { optional = true, version = "1.7", features = ["json"] }
|
||||
log = { workspace = true }
|
||||
lru = { workspace = true }
|
||||
rand = { workspace = true }
|
||||
ulid = { workspace = true }
|
||||
nanoid = { workspace = true }
|
||||
base64 = { workspace = true }
|
||||
once_cell = { workspace = true }
|
||||
indexmap = { workspace = true }
|
||||
decancer = { workspace = true }
|
||||
deadqueue = { workspace = true }
|
||||
linkify = { workspace = true, optional = true }
|
||||
url-escape = { workspace = true, optional = true }
|
||||
validator = { workspace = true, features = ["derive"] }
|
||||
isahc = { workspace = true, features = ["json"], optional = true }
|
||||
|
||||
# Serialisation
|
||||
serde_json = "1"
|
||||
revolt_optional_struct = "0.2.0"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
iso8601-timestamp = { version = "0.2.10", features = ["serde", "bson"] }
|
||||
serde_json = { workspace = true }
|
||||
revolt_optional_struct = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
iso8601-timestamp = { workspace = true, features = ["serde", "bson"] }
|
||||
|
||||
# Events
|
||||
redis-kiss = { version = "0.1.4" }
|
||||
redis-kiss = { workspace = true }
|
||||
|
||||
# Database
|
||||
bson = { optional = true, version = "2.1.0" }
|
||||
mongodb = { optional = true, version = "3.1.0" }
|
||||
bson = { workspace = true, optional = true }
|
||||
mongodb = { workspace = true, optional = true }
|
||||
|
||||
# Database Migration
|
||||
unicode-segmentation = "1.10.1"
|
||||
regex = "1"
|
||||
unicode-segmentation = { workspace = true }
|
||||
regex = { workspace = true }
|
||||
|
||||
# Async Language Features
|
||||
futures = "0.3.19"
|
||||
async-lock = "2.8.0"
|
||||
async-trait = "0.1.51"
|
||||
async-recursion = "1.0.4"
|
||||
futures = { workspace = true }
|
||||
async-lock = { workspace = true }
|
||||
async-trait = { workspace = true }
|
||||
async-recursion = { workspace = true }
|
||||
|
||||
# Async
|
||||
async-std = { version = "1.8.0", features = ["attributes"], optional = true }
|
||||
async-std = { workspace = true, features = ["attributes"], optional = true }
|
||||
|
||||
# Axum Impl
|
||||
axum = { version = "0.7.5", optional = true }
|
||||
axum = { workspace = true, optional = true }
|
||||
|
||||
# Rocket Impl
|
||||
schemars = { version = "0.8.8", optional = true }
|
||||
rocket = { version = "0.5.1", default-features = false, features = [
|
||||
"json",
|
||||
], optional = true }
|
||||
revolt_okapi = { version = "0.9.1", optional = true }
|
||||
revolt_rocket_okapi = { version = "0.10.0", optional = true }
|
||||
schemars = { workspace = true, optional = true }
|
||||
rocket = { workspace = true, features = ["json"], optional = true }
|
||||
revolt_okapi = { workspace = true, optional = true }
|
||||
revolt_rocket_okapi = { workspace = true, optional = true }
|
||||
|
||||
# Authifier
|
||||
authifier = { version = "1.0.16" }
|
||||
authifier = { workspace = true }
|
||||
|
||||
# RabbitMQ
|
||||
amqprs = { version = "1.7.0" }
|
||||
amqprs = { workspace = true }
|
||||
|
||||
# Voice
|
||||
livekit-api = { version = "0.4.4", optional = true }
|
||||
livekit-protocol = { version = "0.4.0", optional = true }
|
||||
livekit-runtime = { version = "0.3.1", features = ["tokio"], optional = true }
|
||||
livekit-api = { workspace = true, optional = true }
|
||||
livekit-protocol = { workspace = true, optional = true }
|
||||
livekit-runtime = { workspace = true, features = ["tokio"], optional = true }
|
||||
|
||||
@@ -249,7 +249,7 @@ impl AbstractMessages for ReferenceDb {
|
||||
let mut messages = self.messages.lock().await;
|
||||
if let Some(message) = messages.get_mut(id) {
|
||||
if let Some(users) = message.reactions.get_mut(emoji) {
|
||||
users.remove(&user.to_string());
|
||||
users.swap_remove(&user.to_string());
|
||||
}
|
||||
|
||||
Ok(())
|
||||
@@ -262,7 +262,7 @@ impl AbstractMessages for ReferenceDb {
|
||||
async fn clear_reaction(&self, id: &str, emoji: &str) -> Result<()> {
|
||||
let mut messages = self.messages.lock().await;
|
||||
if let Some(message) = messages.get_mut(id) {
|
||||
message.reactions.remove(emoji);
|
||||
message.reactions.swap_remove(emoji);
|
||||
Ok(())
|
||||
} else {
|
||||
Err(create_error!(NotFound))
|
||||
|
||||
@@ -16,33 +16,33 @@ tracing = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
async-trait = { workspace = true }
|
||||
|
||||
ffprobe = "0.4.0"
|
||||
imagesize = "0.13.0"
|
||||
tempfile = "3.12.0"
|
||||
ffprobe = { workspace = true }
|
||||
imagesize = { workspace = true }
|
||||
tempfile = { workspace = true }
|
||||
|
||||
base64 = "0.22.1"
|
||||
aes-gcm = "0.10.3"
|
||||
typenum = "1.17.0"
|
||||
base64 = { workspace = true }
|
||||
aes-gcm = { workspace = true }
|
||||
typenum = { workspace = true }
|
||||
|
||||
aws-config = "1.5.5"
|
||||
aws-sdk-s3 = { version = "1.46.0", features = ["behavior-version-latest"] }
|
||||
aws-config = { workspace = true }
|
||||
aws-sdk-s3 = { workspace = true, features = ["behavior-version-latest"] }
|
||||
|
||||
revolt-config = { version = "0.12.1", path = "../config", features = [
|
||||
revolt-config = { workspace = true, features = [
|
||||
"report-macros",
|
||||
] }
|
||||
revolt-result = { version = "0.12.1", path = "../result" }
|
||||
revolt-result = { workspace = true }
|
||||
|
||||
# image processing
|
||||
jxl-oxide = { workspace = true }
|
||||
jxl-oxide = { workspace = true, features = ["image"] }
|
||||
image = { workspace = true }
|
||||
|
||||
# svg rendering
|
||||
usvg = "0.44.0"
|
||||
resvg = "0.44.0"
|
||||
tiny-skia = "0.11.4"
|
||||
usvg = { workspace = true }
|
||||
resvg = { workspace = true }
|
||||
tiny-skia = { workspace = true }
|
||||
|
||||
# encoding
|
||||
webp = "0.3.0"
|
||||
webp = { workspace = true }
|
||||
|
||||
[dev-dependencies]
|
||||
uuid = { workspace = true }
|
||||
uuid = { workspace = true, features = ["v4"] }
|
||||
|
||||
@@ -21,26 +21,26 @@ default = ["serde", "partials", "rocket"]
|
||||
|
||||
[dependencies]
|
||||
# Core
|
||||
revolt-config = { version = "0.12.1", path = "../config" }
|
||||
revolt-permissions = { version = "0.12.1", path = "../permissions" }
|
||||
revolt-config = { workspace = true }
|
||||
revolt-permissions = { workspace = true }
|
||||
|
||||
# Utility
|
||||
regex = "1.11"
|
||||
indexmap = "1.9.3"
|
||||
once_cell = "1.17.1"
|
||||
num_enum = "0.6.1"
|
||||
regex = { workspace = true }
|
||||
indexmap = { workspace = true }
|
||||
once_cell = { workspace = true }
|
||||
num_enum = { workspace = true }
|
||||
|
||||
# Rocket
|
||||
rocket = { optional = true, version = "0.5.0-rc.2", default-features = false }
|
||||
rocket = { workspace = true, optional = true }
|
||||
|
||||
# Serialisation
|
||||
revolt_optional_struct = { version = "0.2.0", optional = true }
|
||||
serde = { version = "1", features = ["derive"], optional = true }
|
||||
iso8601-timestamp = { version = "0.2.11", features = ["schema", "bson"] }
|
||||
revolt_optional_struct = { workspace = true, optional = true }
|
||||
serde = { workspace = true, optional = true }
|
||||
iso8601-timestamp = { workspace = true, features = ["schema", "bson"] }
|
||||
|
||||
# Spec Generation
|
||||
schemars = { version = "0.8.8", optional = true, features = ["indexmap1"] }
|
||||
utoipa = { version = "4.2.3", optional = true }
|
||||
schemars = { workspace = true, features = ["indexmap2"], optional = true }
|
||||
utoipa = { workspace = true, optional = true }
|
||||
|
||||
# Validation
|
||||
validator = { version = "0.16.0", optional = true, features = ["derive"] }
|
||||
validator = { workspace = true, features = ["derive"], optional = true }
|
||||
|
||||
@@ -8,4 +8,4 @@ description = "Revolt Backend: Message Parser"
|
||||
repository = "https://github.com/stoatchat/stoatchat"
|
||||
|
||||
[dependencies]
|
||||
logos = { version = "0.15" }
|
||||
logos = { workspace = true }
|
||||
|
||||
@@ -18,23 +18,23 @@ try-from-primitive = ["dep:num_enum"]
|
||||
|
||||
[dev-dependencies]
|
||||
# Async
|
||||
async-std = { version = "1.8.0", features = ["attributes"] }
|
||||
async-std = { workspace = true, features = ["attributes"] }
|
||||
|
||||
[dependencies]
|
||||
# Core
|
||||
revolt-result = { version = "0.12.1", path = "../result" }
|
||||
revolt-result = { workspace = true }
|
||||
|
||||
# Utility
|
||||
auto_ops = "0.3.0"
|
||||
once_cell = "1.17"
|
||||
num_enum = { version = "0.6.1", optional = true }
|
||||
auto_ops = { workspace = true }
|
||||
once_cell = { workspace = true }
|
||||
num_enum = { workspace = true, optional = true }
|
||||
|
||||
# Async
|
||||
async-trait = "0.1.51"
|
||||
async-trait = { workspace = true }
|
||||
|
||||
# Serialisation
|
||||
serde = { version = "1", features = ["derive"], optional = true }
|
||||
bson = { version = "2.1.0", optional = true }
|
||||
serde = { workspace = true, optional = true }
|
||||
bson = { workspace = true, optional = true }
|
||||
|
||||
# Spec Generation
|
||||
schemars = { version = "0.8.8", optional = true }
|
||||
schemars = { workspace = true, optional = true }
|
||||
|
||||
@@ -14,16 +14,16 @@ redis-is-patched = []
|
||||
|
||||
[dev-dependencies]
|
||||
# Async
|
||||
async-std = { version = "1.8.0", features = ["attributes"] }
|
||||
async-std = { workspace = true, features = ["attributes"] }
|
||||
|
||||
# Config for loading Redis URI
|
||||
revolt-config = { version = "0.12.1", path = "../config" }
|
||||
revolt-config = { workspace = true }
|
||||
|
||||
[dependencies]
|
||||
# Utility
|
||||
log = "0.4.17"
|
||||
rand = "0.8.5"
|
||||
once_cell = "1.17.1"
|
||||
log = { workspace = true }
|
||||
rand = { workspace = true }
|
||||
once_cell = { workspace = true }
|
||||
|
||||
# Redis
|
||||
redis-kiss = "0.1.4"
|
||||
redis-kiss = { workspace = true }
|
||||
|
||||
@@ -18,17 +18,17 @@ axum = ["dep:axum", "revolt-database/axum-impl"]
|
||||
default = ["rocket", "axum"]
|
||||
|
||||
[dependencies]
|
||||
revolt-database = { version = "0.12.1", path = "../database" }
|
||||
revolt-result = { version = "0.12.1", path = "../result" }
|
||||
revolt-config = { version = "0.12.1", path = "../config" }
|
||||
revolt-database = { workspace = true }
|
||||
revolt-result = { workspace = true }
|
||||
revolt-config = { workspace = true }
|
||||
|
||||
rocket = { version = "0.5.1", optional = true }
|
||||
revolt_rocket_okapi = { version = "0.10.0", optional = true }
|
||||
rocket = { workspace = true, optional = true }
|
||||
revolt_rocket_okapi = { workspace = true, optional = true }
|
||||
|
||||
axum = { version = "0.7.5", optional = true, features = ["macros"] }
|
||||
axum = { workspace = true, optional = true, features = ["macros"] }
|
||||
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
authifier = { version = "1.0.16" }
|
||||
dashmap = "5.2.0"
|
||||
async-trait = "0.1.81"
|
||||
log = "0.4"
|
||||
serde = { workspace = true }
|
||||
authifier = { workspace = true }
|
||||
dashmap = { workspace = true }
|
||||
async-trait = { workspace = true }
|
||||
log = { workspace = true }
|
||||
|
||||
@@ -22,21 +22,21 @@ default = ["serde", "sentry"]
|
||||
|
||||
[dependencies]
|
||||
# Serialisation
|
||||
serde_json = { version = "1", optional = true }
|
||||
serde = { version = "1", features = ["derive"], optional = true }
|
||||
serde_json = { workspace = true, optional = true }
|
||||
serde = { workspace = true, optional = true }
|
||||
|
||||
# Spec Generation
|
||||
schemars = { version = "0.8.8", optional = true }
|
||||
utoipa = { version = "4.2.3", optional = true }
|
||||
schemars = { workspace = true, optional = true }
|
||||
utoipa = { workspace = true, optional = true }
|
||||
|
||||
# Rocket
|
||||
rocket = { optional = true, version = "0.5.0-rc.2", default-features = false }
|
||||
revolt_rocket_okapi = { version = "0.10.0", optional = true }
|
||||
revolt_okapi = { version = "0.9.1", optional = true }
|
||||
rocket = { workspace = true, optional = true }
|
||||
revolt_rocket_okapi = { workspace = true, optional = true }
|
||||
revolt_okapi = { workspace = true, optional = true }
|
||||
|
||||
# utilities
|
||||
log = "0.4"
|
||||
log = { workspace = true }
|
||||
# Axum
|
||||
axum = { version = "0.7.5", optional = true }
|
||||
axum = { workspace = true, optional = true }
|
||||
|
||||
sentry = { version = "0.31.5", optional = true }
|
||||
sentry = { workspace = true, optional = true }
|
||||
|
||||
@@ -11,13 +11,13 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
# Utility
|
||||
log = "0.4"
|
||||
log = { workspace = true }
|
||||
|
||||
# Async
|
||||
tokio = { version = "1" }
|
||||
tokio = { workspace = true }
|
||||
|
||||
# Core
|
||||
revolt-database = { version = "0.12.1", path = "../../core/database" }
|
||||
revolt-result = { version = "0.12.1", path = "../../core/result" }
|
||||
revolt-config = { version = "0.12.1", path = "../../core/config" }
|
||||
revolt-files = { version = "0.12.1", path = "../../core/files" }
|
||||
revolt-database = { workspace = true }
|
||||
revolt-result = { workspace = true }
|
||||
revolt-config = { workspace = true }
|
||||
revolt-files = { workspace = true }
|
||||
|
||||
@@ -6,42 +6,35 @@ license = "AGPL-3.0-or-later"
|
||||
publish = false
|
||||
|
||||
[dependencies]
|
||||
revolt-result = { version = "0.12.1", path = "../../core/result" }
|
||||
revolt-config = { version = "0.12.1", path = "../../core/config", features = [
|
||||
"report-macros",
|
||||
"anyhow",
|
||||
] }
|
||||
revolt-database = { version = "0.12.1", path = "../../core/database" }
|
||||
revolt-models = { version = "0.12.1", path = "../../core/models", features = [
|
||||
"validator",
|
||||
] }
|
||||
revolt-presence = { version = "0.12.1", path = "../../core/presence", features = [
|
||||
"redis-is-patched",
|
||||
] }
|
||||
revolt-parser = { version = "0.12.1", path = "../../core/parser" }
|
||||
revolt-result = { workspace = true }
|
||||
revolt-config = { workspace = true, features = ["report-macros", "anyhow"] }
|
||||
revolt-database = { workspace = true }
|
||||
revolt-models = { workspace = true, features = ["validator"] }
|
||||
revolt-presence = { workspace = true, features = ["redis-is-patched"] }
|
||||
revolt-parser = { workspace = true }
|
||||
|
||||
anyhow = { version = "1.0.98" }
|
||||
anyhow = { workspace = true }
|
||||
|
||||
amqprs = { version = "1.7.0" }
|
||||
fcm_v1 = "0.3.0"
|
||||
web-push = "0.10.0"
|
||||
isahc = { optional = true, version = "1.7", features = ["json"] }
|
||||
revolt_a2 = { version = "0.10", default-features = false, features = ["ring"] }
|
||||
redis-kiss = "0.1.4"
|
||||
tokio = "1.39.2"
|
||||
async-trait = "0.1.81"
|
||||
ulid = "1.0.0"
|
||||
amqprs = { workspace = true }
|
||||
fcm_v1 = { workspace = true }
|
||||
web-push = { workspace = true }
|
||||
isahc = { workspace = true, features = ["json"], optional = true }
|
||||
revolt_a2 = { workspace = true, features = ["ring"] }
|
||||
redis-kiss = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
async-trait = { workspace = true }
|
||||
ulid = { workspace = true }
|
||||
|
||||
authifier = "1.0.16"
|
||||
authifier = { workspace = true }
|
||||
|
||||
log = "0.4.11"
|
||||
pretty_env_logger = "0.4.0"
|
||||
log = { workspace = true }
|
||||
pretty_env_logger = { workspace = true }
|
||||
|
||||
regex = "1.12.3"
|
||||
regex = { workspace = true }
|
||||
|
||||
#serialization
|
||||
serde_json = "1"
|
||||
revolt_optional_struct = "0.2.0"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
iso8601-timestamp = { version = "0.2.10", features = ["serde", "bson"] }
|
||||
base64 = "0.22.1"
|
||||
serde_json = { workspace = true }
|
||||
revolt_optional_struct = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
iso8601-timestamp = { workspace = true, features = ["serde", "bson"] }
|
||||
base64 = { workspace = true }
|
||||
|
||||
@@ -9,41 +9,41 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
# util
|
||||
log = "*"
|
||||
sentry = "0.31.5"
|
||||
lru = "0.7.6"
|
||||
ulid = "0.5.0"
|
||||
redis-kiss = "0.1.4"
|
||||
chrono = "0.4.15"
|
||||
log = { workspace = true }
|
||||
sentry = { workspace = true }
|
||||
lru = { workspace = true }
|
||||
ulid = { workspace = true }
|
||||
redis-kiss = { workspace = true }
|
||||
chrono = { workspace = true }
|
||||
|
||||
# Serde
|
||||
serde_json = "1.0.79"
|
||||
rmp-serde = "1.0.0"
|
||||
serde = "1.0.136"
|
||||
serde_json = { workspace = true }
|
||||
rmp-serde = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
|
||||
# Http
|
||||
rocket = { version = "0.5.0-rc.2", features = ["json"] }
|
||||
rocket_empty = "0.1.1"
|
||||
rocket = { workspace = true, features = ["json"] }
|
||||
rocket_empty = { workspace = true }
|
||||
|
||||
# Async
|
||||
futures = "0.3.21"
|
||||
async-std = { version = "1.8.0", features = [
|
||||
futures = { workspace = true }
|
||||
async-std = { workspace = true, features = [
|
||||
"tokio1",
|
||||
"tokio02",
|
||||
"attributes",
|
||||
] }
|
||||
|
||||
# Core
|
||||
revolt-result = { path = "../../core/result" }
|
||||
revolt-models = { path = "../../core/models" }
|
||||
revolt-config = { path = "../../core/config" }
|
||||
revolt-database = { path = "../../core/database", features = ["voice"] }
|
||||
revolt-permissions = { path = "../../core/permissions" }
|
||||
revolt-result = { workspace = true, features = ["rocket"] }
|
||||
revolt-models = { workspace = true }
|
||||
revolt-config = { workspace = true }
|
||||
revolt-database = { workspace = true, features = ["voice"] }
|
||||
revolt-permissions = { workspace = true }
|
||||
|
||||
# Voice
|
||||
livekit-api = "0.4.4"
|
||||
livekit-protocol = "0.4.0"
|
||||
livekit-runtime = { version = "0.3.1", features = ["tokio"] }
|
||||
livekit-api = { workspace = true }
|
||||
livekit-protocol = { workspace = true }
|
||||
livekit-runtime = { workspace = true, features = ["tokio"] }
|
||||
|
||||
# RabbitMQ
|
||||
amqprs = { version = "1.7.0" }
|
||||
amqprs = { workspace = true }
|
||||
|
||||
@@ -10,84 +10,83 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
# Test
|
||||
rand = "0.8.5"
|
||||
redis-kiss = "0.1.4"
|
||||
rand = { workspace = true }
|
||||
redis-kiss = { workspace = true }
|
||||
|
||||
# Utility
|
||||
lru = "0.7.0"
|
||||
url = "2.2.2"
|
||||
log = "0.4.11"
|
||||
dashmap = "5.2.0"
|
||||
linkify = "0.6.0"
|
||||
once_cell = "1.17.1"
|
||||
env_logger = "0.7.1"
|
||||
lru = { workspace = true }
|
||||
url = { workspace = true }
|
||||
log = { workspace = true }
|
||||
dashmap = { workspace = true }
|
||||
linkify = { workspace = true }
|
||||
once_cell = { workspace = true }
|
||||
|
||||
# Lang. Utilities
|
||||
regex = "1"
|
||||
num_enum = "0.5.1"
|
||||
impl_ops = "0.1.1"
|
||||
bitfield = "0.13.2"
|
||||
regex = { workspace = true }
|
||||
num_enum = { workspace = true }
|
||||
impl_ops = { workspace = true }
|
||||
bitfield = { workspace = true }
|
||||
|
||||
# ID / key generation
|
||||
ulid = "0.4.1"
|
||||
nanoid = "0.4.0"
|
||||
ulid = { workspace = true }
|
||||
nanoid = { workspace = true }
|
||||
|
||||
# serde
|
||||
serde_json = "1.0.57"
|
||||
serde = { version = "1.0.115", features = ["derive"] }
|
||||
validator = { version = "0.16", features = ["derive"] }
|
||||
iso8601-timestamp = { version = "0.2.11", features = [] }
|
||||
serde_json = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
validator = { workspace = true, features = ["derive"] }
|
||||
iso8601-timestamp = { workspace = true }
|
||||
|
||||
# async
|
||||
futures = "0.3.8"
|
||||
chrono = "0.4.15"
|
||||
async-channel = "1.6.1"
|
||||
reqwest = { version = "0.11.4", features = ["json"] }
|
||||
async-std = { version = "1.8.0", features = [
|
||||
futures = { workspace = true }
|
||||
chrono = { workspace = true }
|
||||
async-channel = { workspace = true }
|
||||
reqwest = { workspace = true, features = ["json"] }
|
||||
async-std = { workspace = true, features = [
|
||||
"tokio1",
|
||||
"tokio02",
|
||||
"attributes",
|
||||
] }
|
||||
|
||||
# internal util
|
||||
lettre = "0.10.0-alpha.4"
|
||||
lettre = { workspace = true }
|
||||
|
||||
# web
|
||||
|
||||
rocket = { version = "0.5.1", default-features = false, features = ["json"] }
|
||||
rocket_cors = { git = "https://github.com/lawliet89/rocket_cors", rev = "072d90359b23e9b291df6b672c07c93de9c46011" }
|
||||
rocket_empty = { version = "0.1.1", features = ["schema"] }
|
||||
rocket_authifier = { version = "1.0.16" }
|
||||
rocket_prometheus = "0.10.0-rc.3"
|
||||
rocket = { workspace = true, features = ["json"] }
|
||||
rocket_cors = { workspace = true }
|
||||
rocket_empty = { workspace = true, features = ["schema"] }
|
||||
rocket_authifier = { workspace = true }
|
||||
rocket_prometheus = { workspace = true }
|
||||
|
||||
# spec generation
|
||||
schemars = "0.8.8"
|
||||
revolt_rocket_okapi = { version = "0.10.0", features = ["swagger"] }
|
||||
schemars = { workspace = true }
|
||||
revolt_rocket_okapi = { workspace = true, features = ["swagger"] }
|
||||
|
||||
# rabbit
|
||||
amqprs = { version = "1.7.0" }
|
||||
amqprs = { workspace = true }
|
||||
|
||||
# core
|
||||
authifier = "1.0.16"
|
||||
revolt-config = { path = "../core/config" }
|
||||
revolt-database = { path = "../core/database", features = [
|
||||
authifier = { workspace = true }
|
||||
revolt-config = { workspace = true }
|
||||
revolt-database = { workspace = true, features = [
|
||||
"rocket-impl",
|
||||
"redis-is-patched",
|
||||
"voice",
|
||||
] }
|
||||
revolt-models = { path = "../core/models", features = [
|
||||
revolt-models = { workspace = true, features = [
|
||||
"schemas",
|
||||
"validator",
|
||||
"rocket",
|
||||
] }
|
||||
revolt-presence = { path = "../core/presence" }
|
||||
revolt-result = { path = "../core/result", features = ["rocket", "okapi"] }
|
||||
revolt-permissions = { path = "../core/permissions", features = ["schemas"] }
|
||||
revolt-ratelimits = { path = "../core/ratelimits", features = ["rocket"] }
|
||||
revolt-presence = { workspace = true }
|
||||
revolt-result = { workspace = true, features = ["rocket", "okapi"] }
|
||||
revolt-permissions = { workspace = true, features = ["schemas"] }
|
||||
revolt-ratelimits = { workspace = true, features = ["rocket"] }
|
||||
|
||||
# voice
|
||||
livekit-api = "0.4.4"
|
||||
livekit-protocol = "0.4.0"
|
||||
livekit-api = { workspace = true }
|
||||
livekit-protocol = { workspace = true }
|
||||
|
||||
[build-dependencies]
|
||||
vergen = "7.5.0"
|
||||
vergen = { workspace = true }
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use chrono::Utc;
|
||||
use std::time::Duration;
|
||||
|
||||
use revolt_database::{
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference},
|
||||
Database, Message, User,
|
||||
@@ -36,10 +37,9 @@ pub async fn bulk_delete_messages(
|
||||
if ulid::Ulid::from_string(id)
|
||||
.map_err(|_| create_error!(InvalidOperation))?
|
||||
.datetime()
|
||||
.signed_duration_since(Utc::now())
|
||||
.num_days()
|
||||
.abs()
|
||||
> 7
|
||||
.elapsed()
|
||||
.expect("Time went backwards")
|
||||
> Duration::from_hours(7 * 24) // 7 days
|
||||
{
|
||||
return Err(create_error!(InvalidOperation));
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use chrono::{Duration, Utc};
|
||||
use std::time::Duration;
|
||||
|
||||
use redis_kiss::{get_connection, redis, AsyncCommands};
|
||||
use revolt_database::util::permissions::DatabasePermissionQuery;
|
||||
use revolt_database::{
|
||||
@@ -111,8 +112,12 @@ pub async fn message_send(
|
||||
// Disallow mentions for new users (TRUST-0: <12 hours age) in public servers
|
||||
let allow_mentions = if let Some(server) = query.server_ref() {
|
||||
if server.discoverable {
|
||||
(Utc::now() - ulid::Ulid::from_string(&user.id).unwrap().datetime())
|
||||
>= Duration::hours(12)
|
||||
(ulid::Ulid::from_string(&user.id)
|
||||
.unwrap()
|
||||
.datetime()
|
||||
.elapsed()
|
||||
.expect("Time went backwards"))
|
||||
>= Duration::from_hours(12)
|
||||
} else {
|
||||
true
|
||||
}
|
||||
|
||||
@@ -7,62 +7,57 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
# ID generation
|
||||
ulid = "1.1.3"
|
||||
nanoid = "0.4.0"
|
||||
ulid = { workspace = true }
|
||||
nanoid = { workspace = true }
|
||||
|
||||
# Media processing
|
||||
webp = "0.3.0"
|
||||
sha2 = "0.10.8"
|
||||
jxl-oxide = "0.8.1"
|
||||
kamadak-exif = "0.5.4"
|
||||
webp = { workspace = true }
|
||||
sha2 = { workspace = true }
|
||||
jxl-oxide = { workspace = true }
|
||||
kamadak-exif = { workspace = true }
|
||||
# revolt_little_exif = "0.5.1"
|
||||
image = { version = "0.25.2" } # avif encode requires dav1d system library: features = ["avif-native"]
|
||||
thumbhash = "0.1.0"
|
||||
image = { workspace = true }
|
||||
thumbhash = { workspace = true }
|
||||
|
||||
# File processing
|
||||
revolt_clamav-client = { version = "0.1.5" }
|
||||
simdutf8 = { version = "0.1.4", features = ["aarch64_neon"] }
|
||||
revolt_clamav-client = { workspace = true }
|
||||
simdutf8 = { workspace = true, features = ["aarch64_neon"] }
|
||||
|
||||
# Content type processing
|
||||
infer = "0.16.0"
|
||||
ffprobe = "0.4.0"
|
||||
imagesize = "0.13.0"
|
||||
infer = { workspace = true }
|
||||
ffprobe = { workspace = true }
|
||||
imagesize = { workspace = true }
|
||||
|
||||
# Utility
|
||||
lazy_static = "1.5.0"
|
||||
moka = { version = "0.12.8", features = ["future"] }
|
||||
lazy_static = { workspace = true }
|
||||
moka = { workspace = true, features = ["future"] }
|
||||
|
||||
# Serialisation
|
||||
strum_macros = "0.26.4"
|
||||
serde_json = "1.0.68"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
strum_macros = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
|
||||
# Async runtime
|
||||
tokio = { version = "1.0", features = ["full"] }
|
||||
tokio = { workspace = true, features = ["full"] }
|
||||
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||
tracing = { workspace = true }
|
||||
tracing-subscriber = { workspace = true }
|
||||
|
||||
# Core crates
|
||||
revolt-files = { version = "0.12.1", path = "../../core/files" }
|
||||
revolt-config = { version = "0.12.1", path = "../../core/config" }
|
||||
revolt-database = { version = "0.12.1", path = "../../core/database", features = [
|
||||
"axum-impl",
|
||||
] }
|
||||
revolt-result = { version = "0.12.1", path = "../../core/result", features = [
|
||||
"utoipa",
|
||||
"axum",
|
||||
] }
|
||||
revolt-ratelimits = { version = "0.12.1", path = "../../core/ratelimits", features = ["axum"] }
|
||||
revolt-files = { workspace = true }
|
||||
revolt-config = { workspace = true }
|
||||
revolt-database = { workspace = true, features = ["axum-impl"] }
|
||||
revolt-result = { workspace = true, features = ["utoipa", "axum"] }
|
||||
revolt-ratelimits = { workspace = true, features = ["axum"] }
|
||||
|
||||
# Axum / web server
|
||||
tempfile = "3.12.0"
|
||||
axum-macros = "0.4.1"
|
||||
axum_typed_multipart = "0.12.1"
|
||||
axum = { version = "0.7.5", features = ["multipart"] }
|
||||
tower-http = { version = "0.5.2", features = ["cors"] }
|
||||
tempfile = { workspace = true }
|
||||
axum-macros = { workspace = true }
|
||||
axum_typed_multipart = { workspace = true }
|
||||
axum = { workspace = true, features = ["multipart"] }
|
||||
tower-http = { workspace = true, features = ["cors"] }
|
||||
|
||||
# OpenAPI & documentation generation
|
||||
utoipa-scalar = { version = "0.1.0", features = ["axum"] }
|
||||
utoipa = { version = "4.2.3", features = ["axum_extras", "ulid"] }
|
||||
utoipa-scalar = { workspace = true, features = ["axum"] }
|
||||
utoipa = { workspace = true, features = ["axum_extras", "ulid"] }
|
||||
|
||||
@@ -7,43 +7,34 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
# Serialisation
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
serde_json = "1.0.68"
|
||||
serde = { workspace = true, features = ["rc"] }
|
||||
serde_json = { workspace = true }
|
||||
|
||||
# Async runtime
|
||||
tokio = { version = "1.0", features = ["full"] }
|
||||
tokio = { workspace = true, features = [] }
|
||||
|
||||
# Web requests
|
||||
reqwest = { version = "0.12", features = ["json"] }
|
||||
reqwest = { workspace = true, features = ["json", "query"] }
|
||||
|
||||
# Core crates
|
||||
revolt-config = { version = "0.12.1", path = "../../core/config" }
|
||||
revolt-models = { version = "0.12.1", path = "../../core/models" }
|
||||
revolt-result = { version = "0.12.1", path = "../../core/result", features = [
|
||||
"utoipa",
|
||||
"axum",
|
||||
] }
|
||||
revolt-coalesced = { version = "0.12.1", path = "../../core/coalesced", features = [
|
||||
"queue",
|
||||
] }
|
||||
revolt-database = { version = "0.12.1", path = "../../core/database", features = [
|
||||
"axum-impl",
|
||||
] }
|
||||
revolt-ratelimits = { version = "0.12.1", path = "../../core/ratelimits", features = [
|
||||
"axum",
|
||||
] }
|
||||
revolt-config = { workspace = true }
|
||||
revolt-models = { workspace = true }
|
||||
revolt-result = { workspace = true, features = ["utoipa", "axum"] }
|
||||
revolt-coalesced = { workspace = true, features = ["queue"] }
|
||||
revolt-database = { workspace = true, features = ["axum-impl"] }
|
||||
revolt-ratelimits = { workspace = true, features = ["axum"] }
|
||||
|
||||
# Axum / web server
|
||||
axum = { version = "0.7.5" }
|
||||
axum-extra = { version = "0.9", features = ["typed-header"] }
|
||||
tower-http = { version = "0.5.2", features = ["cors"] }
|
||||
axum = { workspace = true }
|
||||
axum-extra = { workspace = true, features = ["typed-header"] }
|
||||
tower-http = { workspace = true, features = ["cors"] }
|
||||
|
||||
# OpenAPI & documentation generation
|
||||
utoipa-scalar = { version = "0.1.0", features = ["axum"] }
|
||||
utoipa = { version = "4.2.3", features = ["axum_extras", "ulid"] }
|
||||
utoipa-scalar = { workspace = true, features = ["axum"] }
|
||||
utoipa = { workspace = true, features = ["axum_extras", "ulid"] }
|
||||
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
tracing = { workspace = true }
|
||||
|
||||
# Utils
|
||||
lru_time_cache = "0.11.11"
|
||||
lru_time_cache = { workspace = true }
|
||||
|
||||
@@ -7,44 +7,41 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
# Utility
|
||||
mime = "0.3.17"
|
||||
regex = "1.11.0"
|
||||
tempfile = "3.13.0"
|
||||
lazy_static = "1.5.0"
|
||||
moka = { version = "0.12.8", features = ["future"] }
|
||||
mime = { workspace = true }
|
||||
regex = { workspace = true }
|
||||
tempfile = { workspace = true }
|
||||
lazy_static = { workspace = true }
|
||||
moka = { workspace = true, features = ["future"] }
|
||||
|
||||
# Web scraping
|
||||
scraper = "0.20.0"
|
||||
encoding_rs = "0.8.34"
|
||||
scraper = { workspace = true }
|
||||
encoding_rs = { workspace = true }
|
||||
|
||||
# Serialisation
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0.68"
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
|
||||
# Async runtime
|
||||
async-recursion = "1.1.1"
|
||||
tokio = { version = "1.0", features = ["full"] }
|
||||
async-recursion = { workspace = true }
|
||||
tokio = { workspace = true, features = [] }
|
||||
|
||||
# Web requests
|
||||
reqwest = { version = "0.12", features = ["json"] }
|
||||
reqwest = { workspace = true, features = ["json"] }
|
||||
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||
tracing = { workspace = true }
|
||||
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
||||
|
||||
# Core crates
|
||||
revolt-config = { version = "0.12.1", path = "../../core/config" }
|
||||
revolt-models = { version = "0.12.1", path = "../../core/models" }
|
||||
revolt-result = { version = "0.12.1", path = "../../core/result", features = [
|
||||
"utoipa",
|
||||
"axum",
|
||||
] }
|
||||
revolt-files = { version = "0.12.1", path = "../../core/files" }
|
||||
revolt-config = { workspace = true }
|
||||
revolt-models = { workspace = true }
|
||||
revolt-result = { workspace = true, features = ["utoipa", "axum"] }
|
||||
revolt-files = { workspace = true }
|
||||
|
||||
# Axum / web server
|
||||
axum = { version = "0.7.5" }
|
||||
axum-extra = { version = "0.9", features = ["typed-header"] }
|
||||
axum = { workspace = true }
|
||||
axum-extra = { workspace = true, features = ["typed-header"] }
|
||||
|
||||
# OpenAPI & documentation generation
|
||||
utoipa-scalar = { version = "0.1.0", features = ["axum"] }
|
||||
utoipa = { version = "4.2.3", features = ["axum_extras", "ulid"] }
|
||||
utoipa-scalar = { workspace = true, features = ["axum"] }
|
||||
utoipa = { workspace = true, features = ["axum_extras", "ulid"] }
|
||||
|
||||
@@ -30,76 +30,21 @@
|
||||
"path": "crates/core/config/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/config/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/database/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/database/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/database/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/database/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-models'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/database/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-presence'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/database/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-permissions'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/database/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-parser'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/files/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/files/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/files/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/models/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/models/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/models/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-permissions'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/parser/Cargo.toml",
|
||||
@@ -110,41 +55,16 @@
|
||||
"path": "crates/core/permissions/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/permissions/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/presence/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/presence/Cargo.toml",
|
||||
"jsonpath": "$['dev-dependencies']['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/ratelimits/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/ratelimits/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-database'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/ratelimits/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/ratelimits/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/core/result/Cargo.toml",
|
||||
@@ -155,61 +75,11 @@
|
||||
"path": "crates/daemons/crond/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/crond/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-database'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/crond/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/crond/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/crond/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-files'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/pushd/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/pushd/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/pushd/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/pushd/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-database'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/pushd/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-models'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/pushd/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-presence'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/pushd/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-parser'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/daemons/voice-ingress/Cargo.toml",
|
||||
@@ -220,66 +90,11 @@
|
||||
"path": "crates/services/autumn/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/autumn/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-files'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/autumn/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/autumn/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-database'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/autumn/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/autumn/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-ratelimits'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/gifbox/Cargo.toml",
|
||||
"jsonpath": "$.package.version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/gifbox/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/gifbox/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-models'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/gifbox/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/gifbox/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-coalesced'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/gifbox/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-database'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/gifbox/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-ratelimits'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/january/Cargo.toml",
|
||||
@@ -287,23 +102,53 @@
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/january/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-config'].version"
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-coalesced'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/january/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-models'].version"
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-config'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/january/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-result'].version"
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-database'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "crates/services/january/Cargo.toml",
|
||||
"jsonpath": "$.dependencies['revolt-files'].version"
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-files'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-models'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-parser'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-permissions'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-presence'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-ratelimits'].version"
|
||||
},
|
||||
{
|
||||
"type": "toml",
|
||||
"path": "Cargo.toml",
|
||||
"jsonpath": "$.workspace.dependencies['revolt-result'].version"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user