Referencia de @styx/source-sdk generada de su TSDoc.
packages/source-sdk/package.jsonPágina generada desde
el TSDoc de @styx/source-sdk. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
Interfaz central de todo source de media (r04).
Implementaciones: LocalFileSource, HttpRangeSource (este package),
S3Source, WebDavSource, TorrentSource, JellyfinSource,
XtreamSource, CompositeSource (F3+).
Thread-safety: las implementaciones deben soportar reads concurrentes
con distintos requestId. El cancel(requestId) es granular.
readonlykind:string
Tipo de source (local, http, s3, webdav, torrent, etc.).
readonlysizeBytes:number
Tamaño total en bytes (0 si desconocido, ej: streams live).
readonlyuri:string
URI canónica del source (file://, https://, s3://, etc.).
availability():
SourceAvailability
Consulta la disponibilidad actual del source.
Estado de disponibilidad.
cancel(
requestId):Promise<void>
Cancela una read individual por su requestId (r20 §3.6).
No afecta a otros requests en curso.
string
ID del request a cancelar.
Promise<void>
cancelOutside(
window):Promise<void>
Cancela todos los requests fuera de la ventana dada (r20 §3.6). Útil tras un seek: cancela reads del offset antiguo. Impl real deferida a F3; este SDK declara la firma.
Ventana de offsets a preservar.
Promise<void>
metrics():
ISourceMetrics|null
Métricas observadas del source (para SourceMetrics aggregate). NO scoring — eso va en playback-policy o source-selection-policy.
ISourceMetrics | null
Métricas actuales o null si no hay datos todavía.
prefetch(
ranges):Promise<void>
Hint de prefetch: el source debería precargar estos rangos en cache. No bloquea; el source puede ignorar si su cache está lleno.
readonly IPrefetchRange[]
Rangos a prefetchar.
Promise<void>
readAt(
request):Promise<Result<IReadResult,ResultError<SourceErrorCode>>>
Lee length bytes desde offset.
Request de lectura con purpose + deadline + requestId.
Promise<Result<IReadResult, ResultError<SourceErrorCode>>>
Result con el resultado (puede ser parcial) o ResultError<SourceErrorCode>.
El código viaja dentro de ResultError (ver error-handling.md).