1mod auth;
8mod backoff;
9mod client;
10mod clock;
11pub mod config;
12mod consts;
13mod downloadable;
14mod error;
15mod executor;
16mod extras;
17mod ffmpeg;
18mod fs;
19mod graph;
20mod hash;
21mod http;
22mod limiter;
23mod lineage;
24mod manifest;
25mod model;
26mod naming;
27pub mod reconcile;
28pub mod select;
29mod tag;
30
31#[cfg(test)]
32mod testutil;
33
34#[cfg(test)]
35mod sync_chaos;
36
37pub use auth::{ClerkAuth, TOKEN_EXPIRY_WARN_DAYS, TokenExpiry, classify_token_expiry};
38pub use client::{Playlist, SunoClient};
39pub use clock::Clock;
40pub use config::{
41 AccountConfig, AreaMode, AreasConfig, AudioFormat, Config, Defaults, EffectiveSettings,
42 FlagOverrides, SourceConfig,
43};
44pub use downloadable::is_downloadable;
45pub use error::{Error, Result};
46pub use executor::{ExecOptions, ExecOutcome, Failure, Ports, RunStatus, execute};
47pub use extras::{
48 INDEX_SCHEMA_VERSION, M3u8Entry, render_clip_details, render_clip_lrc, render_clip_lyrics,
49 render_library_index, render_m3u8,
50};
51pub use ffmpeg::{Ffmpeg, FfmpegError, FfmpegErrorKind, WebpEncodeSettings};
52pub use fs::{FileStat, Filesystem, FsError, FsErrorKind};
53pub use graph::{
54 AdoptDecision, AlbumArt, CacheEntry, LineageStore, Node, Owner, OwnerCheck, OwnerGate,
55 PlaylistState, StoredEdge, adopt_decision, owner_gate,
56};
57pub use hash::{art_hash, art_url_hash, content_hash, meta_hash};
58pub use http::{Http, HttpRequest, HttpResponse, Method, TransportError};
59pub use lineage::{
60 Edge, EdgeRole, EdgeType, LineageContext, Resolution, ResolveOpts, ResolveStatus, RootInfo,
61 edge_type, immediate_parent, lineage_edges, resolve_roots,
62};
63pub use manifest::{ArtifactState, Manifest, ManifestEntry};
64pub use model::{Clip, HistoryEntry};
65pub use naming::{
66 CharacterSet, DEFAULT_TEMPLATE, NamingConfig, NamingRequest, RenderedName, render_clip_name,
67 render_clip_names, sanitise_name,
68};
69pub use reconcile::{
70 Action, AlbumDesired, ArtifactKind, Desired, DesiredArtifact, LocalFile, Plan, PlaylistDesired,
71 SourceMode, SourceStatus, album_desired, deletion_allowed, plan_album_artifacts,
72 plan_playlist_artifacts, reconcile,
73};
74pub use tag::{TrackMetadata, tag_flac, tag_mp3};