- Add `openapi-fetch` dependency; generate `lib/tmdb/schema.d.ts` from
TMDB's OpenAPI spec and delete `lib/tmdb/types.ts`
- Rewrite `lib/tmdb/client.ts` to use the typed fetch client against
the generated schema, exporting `TmdbMovieDetails`, `TmdbTvDetails`,
`TmdbVideo`, and `TmdbGenre` directly
- Fix null-safety across services (`credits`, `availability`,
`metadata`, `person`, `webhooks`) and call sites (explore page,
search route, explore actions) to handle optional fields produced
by the stricter generated types
- Update `metadata.ts` and `metadata.test.ts` to import shared types
from `@/lib/tmdb/client` instead of the removed `types.ts`
- Exclude `lib/tmdb/schema.d.ts` from Biome linting
- 211 tests across 15 files covering services (tracking, discovery,
metadata, backup, credits, webhooks, settings, update-check, colors,
person), utilities (config, cron, providers, title-theme), and TMDB
image URL helpers
- `lib/test-preload.ts` + `bunfig.toml` wire up a global in-memory
SQLite DB with migrations for all DB-backed tests
- `lib/test-utils.ts` provides `clearAllTables()` and seed helpers
(insertUser, insertTitle, insertTvShow, insertMovieWatch, etc.)
- Export `getBackupSource`, `isKnownBackup`, `isValidBackupFilename`,
`buildBackupCron`, `performUpdateCheck` internals for direct testing
- GitHub Actions workflow runs `bun test --coverage` on push/PR to main