UNPKG

wakitsu

Version:

Hobby project for managing anime watch list on Kitsu through CLI

108 lines 2.98 kB
import z from 'zod'; export const UserDataRespSchema = z.object({ data: z.array(z.object({ id: z.string(), attributes: z.object({ name: z.string(), about: z.string(), }), })), included: z.array(z.object({ attributes: z.object({ statsData: z.object({ time: z.number().optional(), completed: z.number().optional(), }), }), })), }); export const KitsuCacheSchema = z.object({ libID: z.string(), jpTitle: z.string(), enTitle: z.string().nullable(), synonyms: z.array(z.string()), epCount: z.number(), epProgress: z.number(), slug: z.string(), }); export const zodKitsuConfigData = { id: z.string(), urls: z.object({ profile: z.string(), library: z.string(), }), stats: z.object({ secondsSpentWatching: z.number(), completedSeries: z.number(), }), about: z.string(), username: z.string(), access_token: z.string(), refresh_token: z.string(), token_expiration: z.number(), fileBindings: z.array(z.object({ id: z.string(), name: z.string(), })), cache: z.array(KitsuCacheSchema), }; export const KitsuDataSchema = z.object(zodKitsuConfigData); export const LibraryEntriesSchema = z.object({ data: z.array(z.object({ id: z.string(), attributes: z.object({ progress: z.number(), ratingTwenty: z.number().nullable(), }), })), included: z.array(z.object({ id: z.string(), attributes: z.object({ episodeCount: z.number().nullable(), averageRating: z.string().nullable(), synopsis: z.string(), }), })), }); const KitsuAnimeDataSchema = z.object({ id: z.string(), attributes: z.object({ episodeCount: z.number().nullable(), slug: z.string(), titles: z.object({ en: z.string().nullable().default(''), en_jp: z.string().default(''), en_us: z.string().default(''), }), averageRating: z.string().nullable(), canonicalTitle: z.string(), abbreviatedTitles: z.array(z.string()), synopsis: z.string().nullable(), }), }); export const KitsuAnimeEntriesSchema = z.object({ data: z.array(KitsuAnimeDataSchema), }); export const LibraryInfoSchema = z.object({ data: z.array(z.object({ id: z.string(), attributes: z.object({ progress: z.number(), }), })), included: z.array(KitsuAnimeDataSchema), }); export const LibraryPatchRespSchema = z.object({ data: z.object({ id: z.string(), attributes: z.object({ progress: z.number(), }), }), included: z.array(z.object({ attributes: z.object({ episodeCount: z.number().nullable(), }), })), }); //# sourceMappingURL=kitsu-schemas.js.map