import { useQuery, useInfiniteQuery, useMutation, UseQueryOptions, UseInfiniteQueryOptions, InfiniteData, UseMutationOptions } from '@tanstack/react-query'; import { fetcher } from './fetcher'; export type Maybe = T | null; export type InputMaybe = Maybe; export type Exact = { [K in keyof T]: T[K] }; export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; export type MakeEmpty = { [_ in K]?: never }; export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: { input: string; output: string; } String: { input: string; output: string; } Boolean: { input: boolean; output: boolean; } Int: { input: number; output: number; } Float: { input: number; output: number; } JSON: { input: any; output: any; } PredicateInput: { input: any; output: any; } }; export type AcquisitionInput = { directconnect?: InputMaybe; source?: InputMaybe; }; export type AcquisitionSourceInput = { name?: InputMaybe; wanted?: InputMaybe; }; export type Archive = { __typename?: 'Archive'; expandedPath?: Maybe; uncompressed?: Maybe; }; export type ArchiveInput = { expandedPath?: InputMaybe; uncompressed?: InputMaybe; }; export type AutoMergeSettings = { __typename?: 'AutoMergeSettings'; enabled: Scalars['Boolean']['output']; onImport: Scalars['Boolean']['output']; onMetadataUpdate: Scalars['Boolean']['output']; }; export type AutoMergeSettingsInput = { enabled?: InputMaybe; onImport?: InputMaybe; onMetadataUpdate?: InputMaybe; }; export type CanonicalMetadata = { __typename?: 'CanonicalMetadata'; ageRating?: Maybe; characters?: Maybe>; communityRating?: Maybe; coverDate?: Maybe; coverImage?: Maybe; creators?: Maybe>; description?: Maybe; format?: Maybe; genres?: Maybe>; issueNumber?: Maybe; locations?: Maybe>; pageCount?: Maybe; publicationDate?: Maybe; publisher?: Maybe; series?: Maybe; storyArcs?: Maybe>; tags?: Maybe>; teams?: Maybe>; title?: Maybe; volume?: Maybe; }; export type CharacterCredit = { __typename?: 'CharacterCredit'; api_detail_url?: Maybe; id?: Maybe; name?: Maybe; site_detail_url?: Maybe; }; export type Comic = { __typename?: 'Comic'; canonicalMetadata?: Maybe; createdAt?: Maybe; id: Scalars['ID']['output']; importStatus?: Maybe; inferredMetadata?: Maybe; rawFileDetails?: Maybe; sourcedMetadata?: Maybe; updatedAt?: Maybe; }; export type ComicBookGroup = { __typename?: 'ComicBookGroup'; id: Scalars['ID']['output']; volumes?: Maybe; }; export type ComicBooksResult = { __typename?: 'ComicBooksResult'; docs: Array; hasNextPage: Scalars['Boolean']['output']; hasPrevPage: Scalars['Boolean']['output']; limit: Scalars['Int']['output']; nextPage?: Maybe; page?: Maybe; pagingCounter: Scalars['Int']['output']; prevPage?: Maybe; totalDocs: Scalars['Int']['output']; totalPages: Scalars['Int']['output']; }; export type ComicConnection = { __typename?: 'ComicConnection'; comics: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type ComicVineResourceResponse = { __typename?: 'ComicVineResourceResponse'; error: Scalars['String']['output']; limit: Scalars['Int']['output']; number_of_page_results: Scalars['Int']['output']; number_of_total_results: Scalars['Int']['output']; offset: Scalars['Int']['output']; results: Array; status_code: Scalars['Int']['output']; }; export type ComicVineSearchResult = { __typename?: 'ComicVineSearchResult'; error: Scalars['String']['output']; limit: Scalars['Int']['output']; number_of_page_results: Scalars['Int']['output']; number_of_total_results: Scalars['Int']['output']; offset: Scalars['Int']['output']; results: Array; status_code: Scalars['Int']['output']; }; export enum ConflictResolutionStrategy { Confidence = 'CONFIDENCE', Hybrid = 'HYBRID', Manual = 'MANUAL', Priority = 'PRIORITY', Recency = 'RECENCY' } export type Cover = { __typename?: 'Cover'; filePath?: Maybe; stats?: Maybe; }; export type CoverInput = { filePath?: InputMaybe; stats?: InputMaybe; }; export type Creator = { __typename?: 'Creator'; name: Scalars['String']['output']; provenance: Provenance; role: Scalars['String']['output']; }; export type DirectConnectBundleInput = { bundleId?: InputMaybe; name?: InputMaybe; size?: InputMaybe; }; export type DirectConnectInput = { downloads?: InputMaybe>; }; export type DirectorySize = { __typename?: 'DirectorySize'; fileCount: Scalars['Int']['output']; totalSize: Scalars['Float']['output']; totalSizeInGB: Scalars['Float']['output']; totalSizeInMB: Scalars['Float']['output']; }; export type FieldOverride = { __typename?: 'FieldOverride'; field: Scalars['String']['output']; priority: Scalars['Int']['output']; }; export type FieldOverrideInput = { field: Scalars['String']['input']; priority: Scalars['Int']['input']; }; export type FieldPreference = { __typename?: 'FieldPreference'; field: Scalars['String']['output']; preferredSource: MetadataSource; }; export type FieldPreferenceInput = { field: Scalars['String']['input']; preferredSource: MetadataSource; }; export type FileTypeStats = { __typename?: 'FileTypeStats'; data: Array; id: Scalars['String']['output']; }; export type ForceCompleteResult = { __typename?: 'ForceCompleteResult'; message: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; export type GetResourceInput = { fieldList?: InputMaybe; filter?: InputMaybe; resources: Scalars['String']['input']; }; export type GetVolumesInput = { fieldList?: InputMaybe; volumeURI: Scalars['String']['input']; }; export type ImageUrls = { __typename?: 'ImageUrls'; icon_url?: Maybe; image_tags?: Maybe; medium_url?: Maybe; original_url?: Maybe; screen_large_url?: Maybe; screen_url?: Maybe; small_url?: Maybe; super_url?: Maybe; thumb_url?: Maybe; tiny_url?: Maybe; }; export type ImportComicInput = { acquisition?: InputMaybe; filePath: Scalars['String']['input']; fileSize?: InputMaybe; inferredMetadata?: InputMaybe; rawFileDetails?: InputMaybe; sourcedMetadata?: InputMaybe; wanted?: InputMaybe; }; export type ImportComicResult = { __typename?: 'ImportComicResult'; canonicalMetadataResolved: Scalars['Boolean']['output']; comic?: Maybe; message?: Maybe; success: Scalars['Boolean']['output']; }; export type ImportJobResult = { __typename?: 'ImportJobResult'; jobsQueued: Scalars['Int']['output']; message: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; export type ImportSession = { __typename?: 'ImportSession'; completedAt?: Maybe; directoryPath?: Maybe; sessionId: Scalars['String']['output']; startedAt: Scalars['String']['output']; stats: ImportSessionStats; status: Scalars['String']['output']; type: Scalars['String']['output']; }; export type ImportSessionStats = { __typename?: 'ImportSessionStats'; filesFailed: Scalars['Int']['output']; filesProcessed: Scalars['Int']['output']; filesQueued: Scalars['Int']['output']; filesSucceeded: Scalars['Int']['output']; totalFiles: Scalars['Int']['output']; }; export type ImportStatistics = { __typename?: 'ImportStatistics'; directory: Scalars['String']['output']; stats: ImportStats; success: Scalars['Boolean']['output']; }; export type ImportStats = { __typename?: 'ImportStats'; alreadyImported: Scalars['Int']['output']; missingFiles: Scalars['Int']['output']; newFiles: Scalars['Int']['output']; percentageImported: Scalars['String']['output']; totalLocalFiles: Scalars['Int']['output']; }; export type ImportStatus = { __typename?: 'ImportStatus'; isImported?: Maybe; matchedResult?: Maybe; tagged?: Maybe; }; export type IncrementalImportResult = { __typename?: 'IncrementalImportResult'; message: Scalars['String']['output']; stats: IncrementalImportStats; success: Scalars['Boolean']['output']; }; export type IncrementalImportStats = { __typename?: 'IncrementalImportStats'; alreadyImported: Scalars['Int']['output']; newFiles: Scalars['Int']['output']; queued: Scalars['Int']['output']; total: Scalars['Int']['output']; }; export type InferredMetadata = { __typename?: 'InferredMetadata'; issue?: Maybe; }; export type InferredMetadataInput = { issue?: InputMaybe; }; export type Issue = { __typename?: 'Issue'; api_detail_url?: Maybe; character_credits?: Maybe>; cover_date?: Maybe; description?: Maybe; id: Scalars['Int']['output']; image?: Maybe; issue_number?: Maybe; location_credits?: Maybe>; name?: Maybe; number?: Maybe; person_credits?: Maybe>; site_detail_url?: Maybe; store_date?: Maybe; story_arc_credits?: Maybe>; subtitle?: Maybe; team_credits?: Maybe>; volume?: Maybe; year?: Maybe; }; export type IssueInput = { name?: InputMaybe; number?: InputMaybe; subtitle?: InputMaybe; year?: InputMaybe; }; export type IssueStats = { __typename?: 'IssueStats'; data: Array; id?: Maybe; }; export type IssuesForSeriesResponse = { __typename?: 'IssuesForSeriesResponse'; error: Scalars['String']['output']; limit: Scalars['Int']['output']; number_of_page_results: Scalars['Int']['output']; number_of_total_results: Scalars['Int']['output']; offset: Scalars['Int']['output']; results: Array; status_code: Scalars['Int']['output']; }; export type JobResultStatistics = { __typename?: 'JobResultStatistics'; completedJobs: Scalars['Int']['output']; earliestTimestamp: Scalars['String']['output']; failedJobs: Scalars['Int']['output']; sessionId: Scalars['String']['output']; }; export type LocgMetadata = { __typename?: 'LOCGMetadata'; cover?: Maybe; description?: Maybe; name?: Maybe; potw?: Maybe; price?: Maybe; publisher?: Maybe; pulls?: Maybe; rating?: Maybe; url?: Maybe; }; export type LocgMetadataInput = { cover?: InputMaybe; description?: InputMaybe; name?: InputMaybe; potw?: InputMaybe; price?: InputMaybe; publisher?: InputMaybe; pulls?: InputMaybe; rating?: InputMaybe; url?: InputMaybe; }; export type LibraryStatistics = { __typename?: 'LibraryStatistics'; comicDirectorySize: DirectorySize; statistics: Array; totalDocuments: Scalars['Int']['output']; }; export type LocationCredit = { __typename?: 'LocationCredit'; api_detail_url?: Maybe; id?: Maybe; name?: Maybe; site_detail_url?: Maybe; }; export type MatchedResult = { __typename?: 'MatchedResult'; score?: Maybe; }; export type MetadataArrayField = { __typename?: 'MetadataArrayField'; provenance: Provenance; userOverride?: Maybe; values: Array; }; export type MetadataConflict = { __typename?: 'MetadataConflict'; candidates: Array; field: Scalars['String']['output']; resolutionReason: Scalars['String']['output']; resolved?: Maybe; }; export type MetadataField = { __typename?: 'MetadataField'; provenance: Provenance; userOverride?: Maybe; value?: Maybe; }; export type MetadataPaginationMeta = { __typename?: 'MetadataPaginationMeta'; currentPage: Scalars['Int']['output']; hasNextPage: Scalars['Boolean']['output']; hasPreviousPage: Scalars['Boolean']['output']; pageSize: Scalars['Int']['output']; totalCount: Scalars['Int']['output']; totalPages: Scalars['Int']['output']; }; export type MetadataPullListItem = { __typename?: 'MetadataPullListItem'; cover?: Maybe; description?: Maybe; name?: Maybe; potw?: Maybe; price?: Maybe; publicationDate?: Maybe; publisher?: Maybe; pulls?: Maybe; rating?: Maybe; url?: Maybe; }; export type MetadataPullListResponse = { __typename?: 'MetadataPullListResponse'; meta: MetadataPaginationMeta; result: Array; }; export enum MetadataSource { ComicinfoXml = 'COMICINFO_XML', Comicvine = 'COMICVINE', GrandComicsDatabase = 'GRAND_COMICS_DATABASE', Locg = 'LOCG', Manual = 'MANUAL', Metron = 'METRON' } export type MetronFetchInput = { method: Scalars['String']['input']; query?: InputMaybe; resource: Scalars['String']['input']; }; export type MetronResponse = { __typename?: 'MetronResponse'; data?: Maybe; status: Scalars['Int']['output']; }; export type Mutation = { __typename?: 'Mutation'; /** Placeholder for future mutations */ _empty?: Maybe; bulkResolveMetadata: Array; forceCompleteSession: ForceCompleteResult; importComic: ImportComicResult; refreshMetadataFromSource: Comic; removeMetadataOverride: Comic; resolveMetadata: Comic; setMetadataField: Comic; startIncrementalImport: IncrementalImportResult; startNewImport: ImportJobResult; updateSourcedMetadata: Comic; updateUserPreferences: UserPreferences; }; export type MutationBulkResolveMetadataArgs = { comicIds: Array; }; export type MutationForceCompleteSessionArgs = { sessionId: Scalars['String']['input']; }; export type MutationImportComicArgs = { input: ImportComicInput; }; export type MutationRefreshMetadataFromSourceArgs = { comicId: Scalars['ID']['input']; source: MetadataSource; }; export type MutationRemoveMetadataOverrideArgs = { comicId: Scalars['ID']['input']; field: Scalars['String']['input']; }; export type MutationResolveMetadataArgs = { comicId: Scalars['ID']['input']; }; export type MutationSetMetadataFieldArgs = { comicId: Scalars['ID']['input']; field: Scalars['String']['input']; value: Scalars['String']['input']; }; export type MutationStartIncrementalImportArgs = { directoryPath?: InputMaybe; sessionId: Scalars['String']['input']; }; export type MutationStartNewImportArgs = { sessionId: Scalars['String']['input']; }; export type MutationUpdateSourcedMetadataArgs = { comicId: Scalars['ID']['input']; metadata: Scalars['String']['input']; source: MetadataSource; }; export type MutationUpdateUserPreferencesArgs = { preferences: UserPreferencesInput; userId?: InputMaybe; }; export type PageInfo = { __typename?: 'PageInfo'; currentPage: Scalars['Int']['output']; hasNextPage: Scalars['Boolean']['output']; hasPreviousPage: Scalars['Boolean']['output']; totalPages: Scalars['Int']['output']; }; export type PaginationOptionsInput = { lean?: InputMaybe; leanWithId?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; pagination?: InputMaybe; sort?: InputMaybe; }; export type PersonCredit = { __typename?: 'PersonCredit'; api_detail_url?: Maybe; id?: Maybe; name?: Maybe; role?: Maybe; site_detail_url?: Maybe; }; export type Provenance = { __typename?: 'Provenance'; confidence: Scalars['Float']['output']; fetchedAt: Scalars['String']['output']; source: MetadataSource; sourceId?: Maybe; url?: Maybe; }; export type Publisher = { __typename?: 'Publisher'; api_detail_url?: Maybe; id?: Maybe; name?: Maybe; }; export type PublisherStats = { __typename?: 'PublisherStats'; count: Scalars['Int']['output']; id: Scalars['String']['output']; }; export type Query = { __typename?: 'Query'; analyzeMetadataConflicts: Array; comic?: Maybe; comics: ComicConnection; /** Fetch resource from Metron API */ fetchMetronResource: MetronResponse; getActiveImportSession?: Maybe; getComicBookGroups: Array; getComicBooks: ComicBooksResult; /** Get generic ComicVine resource (issues, volumes, etc.) */ getComicVineResource: ComicVineResourceResponse; getImportStatistics: ImportStatistics; /** Get all issues for a series by comic object ID */ getIssuesForSeries: IssuesForSeriesResponse; getJobResultStatistics: Array; getLibraryStatistics: LibraryStatistics; /** Get story arcs for a volume */ getStoryArcs: Array; /** Get volume details by URI */ getVolume: VolumeDetailResponse; /** Get weekly pull list from League of Comic Geeks */ getWeeklyPullList: MetadataPullListResponse; previewCanonicalMetadata?: Maybe; /** Search ComicVine for volumes, issues, characters, etc. */ searchComicVine: ComicVineSearchResult; searchIssue: SearchIssueResult; userPreferences?: Maybe; /** Advanced volume-based search with scoring and filtering */ volumeBasedSearch: VolumeBasedSearchResponse; }; export type QueryAnalyzeMetadataConflictsArgs = { comicId: Scalars['ID']['input']; }; export type QueryComicArgs = { id: Scalars['ID']['input']; }; export type QueryComicsArgs = { limit?: InputMaybe; page?: InputMaybe; publisher?: InputMaybe; search?: InputMaybe; series?: InputMaybe; }; export type QueryFetchMetronResourceArgs = { input: MetronFetchInput; }; export type QueryGetComicBooksArgs = { paginationOptions: PaginationOptionsInput; predicate?: InputMaybe; }; export type QueryGetComicVineResourceArgs = { input: GetResourceInput; }; export type QueryGetImportStatisticsArgs = { directoryPath?: InputMaybe; }; export type QueryGetIssuesForSeriesArgs = { comicObjectId: Scalars['ID']['input']; }; export type QueryGetStoryArcsArgs = { volumeId: Scalars['Int']['input']; }; export type QueryGetVolumeArgs = { input: GetVolumesInput; }; export type QueryGetWeeklyPullListArgs = { input: WeeklyPullListInput; }; export type QueryPreviewCanonicalMetadataArgs = { comicId: Scalars['ID']['input']; preferences?: InputMaybe; }; export type QuerySearchComicVineArgs = { input: SearchInput; }; export type QuerySearchIssueArgs = { pagination?: InputMaybe; query?: InputMaybe; type: SearchType; }; export type QueryUserPreferencesArgs = { userId?: InputMaybe; }; export type QueryVolumeBasedSearchArgs = { input: VolumeSearchInput; }; export type RawFileDetails = { __typename?: 'RawFileDetails'; archive?: Maybe; containedIn?: Maybe; cover?: Maybe; extension?: Maybe; filePath?: Maybe; fileSize?: Maybe; mimeType?: Maybe; name?: Maybe; pageCount?: Maybe; }; export type RawFileDetailsInput = { archive?: InputMaybe; containedIn?: InputMaybe; cover?: InputMaybe; extension?: InputMaybe; filePath: Scalars['String']['input']; fileSize?: InputMaybe; mimeType?: InputMaybe; name: Scalars['String']['input']; pageCount?: InputMaybe; }; export type ScorerConfigurationInput = { searchParams?: InputMaybe; }; export type SearchHit = { __typename?: 'SearchHit'; _id: Scalars['String']['output']; _index: Scalars['String']['output']; _score?: Maybe; _source: Comic; }; export type SearchHits = { __typename?: 'SearchHits'; hits: Array; max_score?: Maybe; total: SearchTotal; }; export type SearchInput = { field_list?: InputMaybe; format?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; query: Scalars['String']['input']; resources: Scalars['String']['input']; sort?: InputMaybe; }; export type SearchIssueQueryInput = { issueNumber?: InputMaybe; volumeName?: InputMaybe; }; export type SearchIssueResult = { __typename?: 'SearchIssueResult'; hits: SearchHits; timed_out?: Maybe; took?: Maybe; }; export type SearchPaginationInput = { from?: InputMaybe; size?: InputMaybe; }; export type SearchParamsInput = { name?: InputMaybe; number?: InputMaybe; volume?: InputMaybe; year?: InputMaybe; }; export type SearchResultItem = { __typename?: 'SearchResultItem'; api_detail_url?: Maybe; count_of_issues?: Maybe; cover_date?: Maybe; deck?: Maybe; description?: Maybe; id?: Maybe; image?: Maybe; issue_number?: Maybe; name?: Maybe; publisher?: Maybe; site_detail_url?: Maybe; start_year?: Maybe; volume?: Maybe; }; export type SearchTotal = { __typename?: 'SearchTotal'; relation: Scalars['String']['output']; value: Scalars['Int']['output']; }; export enum SearchType { All = 'all', VolumeName = 'volumeName', Volumes = 'volumes', Wanted = 'wanted' } export type SourcePriority = { __typename?: 'SourcePriority'; enabled: Scalars['Boolean']['output']; fieldOverrides?: Maybe>; priority: Scalars['Int']['output']; source: MetadataSource; }; export type SourcePriorityInput = { enabled: Scalars['Boolean']['input']; fieldOverrides?: InputMaybe>; priority: Scalars['Int']['input']; source: MetadataSource; }; export type SourcedMetadata = { __typename?: 'SourcedMetadata'; comicInfo?: Maybe; comicvine?: Maybe; gcd?: Maybe; locg?: Maybe; metron?: Maybe; }; export type SourcedMetadataInput = { comicInfo?: InputMaybe; comicvine?: InputMaybe; gcd?: InputMaybe; locg?: InputMaybe; metron?: InputMaybe; }; export type StatisticsFacet = { __typename?: 'StatisticsFacet'; fileLessComics?: Maybe>; fileTypes?: Maybe>; issues?: Maybe>; issuesWithComicInfoXML?: Maybe>; publisherWithMostComicsInLibrary?: Maybe>; }; export type StoryArc = { __typename?: 'StoryArc'; deck?: Maybe; description?: Maybe; id: Scalars['Int']['output']; image?: Maybe; issues?: Maybe>; name: Scalars['String']['output']; }; export type StoryArcCredit = { __typename?: 'StoryArcCredit'; api_detail_url?: Maybe; deck?: Maybe; description?: Maybe; id?: Maybe; image?: Maybe; name?: Maybe; site_detail_url?: Maybe; }; export type TeamCredit = { __typename?: 'TeamCredit'; api_detail_url?: Maybe; id?: Maybe; name?: Maybe; site_detail_url?: Maybe; }; export type UserPreferences = { __typename?: 'UserPreferences'; autoMerge: AutoMergeSettings; conflictResolution: ConflictResolutionStrategy; createdAt?: Maybe; fieldPreferences?: Maybe>; id: Scalars['ID']['output']; minConfidenceThreshold: Scalars['Float']['output']; preferRecent: Scalars['Boolean']['output']; sourcePriorities: Array; updatedAt?: Maybe; userId: Scalars['String']['output']; }; export type UserPreferencesInput = { autoMerge?: InputMaybe; conflictResolution?: InputMaybe; fieldPreferences?: InputMaybe>; minConfidenceThreshold?: InputMaybe; preferRecent?: InputMaybe; sourcePriorities?: InputMaybe>; }; export type Volume = { __typename?: 'Volume'; api_detail_url?: Maybe; count_of_issues?: Maybe; deck?: Maybe; description?: Maybe; id: Scalars['Int']['output']; image?: Maybe; name: Scalars['String']['output']; publisher?: Maybe; site_detail_url?: Maybe; start_year?: Maybe; }; export type VolumeBasedSearchResponse = { __typename?: 'VolumeBasedSearchResponse'; results: Array; totalResults: Scalars['Int']['output']; }; export type VolumeDetailResponse = { __typename?: 'VolumeDetailResponse'; error: Scalars['String']['output']; results: Volume; status_code: Scalars['Int']['output']; }; export type VolumeImage = { __typename?: 'VolumeImage'; icon_url?: Maybe; image_tags?: Maybe; medium_url?: Maybe; original_url?: Maybe; screen_large_url?: Maybe; screen_url?: Maybe; small_url?: Maybe; super_url?: Maybe; thumb_url?: Maybe; tiny_url?: Maybe; }; export type VolumeInfo = { __typename?: 'VolumeInfo'; count_of_issues?: Maybe; description?: Maybe; id?: Maybe; image?: Maybe; name?: Maybe; publisher?: Maybe; site_detail_url?: Maybe; start_year?: Maybe; }; export type VolumeSearchInput = { fieldList?: InputMaybe; format?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; query: Scalars['String']['input']; rawFileDetails?: InputMaybe; resources: Scalars['String']['input']; scorerConfiguration?: InputMaybe; }; export type VolumeSearchResult = { __typename?: 'VolumeSearchResult'; matchedIssues?: Maybe>; score?: Maybe; volume: Volume; }; export type WantedInput = { issues?: InputMaybe>; markEntireVolumeWanted?: InputMaybe; source?: InputMaybe; volume?: InputMaybe; }; export type WantedIssueInput = { coverDate?: InputMaybe; id?: InputMaybe; image?: InputMaybe>; issueNumber?: InputMaybe; url?: InputMaybe; }; export type WantedVolumeInput = { id?: InputMaybe; image?: InputMaybe>; name?: InputMaybe; url?: InputMaybe; }; export type WeeklyPullListInput = { currentPage: Scalars['Int']['input']; pageSize: Scalars['Int']['input']; startDate: Scalars['String']['input']; }; export type GetComicByIdQueryVariables = Exact<{ id: Scalars['ID']['input']; }>; export type GetComicByIdQuery = { __typename?: 'Query', comic?: { __typename?: 'Comic', id: string, createdAt?: string | null, updatedAt?: string | null, inferredMetadata?: { __typename?: 'InferredMetadata', issue?: { __typename?: 'Issue', name?: string | null, number?: number | null, year?: string | null, subtitle?: string | null } | null } | null, canonicalMetadata?: { __typename?: 'CanonicalMetadata', title?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, series?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, volume?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, issueNumber?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, publisher?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, publicationDate?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, coverDate?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, description?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, creators?: Array<{ __typename?: 'Creator', name: string, role: string, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } }> | null, pageCount?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null, coverImage?: { __typename?: 'MetadataField', value?: string | null, userOverride?: boolean | null, provenance: { __typename?: 'Provenance', source: MetadataSource, sourceId?: string | null, confidence: number, fetchedAt: string, url?: string | null } } | null } | null, sourcedMetadata?: { __typename?: 'SourcedMetadata', comicInfo?: string | null, comicvine?: string | null, metron?: string | null, gcd?: string | null, locg?: { __typename?: 'LOCGMetadata', name?: string | null, publisher?: string | null, url?: string | null, cover?: string | null, description?: string | null, price?: string | null, rating?: number | null, pulls?: number | null, potw?: number | null } | null } | null, rawFileDetails?: { __typename?: 'RawFileDetails', name?: string | null, filePath?: string | null, fileSize?: number | null, extension?: string | null, mimeType?: string | null, containedIn?: string | null, pageCount?: number | null, archive?: { __typename?: 'Archive', uncompressed?: boolean | null, expandedPath?: string | null } | null, cover?: { __typename?: 'Cover', filePath?: string | null, stats?: string | null } | null } | null, importStatus?: { __typename?: 'ImportStatus', isImported?: boolean | null, tagged?: boolean | null, matchedResult?: { __typename?: 'MatchedResult', score?: string | null } | null } | null } | null }; export type GetComicsQueryVariables = Exact<{ page?: InputMaybe; limit?: InputMaybe; search?: InputMaybe; publisher?: InputMaybe; series?: InputMaybe; }>; export type GetComicsQuery = { __typename?: 'Query', comics: { __typename?: 'ComicConnection', totalCount: number, comics: Array<{ __typename?: 'Comic', id: string, inferredMetadata?: { __typename?: 'InferredMetadata', issue?: { __typename?: 'Issue', name?: string | null, number?: number | null, year?: string | null, subtitle?: string | null } | null } | null, rawFileDetails?: { __typename?: 'RawFileDetails', name?: string | null, extension?: string | null, archive?: { __typename?: 'Archive', uncompressed?: boolean | null } | null } | null, sourcedMetadata?: { __typename?: 'SourcedMetadata', comicvine?: string | null, comicInfo?: string | null, locg?: { __typename?: 'LOCGMetadata', name?: string | null, publisher?: string | null, cover?: string | null } | null } | null, canonicalMetadata?: { __typename?: 'CanonicalMetadata', title?: { __typename?: 'MetadataField', value?: string | null } | null, series?: { __typename?: 'MetadataField', value?: string | null } | null, issueNumber?: { __typename?: 'MetadataField', value?: string | null } | null } | null }>, pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, hasPreviousPage: boolean, currentPage: number, totalPages: number } } }; export type GetRecentComicsQueryVariables = Exact<{ limit?: InputMaybe; }>; export type GetRecentComicsQuery = { __typename?: 'Query', comics: { __typename?: 'ComicConnection', totalCount: number, comics: Array<{ __typename?: 'Comic', id: string, createdAt?: string | null, updatedAt?: string | null, inferredMetadata?: { __typename?: 'InferredMetadata', issue?: { __typename?: 'Issue', name?: string | null, number?: number | null, year?: string | null, subtitle?: string | null } | null } | null, rawFileDetails?: { __typename?: 'RawFileDetails', name?: string | null, extension?: string | null, cover?: { __typename?: 'Cover', filePath?: string | null } | null, archive?: { __typename?: 'Archive', uncompressed?: boolean | null } | null } | null, sourcedMetadata?: { __typename?: 'SourcedMetadata', comicvine?: string | null, comicInfo?: string | null, locg?: { __typename?: 'LOCGMetadata', name?: string | null, publisher?: string | null, cover?: string | null } | null } | null, canonicalMetadata?: { __typename?: 'CanonicalMetadata', title?: { __typename?: 'MetadataField', value?: string | null } | null, series?: { __typename?: 'MetadataField', value?: string | null } | null, issueNumber?: { __typename?: 'MetadataField', value?: string | null } | null, publisher?: { __typename?: 'MetadataField', value?: string | null } | null } | null }> } }; export type GetWantedComicsQueryVariables = Exact<{ paginationOptions: PaginationOptionsInput; predicate?: InputMaybe; }>; export type GetWantedComicsQuery = { __typename?: 'Query', getComicBooks: { __typename?: 'ComicBooksResult', totalDocs: number, limit: number, page?: number | null, totalPages: number, hasNextPage: boolean, hasPrevPage: boolean, docs: Array<{ __typename?: 'Comic', id: string, createdAt?: string | null, updatedAt?: string | null, inferredMetadata?: { __typename?: 'InferredMetadata', issue?: { __typename?: 'Issue', name?: string | null, number?: number | null, year?: string | null, subtitle?: string | null } | null } | null, rawFileDetails?: { __typename?: 'RawFileDetails', name?: string | null, extension?: string | null, cover?: { __typename?: 'Cover', filePath?: string | null } | null, archive?: { __typename?: 'Archive', uncompressed?: boolean | null } | null } | null, sourcedMetadata?: { __typename?: 'SourcedMetadata', comicvine?: string | null, comicInfo?: string | null, locg?: { __typename?: 'LOCGMetadata', name?: string | null, publisher?: string | null, cover?: string | null } | null } | null, canonicalMetadata?: { __typename?: 'CanonicalMetadata', title?: { __typename?: 'MetadataField', value?: string | null } | null, series?: { __typename?: 'MetadataField', value?: string | null } | null, issueNumber?: { __typename?: 'MetadataField', value?: string | null } | null } | null }> } }; export type GetVolumeGroupsQueryVariables = Exact<{ [key: string]: never; }>; export type GetVolumeGroupsQuery = { __typename?: 'Query', getComicBookGroups: Array<{ __typename?: 'ComicBookGroup', id: string, volumes?: { __typename?: 'VolumeInfo', id?: number | null, name?: string | null, count_of_issues?: number | null, start_year?: string | null, publisher?: { __typename?: 'Publisher', id?: number | null, name?: string | null } | null, image?: { __typename?: 'VolumeImage', small_url?: string | null } | null } | null }> }; export type GetLibraryStatisticsQueryVariables = Exact<{ [key: string]: never; }>; export type GetLibraryStatisticsQuery = { __typename?: 'Query', getLibraryStatistics: { __typename?: 'LibraryStatistics', totalDocuments: number, comicDirectorySize: { __typename?: 'DirectorySize', fileCount: number }, statistics: Array<{ __typename?: 'StatisticsFacet', fileTypes?: Array<{ __typename?: 'FileTypeStats', id: string, data: Array }> | null, issues?: Array<{ __typename?: 'IssueStats', data: Array, id?: { __typename?: 'VolumeInfo', id?: number | null, name?: string | null } | null }> | null, fileLessComics?: Array<{ __typename?: 'Comic', id: string }> | null, issuesWithComicInfoXML?: Array<{ __typename?: 'Comic', id: string }> | null, publisherWithMostComicsInLibrary?: Array<{ __typename?: 'PublisherStats', id: string, count: number }> | null }> } }; export type GetWeeklyPullListQueryVariables = Exact<{ input: WeeklyPullListInput; }>; export type GetWeeklyPullListQuery = { __typename?: 'Query', getWeeklyPullList: { __typename?: 'MetadataPullListResponse', result: Array<{ __typename?: 'MetadataPullListItem', name?: string | null, publisher?: string | null, cover?: string | null }> } }; export type GetImportStatisticsQueryVariables = Exact<{ directoryPath?: InputMaybe; }>; export type GetImportStatisticsQuery = { __typename?: 'Query', getImportStatistics: { __typename?: 'ImportStatistics', success: boolean, directory: string, stats: { __typename?: 'ImportStats', totalLocalFiles: number, alreadyImported: number, newFiles: number, missingFiles: number, percentageImported: string } } }; export type StartNewImportMutationVariables = Exact<{ sessionId: Scalars['String']['input']; }>; export type StartNewImportMutation = { __typename?: 'Mutation', startNewImport: { __typename?: 'ImportJobResult', success: boolean, message: string, jobsQueued: number } }; export type StartIncrementalImportMutationVariables = Exact<{ sessionId: Scalars['String']['input']; directoryPath?: InputMaybe; }>; export type StartIncrementalImportMutation = { __typename?: 'Mutation', startIncrementalImport: { __typename?: 'IncrementalImportResult', success: boolean, message: string, stats: { __typename?: 'IncrementalImportStats', total: number, alreadyImported: number, newFiles: number, queued: number } } }; export type GetJobResultStatisticsQueryVariables = Exact<{ [key: string]: never; }>; export type GetJobResultStatisticsQuery = { __typename?: 'Query', getJobResultStatistics: Array<{ __typename?: 'JobResultStatistics', sessionId: string, earliestTimestamp: string, completedJobs: number, failedJobs: number }> }; export type GetActiveImportSessionQueryVariables = Exact<{ [key: string]: never; }>; export type GetActiveImportSessionQuery = { __typename?: 'Query', getActiveImportSession?: { __typename?: 'ImportSession', sessionId: string, type: string, status: string, startedAt: string, completedAt?: string | null, directoryPath?: string | null, stats: { __typename?: 'ImportSessionStats', totalFiles: number, filesQueued: number, filesProcessed: number, filesSucceeded: number, filesFailed: number } } | null }; export type GetLibraryComicsQueryVariables = Exact<{ page?: InputMaybe; limit?: InputMaybe; search?: InputMaybe; series?: InputMaybe; }>; export type GetLibraryComicsQuery = { __typename?: 'Query', comics: { __typename?: 'ComicConnection', totalCount: number, comics: Array<{ __typename?: 'Comic', id: string, createdAt?: string | null, updatedAt?: string | null, inferredMetadata?: { __typename?: 'InferredMetadata', issue?: { __typename?: 'Issue', name?: string | null, number?: number | null, year?: string | null, subtitle?: string | null } | null } | null, rawFileDetails?: { __typename?: 'RawFileDetails', name?: string | null, filePath?: string | null, fileSize?: number | null, extension?: string | null, mimeType?: string | null, pageCount?: number | null, archive?: { __typename?: 'Archive', uncompressed?: boolean | null } | null, cover?: { __typename?: 'Cover', filePath?: string | null } | null } | null, sourcedMetadata?: { __typename?: 'SourcedMetadata', comicvine?: string | null, comicInfo?: string | null, locg?: { __typename?: 'LOCGMetadata', name?: string | null, publisher?: string | null, cover?: string | null } | null } | null, canonicalMetadata?: { __typename?: 'CanonicalMetadata', title?: { __typename?: 'MetadataField', value?: string | null } | null, series?: { __typename?: 'MetadataField', value?: string | null } | null, issueNumber?: { __typename?: 'MetadataField', value?: string | null } | null, publisher?: { __typename?: 'MetadataField', value?: string | null } | null, pageCount?: { __typename?: 'MetadataField', value?: string | null } | null } | null, importStatus?: { __typename?: 'ImportStatus', isImported?: boolean | null, tagged?: boolean | null } | null }>, pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, hasPreviousPage: boolean, currentPage: number, totalPages: number } } }; export const GetComicByIdDocument = ` query GetComicById($id: ID!) { comic(id: $id) { id inferredMetadata { issue { name number year subtitle } } canonicalMetadata { title { value provenance { source sourceId confidence fetchedAt url } userOverride } series { value provenance { source sourceId confidence fetchedAt url } userOverride } volume { value provenance { source sourceId confidence fetchedAt url } userOverride } issueNumber { value provenance { source sourceId confidence fetchedAt url } userOverride } publisher { value provenance { source sourceId confidence fetchedAt url } userOverride } publicationDate { value provenance { source sourceId confidence fetchedAt url } userOverride } coverDate { value provenance { source sourceId confidence fetchedAt url } userOverride } description { value provenance { source sourceId confidence fetchedAt url } userOverride } creators { name role provenance { source sourceId confidence fetchedAt url } } pageCount { value provenance { source sourceId confidence fetchedAt url } userOverride } coverImage { value provenance { source sourceId confidence fetchedAt url } userOverride } } sourcedMetadata { comicInfo comicvine metron gcd locg { name publisher url cover description price rating pulls potw } } rawFileDetails { name filePath fileSize extension mimeType containedIn pageCount archive { uncompressed expandedPath } cover { filePath stats } } importStatus { isImported tagged matchedResult { score } } createdAt updatedAt } } `; export const useGetComicByIdQuery = < TData = GetComicByIdQuery, TError = unknown >( variables: GetComicByIdQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: ['GetComicById', variables], queryFn: fetcher(GetComicByIdDocument, variables), ...options } )}; useGetComicByIdQuery.getKey = (variables: GetComicByIdQueryVariables) => ['GetComicById', variables]; export const useInfiniteGetComicByIdQuery = < TData = InfiniteData, TError = unknown >( variables: GetComicByIdQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? ['GetComicById.infinite', variables], queryFn: (metaData) => fetcher(GetComicByIdDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetComicByIdQuery.getKey = (variables: GetComicByIdQueryVariables) => ['GetComicById.infinite', variables]; useGetComicByIdQuery.fetcher = (variables: GetComicByIdQueryVariables, options?: RequestInit['headers']) => fetcher(GetComicByIdDocument, variables, options); export const GetComicsDocument = ` query GetComics($page: Int, $limit: Int, $search: String, $publisher: String, $series: String) { comics( page: $page limit: $limit search: $search publisher: $publisher series: $series ) { comics { id inferredMetadata { issue { name number year subtitle } } rawFileDetails { name extension archive { uncompressed } } sourcedMetadata { comicvine comicInfo locg { name publisher cover } } canonicalMetadata { title { value } series { value } issueNumber { value } } } totalCount pageInfo { hasNextPage hasPreviousPage currentPage totalPages } } } `; export const useGetComicsQuery = < TData = GetComicsQuery, TError = unknown >( variables?: GetComicsQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: variables === undefined ? ['GetComics'] : ['GetComics', variables], queryFn: fetcher(GetComicsDocument, variables), ...options } )}; useGetComicsQuery.getKey = (variables?: GetComicsQueryVariables) => variables === undefined ? ['GetComics'] : ['GetComics', variables]; export const useInfiniteGetComicsQuery = < TData = InfiniteData, TError = unknown >( variables: GetComicsQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? variables === undefined ? ['GetComics.infinite'] : ['GetComics.infinite', variables], queryFn: (metaData) => fetcher(GetComicsDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetComicsQuery.getKey = (variables?: GetComicsQueryVariables) => variables === undefined ? ['GetComics.infinite'] : ['GetComics.infinite', variables]; useGetComicsQuery.fetcher = (variables?: GetComicsQueryVariables, options?: RequestInit['headers']) => fetcher(GetComicsDocument, variables, options); export const GetRecentComicsDocument = ` query GetRecentComics($limit: Int) { comics(page: 1, limit: $limit) { comics { id inferredMetadata { issue { name number year subtitle } } rawFileDetails { name extension cover { filePath } archive { uncompressed } } sourcedMetadata { comicvine comicInfo locg { name publisher cover } } canonicalMetadata { title { value } series { value } issueNumber { value } publisher { value } } createdAt updatedAt } totalCount } } `; export const useGetRecentComicsQuery = < TData = GetRecentComicsQuery, TError = unknown >( variables?: GetRecentComicsQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: variables === undefined ? ['GetRecentComics'] : ['GetRecentComics', variables], queryFn: fetcher(GetRecentComicsDocument, variables), ...options } )}; useGetRecentComicsQuery.getKey = (variables?: GetRecentComicsQueryVariables) => variables === undefined ? ['GetRecentComics'] : ['GetRecentComics', variables]; export const useInfiniteGetRecentComicsQuery = < TData = InfiniteData, TError = unknown >( variables: GetRecentComicsQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? variables === undefined ? ['GetRecentComics.infinite'] : ['GetRecentComics.infinite', variables], queryFn: (metaData) => fetcher(GetRecentComicsDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetRecentComicsQuery.getKey = (variables?: GetRecentComicsQueryVariables) => variables === undefined ? ['GetRecentComics.infinite'] : ['GetRecentComics.infinite', variables]; useGetRecentComicsQuery.fetcher = (variables?: GetRecentComicsQueryVariables, options?: RequestInit['headers']) => fetcher(GetRecentComicsDocument, variables, options); export const GetWantedComicsDocument = ` query GetWantedComics($paginationOptions: PaginationOptionsInput!, $predicate: PredicateInput) { getComicBooks(paginationOptions: $paginationOptions, predicate: $predicate) { docs { id inferredMetadata { issue { name number year subtitle } } rawFileDetails { name extension cover { filePath } archive { uncompressed } } sourcedMetadata { comicvine comicInfo locg { name publisher cover } } canonicalMetadata { title { value } series { value } issueNumber { value } } createdAt updatedAt } totalDocs limit page totalPages hasNextPage hasPrevPage } } `; export const useGetWantedComicsQuery = < TData = GetWantedComicsQuery, TError = unknown >( variables: GetWantedComicsQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: ['GetWantedComics', variables], queryFn: fetcher(GetWantedComicsDocument, variables), ...options } )}; useGetWantedComicsQuery.getKey = (variables: GetWantedComicsQueryVariables) => ['GetWantedComics', variables]; export const useInfiniteGetWantedComicsQuery = < TData = InfiniteData, TError = unknown >( variables: GetWantedComicsQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? ['GetWantedComics.infinite', variables], queryFn: (metaData) => fetcher(GetWantedComicsDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetWantedComicsQuery.getKey = (variables: GetWantedComicsQueryVariables) => ['GetWantedComics.infinite', variables]; useGetWantedComicsQuery.fetcher = (variables: GetWantedComicsQueryVariables, options?: RequestInit['headers']) => fetcher(GetWantedComicsDocument, variables, options); export const GetVolumeGroupsDocument = ` query GetVolumeGroups { getComicBookGroups { id volumes { id name count_of_issues publisher { id name } start_year image { small_url } } } } `; export const useGetVolumeGroupsQuery = < TData = GetVolumeGroupsQuery, TError = unknown >( variables?: GetVolumeGroupsQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: variables === undefined ? ['GetVolumeGroups'] : ['GetVolumeGroups', variables], queryFn: fetcher(GetVolumeGroupsDocument, variables), ...options } )}; useGetVolumeGroupsQuery.getKey = (variables?: GetVolumeGroupsQueryVariables) => variables === undefined ? ['GetVolumeGroups'] : ['GetVolumeGroups', variables]; export const useInfiniteGetVolumeGroupsQuery = < TData = InfiniteData, TError = unknown >( variables: GetVolumeGroupsQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? variables === undefined ? ['GetVolumeGroups.infinite'] : ['GetVolumeGroups.infinite', variables], queryFn: (metaData) => fetcher(GetVolumeGroupsDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetVolumeGroupsQuery.getKey = (variables?: GetVolumeGroupsQueryVariables) => variables === undefined ? ['GetVolumeGroups.infinite'] : ['GetVolumeGroups.infinite', variables]; useGetVolumeGroupsQuery.fetcher = (variables?: GetVolumeGroupsQueryVariables, options?: RequestInit['headers']) => fetcher(GetVolumeGroupsDocument, variables, options); export const GetLibraryStatisticsDocument = ` query GetLibraryStatistics { getLibraryStatistics { totalDocuments comicDirectorySize { fileCount } statistics { fileTypes { id data } issues { id { id name } data } fileLessComics { id } issuesWithComicInfoXML { id } publisherWithMostComicsInLibrary { id count } } } } `; export const useGetLibraryStatisticsQuery = < TData = GetLibraryStatisticsQuery, TError = unknown >( variables?: GetLibraryStatisticsQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: variables === undefined ? ['GetLibraryStatistics'] : ['GetLibraryStatistics', variables], queryFn: fetcher(GetLibraryStatisticsDocument, variables), ...options } )}; useGetLibraryStatisticsQuery.getKey = (variables?: GetLibraryStatisticsQueryVariables) => variables === undefined ? ['GetLibraryStatistics'] : ['GetLibraryStatistics', variables]; export const useInfiniteGetLibraryStatisticsQuery = < TData = InfiniteData, TError = unknown >( variables: GetLibraryStatisticsQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? variables === undefined ? ['GetLibraryStatistics.infinite'] : ['GetLibraryStatistics.infinite', variables], queryFn: (metaData) => fetcher(GetLibraryStatisticsDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetLibraryStatisticsQuery.getKey = (variables?: GetLibraryStatisticsQueryVariables) => variables === undefined ? ['GetLibraryStatistics.infinite'] : ['GetLibraryStatistics.infinite', variables]; useGetLibraryStatisticsQuery.fetcher = (variables?: GetLibraryStatisticsQueryVariables, options?: RequestInit['headers']) => fetcher(GetLibraryStatisticsDocument, variables, options); export const GetWeeklyPullListDocument = ` query GetWeeklyPullList($input: WeeklyPullListInput!) { getWeeklyPullList(input: $input) { result { name publisher cover } } } `; export const useGetWeeklyPullListQuery = < TData = GetWeeklyPullListQuery, TError = unknown >( variables: GetWeeklyPullListQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: ['GetWeeklyPullList', variables], queryFn: fetcher(GetWeeklyPullListDocument, variables), ...options } )}; useGetWeeklyPullListQuery.getKey = (variables: GetWeeklyPullListQueryVariables) => ['GetWeeklyPullList', variables]; export const useInfiniteGetWeeklyPullListQuery = < TData = InfiniteData, TError = unknown >( variables: GetWeeklyPullListQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? ['GetWeeklyPullList.infinite', variables], queryFn: (metaData) => fetcher(GetWeeklyPullListDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetWeeklyPullListQuery.getKey = (variables: GetWeeklyPullListQueryVariables) => ['GetWeeklyPullList.infinite', variables]; useGetWeeklyPullListQuery.fetcher = (variables: GetWeeklyPullListQueryVariables, options?: RequestInit['headers']) => fetcher(GetWeeklyPullListDocument, variables, options); export const GetImportStatisticsDocument = ` query GetImportStatistics($directoryPath: String) { getImportStatistics(directoryPath: $directoryPath) { success directory stats { totalLocalFiles alreadyImported newFiles missingFiles percentageImported } } } `; export const useGetImportStatisticsQuery = < TData = GetImportStatisticsQuery, TError = unknown >( variables?: GetImportStatisticsQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: variables === undefined ? ['GetImportStatistics'] : ['GetImportStatistics', variables], queryFn: fetcher(GetImportStatisticsDocument, variables), ...options } )}; useGetImportStatisticsQuery.getKey = (variables?: GetImportStatisticsQueryVariables) => variables === undefined ? ['GetImportStatistics'] : ['GetImportStatistics', variables]; export const useInfiniteGetImportStatisticsQuery = < TData = InfiniteData, TError = unknown >( variables: GetImportStatisticsQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? variables === undefined ? ['GetImportStatistics.infinite'] : ['GetImportStatistics.infinite', variables], queryFn: (metaData) => fetcher(GetImportStatisticsDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetImportStatisticsQuery.getKey = (variables?: GetImportStatisticsQueryVariables) => variables === undefined ? ['GetImportStatistics.infinite'] : ['GetImportStatistics.infinite', variables]; useGetImportStatisticsQuery.fetcher = (variables?: GetImportStatisticsQueryVariables, options?: RequestInit['headers']) => fetcher(GetImportStatisticsDocument, variables, options); export const StartNewImportDocument = ` mutation StartNewImport($sessionId: String!) { startNewImport(sessionId: $sessionId) { success message jobsQueued } } `; export const useStartNewImportMutation = < TError = unknown, TContext = unknown >(options?: UseMutationOptions) => { return useMutation( { mutationKey: ['StartNewImport'], mutationFn: (variables?: StartNewImportMutationVariables) => fetcher(StartNewImportDocument, variables)(), ...options } )}; useStartNewImportMutation.fetcher = (variables: StartNewImportMutationVariables, options?: RequestInit['headers']) => fetcher(StartNewImportDocument, variables, options); export const StartIncrementalImportDocument = ` mutation StartIncrementalImport($sessionId: String!, $directoryPath: String) { startIncrementalImport(sessionId: $sessionId, directoryPath: $directoryPath) { success message stats { total alreadyImported newFiles queued } } } `; export const useStartIncrementalImportMutation = < TError = unknown, TContext = unknown >(options?: UseMutationOptions) => { return useMutation( { mutationKey: ['StartIncrementalImport'], mutationFn: (variables?: StartIncrementalImportMutationVariables) => fetcher(StartIncrementalImportDocument, variables)(), ...options } )}; useStartIncrementalImportMutation.fetcher = (variables: StartIncrementalImportMutationVariables, options?: RequestInit['headers']) => fetcher(StartIncrementalImportDocument, variables, options); export const GetJobResultStatisticsDocument = ` query GetJobResultStatistics { getJobResultStatistics { sessionId earliestTimestamp completedJobs failedJobs } } `; export const useGetJobResultStatisticsQuery = < TData = GetJobResultStatisticsQuery, TError = unknown >( variables?: GetJobResultStatisticsQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: variables === undefined ? ['GetJobResultStatistics'] : ['GetJobResultStatistics', variables], queryFn: fetcher(GetJobResultStatisticsDocument, variables), ...options } )}; useGetJobResultStatisticsQuery.getKey = (variables?: GetJobResultStatisticsQueryVariables) => variables === undefined ? ['GetJobResultStatistics'] : ['GetJobResultStatistics', variables]; export const useInfiniteGetJobResultStatisticsQuery = < TData = InfiniteData, TError = unknown >( variables: GetJobResultStatisticsQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? variables === undefined ? ['GetJobResultStatistics.infinite'] : ['GetJobResultStatistics.infinite', variables], queryFn: (metaData) => fetcher(GetJobResultStatisticsDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetJobResultStatisticsQuery.getKey = (variables?: GetJobResultStatisticsQueryVariables) => variables === undefined ? ['GetJobResultStatistics.infinite'] : ['GetJobResultStatistics.infinite', variables]; useGetJobResultStatisticsQuery.fetcher = (variables?: GetJobResultStatisticsQueryVariables, options?: RequestInit['headers']) => fetcher(GetJobResultStatisticsDocument, variables, options); export const GetActiveImportSessionDocument = ` query GetActiveImportSession { getActiveImportSession { sessionId type status startedAt completedAt directoryPath stats { totalFiles filesQueued filesProcessed filesSucceeded filesFailed } } } `; export const useGetActiveImportSessionQuery = < TData = GetActiveImportSessionQuery, TError = unknown >( variables?: GetActiveImportSessionQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: variables === undefined ? ['GetActiveImportSession'] : ['GetActiveImportSession', variables], queryFn: fetcher(GetActiveImportSessionDocument, variables), ...options } )}; useGetActiveImportSessionQuery.getKey = (variables?: GetActiveImportSessionQueryVariables) => variables === undefined ? ['GetActiveImportSession'] : ['GetActiveImportSession', variables]; export const useInfiniteGetActiveImportSessionQuery = < TData = InfiniteData, TError = unknown >( variables: GetActiveImportSessionQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? variables === undefined ? ['GetActiveImportSession.infinite'] : ['GetActiveImportSession.infinite', variables], queryFn: (metaData) => fetcher(GetActiveImportSessionDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetActiveImportSessionQuery.getKey = (variables?: GetActiveImportSessionQueryVariables) => variables === undefined ? ['GetActiveImportSession.infinite'] : ['GetActiveImportSession.infinite', variables]; useGetActiveImportSessionQuery.fetcher = (variables?: GetActiveImportSessionQueryVariables, options?: RequestInit['headers']) => fetcher(GetActiveImportSessionDocument, variables, options); export const GetLibraryComicsDocument = ` query GetLibraryComics($page: Int, $limit: Int, $search: String, $series: String) { comics(page: $page, limit: $limit, search: $search, series: $series) { comics { id inferredMetadata { issue { name number year subtitle } } rawFileDetails { name filePath fileSize extension mimeType pageCount archive { uncompressed } cover { filePath } } sourcedMetadata { comicvine comicInfo locg { name publisher cover } } canonicalMetadata { title { value } series { value } issueNumber { value } publisher { value } pageCount { value } } importStatus { isImported tagged } createdAt updatedAt } totalCount pageInfo { hasNextPage hasPreviousPage currentPage totalPages } } } `; export const useGetLibraryComicsQuery = < TData = GetLibraryComicsQuery, TError = unknown >( variables?: GetLibraryComicsQueryVariables, options?: Omit, 'queryKey'> & { queryKey?: UseQueryOptions['queryKey'] } ) => { return useQuery( { queryKey: variables === undefined ? ['GetLibraryComics'] : ['GetLibraryComics', variables], queryFn: fetcher(GetLibraryComicsDocument, variables), ...options } )}; useGetLibraryComicsQuery.getKey = (variables?: GetLibraryComicsQueryVariables) => variables === undefined ? ['GetLibraryComics'] : ['GetLibraryComics', variables]; export const useInfiniteGetLibraryComicsQuery = < TData = InfiniteData, TError = unknown >( variables: GetLibraryComicsQueryVariables, options: Omit, 'queryKey'> & { queryKey?: UseInfiniteQueryOptions['queryKey'] } ) => { return useInfiniteQuery( (() => { const { queryKey: optionsQueryKey, ...restOptions } = options; return { queryKey: optionsQueryKey ?? variables === undefined ? ['GetLibraryComics.infinite'] : ['GetLibraryComics.infinite', variables], queryFn: (metaData) => fetcher(GetLibraryComicsDocument, {...variables, ...(metaData.pageParam ?? {})})(), ...restOptions } })() )}; useInfiniteGetLibraryComicsQuery.getKey = (variables?: GetLibraryComicsQueryVariables) => variables === undefined ? ['GetLibraryComics.infinite'] : ['GetLibraryComics.infinite', variables]; useGetLibraryComicsQuery.fetcher = (variables?: GetLibraryComicsQueryVariables, options?: RequestInit['headers']) => fetcher(GetLibraryComicsDocument, variables, options);