/** `@app/trpc` 对外入口:appRouter 类型 + 可独立调用的 service。 */ // Router export { appRouter } from "./router/index.js"; export type { AppRouter, RouterInputs, RouterOutputs, TrpcContext } from "./router/index.js"; export { mediaRouter } from "./router/media.router.js"; // Service layer — usable without tRPC (tests, scripts) export { userService } from "./services/user.service.js"; export type { ListUsersInput, GetUserInput, CreateUserInput, UpdateUserInput, DeleteUserInput, UserListOutput, } from "./services/user.service.js"; export { authService, AuthError, sessionCookie, clearSessionCookie, } from "./services/auth.service.js"; export type { RegisterInput, LoginInput, ChangePasswordInput, SessionScope, RequestResetInput, ResetPasswordInput, } from "./services/auth.service.js"; // Media / WebDAV export { mountService } from "./services/mount.service.js"; export type { MountPublic } from "./services/mount.service.js"; export { libraryService } from "./services/library.service.js"; export { scrapeService, parseEpisodeFromFilename, buildSearchQuery, } from "./services/scrape.service.js"; export type { BangumiSearchHit } from "./services/scrape.service.js"; // Playback / danmaku export { playbackService } from "./services/playback.service.js"; export { danmakuService } from "./services/danmaku.service.js"; // Stream range proxy export { openRemoteFileStream, StreamSourceError } from "./services/stream.service.js"; export type { RemoteFileStream } from "./services/stream.service.js";