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
+23 -1
View File
@@ -7,6 +7,7 @@ import { LoggerModule } from 'nestjs-pino';
import {
appConfig,
audiolessEpubConfig,
authConfig,
bookRequestConfig,
dbConfig,
@@ -14,6 +15,7 @@ import {
fileWriteConfig,
migrationConfig,
oidcRuntimeConfig,
podcastConfig,
storageConfig,
} from './config/config';
import { validateEnv } from './config/env.validation';
@@ -88,6 +90,10 @@ import { BookDuplicatesModule } from './modules/book-duplicates/book-duplicates.
import { MaintenanceModule } from './modules/maintenance/maintenance.module';
import { BookMoveModule } from './modules/book-move/book-move.module';
import { AudiobookModule } from './modules/audiobook/audiobook.module';
import { TtsModule } from './modules/tts/tts.module';
import { SearchModule } from './modules/search/search.module';
import { WatchDownloadModule } from './modules/watch-download/watch-download.module';
import { PodcastModule } from './modules/podcast/podcast.module';
@Module({
imports: [
@@ -95,7 +101,19 @@ import { AudiobookModule } from './modules/audiobook/audiobook.module';
ConfigModule.forRoot({
isGlobal: true,
validate: validateEnv,
load: [appConfig, dbConfig, authConfig, storageConfig, fileWriteConfig, emailConfig, migrationConfig, bookRequestConfig, oidcRuntimeConfig],
load: [
appConfig,
dbConfig,
authConfig,
storageConfig,
fileWriteConfig,
emailConfig,
migrationConfig,
bookRequestConfig,
oidcRuntimeConfig,
podcastConfig,
audiolessEpubConfig,
],
}),
ScheduleModule.forRoot(),
ThrottlerModule.forRoot({
@@ -173,6 +191,10 @@ import { AudiobookModule } from './modules/audiobook/audiobook.module';
MaintenanceModule,
BookMoveModule,
BrowseCountsModule,
TtsModule,
SearchModule,
WatchDownloadModule,
PodcastModule,
],
providers: [
{ provide: APP_INTERCEPTOR, useClass: AuditInterceptor },