forked from jmug/stoatchat
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]
|
[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" }
|
||||||
@@ -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"] }
|
||||||
|
|||||||
@@ -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()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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"] }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"] }
|
||||||
|
|||||||
@@ -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 }
|
||||||
|
|||||||
@@ -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"] }
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user