Compare commits

..
Author SHA1 Message Date
Tanish Manku 17ffa8a9cc Show only image records 2025-04-08 22:49:31 -07:00
Tanish Manku 7f6be47a28 Write the Gallery component with test data 2025-04-08 22:44:24 -07:00
241 changed files with 1654 additions and 10187 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
hakari-package = "workspace-build-acceleration"
hakari-package = "my-workspace-hack"
resolver = "1"
@@ -11,4 +11,4 @@ platforms = [
"x86_64-pc-windows-msvc",
]
exact-versions = true
exact-versions = true
-3
View File
@@ -32,9 +32,6 @@ target/
crates/lib/database_queries/target/
crates/lib/sqlite_queries/target/
# Javascript build directories
node_modules/
# Vim noise
*.swo
*.swp
Generated
+202 -255
View File
File diff suppressed because it is too large Load Diff
+6 -10
View File
@@ -24,6 +24,8 @@ members = [
"crates/cli/production/migration-tool",
# Desktop apps
"crates/desktop/ml_models",
"crates/desktop/ml_weights_registry",
"crates/desktop/tauri-4o",
"crates/desktop/tauri-realtime",
@@ -63,17 +65,14 @@ members = [
"crates/lib/image_algorithms",
"crates/lib/jobs_common",
"crates/lib/logging",
"crates/lib/machine_learning/ml_models",
"crates/lib/machine_learning/ml_weights_registry",
"crates/lib/machine_learning/prompt_engineering",
"crates/lib/markdown",
"crates/lib/migration",
"crates/lib/mysql_queries",
"crates/lib/password",
"crates/lib/prompt_engineering",
"crates/lib/redis_common",
"crates/lib/redis_schema",
"crates/lib/server_environment",
"crates/lib/shared_service_components",
"crates/lib/sqlx_mysql_helpers",
"crates/lib/storyteller_root",
"crates/lib/subprocess_common",
@@ -121,7 +120,7 @@ members = [
# cargo-hakari workspace hack (compilation speedup hack)
# see usage: https://crates.io/crates/cargo-hakari
"crates/workspace-build-acceleration",
"crates/my-workspace-hack",
]
[workspace.package]
@@ -130,31 +129,28 @@ publish = false
[workspace.dependencies]
# Hakari workspace hack (faster compile times)
workspace-build-acceleration = { path = "crates/workspace-build-acceleration" }
my-workspace-hack = { path = "crates/my-workspace-hack" }
# External libs
# Centrally pinned versions so that we can uniformly upgrade/downgrade versions across the workspace
# If a crate needs to use an older/newer version, the dependency should be managed in that crate's own Cargo.toml
anyhow = "1.0.97"
chrono = { version = "0.4.40", features = ["serde"] }
chrono = "0.4.40"
log = "0.4.27"
once_cell = "1.21.3"
rand = "0.9.0"
regex = "1.11.1"
reqwest = { version = "0.12.15", features = ["json", "cookies"] }
serde = { version = "1.0.219", features = ["derive"] }
serde_derive = "1.0.219"
serde_json = "1.0.140"
serde_yaml = "0.9.1"
toml = "0.7.4"
url = "2.5.4"
# Internal libs
crockford = { path = "crates/lib/data/crockford" }
errors = { path = "crates/lib/errors" }
filesys = { path = "crates/lib/files/filesys" }
memory_caching = { path = "crates/lib/caching/memory_caching" }
shared_service_components = { path = "crates/lib/shared_service_components" }
openai_sora_client = { path = "crates/lib/api_clients/openai_sora_client" }
primitives = { path = "crates/lib/data/primitives" }
subprocess_common = { path = "crates/lib/subprocess_common" }
@@ -13,7 +13,7 @@ name = "composite_identifiers"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -21,7 +21,7 @@ enums = { path = "../enums" }
tokens = { path = "../tokens" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# Serialization
serde = "1.0.125"
+2 -2
View File
@@ -13,13 +13,13 @@ name = "enums"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# Serialization
serde = "1.0.125"
@@ -57,9 +57,6 @@ pub enum MediaFileOriginModelType {
#[serde(rename = "studio")]
StorytellerStudio,
#[serde(rename = "studio_ig")]
StorytellerStudioImageGen,
#[serde(rename = "vst")]
VideoStyleTransfer,
@@ -96,7 +93,6 @@ impl MediaFileOriginModelType {
Self::MocapNet => "mocap_net",
Self::StyleTTS2 => "styletts2",
Self::StableDiffusion15 => "stable_diffusion_1_5",
Self::StorytellerStudioImageGen => "studio_ig",
Self::GptSovits => "gpt_sovits",
Self::StorytellerStudio => "studio",
Self::VideoStyleTransfer => "vst",
@@ -119,7 +115,6 @@ impl MediaFileOriginModelType {
"mocap_net" => Ok(Self::MocapNet),
"styletts2" => Ok(Self::StyleTTS2),
"stable_diffusion_1_5" => Ok(Self::StableDiffusion15),
"studio_ig" => Ok(Self::StorytellerStudioImageGen),
"gpt_sovits" => Ok(Self::GptSovits),
"studio" => Ok(Self::StorytellerStudio),
"vst" => Ok(Self::VideoStyleTransfer),
@@ -147,7 +142,6 @@ impl MediaFileOriginModelType {
Self::StableDiffusion15,
Self::GptSovits,
Self::StorytellerStudio,
Self::StorytellerStudioImageGen,
Self::VideoStyleTransfer,
Self::ComfyUi,
Self::VallEX,
+2 -2
View File
@@ -13,11 +13,11 @@ name = "enums_public"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# Internal
enums = { path = "../enums" }
@@ -64,10 +64,6 @@ pub enum PublicMediaFileModelType {
#[serde(rename = "studio")]
StorytellerStudio,
/// NB: This is GPT4o image generation
#[serde(rename = "studio_ig")]
StorytellerStudioImageGen,
#[serde(rename = "vst")]
VideoStyleTransfer,
@@ -93,7 +89,6 @@ impl PublicMediaFileModelType {
MediaFileOriginModelType::LivePortrait => Self::FaceMirror,
MediaFileOriginModelType::SadTalker => Self::FaceAnimator,
MediaFileOriginModelType::StyleTTS2 => Self::VoiceDesigner,
MediaFileOriginModelType::StorytellerStudioImageGen => Self::StorytellerStudioImageGen,
// Conserved variants
MediaFileOriginModelType::RvcV2 => Self::RvcV2,
MediaFileOriginModelType::SoVitsSvc => Self::SoVitsSvc,
@@ -118,7 +113,6 @@ impl PublicMediaFileModelType {
Self::FaceAnimator => MediaFileOriginModelType::SadTalker,
Self::Lipsync => MediaFileOriginModelType::FaceFusion,
Self::VoiceDesigner => MediaFileOriginModelType::StyleTTS2,
Self::StorytellerStudioImageGen => MediaFileOriginModelType::StorytellerStudioImageGen,
// Conserved variants
Self::RvcV2 => MediaFileOriginModelType::RvcV2,
Self::SoVitsSvc => MediaFileOriginModelType::SoVitsSvc,
+2 -2
View File
@@ -13,7 +13,7 @@ name = "reusable_types"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -21,7 +21,7 @@ normal = ["workspace-build-acceleration"]
# (none)
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
chrono = { version = "0.4.22", features = ["serde"] }
+2 -2
View File
@@ -13,7 +13,7 @@ name = "tokens"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -21,7 +21,7 @@ normal = ["workspace-build-acceleration"]
# (none)
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# Serialization
serde = "1.0.125"
@@ -13,7 +13,7 @@ name = "dev-database-seed"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -32,7 +32,7 @@ storyteller_root = { path = "../../../lib/storyteller_root" }
tokens = { path = "../../../_types/tokens" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
log = "0.4.14"
@@ -13,7 +13,7 @@ name = "dev-upload-media-file"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -29,7 +29,7 @@ mysql_queries = { path = "../../../lib/mysql_queries" }
tokens = { path = "../../../_types/tokens" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
clap = "4.4.8"
+2 -2
View File
@@ -13,7 +13,7 @@ name = "scrape-test"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -22,7 +22,7 @@ errors = { path = "../../../lib/errors" }
web_scrapers = { path = "../../../lib/web_scrapers" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
clap = "4.4.8"
+2 -2
View File
@@ -13,11 +13,11 @@ name = "db-backfill"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# Internal
datetimes = { path = "../../../lib/data/datetimes" }
+2 -2
View File
@@ -13,7 +13,7 @@ name = "db-backup"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -21,7 +21,7 @@ easyenv = { path = "../../../lib/easyenv" }
errors = { path = "../../../lib/errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
anyhow = "1.0.86"
+2 -2
View File
@@ -13,7 +13,7 @@ name = "db-cleanup"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -26,7 +26,7 @@ storyteller_root = { path = "../../../lib/storyteller_root" }
tokens = { path = "../../../_types/tokens" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
clap = "4.4.8"
@@ -13,7 +13,7 @@ name = "elasticsearch-cli"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -29,7 +29,7 @@ storyteller_root = { path = "../../../lib/storyteller_root" }
tokens = { path = "../../../_types/tokens" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
clap = "4.4.8"
@@ -13,7 +13,7 @@ name = "kubectl-pod-cleanup"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -22,7 +22,7 @@ easyenv = { path = "../../../lib/easyenv" }
errors = { path = "../../../lib/errors" }
# Workspace hack (faster compile yytimes)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
log = "0.4.20"
@@ -13,7 +13,7 @@ name = "lru-delete-models"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -21,7 +21,7 @@ errors = { path = "../../../lib/errors" }
logging = { path = "../../../lib/logging" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
clap = { version = "4.4.8", features = ["derive"] }
@@ -13,7 +13,7 @@ name = "migration-tool"
path = "src/main.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -30,7 +30,7 @@ storyteller_root = { path = "../../../lib/storyteller_root" }
tokens = { path = "../../../_types/tokens" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
clap = "4.4.8"
@@ -14,19 +14,16 @@ path = "src/lib.rs"
crate-type = ["staticlib", "cdylib", "rlib"]
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { workspace = true }
# Internal
filesys = { path = "../../files/filesys" }
image_algorithms = { path = "../../image_algorithms" }
memory_caching = { path = "../../caching/memory_caching" }
filesys = { path = "../../lib/files/filesys" }
image_algorithms = { path = "../../lib/image_algorithms" }
memory_caching = { path = "../../lib/caching/memory_caching" }
ml_weights_registry = { path = "../ml_weights_registry" }
primitives = { path = "../../data/primitives" }
primitives = { path = "../../lib/data/primitives" }
# Bypass cudarc issues on Windows https://github.com/coreylowman/cudarc/issues/332
cudarc = "0.13.7"
@@ -35,9 +32,9 @@ cudarc = "0.13.7"
anyhow = "1.0"
base64 = "0.22.1"
bytes = "1.10"
candle-core = { path = "../../../vendor/candle/candle-core", features = ["cuda"] }
candle-nn = { path = "../../../vendor/candle/candle-nn", features = ["cuda"] }
candle-transformers = { path = "../../../vendor/candle/candle-transformers", features = ["cuda"] }
candle-core = { path = "../../vendor/candle/candle-core", features = ["cuda"] }
candle-nn = { path = "../../vendor/candle/candle-nn", features = ["cuda"] }
candle-transformers = { path = "../../vendor/candle/candle-transformers", features = ["cuda"] }
const_format = "0.2.34"
directories = "6.0.0"
dirs = "6.0.0"
+1 -1
View File
@@ -20,7 +20,7 @@ tauri-build = { version = "2.1.1", features = [] }
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { workspace = true }
my-workspace-hack = { workspace = true }
# Internal
crockford = { workspace = true }
+1 -1
View File
@@ -5,7 +5,7 @@
"identifier": "com.unique.value.thing.why",
"build": {
"frontendDist": "../../../frontend/realtime/dist",
"devUrl": "http://localhost:5174",
"devUrl": "http://localhost:5741",
"beforeDevCommand": "npm run dev",
"beforeBuildCommand": "npm run build2"
},
+2 -2
View File
@@ -24,7 +24,7 @@ tauri-build = { version = "2.1.1", features = [] }
crockford = { path = "../../lib/data/crockford" }
filesys = { path = "../../lib/files/filesys" }
memory_caching = { path = "../../lib/caching/memory_caching" }
ml_weights_registry = { path = "../../lib/machine_learning/ml_weights_registry" }
ml_weights_registry = { path = "../ml_weights_registry" }
primitives = { path = "../../lib/data/primitives" }
# Internal ML
@@ -64,7 +64,7 @@ tokio-util = { version = "0.7", features = ["codec"] }
# tracing-subscriber = { version = "0.3", features = [ "env-filter", "fmt" ] }
[target.'cfg(not(target_os = "macos"))'.dependencies]
ml_models = { path = "../../lib/machine_learning/ml_models" }
ml_models = { path = "../ml_models" }
[dev-dependencies]
libloading = "0.8.6"
+2 -2
View File
@@ -14,7 +14,7 @@ name = "actix_cors_configs"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -22,7 +22,7 @@ normal = ["workspace-build-acceleration"]
reusable_types = { path = "../../_types/reusable_types" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
log = "0.4.14"
+2 -2
View File
@@ -14,14 +14,14 @@ name = "actix_helpers"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
errors = { path = "../../lib/errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# Actix
actix-http = "3.7.0"
@@ -13,11 +13,11 @@ name = "cloud_storage"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# Internal
bucket_paths = { path = "../../../lib/bucket_paths" }
@@ -20,7 +20,7 @@ pub struct RemoteCloudFileClient {
impl RemoteCloudFileClient {
#[deprecated(note="DO NOT USE THIS AWFUL CLOUD BUCKET CLIENT. These abstractions are complicated. See `BucketClient`")]
#[deprecated(note="this abstraction is too complicated, use another bucket client")]
pub async fn get_remote_cloud_file_client() -> AnyhowResult<Self> {
let bucket_orchestration = match BucketOrchestration::new_bucket_client_from_existing_env() {
Ok(client) => client,
@@ -34,7 +34,7 @@ impl RemoteCloudFileClient {
})
}
#[deprecated(note="DO NOT USE THIS AWFUL CLOUD BUCKET CLIENT. These abstractions are complicated. See `BucketClient`")]
#[deprecated(note="this abstraction is too complicated, use another bucket client")]
pub fn new(bucket_orchestration_client: Box<dyn BucketOrchestrationCore>) -> Self {
Self {
bucket_orchestration_client
@@ -42,7 +42,7 @@ impl RemoteCloudFileClient {
}
// Where the to_system_file_path is let sd_checkpoint_path = work_temp_dir.path().join("sd_checkpoint.safetensors"); path and file name and extension
#[deprecated(note="DO NOT USE THIS AWFUL CLOUD BUCKET CLIENT. These abstractions are complicated. See `BucketClient`")]
#[deprecated(note="this abstraction is too complicated, use another bucket client")]
pub async fn download_file(&self, remote_cloud_bucket_details:RemoteCloudBucketDetails, to_system_file_path:String) -> AnyhowResult<()> {
let file_descriptor = remote_cloud_bucket_details.file_descriptor_from_bucket_details();
let file_bucket_directory = FileBucketDirectory::from_existing_bucket_details(remote_cloud_bucket_details);
@@ -53,7 +53,7 @@ impl RemoteCloudFileClient {
Ok(())
}
#[deprecated(note="DO NOT USE THIS AWFUL CLOUD BUCKET CLIENT. These abstractions are complicated. See `BucketClient`")]
#[deprecated(note="this abstraction is too complicated, use another bucket client")]
pub async fn download_media_file(&self, media_file_path: &MediaFileBucketPath, to_system_file_path: String) -> AnyhowResult<()> {
const IS_PUBLIC: bool = true; // NB: Media files are always public
let full_remote_cloud_file_path = media_file_path.get_full_object_path_str().to_string();
@@ -63,7 +63,7 @@ impl RemoteCloudFileClient {
}
// return error or success with meta data.
#[deprecated(note="DO NOT USE THIS AWFUL CLOUD BUCKET CLIENT. These abstractions are complicated. See `BucketClient`")]
#[deprecated(note="this abstraction is too complicated, use another bucket client")]
pub async fn upload_file(&self, file_descriptor:Box<dyn FileDescriptor>, from_system_file_path:&str) -> AnyhowResult<FileMetaData> {
// get file meta data
@@ -99,7 +99,7 @@ impl RemoteCloudFileClient {
}
// Retrieve the metadata from the file
#[deprecated(note="DO NOT USE THIS AWFUL CLOUD BUCKET CLIENT. These abstractions are complicated. See `BucketClient`")]
#[deprecated(note="this abstraction is too complicated, use another bucket client")]
pub fn get_file_meta_data(system_file_path:&str) -> AnyhowResult<FileMetaData> {
let file_size_bytes = file_size(system_file_path.clone())?;
let sha256_checksum = sha256_hash_file(system_file_path.clone())?;
@@ -13,7 +13,7 @@ name = "google_drive_common"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -23,7 +23,7 @@ errors = { path = "../../errors" }
subprocess_common = { path = "../../subprocess_common" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
anyhow = "1.0.86"
@@ -14,11 +14,11 @@ name = "google_sign_in"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# Internal
errors = { path = "../../errors" }
@@ -5,7 +5,7 @@ version = "0.0.1"
publish = false
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[lib]
name = "openai_sora_client"
@@ -14,7 +14,7 @@ path = "src/lib.rs"
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { workspace = true }
my-workspace-hack = { workspace = true }
# Internal
crockford = { path = "../../data/crockford" }
@@ -1,349 +0,0 @@
use std::{fs::File, io::Write, path::Path};
use crate::credentials::SoraCredentials;
use errors::AnyhowResult;
use reqwest::Url;
use serde_derive::Deserialize;
const SORA_STATUS_URL: &str = "https://sora.com/backend/video_gen";
/// This user agent is tied to the sentinel generation. If we need to change it, we may need to change sentinel generation too.
const USER_AGENT: &str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36";
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
pub enum TaskStatus {
Queued,
Running,
Succeeded,
Failed,
Unknown(String),
}
impl TaskStatus {
pub fn from_str(s: &str) -> Self {
match s {
"queued" => TaskStatus::Queued,
"running" => TaskStatus::Running,
"succeeded" => TaskStatus::Succeeded,
"failed" => TaskStatus::Failed,
_ => TaskStatus::Unknown(s.to_string()),
}
}
}
#[derive(Deserialize, Clone)]
#[serde(rename_all = "snake_case")]
pub struct VideoGenStatusResponse {
pub task_responses: Vec<TaskResponse>,
pub last_id: String,
pub has_more: bool,
}
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub struct TaskResponse {
pub id: String,
pub user: String,
pub created_at: String,
pub status: String,
pub progress_pct: Option<f64>,
pub progress_pos_in_queue: Option<i32>,
pub estimated_queue_wait_time: Option<i32>,
pub queue_status_message: Option<String>,
pub priority: i32,
pub r#type: String,
pub prompt: String,
pub n_variants: i32,
pub n_frames: i32,
pub height: i32,
pub width: i32,
pub model: Option<String>,
pub operation: String,
pub inpaint_items: Option<Vec<InpaintItem>>,
pub preset_id: Option<String>,
pub caption: Option<String>,
pub actions: Option<serde_json::Value>,
pub interpolation: Option<serde_json::Value>,
pub sdedit: Option<serde_json::Value>,
pub remix_config: Option<serde_json::Value>,
pub quality: Option<String>,
pub generations: Vec<Generation>,
pub num_unsafe_generations: i32,
pub title: String,
pub moderation_result: ModerationResult,
pub failure_reason: Option<String>,
pub needs_user_review: bool,
}
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub struct Generation {
pub id: String,
pub task_id: String,
pub created_at: String,
pub deleted_at: Option<String>,
pub url: String,
pub seed: i64,
pub can_download: bool,
pub download_status: String,
pub is_favorite: bool,
pub is_liked: bool,
pub is_public: bool,
pub is_archived: bool,
pub is_featured: bool,
pub has_feedback: bool,
pub like_count: i32,
pub cloudflare_metadata: Option<serde_json::Value>,
pub cf_thumbnail_url: Option<String>,
pub encodings: Encodings,
pub width: i32,
pub height: i32,
pub n_frames: i32,
pub prompt: String,
pub title: String,
pub actions: Option<serde_json::Value>,
pub inpaint_items: Option<Vec<InpaintItem>>,
pub interpolation: Option<serde_json::Value>,
pub sdedit: Option<serde_json::Value>,
pub operation: String,
pub model: Option<String>,
pub preset_id: Option<String>,
pub user: User,
pub moderation_result: ModerationResult,
pub paragen_status: Option<serde_json::Value>,
pub task_type: String,
pub remix_config: Option<serde_json::Value>,
pub quality: Option<String>,
}
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub struct Encodings {
pub source: Source,
pub md: Option<serde_json::Value>,
pub ld: Option<serde_json::Value>,
pub thumbnail: Thumbnail,
pub spritesheet: Option<serde_json::Value>,
}
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub struct Source {
pub path: String,
pub size: Option<i32>,
pub width: Option<i32>,
pub height: Option<i32>,
pub duration_secs: Option<f64>,
pub ssim: Option<f64>,
}
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub struct Thumbnail {
pub path: String,
pub size: Option<i32>,
}
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub struct User {
pub id: String,
pub username: String,
}
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub struct InpaintItem {
pub crop_bounds: Option<String>,
pub r#type: String,
pub preset_id: Option<String>,
pub generation_id: Option<String>,
pub upload_media_id: String,
pub frame_index: i32,
pub source_start_frame: i32,
}
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub struct ModerationResult {
pub r#type: String,
pub results_by_frame_index: serde_json::Value,
pub code: Option<String>,
pub is_output_rejection: bool,
pub task_id: String,
}
pub struct StatusRequest {
pub limit: Option<u32>,
pub before: Option<String>,
}
impl StatusRequest {
pub fn new(limit: Option<u32>, before: Option<String>) -> Self {
let limit = limit.unwrap_or(100);
Self { limit: Some(limit), before }
}
}
/// Gets the status of image generation tasks from Sora API
pub async fn get_image_gen_status(status_request: &StatusRequest, credentials: &SoraCredentials) -> AnyhowResult<VideoGenStatusResponse> {
let client = reqwest::Client::new();
let mut url = reqwest::Url::parse(SORA_STATUS_URL)?;
// Add query parameters
if let Some(limit) = status_request.limit {
url.query_pairs_mut().append_pair("limit", &limit.to_string());
}
if let Some(before) = &status_request.before {
url.query_pairs_mut().append_pair("before", &before);
}
let http_request = client.get(url).header("User-Agent", USER_AGENT).header("Cookie", &credentials.cookie).header("Authorization", credentials.authorization_header_value()).header("Content-Type", "application/json");
let http_request = http_request.build()?;
let response = client.execute(http_request).await?;
let status = response.status();
let response_body = &response.text().await?;
println!("response_body: {}", response_body);
if status != reqwest::StatusCode::OK {
return Err(anyhow::anyhow!("The status request failed; status = {:?}, message = {:?}", status, response_body));
}
let response: VideoGenStatusResponse = serde_json::from_str(response_body)?;
Ok(response)
}
pub async fn wait_for_image_gen_status(task_id: &String, credentials: &SoraCredentials, retry_limit: Option<u32>) -> AnyhowResult<TaskResponse> {
let status_request = StatusRequest {
limit: None,
before: None,
// before: Some(task_id.clone()),
};
let retry_limit = retry_limit.unwrap_or(10);
for _ in 0..retry_limit {
tokio::time::sleep(std::time::Duration::from_secs(10)).await;
let status_response = get_image_gen_status(&status_request, credentials).await?;
match find_task_response_by_id(&status_response, task_id.clone()) {
Some(task_response) => match TaskStatus::from_str(&task_response.status) {
TaskStatus::Succeeded => {
return Ok(task_response.clone());
},
TaskStatus::Failed => {
return Err(anyhow::anyhow!("Task failed"));
},
TaskStatus::Unknown(status) => {
println!("Unknown task status: {}", status);
continue;
},
TaskStatus::Queued => {
println!("Task is queued");
continue;
},
TaskStatus::Running => {
println!("Task is running");
continue;
},
},
None => {
return Err(anyhow::anyhow!("Task not found"));
},
}
}
Err(anyhow::anyhow!("Task not found"))
}
pub async fn save_generations_to_dir(generations: &[Generation], dir: &str) -> AnyhowResult<()> {
let dir = Path::new(dir);
if !dir.exists() {
std::fs::create_dir_all(dir)?;
}
for generation in generations {
let response = reqwest::get(generation.url.clone()).await?;
let image_bytes = response.bytes().await?;
let url = Url::parse(&generation.url)?;
let ext = url.path().split(".").last().unwrap_or("png");
let path = Path::new(dir).join(format!("{}.{}", generation.id, ext));
let mut file = File::create(path)?;
file.write_all(&image_bytes)?;
let thumbnail_url = generation.encodings.thumbnail.path.clone();
let thumbnail_response = reqwest::get(thumbnail_url).await?;
let thumbnail_bytes = thumbnail_response.bytes().await?;
let thumbnail_path = Path::new(dir).join(format!("{}_thumbnail.{}", generation.id, ext));
let mut thumbnail_file = File::create(thumbnail_path)?;
thumbnail_file.write_all(&thumbnail_bytes)?;
}
Ok(())
}
fn find_task_response_by_id(status_response: &VideoGenStatusResponse, task_id: String) -> Option<&TaskResponse> {
status_response.task_responses.iter().find(|task| task.id == task_id)
}
#[cfg(test)]
mod tests {
use crate::credentials::SoraCredentials;
use crate::image_gen::image_gen_status::{get_image_gen_status, save_generations_to_dir, wait_for_image_gen_status, StatusRequest, VideoGenStatusResponse};
use errors::AnyhowResult;
use std::fs::read_to_string;
use testing::test_file_path::test_file_path;
#[ignore]
#[tokio::test]
pub async fn test_deserialize_status_response() -> AnyhowResult<()> {
let response = read_to_string(test_file_path("test_data/image_gen/test_status_response_long.json")?)?;
let _response: VideoGenStatusResponse = serde_json::from_str(&response)?;
Ok(())
}
#[ignore] // You can manually run "ignore" tests in the IDE, but they won't run in CI.
#[tokio::test]
pub async fn manual_test() -> AnyhowResult<()> {
let sentinel = read_to_string(test_file_path("test_data/temp/sentinel.txt")?)?;
let sentinel = sentinel.trim().to_string();
let cookie = read_to_string(test_file_path("test_data/temp/cookie.txt")?)?;
let cookie = cookie.trim().to_string();
let bearer = read_to_string(test_file_path("test_data/temp/bearer.txt")?)?;
let bearer = bearer.trim().to_string();
let creds = SoraCredentials { bearer_token: bearer, cookie, sentinel: Some(sentinel) };
// Get the task status for a specific task
// let response = get_image_gen_status(&StatusRequest::new(None, Some("task_01jr9yvpfyetx9r7qvvx38scna".to_string())), &creds).await?;
let response = get_image_gen_status(&StatusRequest::new(Some(50), None), &creds).await?;
println!("task_id: {}", response.task_responses[0].id);
let task_id = response.task_responses[0].id.clone();
let task_response = wait_for_image_gen_status(
&task_id,
&creds,
Some(10)
).await?;
assert!(task_response.status == "succeeded");
Ok(())
}
#[ignore]
#[tokio::test]
pub async fn test_save_generations_to_dir() -> AnyhowResult<()> {
let response = read_to_string(test_file_path("test_data/image_gen/test_status_response_long.json")?)?;
let response: VideoGenStatusResponse = serde_json::from_str(&response)?;
save_generations_to_dir(&response.task_responses[0].generations, test_file_path("test_data/image_gen/generations")?.to_str().unwrap()).await?;
Ok(())
}
}
@@ -2,5 +2,3 @@ pub (crate) mod image_gen_http_request;
pub mod common;
pub mod sora_image_gen_remix;
pub mod sora_image_gen_simple;
pub mod image_gen_status;
pub use image_gen_status::{get_image_gen_status, save_generations_to_dir, wait_for_image_gen_status, Generation, StatusRequest, TaskResponse, VideoGenStatusResponse};
@@ -1,172 +0,0 @@
{
"task_responses": [
{
"id": "task_01jr7xwwjyem5t268ym01wn9qs",
"user": "user-eOFctNDVUgUV6aaW513mcCFq",
"created_at": "2025-04-07T10:49:18.686690Z",
"status": "succeeded",
"progress_pct": 0.6789999999999999,
"progress_pos_in_queue": null,
"estimated_queue_wait_time": null,
"queue_status_message": null,
"priority": 1,
"type": "image_gen",
"prompt": "Can we make an alien planet skyscape where the clouds were giant whales. Maybe the planet is a gas giant",
"n_variants": 2,
"n_frames": 1,
"height": 480,
"width": 854,
"model": null,
"operation": "simple_compose",
"inpaint_items": [],
"preset_id": null,
"caption": null,
"actions": null,
"interpolation": null,
"sdedit": null,
"remix_config": null,
"quality": "standard",
"generations": [
{
"id": "gen_01jr7xycyxfptaqtcq65bz8f46",
"task_id": "task_01jr7xwwjyem5t268ym01wn9qs",
"created_at": "2025-04-07T10:50:08.231958Z",
"deleted_at": null,
"url": "https://videos.openai.com/vg-assets/assets%2Ftask_01jr7xwwjyem5t268ym01wn9qs%2Fsrc_1.png?st=2025-04-07T09%3A33%3A44Z&se=2025-04-13T10%3A33%3A44Z&sks=b&skt=2025-04-07T09%3A33%3A44Z&ske=2025-04-13T10%3A33%3A44Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=iulvTinTA8YVVFDIEjoPKqZT%2BL%2BZvs5aT0mhjQg6YKw%3D&az=oaivgprodscus",
"seed": 12345,
"can_download": true,
"download_status": "ready",
"is_favorite": false,
"is_liked": false,
"is_public": true,
"is_archived": false,
"is_featured": false,
"has_feedback": false,
"like_count": 0,
"cloudflare_metadata": null,
"cf_thumbnail_url": null,
"encodings": {
"source": {
"path": "https://videos.openai.com/vg-assets/assets%2Ftask_01jr7xwwjyem5t268ym01wn9qs%2Fimg_1.webp?st=2025-04-07T09%3A33%3A44Z&se=2025-04-13T10%3A33%3A44Z&sks=b&skt=2025-04-07T09%3A33%3A44Z&ske=2025-04-13T10%3A33%3A44Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=NU1Nx7GtchzkYdeb6z5TEbm9Y31jIUcTwPdqBl65T7s%3D&az=oaivgprodscus",
"size": null,
"width": null,
"height": null,
"duration_secs": null,
"ssim": null
},
"md": null,
"ld": null,
"thumbnail": {
"path": "https://videos.openai.com/vg-assets/assets%2Ftask_01jr7xwwjyem5t268ym01wn9qs%2Fimg_1_thumb.webp?st=2025-04-07T09%3A33%3A44Z&se=2025-04-13T10%3A33%3A44Z&sks=b&skt=2025-04-07T09%3A33%3A44Z&ske=2025-04-13T10%3A33%3A44Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=AQzzZYs0tYGBWwnFM5I03Wg6K8VZiNjLDMalRjxokeY%3D&az=oaivgprodscus",
"size": null
},
"spritesheet": null
},
"width": 1536,
"height": 1024,
"n_frames": 1,
"prompt": "Can we make an alien planet skyscape where the clouds were giant whales. Maybe the planet is a gas giant",
"title": "Whale Cloud Skyscape",
"actions": null,
"inpaint_items": null,
"interpolation": null,
"sdedit": null,
"operation": "simple_compose",
"model": null,
"preset_id": null,
"user": {
"id": "user-eOFctNDVUgUV6aaW513mcCFq",
"username": "kasisnu"
},
"moderation_result": {
"type": "passed",
"results_by_frame_index": {},
"code": null,
"is_output_rejection": false,
"task_id": "task_01jr7xwwjyem5t268ym01wn9qs"
},
"paragen_status": null,
"task_type": "image_gen",
"remix_config": null,
"quality": "standard"
},
{
"id": "gen_01jr7xycz4fbzrf6kjj70hpfb7",
"task_id": "task_01jr7xwwjyem5t268ym01wn9qs",
"created_at": "2025-04-07T10:50:08.233213Z",
"deleted_at": null,
"url": "https://videos.openai.com/vg-assets/assets%2Ftask_01jr7xwwjyem5t268ym01wn9qs%2Fsrc_0.png?st=2025-04-07T09%3A33%3A44Z&se=2025-04-13T10%3A33%3A44Z&sks=b&skt=2025-04-07T09%3A33%3A44Z&ske=2025-04-13T10%3A33%3A44Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=b%2Frn10WEfVBLqLao9k1UgFrS6QqJis8Co81tSx8oI7M%3D&az=oaivgprodscus",
"seed": 12345,
"can_download": true,
"download_status": "ready",
"is_favorite": false,
"is_liked": false,
"is_public": true,
"is_archived": false,
"is_featured": false,
"has_feedback": false,
"like_count": 0,
"cloudflare_metadata": null,
"cf_thumbnail_url": null,
"encodings": {
"source": {
"path": "https://videos.openai.com/vg-assets/assets%2Ftask_01jr7xwwjyem5t268ym01wn9qs%2Fimg_0.webp?st=2025-04-07T09%3A33%3A44Z&se=2025-04-13T10%3A33%3A44Z&sks=b&skt=2025-04-07T09%3A33%3A44Z&ske=2025-04-13T10%3A33%3A44Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=o1Fdh1mh1O0P6jmnkcJlf4F7FWb3h%2BKSVRtVIXqjEJE%3D&az=oaivgprodscus",
"size": null,
"width": null,
"height": null,
"duration_secs": null,
"ssim": null
},
"md": null,
"ld": null,
"thumbnail": {
"path": "https://videos.openai.com/vg-assets/assets%2Ftask_01jr7xwwjyem5t268ym01wn9qs%2Fimg_0_thumb.webp?st=2025-04-07T09%3A33%3A44Z&se=2025-04-13T10%3A33%3A44Z&sks=b&skt=2025-04-07T09%3A33%3A44Z&ske=2025-04-13T10%3A33%3A44Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=2l%2BemWaC8q5o%2BIhxI5t%2BexjGe3F8ipPnPym0IIygvrA%3D&az=oaivgprodscus",
"size": null
},
"spritesheet": null
},
"width": 1536,
"height": 1024,
"n_frames": 1,
"prompt": "Can we make an alien planet skyscape where the clouds were giant whales. Maybe the planet is a gas giant",
"title": "Whale Cloud Skyscape",
"actions": null,
"inpaint_items": null,
"interpolation": null,
"sdedit": null,
"operation": "simple_compose",
"model": null,
"preset_id": null,
"user": {
"id": "user-eOFctNDVUgUV6aaW513mcCFq",
"username": "kasisnu"
},
"moderation_result": {
"type": "passed",
"results_by_frame_index": {},
"code": null,
"is_output_rejection": false,
"task_id": "task_01jr7xwwjyem5t268ym01wn9qs"
},
"paragen_status": null,
"task_type": "image_gen",
"remix_config": null,
"quality": "standard"
}
],
"num_unsafe_generations": 0,
"title": "Whale Cloud Skyscape",
"moderation_result": {
"type": "passed",
"results_by_frame_index": {},
"code": null,
"is_output_rejection": false,
"task_id": "task_01jr7xwwjyem5t268ym01wn9qs"
},
"failure_reason": null,
"needs_user_review": false
}
],
"last_id": "task_01jr7xwwjyem5t268ym01wn9qs",
"has_more": false
}
@@ -6,11 +6,11 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
easyenv = { path = "../../easyenv" }
+2 -2
View File
@@ -14,7 +14,7 @@ name = "bootstrap"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -23,7 +23,7 @@ errors = { path = "../errors" }
server_environment = { path = "../server_environment" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
dotenv = "0.15.0"
+2 -2
View File
@@ -13,11 +13,11 @@ name = "bucket_paths"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# Internal
crockford = { path = "../data/crockford" }
@@ -3,7 +3,6 @@ use crate::legacy::remote_file_manager_paths::file_descriptor::FileDescriptor;
// TODO ASK BRANDON WHAT path should this be?
const MEDIA_FILE_DIRECTORY: &str = "/media";
#[deprecated(note="DO NOT USE THIS AWFUL CLOUD BUCKET CLIENT. See `BucketClient`")]
pub struct MediaImagePngDescriptor;
impl FileDescriptor for MediaImagePngDescriptor {
@@ -27,13 +27,11 @@ impl PublicPath for MediaFileBucketPath {}
impl MediaFileBucketPath {
/// NB: The `optional_extension` needs to include a "." (period) if you want it in the file.
pub fn generate_new(optional_prefix: Option<&str>, optional_extension: Option<&str>) -> Self {
let entropy = crockford_entropy_lower(32);
Self::from_object_hash(&entropy, optional_prefix, optional_extension)
}
/// NB: The `optional_extension` needs to include a "." (period) if you want it in the file.
pub fn from_object_hash(hash: &str, optional_prefix: Option<&str>, optional_extension: Option<&str>) -> Self {
// TODO: Path construction could be cleaner.
let directory = MediaFileBucketDirectory::from_object_hash(hash);
+2 -2
View File
@@ -13,7 +13,7 @@ name = "memory_caching"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -21,7 +21,7 @@ normal = ["workspace-build-acceleration"]
errors = { path = "../../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
anyhow = "1.0.86"
+2 -2
View File
@@ -13,14 +13,14 @@ name = "redis_caching"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
errors = { path = "../../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# Redis Database
r2d2_redis = "0.14.0"
+2 -2
View File
@@ -13,14 +13,14 @@ name = "concurrency"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
errors = { path = "../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
# (None yet)
+2 -2
View File
@@ -14,14 +14,14 @@ name = "cookies"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
errors = { path = "../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
hmac = "0.10.1" # jwt signing
+2 -2
View File
@@ -14,14 +14,14 @@ name = "collections"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
#errors = { path = "../../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
# KEEP THIS TO A MINIMUM OR NIL.
+2 -2
View File
@@ -15,14 +15,14 @@ name = "crockford"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
# (None yet)
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
rand = "0.8.5"
+2 -2
View File
@@ -13,14 +13,14 @@ name = "datetimes"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
# (None yet)
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
chrono = { version = "0.4.22", features = ["serde"] }
+2 -2
View File
@@ -14,11 +14,11 @@ name = "primitives"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# NB: This is designed to be a central crate with few dependencies.
# Consider the dependencies here wisely.
+2 -2
View File
@@ -13,7 +13,7 @@ name = "config"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
# TODO: Remove these dependencies.
# These were introduced in refactoring. Config should have few, if any, dependencies.
@@ -22,7 +22,7 @@ normal = ["workspace-build-acceleration"]
easyenv = { path = "../../../lib/easyenv" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
anyhow = "1.0.86"
@@ -13,7 +13,7 @@ name = "http_server_common"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -21,7 +21,7 @@ normal = ["workspace-build-acceleration"]
errors = { path = "../../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
anyhow = "1.0.86"
+2 -2
View File
@@ -14,11 +14,11 @@ name = "dimensions"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# Internal
errors = { path = "../errors" }
+2 -2
View File
@@ -13,14 +13,14 @@ name = "easyenv"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
storyteller_root = { path = "../storyteller_root" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
dotenv = "0.15.0"
+2 -2
View File
@@ -13,7 +13,7 @@ name = "elasticsearch_schema"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -22,7 +22,7 @@ errors = { path = "../errors" }
tokens = { path = "../../_types/tokens" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
elasticsearch = "8.5.0-alpha.1"
+2 -2
View File
@@ -10,14 +10,14 @@ path = "src/lib.rs"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
errors = { path = "../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
lettre = "0.11.2"
+2 -2
View File
@@ -14,7 +14,7 @@ name = "errors"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# NB: This is one of the most central crates in the monorepo and everything depends on it.
@@ -23,7 +23,7 @@ normal = ["workspace-build-acceleration"]
anyhow = "1.0.86"
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
[dev-dependencies]
# None yet
+2 -2
View File
@@ -15,14 +15,14 @@ name = "archives"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
errors = { path = "../../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
zip = "0.6.6"
+2 -2
View File
@@ -14,11 +14,11 @@ name = "filesys"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# Internal (keep this to a minimum!)
errors = { path = "../../errors" }
+2 -2
View File
@@ -14,14 +14,14 @@ name = "hashing"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
errors = { path = "../../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
bcrypt = "0.15" # password hashes
+2 -2
View File
@@ -15,7 +15,7 @@ name = "images"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -23,7 +23,7 @@ normal = ["workspace-build-acceleration"]
errors = { path = "../../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
image = "0.25.1"
+2 -2
View File
@@ -13,7 +13,7 @@ name = "media" # NB: Public "media" crate was squatted, so we're good to use thi
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -21,7 +21,7 @@ normal = ["workspace-build-acceleration"]
errors = { path = "../../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
log = "0.4.14"
+2 -2
View File
@@ -14,11 +14,11 @@ name = "mimetypes"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# External
infer = "0.16.0" # Mimetype detection
+2 -2
View File
@@ -14,11 +14,11 @@ name = "videos"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../../my-workspace-hack" }
# Internal
errors = { path = "../../errors" }
+2 -2
View File
@@ -13,7 +13,7 @@ name = "idempotency"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -21,7 +21,7 @@ normal = ["workspace-build-acceleration"]
# (None yet)
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
uuid = { version = "1.8.0", features = ["v4"] }
+2 -2
View File
@@ -13,12 +13,12 @@ name = "image_algorithms"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# Internal
errors = { path = "../errors" }
+2 -2
View File
@@ -16,7 +16,7 @@ name = "jobs_common"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
@@ -25,7 +25,7 @@ errors = { path = "../errors" }
redis_common = { path = "../redis_common" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
anyhow = "1.0.86"
+5 -5
View File
@@ -14,18 +14,18 @@ name = "logging"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# cargo-hakari workspace hack (faster compile times)
workspace-build-acceleration = { workspace = true }
# Internal
# (None yet)
# Workspace hack (faster compile times)
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
env_logger = "0.11.3"
log = { workspace = true }
log = "0.4.20"
[dev-dependencies]
# None yet
+2 -2
View File
@@ -14,14 +14,14 @@ name = "markdown"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
errors = { path = "../errors" }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
once_cell = "1.18.0"
+2 -2
View File
@@ -14,7 +14,7 @@ name = "migration"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# Internal
@@ -42,7 +42,7 @@ tokio = { version = "1.38.0", features = ["full"] }
sqlx = { version = "0.7.2", features = [ "mysql", "runtime-tokio", "tls-rustls", "chrono" ] }
# Workspace hack (faster compile times)
workspace-build-acceleration = { version = "0.1", path = "../../workspace-build-acceleration" }
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
[dev-dependencies]
# None yet
+12 -11
View File
@@ -13,35 +13,36 @@ name = "mysql_queries"
path = "src/lib.rs"
[package.metadata.cargo-udeps.ignore]
normal = ["workspace-build-acceleration"]
normal = ["my-workspace-hack"]
[dependencies]
# cargo-hakari workspace hack (faster compile times)
workspace-build-acceleration = { workspace = true }
# Internal
bucket_paths = { path = "../bucket_paths" }
composite_identifiers = { path = "../../_types/composite_identifiers" }
enums = { path = "../../_types/enums" }
errors = { workspace = true }
errors = { path = "../errors" }
idempotency = { path = "../idempotency" }
primitives = { path = "../data/primitives" }
reusable_types = { path = "../../_types/reusable_types" }
tokens = { path = "../../_types/tokens" }
# Workspace hack (faster compile times)
my-workspace-hack = { version = "0.1", path = "../../my-workspace-hack" }
# External
anyhow = { workspace = true }
anyhow = "1.0.86"
chrono = { version = "0.4.22", features = ["serde"] }
log = { workspace = true }
log = "0.4.14"
# Needed to safety check some queries we can't use escaping for
once_cell = { workspace = true }
regex = { workspace = true }
once_cell = "1.18.0"
regex = "1.5.4"
# Serialization
serde = { workspace = true }
serde_derive = { workspace = true }
serde_json = { workspace = true }
serde = "1.0.125"
serde_derive = "1.0.125"
serde_json = "1.0.108"
serial_test = "3.0.0"
# BigNum

Some files were not shown because too many files have changed in this diff Show More