Files
suwayomi-material-you-webui/src/lib/graphql/generated/graphql.ts

4440 lines
146 KiB
TypeScript
Raw Normal View History

2026-05-15 20:40:31 +02:00
/** Internal type. DO NOT USE DIRECTLY. */
type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
/** Internal type. DO NOT USE DIRECTLY. */
export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };
2026-05-15 20:40:31 +02:00
import type * as Types from './graphql-base.types';
2025-12-22 14:00:44 +01:00
export type CreateBackupMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.CreateBackupInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type CreateBackupMutation = {
__typename: 'Mutation';
createBackup: { __typename: 'CreateBackupPayload'; url: string };
};
2025-12-22 14:00:44 +01:00
export type RestoreBackupMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
backup: unknown;
flags?: Types.PartialBackupFlagsInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type RestoreBackupMutation = {
__typename: 'Mutation';
restoreBackup: {
__typename: 'RestoreBackupPayload';
id: string;
status: {
__typename: 'BackupRestoreStatus';
mangaProgress: number;
state: Types.BackupRestoreState;
totalManga: number;
} | null;
};
};
2025-12-22 14:00:44 +01:00
export type ValidateBackupQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
backup: unknown;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type ValidateBackupQuery = {
__typename: 'Query';
validateBackup: {
__typename: 'ValidateBackupResult';
missingSources: Array<{ __typename: 'ValidateBackupSource'; id: string; name: string }>;
missingTrackers: Array<{ __typename: 'ValidateBackupTracker'; name: string }>;
};
};
2025-12-22 14:00:44 +01:00
export type GetRestoreStatusQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: string;
}>;
2026-05-17 12:38:49 +02:00
export type GetRestoreStatusQuery = {
__typename: 'Query';
restoreStatus: {
__typename: 'BackupRestoreStatus';
mangaProgress: number;
state: Types.BackupRestoreState;
totalManga: number;
} | null;
};
export type CategoryMetaFieldsFragment = {
__typename: 'CategoryMetaType';
categoryId: number;
key: string;
value: string;
};
export type CategoryBaseFieldsFragment = {
__typename: 'CategoryType';
id: number;
name: string;
default: boolean;
order: number;
};
export type CategoryLibraryFieldsFragment = {
__typename: 'CategoryType';
id: number;
name: string;
default: boolean;
order: number;
meta: Array<{ __typename: 'CategoryMetaType'; categoryId: number; key: string; value: string }>;
mangas: { __typename: 'MangaNodeList'; totalCount: number };
};
export type CategorySettingFieldsFragment = {
__typename: 'CategoryType';
includeInUpdate: Types.IncludeOrExclude;
includeInDownload: Types.IncludeOrExclude;
id: number;
name: string;
default: boolean;
order: number;
};
export type CreateCategoryMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.CreateCategoryInput;
}>;
2026-05-17 12:38:49 +02:00
export type CreateCategoryMutation = {
__typename: 'Mutation';
createCategory: {
__typename: 'CreateCategoryPayload';
category: {
__typename: 'CategoryType';
includeInUpdate: Types.IncludeOrExclude;
includeInDownload: Types.IncludeOrExclude;
id: number;
name: string;
default: boolean;
order: number;
};
} | null;
};
export type DeleteCategoryMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.DeleteCategoryInput;
}>;
2026-05-17 12:38:49 +02:00
export type DeleteCategoryMutation = {
__typename: 'Mutation';
deleteCategory: {
__typename: 'DeleteCategoryPayload';
category: { __typename: 'CategoryType'; id: number } | null;
} | null;
};
export type UpdateCategoryMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateCategoryInput;
getDefault: boolean;
getIncludeInUpdate: boolean;
getIncludeInDownload: boolean;
getName: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateCategoryMutation = {
__typename: 'Mutation';
updateCategory: {
__typename: 'UpdateCategoryPayload';
category: {
__typename: 'CategoryType';
id: number;
default?: boolean;
includeInUpdate?: Types.IncludeOrExclude;
includeInDownload?: Types.IncludeOrExclude;
name?: string;
};
} | null;
};
export type UpdateCategoriesMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateCategoriesInput;
getDefault: boolean;
getIncludeInUpdate: boolean;
getIncludeInDownload: boolean;
getName: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateCategoriesMutation = {
__typename: 'Mutation';
updateCategories: {
__typename: 'UpdateCategoriesPayload';
categories: Array<{
__typename: 'CategoryType';
id: number;
default?: boolean;
includeInUpdate?: Types.IncludeOrExclude;
includeInDownload?: Types.IncludeOrExclude;
name?: string;
}>;
} | null;
};
export type UpdateCategoryOrderMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateCategoryOrderInput;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateCategoryOrderMutation = {
__typename: 'Mutation';
updateCategoryOrder: {
__typename: 'UpdateCategoryOrderPayload';
categories: Array<{ __typename: 'CategoryType'; id: number; order: number }>;
} | null;
};
export type UpdateCategoryMetadataMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
preUpdateDeleteInput: Types.DeleteCategoryMetasInput;
hasPreUpdateDeletions: boolean;
updateInput: Types.SetCategoryMetasInput;
hasUpdates: boolean;
postUpdateDeleteInput: Types.DeleteCategoryMetasInput;
hasPostUpdateDeletions: boolean;
migrateInput: Types.SetCategoryMetasInput;
isMigration: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateCategoryMetadataMutation = {
__typename: 'Mutation';
preUpdateDeletedMeta?: {
__typename: 'DeleteCategoryMetasPayload';
metas: Array<{ __typename: 'CategoryMetaType'; categoryId: number; key: string; value: string }>;
} | null;
updatedMeta?: {
__typename: 'SetCategoryMetasPayload';
metas: Array<{ __typename: 'CategoryMetaType'; categoryId: number; key: string; value: string }>;
} | null;
postUpdateDeletedMeta?: {
__typename: 'DeleteCategoryMetasPayload';
metas: Array<{ __typename: 'CategoryMetaType'; categoryId: number; key: string; value: string }>;
} | null;
migrationMeta?: {
__typename: 'SetCategoryMetasPayload';
metas: Array<{ __typename: 'CategoryMetaType'; categoryId: number; key: string; value: string }>;
} | null;
};
2025-12-22 14:00:44 +01:00
export type GetCategoriesBaseQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.CategoryConditionInput | null | undefined;
filter?: Types.CategoryFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.CategoryOrderInput> | Types.CategoryOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetCategoriesBaseQuery = {
__typename: 'Query';
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{ __typename: 'CategoryType'; id: number; name: string; default: boolean; order: number }>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2025-12-22 14:00:44 +01:00
export type GetCategoriesLibraryQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.CategoryConditionInput | null | undefined;
filter?: Types.CategoryFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.CategoryOrderInput> | Types.CategoryOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetCategoriesLibraryQuery = {
__typename: 'Query';
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{
__typename: 'CategoryType';
id: number;
name: string;
default: boolean;
order: number;
meta: Array<{ __typename: 'CategoryMetaType'; categoryId: number; key: string; value: string }>;
mangas: { __typename: 'MangaNodeList'; totalCount: number };
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2025-12-22 14:00:44 +01:00
export type GetCategoriesSettingsQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.CategoryConditionInput | null | undefined;
filter?: Types.CategoryFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.CategoryOrderInput> | Types.CategoryOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetCategoriesSettingsQuery = {
__typename: 'Query';
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{
__typename: 'CategoryType';
includeInUpdate: Types.IncludeOrExclude;
includeInDownload: Types.IncludeOrExclude;
id: number;
name: string;
default: boolean;
order: number;
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2025-12-22 14:00:44 +01:00
export type GetCategoryMangasQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: number;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetCategoryMangasQuery = {
__typename: 'Query';
category: {
__typename: 'CategoryType';
id: number;
mangas: {
__typename: 'MangaNodeList';
totalCount: number;
nodes: Array<{
__typename: 'MangaType';
genre: Array<string>;
lastFetchedAt: string | null;
inLibraryAt: string;
status: Types.MangaStatus;
artist: string | null;
author: string | null;
description: string | null;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
};
export type ChapterMetaFieldsFragment = {
__typename: 'ChapterMetaType';
chapterId: number;
key: string;
value: string;
};
export type ChapterBaseFieldsFragment = {
__typename: 'ChapterType';
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
};
export type ChapterStateFieldsFragment = {
__typename: 'ChapterType';
id: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
};
export type ChapterReaderFieldsFragment = {
__typename: 'ChapterType';
uploadDate: string;
lastPageRead: number;
pageCount: number;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
};
export type ChapterListFieldsFragment = {
__typename: 'ChapterType';
fetchedAt: string;
uploadDate: string;
lastReadAt: string;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
};
export type ChapterUpdateListFieldsFragment = {
__typename: 'ChapterType';
fetchedAt: string;
uploadDate: string;
lastReadAt: string;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
};
};
export type ChapterHistoryListFieldsFragment = {
__typename: 'ChapterType';
fetchedAt: string;
uploadDate: string;
lastReadAt: string;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
};
};
2025-12-22 14:00:44 +01:00
export type GetChapterPagesFetchMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.FetchChapterPagesInput;
}>;
2026-05-17 12:38:49 +02:00
export type GetChapterPagesFetchMutation = {
__typename: 'Mutation';
fetchChapterPages: {
__typename: 'FetchChapterPagesPayload';
pages: Array<string>;
chapter: {
__typename: 'ChapterType';
id: number;
pageCount: number;
isDownloaded: boolean;
manga: { __typename: 'MangaType'; id: number; downloadCount: number };
};
2026-05-17 12:38:49 +02:00
} | null;
};
export type GetMangaChaptersFetchMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.FetchChaptersInput;
}>;
2026-05-17 12:38:49 +02:00
export type GetMangaChaptersFetchMutation = {
__typename: 'Mutation';
fetchChapters: {
__typename: 'FetchChaptersPayload';
chapters: Array<{
__typename: 'ChapterType';
fetchedAt: string;
uploadDate: string;
lastReadAt: string;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
manga: {
__typename: 'MangaType';
id: number;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
}>;
} | null;
};
export type UpdateChapterMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateChapterInput;
getBookmarked: boolean;
getRead: boolean;
getLastPageRead: boolean;
chapterIdToDelete: number;
deleteChapter: boolean;
mangaId: number;
trackProgress: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateChapterMutation = {
__typename: 'Mutation';
updateChapter: {
__typename: 'UpdateChapterPayload';
chapter: {
__typename: 'ChapterType';
id: number;
isBookmarked?: boolean;
isRead?: boolean;
lastReadAt?: string;
lastPageRead?: number;
manga?: {
__typename: 'MangaType';
id: number;
unreadCount: number;
bookmarkCount: number;
lastReadChapter: { __typename: 'ChapterType'; id: number } | null;
latestReadChapter: { __typename: 'ChapterType'; id: number } | null;
firstUnreadChapter: { __typename: 'ChapterType'; id: number } | null;
};
};
} | null;
deleteDownloadedChapter?: {
__typename: 'DeleteDownloadedChapterPayload';
chapters: {
__typename: 'ChapterType';
id: number;
isDownloaded: boolean;
manga: { __typename: 'MangaType'; id: number; downloadCount: number };
};
} | null;
trackProgress?: {
__typename: 'TrackProgressPayload';
trackRecords: Array<{
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
}>;
} | null;
};
export type UpdateChaptersMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateChaptersInput;
getBookmarked: boolean;
getRead: boolean;
getLastPageRead: boolean;
chapterIdsToDelete: Array<number> | number;
deleteChapters: boolean;
mangaId: number;
trackProgress: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateChaptersMutation = {
__typename: 'Mutation';
updateChapters: {
__typename: 'UpdateChaptersPayload';
chapters: Array<{
__typename: 'ChapterType';
id: number;
isBookmarked?: boolean;
isRead?: boolean;
lastReadAt?: string;
lastPageRead?: number;
manga?: {
__typename: 'MangaType';
id: number;
unreadCount: number;
bookmarkCount: number;
lastReadChapter: { __typename: 'ChapterType'; id: number } | null;
latestReadChapter: { __typename: 'ChapterType'; id: number } | null;
firstUnreadChapter: { __typename: 'ChapterType'; id: number } | null;
};
}>;
} | null;
deleteDownloadedChapters?: {
__typename: 'DeleteDownloadedChaptersPayload';
chapters: Array<{
__typename: 'ChapterType';
id: number;
isDownloaded: boolean;
manga: { __typename: 'MangaType'; id: number; downloadCount: number };
}>;
} | null;
trackProgress?: {
__typename: 'TrackProgressPayload';
trackRecords: Array<{
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
}>;
} | null;
};
export type UpdateChapterMetadataMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
preUpdateDeleteInput: Types.DeleteChapterMetasInput;
hasPreUpdateDeletions: boolean;
updateInput: Types.SetChapterMetasInput;
hasUpdates: boolean;
postUpdateDeleteInput: Types.DeleteChapterMetasInput;
hasPostUpdateDeletions: boolean;
migrateInput: Types.SetChapterMetasInput;
isMigration: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateChapterMetadataMutation = {
__typename: 'Mutation';
preUpdateDeletedMeta?: {
__typename: 'DeleteChapterMetasPayload';
metas: Array<{ __typename: 'ChapterMetaType'; chapterId: number; key: string; value: string }>;
} | null;
updatedMeta?: {
__typename: 'SetChapterMetasPayload';
metas: Array<{ __typename: 'ChapterMetaType'; chapterId: number; key: string; value: string }>;
} | null;
postUpdateDeletedMeta?: {
__typename: 'DeleteChapterMetasPayload';
metas: Array<{ __typename: 'ChapterMetaType'; chapterId: number; key: string; value: string }>;
} | null;
migrationMeta?: {
__typename: 'SetChapterMetasPayload';
metas: Array<{ __typename: 'ChapterMetaType'; chapterId: number; key: string; value: string }>;
} | null;
};
2025-12-22 14:00:44 +01:00
export type GetChaptersReaderQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.ChapterConditionInput | null | undefined;
filter?: Types.ChapterFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.ChapterOrderInput> | Types.ChapterOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetChaptersReaderQuery = {
__typename: 'Query';
chapters: {
__typename: 'ChapterNodeList';
totalCount: number;
nodes: Array<{
__typename: 'ChapterType';
uploadDate: string;
lastPageRead: number;
pageCount: number;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2025-12-22 14:00:44 +01:00
export type GetChaptersMangaQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.ChapterConditionInput | null | undefined;
filter?: Types.ChapterFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.ChapterOrderInput> | Types.ChapterOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetChaptersMangaQuery = {
__typename: 'Query';
chapters: {
__typename: 'ChapterNodeList';
totalCount: number;
nodes: Array<{
__typename: 'ChapterType';
fetchedAt: string;
uploadDate: string;
lastReadAt: string;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2025-12-22 14:00:44 +01:00
export type GetChaptersUpdatesQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.ChapterConditionInput | null | undefined;
filter?: Types.ChapterFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.ChapterOrderInput> | Types.ChapterOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetChaptersUpdatesQuery = {
__typename: 'Query';
lastUpdateTimestamp: { __typename: 'LastUpdateTimestampPayload'; timestamp: string };
chapters: {
__typename: 'ChapterNodeList';
totalCount: number;
nodes: Array<{
__typename: 'ChapterType';
fetchedAt: string;
uploadDate: string;
lastReadAt: string;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
};
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2025-12-22 14:00:44 +01:00
export type GetChaptersHistoryQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.ChapterConditionInput | null | undefined;
filter?: Types.ChapterFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.ChapterOrderInput> | Types.ChapterOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetChaptersHistoryQuery = {
__typename: 'Query';
chapters: {
__typename: 'ChapterNodeList';
totalCount: number;
nodes: Array<{
__typename: 'ChapterType';
fetchedAt: string;
uploadDate: string;
lastReadAt: string;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
};
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2025-12-22 14:00:44 +01:00
export type GetMangasChapterIdsWithStateQueryVariables = Exact<{
2026-05-20 16:26:43 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.ChapterConditionInput | null | undefined;
filter?: Types.ChapterFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.ChapterOrderInput> | Types.ChapterOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetMangasChapterIdsWithStateQuery = {
__typename: 'Query';
chapters: {
__typename: 'ChapterNodeList';
2026-05-20 16:26:43 +02:00
totalCount: number;
2026-05-17 12:38:49 +02:00
nodes: Array<{
__typename: 'ChapterType';
mangaId: number;
scanlator: string | null;
chapterNumber: number;
id: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
}>;
2026-05-20 16:26:43 +02:00
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
2026-05-17 12:38:49 +02:00
};
};
export type PageInfoFragment = {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
export type GlobalMetadataFragment = { __typename: 'GlobalMetaType'; key: string; value: string };
export type DownloadTypeFieldsFragment = {
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: { __typename: 'ChapterType'; id: number; name: string; sourceOrder: number; isDownloaded: boolean };
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
};
export type DownloadStatusFieldsFragment = {
__typename: 'DownloadStatus';
state: Types.DownloaderState;
queue: Array<{
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: { __typename: 'ChapterType'; id: number; name: string; sourceOrder: number; isDownloaded: boolean };
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
}>;
};
export type DownloadUpdatesFieldsFragment = {
__typename: 'DownloadUpdates';
state: Types.DownloaderState;
omittedUpdates: boolean;
updates: Array<{
__typename: 'DownloadUpdate';
type: Types.DownloadUpdateType;
download: {
__typename: 'DownloadType';
position: number;
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
};
}>;
};
2025-12-22 14:00:44 +01:00
export type ClearDownloaderMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input?: Types.ClearDownloaderInput | null | undefined;
}>;
2026-05-17 12:38:49 +02:00
export type ClearDownloaderMutation = {
__typename: 'Mutation';
clearDownloader: {
__typename: 'ClearDownloaderPayload';
downloadStatus: {
__typename: 'DownloadStatus';
state: Types.DownloaderState;
queue: Array<{
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
}>;
};
} | null;
};
export type DeleteDownloadedChapterMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.DeleteDownloadedChapterInput;
}>;
2026-05-17 12:38:49 +02:00
export type DeleteDownloadedChapterMutation = {
__typename: 'Mutation';
deleteDownloadedChapter: {
__typename: 'DeleteDownloadedChapterPayload';
chapters: {
__typename: 'ChapterType';
id: number;
isDownloaded: boolean;
manga: { __typename: 'MangaType'; id: number; downloadCount: number };
};
} | null;
};
export type DeleteDownloadedChaptersMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.DeleteDownloadedChaptersInput;
}>;
2026-05-17 12:38:49 +02:00
export type DeleteDownloadedChaptersMutation = {
__typename: 'Mutation';
deleteDownloadedChapters: {
__typename: 'DeleteDownloadedChaptersPayload';
chapters: Array<{
__typename: 'ChapterType';
id: number;
isDownloaded: boolean;
manga: { __typename: 'MangaType'; id: number; downloadCount: number };
}>;
} | null;
};
export type DequeueChapterDownloadMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.DequeueChapterDownloadInput;
}>;
2026-05-17 12:38:49 +02:00
export type DequeueChapterDownloadMutation = {
__typename: 'Mutation';
dequeueChapterDownload: {
__typename: 'DequeueChapterDownloadPayload';
downloadStatus: {
__typename: 'DownloadStatus';
state: Types.DownloaderState;
queue: Array<{
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
}>;
};
} | null;
};
export type DequeueChapterDownloadsMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.DequeueChapterDownloadsInput;
}>;
2026-05-17 12:38:49 +02:00
export type DequeueChapterDownloadsMutation = {
__typename: 'Mutation';
dequeueChapterDownloads: {
__typename: 'DequeueChapterDownloadsPayload';
downloadStatus: {
__typename: 'DownloadStatus';
state: Types.DownloaderState;
queue: Array<{
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
}>;
};
} | null;
};
export type EnqueueChapterDownloadMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.EnqueueChapterDownloadInput;
}>;
2026-05-17 12:38:49 +02:00
export type EnqueueChapterDownloadMutation = {
__typename: 'Mutation';
enqueueChapterDownload: {
__typename: 'EnqueueChapterDownloadPayload';
downloadStatus: {
__typename: 'DownloadStatus';
state: Types.DownloaderState;
queue: Array<{
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
}>;
};
} | null;
};
export type EnqueueChapterDownloadsMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.EnqueueChapterDownloadsInput;
}>;
2026-05-17 12:38:49 +02:00
export type EnqueueChapterDownloadsMutation = {
__typename: 'Mutation';
enqueueChapterDownloads: {
__typename: 'EnqueueChapterDownloadsPayload';
downloadStatus: {
__typename: 'DownloadStatus';
state: Types.DownloaderState;
queue: Array<{
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
}>;
};
} | null;
};
export type ReorderChapterDownloadMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.ReorderChapterDownloadInput;
}>;
2026-05-17 12:38:49 +02:00
export type ReorderChapterDownloadMutation = {
__typename: 'Mutation';
reorderChapterDownload: {
__typename: 'ReorderChapterDownloadPayload';
downloadStatus: {
__typename: 'DownloadStatus';
state: Types.DownloaderState;
queue: Array<{
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
}>;
};
} | null;
};
export type StartDownloaderMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input?: Types.StartDownloaderInput | null | undefined;
}>;
2026-05-17 12:38:49 +02:00
export type StartDownloaderMutation = {
__typename: 'Mutation';
startDownloader: {
__typename: 'StartDownloaderPayload';
downloadStatus: { __typename: 'DownloadStatus'; state: Types.DownloaderState };
} | null;
};
export type StopDownloaderMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input?: Types.StopDownloaderInput | null | undefined;
}>;
2026-05-17 12:38:49 +02:00
export type StopDownloaderMutation = {
__typename: 'Mutation';
stopDownloader: {
__typename: 'StopDownloaderPayload';
downloadStatus: { __typename: 'DownloadStatus'; state: Types.DownloaderState };
} | null;
};
export type GetDownloadStatusQueryVariables = Exact<{ [key: string]: never }>;
export type GetDownloadStatusQuery = {
__typename: 'Query';
downloadStatus: {
__typename: 'DownloadStatus';
state: Types.DownloaderState;
queue: Array<{
__typename: 'DownloadType';
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
}>;
};
};
2025-12-22 14:00:44 +01:00
export type DownloadStatusSubscriptionVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.DownloadChangedInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type DownloadStatusSubscription = {
__typename: 'Subscription';
downloadStatusChanged: {
__typename: 'DownloadUpdates';
state: Types.DownloaderState;
omittedUpdates: boolean;
updates: Array<{
__typename: 'DownloadUpdate';
type: Types.DownloadUpdateType;
download: {
__typename: 'DownloadType';
position: number;
progress: number;
state: Types.DownloadState;
tries: number;
chapter: {
__typename: 'ChapterType';
id: number;
name: string;
sourceOrder: number;
isDownloaded: boolean;
};
manga: { __typename: 'MangaType'; id: number; title: string; downloadCount: number };
};
}>;
};
};
export type ExtensionListFieldsFragment = {
__typename: 'ExtensionType';
pkgName: string;
name: string;
lang: string;
versionCode: number;
versionName: string;
iconUrl: string;
repo: string | null;
isNsfw: boolean;
isInstalled: boolean;
isObsolete: boolean;
hasUpdate: boolean;
};
2025-12-22 14:00:44 +01:00
export type GetExtensionsFetchMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input?: Types.FetchExtensionsInput | null | undefined;
}>;
2026-05-17 12:38:49 +02:00
export type GetExtensionsFetchMutation = {
__typename: 'Mutation';
fetchExtensions: {
__typename: 'FetchExtensionsPayload';
extensions: Array<{
__typename: 'ExtensionType';
pkgName: string;
name: string;
lang: string;
versionCode: number;
versionName: string;
iconUrl: string;
repo: string | null;
isNsfw: boolean;
isInstalled: boolean;
isObsolete: boolean;
hasUpdate: boolean;
}>;
} | null;
};
export type UpdateExtensionMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateExtensionInput;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateExtensionMutation = {
__typename: 'Mutation';
updateExtension: {
__typename: 'UpdateExtensionPayload';
extension: {
__typename: 'ExtensionType';
pkgName: string;
name: string;
lang: string;
versionCode: number;
versionName: string;
iconUrl: string;
repo: string | null;
isNsfw: boolean;
isInstalled: boolean;
isObsolete: boolean;
hasUpdate: boolean;
} | null;
} | null;
};
export type UpdateExtensionsMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateExtensionsInput;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateExtensionsMutation = {
__typename: 'Mutation';
updateExtensions: {
__typename: 'UpdateExtensionsPayload';
extensions: Array<{
__typename: 'ExtensionType';
pkgName: string;
name: string;
lang: string;
versionCode: number;
versionName: string;
iconUrl: string;
repo: string | null;
isNsfw: boolean;
isInstalled: boolean;
isObsolete: boolean;
hasUpdate: boolean;
}>;
} | null;
};
export type InstallExternalExtensionMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
file: unknown;
}>;
2026-05-17 12:38:49 +02:00
export type InstallExternalExtensionMutation = {
__typename: 'Mutation';
installExternalExtension: {
__typename: 'InstallExternalExtensionPayload';
extension: {
__typename: 'ExtensionType';
pkgName: string;
name: string;
lang: string;
versionCode: number;
versionName: string;
iconUrl: string;
repo: string | null;
isNsfw: boolean;
isInstalled: boolean;
isObsolete: boolean;
hasUpdate: boolean;
};
} | null;
};
2025-12-22 14:00:44 +01:00
export type GetExtensionQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
pkgName: string;
}>;
2026-05-17 12:38:49 +02:00
export type GetExtensionQuery = {
__typename: 'Query';
extension: {
__typename: 'ExtensionType';
pkgName: string;
name: string;
lang: string;
versionCode: number;
versionName: string;
iconUrl: string;
repo: string | null;
isNsfw: boolean;
isInstalled: boolean;
isObsolete: boolean;
hasUpdate: boolean;
};
};
2025-12-22 14:00:44 +01:00
export type GetExtensionsQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.ExtensionConditionInput | null | undefined;
filter?: Types.ExtensionFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.ExtensionOrderInput> | Types.ExtensionOrderInput | null | undefined;
}>;
2026-05-17 12:38:49 +02:00
export type GetExtensionsQuery = {
__typename: 'Query';
extensions: {
__typename: 'ExtensionNodeList';
totalCount: number;
nodes: Array<{
__typename: 'ExtensionType';
pkgName: string;
name: string;
lang: string;
versionCode: number;
versionName: string;
iconUrl: string;
repo: string | null;
isNsfw: boolean;
isInstalled: boolean;
isObsolete: boolean;
hasUpdate: boolean;
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
export type ClearServerCacheMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.ClearCachedImagesInput;
}>;
2026-05-17 12:38:49 +02:00
export type ClearServerCacheMutation = {
__typename: 'Mutation';
clearCachedImages: {
__typename: 'ClearCachedImagesPayload';
cachedPages: boolean | null;
cachedThumbnails: boolean | null;
downloadedThumbnails: boolean | null;
};
};
export type KoSyncStatusFragment = {
__typename: 'KoSyncStatusPayload';
isLoggedIn: boolean;
serverAddress: string | null;
username: string | null;
};
2025-12-22 14:00:44 +01:00
export type KoSyncLoginMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
serverAddress: string;
username: string;
password: string;
}>;
2026-05-17 12:38:49 +02:00
export type KoSyncLoginMutation = {
__typename: 'Mutation';
connectKoSyncAccount: {
__typename: 'KoSyncConnectPayload';
message: string | null;
status: {
__typename: 'KoSyncStatusPayload';
isLoggedIn: boolean;
serverAddress: string | null;
username: string | null;
};
};
};
export type KoSyncLogoutMutationVariables = Exact<{ [key: string]: never }>;
export type KoSyncLogoutMutation = {
__typename: 'Mutation';
logoutKoSyncAccount: {
__typename: 'LogoutKoSyncAccountPayload';
status: {
__typename: 'KoSyncStatusPayload';
isLoggedIn: boolean;
serverAddress: string | null;
username: string | null;
};
};
};
export type GetKoSyncStatusQueryVariables = Exact<{ [key: string]: never }>;
export type GetKoSyncStatusQuery = {
__typename: 'Query';
koSyncStatus: {
__typename: 'KoSyncStatusPayload';
isLoggedIn: boolean;
serverAddress: string | null;
username: string | null;
};
};
export type MangaMetaFieldsFragment = { __typename: 'MangaMetaType'; mangaId: number; key: string; value: string };
export type MangaBaseFieldsFragment = {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
};
export type MangaChapterStatFieldsFragment = {
__typename: 'MangaType';
id: number;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
};
export type MangaChapterNodeFieldsFragment = {
__typename: 'MangaType';
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
export type MangaReaderFieldsFragment = {
__typename: 'MangaType';
genre: Array<string>;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
trackRecords: { __typename: 'TrackRecordNodeList'; totalCount: number };
};
export type MangaLibraryFieldsFragment = {
__typename: 'MangaType';
genre: Array<string>;
lastFetchedAt: string | null;
inLibraryAt: string;
status: Types.MangaStatus;
artist: string | null;
author: string | null;
description: string | null;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
export type MangaMigrationFieldsFragment = {
__typename: 'MangaType';
artist: string | null;
author: string | null;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
source: { __typename: 'SourceType'; id: string; name: string; displayName: string } | null;
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
export type MangaScreenFieldsFragment = {
__typename: 'MangaType';
artist: string | null;
author: string | null;
description: string | null;
status: Types.MangaStatus;
realUrl: string | null;
sourceId: string;
genre: Array<string>;
lastFetchedAt: string | null;
inLibraryAt: string;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
};
export type MangaLibraryDuplicateScreenFieldsFragment = {
__typename: 'MangaType';
description: string | null;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
};
2025-12-22 14:00:44 +01:00
export type GetMangaFetchMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.FetchMangaInput;
}>;
2026-05-17 12:38:49 +02:00
export type GetMangaFetchMutation = {
__typename: 'Mutation';
fetchManga: {
__typename: 'FetchMangaPayload';
manga: {
__typename: 'MangaType';
artist: string | null;
author: string | null;
description: string | null;
status: Types.MangaStatus;
realUrl: string | null;
sourceId: string;
genre: Array<string>;
lastFetchedAt: string | null;
inLibraryAt: string;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
};
} | null;
};
export type RefreshMangaMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: number;
}>;
2026-05-17 12:38:49 +02:00
export type RefreshMangaMutation = {
__typename: 'Mutation';
fetchChapters: {
__typename: 'FetchChaptersPayload';
chapters: Array<{
__typename: 'ChapterType';
fetchedAt: string;
uploadDate: string;
lastReadAt: string;
id: number;
name: string;
mangaId: number;
scanlator: string | null;
realUrl: string | null;
sourceOrder: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
}>;
} | null;
fetchManga: {
__typename: 'FetchMangaPayload';
manga: {
__typename: 'MangaType';
artist: string | null;
author: string | null;
description: string | null;
status: Types.MangaStatus;
realUrl: string | null;
sourceId: string;
genre: Array<string>;
lastFetchedAt: string | null;
inLibraryAt: string;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
};
} | null;
};
export type GetMangaToMigrateToFetchMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: number;
migrateChapters: boolean;
migrateCategories: boolean;
migrateTracking: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type GetMangaToMigrateToFetchMutation = {
__typename: 'Mutation';
fetchManga: {
__typename: 'FetchMangaPayload';
manga: {
__typename: 'MangaType';
id: number;
title: string;
inLibrary: boolean;
categories?: { __typename: 'CategoryNodeList'; nodes: Array<{ __typename: 'CategoryType'; id: number }> };
trackRecords?: {
__typename: 'TrackRecordNodeList';
nodes: Array<{ __typename: 'TrackRecordType'; id: number; remoteId: string; trackerId: number }>;
};
};
} | null;
fetchChapters?: {
__typename: 'FetchChaptersPayload';
chapters: Array<{
__typename: 'ChapterType';
id: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
manga: { __typename: 'MangaType'; id: number };
}>;
} | null;
};
2025-12-22 14:00:44 +01:00
export type UpdateMangaMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateMangaInput;
updateCategoryInput: Types.UpdateMangaCategoriesInput;
updateCategories: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateMangaMutation = {
__typename: 'Mutation';
updateMangaCategories?: {
__typename: 'UpdateMangaCategoriesPayload';
manga: {
__typename: 'MangaType';
id: number;
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{
__typename: 'CategoryType';
id: number;
mangas: { __typename: 'MangaNodeList'; totalCount: number };
}>;
};
};
} | null;
updateManga: {
__typename: 'UpdateMangaPayload';
manga: { __typename: 'MangaType'; id: number; inLibrary: boolean; inLibraryAt: string };
} | null;
};
2025-12-22 14:00:44 +01:00
export type UpdateMangasMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateMangasInput;
updateCategoryInput: Types.UpdateMangasCategoriesInput;
updateCategories: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateMangasMutation = {
__typename: 'Mutation';
updateMangasCategories?: {
__typename: 'UpdateMangasCategoriesPayload';
mangas: Array<{
__typename: 'MangaType';
id: number;
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{
__typename: 'CategoryType';
id: number;
mangas: { __typename: 'MangaNodeList'; totalCount: number };
}>;
};
}>;
} | null;
updateMangas: {
__typename: 'UpdateMangasPayload';
mangas: Array<{
__typename: 'MangaType';
id: number;
inLibrary: boolean;
inLibraryAt: string;
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{
__typename: 'CategoryType';
id: number;
mangas: { __typename: 'MangaNodeList'; totalCount: number };
}>;
};
}>;
} | null;
};
2025-12-22 14:00:44 +01:00
export type UpdateMangaCategoriesMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateMangaCategoriesInput;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateMangaCategoriesMutation = {
__typename: 'Mutation';
updateMangaCategories: {
__typename: 'UpdateMangaCategoriesPayload';
manga: {
__typename: 'MangaType';
id: number;
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{
__typename: 'CategoryType';
id: number;
mangas: { __typename: 'MangaNodeList'; totalCount: number };
}>;
};
};
} | null;
};
2025-12-22 14:00:44 +01:00
export type UpdateMangasCategoriesMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateMangasCategoriesInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type UpdateMangasCategoriesMutation = {
__typename: 'Mutation';
updateMangasCategories: {
__typename: 'UpdateMangasCategoriesPayload';
mangas: Array<{
__typename: 'MangaType';
id: number;
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{
__typename: 'CategoryType';
id: number;
mangas: { __typename: 'MangaNodeList'; totalCount: number };
}>;
};
}>;
} | null;
};
export type UpdateMangaMetadataMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
preUpdateDeleteInput: Types.DeleteMangaMetasInput;
hasPreUpdateDeletions: boolean;
updateInput: Types.SetMangaMetasInput;
hasUpdates: boolean;
postUpdateDeleteInput: Types.DeleteMangaMetasInput;
hasPostUpdateDeletions: boolean;
migrateInput: Types.SetMangaMetasInput;
isMigration: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateMangaMetadataMutation = {
__typename: 'Mutation';
preUpdateDeletedMeta?: {
__typename: 'DeleteMangaMetasPayload';
metas: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
} | null;
updatedMeta?: {
__typename: 'SetMangaMetasPayload';
metas: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
} | null;
postUpdateDeletedMeta?: {
__typename: 'DeleteMangaMetasPayload';
metas: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
} | null;
migrationMeta?: {
__typename: 'SetMangaMetasPayload';
metas: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
} | null;
};
export type GetMangaMetaQueryVariables = Exact<{
id: number;
}>;
export type GetMangaMetaQuery = {
__typename: 'Query';
manga: {
__typename: 'MangaType';
id: number;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
};
};
2024-07-08 18:02:50 +02:00
export type GetMangaScreenQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: number;
}>;
2026-05-17 12:38:49 +02:00
export type GetMangaScreenQuery = {
__typename: 'Query';
manga: {
__typename: 'MangaType';
artist: string | null;
author: string | null;
description: string | null;
status: Types.MangaStatus;
realUrl: string | null;
sourceId: string;
genre: Array<string>;
lastFetchedAt: string | null;
inLibraryAt: string;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
};
};
2024-07-08 18:02:50 +02:00
export type GetMangaReaderQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: number;
2024-07-08 18:02:50 +02:00
}>;
2026-05-17 12:38:49 +02:00
export type GetMangaReaderQuery = {
__typename: 'Query';
manga: {
__typename: 'MangaType';
genre: Array<string>;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
trackRecords: { __typename: 'TrackRecordNodeList'; totalCount: number };
};
};
2024-07-08 18:02:50 +02:00
export type GetMangaTrackRecordsQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: number;
2024-07-08 18:02:50 +02:00
}>;
2026-05-17 12:38:49 +02:00
export type GetMangaTrackRecordsQuery = {
__typename: 'Query';
manga: {
__typename: 'MangaType';
id: number;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
}>;
};
};
};
2024-07-08 18:02:50 +02:00
export type GetMangaCategoriesQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: number;
2024-07-08 18:02:50 +02:00
}>;
2026-05-17 12:38:49 +02:00
export type GetMangaCategoriesQuery = {
__typename: 'Query';
manga: {
__typename: 'MangaType';
id: number;
categories: {
__typename: 'CategoryNodeList';
totalCount: number;
nodes: Array<{ __typename: 'CategoryType'; id: number }>;
};
};
};
export type GetMangaToMigrateQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: number;
getChapterData: boolean;
migrateCategories: boolean;
migrateTracking: boolean;
migrateMetadata: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type GetMangaToMigrateQuery = {
__typename: 'Query';
manga: {
__typename: 'MangaType';
id: number;
inLibrary: boolean;
title: string;
chapters?: {
__typename: 'ChapterNodeList';
totalCount: number;
nodes: Array<{
__typename: 'ChapterType';
id: number;
chapterNumber: number;
isRead: boolean;
isDownloaded: boolean;
isBookmarked: boolean;
manga: { __typename: 'MangaType'; id: number };
meta?: Array<{ __typename: 'ChapterMetaType'; chapterId: number; key: string; value: string }>;
}>;
};
categories?: { __typename: 'CategoryNodeList'; nodes: Array<{ __typename: 'CategoryType'; id: number }> };
trackRecords?: {
__typename: 'TrackRecordNodeList';
nodes: Array<{
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
private: boolean;
}>;
};
meta?: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
};
};
2024-07-08 18:02:50 +02:00
export type GetMangasBaseQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.MangaConditionInput | null | undefined;
filter?: Types.MangaFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.MangaOrderInput> | Types.MangaOrderInput | null | undefined;
2024-07-08 18:02:50 +02:00
}>;
2026-05-17 12:38:49 +02:00
export type GetMangasBaseQuery = {
__typename: 'Query';
mangas: {
__typename: 'MangaNodeList';
totalCount: number;
nodes: Array<{
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2024-07-08 18:02:50 +02:00
export type GetMangasLibraryQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.MangaConditionInput | null | undefined;
filter?: Types.MangaFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.MangaOrderInput> | Types.MangaOrderInput | null | undefined;
2024-07-08 18:02:50 +02:00
}>;
2026-05-17 12:38:49 +02:00
export type GetMangasLibraryQuery = {
__typename: 'Query';
mangas: {
__typename: 'MangaNodeList';
totalCount: number;
nodes: Array<{
__typename: 'MangaType';
genre: Array<string>;
lastFetchedAt: string | null;
inLibraryAt: string;
status: Types.MangaStatus;
artist: string | null;
author: string | null;
description: string | null;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
meta: Array<{ __typename: 'MangaMetaType'; mangaId: number; key: string; value: string }>;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
2024-07-08 18:02:50 +02:00
export type GetMangasDuplicatesQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.MangaConditionInput | null | undefined;
filter?: Types.MangaFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.MangaOrderInput> | Types.MangaOrderInput | null | undefined;
}>;
2026-05-17 12:38:49 +02:00
export type GetMangasDuplicatesQuery = {
__typename: 'Query';
mangas: {
__typename: 'MangaNodeList';
totalCount: number;
nodes: Array<{
__typename: 'MangaType';
description: string | null;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
}>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
export type GetMigratableSourceMangasQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.MangaConditionInput | null | undefined;
filter?: Types.MangaFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.MangaOrderInput> | Types.MangaOrderInput | null | undefined;
}>;
2026-05-17 12:38:49 +02:00
export type GetMigratableSourceMangasQuery = {
__typename: 'Query';
mangas: {
__typename: 'MangaNodeList';
nodes: Array<{
__typename: 'MangaType';
artist: string | null;
author: string | null;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
source: { __typename: 'SourceType'; id: string; name: string; displayName: string } | null;
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
}>;
};
};
export type GetLibraryMangaCountQueryVariables = Exact<{ [key: string]: never }>;
export type GetLibraryMangaCountQuery = {
__typename: 'Query';
mangas: { __typename: 'MangaNodeList'; totalCount: number };
};
export type UpdateGlobalMetadataMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
preUpdateDeleteInput: Types.DeleteGlobalMetasInput;
hasPreUpdateDeletions: boolean;
updateInput: Types.SetGlobalMetasInput;
hasUpdates: boolean;
postUpdateDeleteInput: Types.DeleteGlobalMetasInput;
hasPostUpdateDeletions: boolean;
migrateInput: Types.SetGlobalMetasInput;
isMigration: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateGlobalMetadataMutation = {
__typename: 'Mutation';
preUpdateDeletedMeta?: {
__typename: 'DeleteGlobalMetasPayload';
metas: Array<{ __typename: 'GlobalMetaType'; key: string; value: string }>;
} | null;
updatedMeta?: {
__typename: 'SetGlobalMetasPayload';
metas: Array<{ __typename: 'GlobalMetaType'; key: string; value: string }>;
} | null;
postUpdateDeletedMeta?: {
__typename: 'DeleteGlobalMetasPayload';
metas: Array<{ __typename: 'GlobalMetaType'; key: string; value: string }>;
} | null;
migrationMeta?: {
__typename: 'SetGlobalMetasPayload';
metas: Array<{ __typename: 'GlobalMetaType'; key: string; value: string }>;
} | null;
};
2025-12-22 14:00:44 +01:00
export type GetGlobalMetadataQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
key: string;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetGlobalMetadataQuery = {
__typename: 'Query';
meta: { __typename: 'GlobalMetaType'; key: string; value: string };
};
2025-12-22 14:00:44 +01:00
export type GetGlobalMetadatasQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
after?: string | null | undefined;
before?: string | null | undefined;
condition?: Types.MetaConditionInput | null | undefined;
filter?: Types.MetaFilterInput | null | undefined;
first?: number | null | undefined;
last?: number | null | undefined;
offset?: number | null | undefined;
order?: Array<Types.MetaOrderInput> | Types.MetaOrderInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetGlobalMetadatasQuery = {
__typename: 'Query';
metas: {
__typename: 'GlobalMetaNodeList';
totalCount: number;
nodes: Array<{ __typename: 'GlobalMetaType'; key: string; value: string }>;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
};
};
export type AboutWebuiFragment = {
__typename: 'AboutWebUI';
channel: Types.WebUiChannel;
tag: string;
updateTimestamp: string;
};
export type WebuiUpdateCheckFragment = {
__typename: 'WebUIUpdateCheck';
channel: Types.WebUiChannel;
tag: string;
updateAvailable: boolean;
};
export type WebuiUpdateInfoFragment = { __typename: 'WebUIUpdateInfo'; channel: Types.WebUiChannel; tag: string };
export type WebuiUpdateStatusFragment = {
__typename: 'WebUIUpdateStatus';
progress: number;
state: Types.UpdateState;
info: { __typename: 'WebUIUpdateInfo'; channel: Types.WebUiChannel; tag: string };
};
2025-12-22 14:00:44 +01:00
export type UpdateWebuiMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input?: Types.WebUiUpdateInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type UpdateWebuiMutation = {
__typename: 'Mutation';
updateWebUI: {
__typename: 'WebUIUpdatePayload';
updateStatus: {
__typename: 'WebUIUpdateStatus';
progress: number;
state: Types.UpdateState;
info: { __typename: 'WebUIUpdateInfo'; channel: Types.WebUiChannel; tag: string };
};
} | null;
};
export type ResetWebuiUpdateStatusMutationVariables = Exact<{ [key: string]: never }>;
export type ResetWebuiUpdateStatusMutation = {
__typename: 'Mutation';
resetWebUIUpdateStatus: {
__typename: 'WebUIUpdateStatus';
state: Types.UpdateState;
info: { __typename: 'WebUIUpdateInfo'; channel: Types.WebUiChannel; tag: string };
} | null;
};
export type GetAboutQueryVariables = Exact<{ [key: string]: never }>;
export type GetAboutQuery = {
__typename: 'Query';
aboutServer: {
__typename: 'AboutServerPayload';
buildTime: string;
buildType: string;
discord: string;
github: string;
name: string;
version: string;
};
aboutWebUI: { __typename: 'AboutWebUI'; channel: Types.WebUiChannel; tag: string; updateTimestamp: string };
};
export type CheckForServerUpdatesQueryVariables = Exact<{ [key: string]: never }>;
export type CheckForServerUpdatesQuery = {
__typename: 'Query';
checkForServerUpdates: Array<{
__typename: 'CheckForServerUpdatesPayload';
channel: string;
tag: string;
url: string;
}>;
};
export type CheckForWebuiUpdateQueryVariables = Exact<{ [key: string]: never }>;
export type CheckForWebuiUpdateQuery = {
__typename: 'Query';
checkForWebUIUpdate: {
__typename: 'WebUIUpdateCheck';
channel: Types.WebUiChannel;
tag: string;
updateAvailable: boolean;
};
};
export type GetWebuiUpdateStatusQueryVariables = Exact<{ [key: string]: never }>;
export type GetWebuiUpdateStatusQuery = {
__typename: 'Query';
getWebUIUpdateStatus: {
__typename: 'WebUIUpdateStatus';
progress: number;
state: Types.UpdateState;
info: { __typename: 'WebUIUpdateInfo'; channel: Types.WebUiChannel; tag: string };
};
};
export type WebuiUpdateSubscriptionVariables = Exact<{ [key: string]: never }>;
export type WebuiUpdateSubscription = {
__typename: 'Subscription';
webUIUpdateStatusChange: {
__typename: 'WebUIUpdateStatus';
progress: number;
state: Types.UpdateState;
info: { __typename: 'WebUIUpdateInfo'; channel: Types.WebUiChannel; tag: string };
};
};
export type ServerSettingsFragment = {
__typename: 'SettingsType';
ip: string;
port: number;
socksProxyEnabled: boolean;
socksProxyVersion: number;
socksProxyHost: string;
socksProxyPort: string;
socksProxyUsername: string;
socksProxyPassword: string;
webUIFlavor: Types.WebUiFlavor;
initialOpenInBrowserEnabled: boolean;
webUIInterface: Types.WebUiInterface;
electronPath: string;
webUIChannel: Types.WebUiChannel;
webUIUpdateCheckInterval: number;
downloadAsCbz: boolean;
downloadsPath: string;
autoDownloadNewChapters: boolean;
excludeEntryWithUnreadChapters: boolean;
autoDownloadNewChaptersLimit: number;
autoDownloadIgnoreReUploads: boolean;
extensionRepos: Array<string>;
maxSourcesInParallel: number;
excludeUnreadChapters: boolean;
excludeNotStarted: boolean;
excludeCompleted: boolean;
globalUpdateInterval: number;
updateMangas: boolean;
authMode: Types.AuthMode;
authPassword: string;
authUsername: string;
jwtAudience: string;
jwtTokenExpiry: string;
jwtRefreshExpiry: string;
debugLogsEnabled: boolean;
systemTrayEnabled: boolean;
maxLogFileSize: string;
maxLogFiles: number;
maxLogFolderSize: string;
backupPath: string;
backupTime: string;
backupInterval: number;
backupTTL: number;
autoBackupIncludeCategories: boolean;
autoBackupIncludeChapters: boolean;
autoBackupIncludeClientData: boolean;
autoBackupIncludeHistory: boolean;
autoBackupIncludeManga: boolean;
autoBackupIncludeServerSettings: boolean;
autoBackupIncludeTracking: boolean;
localSourcePath: string;
flareSolverrEnabled: boolean;
flareSolverrUrl: string;
flareSolverrTimeout: number;
flareSolverrSessionName: string;
flareSolverrSessionTtl: number;
flareSolverrAsResponseFallback: boolean;
opdsUseBinaryFileSizes: boolean;
opdsItemsPerPage: number;
opdsEnablePageReadProgress: boolean;
opdsMarkAsReadOnDownload: boolean;
opdsShowOnlyUnreadChapters: boolean;
opdsShowOnlyDownloadedChapters: boolean;
opdsChapterSortOrder: Types.SortOrder;
opdsCbzMimetype: Types.CbzMediaType;
koreaderSyncChecksumMethod: Types.KoreaderSyncChecksumMethod;
koreaderSyncStrategyBackward: Types.KoreaderSyncConflictStrategy;
koreaderSyncStrategyForward: Types.KoreaderSyncConflictStrategy;
koreaderSyncPercentageTolerance: number;
databaseType: Types.DatabaseType;
databaseUrl: string;
databaseUsername: string;
databasePassword: string;
useHikariConnectionPool: boolean;
kcefEnabled: boolean;
2026-05-17 12:38:49 +02:00
downloadConversions: Array<{
__typename: 'SettingsDownloadConversionType';
mimeType: string;
target: string;
compressionLevel: number | null;
callTimeout: string | null;
connectTimeout: string | null;
headers: Array<{ __typename: 'SettingsDownloadConversionHeaderType'; name: string; value: string }> | null;
}>;
serveConversions: Array<{
__typename: 'SettingsDownloadConversionType';
mimeType: string;
target: string;
compressionLevel: number | null;
callTimeout: string | null;
connectTimeout: string | null;
headers: Array<{ __typename: 'SettingsDownloadConversionHeaderType'; name: string; value: string }> | null;
}>;
};
2025-12-22 14:00:44 +01:00
export type ResetServerSettingsMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.ResetSettingsInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type ResetServerSettingsMutation = {
__typename: 'Mutation';
resetSettings: {
__typename: 'ResetSettingsPayload';
settings: {
__typename: 'SettingsType';
ip: string;
port: number;
socksProxyEnabled: boolean;
socksProxyVersion: number;
socksProxyHost: string;
socksProxyPort: string;
socksProxyUsername: string;
socksProxyPassword: string;
webUIFlavor: Types.WebUiFlavor;
initialOpenInBrowserEnabled: boolean;
webUIInterface: Types.WebUiInterface;
electronPath: string;
webUIChannel: Types.WebUiChannel;
webUIUpdateCheckInterval: number;
downloadAsCbz: boolean;
downloadsPath: string;
autoDownloadNewChapters: boolean;
excludeEntryWithUnreadChapters: boolean;
autoDownloadNewChaptersLimit: number;
autoDownloadIgnoreReUploads: boolean;
extensionRepos: Array<string>;
maxSourcesInParallel: number;
excludeUnreadChapters: boolean;
excludeNotStarted: boolean;
excludeCompleted: boolean;
globalUpdateInterval: number;
updateMangas: boolean;
authMode: Types.AuthMode;
authPassword: string;
authUsername: string;
jwtAudience: string;
jwtTokenExpiry: string;
jwtRefreshExpiry: string;
debugLogsEnabled: boolean;
systemTrayEnabled: boolean;
maxLogFileSize: string;
maxLogFiles: number;
maxLogFolderSize: string;
backupPath: string;
backupTime: string;
backupInterval: number;
backupTTL: number;
autoBackupIncludeCategories: boolean;
autoBackupIncludeChapters: boolean;
autoBackupIncludeClientData: boolean;
autoBackupIncludeHistory: boolean;
autoBackupIncludeManga: boolean;
autoBackupIncludeServerSettings: boolean;
autoBackupIncludeTracking: boolean;
localSourcePath: string;
flareSolverrEnabled: boolean;
flareSolverrUrl: string;
flareSolverrTimeout: number;
flareSolverrSessionName: string;
flareSolverrSessionTtl: number;
flareSolverrAsResponseFallback: boolean;
opdsUseBinaryFileSizes: boolean;
opdsItemsPerPage: number;
opdsEnablePageReadProgress: boolean;
opdsMarkAsReadOnDownload: boolean;
opdsShowOnlyUnreadChapters: boolean;
opdsShowOnlyDownloadedChapters: boolean;
opdsChapterSortOrder: Types.SortOrder;
opdsCbzMimetype: Types.CbzMediaType;
koreaderSyncChecksumMethod: Types.KoreaderSyncChecksumMethod;
koreaderSyncStrategyBackward: Types.KoreaderSyncConflictStrategy;
koreaderSyncStrategyForward: Types.KoreaderSyncConflictStrategy;
koreaderSyncPercentageTolerance: number;
databaseType: Types.DatabaseType;
databaseUrl: string;
databaseUsername: string;
databasePassword: string;
useHikariConnectionPool: boolean;
kcefEnabled: boolean;
2026-05-17 12:38:49 +02:00
downloadConversions: Array<{
__typename: 'SettingsDownloadConversionType';
mimeType: string;
target: string;
compressionLevel: number | null;
callTimeout: string | null;
connectTimeout: string | null;
headers: Array<{
__typename: 'SettingsDownloadConversionHeaderType';
name: string;
value: string;
}> | null;
}>;
serveConversions: Array<{
__typename: 'SettingsDownloadConversionType';
mimeType: string;
target: string;
compressionLevel: number | null;
callTimeout: string | null;
connectTimeout: string | null;
headers: Array<{
__typename: 'SettingsDownloadConversionHeaderType';
name: string;
value: string;
}> | null;
}>;
};
};
};
2025-12-22 14:00:44 +01:00
export type UpdateServerSettingsMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.SetSettingsInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type UpdateServerSettingsMutation = {
__typename: 'Mutation';
setSettings: {
__typename: 'SetSettingsPayload';
settings: {
__typename: 'SettingsType';
ip: string;
port: number;
socksProxyEnabled: boolean;
socksProxyVersion: number;
socksProxyHost: string;
socksProxyPort: string;
socksProxyUsername: string;
socksProxyPassword: string;
webUIFlavor: Types.WebUiFlavor;
initialOpenInBrowserEnabled: boolean;
webUIInterface: Types.WebUiInterface;
electronPath: string;
webUIChannel: Types.WebUiChannel;
webUIUpdateCheckInterval: number;
downloadAsCbz: boolean;
downloadsPath: string;
autoDownloadNewChapters: boolean;
excludeEntryWithUnreadChapters: boolean;
autoDownloadNewChaptersLimit: number;
autoDownloadIgnoreReUploads: boolean;
extensionRepos: Array<string>;
maxSourcesInParallel: number;
excludeUnreadChapters: boolean;
excludeNotStarted: boolean;
excludeCompleted: boolean;
globalUpdateInterval: number;
updateMangas: boolean;
authMode: Types.AuthMode;
authPassword: string;
authUsername: string;
jwtAudience: string;
jwtTokenExpiry: string;
jwtRefreshExpiry: string;
debugLogsEnabled: boolean;
systemTrayEnabled: boolean;
maxLogFileSize: string;
maxLogFiles: number;
maxLogFolderSize: string;
backupPath: string;
backupTime: string;
backupInterval: number;
backupTTL: number;
autoBackupIncludeCategories: boolean;
autoBackupIncludeChapters: boolean;
autoBackupIncludeClientData: boolean;
autoBackupIncludeHistory: boolean;
autoBackupIncludeManga: boolean;
autoBackupIncludeServerSettings: boolean;
autoBackupIncludeTracking: boolean;
localSourcePath: string;
flareSolverrEnabled: boolean;
flareSolverrUrl: string;
flareSolverrTimeout: number;
flareSolverrSessionName: string;
flareSolverrSessionTtl: number;
flareSolverrAsResponseFallback: boolean;
opdsUseBinaryFileSizes: boolean;
opdsItemsPerPage: number;
opdsEnablePageReadProgress: boolean;
opdsMarkAsReadOnDownload: boolean;
opdsShowOnlyUnreadChapters: boolean;
opdsShowOnlyDownloadedChapters: boolean;
opdsChapterSortOrder: Types.SortOrder;
opdsCbzMimetype: Types.CbzMediaType;
koreaderSyncChecksumMethod: Types.KoreaderSyncChecksumMethod;
koreaderSyncStrategyBackward: Types.KoreaderSyncConflictStrategy;
koreaderSyncStrategyForward: Types.KoreaderSyncConflictStrategy;
koreaderSyncPercentageTolerance: number;
databaseType: Types.DatabaseType;
databaseUrl: string;
databaseUsername: string;
databasePassword: string;
useHikariConnectionPool: boolean;
kcefEnabled: boolean;
2026-05-17 12:38:49 +02:00
downloadConversions: Array<{
__typename: 'SettingsDownloadConversionType';
mimeType: string;
target: string;
compressionLevel: number | null;
callTimeout: string | null;
connectTimeout: string | null;
headers: Array<{
__typename: 'SettingsDownloadConversionHeaderType';
name: string;
value: string;
}> | null;
}>;
serveConversions: Array<{
__typename: 'SettingsDownloadConversionType';
mimeType: string;
target: string;
compressionLevel: number | null;
callTimeout: string | null;
connectTimeout: string | null;
headers: Array<{
__typename: 'SettingsDownloadConversionHeaderType';
name: string;
value: string;
}> | null;
}>;
};
};
};
export type GetServerSettingsQueryVariables = Exact<{ [key: string]: never }>;
export type GetServerSettingsQuery = {
__typename: 'Query';
settings: {
__typename: 'SettingsType';
ip: string;
port: number;
socksProxyEnabled: boolean;
socksProxyVersion: number;
socksProxyHost: string;
socksProxyPort: string;
socksProxyUsername: string;
socksProxyPassword: string;
webUIFlavor: Types.WebUiFlavor;
initialOpenInBrowserEnabled: boolean;
webUIInterface: Types.WebUiInterface;
electronPath: string;
webUIChannel: Types.WebUiChannel;
webUIUpdateCheckInterval: number;
downloadAsCbz: boolean;
downloadsPath: string;
autoDownloadNewChapters: boolean;
excludeEntryWithUnreadChapters: boolean;
autoDownloadNewChaptersLimit: number;
autoDownloadIgnoreReUploads: boolean;
extensionRepos: Array<string>;
maxSourcesInParallel: number;
excludeUnreadChapters: boolean;
excludeNotStarted: boolean;
excludeCompleted: boolean;
globalUpdateInterval: number;
updateMangas: boolean;
authMode: Types.AuthMode;
authPassword: string;
authUsername: string;
jwtAudience: string;
jwtTokenExpiry: string;
jwtRefreshExpiry: string;
debugLogsEnabled: boolean;
systemTrayEnabled: boolean;
maxLogFileSize: string;
maxLogFiles: number;
maxLogFolderSize: string;
backupPath: string;
backupTime: string;
backupInterval: number;
backupTTL: number;
autoBackupIncludeCategories: boolean;
autoBackupIncludeChapters: boolean;
autoBackupIncludeClientData: boolean;
autoBackupIncludeHistory: boolean;
autoBackupIncludeManga: boolean;
autoBackupIncludeServerSettings: boolean;
autoBackupIncludeTracking: boolean;
localSourcePath: string;
flareSolverrEnabled: boolean;
flareSolverrUrl: string;
flareSolverrTimeout: number;
flareSolverrSessionName: string;
flareSolverrSessionTtl: number;
flareSolverrAsResponseFallback: boolean;
opdsUseBinaryFileSizes: boolean;
opdsItemsPerPage: number;
opdsEnablePageReadProgress: boolean;
opdsMarkAsReadOnDownload: boolean;
opdsShowOnlyUnreadChapters: boolean;
opdsShowOnlyDownloadedChapters: boolean;
opdsChapterSortOrder: Types.SortOrder;
opdsCbzMimetype: Types.CbzMediaType;
koreaderSyncChecksumMethod: Types.KoreaderSyncChecksumMethod;
koreaderSyncStrategyBackward: Types.KoreaderSyncConflictStrategy;
koreaderSyncStrategyForward: Types.KoreaderSyncConflictStrategy;
koreaderSyncPercentageTolerance: number;
databaseType: Types.DatabaseType;
databaseUrl: string;
databaseUsername: string;
databasePassword: string;
useHikariConnectionPool: boolean;
kcefEnabled: boolean;
2026-05-17 12:38:49 +02:00
downloadConversions: Array<{
__typename: 'SettingsDownloadConversionType';
mimeType: string;
target: string;
compressionLevel: number | null;
callTimeout: string | null;
connectTimeout: string | null;
headers: Array<{ __typename: 'SettingsDownloadConversionHeaderType'; name: string; value: string }> | null;
}>;
serveConversions: Array<{
__typename: 'SettingsDownloadConversionType';
mimeType: string;
target: string;
compressionLevel: number | null;
callTimeout: string | null;
connectTimeout: string | null;
headers: Array<{ __typename: 'SettingsDownloadConversionHeaderType'; name: string; value: string }> | null;
}>;
};
};
export type SourceMetaFieldsFragment = { __typename: 'SourceMetaType'; sourceId: string; key: string; value: string };
export type SourceBaseFieldsFragment = {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
};
export type SourceListFieldsFragment = {
__typename: 'SourceType';
lang: string;
iconUrl: string;
isNsfw: boolean;
isConfigurable: boolean;
supportsLatest: boolean;
id: string;
name: string;
displayName: string;
meta: Array<{ __typename: 'SourceMetaType'; sourceId: string; key: string; value: string }>;
extension: { __typename: 'ExtensionType'; pkgName: string; repo: string | null };
};
export type SourceBrowseFieldsFragment = {
__typename: 'SourceType';
baseUrl: string | null;
isConfigurable: boolean;
supportsLatest: boolean;
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
meta: Array<{ __typename: 'SourceMetaType'; sourceId: string; key: string; value: string }>;
filters: Array<
| { __typename: 'CheckBoxFilter'; name: string; type: 'CheckBoxFilter'; CheckBoxFilterDefault: boolean }
| {
__typename: 'GroupFilter';
name: string;
type: 'GroupFilter';
filters: Array<
| {
__typename: 'CheckBoxFilter';
name: string;
type: 'CheckBoxFilter';
CheckBoxFilterDefault: boolean;
}
| { __typename: 'GroupFilter' }
| { __typename: 'HeaderFilter'; name: string; type: 'HeaderFilter' }
| {
__typename: 'SelectFilter';
name: string;
values: Array<string>;
type: 'SelectFilter';
SelectFilterDefault: number;
}
| { __typename: 'SeparatorFilter'; name: string; type: 'SeparatorFilter' }
| {
__typename: 'SortFilter';
name: string;
values: Array<string>;
type: 'SortFilter';
SortFilterDefault: { __typename: 'SortSelection'; ascending: boolean; index: number } | null;
}
| { __typename: 'TextFilter'; name: string; type: 'TextFilter'; TextFilterDefault: string }
| {
__typename: 'TriStateFilter';
name: string;
type: 'TriStateFilter';
TriStateFilterDefault: Types.TriState;
}
>;
}
| { __typename: 'HeaderFilter'; name: string; type: 'HeaderFilter' }
| {
__typename: 'SelectFilter';
name: string;
values: Array<string>;
type: 'SelectFilter';
SelectFilterDefault: number;
}
| { __typename: 'SeparatorFilter'; name: string; type: 'SeparatorFilter' }
| {
__typename: 'SortFilter';
name: string;
values: Array<string>;
type: 'SortFilter';
SortFilterDefault: { __typename: 'SortSelection'; ascending: boolean; index: number } | null;
}
| { __typename: 'TextFilter'; name: string; type: 'TextFilter'; TextFilterDefault: string }
| { __typename: 'TriStateFilter'; name: string; type: 'TriStateFilter'; TriStateFilterDefault: Types.TriState }
>;
};
export type SourceSettingFieldsFragment = {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
preferences: Array<
| {
__typename: 'CheckBoxPreference';
summary: string | null;
key: string | null;
type: 'CheckBoxPreference';
CheckBoxCheckBoxCurrentValue: boolean | null;
CheckBoxDefault: boolean;
CheckBoxTitle: string | null;
}
| {
__typename: 'EditTextPreference';
text: string | null;
summary: string | null;
key: string | null;
dialogTitle: string | null;
dialogMessage: string | null;
type: 'EditTextPreference';
EditTextPreferenceCurrentValue: string | null;
EditTextPreferenceDefault: string | null;
EditTextPreferenceTitle: string | null;
}
| {
__typename: 'ListPreference';
summary: string | null;
key: string | null;
entryValues: Array<string>;
entries: Array<string>;
type: 'ListPreference';
ListPreferenceCurrentValue: string | null;
ListPreferenceDefault: string | null;
ListPreferenceTitle: string | null;
}
| {
__typename: 'MultiSelectListPreference';
dialogMessage: string | null;
dialogTitle: string | null;
summary: string | null;
key: string | null;
entryValues: Array<string>;
entries: Array<string>;
type: 'MultiSelectListPreference';
MultiSelectListPreferenceTitle: string | null;
MultiSelectListPreferenceDefault: Array<string> | null;
MultiSelectListPreferenceCurrentValue: Array<string> | null;
}
| {
__typename: 'SwitchPreference';
summary: string | null;
key: string | null;
type: 'SwitchPreference';
SwitchPreferenceCurrentValue: boolean | null;
SwitchPreferenceDefault: boolean;
SwitchPreferenceTitle: string | null;
}
>;
};
2025-12-22 14:00:44 +01:00
export type GetSourceMangasFetchMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.FetchSourceMangaInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetSourceMangasFetchMutation = {
__typename: 'Mutation';
fetchSourceManga: {
__typename: 'FetchSourceMangaPayload';
hasNextPage: boolean;
mangas: Array<{
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
}>;
} | null;
};
2025-12-22 14:00:44 +01:00
2026-03-13 22:41:28 +01:00
export type GetMigrationSourceMangasFetchMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.FetchSourceMangaInput;
2026-03-13 22:41:28 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type GetMigrationSourceMangasFetchMutation = {
__typename: 'Mutation';
fetchSourceManga: {
__typename: 'FetchSourceMangaPayload';
hasNextPage: boolean;
mangas: Array<{
__typename: 'MangaType';
artist: string | null;
author: string | null;
id: number;
title: string;
thumbnailUrl: string | null;
thumbnailUrlLastFetched: string | null;
inLibrary: boolean;
initialized: boolean;
sourceId: string;
source: { __typename: 'SourceType'; id: string; name: string; displayName: string } | null;
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
}>;
} | null;
};
2026-03-13 22:41:28 +01:00
2025-12-22 14:00:44 +01:00
export type UpdateSourcePreferencesMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateSourcePreferenceInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type UpdateSourcePreferencesMutation = {
__typename: 'Mutation';
updateSourcePreference: {
__typename: 'UpdateSourcePreferencePayload';
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
preferences: Array<
| {
__typename: 'CheckBoxPreference';
summary: string | null;
key: string | null;
type: 'CheckBoxPreference';
CheckBoxCheckBoxCurrentValue: boolean | null;
CheckBoxDefault: boolean;
CheckBoxTitle: string | null;
}
| {
__typename: 'EditTextPreference';
text: string | null;
summary: string | null;
key: string | null;
dialogTitle: string | null;
dialogMessage: string | null;
type: 'EditTextPreference';
EditTextPreferenceCurrentValue: string | null;
EditTextPreferenceDefault: string | null;
EditTextPreferenceTitle: string | null;
}
| {
__typename: 'ListPreference';
summary: string | null;
key: string | null;
entryValues: Array<string>;
entries: Array<string>;
type: 'ListPreference';
ListPreferenceCurrentValue: string | null;
ListPreferenceDefault: string | null;
ListPreferenceTitle: string | null;
}
| {
__typename: 'MultiSelectListPreference';
dialogMessage: string | null;
dialogTitle: string | null;
summary: string | null;
key: string | null;
entryValues: Array<string>;
entries: Array<string>;
type: 'MultiSelectListPreference';
MultiSelectListPreferenceTitle: string | null;
MultiSelectListPreferenceDefault: Array<string> | null;
MultiSelectListPreferenceCurrentValue: Array<string> | null;
}
| {
__typename: 'SwitchPreference';
summary: string | null;
key: string | null;
type: 'SwitchPreference';
SwitchPreferenceCurrentValue: boolean | null;
SwitchPreferenceDefault: boolean;
SwitchPreferenceTitle: string | null;
}
>;
};
} | null;
};
2025-12-22 14:00:44 +01:00
export type UpdateSourceMetadataMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
preUpdateDeleteInput: Types.DeleteSourceMetasInput;
hasPreUpdateDeletions: boolean;
updateInput: Types.SetSourceMetasInput;
hasUpdates: boolean;
postUpdateDeleteInput: Types.DeleteSourceMetasInput;
hasPostUpdateDeletions: boolean;
migrateInput: Types.SetSourceMetasInput;
isMigration: boolean;
}>;
2026-05-17 12:38:49 +02:00
export type UpdateSourceMetadataMutation = {
__typename: 'Mutation';
preUpdateDeletedMeta?: {
__typename: 'DeleteSourceMetasPayload';
metas: Array<{ __typename: 'SourceMetaType'; sourceId: string; key: string; value: string }>;
} | null;
updatedMeta?: {
__typename: 'SetSourceMetasPayload';
metas: Array<{ __typename: 'SourceMetaType'; sourceId: string; key: string; value: string }>;
} | null;
postUpdateDeletedMeta?: {
__typename: 'DeleteSourceMetasPayload';
metas: Array<{ __typename: 'SourceMetaType'; sourceId: string; key: string; value: string }>;
} | null;
migrationMeta?: {
__typename: 'SetSourceMetasPayload';
metas: Array<{ __typename: 'SourceMetaType'; sourceId: string; key: string; value: string }>;
} | null;
};
export type GetSourceBrowseQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: string;
}>;
export type GetSourceBrowseQuery = {
__typename: 'Query';
source: {
__typename: 'SourceType';
baseUrl: string | null;
isConfigurable: boolean;
supportsLatest: boolean;
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
meta: Array<{ __typename: 'SourceMetaType'; sourceId: string; key: string; value: string }>;
filters: Array<
| { __typename: 'CheckBoxFilter'; name: string; type: 'CheckBoxFilter'; CheckBoxFilterDefault: boolean }
| {
__typename: 'GroupFilter';
name: string;
type: 'GroupFilter';
filters: Array<
| {
__typename: 'CheckBoxFilter';
name: string;
type: 'CheckBoxFilter';
CheckBoxFilterDefault: boolean;
}
| { __typename: 'GroupFilter' }
| { __typename: 'HeaderFilter'; name: string; type: 'HeaderFilter' }
| {
__typename: 'SelectFilter';
name: string;
values: Array<string>;
type: 'SelectFilter';
SelectFilterDefault: number;
}
| { __typename: 'SeparatorFilter'; name: string; type: 'SeparatorFilter' }
| {
__typename: 'SortFilter';
name: string;
values: Array<string>;
type: 'SortFilter';
SortFilterDefault: {
__typename: 'SortSelection';
ascending: boolean;
index: number;
} | null;
}
| { __typename: 'TextFilter'; name: string; type: 'TextFilter'; TextFilterDefault: string }
| {
__typename: 'TriStateFilter';
name: string;
type: 'TriStateFilter';
TriStateFilterDefault: Types.TriState;
}
>;
}
| { __typename: 'HeaderFilter'; name: string; type: 'HeaderFilter' }
| {
__typename: 'SelectFilter';
name: string;
values: Array<string>;
type: 'SelectFilter';
SelectFilterDefault: number;
}
| { __typename: 'SeparatorFilter'; name: string; type: 'SeparatorFilter' }
| {
__typename: 'SortFilter';
name: string;
values: Array<string>;
type: 'SortFilter';
SortFilterDefault: { __typename: 'SortSelection'; ascending: boolean; index: number } | null;
}
| { __typename: 'TextFilter'; name: string; type: 'TextFilter'; TextFilterDefault: string }
| {
__typename: 'TriStateFilter';
name: string;
type: 'TriStateFilter';
TriStateFilterDefault: Types.TriState;
}
>;
};
};
export type GetSourceSettingsQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: string;
}>;
2026-05-17 12:38:49 +02:00
export type GetSourceSettingsQuery = {
__typename: 'Query';
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
preferences: Array<
| {
__typename: 'CheckBoxPreference';
summary: string | null;
key: string | null;
type: 'CheckBoxPreference';
CheckBoxCheckBoxCurrentValue: boolean | null;
CheckBoxDefault: boolean;
CheckBoxTitle: string | null;
}
| {
__typename: 'EditTextPreference';
text: string | null;
summary: string | null;
key: string | null;
dialogTitle: string | null;
dialogMessage: string | null;
type: 'EditTextPreference';
EditTextPreferenceCurrentValue: string | null;
EditTextPreferenceDefault: string | null;
EditTextPreferenceTitle: string | null;
}
| {
__typename: 'ListPreference';
summary: string | null;
key: string | null;
entryValues: Array<string>;
entries: Array<string>;
type: 'ListPreference';
ListPreferenceCurrentValue: string | null;
ListPreferenceDefault: string | null;
ListPreferenceTitle: string | null;
}
| {
__typename: 'MultiSelectListPreference';
dialogMessage: string | null;
dialogTitle: string | null;
summary: string | null;
key: string | null;
entryValues: Array<string>;
entries: Array<string>;
type: 'MultiSelectListPreference';
MultiSelectListPreferenceTitle: string | null;
MultiSelectListPreferenceDefault: Array<string> | null;
MultiSelectListPreferenceCurrentValue: Array<string> | null;
}
| {
__typename: 'SwitchPreference';
summary: string | null;
key: string | null;
type: 'SwitchPreference';
SwitchPreferenceCurrentValue: boolean | null;
SwitchPreferenceDefault: boolean;
SwitchPreferenceTitle: string | null;
}
>;
};
};
export type GetSourceMigratableQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
id: string;
}>;
2026-05-17 12:38:49 +02:00
export type GetSourceMigratableQuery = {
__typename: 'Query';
source: { __typename: 'SourceType'; id: string; name: string; displayName: string; lang: string; iconUrl: string };
};
export type GetSourcesListQueryVariables = Exact<{ [key: string]: never }>;
export type GetSourcesListQuery = {
__typename: 'Query';
sources: {
__typename: 'SourceNodeList';
nodes: Array<{
__typename: 'SourceType';
lang: string;
iconUrl: string;
isNsfw: boolean;
isConfigurable: boolean;
supportsLatest: boolean;
id: string;
name: string;
displayName: string;
meta: Array<{ __typename: 'SourceMetaType'; sourceId: string; key: string; value: string }>;
extension: { __typename: 'ExtensionType'; pkgName: string; repo: string | null };
}>;
};
};
export type GetMigratableSourcesQueryVariables = Exact<{ [key: string]: never }>;
export type GetMigratableSourcesQuery = {
__typename: 'Query';
mangas: {
__typename: 'MangaNodeList';
nodes: Array<{
__typename: 'MangaType';
sourceId: string;
source: {
__typename: 'SourceType';
id: string;
name: string;
displayName: string;
lang: string;
iconUrl: string;
} | null;
}>;
};
};
export type TrackerBaseFieldsFragment = {
__typename: 'TrackerType';
id: number;
name: string;
icon: string;
isLoggedIn: boolean;
isTokenExpired: boolean;
};
export type TrackerSettingFieldsFragment = {
__typename: 'TrackerType';
authUrl: string | null;
id: number;
name: string;
icon: string;
isLoggedIn: boolean;
isTokenExpired: boolean;
};
export type TrackerBindFieldsFragment = {
__typename: 'TrackerType';
icon: string;
supportsPrivateTracking: boolean;
supportsTrackDeletion: boolean;
scores: Array<string>;
id: number;
name: string;
isLoggedIn: boolean;
isTokenExpired: boolean;
statuses: Array<{ __typename: 'TrackStatusType'; name: string; value: number }>;
trackRecords: {
__typename: 'TrackRecordNodeList';
nodes: Array<{
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
}>;
};
};
export type TrackRecordSearchFieldsFragment = {
__typename: 'TrackSearchType';
id: number;
remoteId: string;
title: string;
trackingUrl: string;
coverUrl: string;
publishingType: string;
startDate: string;
publishingStatus: string;
summary: string;
score: number;
totalChapters: number;
};
export type TrackRecordBindFieldsFragment = {
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
};
2025-12-22 14:00:44 +01:00
export type TrackerLoginOauthMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.LoginTrackerOAuthInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type TrackerLoginOauthMutation = {
__typename: 'Mutation';
loginTrackerOAuth: {
__typename: 'LoginTrackerOAuthPayload';
tracker: {
__typename: 'TrackerType';
authUrl: string | null;
id: number;
name: string;
icon: string;
isLoggedIn: boolean;
isTokenExpired: boolean;
};
};
};
2025-12-22 14:00:44 +01:00
export type TrackerLoginCredentialsMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.LoginTrackerCredentialsInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type TrackerLoginCredentialsMutation = {
__typename: 'Mutation';
loginTrackerCredentials: {
__typename: 'LoginTrackerCredentialsPayload';
isLoggedIn: boolean;
tracker: {
__typename: 'TrackerType';
authUrl: string | null;
id: number;
name: string;
icon: string;
isLoggedIn: boolean;
isTokenExpired: boolean;
};
};
};
2025-12-22 14:00:44 +01:00
export type TrackerLogoutMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
trackerId: number;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type TrackerLogoutMutation = {
__typename: 'Mutation';
logoutTracker: {
__typename: 'LogoutTrackerPayload';
tracker: {
__typename: 'TrackerType';
authUrl: string | null;
id: number;
name: string;
icon: string;
isLoggedIn: boolean;
isTokenExpired: boolean;
};
};
};
2025-12-22 14:00:44 +01:00
export type TrackerBindMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.BindTrackInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type TrackerBindMutation = {
__typename: 'Mutation';
bindTrack: {
__typename: 'BindTrackPayload';
trackRecord: {
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
manga: {
__typename: 'MangaType';
id: number;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
};
};
};
};
2025-12-22 14:00:44 +01:00
export type TrackerUnbindMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UnbindTrackInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type TrackerUnbindMutation = {
__typename: 'Mutation';
unbindTrack: {
__typename: 'UnbindTrackPayload';
trackRecord: {
__typename: 'TrackRecordType';
id: number;
manga: {
__typename: 'MangaType';
id: number;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
};
} | null;
};
};
2025-12-22 14:00:44 +01:00
export type TrackerUpdateBindMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.UpdateTrackInput;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type TrackerUpdateBindMutation = {
__typename: 'Mutation';
updateTrack: {
__typename: 'UpdateTrackPayload';
trackRecord: {
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
manga: {
__typename: 'MangaType';
id: number;
trackRecords: {
__typename: 'TrackRecordNodeList';
totalCount: number;
nodes: Array<{ __typename: 'TrackRecordType'; id: number; trackerId: number }>;
};
};
} | null;
};
};
2025-12-22 14:00:44 +01:00
export type TrackerFetchBindMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
recordId: number;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type TrackerFetchBindMutation = {
__typename: 'Mutation';
fetchTrack: {
__typename: 'FetchTrackPayload';
trackRecord: {
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
};
};
};
export type GetTrackersSettingsQueryVariables = Exact<{ [key: string]: never }>;
export type GetTrackersSettingsQuery = {
__typename: 'Query';
trackers: {
__typename: 'TrackerNodeList';
totalCount: number;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
nodes: Array<{
__typename: 'TrackerType';
authUrl: string | null;
id: number;
name: string;
icon: string;
isLoggedIn: boolean;
isTokenExpired: boolean;
}>;
};
};
export type GetTrackersBindQueryVariables = Exact<{ [key: string]: never }>;
export type GetTrackersBindQuery = {
__typename: 'Query';
trackers: {
__typename: 'TrackerNodeList';
totalCount: number;
pageInfo: {
__typename: 'PageInfo';
endCursor: string | null;
hasNextPage: boolean;
hasPreviousPage: boolean;
startCursor: string | null;
};
nodes: Array<{
__typename: 'TrackerType';
icon: string;
supportsPrivateTracking: boolean;
supportsTrackDeletion: boolean;
scores: Array<string>;
id: number;
name: string;
isLoggedIn: boolean;
isTokenExpired: boolean;
statuses: Array<{ __typename: 'TrackStatusType'; name: string; value: number }>;
trackRecords: {
__typename: 'TrackRecordNodeList';
nodes: Array<{
__typename: 'TrackRecordType';
id: number;
remoteId: string;
trackerId: number;
remoteUrl: string;
title: string;
status: number;
lastChapterRead: number;
totalChapters: number;
score: number;
displayScore: string;
startDate: string;
finishDate: string;
private: boolean;
}>;
};
}>;
};
};
2024-03-10 17:36:22 +01:00
export type TrackerSearchQueryVariables = Exact<{
2026-05-17 12:38:49 +02:00
query: string;
trackerId: number;
2024-03-10 17:36:22 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type TrackerSearchQuery = {
__typename: 'Query';
searchTracker: {
__typename: 'SearchTrackerPayload';
trackSearches: Array<{
__typename: 'TrackSearchType';
id: number;
remoteId: string;
title: string;
trackingUrl: string;
coverUrl: string;
publishingType: string;
startDate: string;
publishingStatus: string;
summary: string;
score: number;
totalChapters: number;
}>;
};
};
export type UpdaterMangaFieldsFragment = {
__typename: 'MangaUpdateType';
status: Types.MangaJobStatus;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
};
export type UpdaterCategoryFieldsFragment = {
__typename: 'CategoryUpdateType';
status: Types.CategoryJobStatus;
category: { __typename: 'CategoryType'; id: number; name: string };
};
export type UpdaterJobInfoFieldsFragment = {
__typename: 'UpdaterJobsInfoType';
isRunning: boolean;
totalJobs: number;
finishedJobs: number;
skippedCategoriesCount: number;
skippedMangasCount: number;
};
export type UpdaterStatusFieldsFragment = {
__typename: 'LibraryUpdateStatus';
jobsInfo: {
__typename: 'UpdaterJobsInfoType';
isRunning: boolean;
totalJobs: number;
finishedJobs: number;
skippedCategoriesCount: number;
skippedMangasCount: number;
};
categoryUpdates: Array<{
__typename: 'CategoryUpdateType';
status: Types.CategoryJobStatus;
category: { __typename: 'CategoryType'; id: number; name: string };
}>;
mangaUpdates: Array<{
__typename: 'MangaUpdateType';
status: Types.MangaJobStatus;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
}>;
};
export type UpdaterSubscriptionFieldsFragment = {
__typename: 'UpdaterUpdates';
omittedUpdates: boolean;
jobsInfo: {
__typename: 'UpdaterJobsInfoType';
isRunning: boolean;
totalJobs: number;
finishedJobs: number;
skippedCategoriesCount: number;
skippedMangasCount: number;
};
categoryUpdates: Array<{
__typename: 'CategoryUpdateType';
status: Types.CategoryJobStatus;
category: { __typename: 'CategoryType'; id: number; name: string };
}>;
mangaUpdates: Array<{
__typename: 'MangaUpdateType';
status: Types.MangaJobStatus;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: { __typename: 'ChapterType'; id: number; sourceOrder: number; lastReadAt: string } | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
}>;
};
export type UpdaterStartStopFieldsFragment = { __typename: 'UpdateStatus'; isRunning: boolean };
2025-12-22 14:00:44 +01:00
export type UpdateLibraryMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input?: Types.UpdateLibraryInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type UpdateLibraryMutation = {
__typename: 'Mutation';
updateLibrary: {
__typename: 'UpdateLibraryPayload';
updateStatus: {
__typename: 'LibraryUpdateStatus';
jobsInfo: {
__typename: 'UpdaterJobsInfoType';
isRunning: boolean;
totalJobs: number;
finishedJobs: number;
skippedCategoriesCount: number;
skippedMangasCount: number;
};
categoryUpdates: Array<{
__typename: 'CategoryUpdateType';
status: Types.CategoryJobStatus;
category: { __typename: 'CategoryType'; id: number; name: string };
}>;
mangaUpdates: Array<{
__typename: 'MangaUpdateType';
status: Types.MangaJobStatus;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
}>;
};
} | null;
};
2025-12-22 14:00:44 +01:00
export type StopUpdaterMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
input?: Types.UpdateStopInput | null | undefined;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type StopUpdaterMutation = {
__typename: 'Mutation';
updateStop: { __typename: 'UpdateStopPayload'; clientMutationId: string | null };
};
export type GetUpdateStatusQueryVariables = Exact<{ [key: string]: never }>;
export type GetUpdateStatusQuery = {
__typename: 'Query';
libraryUpdateStatus: {
__typename: 'LibraryUpdateStatus';
jobsInfo: {
__typename: 'UpdaterJobsInfoType';
isRunning: boolean;
totalJobs: number;
finishedJobs: number;
skippedCategoriesCount: number;
skippedMangasCount: number;
};
categoryUpdates: Array<{
__typename: 'CategoryUpdateType';
status: Types.CategoryJobStatus;
category: { __typename: 'CategoryType'; id: number; name: string };
}>;
mangaUpdates: Array<{
__typename: 'MangaUpdateType';
status: Types.MangaJobStatus;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
}>;
};
};
export type GetLastUpdateTimestampQueryVariables = Exact<{ [key: string]: never }>;
export type GetLastUpdateTimestampQuery = {
__typename: 'Query';
lastUpdateTimestamp: { __typename: 'LastUpdateTimestampPayload'; timestamp: string };
};
2025-12-22 14:00:44 +01:00
export type UpdaterSubscriptionVariables = Exact<{
2026-05-17 12:38:49 +02:00
input: Types.LibraryUpdateStatusChangedInput;
}>;
2026-05-17 12:38:49 +02:00
export type UpdaterSubscription = {
__typename: 'Subscription';
libraryUpdateStatusChanged: {
__typename: 'UpdaterUpdates';
omittedUpdates: boolean;
jobsInfo: {
__typename: 'UpdaterJobsInfoType';
isRunning: boolean;
totalJobs: number;
finishedJobs: number;
skippedCategoriesCount: number;
skippedMangasCount: number;
};
categoryUpdates: Array<{
__typename: 'CategoryUpdateType';
status: Types.CategoryJobStatus;
category: { __typename: 'CategoryType'; id: number; name: string };
}>;
mangaUpdates: Array<{
__typename: 'MangaUpdateType';
status: Types.MangaJobStatus;
manga: {
__typename: 'MangaType';
id: number;
title: string;
thumbnailUrl: string | null;
unreadCount: number;
downloadCount: number;
bookmarkCount: number;
hasDuplicateChapters: boolean;
chapters: { __typename: 'ChapterNodeList'; totalCount: number };
firstUnreadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
isRead: boolean;
mangaId: number;
chapterNumber: number;
name: string;
scanlator: string | null;
} | null;
lastReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestReadChapter: {
__typename: 'ChapterType';
id: number;
sourceOrder: number;
lastReadAt: string;
} | null;
latestFetchedChapter: { __typename: 'ChapterType'; id: number; fetchedAt: string } | null;
latestUploadedChapter: { __typename: 'ChapterType'; id: number; uploadDate: string } | null;
highestNumberedChapter: { __typename: 'ChapterType'; id: number; chapterNumber: number } | null;
};
}>;
};
};
2025-12-22 14:00:44 +01:00
export type UserLoginMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
password: string;
username: string;
2025-12-22 14:00:44 +01:00
}>;
2026-05-17 12:38:49 +02:00
export type UserLoginMutation = {
__typename: 'Mutation';
login: { __typename: 'LoginPayload'; accessToken: string; refreshToken: string };
};
2025-12-22 14:00:44 +01:00
export type UserRefreshMutationVariables = Exact<{
2026-05-17 12:38:49 +02:00
refreshToken: string;
}>;
2026-05-17 12:38:49 +02:00
export type UserRefreshMutation = {
__typename: 'Mutation';
refreshToken: { __typename: 'RefreshTokenPayload'; accessToken: string };
};