;
+ }
+
+ console.log('Search Data Results', searchData);
+
+ // HACK: should add a total to the nodes again?
+ const totalNodes = searchData?.searchMediaByTitle?.nodes?.length || 0;
+
+ if (searchData?.searchMediaByTitle && totalNodes > 0) {
+ return (
+
+
+
+ );
+ } else {
+ return
Missing Data
;
+ }
+}
diff --git a/src/types/graphql.ts b/src/types/graphql.ts
new file mode 100644
index 0000000000..1f628b19cf
--- /dev/null
+++ b/src/types/graphql.ts
@@ -0,0 +1,3739 @@
+export type Maybe = T | null;
+export type InputMaybe = Maybe;
+export type Exact = {
+ [K in keyof T]: T[K];
+};
+export type MakeOptional = Omit & {
+ [SubKey in K]?: Maybe;
+};
+export type MakeMaybe = Omit & {
+ [SubKey in K]: Maybe;
+};
+/** All built-in and custom scalars, mapped to their actual values */
+export type Scalars = {
+ ID: string;
+ String: string;
+ Boolean: boolean;
+ Int: number;
+ Float: number;
+ /** A date, expressed as an ISO8601 string */
+ Date: string;
+ /** An ISO 8601-encoded date */
+ ISO8601Date: Date;
+ /** An ISO 8601-encoded datetime */
+ ISO8601DateTime: Date;
+ /** Represents untyped JSON */
+ JSON: Record;
+ /** A loose key-value map in GraphQL */
+ Map: Record;
+ Upload: any;
+};
+
+/** A user account on Kitsu */
+export type Account = WithTimestamps & {
+ readonly __typename?: 'Account';
+ /** The country this user resides in */
+ readonly country?: Maybe;
+ readonly createdAt: Scalars['ISO8601DateTime'];
+ /** The email addresses associated with this account */
+ readonly email: ReadonlyArray;
+ /** The features this user has access to */
+ readonly enabledFeatures: ReadonlyArray;
+ /** Facebook account linked to the account */
+ readonly facebookId?: Maybe;
+ readonly id: Scalars['ID'];
+ /** Primary language for the account */
+ readonly language?: Maybe;
+ /** Longest period an account has had a PRO subscription for in seconds */
+ readonly maxProStreak?: Maybe;
+ /** The PRO subscription for this account */
+ readonly proSubscription?: Maybe;
+ /** The profile for this account */
+ readonly profile: Profile;
+ /** Media rating system used for the account */
+ readonly ratingSystem: RatingSystemEnum;
+ /** Whether Not Safe For Work content is accessible */
+ readonly sfwFilter?: Maybe;
+ /** The site-wide permissions this user has access to */
+ readonly sitePermissions: ReadonlyArray;
+ /** Time zone of the account */
+ readonly timeZone?: Maybe;
+ /** Preferred language for media titles */
+ readonly titleLanguagePreference?: Maybe;
+ /** Twitter account linked to the account */
+ readonly twitterId?: Maybe;
+ readonly updatedAt: Scalars['ISO8601DateTime'];
+};
+
+export type AccountCreateErrorsUnion = ValidationError;
+
+export type AccountCreateInput = {
+ /** The email address to reset the password for */
+ readonly email: Scalars['String'];
+ /** An external identity to associate with the account on creation */
+ readonly externalIdentity?: InputMaybe;
+ /** The name of the user */
+ readonly name: Scalars['String'];
+ /** The password for the user */
+ readonly password: Scalars['String'];
+};
+
+/** Autogenerated return type of AccountCreate */
+export type AccountCreatePayload = {
+ readonly __typename?: 'AccountCreatePayload';
+ readonly errors?: Maybe>;
+ readonly result?: Maybe;
+};
+
+export type AccountExternalIdentityInput = {
+ readonly id: Scalars['String'];
+ readonly provider: ExternalIdentityProviderEnum;
+};
+
+export type AccountMutations = {
+ readonly __typename?: 'AccountMutations';
+ /** Send a password reset email */
+ readonly sendPasswordReset?: Maybe;
+};
+
+export type AccountMutationsSendPasswordResetArgs = {
+ email: Scalars['String'];
+};
+
+/** Autogenerated return type of AccountSendPasswordReset */
+export type AccountSendPasswordResetPayload = {
+ readonly __typename?: 'AccountSendPasswordResetPayload';
+ readonly email: Scalars['String'];
+};
+
+export enum AgeRatingEnum {
+ /** Acceptable for all ages */
+ G = 'G',
+ /** Parental guidance suggested; should be safe for preteens and older */
+ Pg = 'PG',
+ /** Possible lewd or intense themes; should be safe for teens and older */
+ R = 'R',
+ /** Contains adult content or themes; should only be viewed by adults */
+ R18 = 'R18'
+}
+
+/** Generic Amount Consumed based on Media */
+export type AmountConsumed = {
+ /** Total media completed atleast once. */
+ readonly completed: Scalars['Int'];
+ readonly id: Scalars['ID'];
+ /** Total amount of media. */
+ readonly media: Scalars['Int'];
+ /** The profile related to the user for this stat. */
+ readonly profile: Profile;
+ /** Last time we fully recalculated this stat. */
+ readonly recalculatedAt: Scalars['ISO8601Date'];
+ /** Total progress of library including reconsuming. */
+ readonly units: Scalars['Int'];
+};
+
+export type Anime = Episodic &
+ Media &
+ WithTimestamps & {
+ readonly __typename?: 'Anime';
+ /** The recommended minimum age group for this media */
+ readonly ageRating?: Maybe;
+ /** An explanation of why this received the age rating it did */
+ readonly ageRatingGuide?: Maybe;
+ /** The average rating of this media amongst all Kitsu users */
+ readonly averageRating?: Maybe;
+ /** The rank of this media by rating */
+ readonly averageRatingRank?: Maybe;
+ /** A large banner image for this media */
+ readonly bannerImage?: Maybe;
+ /** A list of categories for this media */
+ readonly categories: CategoryConnection;
+ /** The characters who starred in this media */
+ readonly characters: MediaCharacterConnection;
+ readonly createdAt: Scalars['ISO8601DateTime'];
+ /** A brief (mostly spoiler free) summary or description of the media. */
+ readonly description: Scalars['Map'];
+ /** the day that this media made its final release */
+ readonly endDate?: Maybe;
+ /** The number of episodes in this series */
+ readonly episodeCount?: Maybe;
+ /** The general length (in seconds) of each episode */
+ readonly episodeLength?: Maybe;
+ /** Episodes for this media */
+ readonly episodes: EpisodeConnection;
+ /** The number of users with this in their favorites */
+ readonly favoritesCount?: Maybe;
+ readonly id: Scalars['ID'];
+ /** A list of mappings for this media */
+ readonly mappings: MappingConnection;
+ /** Your library entry related to this media. */
+ readonly myLibraryEntry?: Maybe;
+ /** A list of your wiki submissions for this media */
+ readonly myWikiSubmissions: WikiSubmissionConnection;
+ /** The time of the next release of this media */
+ readonly nextRelease?: Maybe;
+ /** The countries in which the media was originally primarily produced */
+ readonly originCountries: ReadonlyArray;
+ /** The languages the media was originally produced in */
+ readonly originLanguages: ReadonlyArray;
+ /**
+ * The country in which the media was primarily produced
+ * @deprecated Replaced with originCountries and originLanguages
+ */
+ readonly originalLocale?: Maybe;
+ /** The poster image of this media */
+ readonly posterImage?: Maybe;
+ /** All posts that tag this media. */
+ readonly posts: PostConnection;
+ /** The companies which helped to produce this media */
+ readonly productions: MediaProductionConnection;
+ /** A list of quotes from this media */
+ readonly quotes: QuoteConnection;
+ /** A list of reactions for this media */
+ readonly reactions: MediaReactionConnection;
+ /** The season this was released in */
+ readonly season?: Maybe;
+ /** Whether the media is Safe-for-Work */
+ readonly sfw: Scalars['Boolean'];
+ /** The URL-friendly identifier of this media */
+ readonly slug: Scalars['String'];
+ /** The staff members who worked on this media */
+ readonly staff: MediaStaffConnection;
+ /** The day that this media first released */
+ readonly startDate?: Maybe;
+ /** The current releasing status of this media */
+ readonly status: ReleaseStatusEnum;
+ /** The stream links. */
+ readonly streamingLinks: StreamingLinkConnection;
+ /** A secondary type for categorizing Anime. */
+ readonly subtype: AnimeSubtypeEnum;
+ /** Description of when this media is expected to release */
+ readonly tba?: Maybe;
+ /** The titles for this media in various locales */
+ readonly titles: TitlesList;
+ /** The total length (in seconds) of the entire series */
+ readonly totalLength?: Maybe;
+ /** Anime or Manga. */
+ readonly type: Scalars['String'];
+ readonly updatedAt: Scalars['ISO8601DateTime'];
+ /** The number of users with this in their library */
+ readonly userCount?: Maybe;
+ /** The rank of this media by popularity */
+ readonly userCountRank?: Maybe;
+ /** Video id for a trailer on YouTube */
+ readonly youtubeTrailerVideoId?: Maybe;
+ };
+
+export type AnimeCategoriesArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ sort?: InputMaybe>>;
+};
+
+export type AnimeCharactersArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ sort?: InputMaybe>>;
+};
+
+export type AnimeDescriptionArgs = {
+ locales?: InputMaybe>;
+};
+
+export type AnimeEpisodesArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ sort?: InputMaybe>>;
+};
+
+export type AnimeMappingsArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+};
+
+export type AnimeMyWikiSubmissionsArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ sort?: InputMaybe>>;
+};
+
+export type AnimePostsArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ sort?: InputMaybe>>;
+};
+
+export type AnimeProductionsArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+};
+
+export type AnimeQuotesArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+};
+
+export type AnimeReactionsArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ sort?: InputMaybe>>;
+};
+
+export type AnimeStaffArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+};
+
+export type AnimeStreamingLinksArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+};
+
+export type AnimeAmountConsumed = AmountConsumed & {
+ readonly __typename?: 'AnimeAmountConsumed';
+ /** Total media completed atleast once. */
+ readonly completed: Scalars['Int'];
+ readonly id: Scalars['ID'];
+ /** Total amount of media. */
+ readonly media: Scalars['Int'];
+ /** The profile related to the user for this stat. */
+ readonly profile: Profile;
+ /** Last time we fully recalculated this stat. */
+ readonly recalculatedAt: Scalars['ISO8601Date'];
+ /** Total time spent in minutes. */
+ readonly time: Scalars['Int'];
+ /** Total progress of library including reconsuming. */
+ readonly units: Scalars['Int'];
+};
+
+export type AnimeCategoryBreakdown = CategoryBreakdown & {
+ readonly __typename?: 'AnimeCategoryBreakdown';
+ /** A Map of category_id -> count for all categories present on the library entries */
+ readonly categories: Scalars['Map'];
+ readonly id: Scalars['ID'];
+ /** The profile related to the user for this stat. */
+ readonly profile: Profile;
+ /** Last time we fully recalculated this stat. */
+ readonly recalculatedAt: Scalars['ISO8601Date'];
+ /** The total amount of library entries. */
+ readonly total: Scalars['Int'];
+};
+
+/** The connection type for Anime. */
+export type AnimeConnection = {
+ readonly __typename?: 'AnimeConnection';
+ /** A list of edges. */
+ readonly edges?: Maybe>>;
+ /** A list of nodes. */
+ readonly nodes?: Maybe>>;
+ /** Information to aid in pagination. */
+ readonly pageInfo: PageInfo;
+ /** The total amount of nodes. */
+ readonly totalCount: Scalars['Int'];
+};
+
+export type AnimeCreateInput = {
+ readonly ageRating?: InputMaybe;
+ readonly ageRatingGuide?: InputMaybe;
+ readonly bannerImage?: InputMaybe;
+ readonly description: Scalars['Map'];
+ readonly endDate?: InputMaybe;
+ readonly episodeCount?: InputMaybe;
+ readonly episodeLength?: InputMaybe;
+ readonly posterImage?: InputMaybe;
+ readonly startDate?: InputMaybe;
+ readonly tba?: InputMaybe;
+ readonly titles: TitlesListInput;
+ readonly youtubeTrailerVideoId?: InputMaybe;
+};
+
+/** Autogenerated return type of AnimeCreate */
+export type AnimeCreatePayload = {
+ readonly __typename?: 'AnimeCreatePayload';
+ readonly anime?: Maybe;
+ readonly errors?: Maybe>;
+};
+
+/** Autogenerated return type of AnimeDelete */
+export type AnimeDeletePayload = {
+ readonly __typename?: 'AnimeDeletePayload';
+ readonly anime?: Maybe;
+ readonly errors?: Maybe>;
+};
+
+/** An edge in a connection. */
+export type AnimeEdge = {
+ readonly __typename?: 'AnimeEdge';
+ /** A cursor for use in pagination. */
+ readonly cursor: Scalars['String'];
+ /** The item at the end of the edge. */
+ readonly node?: Maybe;
+};
+
+export type AnimeMutations = {
+ readonly __typename?: 'AnimeMutations';
+ /** Create an Anime. */
+ readonly create?: Maybe;
+ /** Delete an Anime. */
+ readonly delete?: Maybe;
+ /** Update an Anime. */
+ readonly update?: Maybe;
+};
+
+export type AnimeMutationsCreateArgs = {
+ input: AnimeCreateInput;
+};
+
+export type AnimeMutationsDeleteArgs = {
+ input: GenericDeleteInput;
+};
+
+export type AnimeMutationsUpdateArgs = {
+ input: AnimeUpdateInput;
+};
+
+export enum AnimeSubtypeEnum {
+ Movie = 'MOVIE',
+ Music = 'MUSIC',
+ /** Original Net Animation (Web Anime). */
+ Ona = 'ONA',
+ /** Original Video Animation. Anime directly released to video market. */
+ Ova = 'OVA',
+ /** Spinoffs or Extras of the original. */
+ Special = 'SPECIAL',
+ Tv = 'TV'
+}
+
+export type AnimeUpdateInput = {
+ readonly ageRating?: InputMaybe;
+ readonly ageRatingGuide?: InputMaybe;
+ readonly bannerImage?: InputMaybe;
+ readonly description?: InputMaybe;
+ readonly endDate?: InputMaybe;
+ readonly episodeCount?: InputMaybe;
+ readonly episodeLength?: InputMaybe;
+ readonly id: Scalars['ID'];
+ readonly posterImage?: InputMaybe;
+ readonly startDate?: InputMaybe;
+ readonly tba?: InputMaybe;
+ readonly titles?: InputMaybe;
+ readonly youtubeTrailerVideoId?: InputMaybe;
+};
+
+/** Autogenerated return type of AnimeUpdate */
+export type AnimeUpdatePayload = {
+ readonly __typename?: 'AnimeUpdatePayload';
+ readonly anime?: Maybe;
+ readonly errors?: Maybe>;
+};
+
+/** Information about a specific Category */
+export type Category = WithTimestamps & {
+ readonly __typename?: 'Category';
+ /** The child categories. */
+ readonly children?: Maybe;
+ readonly createdAt: Scalars['ISO8601DateTime'];
+ /** A brief summary or description of the catgory. */
+ readonly description: Scalars['Map'];
+ readonly id: Scalars['ID'];
+ /** Whether the category is Not-Safe-for-Work. */
+ readonly isNsfw: Scalars['Boolean'];
+ /** The parent category. Each category can have one parent. */
+ readonly parent?: Maybe;
+ /** The top-level ancestor category */
+ readonly root?: Maybe;
+ /** The URL-friendly identifier of this Category. */
+ readonly slug: Scalars['String'];
+ /** The name of the category. */
+ readonly title: Scalars['Map'];
+ readonly updatedAt: Scalars['ISO8601DateTime'];
+};
+
+/** Information about a specific Category */
+export type CategoryChildrenArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+};
+
+/** Information about a specific Category */
+export type CategoryDescriptionArgs = {
+ locales?: InputMaybe>;
+};
+
+/** Information about a specific Category */
+export type CategoryTitleArgs = {
+ locales?: InputMaybe>;
+};
+
+/** Generic Category Breakdown based on Media */
+export type CategoryBreakdown = {
+ /** A Map of category_id -> count for all categories present on the library entries */
+ readonly categories: Scalars['Map'];
+ readonly id: Scalars['ID'];
+ /** The profile related to the user for this stat. */
+ readonly profile: Profile;
+ /** Last time we fully recalculated this stat. */
+ readonly recalculatedAt: Scalars['ISO8601Date'];
+ /** The total amount of library entries. */
+ readonly total: Scalars['Int'];
+};
+
+/** The connection type for Category. */
+export type CategoryConnection = {
+ readonly __typename?: 'CategoryConnection';
+ /** A list of edges. */
+ readonly edges?: Maybe>>;
+ /** A list of nodes. */
+ readonly nodes?: Maybe>>;
+ /** Information to aid in pagination. */
+ readonly pageInfo: PageInfo;
+ /** The total amount of nodes. */
+ readonly totalCount: Scalars['Int'];
+};
+
+/** An edge in a connection. */
+export type CategoryEdge = {
+ readonly __typename?: 'CategoryEdge';
+ /** A cursor for use in pagination. */
+ readonly cursor: Scalars['String'];
+ /** The item at the end of the edge. */
+ readonly node?: Maybe;
+};
+
+/** A single chapter of a manga */
+export type Chapter = Unit &
+ WithTimestamps & {
+ readonly __typename?: 'Chapter';
+ readonly createdAt: Scalars['ISO8601DateTime'];
+ /** A brief summary or description of the unit */
+ readonly description: Scalars['Map'];
+ readonly id: Scalars['ID'];
+ /** The manga this chapter is in. */
+ readonly manga: Manga;
+ /** The sequence number of this unit */
+ readonly number: Scalars['Int'];
+ /** When this chapter was released */
+ readonly releasedAt?: Maybe;
+ /** A thumbnail image for the unit */
+ readonly thumbnail?: Maybe;
+ /** The titles for this unit in various locales */
+ readonly titles: TitlesList;
+ readonly updatedAt: Scalars['ISO8601DateTime'];
+ /** The volume this chapter is in. */
+ readonly volume?: Maybe;
+ };
+
+/** A single chapter of a manga */
+export type ChapterDescriptionArgs = {
+ locales?: InputMaybe>;
+};
+
+/** The connection type for Chapter. */
+export type ChapterConnection = {
+ readonly __typename?: 'ChapterConnection';
+ /** A list of edges. */
+ readonly edges?: Maybe>>;
+ /** A list of nodes. */
+ readonly nodes?: Maybe>>;
+ /** Information to aid in pagination. */
+ readonly pageInfo: PageInfo;
+ /** The total amount of nodes. */
+ readonly totalCount: Scalars['Int'];
+};
+
+/** An edge in a connection. */
+export type ChapterEdge = {
+ readonly __typename?: 'ChapterEdge';
+ /** A cursor for use in pagination. */
+ readonly cursor: Scalars['String'];
+ /** The item at the end of the edge. */
+ readonly node?: Maybe;
+};
+
+/** Information about a Character in the Kitsu database */
+export type Character = WithTimestamps & {
+ readonly __typename?: 'Character';
+ readonly createdAt: Scalars['ISO8601DateTime'];
+ /** A brief summary or description of the character. */
+ readonly description: Scalars['Map'];
+ readonly id: Scalars['ID'];
+ /** An image of the character */
+ readonly image?: Maybe;
+ /** Media this character appears in. */
+ readonly media?: Maybe;
+ /** The name for this character in various locales */
+ readonly names?: Maybe;
+ /** The original media this character showed up in */
+ readonly primaryMedia?: Maybe;
+ /** The URL-friendly identifier of this character */
+ readonly slug: Scalars['String'];
+ readonly updatedAt: Scalars['ISO8601DateTime'];
+};
+
+/** Information about a Character in the Kitsu database */
+export type CharacterDescriptionArgs = {
+ locales?: InputMaybe>;
+};
+
+/** Information about a Character in the Kitsu database */
+export type CharacterMediaArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+};
+
+export enum CharacterRoleEnum {
+ /** A background character who generally only appears in a few episodes */
+ Background = 'BACKGROUND',
+ /** A character from a different franchise making a (usually brief) appearance */
+ Cameo = 'CAMEO',
+ /** A character who appears throughout a series and is a focal point of the media */
+ Main = 'MAIN',
+ /** A character who appears in multiple episodes but is not a main character */
+ Recurring = 'RECURRING'
+}
+
+/** Information about a VA (Person) voicing a Character in a Media */
+export type CharacterVoice = WithTimestamps & {
+ readonly __typename?: 'CharacterVoice';
+ readonly createdAt: Scalars['ISO8601DateTime'];
+ readonly id: Scalars['ID'];
+ /** The company who hired this voice actor to play this role */
+ readonly licensor?: Maybe;
+ /** The BCP47 locale tag for the voice acting role */
+ readonly locale: Scalars['String'];
+ /** The MediaCharacter node */
+ readonly mediaCharacter: MediaCharacter;
+ /** The person who voice acted this role */
+ readonly person: Person;
+ readonly updatedAt: Scalars['ISO8601DateTime'];
+};
+
+/** The connection type for CharacterVoice. */
+export type CharacterVoiceConnection = {
+ readonly __typename?: 'CharacterVoiceConnection';
+ /** A list of edges. */
+ readonly edges?: Maybe>>;
+ /** A list of nodes. */
+ readonly nodes?: Maybe>>;
+ /** Information to aid in pagination. */
+ readonly pageInfo: PageInfo;
+ /** The total amount of nodes. */
+ readonly totalCount: Scalars['Int'];
+};
+
+/** An edge in a connection. */
+export type CharacterVoiceEdge = {
+ readonly __typename?: 'CharacterVoiceEdge';
+ /** A cursor for use in pagination. */
+ readonly cursor: Scalars['String'];
+ /** The item at the end of the edge. */
+ readonly node?: Maybe;
+};
+
+export enum CharacterVoiceSortEnum {
+ CreatedAt = 'CREATED_AT',
+ UpdatedAt = 'UPDATED_AT'
+}
+
+export type CharacterVoiceSortOption = {
+ readonly direction: SortDirection;
+ readonly on: CharacterVoiceSortEnum;
+};
+
+/** A comment on a post */
+export type Comment = WithTimestamps & {
+ readonly __typename?: 'Comment';
+ /** The user who created this comment for the parent post. */
+ readonly author: Profile;
+ /** Unmodified content. */
+ readonly content?: Maybe;
+ /** Html formatted content. */
+ readonly contentFormatted?: Maybe;
+ readonly createdAt: Scalars['ISO8601DateTime'];
+ readonly id: Scalars['ID'];
+ /** Users who liked this comment */
+ readonly likes: ProfileConnection;
+ /** The parent comment if this comment was a reply to another. */
+ readonly parent?: Maybe;
+ /** The post that this comment is attached to. */
+ readonly post: Post;
+ /** Replies to this comment */
+ readonly replies: CommentConnection;
+ readonly updatedAt: Scalars['ISO8601DateTime'];
+};
+
+/** A comment on a post */
+export type CommentLikesArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ sort?: InputMaybe>>;
+};
+
+/** A comment on a post */
+export type CommentRepliesArgs = {
+ after?: InputMaybe;
+ before?: InputMaybe;
+ first?: InputMaybe;
+ last?: InputMaybe;
+ sort?: InputMaybe>>;
+};
+
+/** The connection type for Comment. */
+export type CommentConnection = {
+ readonly __typename?: 'CommentConnection';
+ /** A list of edges. */
+ readonly edges?: Maybe>>;
+ /** A list of nodes. */
+ readonly nodes?: Maybe>>;
+ /** Information to aid in pagination. */
+ readonly pageInfo: PageInfo;
+ /** The total amount of nodes. */
+ readonly totalCount: Scalars['Int'];
+};
+
+/** An edge in a connection. */
+export type CommentEdge = {
+ readonly __typename?: 'CommentEdge';
+ /** A cursor for use in pagination. */
+ readonly cursor: Scalars['String'];
+ /** The item at the end of the edge. */
+ readonly node?: Maybe;
+};
+
+export enum CommentLikeSortEnum {
+ CreatedAt = 'CREATED_AT',
+ Following = 'FOLLOWING'
+}
+
+export type CommentLikeSortOption = {
+ readonly direction: SortDirection;
+ readonly on: CommentLikeSortEnum;
+};
+
+export enum CommentSortEnum {
+ CreatedAt = 'CREATED_AT',
+ Following = 'FOLLOWING',
+ LikesCount = 'LIKES_COUNT'
+}
+
+export type CommentSortOption = {
+ readonly direction: SortDirection;
+ readonly on: CommentSortEnum;
+};
+
+/** An Episode of a Media */
+export type Episode = Unit &
+ WithTimestamps & {
+ readonly __typename?: 'Episode';
+ /** The anime this episode is in */
+ readonly anime: Anime;
+ readonly createdAt: Scalars['ISO8601DateTime'];
+ /** A brief summary or description of the unit */
+ readonly description: Scalars['Map'];
+ readonly id: Scalars['ID'];
+ /** The length of the episode in seconds */
+ readonly length?: Maybe;
+ /** The sequence number of this unit */
+ readonly number: Scalars['Int'];
+ /** When this episode aired */
+ readonly releasedAt?: Maybe;
+ /** A thumbnail image for the unit */
+ readonly thumbnail?: Maybe;
+ /** The titles for this unit in various locales */
+ readonly titles: TitlesList;
+ readonly updatedAt: Scalars['ISO8601DateTime'];
+ };
+
+/** An Episode of a Media */
+export type EpisodeDescriptionArgs = {
+ locales?: InputMaybe>;
+};
+
+/** The connection type for Episode. */
+export type EpisodeConnection = {
+ readonly __typename?: 'EpisodeConnection';
+ /** A list of edges. */
+ readonly edges?: Maybe>>;
+ /** A list of nodes. */
+ readonly nodes?: Maybe>>;
+ /** Information to aid in pagination. */
+ readonly pageInfo: PageInfo;
+ /** The total amount of nodes. */
+ readonly totalCount: Scalars['Int'];
+};
+
+export type EpisodeCreateInput = {
+ readonly description?: InputMaybe;
+ readonly length?: InputMaybe;
+ readonly mediaId: Scalars['ID'];
+ readonly mediaType: MediaTypeEnum;
+ readonly number: Scalars['Int'];
+ readonly releasedAt?: InputMaybe;
+ readonly thumbnailImage?: InputMaybe;
+ readonly titles: TitlesListInput;
+};
+
+/** Autogenerated return type of EpisodeCreate */
+export type EpisodeCreatePayload = {
+ readonly __typename?: 'EpisodeCreatePayload';
+ readonly episode?: Maybe;
+ readonly errors?: Maybe>;
+};
+
+/** Autogenerated return type of EpisodeDelete */
+export type EpisodeDeletePayload = {
+ readonly __typename?: 'EpisodeDeletePayload';
+ readonly episode?: Maybe;
+ readonly errors?: Maybe>;
+};
+
+/** An edge in a connection. */
+export type EpisodeEdge = {
+ readonly __typename?: 'EpisodeEdge';
+ /** A cursor for use in pagination. */
+ readonly cursor: Scalars['String'];
+ /** The item at the end of the edge. */
+ readonly node?: Maybe;
+};
+
+export type EpisodeMutations = {
+ readonly __typename?: 'EpisodeMutations';
+ /** Create an Episode. */
+ readonly create?: Maybe;
+ /** Delete an Episode. */
+ readonly delete?: Maybe;
+ /** Update an Episode. */
+ readonly update?: Maybe;
+};
+
+export type EpisodeMutationsCreateArgs = {
+ input: EpisodeCreateInput;
+};
+
+export type EpisodeMutationsDeleteArgs = {
+ input: GenericDeleteInput;
+};
+
+export type EpisodeMutationsUpdateArgs = {
+ input: EpisodeUpdateInput;
+};
+
+export enum EpisodeSortEnum {
+ CreatedAt = 'CREATED_AT',
+ Number = 'NUMBER',
+ UpdatedAt = 'UPDATED_AT'
+}
+
+export type EpisodeSortOption = {
+ readonly direction: SortDirection;
+ readonly on: EpisodeSortEnum;
+};
+
+export type EpisodeUpdateInput = {
+ readonly description?: InputMaybe;
+ readonly id: Scalars['ID'];
+ readonly length?: InputMaybe;
+ readonly number?: InputMaybe;
+ readonly releasedAt?: InputMaybe;
+ readonly thumbnailImage?: InputMaybe;
+ readonly titles?: InputMaybe;
+};
+
+/** Autogenerated return type of EpisodeUpdate */
+export type EpisodeUpdatePayload = {
+ readonly __typename?: 'EpisodeUpdatePayload';
+ readonly episode?: Maybe;
+ readonly errors?: Maybe