SDK y paquetes@styx/source-sdkinterfaces

Interface: ISeekableMediaSource

Referencia de @styx/source-sdk generada de su TSDoc.

ImplementadoSin versión del tren todavía· generada desde packages/source-sdk/package.json

Página generada desde el TSDoc de @styx/source-sdk. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere.

Interface: ISeekableMediaSource

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.

Properties

kind

readonly kind: string

Tipo de source (local, http, s3, webdav, torrent, etc.).


sizeBytes

readonly sizeBytes: number

Tamaño total en bytes (0 si desconocido, ej: streams live).


uri

readonly uri: string

URI canónica del source (file://, https://, s3://, etc.).

Methods

availability()

availability(): SourceAvailability

Consulta la disponibilidad actual del source.

Returns

SourceAvailability

Estado de disponibilidad.


cancel()

cancel(requestId): Promise<void>

Cancela una read individual por su requestId (r20 §3.6). No afecta a otros requests en curso.

Parameters

requestId

string

ID del request a cancelar.

Returns

Promise<void>


cancelOutside()

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.

Parameters

window

IReadWindow

Ventana de offsets a preservar.

Returns

Promise<void>


metrics()

metrics(): ISourceMetrics | null

Métricas observadas del source (para SourceMetrics aggregate). NO scoring — eso va en playback-policy o source-selection-policy.

Returns

ISourceMetrics | null

Métricas actuales o null si no hay datos todavía.


prefetch()

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.

Parameters

ranges

readonly IPrefetchRange[]

Rangos a prefetchar.

Returns

Promise<void>


readAt()

readAt(request): Promise<Result<IReadResult, ResultError<SourceErrorCode>>>

Lee length bytes desde offset.

Parameters

request

IReadRequest

Request de lectura con purpose + deadline + requestId.

Returns

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).