feat: add read-aloud and media playback support

Add EPUB narration, shared media controls, and native device session integration.

Apply the generated migrations and update all first-party clients alongside the server.

BREAKING CHANGE: introduce incompatible database and API contracts for media playback
This commit is contained in:
neon
2026-09-19 02:02:24 +00:00
parent c292d6ccd2
commit e0d3d42150
844 changed files with 151839 additions and 3415 deletions
+10
View File
@@ -0,0 +1,10 @@
export declare class Overlayer {
add(key: string, range: Range, draw: (rects: DOMRectList, opts: unknown) => Element, options?: unknown): void
remove(key: string): void
redraw(): void
static highlight(rects: DOMRectList, options?: { color?: string }): Element
static underline(rects: DOMRectList, options?: { color?: string; width?: number }): Element
static strikethrough(rects: DOMRectList, options?: { color?: string; width?: number }): Element
static squiggly(rects: DOMRectList, options?: { color?: string; width?: number }): Element
static outline(rects: DOMRectList, options?: { color?: string; width?: number; radius?: number }): Element
}
+1
View File
@@ -0,0 +1 @@
export declare function textWalker(doc: Document): Generator<{ node: Text; start: number; end: number }>
+9
View File
@@ -0,0 +1,9 @@
export declare class TTS {
constructor(doc: Document, textWalker: unknown, highlightCallback: (range: Range) => void, granularity: string)
start(): string | null
resume(): string | null
prev(paused?: boolean): string | null
next(paused?: boolean): string | null
from(range: Range): string | null
setMark(mark: string): void
}