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:
Angelo Kontaxis
2026-04-18 03:02:18 +01:00
committed by GitHub
parent 144e939c6b
commit 3675ff1a1f
25 changed files with 2475 additions and 2401 deletions

3771
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
[workspace] [workspace]
resolver = "2" resolver = "3"
members = [ members = [
"crates/delta", "crates/delta",
@@ -20,24 +20,129 @@ lto = true
[workspace.dependencies] [workspace.dependencies]
# Async # Async
async-trait = "0.1.89" 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 # Error Handling
anyhow = "1.0.100" anyhow = "1.0.100"
thiserror = "2.0.18" thiserror = "2.0.18"
sentry = "0.31.5"
sentry-anyhow = "0.38.1"
# Other Utilities # Data Validation
uuid = { version = "1.19.0", features = ["v4"] } 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 (HTTP server)
axum-macros = "0.4.1" axum-macros = "0.4.1"
axum_typed_multipart = "0.12.1" axum_typed_multipart = "0.12.1"
axum = { version = "0.7.5", features = ["multipart"] } axum = "0.7.5"
tower-http = { version = "0.5.2", features = ["cors", "trace"] } 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 # Image Processing
jxl-oxide = { version = "0.12.5", features = ["image"] } jxl-oxide = "0.12.5"
image = "0.25.9" 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 # OpenTelemetry
tracing = "0.1.44" tracing = "0.1.44"
@@ -47,4 +152,50 @@ tracing-subscriber = { version = "0.3.22", features = [
opentelemetry = { version = "0.31.0", features = ["logs"] } opentelemetry = { version = "0.31.0", features = ["logs"] }
opentelemetry_sdk = { version = "0.31.0", features = ["logs"] } opentelemetry_sdk = { version = "0.31.0", features = ["logs"] }
opentelemetry-otlp = { 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" }

View File

@@ -9,42 +9,38 @@ publish = false
[dependencies] [dependencies]
# util # util
log = "*" log = { workspace = true }
sentry = "0.31.5" sentry = { workspace = true }
lru = "0.7.6" lru = { workspace = true }
ulid = "0.5.0" ulid = { workspace = true }
once_cell = "1.9.0" once_cell = { workspace = true }
redis-kiss = "0.1.4" redis-kiss = { workspace = true }
lru_time_cache = "0.11.11" lru_time_cache = { workspace = true }
async-channel = "2.3.1" async-channel = { workspace = true }
# parsing # parsing
querystring = "1.1.0" querystring = { workspace = true }
regex = "1.11.1" regex = { workspace = true }
# serde # serde
bincode = "1.3.3" bincode = { workspace = true }
serde_json = "1.0.79" serde_json = { workspace = true }
rmp-serde = "1.0.0" rmp-serde = { workspace = true }
serde = "1.0.136" serde = { workspace = true }
# async # async
futures = "0.3.21" futures = { workspace = true }
async-tungstenite = { version = "0.17.0", features = ["async-std-runtime"] } async-tungstenite = { workspace = true, features = ["async-std-runtime"] }
async-std = { version = "1.8.0", features = [ async-std = { workspace = true }
"tokio1",
"tokio02",
"attributes",
] }
# core # core
authifier = { version = "1.0.16" } authifier = { workspace = true }
revolt-result = { path = "../core/result" } revolt-result = { workspace = true }
revolt-models = { path = "../core/models" } revolt-models = { workspace = true }
revolt-config = { path = "../core/config" } revolt-config = { workspace = true }
revolt-database = { path = "../core/database", features = ["voice"] } revolt-database = { workspace = true, features = ["voice"] }
revolt-permissions = { path = "../core/permissions" } revolt-permissions = { workspace = true }
revolt-presence = { path = "../core/presence", features = ["redis-is-patched"] } revolt-presence = { workspace = true, features = ["redis-is-patched"] }
# redis # redis
fred = { version = "8.0.1", features = ["subscriber-client"] } fred = { workspace = true, features = ["subscriber-client"] }

View File

@@ -1,7 +1,5 @@
use std::{ use std::{
collections::{HashMap, HashSet}, collections::{HashMap, HashSet}, num::NonZeroUsize, sync::Arc, time::Duration
sync::Arc,
time::Duration,
}; };
use async_std::sync::{Mutex, RwLock}; use async_std::sync::{Mutex, RwLock};
@@ -57,7 +55,7 @@ impl Default for Cache {
members: Default::default(), members: Default::default(),
servers: Default::default(), servers: Default::default(),
seen_events: LruCache::new(20), seen_events: LruCache::new(NonZeroUsize::new(20).unwrap()),
} }
} }
} }

View File

@@ -15,12 +15,12 @@ cache = ["dep:lru"]
default = ["tokio"] default = ["tokio"]
[dependencies] [dependencies]
tokio = { version = "1.47.0", features = ["sync"], optional = true } tokio = { workspace = true, features = ["sync"], optional = true }
indexmap = { version = "2.13.0", optional = true } indexmap = { workspace = true, optional = true }
lru = { version = "0.16.3", optional = true } lru = { workspace = true, optional = true }
[dev-dependencies] [dev-dependencies]
tokio = { version = "1.47.0", features = [ tokio = { workspace = true, features = [
"rt", "rt",
"rt-multi-thread", "rt-multi-thread",
"macros", "macros",

View File

@@ -18,24 +18,24 @@ default = ["test", "sentry"]
[dependencies] [dependencies]
# Utility # Utility
config = "0.13.3" config = { workspace = true }
cached = "0.44.0" cached = { workspace = true }
once_cell = "1.18.0" once_cell = { workspace = true }
# Serde # Serde
serde = { version = "1", features = ["derive"] } serde = { workspace = true }
# Async # Async
futures-locks = "0.7.1" futures-locks = { workspace = true }
async-std = { version = "1.8.0", features = ["attributes"], optional = true } async-std = { workspace = true, features = ["attributes"], optional = true }
# Logging # Logging
log = "0.4.14" log = { workspace = true }
pretty_env_logger = "0.4.0" pretty_env_logger = { workspace = true }
# Sentry # Sentry
sentry = { version = "0.31.5", optional = true } sentry = { workspace = true, optional = true }
sentry-anyhow = { version = "0.38.1", optional = true } sentry-anyhow = { workspace = true, optional = true }
# Core # Core
revolt-result = { version = "0.12.1", path = "../result", optional = true } revolt-result = { workspace = true, optional = true }

View File

@@ -32,80 +32,71 @@ default = ["mongodb", "async-std-runtime", "tasks"]
[dependencies] [dependencies]
# Core # Core
revolt-config = { version = "0.12.1", path = "../config", features = [ revolt-config = { workspace = true, features = ["report-macros"] }
"report-macros", revolt-result = { workspace = true }
] } revolt-models = { workspace = true, features = ["validator"] }
revolt-result = { version = "0.12.1", path = "../result" } revolt-presence = { workspace = true }
revolt-models = { version = "0.12.1", path = "../models", features = [ revolt-permissions = { workspace = true, features = ["serde", "bson"] }
"validator", revolt-parser = { workspace = true }
] }
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" }
# Utility # Utility
log = "0.4" log = { workspace = true }
lru = "0.11.0" lru = { workspace = true }
rand = "0.8.5" rand = { workspace = true }
ulid = "1.0.0" ulid = { workspace = true }
nanoid = "0.4.0" nanoid = { workspace = true }
base64 = "0.21.3" base64 = { workspace = true }
once_cell = "1.17" once_cell = { workspace = true }
indexmap = "1.9.1" indexmap = { workspace = true }
decancer = "1.6.2" decancer = { workspace = true }
deadqueue = "0.2.4" deadqueue = { workspace = true }
linkify = { optional = true, version = "0.8.1" } linkify = { workspace = true, optional = true }
url-escape = { optional = true, version = "0.1.1" } url-escape = { workspace = true, optional = true }
validator = { version = "0.16", features = ["derive"] } validator = { workspace = true, features = ["derive"] }
isahc = { optional = true, version = "1.7", features = ["json"] } isahc = { workspace = true, features = ["json"], optional = true }
# Serialisation # Serialisation
serde_json = "1" serde_json = { workspace = true }
revolt_optional_struct = "0.2.0" revolt_optional_struct = { workspace = true }
serde = { version = "1", features = ["derive"] } serde = { workspace = true }
iso8601-timestamp = { version = "0.2.10", features = ["serde", "bson"] } iso8601-timestamp = { workspace = true, features = ["serde", "bson"] }
# Events # Events
redis-kiss = { version = "0.1.4" } redis-kiss = { workspace = true }
# Database # Database
bson = { optional = true, version = "2.1.0" } bson = { workspace = true, optional = true }
mongodb = { optional = true, version = "3.1.0" } mongodb = { workspace = true, optional = true }
# Database Migration # Database Migration
unicode-segmentation = "1.10.1" unicode-segmentation = { workspace = true }
regex = "1" regex = { workspace = true }
# Async Language Features # Async Language Features
futures = "0.3.19" futures = { workspace = true }
async-lock = "2.8.0" async-lock = { workspace = true }
async-trait = "0.1.51" async-trait = { workspace = true }
async-recursion = "1.0.4" async-recursion = { workspace = true }
# Async # Async
async-std = { version = "1.8.0", features = ["attributes"], optional = true } async-std = { workspace = true, features = ["attributes"], optional = true }
# Axum Impl # Axum Impl
axum = { version = "0.7.5", optional = true } axum = { workspace = true, optional = true }
# Rocket Impl # Rocket Impl
schemars = { version = "0.8.8", optional = true } schemars = { workspace = true, optional = true }
rocket = { version = "0.5.1", default-features = false, features = [ rocket = { workspace = true, features = ["json"], optional = true }
"json", revolt_okapi = { workspace = true, optional = true }
], optional = true } revolt_rocket_okapi = { workspace = true, optional = true }
revolt_okapi = { version = "0.9.1", optional = true }
revolt_rocket_okapi = { version = "0.10.0", optional = true }
# Authifier # Authifier
authifier = { version = "1.0.16" } authifier = { workspace = true }
# RabbitMQ # RabbitMQ
amqprs = { version = "1.7.0" } amqprs = { workspace = true }
# Voice # Voice
livekit-api = { version = "0.4.4", optional = true } livekit-api = { workspace = true, optional = true }
livekit-protocol = { version = "0.4.0", optional = true } livekit-protocol = { workspace = true, optional = true }
livekit-runtime = { version = "0.3.1", features = ["tokio"], optional = true } livekit-runtime = { workspace = true, features = ["tokio"], optional = true }

View File

@@ -249,7 +249,7 @@ impl AbstractMessages for ReferenceDb {
let mut messages = self.messages.lock().await; let mut messages = self.messages.lock().await;
if let Some(message) = messages.get_mut(id) { if let Some(message) = messages.get_mut(id) {
if let Some(users) = message.reactions.get_mut(emoji) { if let Some(users) = message.reactions.get_mut(emoji) {
users.remove(&user.to_string()); users.swap_remove(&user.to_string());
} }
Ok(()) Ok(())
@@ -262,7 +262,7 @@ impl AbstractMessages for ReferenceDb {
async fn clear_reaction(&self, id: &str, emoji: &str) -> Result<()> { async fn clear_reaction(&self, id: &str, emoji: &str) -> Result<()> {
let mut messages = self.messages.lock().await; let mut messages = self.messages.lock().await;
if let Some(message) = messages.get_mut(id) { if let Some(message) = messages.get_mut(id) {
message.reactions.remove(emoji); message.reactions.swap_remove(emoji);
Ok(()) Ok(())
} else { } else {
Err(create_error!(NotFound)) Err(create_error!(NotFound))

View File

@@ -16,33 +16,33 @@ tracing = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
async-trait = { workspace = true } async-trait = { workspace = true }
ffprobe = "0.4.0" ffprobe = { workspace = true }
imagesize = "0.13.0" imagesize = { workspace = true }
tempfile = "3.12.0" tempfile = { workspace = true }
base64 = "0.22.1" base64 = { workspace = true }
aes-gcm = "0.10.3" aes-gcm = { workspace = true }
typenum = "1.17.0" typenum = { workspace = true }
aws-config = "1.5.5" aws-config = { workspace = true }
aws-sdk-s3 = { version = "1.46.0", features = ["behavior-version-latest"] } 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", "report-macros",
] } ] }
revolt-result = { version = "0.12.1", path = "../result" } revolt-result = { workspace = true }
# image processing # image processing
jxl-oxide = { workspace = true } jxl-oxide = { workspace = true, features = ["image"] }
image = { workspace = true } image = { workspace = true }
# svg rendering # svg rendering
usvg = "0.44.0" usvg = { workspace = true }
resvg = "0.44.0" resvg = { workspace = true }
tiny-skia = "0.11.4" tiny-skia = { workspace = true }
# encoding # encoding
webp = "0.3.0" webp = { workspace = true }
[dev-dependencies] [dev-dependencies]
uuid = { workspace = true } uuid = { workspace = true, features = ["v4"] }

View File

@@ -21,26 +21,26 @@ default = ["serde", "partials", "rocket"]
[dependencies] [dependencies]
# Core # Core
revolt-config = { version = "0.12.1", path = "../config" } revolt-config = { workspace = true }
revolt-permissions = { version = "0.12.1", path = "../permissions" } revolt-permissions = { workspace = true }
# Utility # Utility
regex = "1.11" regex = { workspace = true }
indexmap = "1.9.3" indexmap = { workspace = true }
once_cell = "1.17.1" once_cell = { workspace = true }
num_enum = "0.6.1" num_enum = { workspace = true }
# Rocket # Rocket
rocket = { optional = true, version = "0.5.0-rc.2", default-features = false } rocket = { workspace = true, optional = true }
# Serialisation # Serialisation
revolt_optional_struct = { version = "0.2.0", optional = true } revolt_optional_struct = { workspace = true, optional = true }
serde = { version = "1", features = ["derive"], optional = true } serde = { workspace = true, optional = true }
iso8601-timestamp = { version = "0.2.11", features = ["schema", "bson"] } iso8601-timestamp = { workspace = true, features = ["schema", "bson"] }
# Spec Generation # Spec Generation
schemars = { version = "0.8.8", optional = true, features = ["indexmap1"] } schemars = { workspace = true, features = ["indexmap2"], optional = true }
utoipa = { version = "4.2.3", optional = true } utoipa = { workspace = true, optional = true }
# Validation # Validation
validator = { version = "0.16.0", optional = true, features = ["derive"] } validator = { workspace = true, features = ["derive"], optional = true }

View File

@@ -8,4 +8,4 @@ description = "Revolt Backend: Message Parser"
repository = "https://github.com/stoatchat/stoatchat" repository = "https://github.com/stoatchat/stoatchat"
[dependencies] [dependencies]
logos = { version = "0.15" } logos = { workspace = true }

View File

@@ -18,23 +18,23 @@ try-from-primitive = ["dep:num_enum"]
[dev-dependencies] [dev-dependencies]
# Async # Async
async-std = { version = "1.8.0", features = ["attributes"] } async-std = { workspace = true, features = ["attributes"] }
[dependencies] [dependencies]
# Core # Core
revolt-result = { version = "0.12.1", path = "../result" } revolt-result = { workspace = true }
# Utility # Utility
auto_ops = "0.3.0" auto_ops = { workspace = true }
once_cell = "1.17" once_cell = { workspace = true }
num_enum = { version = "0.6.1", optional = true } num_enum = { workspace = true, optional = true }
# Async # Async
async-trait = "0.1.51" async-trait = { workspace = true }
# Serialisation # Serialisation
serde = { version = "1", features = ["derive"], optional = true } serde = { workspace = true, optional = true }
bson = { version = "2.1.0", optional = true } bson = { workspace = true, optional = true }
# Spec Generation # Spec Generation
schemars = { version = "0.8.8", optional = true } schemars = { workspace = true, optional = true }

View File

@@ -14,16 +14,16 @@ redis-is-patched = []
[dev-dependencies] [dev-dependencies]
# Async # Async
async-std = { version = "1.8.0", features = ["attributes"] } async-std = { workspace = true, features = ["attributes"] }
# Config for loading Redis URI # Config for loading Redis URI
revolt-config = { version = "0.12.1", path = "../config" } revolt-config = { workspace = true }
[dependencies] [dependencies]
# Utility # Utility
log = "0.4.17" log = { workspace = true }
rand = "0.8.5" rand = { workspace = true }
once_cell = "1.17.1" once_cell = { workspace = true }
# Redis # Redis
redis-kiss = "0.1.4" redis-kiss = { workspace = true }

View File

@@ -18,17 +18,17 @@ axum = ["dep:axum", "revolt-database/axum-impl"]
default = ["rocket", "axum"] default = ["rocket", "axum"]
[dependencies] [dependencies]
revolt-database = { version = "0.12.1", path = "../database" } revolt-database = { workspace = true }
revolt-result = { version = "0.12.1", path = "../result" } revolt-result = { workspace = true }
revolt-config = { version = "0.12.1", path = "../config" } revolt-config = { workspace = true }
rocket = { version = "0.5.1", optional = true } rocket = { workspace = true, optional = true }
revolt_rocket_okapi = { version = "0.10.0", 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"] } serde = { workspace = true }
authifier = { version = "1.0.16" } authifier = { workspace = true }
dashmap = "5.2.0" dashmap = { workspace = true }
async-trait = "0.1.81" async-trait = { workspace = true }
log = "0.4" log = { workspace = true }

View File

@@ -22,21 +22,21 @@ default = ["serde", "sentry"]
[dependencies] [dependencies]
# Serialisation # Serialisation
serde_json = { version = "1", optional = true } serde_json = { workspace = true, optional = true }
serde = { version = "1", features = ["derive"], optional = true } serde = { workspace = true, optional = true }
# Spec Generation # Spec Generation
schemars = { version = "0.8.8", optional = true } schemars = { workspace = true, optional = true }
utoipa = { version = "4.2.3", optional = true } utoipa = { workspace = true, optional = true }
# Rocket # Rocket
rocket = { optional = true, version = "0.5.0-rc.2", default-features = false } rocket = { workspace = true, optional = true }
revolt_rocket_okapi = { version = "0.10.0", optional = true } revolt_rocket_okapi = { workspace = true, optional = true }
revolt_okapi = { version = "0.9.1", optional = true } revolt_okapi = { workspace = true, optional = true }
# utilities # utilities
log = "0.4" log = { workspace = true }
# Axum # 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 }

View File

@@ -11,13 +11,13 @@ publish = false
[dependencies] [dependencies]
# Utility # Utility
log = "0.4" log = { workspace = true }
# Async # Async
tokio = { version = "1" } tokio = { workspace = true }
# Core # Core
revolt-database = { version = "0.12.1", path = "../../core/database" } revolt-database = { workspace = true }
revolt-result = { version = "0.12.1", path = "../../core/result" } revolt-result = { workspace = true }
revolt-config = { version = "0.12.1", path = "../../core/config" } revolt-config = { workspace = true }
revolt-files = { version = "0.12.1", path = "../../core/files" } revolt-files = { workspace = true }

View File

@@ -6,42 +6,35 @@ license = "AGPL-3.0-or-later"
publish = false publish = false
[dependencies] [dependencies]
revolt-result = { version = "0.12.1", path = "../../core/result" } revolt-result = { workspace = true }
revolt-config = { version = "0.12.1", path = "../../core/config", features = [ revolt-config = { workspace = true, features = ["report-macros", "anyhow"] }
"report-macros", revolt-database = { workspace = true }
"anyhow", revolt-models = { workspace = true, features = ["validator"] }
] } revolt-presence = { workspace = true, features = ["redis-is-patched"] }
revolt-database = { version = "0.12.1", path = "../../core/database" } revolt-parser = { workspace = true }
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" }
anyhow = { version = "1.0.98" } anyhow = { workspace = true }
amqprs = { version = "1.7.0" } amqprs = { workspace = true }
fcm_v1 = "0.3.0" fcm_v1 = { workspace = true }
web-push = "0.10.0" web-push = { workspace = true }
isahc = { optional = true, version = "1.7", features = ["json"] } isahc = { workspace = true, features = ["json"], optional = true }
revolt_a2 = { version = "0.10", default-features = false, features = ["ring"] } revolt_a2 = { workspace = true, features = ["ring"] }
redis-kiss = "0.1.4" redis-kiss = { workspace = true }
tokio = "1.39.2" tokio = { workspace = true }
async-trait = "0.1.81" async-trait = { workspace = true }
ulid = "1.0.0" ulid = { workspace = true }
authifier = "1.0.16" authifier = { workspace = true }
log = "0.4.11" log = { workspace = true }
pretty_env_logger = "0.4.0" pretty_env_logger = { workspace = true }
regex = "1.12.3" regex = { workspace = true }
#serialization #serialization
serde_json = "1" serde_json = { workspace = true }
revolt_optional_struct = "0.2.0" revolt_optional_struct = { workspace = true }
serde = { version = "1", features = ["derive"] } serde = { workspace = true }
iso8601-timestamp = { version = "0.2.10", features = ["serde", "bson"] } iso8601-timestamp = { workspace = true, features = ["serde", "bson"] }
base64 = "0.22.1" base64 = { workspace = true }

View File

@@ -9,41 +9,41 @@ publish = false
[dependencies] [dependencies]
# util # util
log = "*" log = { workspace = true }
sentry = "0.31.5" sentry = { workspace = true }
lru = "0.7.6" lru = { workspace = true }
ulid = "0.5.0" ulid = { workspace = true }
redis-kiss = "0.1.4" redis-kiss = { workspace = true }
chrono = "0.4.15" chrono = { workspace = true }
# Serde # Serde
serde_json = "1.0.79" serde_json = { workspace = true }
rmp-serde = "1.0.0" rmp-serde = { workspace = true }
serde = "1.0.136" serde = { workspace = true }
# Http # Http
rocket = { version = "0.5.0-rc.2", features = ["json"] } rocket = { workspace = true, features = ["json"] }
rocket_empty = "0.1.1" rocket_empty = { workspace = true }
# Async # Async
futures = "0.3.21" futures = { workspace = true }
async-std = { version = "1.8.0", features = [ async-std = { workspace = true, features = [
"tokio1", "tokio1",
"tokio02", "tokio02",
"attributes", "attributes",
] } ] }
# Core # Core
revolt-result = { path = "../../core/result" } revolt-result = { workspace = true, features = ["rocket"] }
revolt-models = { path = "../../core/models" } revolt-models = { workspace = true }
revolt-config = { path = "../../core/config" } revolt-config = { workspace = true }
revolt-database = { path = "../../core/database", features = ["voice"] } revolt-database = { workspace = true, features = ["voice"] }
revolt-permissions = { path = "../../core/permissions" } revolt-permissions = { workspace = true }
# Voice # Voice
livekit-api = "0.4.4" livekit-api = { workspace = true }
livekit-protocol = "0.4.0" livekit-protocol = { workspace = true }
livekit-runtime = { version = "0.3.1", features = ["tokio"] } livekit-runtime = { workspace = true, features = ["tokio"] }
# RabbitMQ # RabbitMQ
amqprs = { version = "1.7.0" } amqprs = { workspace = true }

View File

@@ -10,84 +10,83 @@ publish = false
[dependencies] [dependencies]
# Test # Test
rand = "0.8.5" rand = { workspace = true }
redis-kiss = "0.1.4" redis-kiss = { workspace = true }
# Utility # Utility
lru = "0.7.0" lru = { workspace = true }
url = "2.2.2" url = { workspace = true }
log = "0.4.11" log = { workspace = true }
dashmap = "5.2.0" dashmap = { workspace = true }
linkify = "0.6.0" linkify = { workspace = true }
once_cell = "1.17.1" once_cell = { workspace = true }
env_logger = "0.7.1"
# Lang. Utilities # Lang. Utilities
regex = "1" regex = { workspace = true }
num_enum = "0.5.1" num_enum = { workspace = true }
impl_ops = "0.1.1" impl_ops = { workspace = true }
bitfield = "0.13.2" bitfield = { workspace = true }
# ID / key generation # ID / key generation
ulid = "0.4.1" ulid = { workspace = true }
nanoid = "0.4.0" nanoid = { workspace = true }
# serde # serde
serde_json = "1.0.57" serde_json = { workspace = true }
serde = { version = "1.0.115", features = ["derive"] } serde = { workspace = true }
validator = { version = "0.16", features = ["derive"] } validator = { workspace = true, features = ["derive"] }
iso8601-timestamp = { version = "0.2.11", features = [] } iso8601-timestamp = { workspace = true }
# async # async
futures = "0.3.8" futures = { workspace = true }
chrono = "0.4.15" chrono = { workspace = true }
async-channel = "1.6.1" async-channel = { workspace = true }
reqwest = { version = "0.11.4", features = ["json"] } reqwest = { workspace = true, features = ["json"] }
async-std = { version = "1.8.0", features = [ async-std = { workspace = true, features = [
"tokio1", "tokio1",
"tokio02", "tokio02",
"attributes", "attributes",
] } ] }
# internal util # internal util
lettre = "0.10.0-alpha.4" lettre = { workspace = true }
# web # web
rocket = { version = "0.5.1", default-features = false, features = ["json"] } rocket = { workspace = true, features = ["json"] }
rocket_cors = { git = "https://github.com/lawliet89/rocket_cors", rev = "072d90359b23e9b291df6b672c07c93de9c46011" } rocket_cors = { workspace = true }
rocket_empty = { version = "0.1.1", features = ["schema"] } rocket_empty = { workspace = true, features = ["schema"] }
rocket_authifier = { version = "1.0.16" } rocket_authifier = { workspace = true }
rocket_prometheus = "0.10.0-rc.3" rocket_prometheus = { workspace = true }
# spec generation # spec generation
schemars = "0.8.8" schemars = { workspace = true }
revolt_rocket_okapi = { version = "0.10.0", features = ["swagger"] } revolt_rocket_okapi = { workspace = true, features = ["swagger"] }
# rabbit # rabbit
amqprs = { version = "1.7.0" } amqprs = { workspace = true }
# core # core
authifier = "1.0.16" authifier = { workspace = true }
revolt-config = { path = "../core/config" } revolt-config = { workspace = true }
revolt-database = { path = "../core/database", features = [ revolt-database = { workspace = true, features = [
"rocket-impl", "rocket-impl",
"redis-is-patched", "redis-is-patched",
"voice", "voice",
] } ] }
revolt-models = { path = "../core/models", features = [ revolt-models = { workspace = true, features = [
"schemas", "schemas",
"validator", "validator",
"rocket", "rocket",
] } ] }
revolt-presence = { path = "../core/presence" } revolt-presence = { workspace = true }
revolt-result = { path = "../core/result", features = ["rocket", "okapi"] } revolt-result = { workspace = true, features = ["rocket", "okapi"] }
revolt-permissions = { path = "../core/permissions", features = ["schemas"] } revolt-permissions = { workspace = true, features = ["schemas"] }
revolt-ratelimits = { path = "../core/ratelimits", features = ["rocket"] } revolt-ratelimits = { workspace = true, features = ["rocket"] }
# voice # voice
livekit-api = "0.4.4" livekit-api = { workspace = true }
livekit-protocol = "0.4.0" livekit-protocol = { workspace = true }
[build-dependencies] [build-dependencies]
vergen = "7.5.0" vergen = { workspace = true }

View File

@@ -1,4 +1,5 @@
use chrono::Utc; use std::time::Duration;
use revolt_database::{ use revolt_database::{
util::{permissions::DatabasePermissionQuery, reference::Reference}, util::{permissions::DatabasePermissionQuery, reference::Reference},
Database, Message, User, Database, Message, User,
@@ -36,10 +37,9 @@ pub async fn bulk_delete_messages(
if ulid::Ulid::from_string(id) if ulid::Ulid::from_string(id)
.map_err(|_| create_error!(InvalidOperation))? .map_err(|_| create_error!(InvalidOperation))?
.datetime() .datetime()
.signed_duration_since(Utc::now()) .elapsed()
.num_days() .expect("Time went backwards")
.abs() > Duration::from_hours(7 * 24) // 7 days
> 7
{ {
return Err(create_error!(InvalidOperation)); return Err(create_error!(InvalidOperation));
} }

View File

@@ -1,4 +1,5 @@
use chrono::{Duration, Utc}; use std::time::Duration;
use redis_kiss::{get_connection, redis, AsyncCommands}; use redis_kiss::{get_connection, redis, AsyncCommands};
use revolt_database::util::permissions::DatabasePermissionQuery; use revolt_database::util::permissions::DatabasePermissionQuery;
use revolt_database::{ 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 // Disallow mentions for new users (TRUST-0: <12 hours age) in public servers
let allow_mentions = if let Some(server) = query.server_ref() { let allow_mentions = if let Some(server) = query.server_ref() {
if server.discoverable { if server.discoverable {
(Utc::now() - ulid::Ulid::from_string(&user.id).unwrap().datetime()) (ulid::Ulid::from_string(&user.id)
>= Duration::hours(12) .unwrap()
.datetime()
.elapsed()
.expect("Time went backwards"))
>= Duration::from_hours(12)
} else { } else {
true true
} }

View File

@@ -7,62 +7,57 @@ publish = false
[dependencies] [dependencies]
# ID generation # ID generation
ulid = "1.1.3" ulid = { workspace = true }
nanoid = "0.4.0" nanoid = { workspace = true }
# Media processing # Media processing
webp = "0.3.0" webp = { workspace = true }
sha2 = "0.10.8" sha2 = { workspace = true }
jxl-oxide = "0.8.1" jxl-oxide = { workspace = true }
kamadak-exif = "0.5.4" kamadak-exif = { workspace = true }
# revolt_little_exif = "0.5.1" # revolt_little_exif = "0.5.1"
image = { version = "0.25.2" } # avif encode requires dav1d system library: features = ["avif-native"] image = { workspace = true }
thumbhash = "0.1.0" thumbhash = { workspace = true }
# File processing # File processing
revolt_clamav-client = { version = "0.1.5" } revolt_clamav-client = { workspace = true }
simdutf8 = { version = "0.1.4", features = ["aarch64_neon"] } simdutf8 = { workspace = true, features = ["aarch64_neon"] }
# Content type processing # Content type processing
infer = "0.16.0" infer = { workspace = true }
ffprobe = "0.4.0" ffprobe = { workspace = true }
imagesize = "0.13.0" imagesize = { workspace = true }
# Utility # Utility
lazy_static = "1.5.0" lazy_static = { workspace = true }
moka = { version = "0.12.8", features = ["future"] } moka = { workspace = true, features = ["future"] }
# Serialisation # Serialisation
strum_macros = "0.26.4" strum_macros = { workspace = true }
serde_json = "1.0.68" serde_json = { workspace = true }
serde = { version = "1.0", features = ["derive"] } serde = { workspace = true }
# Async runtime # Async runtime
tokio = { version = "1.0", features = ["full"] } tokio = { workspace = true, features = ["full"] }
# Logging # Logging
tracing = "0.1" tracing = { workspace = true }
tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-subscriber = { workspace = true }
# Core crates # Core crates
revolt-files = { version = "0.12.1", path = "../../core/files" } revolt-files = { workspace = true }
revolt-config = { version = "0.12.1", path = "../../core/config" } revolt-config = { workspace = true }
revolt-database = { version = "0.12.1", path = "../../core/database", features = [ revolt-database = { workspace = true, features = ["axum-impl"] }
"axum-impl", revolt-result = { workspace = true, features = ["utoipa", "axum"] }
] } revolt-ratelimits = { workspace = true, features = ["axum"] }
revolt-result = { version = "0.12.1", path = "../../core/result", features = [
"utoipa",
"axum",
] }
revolt-ratelimits = { version = "0.12.1", path = "../../core/ratelimits", features = ["axum"] }
# Axum / web server # Axum / web server
tempfile = "3.12.0" tempfile = { workspace = true }
axum-macros = "0.4.1" axum-macros = { workspace = true }
axum_typed_multipart = "0.12.1" axum_typed_multipart = { workspace = true }
axum = { version = "0.7.5", features = ["multipart"] } axum = { workspace = true, features = ["multipart"] }
tower-http = { version = "0.5.2", features = ["cors"] } tower-http = { workspace = true, features = ["cors"] }
# OpenAPI & documentation generation # OpenAPI & documentation generation
utoipa-scalar = { version = "0.1.0", features = ["axum"] } utoipa-scalar = { workspace = true, features = ["axum"] }
utoipa = { version = "4.2.3", features = ["axum_extras", "ulid"] } utoipa = { workspace = true, features = ["axum_extras", "ulid"] }

View File

@@ -7,43 +7,34 @@ publish = false
[dependencies] [dependencies]
# Serialisation # Serialisation
serde = { version = "1.0", features = ["derive", "rc"] } serde = { workspace = true, features = ["rc"] }
serde_json = "1.0.68" serde_json = { workspace = true }
# Async runtime # Async runtime
tokio = { version = "1.0", features = ["full"] } tokio = { workspace = true, features = [] }
# Web requests # Web requests
reqwest = { version = "0.12", features = ["json"] } reqwest = { workspace = true, features = ["json", "query"] }
# Core crates # Core crates
revolt-config = { version = "0.12.1", path = "../../core/config" } revolt-config = { workspace = true }
revolt-models = { version = "0.12.1", path = "../../core/models" } revolt-models = { workspace = true }
revolt-result = { version = "0.12.1", path = "../../core/result", features = [ revolt-result = { workspace = true, features = ["utoipa", "axum"] }
"utoipa", revolt-coalesced = { workspace = true, features = ["queue"] }
"axum", revolt-database = { workspace = true, features = ["axum-impl"] }
] } revolt-ratelimits = { workspace = true, features = ["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",
] }
# Axum / web server # Axum / web server
axum = { version = "0.7.5" } axum = { workspace = true }
axum-extra = { version = "0.9", features = ["typed-header"] } axum-extra = { workspace = true, features = ["typed-header"] }
tower-http = { version = "0.5.2", features = ["cors"] } tower-http = { workspace = true, features = ["cors"] }
# OpenAPI & documentation generation # OpenAPI & documentation generation
utoipa-scalar = { version = "0.1.0", features = ["axum"] } utoipa-scalar = { workspace = true, features = ["axum"] }
utoipa = { version = "4.2.3", features = ["axum_extras", "ulid"] } utoipa = { workspace = true, features = ["axum_extras", "ulid"] }
# Logging # Logging
tracing = "0.1" tracing = { workspace = true }
# Utils # Utils
lru_time_cache = "0.11.11" lru_time_cache = { workspace = true }

View File

@@ -7,44 +7,41 @@ publish = false
[dependencies] [dependencies]
# Utility # Utility
mime = "0.3.17" mime = { workspace = true }
regex = "1.11.0" regex = { workspace = true }
tempfile = "3.13.0" tempfile = { workspace = true }
lazy_static = "1.5.0" lazy_static = { workspace = true }
moka = { version = "0.12.8", features = ["future"] } moka = { workspace = true, features = ["future"] }
# Web scraping # Web scraping
scraper = "0.20.0" scraper = { workspace = true }
encoding_rs = "0.8.34" encoding_rs = { workspace = true }
# Serialisation # Serialisation
serde = { version = "1.0", features = ["derive"] } serde = { workspace = true }
serde_json = "1.0.68" serde_json = { workspace = true }
# Async runtime # Async runtime
async-recursion = "1.1.1" async-recursion = { workspace = true }
tokio = { version = "1.0", features = ["full"] } tokio = { workspace = true, features = [] }
# Web requests # Web requests
reqwest = { version = "0.12", features = ["json"] } reqwest = { workspace = true, features = ["json"] }
# Logging # Logging
tracing = "0.1" tracing = { workspace = true }
tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-subscriber = { workspace = true, features = ["env-filter"] }
# Core crates # Core crates
revolt-config = { version = "0.12.1", path = "../../core/config" } revolt-config = { workspace = true }
revolt-models = { version = "0.12.1", path = "../../core/models" } revolt-models = { workspace = true }
revolt-result = { version = "0.12.1", path = "../../core/result", features = [ revolt-result = { workspace = true, features = ["utoipa", "axum"] }
"utoipa", revolt-files = { workspace = true }
"axum",
] }
revolt-files = { version = "0.12.1", path = "../../core/files" }
# Axum / web server # Axum / web server
axum = { version = "0.7.5" } axum = { workspace = true }
axum-extra = { version = "0.9", features = ["typed-header"] } axum-extra = { workspace = true, features = ["typed-header"] }
# OpenAPI & documentation generation # OpenAPI & documentation generation
utoipa-scalar = { version = "0.1.0", features = ["axum"] } utoipa-scalar = { workspace = true, features = ["axum"] }
utoipa = { version = "4.2.3", features = ["axum_extras", "ulid"] } utoipa = { workspace = true, features = ["axum_extras", "ulid"] }

View File

@@ -30,76 +30,21 @@
"path": "crates/core/config/Cargo.toml", "path": "crates/core/config/Cargo.toml",
"jsonpath": "$.package.version" "jsonpath": "$.package.version"
}, },
{
"type": "toml",
"path": "crates/core/config/Cargo.toml",
"jsonpath": "$.dependencies['revolt-result'].version"
},
{ {
"type": "toml", "type": "toml",
"path": "crates/core/database/Cargo.toml", "path": "crates/core/database/Cargo.toml",
"jsonpath": "$.package.version" "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", "type": "toml",
"path": "crates/core/files/Cargo.toml", "path": "crates/core/files/Cargo.toml",
"jsonpath": "$.package.version" "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", "type": "toml",
"path": "crates/core/models/Cargo.toml", "path": "crates/core/models/Cargo.toml",
"jsonpath": "$.package.version" "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", "type": "toml",
"path": "crates/core/parser/Cargo.toml", "path": "crates/core/parser/Cargo.toml",
@@ -110,41 +55,16 @@
"path": "crates/core/permissions/Cargo.toml", "path": "crates/core/permissions/Cargo.toml",
"jsonpath": "$.package.version" "jsonpath": "$.package.version"
}, },
{
"type": "toml",
"path": "crates/core/permissions/Cargo.toml",
"jsonpath": "$.dependencies['revolt-result'].version"
},
{ {
"type": "toml", "type": "toml",
"path": "crates/core/presence/Cargo.toml", "path": "crates/core/presence/Cargo.toml",
"jsonpath": "$.package.version" "jsonpath": "$.package.version"
}, },
{
"type": "toml",
"path": "crates/core/presence/Cargo.toml",
"jsonpath": "$['dev-dependencies']['revolt-config'].version"
},
{ {
"type": "toml", "type": "toml",
"path": "crates/core/ratelimits/Cargo.toml", "path": "crates/core/ratelimits/Cargo.toml",
"jsonpath": "$.package.version" "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", "type": "toml",
"path": "crates/core/result/Cargo.toml", "path": "crates/core/result/Cargo.toml",
@@ -155,61 +75,11 @@
"path": "crates/daemons/crond/Cargo.toml", "path": "crates/daemons/crond/Cargo.toml",
"jsonpath": "$.package.version" "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", "type": "toml",
"path": "crates/daemons/pushd/Cargo.toml", "path": "crates/daemons/pushd/Cargo.toml",
"jsonpath": "$.package.version" "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", "type": "toml",
"path": "crates/daemons/voice-ingress/Cargo.toml", "path": "crates/daemons/voice-ingress/Cargo.toml",
@@ -220,66 +90,11 @@
"path": "crates/services/autumn/Cargo.toml", "path": "crates/services/autumn/Cargo.toml",
"jsonpath": "$.package.version" "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", "type": "toml",
"path": "crates/services/gifbox/Cargo.toml", "path": "crates/services/gifbox/Cargo.toml",
"jsonpath": "$.package.version" "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", "type": "toml",
"path": "crates/services/january/Cargo.toml", "path": "crates/services/january/Cargo.toml",
@@ -287,23 +102,53 @@
}, },
{ {
"type": "toml", "type": "toml",
"path": "crates/services/january/Cargo.toml", "path": "Cargo.toml",
"jsonpath": "$.dependencies['revolt-config'].version" "jsonpath": "$.workspace.dependencies['revolt-coalesced'].version"
}, },
{ {
"type": "toml", "type": "toml",
"path": "crates/services/january/Cargo.toml", "path": "Cargo.toml",
"jsonpath": "$.dependencies['revolt-models'].version" "jsonpath": "$.workspace.dependencies['revolt-config'].version"
}, },
{ {
"type": "toml", "type": "toml",
"path": "crates/services/january/Cargo.toml", "path": "Cargo.toml",
"jsonpath": "$.dependencies['revolt-result'].version" "jsonpath": "$.workspace.dependencies['revolt-database'].version"
}, },
{ {
"type": "toml", "type": "toml",
"path": "crates/services/january/Cargo.toml", "path": "Cargo.toml",
"jsonpath": "$.dependencies['revolt-files'].version" "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"
} }
] ]
} }