diff --git a/gql_codegen.ts b/gql_codegen.ts index d2b62c52..827348c5 100644 --- a/gql_codegen.ts +++ b/gql_codegen.ts @@ -15,19 +15,29 @@ const config: CodegenConfig = { schema: process.env.CODEGEN_SERVER_URL_GQL, documents: ['src/lib/graphql/**', '!src/lib/graphql/generated/**'], ignoreNoDocuments: true, + config: { + namingConvention: { + typeNames: 'change-case-all#pascalCase', + transformUnderscore: true, + }, + scalars: { + LongString: 'string', + Cursor: 'string', + Duration: 'string', + }, + }, generates: { - 'src/lib/graphql/generated/graphql.ts': { - plugins: ['typescript', 'typescript-operations'], + 'src/lib/graphql/generated/graphql-base.types.ts': { + plugins: ['typescript'], config: { - namingConvention: { - typeNames: 'change-case-all#pascalCase', - transformUnderscore: true, - }, - scalars: { - LongString: 'string', - Cursor: 'string', - Duration: 'string', - }, + generateOperationTypes: false, + }, + }, + 'src/lib/graphql/generated/graphql.ts': { + plugins: ['typescript-operations'], + config: { + importSchemaTypesFrom: 'src/lib/graphql/generated/graphql-base.types.ts', + nonOptionalTypename: true, }, }, 'src/lib/graphql/generated/apollo-helpers.ts': { diff --git a/package.json b/package.json index 0262ba05..38ed4063 100644 --- a/package.json +++ b/package.json @@ -87,10 +87,10 @@ "zustand": "5.0.13" }, "devDependencies": { - "@graphql-codegen/cli": "6.3.1", - "@graphql-codegen/client-preset": "5.3.0", + "@graphql-codegen/cli": "7.0.0", + "@graphql-codegen/client-preset": "6.0.0", "@graphql-codegen/typescript-apollo-client-helpers": "4.0.1", - "@graphql-codegen/typescript-operations": "5.1.0", + "@graphql-codegen/typescript-operations": "6.0.2", "@lingui/cli": "6.0.1", "@lingui/format-po": "6.0.1", "@lingui/swc-plugin": "6.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 596df984..435d3dd6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,17 +166,17 @@ importers: version: 5.0.13(@types/react@19.2.14)(immer@11.1.8)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) devDependencies: '@graphql-codegen/cli': - specifier: 6.3.1 - version: 6.3.1(@types/node@24.10.1)(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0)(typescript@6.0.3) + specifier: 7.0.0 + version: 7.0.0(@types/node@24.10.1)(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0)(typescript@6.0.3) '@graphql-codegen/client-preset': - specifier: 5.3.0 - version: 5.3.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0) + specifier: 6.0.0 + version: 6.0.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0) '@graphql-codegen/typescript-apollo-client-helpers': specifier: 4.0.1 version: 4.0.1(graphql@16.14.0) '@graphql-codegen/typescript-operations': - specifier: 5.1.0 - version: 5.1.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0) + specifier: 6.0.2 + version: 6.0.2(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0) '@lingui/cli': specifier: 6.0.1 version: 6.0.1(babel-plugin-macros@3.1.0) @@ -1273,14 +1273,14 @@ packages: '@fastify/busboy@3.2.0': resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} - '@graphql-codegen/add@6.0.1': - resolution: {integrity: sha512-MSylSekjpVWbOBw2A/2ssk1fPY54sYb6Qk2C4AX5u7s2R+2pMQ9ws7DTXo8VU9qwTgWwVp6vGfdQ0AMpAn4Iug==} + '@graphql-codegen/add@7.0.0': + resolution: {integrity: sha512-fQGlUQd0BpoevCTOKi3b7M+kuXCI13udXmJrIh1QMtTCLXUTYGgsubNVcPLr0cVjVwyBK/ZRgwtxdCmkVXqTwQ==} engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/cli@6.3.1': - resolution: {integrity: sha512-I5KkyX1SgQZPojMeQTRydB6fml4cysZq/mIdhNW4rmqdoOcTgdMPq1Tl+wtRp1VpBAOrBazJUJh1nAqJMMSPIQ==} + '@graphql-codegen/cli@7.0.0': + resolution: {integrity: sha512-SNgTiFU/jB3VJLr8koJjmXAwl60wG/9r5iQBiOmlf0m9KRaiCNmfDG6+VbeejJPkDIGJKQd0SwqV5i+fxdnjqA==} engines: {node: '>=16'} hasBin: true peerDependencies: @@ -1290,8 +1290,8 @@ packages: '@parcel/watcher': optional: true - '@graphql-codegen/client-preset@5.3.0': - resolution: {integrity: sha512-K9FON+j7qyxAUDuSGqI3ofb7lWTBs16oPTYpu14lhdL4DKZQSHLyc8EMYU9e3KcyQ/13gU/d6culOppzAuexLA==} + '@graphql-codegen/client-preset@6.0.0': + resolution: {integrity: sha512-nqidNH4rrulv0E2ZVkYcIWz5Jon+hLBKkx/Xp8KyRJ8WnNRD0kJO1ra8ECLU/JS8LuZehSJyCfoQh555TT5TEw==} engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1300,14 +1300,14 @@ packages: graphql-sock: optional: true - '@graphql-codegen/core@5.0.2': - resolution: {integrity: sha512-7RX0wwjoWPlLG/tUmpaTK91ZZqHcACNWpRL0nGnnJaJrORie9pgmX8JPrcwBgYiHSC+3ERo9xY91RFPem/VrpQ==} + '@graphql-codegen/core@6.0.0': + resolution: {integrity: sha512-/UDolbUC6q6MTHNvEUDq+vC3ugycxAQ71S62WB3RDXzbBVIG5MG5Kw89WFOh+dt/s+mRuX+tx+Vz/si81sZ0aw==} engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/gql-tag-operations@5.2.0': - resolution: {integrity: sha512-B9gtJ4ziqpIv+7mHqwjtpYLFOuv0GmmRGpNDoWKM2VIx4OQqgI84d6OHKYCVeO7yu3mUr0QPvUgkSyuLVrdukA==} + '@graphql-codegen/gql-tag-operations@6.0.0': + resolution: {integrity: sha512-IBwQ/jYx5Z4yMV78oVGU3hhNu/I7xFiQpFXavZujwCvoyH611M/JAoZ/RTExjr9stzcKMmNxJV/1Pknv+5M9Fg==} engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1318,14 +1318,20 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/schema-ast@5.0.2': - resolution: {integrity: sha512-jl1F/9IjRkJisEb9B0ayG4QGqYlPldLRy8ojDdmL9NE1NsdB5ROfxQnSqyC3g+wuvBhWX7kZgMRQYn3RU1I5bA==} + '@graphql-codegen/plugin-helpers@7.0.1': + resolution: {integrity: sha512-S2X0YT3XQbP2haqhIeku8GOXo2j8QuBu7BrLsOEHz4UeMu78y3rja1Q4ri3oJ0jq4dMgaQlazoVHI/A+FAKMGw==} engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/typed-document-node@6.1.8': - resolution: {integrity: sha512-+qDdiJSQ7Ol+vpLMAH8ZJok50CvlYxA6seQ7cwEa3emXt8MmH5hh3zdc9unQlPc7bynoJHRCgoKk7E0B7hry0w==} + '@graphql-codegen/schema-ast@6.0.0': + resolution: {integrity: sha512-ww6lfCZYBZk8SbnOKp76FLvBrMD6oqFhAGj8Ov8f+bsrNh0SG1M6mxLWh4nl9hWIu/iwsZgrJcuIrTfyBeF6jQ==} + engines: {node: '>=16'} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typed-document-node@7.0.0': + resolution: {integrity: sha512-gSsMEKe1QV5QmF+TsijSyhLYGYRYGD2fe7rGIJwca4s1gZK+aD3qjNFq3C0yFUsb92bsCxiOJTWeiPPfdPSMTg==} engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1336,8 +1342,8 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/typescript-operations@5.1.0': - resolution: {integrity: sha512-JlmjbFl0EnsfMDIYvTE1Q0kAOrntVEZ+ZfBqWTP91g4e0F/TzuwJ/V4tiFmeDf5dx/rf9AK4VkPehIdxu7TYhw==} + '@graphql-codegen/typescript-operations@6.0.2': + resolution: {integrity: sha512-QYs8eQIOXsGKiWBlx4ZtIwYALa5RlLwznJELcnKayGubuEbglOsapJBswERXoogf3SMDrU21L58c1CYkYlyKIA==} engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1346,8 +1352,8 @@ packages: graphql-sock: optional: true - '@graphql-codegen/typescript@5.0.10': - resolution: {integrity: sha512-Pa8OFmL9TdhEYnLYJLYA9EhP8eEeivP/YDYq4Nb8LQaL7GXm4TGX8zELYaCM9Fu8M3iZb7iQGMt7qc+1lXz8XQ==} + '@graphql-codegen/typescript@6.0.1': + resolution: {integrity: sha512-UmHKlOBqnmGs0ioZsfi7INIb6+YCXVMi3KSp/INO359fT3RJxWPLPiE7T30UaWXtLeO6fBNZcvhy3EGBI9UCvw==} engines: {node: '>=16'} peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1358,6 +1364,12 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + '@graphql-codegen/visitor-plugin-common@7.0.2': + resolution: {integrity: sha512-3v1dPjkSiAIsqwZ/6btSZ6BCYlYYpr3FdLhsBZ/JoPP2hYgN6AlGKdUyhYm5FsgDKU04L7al3+rfnTOCxqM0gw==} + engines: {node: '>=16'} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + '@graphql-hive/signal@2.0.0': resolution: {integrity: sha512-Pz8wB3K0iU6ae9S1fWfsmJX24CcGeTo6hE7T44ucmV/ALKRj+bxClmqrYcDT7v3f0d12Rh4FAXBb6gon+WkDpQ==} engines: {node: '>=20.0.0'} @@ -1531,134 +1543,134 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@inquirer/ansi@1.0.2': - resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} - engines: {node: '>=18'} + '@inquirer/ansi@2.0.5': + resolution: {integrity: sha512-doc2sWgJpbFQ64UflSVd17ibMGDuxO1yKgOgLMwavzESnXjFWJqUeG8saYosqKpHp4kWiM5x1nXvEjbpx90gzw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} - '@inquirer/checkbox@4.3.2': - resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} - engines: {node: '>=18'} + '@inquirer/checkbox@5.1.5': + resolution: {integrity: sha512-Jmf9tgBHIEK5SAOB7swYfStqmtkZb00xOTpSQmkoGEpdxOTpJi9RS0A8bkfDPHTTItZRJrRdZrEMu25wyj0VfQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/confirm@5.1.21': - resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} - engines: {node: '>=18'} + '@inquirer/confirm@6.0.13': + resolution: {integrity: sha512-wkGPC7yJ5WJk1DJ5SX7fzk+gfj4BM8cf5dDDi71B/551xHrdsZVRJOC0WyikXd0pEsb/9cLniuE4atbsMqmFkw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/core@10.3.2': - resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} - engines: {node: '>=18'} + '@inquirer/core@11.1.10': + resolution: {integrity: sha512-a4Q5BXHQAHa9eO202sTaFCHFYVB3x5fauDuThEAdZ9gfn76pSxiKU7wWcEH0N1O0XmQvNfQNU6QXpiRxmYQx+A==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/editor@4.2.23': - resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} - engines: {node: '>=18'} + '@inquirer/editor@5.1.2': + resolution: {integrity: sha512-Y3Nor7S/DhIPo+8Ym/dSY4efwKI4BsflKDwXh0jNeXJsSF3dteS/3Yf+z4wkibVZDvYMyCgknSTQlNahfunGHg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/expand@4.0.23': - resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} - engines: {node: '>=18'} + '@inquirer/expand@5.0.14': + resolution: {integrity: sha512-qyY9zcIX2eKYwaAUiQo9zORd61Lc3sXeM72fVbeHkYnDkqfr8/armcRbmVAIrExeJhI2puk+uomeKtWrpUVUmQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/external-editor@1.0.3': - resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} - engines: {node: '>=18'} + '@inquirer/external-editor@3.0.0': + resolution: {integrity: sha512-lDSwMgg+M5rq6JKBYaJwSX6T9e/HK2qqZ1oxmOwn4AQoJE5D+7TumsxLGC02PWS//rkIVqbZv3XA3ejsc9FYvg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/figures@1.0.15': - resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} - engines: {node: '>=18'} + '@inquirer/figures@2.0.5': + resolution: {integrity: sha512-NsSs4kzfm12lNetHwAn3GEuH317IzpwrMCbOuMIVytpjnJ90YYHNwdRgYGuKmVxwuIqSgqk3M5qqQt1cDk0tGQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} - '@inquirer/input@4.3.1': - resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} - engines: {node: '>=18'} + '@inquirer/input@5.0.13': + resolution: {integrity: sha512-0l0jCHlJnXIV8CTxwQC0C+5Ziq8WP22edWgmciW2xYvoeoSck4v5FvCS1ctKdqLLR0dUo93uAHgWHywgBSoRyw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/number@3.0.23': - resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} - engines: {node: '>=18'} + '@inquirer/number@4.0.13': + resolution: {integrity: sha512-WHmkYnnJAou5gx7RgcvAfUggnHNM1zWfoh0dFPl3dxVssuqt+dK5rIbaOYQXNyOegvFnopbKupjnhw2O8gANNg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/password@4.0.23': - resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} - engines: {node: '>=18'} + '@inquirer/password@5.0.13': + resolution: {integrity: sha512-XDGu64ROHZjOOXLAANvJN7iIxWKhOSCG5VakrZ5kaScVR+snVJCFglD/hL3/677awtWcu4pXoWa280CDIYcBeg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/prompts@7.10.1': - resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} - engines: {node: '>=18'} + '@inquirer/prompts@8.4.3': + resolution: {integrity: sha512-ai5LseTw9HhegupIgmo4cn7RpnCGznjjXu4OI+7jMR8vu7T1ZCCNMzFFAovUCjL1fl0cceksIN1++yQE59SmZw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/rawlist@4.1.11': - resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} - engines: {node: '>=18'} + '@inquirer/rawlist@5.2.9': + resolution: {integrity: sha512-a1ErXEfgjfPYpyQ89dp+7n2IISjH9oQg3ygvF5adz8B7aHn4n2PjEgu1wpVTp69K3bj3lVLxP0qJ2b1clk1Whw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/search@3.2.2': - resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} - engines: {node: '>=18'} + '@inquirer/search@4.1.9': + resolution: {integrity: sha512-ZlbM28Q9lmLkFPNAIv+ZuY530n5Km8U1WW48oYEvDhe9yc2uL3m3t+JSdRUkQlk5fuIuskgiIVjcb7czFzQpuA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/select@4.4.2': - resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} - engines: {node: '>=18'} + '@inquirer/select@5.1.5': + resolution: {integrity: sha512-6SRg6kHfK/sjLXOsuqNebuir+sjwrf/iWuRUnXgB2slzEewppI1WfzeS16XxDcOQmXBruMmmB9Cgrz7wsAxqMg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/type@3.0.10': - resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} - engines: {node: '>=18'} + '@inquirer/type@4.0.5': + resolution: {integrity: sha512-aetVUNeKNc/VriqXlw1NRSW0zhMBB0W4bNbWRJgzRl/3d0QNDQFfk0GO5SDdtjMZVg6o8ZKEiadd7SCCzoOn5Q==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -2996,6 +3008,10 @@ packages: resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} engines: {node: '>=8'} + auto-bind@5.0.1: + resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -3156,9 +3172,15 @@ packages: change-case-all@1.0.15: resolution: {integrity: sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==} + change-case-all@2.1.0: + resolution: {integrity: sha512-v6b0WWWkZUMHVuYk82l+WROgkUm4qEN2w5hKRNWtEOYwWqUGoi8C6xH0l1RLF1EoWqDFK6MFclmN3od6ws3/uw==} + change-case@4.1.2: resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + chardet@2.1.1: resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} @@ -3193,10 +3215,6 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - cliui@9.0.1: resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} engines: {node: '>=20'} @@ -3216,9 +3234,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -3340,9 +3355,9 @@ packages: dayjs@1.11.20: resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} - debounce@2.2.0: - resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} - engines: {node: '>=18'} + debounce@3.0.0: + resolution: {integrity: sha512-64byRbF0/AirwbuHqB3/ZpMG9/nckDa6ZA0yd6UnaQNwbbemCOwvz2sL5sjXLHhZHADyiwLm0M5qMhltUUx+TA==} + engines: {node: '>=20'} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -3375,9 +3390,9 @@ packages: des.js@1.1.0: resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} + detect-indent@7.0.2: + resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} + engines: {node: '>=12.20'} detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} @@ -3613,9 +3628,18 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + fast-uri@3.1.2: resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + fast-wrap-ansi@0.2.0: + resolution: {integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==} + fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -4058,10 +4082,6 @@ packages: resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} engines: {node: '>=0.10.0'} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -4304,10 +4324,6 @@ packages: resolution: {integrity: sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q==} engines: {node: '>=22.13.0'} - listr2@9.0.5: - resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} - engines: {node: '>=20.0.0'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -4324,10 +4340,6 @@ packages: lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - log-symbols@7.0.1: resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} engines: {node: '>=18'} @@ -4451,9 +4463,9 @@ packages: '@types/react': optional: true - mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} + mute-stream@3.0.0: + resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} + engines: {node: ^20.17.0 || >=22.9.0} nanoid@3.3.12: resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} @@ -4879,10 +4891,6 @@ packages: remove-trailing-spaces@1.0.9: resolution: {integrity: sha512-xzG7w5IRijvIkHIjDk65URsJJ7k4J95wmcArY5PRcmjldIOl7oTvG8+X2Ag690R7SfwiOcHrWZKVc1Pp5WIOzA==} - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} @@ -5075,6 +5083,9 @@ packages: sponge-case@1.0.1: resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} + sponge-case@2.0.3: + resolution: {integrity: sha512-i4h9ZGRfxV6Xw3mpZSFOfbXjf0cQcYmssGWutgNIfFZ2VM+YIWfD71N/kjjwK6X/AAHzBr+rciEcn/L34S8TGw==} + stdin-discarder@0.3.2: resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} engines: {node: '>=18'} @@ -5176,6 +5187,9 @@ packages: swap-case@2.0.2: resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==} + swap-case@3.0.3: + resolution: {integrity: sha512-6p4op8wE9CQv7uDFzulI6YXUw4lD9n4oQierdbFThEKVWVQcbQcUjdP27W8XE7V4QnWmnq9jueSHceyyQnqQVA==} + sync-fetch@0.6.0: resolution: {integrity: sha512-IELLEvzHuCfc1uTsshPK58ViSdNqXxlml1U+fmwJIKLYKOr/rAtBrorE2RYm5IHaMpDNlmC0fr1LAvdXvyheEQ==} engines: {node: '>=18'} @@ -5254,8 +5268,9 @@ packages: peerDependencies: typescript: '>=4.8.4' - ts-log@2.2.7: - resolution: {integrity: sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==} + ts-log@3.0.2: + resolution: {integrity: sha512-esq6hx2lM66sQV1YcFkIYTqrWWabmqBqobKHyn1CswdI5FgfQhkmiKiRWVGBNlIbdjBxEIkNvMIwLKKPgRYZLQ==} + engines: {node: '>=20', npm: '>=10'} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -5564,14 +5579,6 @@ packages: resolution: {integrity: sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==} engines: {node: '>=20'} - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} @@ -5608,18 +5615,10 @@ packages: engines: {node: '>= 14.6'} hasBin: true - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - yargs-parser@22.0.0: resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - yargs@18.0.0: resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} @@ -5632,10 +5631,6 @@ packages: resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} - yoctocolors-cjs@2.1.3: - resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} - engines: {node: '>=18'} - yoctocolors@2.1.2: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} @@ -6700,20 +6695,20 @@ snapshots: '@fastify/busboy@3.2.0': {} - '@graphql-codegen/add@6.0.1(graphql@16.14.0)': + '@graphql-codegen/add@7.0.0(graphql@16.14.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) graphql: 16.14.0 tslib: 2.8.1 - '@graphql-codegen/cli@6.3.1(@types/node@24.10.1)(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0)(typescript@6.0.3)': + '@graphql-codegen/cli@7.0.0(@types/node@24.10.1)(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0)(typescript@6.0.3)': dependencies: '@babel/generator': 7.29.1 '@babel/template': 7.28.6 '@babel/types': 7.29.0 - '@graphql-codegen/client-preset': 5.3.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0) - '@graphql-codegen/core': 5.0.2(graphql@16.14.0) - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) + '@graphql-codegen/client-preset': 6.0.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0) + '@graphql-codegen/core': 6.0.0(graphql@16.14.0) + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) '@graphql-tools/apollo-engine-loader': 8.0.30(graphql@16.14.0) '@graphql-tools/code-file-loader': 8.1.32(graphql@16.14.0) '@graphql-tools/git-loader': 8.0.36(graphql@16.14.0) @@ -6724,26 +6719,26 @@ snapshots: '@graphql-tools/merge': 9.1.9(graphql@16.14.0) '@graphql-tools/url-loader': 9.1.2(@types/node@24.10.1)(graphql@16.14.0) '@graphql-tools/utils': 11.1.0(graphql@16.14.0) - '@inquirer/prompts': 7.10.1(@types/node@24.10.1) + '@inquirer/prompts': 8.4.3(@types/node@24.10.1) '@whatwg-node/fetch': 0.10.13 - chalk: 4.1.2 + chalk: 5.6.2 cosmiconfig: 9.0.1(typescript@6.0.3) - debounce: 2.2.0 - detect-indent: 6.1.0 + debounce: 3.0.0 + detect-indent: 7.0.2 graphql: 16.14.0 graphql-config: 5.1.6(@types/node@24.10.1)(graphql@16.14.0)(typescript@6.0.3) is-glob: 4.0.3 jiti: 2.7.0 json-to-pretty-yaml: 1.2.2 - listr2: 9.0.5 - log-symbols: 4.1.0 + listr2: 10.2.1 + log-symbols: 7.0.1 micromatch: 4.0.8 shell-quote: 1.8.3 string-env-interpolation: 1.0.1 - ts-log: 2.2.7 + ts-log: 3.0.2 tslib: 2.8.1 yaml: 2.9.0 - yargs: 17.7.2 + yargs: 18.0.0 transitivePeerDependencies: - '@fastify/websocket' - '@types/node' @@ -6755,17 +6750,17 @@ snapshots: - typescript - utf-8-validate - '@graphql-codegen/client-preset@5.3.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0)': + '@graphql-codegen/client-preset@6.0.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0)': dependencies: '@babel/helper-plugin-utils': 7.28.6 '@babel/template': 7.28.6 - '@graphql-codegen/add': 6.0.1(graphql@16.14.0) - '@graphql-codegen/gql-tag-operations': 5.2.0(graphql@16.14.0) - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) - '@graphql-codegen/typed-document-node': 6.1.8(graphql@16.14.0) - '@graphql-codegen/typescript': 5.0.10(graphql@16.14.0) - '@graphql-codegen/typescript-operations': 5.1.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0) - '@graphql-codegen/visitor-plugin-common': 6.3.0(graphql@16.14.0) + '@graphql-codegen/add': 7.0.0(graphql@16.14.0) + '@graphql-codegen/gql-tag-operations': 6.0.0(graphql@16.14.0) + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) + '@graphql-codegen/typed-document-node': 7.0.0(graphql@16.14.0) + '@graphql-codegen/typescript': 6.0.1(graphql@16.14.0) + '@graphql-codegen/typescript-operations': 6.0.2(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0) + '@graphql-codegen/visitor-plugin-common': 7.0.2(graphql@16.14.0) '@graphql-tools/documents': 1.0.1(graphql@16.14.0) '@graphql-tools/utils': 11.1.0(graphql@16.14.0) '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.0) @@ -6774,20 +6769,20 @@ snapshots: optionalDependencies: graphql-sock: 1.0.1(graphql@16.14.0) - '@graphql-codegen/core@5.0.2(graphql@16.14.0)': + '@graphql-codegen/core@6.0.0(graphql@16.14.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) '@graphql-tools/schema': 10.0.33(graphql@16.14.0) '@graphql-tools/utils': 11.1.0(graphql@16.14.0) graphql: 16.14.0 tslib: 2.8.1 - '@graphql-codegen/gql-tag-operations@5.2.0(graphql@16.14.0)': + '@graphql-codegen/gql-tag-operations@6.0.0(graphql@16.14.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) - '@graphql-codegen/visitor-plugin-common': 6.3.0(graphql@16.14.0) + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) + '@graphql-codegen/visitor-plugin-common': 7.0.2(graphql@16.14.0) '@graphql-tools/utils': 11.1.0(graphql@16.14.0) - auto-bind: 4.0.0 + auto-bind: 5.0.1 graphql: 16.14.0 tslib: 2.8.1 @@ -6800,19 +6795,28 @@ snapshots: import-from: 4.0.0 tslib: 2.8.1 - '@graphql-codegen/schema-ast@5.0.2(graphql@16.14.0)': + '@graphql-codegen/plugin-helpers@7.0.1(graphql@16.14.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) + '@graphql-tools/utils': 11.1.0(graphql@16.14.0) + change-case-all: 2.1.0 + common-tags: 1.8.2 + graphql: 16.14.0 + import-from: 4.0.0 + tslib: 2.8.1 + + '@graphql-codegen/schema-ast@6.0.0(graphql@16.14.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) '@graphql-tools/utils': 11.1.0(graphql@16.14.0) graphql: 16.14.0 tslib: 2.8.1 - '@graphql-codegen/typed-document-node@6.1.8(graphql@16.14.0)': + '@graphql-codegen/typed-document-node@7.0.0(graphql@16.14.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) - '@graphql-codegen/visitor-plugin-common': 6.3.0(graphql@16.14.0) - auto-bind: 4.0.0 - change-case-all: 1.0.15 + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) + '@graphql-codegen/visitor-plugin-common': 7.0.2(graphql@16.14.0) + auto-bind: 5.0.1 + change-case-all: 2.1.0 graphql: 16.14.0 tslib: 2.8.1 @@ -6825,23 +6829,23 @@ snapshots: graphql: 16.14.0 tslib: 2.8.1 - '@graphql-codegen/typescript-operations@5.1.0(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0)': + '@graphql-codegen/typescript-operations@6.0.2(graphql-sock@1.0.1(graphql@16.14.0))(graphql@16.14.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) - '@graphql-codegen/typescript': 5.0.10(graphql@16.14.0) - '@graphql-codegen/visitor-plugin-common': 6.3.0(graphql@16.14.0) - auto-bind: 4.0.0 + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) + '@graphql-codegen/schema-ast': 6.0.0(graphql@16.14.0) + '@graphql-codegen/visitor-plugin-common': 7.0.2(graphql@16.14.0) + auto-bind: 5.0.1 graphql: 16.14.0 tslib: 2.8.1 optionalDependencies: graphql-sock: 1.0.1(graphql@16.14.0) - '@graphql-codegen/typescript@5.0.10(graphql@16.14.0)': + '@graphql-codegen/typescript@6.0.1(graphql@16.14.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.3.0(graphql@16.14.0) - '@graphql-codegen/schema-ast': 5.0.2(graphql@16.14.0) - '@graphql-codegen/visitor-plugin-common': 6.3.0(graphql@16.14.0) - auto-bind: 4.0.0 + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) + '@graphql-codegen/schema-ast': 6.0.0(graphql@16.14.0) + '@graphql-codegen/visitor-plugin-common': 7.0.2(graphql@16.14.0) + auto-bind: 5.0.1 graphql: 16.14.0 tslib: 2.8.1 @@ -6859,6 +6863,20 @@ snapshots: parse-filepath: 1.0.2 tslib: 2.8.1 + '@graphql-codegen/visitor-plugin-common@7.0.2(graphql@16.14.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 7.0.1(graphql@16.14.0) + '@graphql-tools/optimize': 2.0.0(graphql@16.14.0) + '@graphql-tools/relay-operation-optimizer': 7.1.4(graphql@16.14.0) + '@graphql-tools/utils': 11.1.0(graphql@16.14.0) + auto-bind: 5.0.1 + change-case-all: 2.1.0 + dependency-graph: 1.0.0 + graphql: 16.14.0 + graphql-tag: 2.12.6(graphql@16.14.0) + parse-filepath: 1.0.2 + tslib: 2.8.1 + '@graphql-hive/signal@2.0.0': {} '@graphql-tools/apollo-engine-loader@8.0.30(graphql@16.14.0)': @@ -7120,128 +7138,122 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/ansi@1.0.2': {} + '@inquirer/ansi@2.0.5': {} - '@inquirer/checkbox@4.3.2(@types/node@24.10.1)': + '@inquirer/checkbox@5.1.5(@types/node@24.10.1)': dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.10.1) - yoctocolors-cjs: 2.1.3 + '@inquirer/ansi': 2.0.5 + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/figures': 2.0.5 + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/confirm@5.1.21(@types/node@24.10.1)': + '@inquirer/confirm@6.0.13(@types/node@24.10.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/type': 3.0.10(@types/node@24.10.1) + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/core@10.3.2(@types/node@24.10.1)': + '@inquirer/core@11.1.10(@types/node@24.10.1)': dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.10.1) + '@inquirer/ansi': 2.0.5 + '@inquirer/figures': 2.0.5 + '@inquirer/type': 4.0.5(@types/node@24.10.1) cli-width: 4.1.0 - mute-stream: 2.0.0 + fast-wrap-ansi: 0.2.0 + mute-stream: 3.0.0 signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.10.1 - '@inquirer/editor@4.2.23(@types/node@24.10.1)': + '@inquirer/editor@5.1.2(@types/node@24.10.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/external-editor': 1.0.3(@types/node@24.10.1) - '@inquirer/type': 3.0.10(@types/node@24.10.1) + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/external-editor': 3.0.0(@types/node@24.10.1) + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/expand@4.0.23(@types/node@24.10.1)': + '@inquirer/expand@5.0.14(@types/node@24.10.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/type': 3.0.10(@types/node@24.10.1) - yoctocolors-cjs: 2.1.3 + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/external-editor@1.0.3(@types/node@24.10.1)': + '@inquirer/external-editor@3.0.0(@types/node@24.10.1)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: '@types/node': 24.10.1 - '@inquirer/figures@1.0.15': {} + '@inquirer/figures@2.0.5': {} - '@inquirer/input@4.3.1(@types/node@24.10.1)': + '@inquirer/input@5.0.13(@types/node@24.10.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/type': 3.0.10(@types/node@24.10.1) + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/number@3.0.23(@types/node@24.10.1)': + '@inquirer/number@4.0.13(@types/node@24.10.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/type': 3.0.10(@types/node@24.10.1) + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/password@4.0.23(@types/node@24.10.1)': + '@inquirer/password@5.0.13(@types/node@24.10.1)': dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/type': 3.0.10(@types/node@24.10.1) + '@inquirer/ansi': 2.0.5 + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/prompts@7.10.1(@types/node@24.10.1)': + '@inquirer/prompts@8.4.3(@types/node@24.10.1)': dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@24.10.1) - '@inquirer/confirm': 5.1.21(@types/node@24.10.1) - '@inquirer/editor': 4.2.23(@types/node@24.10.1) - '@inquirer/expand': 4.0.23(@types/node@24.10.1) - '@inquirer/input': 4.3.1(@types/node@24.10.1) - '@inquirer/number': 3.0.23(@types/node@24.10.1) - '@inquirer/password': 4.0.23(@types/node@24.10.1) - '@inquirer/rawlist': 4.1.11(@types/node@24.10.1) - '@inquirer/search': 3.2.2(@types/node@24.10.1) - '@inquirer/select': 4.4.2(@types/node@24.10.1) + '@inquirer/checkbox': 5.1.5(@types/node@24.10.1) + '@inquirer/confirm': 6.0.13(@types/node@24.10.1) + '@inquirer/editor': 5.1.2(@types/node@24.10.1) + '@inquirer/expand': 5.0.14(@types/node@24.10.1) + '@inquirer/input': 5.0.13(@types/node@24.10.1) + '@inquirer/number': 4.0.13(@types/node@24.10.1) + '@inquirer/password': 5.0.13(@types/node@24.10.1) + '@inquirer/rawlist': 5.2.9(@types/node@24.10.1) + '@inquirer/search': 4.1.9(@types/node@24.10.1) + '@inquirer/select': 5.1.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/rawlist@4.1.11(@types/node@24.10.1)': + '@inquirer/rawlist@5.2.9(@types/node@24.10.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/type': 3.0.10(@types/node@24.10.1) - yoctocolors-cjs: 2.1.3 + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/search@3.2.2(@types/node@24.10.1)': + '@inquirer/search@4.1.9(@types/node@24.10.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.10.1) - yoctocolors-cjs: 2.1.3 + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/figures': 2.0.5 + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/select@4.4.2(@types/node@24.10.1)': + '@inquirer/select@5.1.5(@types/node@24.10.1)': dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.10.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.10.1) - yoctocolors-cjs: 2.1.3 + '@inquirer/ansi': 2.0.5 + '@inquirer/core': 11.1.10(@types/node@24.10.1) + '@inquirer/figures': 2.0.5 + '@inquirer/type': 4.0.5(@types/node@24.10.1) optionalDependencies: '@types/node': 24.10.1 - '@inquirer/type@3.0.10(@types/node@24.10.1)': + '@inquirer/type@4.0.5(@types/node@24.10.1)': optionalDependencies: '@types/node': 24.10.1 @@ -8359,6 +8371,8 @@ snapshots: auto-bind@4.0.0: {} + auto-bind@5.0.1: {} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 @@ -8561,6 +8575,13 @@ snapshots: upper-case: 2.0.2 upper-case-first: 2.0.2 + change-case-all@2.1.0: + dependencies: + change-case: 5.4.4 + sponge-case: 2.0.3 + swap-case: 3.0.3 + title-case: 3.0.3 + change-case@4.1.2: dependencies: camel-case: 4.1.2 @@ -8576,6 +8597,8 @@ snapshots: snake-case: 3.0.4 tslib: 2.8.1 + change-case@5.4.4: {} + chardet@2.1.1: {} chokidar@5.0.0: @@ -8609,12 +8632,6 @@ snapshots: cli-width@4.1.0: {} - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - cliui@9.0.1: dependencies: string-width: 7.2.0 @@ -8631,8 +8648,6 @@ snapshots: color-name@1.1.4: {} - colorette@2.0.20: {} - commander@10.0.1: {} commander@14.0.3: {} @@ -8770,7 +8785,7 @@ snapshots: dayjs@1.11.20: {} - debounce@2.2.0: {} + debounce@3.0.0: {} debug@4.4.3: dependencies: @@ -8799,7 +8814,7 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 - detect-indent@6.1.0: {} + detect-indent@7.0.2: {} detect-libc@2.1.2: {} @@ -9147,8 +9162,18 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + fast-uri@3.1.2: {} + fast-wrap-ansi@0.2.0: + dependencies: + fast-string-width: 3.0.2 + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -9601,8 +9626,6 @@ snapshots: dependencies: unc-path-regex: 0.1.2 - is-unicode-supported@0.1.0: {} - is-unicode-supported@2.1.0: {} is-upper-case@2.0.2: @@ -9792,15 +9815,6 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 10.0.0 - listr2@9.0.5: - dependencies: - cli-truncate: 5.2.0 - colorette: 2.0.20 - eventemitter3: 5.0.4 - log-update: 6.1.0 - rfdc: 1.4.1 - wrap-ansi: 9.0.2 - locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -9813,11 +9827,6 @@ snapshots: lodash@4.18.1: {} - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - log-symbols@7.0.1: dependencies: is-unicode-supported: 2.1.0 @@ -9926,7 +9935,7 @@ snapshots: '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(react@19.2.6) '@types/react': 19.2.14 - mute-stream@2.0.0: {} + mute-stream@3.0.0: {} nanoid@3.3.12: {} @@ -10422,8 +10431,6 @@ snapshots: remove-trailing-spaces@1.0.9: {} - require-directory@2.1.1: {} - require-from-string@2.0.2: {} reselect@5.1.1: {} @@ -10662,6 +10669,8 @@ snapshots: dependencies: tslib: 2.8.1 + sponge-case@2.0.3: {} + stdin-discarder@0.3.2: {} stop-iteration-iterator@1.1.0: @@ -10791,6 +10800,8 @@ snapshots: dependencies: tslib: 2.8.1 + swap-case@3.0.3: {} + sync-fetch@0.6.0: dependencies: node-fetch: 3.3.2 @@ -10870,7 +10881,7 @@ snapshots: dependencies: typescript: 6.0.3 - ts-log@2.2.7: {} + ts-log@3.0.2: {} tslib@2.8.1: {} @@ -11240,18 +11251,6 @@ snapshots: string-width: 8.2.1 strip-ansi: 7.2.0 - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 @@ -11270,20 +11269,8 @@ snapshots: yaml@2.9.0: {} - yargs-parser@21.1.1: {} - yargs-parser@22.0.0: {} - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - yargs@18.0.0: dependencies: cliui: 9.0.1 @@ -11297,8 +11284,6 @@ snapshots: yocto-queue@1.2.2: {} - yoctocolors-cjs@2.1.3: {} - yoctocolors@2.1.2: {} zustand@5.0.13(@types/react@19.2.14)(immer@11.1.8)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)): diff --git a/src/base/AppRoute.constants.ts b/src/base/AppRoute.constants.ts index 71289605..d1c05a15 100644 --- a/src/base/AppRoute.constants.ts +++ b/src/base/AppRoute.constants.ts @@ -6,13 +6,13 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { SourceType } from '@/lib/graphql/generated/graphql.ts'; import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; import type { ChapterSourceOrderInfo } from '@/features/chapter/Chapter.types.ts'; import type { BrowseTab } from '@/features/browse/Browse.types.ts'; import { SearchParam } from '@/base/Base.types.ts'; import { UrlUtil } from '@/lib/UrlUtil.ts'; +import type { SourceIdInfo } from '@/features/source/Source.types.ts'; type AppRouteInfo = { match: string; @@ -131,12 +131,12 @@ export const AppRoutes = { childRoutes: { browse: { match: ':sourceId', - path: (sourceId: SourceType['id'], query?: string | null | undefined) => + path: (sourceId: SourceIdInfo['id'], query?: string | null | undefined) => UrlUtil.addQueryParam(`/sources/${sourceId}`, query), }, configure: { match: ':sourceId/configure', - path: (sourceId: SourceType['id']) => `/sources/${sourceId}/configure`, + path: (sourceId: SourceIdInfo['id']) => `/sources/${sourceId}/configure`, }, searchAll: { match: 'all/search', @@ -204,7 +204,7 @@ export const AppRoutes = { childRoutes: { singleMangaSearch: { match: 'source/:sourceId/manga/:mangaId/search', - path: (sourceId: SourceType['id'], mangaId: MangaIdInfo['id'], query?: string | null | undefined) => + path: (sourceId: SourceIdInfo['id'], mangaId: MangaIdInfo['id'], query?: string | null | undefined) => UrlUtil.addQueryParam(`/migrate/source/${sourceId}/manga/${mangaId}/search`, query), }, manualSearch: { diff --git a/src/base/components/downloads/DownloadStateIndicator.tsx b/src/base/components/downloads/DownloadStateIndicator.tsx index 538dc801..d1f7524a 100644 --- a/src/base/components/downloads/DownloadStateIndicator.tsx +++ b/src/base/components/downloads/DownloadStateIndicator.tsx @@ -12,7 +12,7 @@ import Box from '@mui/material/Box'; import Typography from '@mui/material/Typography'; import { useLingui } from '@lingui/react/macro'; import { msg } from '@lingui/core/macro'; -import { DownloadState } from '@/lib/graphql/generated/graphql.ts'; +import { DownloadState } from '@/lib/graphql/generated/graphql-base.types.ts'; import { Chapters } from '@/features/chapter/services/Chapters.ts'; import type { ChapterIdInfo } from '@/features/chapter/Chapter.types.ts'; diff --git a/src/features/app-updates/components/VersionInfo.tsx b/src/features/app-updates/components/VersionInfo.tsx index 6672c2a7..18038237 100644 --- a/src/features/app-updates/components/VersionInfo.tsx +++ b/src/features/app-updates/components/VersionInfo.tsx @@ -15,7 +15,7 @@ import DownloadIcon from '@mui/icons-material/Download'; import OpenInNewIcon from '@mui/icons-material/OpenInNew'; import DownloadingIcon from '@mui/icons-material/Downloading'; import { t } from '@lingui/core/macro'; -import { UpdateState } from '@/lib/graphql/generated/graphql.ts'; +import { UpdateState } from '@/lib/graphql/generated/graphql-base.types.ts'; export type BaseVersionInfoProps = { version: string; diff --git a/src/features/app-updates/components/WebUIUpdateChecker.tsx b/src/features/app-updates/components/WebUIUpdateChecker.tsx index 4e1243a5..4dd7af4f 100644 --- a/src/features/app-updates/components/WebUIUpdateChecker.tsx +++ b/src/features/app-updates/components/WebUIUpdateChecker.tsx @@ -15,8 +15,8 @@ import DialogActions from '@mui/material/DialogActions'; import Button from '@mui/material/Button'; import { useLingui } from '@lingui/react/macro'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; -import type { WebUiUpdateStatus } from '@/lib/graphql/generated/graphql.ts'; -import { UpdateState, WebUiChannel } from '@/lib/graphql/generated/graphql.ts'; +import type { WebUiUpdateStatus } from '@/lib/graphql/generated/graphql-base.types.ts'; +import { UpdateState, WebUiChannel } from '@/lib/graphql/generated/graphql-base.types.ts'; import { useLocalStorage, useSessionStorage } from '@/base/hooks/useStorage.tsx'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { makeToast } from '@/base/utils/Toast.ts'; diff --git a/src/features/backup/Backup.types.ts b/src/features/backup/Backup.types.ts index 919f37e3..0f7bd518 100644 --- a/src/features/backup/Backup.types.ts +++ b/src/features/backup/Backup.types.ts @@ -6,7 +6,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { PartialBackupFlagsInput } from '@/lib/graphql/generated/graphql.ts'; +import type { PartialBackupFlagsInput } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { ServerSettings } from '@/features/settings/Settings.types.ts'; export enum BackupFlagGroup { diff --git a/src/features/backup/component/BackupValidationDialog.tsx b/src/features/backup/component/BackupValidationDialog.tsx index ffa050e7..a058562b 100644 --- a/src/features/backup/component/BackupValidationDialog.tsx +++ b/src/features/backup/component/BackupValidationDialog.tsx @@ -19,7 +19,7 @@ import type { AwaitableComponentProps } from 'awaitable-component'; import { useLingui } from '@lingui/react/macro'; import { BrowseTab } from '@/features/browse/Browse.types.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; -import type { ValidateBackupResult } from '@/lib/graphql/generated/graphql.ts'; +import type { ValidateBackupResult } from '@/lib/graphql/generated/graphql-base.types.ts'; export const BackupValidationDialog = ({ validationResult, diff --git a/src/features/backup/screens/Backup.tsx b/src/features/backup/screens/Backup.tsx index dc989e4f..c5ae7e9d 100644 --- a/src/features/backup/screens/Backup.tsx +++ b/src/features/backup/screens/Backup.tsx @@ -19,7 +19,7 @@ import { useLingui } from '@lingui/react/macro'; import { plural } from '@lingui/core/macro'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { makeToast } from '@/base/utils/Toast.ts'; -import { BackupRestoreState } from '@/lib/graphql/generated/graphql.ts'; +import { BackupRestoreState } from '@/lib/graphql/generated/graphql-base.types.ts'; import { Progress } from '@/base/components/feedback/Progress.tsx'; import { TextSetting } from '@/base/components/settings/text/TextSetting.tsx'; import { NumberSetting } from '@/base/components/settings/NumberSetting.tsx'; diff --git a/src/features/category/Category.types.ts b/src/features/category/Category.types.ts index 217906fb..799b66db 100644 --- a/src/features/category/Category.types.ts +++ b/src/features/category/Category.types.ts @@ -7,7 +7,7 @@ */ import type { LibraryOptions } from '@/features/library/Library.types.ts'; -import type { CategoryMetaType, CategoryType } from '@/lib/graphql/generated/graphql.ts'; +import type { CategoryMetaType, CategoryType } from '@/lib/graphql/generated/graphql-base.types.ts'; export type ICategoryMetadata = LibraryOptions; diff --git a/src/features/category/components/CategoriesInclusionSetting.tsx b/src/features/category/components/CategoriesInclusionSetting.tsx index 44e730c4..4955b6f4 100644 --- a/src/features/category/components/CategoriesInclusionSetting.tsx +++ b/src/features/category/components/CategoriesInclusionSetting.tsx @@ -19,7 +19,7 @@ import { useLingui } from '@lingui/react/macro'; import { t as translate } from '@lingui/core/macro'; import { ThreeStateCheckboxInput } from '@/base/components/inputs/ThreeStateCheckboxInput.tsx'; import { makeToast } from '@/base/utils/Toast.ts'; -import { IncludeOrExclude } from '@/lib/graphql/generated/graphql.ts'; +import { IncludeOrExclude } from '@/lib/graphql/generated/graphql-base.types.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { CheckboxContainer } from '@/base/components/inputs/CheckboxContainer.ts'; import type { diff --git a/src/features/category/components/CategorySettingsCard.tsx b/src/features/category/components/CategorySettingsCard.tsx index f472e406..fe5d940c 100644 --- a/src/features/category/components/CategorySettingsCard.tsx +++ b/src/features/category/components/CategorySettingsCard.tsx @@ -17,14 +17,14 @@ import Typography from '@mui/material/Typography'; import { useLingui } from '@lingui/react/macro'; import { CustomTooltip } from '@/base/components/CustomTooltip.tsx'; import { requestManager } from '@/lib/requests/RequestManager.ts'; -import type { CategoryType } from '@/lib/graphql/generated/graphql.ts'; import { ListCardContent } from '@/base/components/lists/cards/ListCardContent.tsx'; +import type { CategoryIdInfo, CategoryNameInfo } from '@/features/category/Category.types.ts'; export const CategorySettingsCard = ({ category, onEdit, }: { - category: Pick; + category: CategoryIdInfo & CategoryNameInfo; onEdit: () => void; }) => { const { t } = useLingui(); diff --git a/src/features/chapter/Chapter.types.ts b/src/features/chapter/Chapter.types.ts index fcf0cf79..5b409317 100644 --- a/src/features/chapter/Chapter.types.ts +++ b/src/features/chapter/Chapter.types.ts @@ -6,11 +6,8 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { - ChapterReaderFieldsFragment, - ChapterType, - DownloadStatusFieldsFragment, -} from '@/lib/graphql/generated/graphql.ts'; +import type { ChapterType } from '@/lib/graphql/generated/graphql-base.types'; +import type { ChapterReaderFieldsFragment, DownloadStatusFieldsFragment } from '@/lib/graphql/generated/graphql.ts'; export type ChapterSortMode = 'fetchedAt' | 'source' | 'chapterNumber' | 'uploadedAt'; diff --git a/src/features/chapter/components/actions/ChaptersDownloadActionMenuItems.tsx b/src/features/chapter/components/actions/ChaptersDownloadActionMenuItems.tsx index 35a33584..3b1acdbe 100644 --- a/src/features/chapter/components/actions/ChaptersDownloadActionMenuItems.tsx +++ b/src/features/chapter/components/actions/ChaptersDownloadActionMenuItems.tsx @@ -11,9 +11,9 @@ import MenuItem from '@mui/material/MenuItem'; import { msg } from '@lingui/core/macro'; import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts'; import { Mangas } from '@/features/manga/services/Mangas.ts'; -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; import { i18n } from '@/i18n'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; +import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; const DOWNLOAD_OPTIONS: { title: MessageDescriptor; @@ -59,7 +59,7 @@ export const ChaptersDownloadActionMenuItems = ({ mangaIds, closeMenu, }: { - mangaIds: MangaType['id'][]; + mangaIds: MangaIdInfo['id'][]; closeMenu: () => void; }) => { const { diff --git a/src/features/chapter/components/buttons/ChapterDownloadRetryButton.tsx b/src/features/chapter/components/buttons/ChapterDownloadRetryButton.tsx index 873cf2f9..df84e5e8 100644 --- a/src/features/chapter/components/buttons/ChapterDownloadRetryButton.tsx +++ b/src/features/chapter/components/buttons/ChapterDownloadRetryButton.tsx @@ -9,7 +9,7 @@ import Refresh from '@mui/icons-material/Refresh'; import IconButton from '@mui/material/IconButton'; import { useLingui } from '@lingui/react/macro'; -import { DownloadState } from '@/lib/graphql/generated/graphql.ts'; +import { DownloadState } from '@/lib/graphql/generated/graphql-base.types.ts'; import { CustomTooltip } from '@/base/components/CustomTooltip.tsx'; import { Chapters } from '@/features/chapter/services/Chapters.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts'; diff --git a/src/features/chapter/components/cards/ChapterCard.tsx b/src/features/chapter/components/cards/ChapterCard.tsx index 210be0b3..ad3bec93 100644 --- a/src/features/chapter/components/cards/ChapterCard.tsx +++ b/src/features/chapter/components/cards/ChapterCard.tsx @@ -23,7 +23,6 @@ import { useLingui } from '@lingui/react/macro'; import { CustomTooltip } from '@/base/components/CustomTooltip.tsx'; import { getDateString } from '@/base/utils/DateHelper.ts'; import { DownloadStateIndicator } from '@/base/components/downloads/DownloadStateIndicator.tsx'; -import type { ChapterType } from '@/lib/graphql/generated/graphql.ts'; import { ChapterActionMenuItems } from '@/features/chapter/components/actions/ChapterActionMenuItems.tsx'; import { Menu } from '@/base/components/menu/Menu.tsx'; import { Chapters } from '@/features/chapter/services/Chapters.ts'; @@ -36,11 +35,14 @@ import type { ChapterDownloadInfo, ChapterIdInfo, ChapterMangaInfo, + ChapterNameInfo, ChapterNumberInfo, ChapterReadInfo, ChapterScanlatorInfo, + ChapterSourceOrderInfo, } from '@/features/chapter/Chapter.types.ts'; import { MediaQuery } from '@/base/utils/MediaQuery.tsx'; +import type { ChapterType } from '@/lib/graphql/generated/graphql-base.types.ts'; type TChapter = ChapterIdInfo & ChapterMangaInfo & @@ -49,7 +51,9 @@ type TChapter = ChapterIdInfo & ChapterBookmarkInfo & ChapterNumberInfo & ChapterScanlatorInfo & - Pick; + ChapterNameInfo & + ChapterSourceOrderInfo & + Pick; interface IProps { mode?: 'manga.page' | 'reader'; diff --git a/src/features/chapter/components/cards/ChapterCardThumbnail.tsx b/src/features/chapter/components/cards/ChapterCardThumbnail.tsx index 6e7d6b41..ae61c533 100644 --- a/src/features/chapter/components/cards/ChapterCardThumbnail.tsx +++ b/src/features/chapter/components/cards/ChapterCardThumbnail.tsx @@ -9,8 +9,7 @@ import { Link } from 'react-router-dom'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { Mangas } from '@/features/manga/services/Mangas.ts'; -import type { MangaIdInfo, MangaThumbnailInfo } from '@/features/manga/Manga.types.ts'; -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; +import type { MangaIdInfo, MangaThumbnailInfo, MangaTitleInfo } from '@/features/manga/Manga.types.ts'; import { ListCardAvatar } from '@/base/components/lists/cards/ListCardAvatar.tsx'; export const ChapterCardThumbnail = ({ @@ -20,7 +19,7 @@ export const ChapterCardThumbnail = ({ thumbnailUrlLastFetched, }: MangaThumbnailInfo & { mangaId: MangaIdInfo['id']; - mangaTitle: MangaType['title']; + mangaTitle: MangaTitleInfo['title']; }) => ( ; +type TChapterSort = ChapterSourceOrderInfo & ChapterNumberInfo & Pick; const sortChapters = ( chapters: T[], { sortBy, reverse }: Pick, diff --git a/src/features/downloads/components/DownloadQueueChapterCard.tsx b/src/features/downloads/components/DownloadQueueChapterCard.tsx index e369ead8..18921b0c 100644 --- a/src/features/downloads/components/DownloadQueueChapterCard.tsx +++ b/src/features/downloads/components/DownloadQueueChapterCard.tsx @@ -26,7 +26,7 @@ import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts' import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { makeToast } from '@/base/utils/Toast.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts'; -import { DownloaderState } from '@/lib/graphql/generated/graphql.ts'; +import { DownloaderState } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { ChapterDownloadStatus, ChapterIdInfo } from '@/features/chapter/Chapter.types.ts'; import { MediaQuery } from '@/base/utils/MediaQuery.tsx'; diff --git a/src/features/downloads/screens/DownloadQueue.tsx b/src/features/downloads/screens/DownloadQueue.tsx index f50aa0f2..d555838c 100644 --- a/src/features/downloads/screens/DownloadQueue.tsx +++ b/src/features/downloads/screens/DownloadQueue.tsx @@ -23,7 +23,7 @@ import { makeToast } from '@/base/utils/Toast.ts'; import { EmptyViewAbsoluteCentered } from '@/base/components/feedback/EmptyViewAbsoluteCentered.tsx'; import { LoadingPlaceholder } from '@/base/components/feedback/LoadingPlaceholder.tsx'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; -import { DownloaderState } from '@/lib/graphql/generated/graphql.ts'; +import { DownloaderState } from '@/lib/graphql/generated/graphql-base.types.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { DndSortableItem } from '@/lib/dnd-kit/DndSortableItem.tsx'; import { DndKitUtil } from '@/lib/dnd-kit/DndKitUtil.ts'; diff --git a/src/features/extension/Extensions.types.ts b/src/features/extension/Extensions.types.ts index 0a9456c2..edbab68d 100644 --- a/src/features/extension/Extensions.types.ts +++ b/src/features/extension/Extensions.types.ts @@ -6,7 +6,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { ExtensionType } from '@/lib/graphql/generated/graphql.ts'; +import type { ExtensionType } from '@/lib/graphql/generated/graphql-base.types.ts'; export enum ExtensionAction { UPDATE = 'UPDATE', diff --git a/src/features/library/Library.types.ts b/src/features/library/Library.types.ts index 69134a6f..9d5dac71 100644 --- a/src/features/library/Library.types.ts +++ b/src/features/library/Library.types.ts @@ -6,8 +6,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { MangaStatus, MangaType, TrackerType } from '@/lib/graphql/generated/graphql.ts'; +import type { MangaStatus } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { GridLayout } from '@/base/Base.types.ts'; +import type { MangaDescriptionInfo, MangaIdInfo, MangaTitleInfo } from '@/features/manga/Manga.types.ts'; +import type { TrackerIdInfo } from '@/features/tracker/Tracker.types.ts'; export type MetadataLibrarySettings = { showAddToLibraryCategorySelectDialog: boolean; @@ -39,11 +41,11 @@ export interface LibraryOptions { hasUnreadChapters: NullAndUndefined; hasReadChapters: NullAndUndefined; hasDuplicateChapters: NullAndUndefined; - hasTrackerBinding: Record>; + hasTrackerBinding: Record>; hasStatus: Record>; } -export type TMangaDuplicate = Pick; +export type TMangaDuplicate = MangaIdInfo & MangaTitleInfo & MangaDescriptionInfo; export type TMangaDuplicates = Record; diff --git a/src/features/library/components/LibraryOptionsPanel.tsx b/src/features/library/components/LibraryOptionsPanel.tsx index eeb66df4..0963f1f6 100644 --- a/src/features/library/components/LibraryOptionsPanel.tsx +++ b/src/features/library/components/LibraryOptionsPanel.tsx @@ -19,7 +19,7 @@ import { OptionsTabs } from '@/base/components/modals/OptionsTabs.tsx'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { Trackers } from '@/features/tracker/services/Trackers.ts'; import type { GetTrackersSettingsQuery } from '@/lib/graphql/generated/graphql.ts'; -import { MangaStatus } from '@/lib/graphql/generated/graphql.ts'; +import { MangaStatus } from '@/lib/graphql/generated/graphql-base.types.ts'; import { GET_TRACKERS_SETTINGS } from '@/lib/graphql/tracker/TrackerQuery.ts'; import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts'; import { createUpdateCategoryMetadata, useGetCategoryMetadata } from '@/features/category/services/CategoryMetadata.ts'; diff --git a/src/features/library/hooks/useGetVisibleLibraryMangas.ts b/src/features/library/hooks/useGetVisibleLibraryMangas.ts index 558b5668..d7501413 100644 --- a/src/features/library/hooks/useGetVisibleLibraryMangas.ts +++ b/src/features/library/hooks/useGetVisibleLibraryMangas.ts @@ -9,19 +9,26 @@ import { StringParam, useQueryParam } from 'use-query-params'; import { useMemo } from 'react'; import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts'; -import type { ChapterType, MangaType, TrackRecordType } from '@/lib/graphql/generated/graphql.ts'; +import type { ChapterType, MangaType, TrackRecordType } from '@/lib/graphql/generated/graphql-base.types.ts'; import { enhancedCleanup } from '@/base/utils/Strings.ts'; import { useGetCategoryMetadata } from '@/features/category/services/CategoryMetadata.ts'; import type { LibraryOptions, LibrarySortMode } from '@/features/library/Library.types.ts'; import type { CategoryIdInfo, CategoryMetadataInfo } from '@/features/category/Category.types.ts'; import type { + MangaArtistInfo, + MangaAuthorInfo, MangaChapterCountInfo, + MangaDescriptionInfo, MangaDownloadInfo, + MangaGenreInfo, MangaIdInfo, + MangaInLibraryInfo, + MangaSourceIdInfo, + MangaSourceNameInfo, MangaStatusInfo, + MangaTitleInfo, MangaUnreadInfo, } from '@/features/manga/Manga.types.ts'; -import type { SourceDisplayNameInfo } from '@/features/source/Source.types.ts'; import { SearchParam } from '@/base/Base.types.ts'; const triStateFilter = ( @@ -70,9 +77,13 @@ const performSearch = ( return cleanedUpQueries.every((query) => cleanedUpStrings.includes(query)); }; -type TMangaQueryFilter = Pick & { - source?: NullAndUndefined; -}; +type TMangaQueryFilter = MangaTitleInfo & + MangaGenreInfo & + MangaDescriptionInfo & + MangaArtistInfo & + MangaAuthorInfo & + MangaSourceIdInfo & + MangaSourceNameInfo; const querySearchManga = ( query: NullAndUndefined, { title, genre: genres, description, artist, author, source, sourceId }: TMangaQueryFilter, @@ -162,7 +173,9 @@ const sortByNumber = (a: number | string = 0, b: number | string = 0) => Number( const sortByString = (a: string, b: string): number => a.localeCompare(b, undefined, { sensitivity: 'base' }); -type TMangaSort = Pick & +type TMangaSort = MangaTitleInfo & + MangaInLibraryInfo & + MangaUnreadInfo & MangaChapterCountInfo & { lastReadChapter?: Pick | null; latestUploadedChapter?: Pick | null; diff --git a/src/features/library/screens/Library.tsx b/src/features/library/screens/Library.tsx index 9fba6d21..8e2a6f97 100644 --- a/src/features/library/screens/Library.tsx +++ b/src/features/library/screens/Library.tsx @@ -39,7 +39,6 @@ import type { GetLibraryMangaCountQuery, GetLibraryMangaCountQueryVariables, MangaChapterStatFieldsFragment, - MangaType, } from '@/lib/graphql/generated/graphql.ts'; import { GET_CATEGORIES_LIBRARY } from '@/lib/graphql/category/CategoryQuery.ts'; import { Mangas } from '@/features/manga/services/Mangas.ts'; @@ -51,6 +50,7 @@ import { useAppAction } from '@/features/navigation-bar/hooks/useAppAction.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { SearchParam } from '@/base/Base.types.ts'; import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts'; +import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; const TitleWithSizeTag = styled('span')({ display: 'flex', @@ -122,7 +122,7 @@ export function Library() { handleSelectAll, handleSelection, clearSelection, - } = useSelectableCollection(mangas.length, { + } = useSelectableCollection(mangas.length, { itemIds: mangaIds, currentKey: activeTab?.id.toString(), initialState: undefined, diff --git a/src/features/library/util/LibraryDuplicates.util.ts b/src/features/library/util/LibraryDuplicates.util.ts index 044d92cc..da992907 100644 --- a/src/features/library/util/LibraryDuplicates.util.ts +++ b/src/features/library/util/LibraryDuplicates.util.ts @@ -6,11 +6,11 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; import { enhancedCleanup } from '@/base/utils/Strings.ts'; import type { TMangaDuplicate, TMangaDuplicateResult, TMangaDuplicates } from '@/features/library/Library.types.ts'; +import type { MangaTitleInfo } from '@/features/manga/Manga.types.ts'; -export const findDuplicatesByTitle = >( +export const findDuplicatesByTitle = ( libraryMangas: Manga[], ): TMangaDuplicates => { const titleToMangas = Object.groupBy(libraryMangas, ({ title }) => enhancedCleanup(title)); diff --git a/src/features/manga/Manga.constants.ts b/src/features/manga/Manga.constants.ts index 74363f3c..a25fdec6 100644 --- a/src/features/manga/Manga.constants.ts +++ b/src/features/manga/Manga.constants.ts @@ -8,7 +8,7 @@ import type { MessageDescriptor } from '@lingui/core'; import { msg } from '@lingui/core/macro'; -import { MangaStatus } from '@/lib/graphql/generated/graphql.ts'; +import { MangaStatus } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { MangaAction, MangaIdInfo } from '@/features/manga/Manga.types.ts'; import { MangaType } from '@/features/manga/Manga.types.ts'; import { diff --git a/src/features/manga/Manga.types.ts b/src/features/manga/Manga.types.ts index abb7d10e..364e1657 100644 --- a/src/features/manga/Manga.types.ts +++ b/src/features/manga/Manga.types.ts @@ -11,31 +11,39 @@ import type { PopupState } from 'material-ui-popup-state/hooks'; import type { JSX } from 'react'; import type { SelectableCollectionReturnType } from '@/base/collection/hooks/useSelectableCollection.ts'; import type { useManageMangaLibraryState } from '@/features/manga/hooks/useManageMangaLibraryState.tsx'; +import type { MangaReaderFieldsFragment } from '@/lib/graphql/generated/graphql.ts'; +import type { SingleModeProps } from '@/features/manga/components/MangaActionMenuItems.tsx'; +import type { GridLayout } from '@/base/Base.types.ts'; +import type { + ChapterIdInfo, + ChapterListOptions, + ChapterNameInfo, + ChapterNumberInfo, + ChapterReadInfo, + ChapterSourceOrderInfo, +} from '@/features/chapter/Chapter.types.ts'; +import type { MigrationMatch } from '@/features/migration/Migration.types.ts'; import type { - ChapterType, - MangaReaderFieldsFragment, MangaType as MangaTypeGql, Maybe, SourceType, TrackRecordType, -} from '@/lib/graphql/generated/graphql.ts'; -import type { SingleModeProps } from '@/features/manga/components/MangaActionMenuItems.tsx'; -import type { GridLayout } from '@/base/Base.types.ts'; -import type { ChapterListOptions } from '@/features/chapter/Chapter.types.ts'; -import type { MigrationMatch } from '@/features/migration/Migration.types.ts'; +} from '@/lib/graphql/generated/graphql-base.types.ts'; export type MangaCardMode = 'default' | 'source' | 'migrate.search' | 'migrate.select' | 'duplicate'; type MangaCardBaseProps = Pick & Omit & Partial> & { - firstUnreadChapter?: Pick | null; + firstUnreadChapter?: + | (ChapterIdInfo & ChapterSourceOrderInfo & ChapterReadInfo & ChapterNumberInfo & ChapterNameInfo) + | null; }; export type MangaIdInfo = Pick; export type MangaChapterCountInfo = { chapters: Pick }; -export type MangaHighestChapterNumberInfo = { highestNumberedChapter?: Pick }; -export type MangaInLibraryInfo = Pick; +export type MangaHighestChapterNumberInfo = { highestNumberedChapter?: (ChapterIdInfo & ChapterNumberInfo) | null }; +export type MangaInLibraryInfo = Pick; export type MangaDownloadInfo = Pick & MangaChapterCountInfo; export type MangaUnreadInfo = Pick & MangaChapterCountInfo; export type MangaThumbnailInfo = Pick; diff --git a/src/features/manga/components/MangaActionMenuItems.tsx b/src/features/manga/components/MangaActionMenuItems.tsx index 3eb3d722..38caa7cf 100644 --- a/src/features/manga/components/MangaActionMenuItems.tsx +++ b/src/features/manga/components/MangaActionMenuItems.tsx @@ -31,8 +31,15 @@ import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts' import { TrackManga } from '@/features/tracker/components/TrackManga.tsx'; import { ChaptersDownloadActionMenuItems } from '@/features/chapter/components/actions/ChaptersDownloadActionMenuItems.tsx'; import { NestedMenuItem } from '@/base/components/menu/NestedMenuItem.tsx'; -import type { MangaChapterStatFieldsFragment, MangaType } from '@/lib/graphql/generated/graphql.ts'; -import type { MangaAction, MangaDownloadInfo, MangaIdInfo, MangaUnreadInfo } from '@/features/manga/Manga.types.ts'; +import type { MangaChapterStatFieldsFragment } from '@/lib/graphql/generated/graphql.ts'; +import type { + MangaAction, + MangaDownloadInfo, + MangaIdInfo, + MangaSourceIdInfo, + MangaTitleInfo, + MangaUnreadInfo, +} from '@/features/manga/Manga.types.ts'; import { MANGA_ACTION_TO_TRANSLATION } from '@/features/manga/Manga.constants.ts'; import { CategorySelect } from '@/features/category/components/CategorySelect.tsx'; import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts'; @@ -40,8 +47,8 @@ import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts'; type BaseProps = { onClose: () => void; setHideMenu: (hide: boolean) => void }; export type SingleModeProps = { - manga: Pick & MangaDownloadInfo & MangaUnreadInfo; - handleSelection?: SelectableCollectionReturnType['handleSelection']; + manga: MangaIdInfo & MangaTitleInfo & MangaSourceIdInfo & MangaDownloadInfo & MangaUnreadInfo; + handleSelection?: SelectableCollectionReturnType['handleSelection']; }; type SelectModeProps = { diff --git a/src/features/manga/components/MangaGrid.tsx b/src/features/manga/components/MangaGrid.tsx index 7f8d64a6..00c1e191 100644 --- a/src/features/manga/components/MangaGrid.tsx +++ b/src/features/manga/components/MangaGrid.tsx @@ -26,8 +26,7 @@ import { EmptyViewAbsoluteCentered } from '@/base/components/feedback/EmptyViewA import { LoadingPlaceholder } from '@/base/components/feedback/LoadingPlaceholder.tsx'; import { MangaCard } from '@/features/manga/components/cards/MangaCard.tsx'; import { DEFAULT_FULL_FAB_HEIGHT } from '@/base/components/buttons/StyledFab.tsx'; -import type { MangaCardProps } from '@/features/manga/Manga.types.ts'; -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; +import type { MangaCardProps, MangaIdInfo } from '@/features/manga/Manga.types.ts'; import { useResizeObserver } from '@/base/hooks/useResizeObserver.tsx'; import { useNavBarContext } from '@/features/navigation-bar/NavbarContext.tsx'; import { GridLayout } from '@/base/Base.types.ts'; @@ -64,7 +63,7 @@ const createMangaCard = ( gridLayout?: GridLayout, inLibraryIndicator?: boolean, isSelectModeActive: boolean = false, - selectedMangaIds?: MangaType['id'][], + selectedMangaIds?: MangaIdInfo['id'][], handleSelection?: DefaultGridProps['handleSelection'], mode?: MangaCardProps['mode'], onMigrateSelect?: DefaultGridProps['onMigrateSelect'], @@ -87,7 +86,7 @@ type DefaultGridProps = Omit & { GridItemContainer: (props: GridTypeMap['props'] & Partial) => JSX.Element; gridLayout?: GridLayout; isSelectModeActive?: boolean; - selectedMangaIds?: Required[]; + selectedMangaIds?: MangaIdInfo['id'][]; ref?: ForwardedRef; }; diff --git a/src/features/manga/components/MangaOptionButton.tsx b/src/features/manga/components/MangaOptionButton.tsx index bbe1bf9c..578effe8 100644 --- a/src/features/manga/components/MangaOptionButton.tsx +++ b/src/features/manga/components/MangaOptionButton.tsx @@ -17,8 +17,8 @@ import { bindTrigger } from 'material-ui-popup-state'; import { useLingui } from '@lingui/react/macro'; import { CustomTooltip } from '@/base/components/CustomTooltip.tsx'; import type { SelectableCollectionReturnType } from '@/base/collection/hooks/useSelectableCollection.ts'; -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; import { MUIUtil } from '@/lib/mui/MUI.util.ts'; +import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; const preventDefaultAction = (e: BaseSyntheticEvent) => { e.stopPropagation(); @@ -35,7 +35,7 @@ export const MangaOptionButton = ({ }: { id: number; selected?: boolean | null; - handleSelection?: SelectableCollectionReturnType['handleSelection']; + handleSelection?: SelectableCollectionReturnType['handleSelection']; asCheckbox?: boolean; popupState: PopupState; ref?: ForwardedRef; diff --git a/src/features/manga/components/MangaToolbarMenu.tsx b/src/features/manga/components/MangaToolbarMenu.tsx index 4448a894..b6028e6a 100644 --- a/src/features/manga/components/MangaToolbarMenu.tsx +++ b/src/features/manga/components/MangaToolbarMenu.tsx @@ -23,14 +23,19 @@ import { AwaitableComponent } from 'awaitable-component'; import ColorLensIcon from '@mui/icons-material/ColorLens'; import { useLingui } from '@lingui/react/macro'; import { CustomTooltip } from '@/base/components/CustomTooltip.tsx'; -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { CategorySelect } from '@/features/category/components/CategorySelect.tsx'; import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts'; import { ThemeCreationDialog } from '@/features/theme/components/CreateThemeDialog.tsx'; +import type { + MangaIdInfo, + MangaInLibraryInfo, + MangaSourceIdInfo, + MangaTitleInfo, +} from '@/features/manga/Manga.types.ts'; interface IProps { - manga: Pick; + manga: MangaIdInfo & MangaInLibraryInfo & MangaSourceIdInfo & MangaTitleInfo; onRefresh: () => any; refreshing: boolean; } diff --git a/src/features/manga/components/TrackMangaButton.tsx b/src/features/manga/components/TrackMangaButton.tsx index 2265e1cf..7fc9c1df 100644 --- a/src/features/manga/components/TrackMangaButton.tsx +++ b/src/features/manga/components/TrackMangaButton.tsx @@ -18,14 +18,14 @@ import { makeToast } from '@/base/utils/Toast.ts'; import { TrackManga } from '@/features/tracker/components/TrackManga.tsx'; import { Trackers } from '@/features/tracker/services/Trackers.ts'; import { CustomButton } from '@/base/components/buttons/CustomButton.tsx'; -import type { GetTrackersSettingsQuery, MangaType } from '@/lib/graphql/generated/graphql.ts'; +import type { GetTrackersSettingsQuery } from '@/lib/graphql/generated/graphql.ts'; import { GET_TRACKERS_SETTINGS } from '@/lib/graphql/tracker/TrackerQuery.ts'; -import type { MangaTrackRecordInfo } from '@/features/manga/Manga.types.ts'; +import type { MangaTitleInfo, MangaTrackRecordInfo } from '@/features/manga/Manga.types.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { MediaQuery } from '@/base/utils/MediaQuery.tsx'; import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts'; -export const TrackMangaButton = ({ manga }: { manga: MangaTrackRecordInfo & Pick }) => { +export const TrackMangaButton = ({ manga }: { manga: MangaTrackRecordInfo & MangaTitleInfo }) => { const { t } = useLingui(); const navigate = useNavigate(); const isMobileWidth = MediaQuery.useIsMobileWidth(); diff --git a/src/features/manga/components/details/MangaDetails.tsx b/src/features/manga/components/details/MangaDetails.tsx index ebc05a44..8dfff6ce 100644 --- a/src/features/manga/components/details/MangaDetails.tsx +++ b/src/features/manga/components/details/MangaDetails.tsx @@ -28,7 +28,7 @@ import { TrackMangaButton } from '@/features/manga/components/TrackMangaButton.t import { useManageMangaLibraryState } from '@/features/manga/hooks/useManageMangaLibraryState.tsx'; import { Metadata as BaseMetadata } from '@/base/components/texts/Metadata.tsx'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; -import type { MangaType, SourceType } from '@/lib/graphql/generated/graphql.ts'; +import type { MangaType, SourceType } from '@/lib/graphql/generated/graphql-base.types.ts'; import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts'; import { MANGA_STATUS_TO_TRANSLATION } from '@/features/manga/Manga.constants.ts'; import type { diff --git a/src/features/manga/hooks/useManageMangaLibraryState.tsx b/src/features/manga/hooks/useManageMangaLibraryState.tsx index 98034d1e..7ed9e531 100644 --- a/src/features/manga/hooks/useManageMangaLibraryState.tsx +++ b/src/features/manga/hooks/useManageMangaLibraryState.tsx @@ -16,19 +16,16 @@ import { getMetadataServerSettings } from '@/features/settings/services/ServerSe import { Categories } from '@/features/category/services/Categories.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { Mangas } from '@/features/manga/services/Mangas.ts'; -import type { - GetCategoriesBaseQuery, - GetCategoriesBaseQueryVariables, - MangaType, -} from '@/lib/graphql/generated/graphql.ts'; +import type { GetCategoriesBaseQuery, GetCategoriesBaseQueryVariables } from '@/lib/graphql/generated/graphql.ts'; import { GET_CATEGORIES_BASE } from '@/lib/graphql/category/CategoryQuery.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { CategorySelect } from '@/features/category/components/CategorySelect'; import { Confirmation } from '@/base/AppAwaitableComponent.ts'; +import type { MangaIdInfo, MangaInLibraryInfo, MangaTitleInfo } from '@/features/manga/Manga.types.ts'; export const useManageMangaLibraryState = ( - manga: Pick & Partial>, + manga: MangaIdInfo & MangaTitleInfo & Partial, confirmRemoval: boolean = false, ) => { const { t } = useLingui(); diff --git a/src/features/manga/services/Mangas.ts b/src/features/manga/services/Mangas.ts index 8e810577..b24f92fc 100644 --- a/src/features/manga/services/Mangas.ts +++ b/src/features/manga/services/Mangas.ts @@ -11,12 +11,10 @@ import { t } from '@lingui/core/macro'; import { i18n } from '@/i18n'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import type { - ChapterConditionInput, GetMangasBaseQuery, GetMangasBaseQueryVariables, GetMangasChapterIdsWithStateQuery, MangaBaseFieldsFragment, - UpdateMangaCategoriesPatchInput, } from '@/lib/graphql/generated/graphql.ts'; import { Chapters } from '@/features/chapter/services/Chapters.ts'; import { makeToast } from '@/base/utils/Toast.ts'; @@ -52,6 +50,10 @@ import { MigrationManager } from '@/features/migration/MigrationManager.ts'; import uniq from 'lodash/fp/uniq'; import { ReactRouter } from '@/lib/react-router/ReactRouter.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; +import type { + ChapterConditionInput, + UpdateMangaCategoriesPatchInput, +} from '@/lib/graphql/generated/graphql-base.types.ts'; type DownloadChaptersOptions = { size?: number; diff --git a/src/features/metadata/Metadata.types.ts b/src/features/metadata/Metadata.types.ts index 43210ab2..dc80a93b 100644 --- a/src/features/metadata/Metadata.types.ts +++ b/src/features/metadata/Metadata.types.ts @@ -10,7 +10,7 @@ import type { MetadataServerSettingKeys, SearchMetadataKeys } from '@/features/s import type { MangaMetadataKeys } from '@/features/manga/Manga.types.ts'; import type { SourceMetadataKeys } from '@/features/source/Source.types.ts'; import type { CategoryMetadataKeys } from '@/features/category/Category.types.ts'; -import type { MetaType } from '@/lib/graphql/generated/graphql.ts'; +import type { MetaType } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { IReaderSettings } from '@/features/reader/Reader.types.ts'; export interface IMetadataMigration { diff --git a/src/features/metadata/services/MetadataApolloCacheHandler.ts b/src/features/metadata/services/MetadataApolloCacheHandler.ts index ea4d9e07..12a71a28 100644 --- a/src/features/metadata/services/MetadataApolloCacheHandler.ts +++ b/src/features/metadata/services/MetadataApolloCacheHandler.ts @@ -8,7 +8,7 @@ import type { FieldFunctionOptions } from '@apollo/client/cache'; import type { Reference } from '@apollo/client/utilities'; -import type { MetaType } from '@/lib/graphql/generated/graphql.ts'; +import type { MetaType } from '@/lib/graphql/generated/graphql-base.types.ts'; type ReadFieldFunction = FieldFunctionOptions['readField']; diff --git a/src/features/metadata/services/MetadataChunker.ts b/src/features/metadata/services/MetadataChunker.ts index ca071a48..cec32109 100644 --- a/src/features/metadata/services/MetadataChunker.ts +++ b/src/features/metadata/services/MetadataChunker.ts @@ -10,12 +10,9 @@ import type { GqlMetaHolder, Metadata, MetadataHolderType } from '@/features/met import { convertFromGqlMeta } from '@/features/metadata/services/MetadataConverter.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { GET_GLOBAL_METADATAS } from '@/lib/graphql/metadata/GlobalMetadataQuery.ts'; -import type { - GetGlobalMetadatasQuery, - GetGlobalMetadatasQueryVariables, - MetaInput, -} from '@/lib/graphql/generated/graphql.ts'; +import type { GetGlobalMetadatasQuery, GetGlobalMetadatasQueryVariables } from '@/lib/graphql/generated/graphql.ts'; import { doesMetadataKeyExistIn } from '@/features/metadata/Metadata.utils.ts'; +import type { MetaInput } from '@/lib/graphql/generated/graphql-base.types.ts'; export class MetadataChunker { static readonly MAX_METADATA_VALUE_LENGTH = 4000; diff --git a/src/features/metadata/services/MetadataConverter.ts b/src/features/metadata/services/MetadataConverter.ts index ce14e85f..10e677b9 100644 --- a/src/features/metadata/services/MetadataConverter.ts +++ b/src/features/metadata/services/MetadataConverter.ts @@ -6,7 +6,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { MetaType } from '@/lib/graphql/generated/graphql.ts'; +import type { MetaType } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { AllowedMetadataValueTypes, AppMetadataKeys, Metadata } from '@/features/metadata/Metadata.types.ts'; import { APP_METADATA } from '@/features/metadata/Metadata.constants.ts'; diff --git a/src/features/metadata/services/MetadataUpdater.ts b/src/features/metadata/services/MetadataUpdater.ts index d03ae355..6bb06924 100644 --- a/src/features/metadata/services/MetadataUpdater.ts +++ b/src/features/metadata/services/MetadataUpdater.ts @@ -21,7 +21,7 @@ import { convertToGqlMeta } from '@/features/metadata/services/MetadataConverter import { MetadataChunker } from '@/features/metadata/services/MetadataChunker.ts'; import type { SourceIdInfo } from '@/features/source/Source.types.ts'; import type { ChapterIdInfo } from '@/features/chapter/Chapter.types.ts'; -import type { MetaInput } from '@/lib/graphql/generated/graphql.ts'; +import type { MetaInput } from '@/lib/graphql/generated/graphql-base.types.ts'; type MetadataUpdateOptions = { update?: MetadataKeyValuePair[]; diff --git a/src/features/migration/MangaMigration.ts b/src/features/migration/MangaMigration.ts index e306df7e..37635735 100644 --- a/src/features/migration/MangaMigration.ts +++ b/src/features/migration/MangaMigration.ts @@ -7,7 +7,7 @@ */ import { requestManager } from '@/lib/requests/RequestManager.ts'; -import type { SetChapterMetasItemInput } from '@/lib/graphql/generated/graphql.ts'; +import type { SetChapterMetasItemInput } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; import { Chapters } from '@/features/chapter/services/Chapters.ts'; import { ALL_APP_METADATA_KEY_PREFIXES } from '@/features/metadata/Metadata.constants.ts'; diff --git a/src/features/migration/MigrationManager.ts b/src/features/migration/MigrationManager.ts index 2085f78e..d0499778 100644 --- a/src/features/migration/MigrationManager.ts +++ b/src/features/migration/MigrationManager.ts @@ -38,10 +38,19 @@ import type { GetServerSettingsQueryVariables, MangaMigrationFieldsFragment, } from '@/lib/graphql/generated/graphql.ts'; -import { FetchSourceMangaType } from '@/lib/graphql/generated/graphql.ts'; +import { FetchSourceMangaType } from '@/lib/graphql/generated/graphql-base.types.ts'; import { GET_SERVER_SETTINGS } from '@/lib/graphql/settings/SettingsQuery.ts'; import { MangaMigration } from '@/features/migration/MangaMigration.ts'; -import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; +import type { + MangaArtistInfo, + MangaAuthorInfo, + MangaHighestChapterNumberInfo, + MangaIdInfo, + MangaSourceIdInfo, + MangaSourceNameInfo, + MangaThumbnailInfo, + MangaTitleInfo, +} from '@/features/manga/Manga.types.ts'; import type { SourceIdInfo } from '@/features/source/Source.types.ts'; import { assertIsDefined } from '@/base/Asserts.ts'; import { ReactRouter } from '@/lib/react-router/ReactRouter.ts'; @@ -286,7 +295,16 @@ export class MigrationManager { }); } - static selectMangas(mangas: MangaMigrationFieldsFragment[]): void { + static selectMangas( + mangas: (MangaIdInfo & + MangaTitleInfo & + MangaArtistInfo & + MangaAuthorInfo & + MangaHighestChapterNumberInfo & + MangaThumbnailInfo & + MangaSourceIdInfo & + MangaSourceNameInfo)[], + ): void { MigrationManager.ensureIsInValidPhase([MigrationPhase.SELECT_MANGAS]); const isSingleManga = mangas.length === 1; diff --git a/src/features/navigation-bar/NavigationBar.constants.ts b/src/features/navigation-bar/NavigationBar.constants.ts index 76092942..4f0b905e 100644 --- a/src/features/navigation-bar/NavigationBar.constants.ts +++ b/src/features/navigation-bar/NavigationBar.constants.ts @@ -26,7 +26,7 @@ import { NavBarItemMoreGroup } from '@/features/navigation-bar/NavigationBar.typ import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts'; -import { DownloaderState } from '@/lib/graphql/generated/graphql.ts'; +import { DownloaderState } from '@/lib/graphql/generated/graphql-base.types.ts'; type RestrictedNavBarItem = Omit & { show: Show }; diff --git a/src/features/reader/Reader.utils.ts b/src/features/reader/Reader.utils.ts index 6ca2f17c..dc1f3ac2 100644 --- a/src/features/reader/Reader.utils.ts +++ b/src/features/reader/Reader.utils.ts @@ -8,7 +8,7 @@ import type { ReaderPageSpreadState, ReaderStateChapters, ReaderStatePages } from '@/features/reader/Reader.types.ts'; import { ReaderResumeMode, ReadingMode } from '@/features/reader/Reader.types.ts'; -import type { UpdateChapterPatchInput } from '@/lib/graphql/generated/graphql.ts'; +import type { UpdateChapterPatchInput } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts'; import { Chapters } from '@/features/chapter/services/Chapters.ts'; import { CHAPTER_READER_FIELDS } from '@/lib/graphql/chapter/ChapterFragments.ts'; diff --git a/src/features/reader/services/ReaderService.ts b/src/features/reader/services/ReaderService.ts index a68f1e4e..b84dbd3a 100644 --- a/src/features/reader/services/ReaderService.ts +++ b/src/features/reader/services/ReaderService.ts @@ -21,7 +21,7 @@ import { makeToast } from '@/base/utils/Toast.ts'; import { MediaQuery } from '@/base/utils/MediaQuery.tsx'; import { useBackButton } from '@/base/hooks/useBackButton.ts'; import { GLOBAL_READER_SETTING_KEYS } from '@/features/reader/settings/ReaderSettings.constants.tsx'; -import type { UpdateChapterPatchInput } from '@/lib/graphql/generated/graphql.ts'; +import type { UpdateChapterPatchInput } from '@/lib/graphql/generated/graphql-base.types.ts'; import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts'; import { getChapterIdsForDownloadAhead, diff --git a/src/features/reader/settings/ReaderSettingsMetadata.ts b/src/features/reader/settings/ReaderSettingsMetadata.ts index a6bb9310..5663c00b 100644 --- a/src/features/reader/settings/ReaderSettingsMetadata.ts +++ b/src/features/reader/settings/ReaderSettingsMetadata.ts @@ -13,7 +13,6 @@ import { requestMangaMetadataUpdate, requestServerMetadataUpdate, } from '@/features/metadata/services/MetadataUpdater.ts'; -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; import type { IReaderSettings, IReaderSettingsWithDefaultFlag, ReadingMode } from '@/features/reader/Reader.types.ts'; import { convertFromGqlMeta } from '@/features/metadata/services/MetadataConverter.ts'; import { getMetadataFrom } from '@/features/metadata/services/MetadataReader.ts'; @@ -220,7 +219,7 @@ export const useDefaultReaderSettingsWithDefaultFlag = ( }; export const updateReaderSettings = async ( - manga: Pick & GqlMetaHolder, + manga: MangaIdInfo & GqlMetaHolder, setting: Setting, value: IReaderSettings[Setting], isGlobal: boolean = false, @@ -241,7 +240,7 @@ export const updateReaderSettings = async ( - manga: Pick & GqlMetaHolder, + manga: MangaIdInfo & GqlMetaHolder, handleError: (error: any) => void = defaultPromiseErrorHandler('createUpdateReaderSettings'), profile?: ReadingMode, ): ((...args: OmitFirst>>) => Promise) => diff --git a/src/features/reader/viewer/components/ReaderTransitionPage.tsx b/src/features/reader/viewer/components/ReaderTransitionPage.tsx index 2aeca036..51cd8ca9 100644 --- a/src/features/reader/viewer/components/ReaderTransitionPage.tsx +++ b/src/features/reader/viewer/components/ReaderTransitionPage.tsx @@ -29,8 +29,7 @@ import type { NavbarContextType } from '@/features/navigation-bar/NavigationBar. import { withPropsFrom } from '@/base/hoc/withPropsFrom.tsx'; import { getValueFromObject, noOp } from '@/lib/HelperFunctions.ts'; import { READER_BACKGROUND_TO_COLOR } from '@/features/reader/settings/ReaderSettings.constants.tsx'; -import type { ChapterType } from '@/lib/graphql/generated/graphql.ts'; -import type { ChapterIdInfo } from '@/features/chapter/Chapter.types.ts'; +import type { ChapterIdInfo, ChapterNameInfo, ChapterScanlatorInfo } from '@/features/chapter/Chapter.types.ts'; import { useReaderChaptersStore, useReaderPagesStore, @@ -46,8 +45,8 @@ const ChapterInfo = ({ backgroundColor, }: { title: string; - name?: ChapterType['name']; - scanlator?: ChapterType['scanlator']; + name?: ChapterNameInfo['name']; + scanlator?: ChapterScanlatorInfo['scanlator']; backgroundColor: IReaderSettings['backgroundColor']; }) => { const theme = useTheme(); @@ -89,12 +88,12 @@ const BaseReaderTransitionPage = ({ }: Pick & { // gets used in the "source props creators" of the "withPropsFrom" call chapterId: ChapterIdInfo['id']; - currentChapterName?: ChapterType['name']; - currentChapterScanlator?: ChapterType['scanlator']; - previousChapterName?: ChapterType['name']; - previousChapterScanlator?: ChapterType['scanlator']; - nextChapterName?: ChapterType['name']; - nextChapterScanlator?: ChapterType['scanlator']; + currentChapterName?: ChapterNameInfo['name']; + currentChapterScanlator?: ChapterScanlatorInfo['scanlator']; + previousChapterName?: ChapterNameInfo['name']; + previousChapterScanlator?: ChapterScanlatorInfo['scanlator']; + nextChapterName?: ChapterNameInfo['name']; + nextChapterScanlator?: ChapterScanlatorInfo['scanlator']; type: Exclude; handleBack: () => void; }) => { diff --git a/src/features/settings/ImageProcessing.utils.ts b/src/features/settings/ImageProcessing.utils.ts index f18dc199..f9c1d6df 100644 --- a/src/features/settings/ImageProcessing.utils.ts +++ b/src/features/settings/ImageProcessing.utils.ts @@ -25,7 +25,7 @@ import type { SettingsDownloadConversion, SettingsDownloadConversionHeader, SettingsDownloadConversionType, -} from '@/lib/graphql/generated/graphql.ts'; +} from '@/lib/graphql/generated/graphql-base.types.ts'; import { UrlUtil } from '@/lib/UrlUtil.ts'; import { jsonSaveParse } from '@/lib/HelperFunctions.ts'; diff --git a/src/features/settings/Settings.constants.ts b/src/features/settings/Settings.constants.ts index d3ab579a..86057323 100644 --- a/src/features/settings/Settings.constants.ts +++ b/src/features/settings/Settings.constants.ts @@ -27,7 +27,7 @@ import { WebUiChannel, WebUiFlavor, WebUiInterface, -} from '@/lib/graphql/generated/graphql.ts'; +} from '@/lib/graphql/generated/graphql-base.types.ts'; import { ThemeMode } from '@/features/theme/AppTheme.types.ts'; import { getPreferredISOLanguageCodes } from '@/lib/ISOLanguageUtil.ts'; diff --git a/src/features/settings/Settings.types.ts b/src/features/settings/Settings.types.ts index d511290c..573a238f 100644 --- a/src/features/settings/Settings.types.ts +++ b/src/features/settings/Settings.types.ts @@ -15,12 +15,12 @@ import type { MetadataTrackingSettings } from '@/features/tracker/Tracker.types. import type { MetadataUpdateSettings } from '@/features/app-updates/AppUpdateChecker.types.ts'; import type { MetadataThemeSettings } from '@/features/theme/AppTheme.types.ts'; import type { - GetServerSettingsQuery, Maybe, SettingsDownloadConversion, SettingsDownloadConversionHeader, -} from '@/lib/graphql/generated/graphql.ts'; +} from '@/lib/graphql/generated/graphql-base.types.ts'; import type { MetadataHistorySettings } from '@/features/history/History.types.ts'; +import type { GetServerSettingsQuery } from '@/lib/graphql/generated/graphql.ts'; export type MetadataServerSettingKeys = keyof MetadataServerSettings; diff --git a/src/features/settings/components/images/KeyValueItems.tsx b/src/features/settings/components/images/KeyValueItems.tsx index 4e3f67c1..21aef565 100644 --- a/src/features/settings/components/images/KeyValueItems.tsx +++ b/src/features/settings/components/images/KeyValueItems.tsx @@ -11,7 +11,7 @@ import Typography from '@mui/material/Typography'; import Button from '@mui/material/Button'; import Collapse from '@mui/material/Collapse'; import { useLingui } from '@lingui/react/macro'; -import type { Maybe } from '@/lib/graphql/generated/graphql.ts'; +import type { Maybe } from '@/lib/graphql/generated/graphql-base.types.ts'; import { addStableIdToKeyValueItems, isDuplicateKeyValueItem } from '@/features/settings/ImageProcessing.utils.ts'; import { KeyValueItem } from '@/features/settings/components/images/KeyValueItem.tsx'; import type { TSettingsDownloadConversionKeyValueItem } from '@/features/settings/Settings.types.ts'; diff --git a/src/features/settings/components/koreaderSync/KoreaderSyncSettings.tsx b/src/features/settings/components/koreaderSync/KoreaderSyncSettings.tsx index d91736e7..f95fbab0 100644 --- a/src/features/settings/components/koreaderSync/KoreaderSyncSettings.tsx +++ b/src/features/settings/components/koreaderSync/KoreaderSyncSettings.tsx @@ -21,7 +21,7 @@ import type { KoreaderSyncChecksumMethod, KoreaderSyncConflictStrategy, KoSyncStatusPayload, -} from '@/lib/graphql/generated/graphql.ts'; +} from '@/lib/graphql/generated/graphql-base.types.ts'; import { KOREADER_SYNC_CHECKSUM_METHOD_SELECT_VALUES, KOREADER_SYNC_CONFLICT_STRATEGY_SELECT_VALUES, diff --git a/src/features/settings/screens/About.tsx b/src/features/settings/screens/About.tsx index a2b2c959..5368c0e4 100644 --- a/src/features/settings/screens/About.tsx +++ b/src/features/settings/screens/About.tsx @@ -15,7 +15,7 @@ import { useLingui } from '@lingui/react/macro'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { ListItemLink } from '@/base/components/lists/ListItemLink.tsx'; import { LoadingPlaceholder } from '@/base/components/feedback/LoadingPlaceholder.tsx'; -import { UpdateState } from '@/lib/graphql/generated/graphql.ts'; +import { UpdateState } from '@/lib/graphql/generated/graphql-base.types.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { EmptyViewAbsoluteCentered } from '@/base/components/feedback/EmptyViewAbsoluteCentered.tsx'; import { VersionInfo } from '@/features/app-updates/components/VersionInfo.tsx'; diff --git a/src/features/settings/screens/ImageProcessingSetting.tsx b/src/features/settings/screens/ImageProcessingSetting.tsx index 7ce057d2..e8775e74 100644 --- a/src/features/settings/screens/ImageProcessingSetting.tsx +++ b/src/features/settings/screens/ImageProcessingSetting.tsx @@ -16,7 +16,7 @@ import { IMAGE_PROCESSING_TYPE_TO_TRANSLATION, } from '@/features/settings/Settings.constants.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts'; -import type { ImageProcessingType, ServerSettings } from '@/features/settings/Settings.types.ts'; +import type { ImageProcessingType } from '@/features/settings/Settings.types.ts'; import { makeToast } from '@/base/utils/Toast.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { LoadingPlaceholder } from '@/base/components/feedback/LoadingPlaceholder.tsx'; @@ -34,6 +34,7 @@ import { } from '@/features/settings/ImageProcessing.utils.ts'; import { Processing } from '@/features/settings/components/images/Processing.tsx'; import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts'; +import type { PartialSettingsType } from '@/lib/graphql/generated/graphql-base.types.ts'; export const ImageProcessingSetting = ({ type }: { type: ImageProcessingType }) => { const { t } = useLingui(); @@ -57,7 +58,7 @@ export const ImageProcessingSetting = ({ type }: { type: ImageProcessingType }) tmpConversions, ); - const updateSetting = (value: ServerSettings[typeof settingKey]): Promise => { + const updateSetting = (value: PartialSettingsType[typeof settingKey]): Promise => { const mutation = mutateSettings({ variables: { input: { settings: { [settingKey]: value } } } }); mutation.catch((e) => makeToast(t`Failed to save changes`, 'error', getErrorMessage(e))); diff --git a/src/features/settings/screens/ServerSettings.tsx b/src/features/settings/screens/ServerSettings.tsx index f832596b..47872bf0 100644 --- a/src/features/settings/screens/ServerSettings.tsx +++ b/src/features/settings/screens/ServerSettings.tsx @@ -31,7 +31,7 @@ import { makeToast } from '@/base/utils/Toast.ts'; import type { MetadataUpdateSettings } from '@/features/app-updates/AppUpdateChecker.types.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { useAppTitle } from '@/features/navigation-bar/hooks/useAppTitle.ts'; -import { AuthMode, CbzMediaType, DatabaseType, SortOrder } from '@/lib/graphql/generated/graphql'; +import { AuthMode, CbzMediaType, DatabaseType, SortOrder } from '@/lib/graphql/generated/graphql-base.types.ts'; import { AUTH_MODES_SELECT_VALUES, JWT_ACCESS_TOKEN_EXPIRY, diff --git a/src/features/settings/screens/WebUISettings.tsx b/src/features/settings/screens/WebUISettings.tsx index 3e64c4d0..51e1222e 100644 --- a/src/features/settings/screens/WebUISettings.tsx +++ b/src/features/settings/screens/WebUISettings.tsx @@ -15,8 +15,8 @@ import { requestManager } from '@/lib/requests/RequestManager.ts'; import { WebUIUpdateIntervalSetting } from '@/features/settings/components/webUI/WebUIUpdateIntervalSetting.tsx'; import { TextSetting } from '@/base/components/settings/text/TextSetting.tsx'; import { SelectSetting } from '@/base/components/settings/SelectSetting.tsx'; -import type { WebUiChannel, WebUiInterface } from '@/lib/graphql/generated/graphql.ts'; -import { WebUiFlavor } from '@/lib/graphql/generated/graphql.ts'; +import type { WebUiChannel, WebUiInterface } from '@/lib/graphql/generated/graphql-base.types.ts'; +import { WebUiFlavor } from '@/lib/graphql/generated/graphql-base.types.ts'; import { LoadingPlaceholder } from '@/base/components/feedback/LoadingPlaceholder.tsx'; import { EmptyViewAbsoluteCentered } from '@/base/components/feedback/EmptyViewAbsoluteCentered.tsx'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; diff --git a/src/features/source/Source.types.ts b/src/features/source/Source.types.ts index 38d0978a..b81a5315 100644 --- a/src/features/source/Source.types.ts +++ b/src/features/source/Source.types.ts @@ -7,13 +7,15 @@ */ import type { - ExtensionType, GetSourceBrowseQuery, GetSourceSettingsQuery, SourceMetaFieldsFragment, +} from '@/lib/graphql/generated/graphql.ts'; +import type { + ExtensionType, SourcePreferenceChangeInput, SourceType, -} from '@/lib/graphql/generated/graphql.ts'; +} from '@/lib/graphql/generated/graphql-base.types.ts'; export interface IPos { type: 'selectState' | 'textState' | 'checkBoxState' | 'triState' | 'sortState'; @@ -44,10 +46,10 @@ export interface PreferenceProps { } export type CheckBoxPreferenceProps = PreferenceProps & - ExtractByKeyValue; + ExtractByKeyValue; export type SwitchPreferenceCompatProps = PreferenceProps & - ExtractByKeyValue; + ExtractByKeyValue; export type TwoStatePreferenceProps = (CheckBoxPreferenceProps | SwitchPreferenceCompatProps) & { // intetnal props @@ -55,13 +57,13 @@ export type TwoStatePreferenceProps = (CheckBoxPreferenceProps | SwitchPreferenc }; export type ListPreferenceProps = PreferenceProps & - ExtractByKeyValue; + Omit, '__typename'>; export type MultiSelectListPreferenceProps = PreferenceProps & - ExtractByKeyValue; + Omit, '__typename'>; export type EditTextPreferenceProps = PreferenceProps & - ExtractByKeyValue; + Omit, '__typename'>; export type SourceIdInfo = Pick; export type SourceLanguageInfo = Pick; diff --git a/src/features/source/browse/components/filters/GroupFilter.tsx b/src/features/source/browse/components/filters/GroupFilter.tsx index e496d3af..9335dd8d 100644 --- a/src/features/source/browse/components/filters/GroupFilter.tsx +++ b/src/features/source/browse/components/filters/GroupFilter.tsx @@ -19,7 +19,7 @@ import { Options } from '@/features/source/browse/components/SourceOptions.tsx'; import type { IPos, SourceFilters } from '@/features/source/Source.types.ts'; interface Props { - state: ExtractByKeyValue['filters']; + state: ExtractByKeyValue['filters']; name: string; position: number; updateFilterValue: (value: IPos[]) => void; diff --git a/src/features/source/browse/components/filters/SortFilter.tsx b/src/features/source/browse/components/filters/SortFilter.tsx index 5687b3ec..74b9189e 100644 --- a/src/features/source/browse/components/filters/SortFilter.tsx +++ b/src/features/source/browse/components/filters/SortFilter.tsx @@ -15,7 +15,7 @@ import Stack from '@mui/material/Stack'; import Box from '@mui/material/Box'; import React from 'react'; import { SortRadioInput } from '@/base/components/inputs/SortRadioInput.tsx'; -import type { SortSelectionInput } from '@/lib/graphql/generated/graphql.ts'; +import type { SortSelectionInput } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { IPos } from '@/features/source/Source.types.ts'; interface Props { diff --git a/src/features/source/browse/components/filters/TriStateFilter.tsx b/src/features/source/browse/components/filters/TriStateFilter.tsx index 34a91dbc..4f1c0d1c 100644 --- a/src/features/source/browse/components/filters/TriStateFilter.tsx +++ b/src/features/source/browse/components/filters/TriStateFilter.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { ThreeStateCheckboxInput } from '@/base/components/inputs/ThreeStateCheckboxInput.tsx'; -import { TriState } from '@/lib/graphql/generated/graphql.ts'; +import { TriState } from '@/lib/graphql/generated/graphql-base.types.ts'; import type { IPos } from '@/features/source/Source.types.ts'; interface Props { diff --git a/src/features/source/browse/screens/SourceMangas.tsx b/src/features/source/browse/screens/SourceMangas.tsx index 4e4c4bb4..efd572b0 100644 --- a/src/features/source/browse/screens/SourceMangas.tsx +++ b/src/features/source/browse/screens/SourceMangas.tsx @@ -191,8 +191,10 @@ const useSourceManga = ( { ...pages[pages.length - 1], data: { + __typename: 'Mutation', ...lastLoadedPage!.data, fetchSourceManga: { + __typename: 'FetchSourceMangaPayload', ...lastLoadedPage!.data!.fetchSourceManga, hasNextPage: pages.length > lastLoadedPageIndex + 1 diff --git a/src/features/tracker/Tracker.types.ts b/src/features/tracker/Tracker.types.ts index 499a5020..3835a20b 100644 --- a/src/features/tracker/Tracker.types.ts +++ b/src/features/tracker/Tracker.types.ts @@ -6,12 +6,8 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { - TrackerType, - TrackRecordSearchFieldsFragment, - TrackRecordType, - TrackSearchType, -} from '@/lib/graphql/generated/graphql.ts'; +import type { TrackerType, TrackRecordType, TrackSearchType } from '@/lib/graphql/generated/graphql-base.types.ts'; +import type { TrackRecordSearchFieldsFragment } from '@/lib/graphql/generated/graphql.ts'; export type MetadataTrackingSettings = { updateProgressAfterReading: boolean; diff --git a/src/features/tracker/components/TrackManga.tsx b/src/features/tracker/components/TrackManga.tsx index 9133f10b..2c93ca6b 100644 --- a/src/features/tracker/components/TrackManga.tsx +++ b/src/features/tracker/components/TrackManga.tsx @@ -17,10 +17,10 @@ import { Trackers } from '@/features/tracker/services/Trackers.ts'; import { TrackerCard, TrackerMode } from '@/features/tracker/components/cards/TrackerCard.tsx'; import { makeToast } from '@/base/utils/Toast.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; -import type { GetMangaTrackRecordsQuery, GetTrackersBindQuery, MangaType } from '@/lib/graphql/generated/graphql.ts'; +import type { GetMangaTrackRecordsQuery, GetTrackersBindQuery } from '@/lib/graphql/generated/graphql.ts'; import { GET_TRACKERS_BIND } from '@/lib/graphql/tracker/TrackerQuery.ts'; import { GET_MANGA_TRACK_RECORDS } from '@/lib/graphql/manga/MangaQuery.ts'; -import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; +import type { MangaIdInfo, MangaTitleInfo } from '@/features/manga/Manga.types.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { EmptyView } from '@/base/components/feedback/EmptyView.tsx'; @@ -38,7 +38,7 @@ const getTrackerMode = (id: number, trackersInUse: number[], searchModeForTracke return TrackerMode.UNTRACKED; }; -export const TrackManga = ({ manga }: { manga: MangaIdInfo & Pick }) => { +export const TrackManga = ({ manga }: { manga: MangaIdInfo & MangaTitleInfo }) => { const { t } = useLingui(); const navigate = useNavigate(); diff --git a/src/features/tracker/components/TrackerSearch.tsx b/src/features/tracker/components/TrackerSearch.tsx index 10904c43..4f1cb169 100644 --- a/src/features/tracker/components/TrackerSearch.tsx +++ b/src/features/tracker/components/TrackerSearch.tsx @@ -31,8 +31,7 @@ import { TrackerMangaCard } from '@/features/tracker/components/cards/TrackerMan import { DIALOG_PADDING } from '@/features/tracker/Tracker.constants.ts'; import { useGetOptionForDirection } from '@/features/theme/services/ThemeCreator.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; -import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; +import type { MangaIdInfo, MangaTitleInfo } from '@/features/manga/Manga.types.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { applyStyles } from '@/base/utils/ApplyStyles.ts'; @@ -119,7 +118,7 @@ export const TrackerSearch = ({ trackedId, trackedTitle, }: { - manga: MangaIdInfo & Pick; + manga: MangaIdInfo & MangaTitleInfo; tracker: TTrackerBind; closeSearchMode: () => void; trackedId?: string; diff --git a/src/features/tracker/components/cards/TrackerActiveCard.tsx b/src/features/tracker/components/cards/TrackerActiveCard.tsx index a9cedd73..afb1a90f 100644 --- a/src/features/tracker/components/cards/TrackerActiveCard.tsx +++ b/src/features/tracker/components/cards/TrackerActiveCard.tsx @@ -41,7 +41,7 @@ import { TypographyMaxLines } from '@/base/components/texts/TypographyMaxLines.t import type { SelectSettingValue } from '@/base/components/settings/SelectSetting.tsx'; import { SelectSetting } from '@/base/components/settings/SelectSetting.tsx'; import { CheckboxInput } from '@/base/components/inputs/CheckboxInput.tsx'; -import type { TrackRecordType } from '@/lib/graphql/generated/graphql.ts'; +import type { TrackRecordType } from '@/lib/graphql/generated/graphql-base.types.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import type { TTrackerBind, TTrackRecordBind } from '@/features/tracker/Tracker.types.ts'; import { AvatarSpinner } from '@/base/components/AvatarSpinner.tsx'; @@ -317,6 +317,7 @@ export const TrackerActiveCard = ({ type="ListPreference" entryValues={tracker.statuses.map((status) => `${status.value}`)} ListPreferenceCurrentValue={`${trackRecord.status}`} + ListPreferenceDefault={null} updateValue={(_, status) => updateTrackerBind({ status: Number(status) })} summary="%s" /> diff --git a/src/features/tracker/components/cards/TrackerCard.tsx b/src/features/tracker/components/cards/TrackerCard.tsx index 14bb0423..0fcb6dd2 100644 --- a/src/features/tracker/components/cards/TrackerCard.tsx +++ b/src/features/tracker/components/cards/TrackerCard.tsx @@ -9,9 +9,8 @@ import { TrackerUntrackedCard } from '@/features/tracker/components/cards/TrackerUntrackedCard.tsx'; import { TrackerSearch } from '@/features/tracker/components/TrackerSearch.tsx'; import { TrackerActiveCard } from '@/features/tracker/components/cards/TrackerActiveCard.tsx'; -import type { MangaType } from '@/lib/graphql/generated/graphql.ts'; -import type { MangaIdInfo } from '@/features/manga/Manga.types.ts'; +import type { MangaIdInfo, MangaTitleInfo } from '@/features/manga/Manga.types.ts'; import type { TTrackerBind, TTrackRecordBind } from '@/features/tracker/Tracker.types.ts'; export enum TrackerMode { @@ -28,7 +27,7 @@ export const TrackerCard = ({ setSearchMode, }: { tracker: TTrackerBind; - manga: MangaIdInfo & Pick; + manga: MangaIdInfo & MangaTitleInfo; trackRecord?: TTrackRecordBind; mode: TrackerMode; setSearchMode: (id?: number) => void; diff --git a/src/lib/graphql/generated/graphql-base.types.ts b/src/lib/graphql/generated/graphql-base.types.ts new file mode 100644 index 00000000..8f452bae --- /dev/null +++ b/src/lib/graphql/generated/graphql-base.types.ts @@ -0,0 +1,3438 @@ +export type Maybe = T | null; +export type InputMaybe = Maybe; +/** 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; } + Cursor: { input: string; output: string; } + Duration: { input: string; output: string; } + LongString: { input: string; output: string; } + Upload: { input: unknown; output: unknown; } +}; + +export type AboutServerPayload = { + __typename?: 'AboutServerPayload'; + buildTime: Scalars['LongString']['output']; + buildType: Scalars['String']['output']; + discord: Scalars['String']['output']; + github: Scalars['String']['output']; + name: Scalars['String']['output']; + /** @deprecated The version includes the revision as the patch number */ + revision: Scalars['String']['output']; + version: Scalars['String']['output']; +}; + +export type AboutWebUi = { + __typename?: 'AboutWebUI'; + channel: WebUiChannel; + tag: Scalars['String']['output']; + updateTimestamp: Scalars['LongString']['output']; +}; + +export enum AuthMode { + BasicAuth = 'BASIC_AUTH', + None = 'NONE', + SimpleLogin = 'SIMPLE_LOGIN', + UiLogin = 'UI_LOGIN' +} + +export enum BackupRestoreState { + Failure = 'FAILURE', + Idle = 'IDLE', + RestoringCategories = 'RESTORING_CATEGORIES', + RestoringManga = 'RESTORING_MANGA', + RestoringMeta = 'RESTORING_META', + RestoringSettings = 'RESTORING_SETTINGS', + Success = 'SUCCESS' +} + +export type BackupRestoreStatus = { + __typename?: 'BackupRestoreStatus'; + mangaProgress: Scalars['Int']['output']; + state: BackupRestoreState; + totalManga: Scalars['Int']['output']; +}; + +export type BindTrackInput = { + clientMutationId?: InputMaybe; + mangaId: Scalars['Int']['input']; + /** This will only work if the tracker of the track record supports private tracking */ + private?: InputMaybe; + remoteId: Scalars['LongString']['input']; + trackerId: Scalars['Int']['input']; +}; + +export type BindTrackPayload = { + __typename?: 'BindTrackPayload'; + clientMutationId?: Maybe; + trackRecord: TrackRecordType; +}; + +export type BooleanFilterInput = { + distinctFrom?: InputMaybe; + distinctFromAll?: InputMaybe>; + distinctFromAny?: InputMaybe>; + equalTo?: InputMaybe; + greaterThan?: InputMaybe; + greaterThanOrEqualTo?: InputMaybe; + in?: InputMaybe>; + isNull?: InputMaybe; + lessThan?: InputMaybe; + lessThanOrEqualTo?: InputMaybe; + notDistinctFrom?: InputMaybe; + notEqualTo?: InputMaybe; + notEqualToAll?: InputMaybe>; + notEqualToAny?: InputMaybe>; + notIn?: InputMaybe>; +}; + +export type CategoryConditionInput = { + default?: InputMaybe; + id?: InputMaybe; + name?: InputMaybe; + order?: InputMaybe; +}; + +export type CategoryEdge = Edge & { + __typename?: 'CategoryEdge'; + cursor: Scalars['Cursor']['output']; + node: CategoryType; +}; + +export type CategoryFilterInput = { + and?: InputMaybe>; + default?: InputMaybe; + id?: InputMaybe; + name?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>; + order?: InputMaybe; +}; + +export enum CategoryJobStatus { + Skipped = 'SKIPPED', + Updating = 'UPDATING' +} + +export type CategoryMetaType = MetaType & { + __typename?: 'CategoryMetaType'; + category: CategoryType; + categoryId: Scalars['Int']['output']; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type CategoryMetaTypeInput = { + categoryId: Scalars['Int']['input']; + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type CategoryNodeList = NodeList & { + __typename?: 'CategoryNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum CategoryOrderBy { + Id = 'ID', + Name = 'NAME', + Order = 'ORDER' +} + +export type CategoryOrderInput = { + by: CategoryOrderBy; + byType?: InputMaybe; +}; + +export type CategoryType = { + __typename?: 'CategoryType'; + default: Scalars['Boolean']['output']; + id: Scalars['Int']['output']; + includeInDownload: IncludeOrExclude; + includeInUpdate: IncludeOrExclude; + mangas: MangaNodeList; + meta: Array; + name: Scalars['String']['output']; + order: Scalars['Int']['output']; +}; + +export type CategoryUpdateType = { + __typename?: 'CategoryUpdateType'; + category: CategoryType; + status: CategoryJobStatus; +}; + +export enum CbzMediaType { + Compatible = 'COMPATIBLE', + Legacy = 'LEGACY', + Modern = 'MODERN' +} + +export type ChapterConditionInput = { + chapterNumber?: InputMaybe; + fetchedAt?: InputMaybe; + id?: InputMaybe; + isBookmarked?: InputMaybe; + isDownloaded?: InputMaybe; + isRead?: InputMaybe; + lastPageRead?: InputMaybe; + lastReadAt?: InputMaybe; + mangaId?: InputMaybe; + name?: InputMaybe; + pageCount?: InputMaybe; + realUrl?: InputMaybe; + scanlator?: InputMaybe; + sourceOrder?: InputMaybe; + uploadDate?: InputMaybe; + url?: InputMaybe; +}; + +export type ChapterEdge = Edge & { + __typename?: 'ChapterEdge'; + cursor: Scalars['Cursor']['output']; + node: ChapterType; +}; + +export type ChapterFilterInput = { + and?: InputMaybe>; + chapterNumber?: InputMaybe; + fetchedAt?: InputMaybe; + id?: InputMaybe; + inLibrary?: InputMaybe; + isBookmarked?: InputMaybe; + isDownloaded?: InputMaybe; + isRead?: InputMaybe; + lastPageRead?: InputMaybe; + lastReadAt?: InputMaybe; + mangaId?: InputMaybe; + name?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>; + pageCount?: InputMaybe; + realUrl?: InputMaybe; + scanlator?: InputMaybe; + sourceOrder?: InputMaybe; + uploadDate?: InputMaybe; + url?: InputMaybe; +}; + +export type ChapterMetaType = MetaType & { + __typename?: 'ChapterMetaType'; + chapter: ChapterType; + chapterId: Scalars['Int']['output']; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type ChapterMetaTypeInput = { + chapterId: Scalars['Int']['input']; + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type ChapterNodeList = NodeList & { + __typename?: 'ChapterNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum ChapterOrderBy { + ChapterNumber = 'CHAPTER_NUMBER', + FetchedAt = 'FETCHED_AT', + Id = 'ID', + LastReadAt = 'LAST_READ_AT', + Name = 'NAME', + SourceOrder = 'SOURCE_ORDER', + UploadDate = 'UPLOAD_DATE' +} + +export type ChapterOrderInput = { + by: ChapterOrderBy; + byType?: InputMaybe; +}; + +export type ChapterType = { + __typename?: 'ChapterType'; + chapterNumber: Scalars['Float']['output']; + fetchedAt: Scalars['LongString']['output']; + id: Scalars['Int']['output']; + isBookmarked: Scalars['Boolean']['output']; + isDownloaded: Scalars['Boolean']['output']; + isRead: Scalars['Boolean']['output']; + lastPageRead: Scalars['Int']['output']; + lastReadAt: Scalars['LongString']['output']; + manga: MangaType; + mangaId: Scalars['Int']['output']; + meta: Array; + name: Scalars['String']['output']; + pageCount: Scalars['Int']['output']; + realUrl?: Maybe; + scanlator?: Maybe; + sourceOrder: Scalars['Int']['output']; + uploadDate: Scalars['LongString']['output']; + url: Scalars['String']['output']; +}; + +export type CheckBoxFilter = { + __typename?: 'CheckBoxFilter'; + default: Scalars['Boolean']['output']; + name: Scalars['String']['output']; +}; + +export type CheckBoxPreference = { + __typename?: 'CheckBoxPreference'; + currentValue?: Maybe; + default: Scalars['Boolean']['output']; + enabled: Scalars['Boolean']['output']; + key?: Maybe; + summary?: Maybe; + title?: Maybe; + visible: Scalars['Boolean']['output']; +}; + +export type CheckForServerUpdatesPayload = { + __typename?: 'CheckForServerUpdatesPayload'; + channel: Scalars['String']['output']; + tag: Scalars['String']['output']; + url: Scalars['String']['output']; +}; + +export type ClearCachedImagesInput = { + cachedPages?: InputMaybe; + cachedThumbnails?: InputMaybe; + clientMutationId?: InputMaybe; + downloadedThumbnails?: InputMaybe; +}; + +export type ClearCachedImagesPayload = { + __typename?: 'ClearCachedImagesPayload'; + cachedPages?: Maybe; + cachedThumbnails?: Maybe; + clientMutationId?: Maybe; + downloadedThumbnails?: Maybe; +}; + +export type ClearDownloaderInput = { + clientMutationId?: InputMaybe; +}; + +export type ClearDownloaderPayload = { + __typename?: 'ClearDownloaderPayload'; + clientMutationId?: Maybe; + downloadStatus: DownloadStatus; +}; + +export type ConnectKoSyncAccountInput = { + clientMutationId?: InputMaybe; + password: Scalars['String']['input']; + serverAddress: Scalars['String']['input']; + username: Scalars['String']['input']; +}; + +export type CreateBackupInput = { + clientMutationId?: InputMaybe; + flags?: InputMaybe; +}; + +export type CreateBackupPayload = { + __typename?: 'CreateBackupPayload'; + clientMutationId?: Maybe; + url: Scalars['String']['output']; +}; + +export type CreateCategoryInput = { + clientMutationId?: InputMaybe; + default?: InputMaybe; + includeInDownload?: InputMaybe; + includeInUpdate?: InputMaybe; + name: Scalars['String']['input']; + order?: InputMaybe; +}; + +export type CreateCategoryPayload = { + __typename?: 'CreateCategoryPayload'; + category: CategoryType; + clientMutationId?: Maybe; +}; + +export enum DatabaseType { + H2 = 'H2', + Postgresql = 'POSTGRESQL' +} + +export type DeleteCategoryInput = { + categoryId: Scalars['Int']['input']; + clientMutationId?: InputMaybe; +}; + +export type DeleteCategoryMetaInput = { + categoryId: Scalars['Int']['input']; + clientMutationId?: InputMaybe; + key: Scalars['String']['input']; +}; + +export type DeleteCategoryMetaPayload = { + __typename?: 'DeleteCategoryMetaPayload'; + category: CategoryType; + clientMutationId?: Maybe; + meta?: Maybe; +}; + +export type DeleteCategoryMetasInput = { + clientMutationId?: InputMaybe; + items: Array; +}; + +export type DeleteCategoryMetasItemInput = { + categoryIds: Array; + keys?: InputMaybe>; + prefixes?: InputMaybe>; +}; + +export type DeleteCategoryMetasPayload = { + __typename?: 'DeleteCategoryMetasPayload'; + categories: Array; + clientMutationId?: Maybe; + metas: Array; +}; + +export type DeleteCategoryPayload = { + __typename?: 'DeleteCategoryPayload'; + category?: Maybe; + clientMutationId?: Maybe; + mangas: Array; +}; + +export type DeleteChapterMetaInput = { + chapterId: Scalars['Int']['input']; + clientMutationId?: InputMaybe; + key: Scalars['String']['input']; +}; + +export type DeleteChapterMetaPayload = { + __typename?: 'DeleteChapterMetaPayload'; + chapter: ChapterType; + clientMutationId?: Maybe; + meta?: Maybe; +}; + +export type DeleteChapterMetasInput = { + clientMutationId?: InputMaybe; + items: Array; +}; + +export type DeleteChapterMetasItemInput = { + chapterIds: Array; + keys?: InputMaybe>; + prefixes?: InputMaybe>; +}; + +export type DeleteChapterMetasPayload = { + __typename?: 'DeleteChapterMetasPayload'; + chapters: Array; + clientMutationId?: Maybe; + metas: Array; +}; + +export type DeleteDownloadedChapterInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; +}; + +export type DeleteDownloadedChapterPayload = { + __typename?: 'DeleteDownloadedChapterPayload'; + chapters: ChapterType; + clientMutationId?: Maybe; +}; + +export type DeleteDownloadedChaptersInput = { + clientMutationId?: InputMaybe; + ids: Array; +}; + +export type DeleteDownloadedChaptersPayload = { + __typename?: 'DeleteDownloadedChaptersPayload'; + chapters: Array; + clientMutationId?: Maybe; +}; + +export type DeleteGlobalMetaInput = { + clientMutationId?: InputMaybe; + key: Scalars['String']['input']; +}; + +export type DeleteGlobalMetaPayload = { + __typename?: 'DeleteGlobalMetaPayload'; + clientMutationId?: Maybe; + meta?: Maybe; +}; + +export type DeleteGlobalMetasInput = { + clientMutationId?: InputMaybe; + keys?: InputMaybe>; + prefixes?: InputMaybe>; +}; + +export type DeleteGlobalMetasPayload = { + __typename?: 'DeleteGlobalMetasPayload'; + clientMutationId?: Maybe; + metas: Array; +}; + +export type DeleteMangaMetaInput = { + clientMutationId?: InputMaybe; + key: Scalars['String']['input']; + mangaId: Scalars['Int']['input']; +}; + +export type DeleteMangaMetaPayload = { + __typename?: 'DeleteMangaMetaPayload'; + clientMutationId?: Maybe; + manga: MangaType; + meta?: Maybe; +}; + +export type DeleteMangaMetasInput = { + clientMutationId?: InputMaybe; + items: Array; +}; + +export type DeleteMangaMetasItemInput = { + keys?: InputMaybe>; + mangaIds: Array; + prefixes?: InputMaybe>; +}; + +export type DeleteMangaMetasPayload = { + __typename?: 'DeleteMangaMetasPayload'; + clientMutationId?: Maybe; + mangas: Array; + metas: Array; +}; + +export type DeleteSourceMetaInput = { + clientMutationId?: InputMaybe; + key: Scalars['String']['input']; + sourceId: Scalars['LongString']['input']; +}; + +export type DeleteSourceMetaPayload = { + __typename?: 'DeleteSourceMetaPayload'; + clientMutationId?: Maybe; + meta?: Maybe; + source?: Maybe; +}; + +export type DeleteSourceMetasInput = { + clientMutationId?: InputMaybe; + items: Array; +}; + +export type DeleteSourceMetasItemInput = { + keys?: InputMaybe>; + prefixes?: InputMaybe>; + sourceIds: Array; +}; + +export type DeleteSourceMetasPayload = { + __typename?: 'DeleteSourceMetasPayload'; + clientMutationId?: Maybe; + metas: Array; + sources: Array; +}; + +export type DequeueChapterDownloadInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; +}; + +export type DequeueChapterDownloadPayload = { + __typename?: 'DequeueChapterDownloadPayload'; + clientMutationId?: Maybe; + downloadStatus: DownloadStatus; +}; + +export type DequeueChapterDownloadsInput = { + clientMutationId?: InputMaybe; + ids: Array; +}; + +export type DequeueChapterDownloadsPayload = { + __typename?: 'DequeueChapterDownloadsPayload'; + clientMutationId?: Maybe; + downloadStatus: DownloadStatus; +}; + +export type DoubleFilterInput = { + distinctFrom?: InputMaybe; + distinctFromAll?: InputMaybe>; + distinctFromAny?: InputMaybe>; + equalTo?: InputMaybe; + greaterThan?: InputMaybe; + greaterThanOrEqualTo?: InputMaybe; + in?: InputMaybe>; + isNull?: InputMaybe; + lessThan?: InputMaybe; + lessThanOrEqualTo?: InputMaybe; + notDistinctFrom?: InputMaybe; + notEqualTo?: InputMaybe; + notEqualToAll?: InputMaybe>; + notEqualToAny?: InputMaybe>; + notIn?: InputMaybe>; +}; + +export type DownloadChangedInput = { + /** Sets a max number of updates that can be contained in a download update message.Everything above this limit will be omitted and the "downloadStatus" should be re-fetched via the corresponding query. Due to the graphql subscription execution strategy not supporting batching for data loaders, the data loaders run into the n+1 problem, which can cause the server to get unresponsive until the status update has been handled. This is an issue e.g. when mass en- or dequeuing downloads. */ + maxUpdates?: InputMaybe; +}; + +export type DownloadEdge = Edge & { + __typename?: 'DownloadEdge'; + cursor: Scalars['Cursor']['output']; + node: DownloadType; +}; + +export type DownloadNodeList = NodeList & { + __typename?: 'DownloadNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum DownloadState { + Downloading = 'DOWNLOADING', + Error = 'ERROR', + Finished = 'FINISHED', + Queued = 'QUEUED' +} + +export type DownloadStatus = { + __typename?: 'DownloadStatus'; + queue: Array; + state: DownloaderState; +}; + +export type DownloadType = { + __typename?: 'DownloadType'; + chapter: ChapterType; + manga: MangaType; + position: Scalars['Int']['output']; + progress: Scalars['Float']['output']; + state: DownloadState; + tries: Scalars['Int']['output']; +}; + +export type DownloadUpdate = { + __typename?: 'DownloadUpdate'; + download: DownloadType; + type: DownloadUpdateType; +}; + +export enum DownloadUpdateType { + Dequeued = 'DEQUEUED', + Error = 'ERROR', + Finished = 'FINISHED', + Paused = 'PAUSED', + Position = 'POSITION', + Progress = 'PROGRESS', + Queued = 'QUEUED', + Stopped = 'STOPPED' +} + +export type DownloadUpdates = { + __typename?: 'DownloadUpdates'; + /** The current download queue at the time of sending initial message. Is null for all following messages */ + initial?: Maybe>; + /** Indicates whether updates have been omitted based on the "maxUpdates" subscription variable. In case updates have been omitted, the "downloadStatus" query should be re-fetched. */ + omittedUpdates: Scalars['Boolean']['output']; + state: DownloaderState; + updates: Array; +}; + +export enum DownloaderState { + Started = 'STARTED', + Stopped = 'STOPPED' +} + +export type Edge = { + /** A cursor for use in pagination. */ + cursor: Scalars['Cursor']['output']; + /** The [T] at the end of the edge. */ + node: Node; +}; + +export type EditTextPreference = { + __typename?: 'EditTextPreference'; + currentValue?: Maybe; + default?: Maybe; + dialogMessage?: Maybe; + dialogTitle?: Maybe; + enabled: Scalars['Boolean']['output']; + key?: Maybe; + summary?: Maybe; + text?: Maybe; + title?: Maybe; + visible: Scalars['Boolean']['output']; +}; + +export type EnqueueChapterDownloadInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; +}; + +export type EnqueueChapterDownloadPayload = { + __typename?: 'EnqueueChapterDownloadPayload'; + clientMutationId?: Maybe; + downloadStatus: DownloadStatus; +}; + +export type EnqueueChapterDownloadsInput = { + clientMutationId?: InputMaybe; + ids: Array; +}; + +export type EnqueueChapterDownloadsPayload = { + __typename?: 'EnqueueChapterDownloadsPayload'; + clientMutationId?: Maybe; + downloadStatus: DownloadStatus; +}; + +export type ExtensionConditionInput = { + apkName?: InputMaybe; + hasUpdate?: InputMaybe; + iconUrl?: InputMaybe; + isInstalled?: InputMaybe; + isNsfw?: InputMaybe; + isObsolete?: InputMaybe; + lang?: InputMaybe; + name?: InputMaybe; + pkgName?: InputMaybe; + repo?: InputMaybe; + versionCode?: InputMaybe; + versionName?: InputMaybe; +}; + +export type ExtensionEdge = Edge & { + __typename?: 'ExtensionEdge'; + cursor: Scalars['Cursor']['output']; + node: ExtensionType; +}; + +export type ExtensionFilterInput = { + and?: InputMaybe>; + apkName?: InputMaybe; + hasUpdate?: InputMaybe; + iconUrl?: InputMaybe; + isInstalled?: InputMaybe; + isNsfw?: InputMaybe; + isObsolete?: InputMaybe; + lang?: InputMaybe; + name?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>; + pkgName?: InputMaybe; + repo?: InputMaybe; + versionCode?: InputMaybe; + versionName?: InputMaybe; +}; + +export type ExtensionNodeList = NodeList & { + __typename?: 'ExtensionNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum ExtensionOrderBy { + ApkName = 'APK_NAME', + Name = 'NAME', + PkgName = 'PKG_NAME' +} + +export type ExtensionOrderInput = { + by: ExtensionOrderBy; + byType?: InputMaybe; +}; + +export type ExtensionType = { + __typename?: 'ExtensionType'; + apkName: Scalars['String']['output']; + hasUpdate: Scalars['Boolean']['output']; + iconUrl: Scalars['String']['output']; + isInstalled: Scalars['Boolean']['output']; + isNsfw: Scalars['Boolean']['output']; + isObsolete: Scalars['Boolean']['output']; + lang: Scalars['String']['output']; + name: Scalars['String']['output']; + pkgName: Scalars['String']['output']; + repo?: Maybe; + source: SourceNodeList; + versionCode: Scalars['Int']['output']; + versionName: Scalars['String']['output']; +}; + +export type FetchChapterPagesInput = { + chapterId: Scalars['Int']['input']; + clientMutationId?: InputMaybe; + format?: InputMaybe; +}; + +export type FetchChapterPagesPayload = { + __typename?: 'FetchChapterPagesPayload'; + chapter: ChapterType; + clientMutationId?: Maybe; + pages: Array; + syncConflict?: Maybe; +}; + +export type FetchChaptersInput = { + clientMutationId?: InputMaybe; + mangaId: Scalars['Int']['input']; +}; + +export type FetchChaptersPayload = { + __typename?: 'FetchChaptersPayload'; + chapters: Array; + clientMutationId?: Maybe; +}; + +export type FetchExtensionsInput = { + clientMutationId?: InputMaybe; +}; + +export type FetchExtensionsPayload = { + __typename?: 'FetchExtensionsPayload'; + clientMutationId?: Maybe; + extensions: Array; +}; + +export type FetchMangaInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; +}; + +export type FetchMangaPayload = { + __typename?: 'FetchMangaPayload'; + clientMutationId?: Maybe; + manga: MangaType; +}; + +export type FetchSourceMangaInput = { + clientMutationId?: InputMaybe; + filters?: InputMaybe>; + page: Scalars['Int']['input']; + query?: InputMaybe; + source: Scalars['LongString']['input']; + type: FetchSourceMangaType; +}; + +export type FetchSourceMangaPayload = { + __typename?: 'FetchSourceMangaPayload'; + clientMutationId?: Maybe; + hasNextPage: Scalars['Boolean']['output']; + mangas: Array; +}; + +export enum FetchSourceMangaType { + Latest = 'LATEST', + Popular = 'POPULAR', + Search = 'SEARCH' +} + +export type FetchTrackInput = { + clientMutationId?: InputMaybe; + recordId: Scalars['Int']['input']; +}; + +export type FetchTrackPayload = { + __typename?: 'FetchTrackPayload'; + clientMutationId?: Maybe; + trackRecord: TrackRecordType; +}; + +export type Filter = CheckBoxFilter | GroupFilter | HeaderFilter | SelectFilter | SeparatorFilter | SortFilter | TextFilter | TriStateFilter; + +export type FilterChangeInput = { + checkBoxState?: InputMaybe; + groupChange?: InputMaybe; + position: Scalars['Int']['input']; + selectState?: InputMaybe; + sortState?: InputMaybe; + textState?: InputMaybe; + triState?: InputMaybe; +}; + +export type GlobalMetaNodeList = NodeList & { + __typename?: 'GlobalMetaNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type GlobalMetaType = MetaType & { + __typename?: 'GlobalMetaType'; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type GlobalMetaTypeInput = { + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type GroupFilter = { + __typename?: 'GroupFilter'; + filters: Array; + name: Scalars['String']['output']; +}; + +export type HeaderFilter = { + __typename?: 'HeaderFilter'; + name: Scalars['String']['output']; +}; + +export enum IncludeOrExclude { + Exclude = 'EXCLUDE', + Include = 'INCLUDE', + Unset = 'UNSET' +} + +export type InstallExternalExtensionInput = { + clientMutationId?: InputMaybe; + extensionFile: Scalars['Upload']['input']; +}; + +export type InstallExternalExtensionPayload = { + __typename?: 'InstallExternalExtensionPayload'; + clientMutationId?: Maybe; + extension: ExtensionType; +}; + +export type IntFilterInput = { + distinctFrom?: InputMaybe; + distinctFromAll?: InputMaybe>; + distinctFromAny?: InputMaybe>; + equalTo?: InputMaybe; + greaterThan?: InputMaybe; + greaterThanOrEqualTo?: InputMaybe; + in?: InputMaybe>; + isNull?: InputMaybe; + lessThan?: InputMaybe; + lessThanOrEqualTo?: InputMaybe; + notDistinctFrom?: InputMaybe; + notEqualTo?: InputMaybe; + notEqualToAll?: InputMaybe>; + notEqualToAny?: InputMaybe>; + notIn?: InputMaybe>; +}; + +export type KoSyncConnectPayload = { + __typename?: 'KoSyncConnectPayload'; + clientMutationId?: Maybe; + message?: Maybe; + status: KoSyncStatusPayload; +}; + +export type KoSyncStatusPayload = { + __typename?: 'KoSyncStatusPayload'; + isLoggedIn: Scalars['Boolean']['output']; + serverAddress?: Maybe; + username?: Maybe; +}; + +export enum KoreaderSyncChecksumMethod { + Binary = 'BINARY', + Filename = 'FILENAME' +} + +export enum KoreaderSyncConflictStrategy { + Disabled = 'DISABLED', + KeepLocal = 'KEEP_LOCAL', + KeepRemote = 'KEEP_REMOTE', + Prompt = 'PROMPT' +} + +export enum KoreaderSyncLegacyStrategy { + Disabled = 'DISABLED', + Prompt = 'PROMPT', + Receive = 'RECEIVE', + Send = 'SEND', + Silent = 'SILENT' +} + +export type LastUpdateTimestampPayload = { + __typename?: 'LastUpdateTimestampPayload'; + timestamp: Scalars['LongString']['output']; +}; + +export type LibraryUpdateStatus = { + __typename?: 'LibraryUpdateStatus'; + categoryUpdates: Array; + jobsInfo: UpdaterJobsInfoType; + mangaUpdates: Array; +}; + +export type LibraryUpdateStatusChangedInput = { + /** Sets a max number of updates that can be contained in a updater update message.Everything above this limit will be omitted and the "updateStatus" should be re-fetched via the corresponding query. Due to the graphql subscription execution strategy not supporting batching for data loaders, the data loaders run into the n+1 problem, which can cause the server to get unresponsive until the status update has been handled. This is an issue e.g. when starting an update. */ + maxUpdates?: InputMaybe; +}; + +export type ListPreference = { + __typename?: 'ListPreference'; + currentValue?: Maybe; + default?: Maybe; + enabled: Scalars['Boolean']['output']; + entries: Array; + entryValues: Array; + key?: Maybe; + summary?: Maybe; + title?: Maybe; + visible: Scalars['Boolean']['output']; +}; + +export type LoginInput = { + clientMutationId?: InputMaybe; + password: Scalars['String']['input']; + username: Scalars['String']['input']; +}; + +export type LoginPayload = { + __typename?: 'LoginPayload'; + accessToken: Scalars['String']['output']; + clientMutationId?: Maybe; + refreshToken: Scalars['String']['output']; +}; + +export type LoginTrackerCredentialsInput = { + clientMutationId?: InputMaybe; + password: Scalars['String']['input']; + trackerId: Scalars['Int']['input']; + username: Scalars['String']['input']; +}; + +export type LoginTrackerCredentialsPayload = { + __typename?: 'LoginTrackerCredentialsPayload'; + clientMutationId?: Maybe; + isLoggedIn: Scalars['Boolean']['output']; + tracker: TrackerType; +}; + +export type LoginTrackerOAuthInput = { + callbackUrl: Scalars['String']['input']; + clientMutationId?: InputMaybe; + trackerId: Scalars['Int']['input']; +}; + +export type LoginTrackerOAuthPayload = { + __typename?: 'LoginTrackerOAuthPayload'; + clientMutationId?: Maybe; + isLoggedIn: Scalars['Boolean']['output']; + tracker: TrackerType; +}; + +export type LogoutKoSyncAccountInput = { + clientMutationId?: InputMaybe; +}; + +export type LogoutKoSyncAccountPayload = { + __typename?: 'LogoutKoSyncAccountPayload'; + clientMutationId?: Maybe; + status: KoSyncStatusPayload; +}; + +export type LogoutTrackerInput = { + clientMutationId?: InputMaybe; + trackerId: Scalars['Int']['input']; +}; + +export type LogoutTrackerPayload = { + __typename?: 'LogoutTrackerPayload'; + clientMutationId?: Maybe; + isLoggedIn: Scalars['Boolean']['output']; + tracker: TrackerType; +}; + +export type LongFilterInput = { + distinctFrom?: InputMaybe; + distinctFromAll?: InputMaybe>; + distinctFromAny?: InputMaybe>; + equalTo?: InputMaybe; + greaterThan?: InputMaybe; + greaterThanOrEqualTo?: InputMaybe; + in?: InputMaybe>; + isNull?: InputMaybe; + lessThan?: InputMaybe; + lessThanOrEqualTo?: InputMaybe; + notDistinctFrom?: InputMaybe; + notEqualTo?: InputMaybe; + notEqualToAll?: InputMaybe>; + notEqualToAny?: InputMaybe>; + notIn?: InputMaybe>; +}; + +export type MangaConditionInput = { + artist?: InputMaybe; + author?: InputMaybe; + categoryIds?: InputMaybe>; + chaptersLastFetchedAt?: InputMaybe; + description?: InputMaybe; + genre?: InputMaybe>; + id?: InputMaybe; + inLibrary?: InputMaybe; + inLibraryAt?: InputMaybe; + initialized?: InputMaybe; + lastFetchedAt?: InputMaybe; + realUrl?: InputMaybe; + sourceId?: InputMaybe; + status?: InputMaybe; + thumbnailUrl?: InputMaybe; + title?: InputMaybe; + url?: InputMaybe; +}; + +export type MangaEdge = Edge & { + __typename?: 'MangaEdge'; + cursor: Scalars['Cursor']['output']; + node: MangaType; +}; + +export type MangaFilterInput = { + and?: InputMaybe>; + artist?: InputMaybe; + author?: InputMaybe; + categoryId?: InputMaybe; + chaptersLastFetchedAt?: InputMaybe; + description?: InputMaybe; + genre?: InputMaybe; + id?: InputMaybe; + inLibrary?: InputMaybe; + inLibraryAt?: InputMaybe; + initialized?: InputMaybe; + lastFetchedAt?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>; + realUrl?: InputMaybe; + sourceId?: InputMaybe; + status?: InputMaybe; + thumbnailUrl?: InputMaybe; + title?: InputMaybe; + url?: InputMaybe; +}; + +export enum MangaJobStatus { + Complete = 'COMPLETE', + Failed = 'FAILED', + Pending = 'PENDING', + Running = 'RUNNING', + Skipped = 'SKIPPED' +} + +export type MangaMetaType = MetaType & { + __typename?: 'MangaMetaType'; + key: Scalars['String']['output']; + manga: MangaType; + mangaId: Scalars['Int']['output']; + value: Scalars['String']['output']; +}; + +export type MangaMetaTypeInput = { + key: Scalars['String']['input']; + mangaId: Scalars['Int']['input']; + value: Scalars['String']['input']; +}; + +export type MangaNodeList = NodeList & { + __typename?: 'MangaNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum MangaOrderBy { + Id = 'ID', + InLibraryAt = 'IN_LIBRARY_AT', + LastFetchedAt = 'LAST_FETCHED_AT', + Title = 'TITLE' +} + +export type MangaOrderInput = { + by: MangaOrderBy; + byType?: InputMaybe; +}; + +export enum MangaStatus { + Cancelled = 'CANCELLED', + Completed = 'COMPLETED', + Licensed = 'LICENSED', + Ongoing = 'ONGOING', + OnHiatus = 'ON_HIATUS', + PublishingFinished = 'PUBLISHING_FINISHED', + Unknown = 'UNKNOWN' +} + +export type MangaStatusFilterInput = { + distinctFrom?: InputMaybe; + distinctFromAll?: InputMaybe>; + distinctFromAny?: InputMaybe>; + equalTo?: InputMaybe; + greaterThan?: InputMaybe; + greaterThanOrEqualTo?: InputMaybe; + in?: InputMaybe>; + isNull?: InputMaybe; + lessThan?: InputMaybe; + lessThanOrEqualTo?: InputMaybe; + notDistinctFrom?: InputMaybe; + notEqualTo?: InputMaybe; + notEqualToAll?: InputMaybe>; + notEqualToAny?: InputMaybe>; + notIn?: InputMaybe>; +}; + +export type MangaType = { + __typename?: 'MangaType'; + age?: Maybe; + artist?: Maybe; + author?: Maybe; + bookmarkCount: Scalars['Int']['output']; + categories: CategoryNodeList; + chapters: ChapterNodeList; + chaptersAge?: Maybe; + chaptersLastFetchedAt?: Maybe; + description?: Maybe; + downloadCount: Scalars['Int']['output']; + firstUnreadChapter?: Maybe; + genre: Array; + hasDuplicateChapters: Scalars['Boolean']['output']; + highestNumberedChapter?: Maybe; + id: Scalars['Int']['output']; + inLibrary: Scalars['Boolean']['output']; + inLibraryAt: Scalars['LongString']['output']; + initialized: Scalars['Boolean']['output']; + lastFetchedAt?: Maybe; + lastReadChapter?: Maybe; + latestFetchedChapter?: Maybe; + latestReadChapter?: Maybe; + latestUploadedChapter?: Maybe; + meta: Array; + realUrl?: Maybe; + source?: Maybe; + sourceId: Scalars['LongString']['output']; + status: MangaStatus; + thumbnailUrl?: Maybe; + thumbnailUrlLastFetched?: Maybe; + title: Scalars['String']['output']; + trackRecords: TrackRecordNodeList; + unreadCount: Scalars['Int']['output']; + updateStrategy: UpdateStrategy; + url: Scalars['String']['output']; +}; + +export type MangaUpdateType = { + __typename?: 'MangaUpdateType'; + manga: MangaType; + status: MangaJobStatus; +}; + +export type MetaConditionInput = { + key?: InputMaybe; + value?: InputMaybe; +}; + +export type MetaEdge = Edge & { + __typename?: 'MetaEdge'; + cursor: Scalars['Cursor']['output']; + node: GlobalMetaType; +}; + +export type MetaFilterInput = { + and?: InputMaybe>; + key?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>; + value?: InputMaybe; +}; + +export type MetaInput = { + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export enum MetaOrderBy { + Key = 'KEY', + Value = 'VALUE' +} + +export type MetaOrderInput = { + by: MetaOrderBy; + byType?: InputMaybe; +}; + +export type MetaType = { + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type MultiSelectListPreference = { + __typename?: 'MultiSelectListPreference'; + currentValue?: Maybe>; + default?: Maybe>; + dialogMessage?: Maybe; + dialogTitle?: Maybe; + enabled: Scalars['Boolean']['output']; + entries: Array; + entryValues: Array; + key?: Maybe; + summary?: Maybe; + title?: Maybe; + visible: Scalars['Boolean']['output']; +}; + +export type Mutation = { + __typename?: 'Mutation'; + bindTrack: BindTrackPayload; + clearCachedImages: ClearCachedImagesPayload; + clearDownloader?: Maybe; + connectKoSyncAccount: KoSyncConnectPayload; + createBackup: CreateBackupPayload; + createCategory?: Maybe; + deleteCategory?: Maybe; + deleteCategoryMeta?: Maybe; + deleteCategoryMetas?: Maybe; + deleteChapterMeta?: Maybe; + deleteChapterMetas?: Maybe; + deleteDownloadedChapter?: Maybe; + deleteDownloadedChapters?: Maybe; + deleteGlobalMeta?: Maybe; + deleteGlobalMetas?: Maybe; + deleteMangaMeta?: Maybe; + deleteMangaMetas?: Maybe; + deleteSourceMeta?: Maybe; + deleteSourceMetas?: Maybe; + dequeueChapterDownload?: Maybe; + dequeueChapterDownloads?: Maybe; + enqueueChapterDownload?: Maybe; + enqueueChapterDownloads?: Maybe; + fetchChapterPages?: Maybe; + fetchChapters?: Maybe; + fetchExtensions?: Maybe; + fetchManga?: Maybe; + fetchSourceManga?: Maybe; + fetchTrack: FetchTrackPayload; + installExternalExtension?: Maybe; + login: LoginPayload; + loginTrackerCredentials: LoginTrackerCredentialsPayload; + loginTrackerOAuth: LoginTrackerOAuthPayload; + logoutKoSyncAccount: LogoutKoSyncAccountPayload; + logoutTracker: LogoutTrackerPayload; + pullKoSyncProgress?: Maybe; + pushKoSyncProgress?: Maybe; + refreshToken: RefreshTokenPayload; + reorderChapterDownload?: Maybe; + resetSettings: ResetSettingsPayload; + resetWebUIUpdateStatus?: Maybe; + restoreBackup: RestoreBackupPayload; + setCategoryMeta?: Maybe; + setCategoryMetas?: Maybe; + setChapterMeta?: Maybe; + setChapterMetas?: Maybe; + setGlobalMeta?: Maybe; + setGlobalMetas?: Maybe; + setMangaMeta?: Maybe; + setMangaMetas?: Maybe; + setSettings: SetSettingsPayload; + setSourceMeta?: Maybe; + setSourceMetas?: Maybe; + startDownloader?: Maybe; + stopDownloader?: Maybe; + trackProgress?: Maybe; + unbindTrack: UnbindTrackPayload; + updateCategories?: Maybe; + updateCategory?: Maybe; + updateCategoryManga?: Maybe; + updateCategoryOrder?: Maybe; + updateChapter?: Maybe; + updateChapters?: Maybe; + updateExtension?: Maybe; + updateExtensions?: Maybe; + updateLibrary?: Maybe; + updateLibraryManga?: Maybe; + updateManga?: Maybe; + updateMangaCategories?: Maybe; + updateMangas?: Maybe; + updateMangasCategories?: Maybe; + updateSourcePreference?: Maybe; + updateStop: UpdateStopPayload; + updateTrack: UpdateTrackPayload; + updateWebUI?: Maybe; +}; + + +export type MutationBindTrackArgs = { + input: BindTrackInput; +}; + + +export type MutationClearCachedImagesArgs = { + input: ClearCachedImagesInput; +}; + + +export type MutationClearDownloaderArgs = { + input: ClearDownloaderInput; +}; + + +export type MutationConnectKoSyncAccountArgs = { + input: ConnectKoSyncAccountInput; +}; + + +export type MutationCreateBackupArgs = { + input?: InputMaybe; +}; + + +export type MutationCreateCategoryArgs = { + input: CreateCategoryInput; +}; + + +export type MutationDeleteCategoryArgs = { + input: DeleteCategoryInput; +}; + + +export type MutationDeleteCategoryMetaArgs = { + input: DeleteCategoryMetaInput; +}; + + +export type MutationDeleteCategoryMetasArgs = { + input: DeleteCategoryMetasInput; +}; + + +export type MutationDeleteChapterMetaArgs = { + input: DeleteChapterMetaInput; +}; + + +export type MutationDeleteChapterMetasArgs = { + input: DeleteChapterMetasInput; +}; + + +export type MutationDeleteDownloadedChapterArgs = { + input: DeleteDownloadedChapterInput; +}; + + +export type MutationDeleteDownloadedChaptersArgs = { + input: DeleteDownloadedChaptersInput; +}; + + +export type MutationDeleteGlobalMetaArgs = { + input: DeleteGlobalMetaInput; +}; + + +export type MutationDeleteGlobalMetasArgs = { + input: DeleteGlobalMetasInput; +}; + + +export type MutationDeleteMangaMetaArgs = { + input: DeleteMangaMetaInput; +}; + + +export type MutationDeleteMangaMetasArgs = { + input: DeleteMangaMetasInput; +}; + + +export type MutationDeleteSourceMetaArgs = { + input: DeleteSourceMetaInput; +}; + + +export type MutationDeleteSourceMetasArgs = { + input: DeleteSourceMetasInput; +}; + + +export type MutationDequeueChapterDownloadArgs = { + input: DequeueChapterDownloadInput; +}; + + +export type MutationDequeueChapterDownloadsArgs = { + input: DequeueChapterDownloadsInput; +}; + + +export type MutationEnqueueChapterDownloadArgs = { + input: EnqueueChapterDownloadInput; +}; + + +export type MutationEnqueueChapterDownloadsArgs = { + input: EnqueueChapterDownloadsInput; +}; + + +export type MutationFetchChapterPagesArgs = { + input: FetchChapterPagesInput; +}; + + +export type MutationFetchChaptersArgs = { + input: FetchChaptersInput; +}; + + +export type MutationFetchExtensionsArgs = { + input: FetchExtensionsInput; +}; + + +export type MutationFetchMangaArgs = { + input: FetchMangaInput; +}; + + +export type MutationFetchSourceMangaArgs = { + input: FetchSourceMangaInput; +}; + + +export type MutationFetchTrackArgs = { + input: FetchTrackInput; +}; + + +export type MutationInstallExternalExtensionArgs = { + input: InstallExternalExtensionInput; +}; + + +export type MutationLoginArgs = { + input: LoginInput; +}; + + +export type MutationLoginTrackerCredentialsArgs = { + input: LoginTrackerCredentialsInput; +}; + + +export type MutationLoginTrackerOAuthArgs = { + input: LoginTrackerOAuthInput; +}; + + +export type MutationLogoutKoSyncAccountArgs = { + input: LogoutKoSyncAccountInput; +}; + + +export type MutationLogoutTrackerArgs = { + input: LogoutTrackerInput; +}; + + +export type MutationPullKoSyncProgressArgs = { + input: PullKoSyncProgressInput; +}; + + +export type MutationPushKoSyncProgressArgs = { + input: PushKoSyncProgressInput; +}; + + +export type MutationRefreshTokenArgs = { + input: RefreshTokenInput; +}; + + +export type MutationReorderChapterDownloadArgs = { + input: ReorderChapterDownloadInput; +}; + + +export type MutationResetSettingsArgs = { + input: ResetSettingsInput; +}; + + +export type MutationRestoreBackupArgs = { + input: RestoreBackupInput; +}; + + +export type MutationSetCategoryMetaArgs = { + input: SetCategoryMetaInput; +}; + + +export type MutationSetCategoryMetasArgs = { + input: SetCategoryMetasInput; +}; + + +export type MutationSetChapterMetaArgs = { + input: SetChapterMetaInput; +}; + + +export type MutationSetChapterMetasArgs = { + input: SetChapterMetasInput; +}; + + +export type MutationSetGlobalMetaArgs = { + input: SetGlobalMetaInput; +}; + + +export type MutationSetGlobalMetasArgs = { + input: SetGlobalMetasInput; +}; + + +export type MutationSetMangaMetaArgs = { + input: SetMangaMetaInput; +}; + + +export type MutationSetMangaMetasArgs = { + input: SetMangaMetasInput; +}; + + +export type MutationSetSettingsArgs = { + input: SetSettingsInput; +}; + + +export type MutationSetSourceMetaArgs = { + input: SetSourceMetaInput; +}; + + +export type MutationSetSourceMetasArgs = { + input: SetSourceMetasInput; +}; + + +export type MutationStartDownloaderArgs = { + input: StartDownloaderInput; +}; + + +export type MutationStopDownloaderArgs = { + input: StopDownloaderInput; +}; + + +export type MutationTrackProgressArgs = { + input: TrackProgressInput; +}; + + +export type MutationUnbindTrackArgs = { + input: UnbindTrackInput; +}; + + +export type MutationUpdateCategoriesArgs = { + input: UpdateCategoriesInput; +}; + + +export type MutationUpdateCategoryArgs = { + input: UpdateCategoryInput; +}; + + +export type MutationUpdateCategoryMangaArgs = { + input: UpdateCategoryMangaInput; +}; + + +export type MutationUpdateCategoryOrderArgs = { + input: UpdateCategoryOrderInput; +}; + + +export type MutationUpdateChapterArgs = { + input: UpdateChapterInput; +}; + + +export type MutationUpdateChaptersArgs = { + input: UpdateChaptersInput; +}; + + +export type MutationUpdateExtensionArgs = { + input: UpdateExtensionInput; +}; + + +export type MutationUpdateExtensionsArgs = { + input: UpdateExtensionsInput; +}; + + +export type MutationUpdateLibraryArgs = { + input: UpdateLibraryInput; +}; + + +export type MutationUpdateLibraryMangaArgs = { + input: UpdateLibraryMangaInput; +}; + + +export type MutationUpdateMangaArgs = { + input: UpdateMangaInput; +}; + + +export type MutationUpdateMangaCategoriesArgs = { + input: UpdateMangaCategoriesInput; +}; + + +export type MutationUpdateMangasArgs = { + input: UpdateMangasInput; +}; + + +export type MutationUpdateMangasCategoriesArgs = { + input: UpdateMangasCategoriesInput; +}; + + +export type MutationUpdateSourcePreferenceArgs = { + input: UpdateSourcePreferenceInput; +}; + + +export type MutationUpdateStopArgs = { + input: UpdateStopInput; +}; + + +export type MutationUpdateTrackArgs = { + input: UpdateTrackInput; +}; + + +export type MutationUpdateWebUiArgs = { + input: WebUiUpdateInput; +}; + +export type Node = CategoryMetaType | CategoryType | ChapterMetaType | ChapterType | DownloadType | DownloadUpdate | ExtensionType | GlobalMetaType | MangaMetaType | MangaType | PartialSettingsType | SettingsType | SourceMetaType | SourceType | TrackRecordType | TrackerType; + +export type NodeList = { + /** A list of edges which contains the [T] and cursor to aid in pagination. */ + edges: Array; + /** A list of [T] objects. */ + nodes: Array; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** The count of all nodes you could get from the connection. */ + totalCount: Scalars['Int']['output']; +}; + +export type PageInfo = { + __typename?: 'PageInfo'; + /** When paginating forwards, the cursor to continue. */ + endCursor?: Maybe; + /** When paginating forwards, are there more items? */ + hasNextPage: Scalars['Boolean']['output']; + /** When paginating backwards, are there more items? */ + hasPreviousPage: Scalars['Boolean']['output']; + /** When paginating backwards, the cursor to continue. */ + startCursor?: Maybe; +}; + +export type PartialBackupFlagsInput = { + includeCategories?: InputMaybe; + includeChapters?: InputMaybe; + includeClientData?: InputMaybe; + includeHistory?: InputMaybe; + includeManga?: InputMaybe; + includeServerSettings?: InputMaybe; + includeTracking?: InputMaybe; +}; + +export type PartialSettingsType = Settings & { + __typename?: 'PartialSettingsType'; + authMode?: Maybe; + authPassword?: Maybe; + authUsername?: Maybe; + autoBackupIncludeCategories?: Maybe; + autoBackupIncludeChapters?: Maybe; + autoBackupIncludeClientData?: Maybe; + autoBackupIncludeHistory?: Maybe; + autoBackupIncludeManga?: Maybe; + autoBackupIncludeServerSettings?: Maybe; + autoBackupIncludeTracking?: Maybe; + /** @deprecated Replaced with autoDownloadNewChaptersLimit, replace with autoDownloadNewChaptersLimit */ + autoDownloadAheadLimit?: Maybe; + autoDownloadIgnoreReUploads?: Maybe; + autoDownloadNewChapters?: Maybe; + autoDownloadNewChaptersLimit?: Maybe; + backupInterval?: Maybe; + backupPath?: Maybe; + backupTTL?: Maybe; + backupTime?: Maybe; + /** @deprecated Removed - prefer authMode, replace with authMode */ + basicAuthEnabled?: Maybe; + /** @deprecated Removed - prefer authPassword, replace with authPassword */ + basicAuthPassword?: Maybe; + /** @deprecated Removed - prefer authUsername, replace with authUsername */ + basicAuthUsername?: Maybe; + databasePassword?: Maybe; + databaseType?: Maybe; + databaseUrl?: Maybe; + databaseUsername?: Maybe; + debugLogsEnabled?: Maybe; + downloadAsCbz?: Maybe; + downloadConversions?: Maybe>; + downloadsPath?: Maybe; + electronPath?: Maybe; + excludeCompleted?: Maybe; + excludeEntryWithUnreadChapters?: Maybe; + excludeNotStarted?: Maybe; + excludeUnreadChapters?: Maybe; + extensionRepos?: Maybe>; + flareSolverrAsResponseFallback?: Maybe; + flareSolverrEnabled?: Maybe; + flareSolverrSessionName?: Maybe; + flareSolverrSessionTtl?: Maybe; + flareSolverrTimeout?: Maybe; + flareSolverrUrl?: Maybe; + globalUpdateInterval?: Maybe; + /** @deprecated Removed - does not do anything */ + gqlDebugLogsEnabled?: Maybe; + initialOpenInBrowserEnabled?: Maybe; + ip?: Maybe; + jwtAudience?: Maybe; + jwtRefreshExpiry?: Maybe; + jwtTokenExpiry?: Maybe; + koreaderSyncChecksumMethod?: Maybe; + /** @deprecated Moved to preference store. Is supposed to be random and gets auto generated, replace with MOVE TO PREFERENCES */ + koreaderSyncDeviceId?: Maybe; + koreaderSyncPercentageTolerance?: Maybe; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncServerUrl?: Maybe; + /** @deprecated Replaced with koreaderSyncStrategyForward and koreaderSyncStrategyBackward, replace with koreaderSyncStrategyForward, koreaderSyncStrategyBackward */ + koreaderSyncStrategy?: Maybe; + koreaderSyncStrategyBackward?: Maybe; + koreaderSyncStrategyForward?: Maybe; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncUserkey?: Maybe; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncUsername?: Maybe; + localSourcePath?: Maybe; + maxLogFileSize?: Maybe; + maxLogFiles?: Maybe; + maxLogFolderSize?: Maybe; + maxSourcesInParallel?: Maybe; + opdsCbzMimetype?: Maybe; + opdsChapterSortOrder?: Maybe; + opdsEnablePageReadProgress?: Maybe; + opdsItemsPerPage?: Maybe; + opdsMarkAsReadOnDownload?: Maybe; + opdsShowOnlyDownloadedChapters?: Maybe; + opdsShowOnlyUnreadChapters?: Maybe; + opdsUseBinaryFileSizes?: Maybe; + port?: Maybe; + serveConversions?: Maybe>; + socksProxyEnabled?: Maybe; + socksProxyHost?: Maybe; + socksProxyPassword?: Maybe; + socksProxyPort?: Maybe; + socksProxyUsername?: Maybe; + socksProxyVersion?: Maybe; + systemTrayEnabled?: Maybe; + updateMangas?: Maybe; + useHikariConnectionPool?: Maybe; + webUIChannel?: Maybe; + webUIFlavor?: Maybe; + webUIInterface?: Maybe; + webUIUpdateCheckInterval?: Maybe; +}; + +export type PartialSettingsTypeInput = { + authMode?: InputMaybe; + authPassword?: InputMaybe; + authUsername?: InputMaybe; + autoBackupIncludeCategories?: InputMaybe; + autoBackupIncludeChapters?: InputMaybe; + autoBackupIncludeClientData?: InputMaybe; + autoBackupIncludeHistory?: InputMaybe; + autoBackupIncludeManga?: InputMaybe; + autoBackupIncludeServerSettings?: InputMaybe; + autoBackupIncludeTracking?: InputMaybe; + autoDownloadIgnoreReUploads?: InputMaybe; + autoDownloadNewChapters?: InputMaybe; + autoDownloadNewChaptersLimit?: InputMaybe; + backupInterval?: InputMaybe; + backupPath?: InputMaybe; + backupTTL?: InputMaybe; + backupTime?: InputMaybe; + databasePassword?: InputMaybe; + databaseType?: InputMaybe; + databaseUrl?: InputMaybe; + databaseUsername?: InputMaybe; + debugLogsEnabled?: InputMaybe; + downloadAsCbz?: InputMaybe; + downloadConversions?: InputMaybe>; + downloadsPath?: InputMaybe; + electronPath?: InputMaybe; + excludeCompleted?: InputMaybe; + excludeEntryWithUnreadChapters?: InputMaybe; + excludeNotStarted?: InputMaybe; + excludeUnreadChapters?: InputMaybe; + extensionRepos?: InputMaybe>; + flareSolverrAsResponseFallback?: InputMaybe; + flareSolverrEnabled?: InputMaybe; + flareSolverrSessionName?: InputMaybe; + flareSolverrSessionTtl?: InputMaybe; + flareSolverrTimeout?: InputMaybe; + flareSolverrUrl?: InputMaybe; + globalUpdateInterval?: InputMaybe; + initialOpenInBrowserEnabled?: InputMaybe; + ip?: InputMaybe; + jwtAudience?: InputMaybe; + jwtRefreshExpiry?: InputMaybe; + jwtTokenExpiry?: InputMaybe; + koreaderSyncChecksumMethod?: InputMaybe; + koreaderSyncPercentageTolerance?: InputMaybe; + koreaderSyncStrategyBackward?: InputMaybe; + koreaderSyncStrategyForward?: InputMaybe; + localSourcePath?: InputMaybe; + maxLogFileSize?: InputMaybe; + maxLogFiles?: InputMaybe; + maxLogFolderSize?: InputMaybe; + maxSourcesInParallel?: InputMaybe; + opdsCbzMimetype?: InputMaybe; + opdsChapterSortOrder?: InputMaybe; + opdsEnablePageReadProgress?: InputMaybe; + opdsItemsPerPage?: InputMaybe; + opdsMarkAsReadOnDownload?: InputMaybe; + opdsShowOnlyDownloadedChapters?: InputMaybe; + opdsShowOnlyUnreadChapters?: InputMaybe; + opdsUseBinaryFileSizes?: InputMaybe; + port?: InputMaybe; + serveConversions?: InputMaybe>; + socksProxyEnabled?: InputMaybe; + socksProxyHost?: InputMaybe; + socksProxyPassword?: InputMaybe; + socksProxyPort?: InputMaybe; + socksProxyUsername?: InputMaybe; + socksProxyVersion?: InputMaybe; + systemTrayEnabled?: InputMaybe; + updateMangas?: InputMaybe; + useHikariConnectionPool?: InputMaybe; + webUIChannel?: InputMaybe; + webUIFlavor?: InputMaybe; + webUIInterface?: InputMaybe; + webUIUpdateCheckInterval?: InputMaybe; +}; + +export type Preference = CheckBoxPreference | EditTextPreference | ListPreference | MultiSelectListPreference | SwitchPreference; + +export type PullKoSyncProgressInput = { + chapterId: Scalars['Int']['input']; + clientMutationId?: InputMaybe; +}; + +export type PullKoSyncProgressPayload = { + __typename?: 'PullKoSyncProgressPayload'; + chapter?: Maybe; + clientMutationId?: Maybe; + syncConflict?: Maybe; +}; + +export type PushKoSyncProgressInput = { + chapterId: Scalars['Int']['input']; + clientMutationId?: InputMaybe; +}; + +export type PushKoSyncProgressPayload = { + __typename?: 'PushKoSyncProgressPayload'; + chapter?: Maybe; + clientMutationId?: Maybe; + success: Scalars['Boolean']['output']; +}; + +export type Query = { + __typename?: 'Query'; + aboutServer: AboutServerPayload; + aboutWebUI: AboutWebUi; + categories: CategoryNodeList; + category: CategoryType; + chapter: ChapterType; + chapters: ChapterNodeList; + checkForServerUpdates: Array; + checkForWebUIUpdate: WebUiUpdateCheck; + downloadStatus: DownloadStatus; + extension: ExtensionType; + extensions: ExtensionNodeList; + getWebUIUpdateStatus: WebUiUpdateStatus; + koSyncStatus: KoSyncStatusPayload; + lastUpdateTimestamp: LastUpdateTimestampPayload; + libraryUpdateStatus: LibraryUpdateStatus; + manga: MangaType; + mangas: MangaNodeList; + meta: GlobalMetaType; + metas: GlobalMetaNodeList; + restoreStatus?: Maybe; + searchTracker: SearchTrackerPayload; + settings: SettingsType; + source: SourceType; + sources: SourceNodeList; + trackRecord: TrackRecordType; + trackRecords: TrackRecordNodeList; + tracker: TrackerType; + trackers: TrackerNodeList; + /** @deprecated Replaced with libraryUpdateStatus, replace with libraryUpdateStatus */ + updateStatus: UpdateStatus; + validateBackup: ValidateBackupResult; +}; + + +export type QueryCategoriesArgs = { + after?: InputMaybe; + before?: InputMaybe; + condition?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + offset?: InputMaybe; + order?: InputMaybe>; +}; + + +export type QueryCategoryArgs = { + id: Scalars['Int']['input']; +}; + + +export type QueryChapterArgs = { + id: Scalars['Int']['input']; +}; + + +export type QueryChaptersArgs = { + after?: InputMaybe; + before?: InputMaybe; + condition?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + offset?: InputMaybe; + order?: InputMaybe>; +}; + + +export type QueryExtensionArgs = { + pkgName: Scalars['String']['input']; +}; + + +export type QueryExtensionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + condition?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + offset?: InputMaybe; + order?: InputMaybe>; +}; + + +export type QueryMangaArgs = { + id: Scalars['Int']['input']; +}; + + +export type QueryMangasArgs = { + after?: InputMaybe; + before?: InputMaybe; + condition?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + offset?: InputMaybe; + order?: InputMaybe>; +}; + + +export type QueryMetaArgs = { + key: Scalars['String']['input']; +}; + + +export type QueryMetasArgs = { + after?: InputMaybe; + before?: InputMaybe; + condition?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + offset?: InputMaybe; + order?: InputMaybe>; +}; + + +export type QueryRestoreStatusArgs = { + id: Scalars['String']['input']; +}; + + +export type QuerySearchTrackerArgs = { + input: SearchTrackerInput; +}; + + +export type QuerySourceArgs = { + id: Scalars['LongString']['input']; +}; + + +export type QuerySourcesArgs = { + after?: InputMaybe; + before?: InputMaybe; + condition?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + offset?: InputMaybe; + order?: InputMaybe>; +}; + + +export type QueryTrackRecordArgs = { + id: Scalars['Int']['input']; +}; + + +export type QueryTrackRecordsArgs = { + after?: InputMaybe; + before?: InputMaybe; + condition?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + offset?: InputMaybe; + order?: InputMaybe>; +}; + + +export type QueryTrackerArgs = { + id: Scalars['Int']['input']; +}; + + +export type QueryTrackersArgs = { + after?: InputMaybe; + before?: InputMaybe; + condition?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + offset?: InputMaybe; + order?: InputMaybe>; +}; + + +export type QueryValidateBackupArgs = { + input: ValidateBackupInput; +}; + +export type RefreshTokenInput = { + clientMutationId?: InputMaybe; + refreshToken: Scalars['String']['input']; +}; + +export type RefreshTokenPayload = { + __typename?: 'RefreshTokenPayload'; + accessToken: Scalars['String']['output']; + clientMutationId?: Maybe; +}; + +export type ReorderChapterDownloadInput = { + chapterId: Scalars['Int']['input']; + clientMutationId?: InputMaybe; + to: Scalars['Int']['input']; +}; + +export type ReorderChapterDownloadPayload = { + __typename?: 'ReorderChapterDownloadPayload'; + clientMutationId?: Maybe; + downloadStatus: DownloadStatus; +}; + +export type ResetSettingsInput = { + clientMutationId?: InputMaybe; +}; + +export type ResetSettingsPayload = { + __typename?: 'ResetSettingsPayload'; + clientMutationId?: Maybe; + settings: SettingsType; +}; + +export type RestoreBackupInput = { + backup: Scalars['Upload']['input']; + clientMutationId?: InputMaybe; + flags?: InputMaybe; +}; + +export type RestoreBackupPayload = { + __typename?: 'RestoreBackupPayload'; + clientMutationId?: Maybe; + id: Scalars['String']['output']; + status?: Maybe; +}; + +export type SearchTrackerInput = { + query: Scalars['String']['input']; + trackerId: Scalars['Int']['input']; +}; + +export type SearchTrackerPayload = { + __typename?: 'SearchTrackerPayload'; + trackSearches: Array; +}; + +export type SelectFilter = { + __typename?: 'SelectFilter'; + default: Scalars['Int']['output']; + name: Scalars['String']['output']; + values: Array; +}; + +export type SeparatorFilter = { + __typename?: 'SeparatorFilter'; + name: Scalars['String']['output']; +}; + +export type SetCategoryMetaInput = { + clientMutationId?: InputMaybe; + meta: CategoryMetaTypeInput; +}; + +export type SetCategoryMetaPayload = { + __typename?: 'SetCategoryMetaPayload'; + clientMutationId?: Maybe; + meta: CategoryMetaType; +}; + +export type SetCategoryMetasInput = { + clientMutationId?: InputMaybe; + items: Array; +}; + +export type SetCategoryMetasItemInput = { + categoryIds: Array; + metas: Array; +}; + +export type SetCategoryMetasPayload = { + __typename?: 'SetCategoryMetasPayload'; + categories: Array; + clientMutationId?: Maybe; + metas: Array; +}; + +export type SetChapterMetaInput = { + clientMutationId?: InputMaybe; + meta: ChapterMetaTypeInput; +}; + +export type SetChapterMetaPayload = { + __typename?: 'SetChapterMetaPayload'; + clientMutationId?: Maybe; + meta: ChapterMetaType; +}; + +export type SetChapterMetasInput = { + clientMutationId?: InputMaybe; + items: Array; +}; + +export type SetChapterMetasItemInput = { + chapterIds: Array; + metas: Array; +}; + +export type SetChapterMetasPayload = { + __typename?: 'SetChapterMetasPayload'; + chapters: Array; + clientMutationId?: Maybe; + metas: Array; +}; + +export type SetGlobalMetaInput = { + clientMutationId?: InputMaybe; + meta: GlobalMetaTypeInput; +}; + +export type SetGlobalMetaPayload = { + __typename?: 'SetGlobalMetaPayload'; + clientMutationId?: Maybe; + meta: GlobalMetaType; +}; + +export type SetGlobalMetasInput = { + clientMutationId?: InputMaybe; + metas: Array; +}; + +export type SetGlobalMetasPayload = { + __typename?: 'SetGlobalMetasPayload'; + clientMutationId?: Maybe; + metas: Array; +}; + +export type SetMangaMetaInput = { + clientMutationId?: InputMaybe; + meta: MangaMetaTypeInput; +}; + +export type SetMangaMetaPayload = { + __typename?: 'SetMangaMetaPayload'; + clientMutationId?: Maybe; + meta: MangaMetaType; +}; + +export type SetMangaMetasInput = { + clientMutationId?: InputMaybe; + items: Array; +}; + +export type SetMangaMetasItemInput = { + mangaIds: Array; + metas: Array; +}; + +export type SetMangaMetasPayload = { + __typename?: 'SetMangaMetasPayload'; + clientMutationId?: Maybe; + mangas: Array; + metas: Array; +}; + +export type SetSettingsInput = { + clientMutationId?: InputMaybe; + settings: PartialSettingsTypeInput; +}; + +export type SetSettingsPayload = { + __typename?: 'SetSettingsPayload'; + clientMutationId?: Maybe; + settings: SettingsType; +}; + +export type SetSourceMetaInput = { + clientMutationId?: InputMaybe; + meta: SourceMetaTypeInput; +}; + +export type SetSourceMetaPayload = { + __typename?: 'SetSourceMetaPayload'; + clientMutationId?: Maybe; + meta: SourceMetaType; +}; + +export type SetSourceMetasInput = { + clientMutationId?: InputMaybe; + items: Array; +}; + +export type SetSourceMetasItemInput = { + metas: Array; + sourceIds: Array; +}; + +export type SetSourceMetasPayload = { + __typename?: 'SetSourceMetasPayload'; + clientMutationId?: Maybe; + metas: Array; + sources: Array; +}; + +export type Settings = { + authMode?: Maybe; + authPassword?: Maybe; + authUsername?: Maybe; + autoBackupIncludeCategories?: Maybe; + autoBackupIncludeChapters?: Maybe; + autoBackupIncludeClientData?: Maybe; + autoBackupIncludeHistory?: Maybe; + autoBackupIncludeManga?: Maybe; + autoBackupIncludeServerSettings?: Maybe; + autoBackupIncludeTracking?: Maybe; + /** @deprecated Replaced with autoDownloadNewChaptersLimit, replace with autoDownloadNewChaptersLimit */ + autoDownloadAheadLimit?: Maybe; + autoDownloadIgnoreReUploads?: Maybe; + autoDownloadNewChapters?: Maybe; + autoDownloadNewChaptersLimit?: Maybe; + backupInterval?: Maybe; + backupPath?: Maybe; + backupTTL?: Maybe; + backupTime?: Maybe; + /** @deprecated Removed - prefer authMode, replace with authMode */ + basicAuthEnabled?: Maybe; + /** @deprecated Removed - prefer authPassword, replace with authPassword */ + basicAuthPassword?: Maybe; + /** @deprecated Removed - prefer authUsername, replace with authUsername */ + basicAuthUsername?: Maybe; + databasePassword?: Maybe; + databaseType?: Maybe; + databaseUrl?: Maybe; + databaseUsername?: Maybe; + debugLogsEnabled?: Maybe; + downloadAsCbz?: Maybe; + downloadConversions?: Maybe>; + downloadsPath?: Maybe; + electronPath?: Maybe; + excludeCompleted?: Maybe; + excludeEntryWithUnreadChapters?: Maybe; + excludeNotStarted?: Maybe; + excludeUnreadChapters?: Maybe; + extensionRepos?: Maybe>; + flareSolverrAsResponseFallback?: Maybe; + flareSolverrEnabled?: Maybe; + flareSolverrSessionName?: Maybe; + flareSolverrSessionTtl?: Maybe; + flareSolverrTimeout?: Maybe; + flareSolverrUrl?: Maybe; + globalUpdateInterval?: Maybe; + /** @deprecated Removed - does not do anything */ + gqlDebugLogsEnabled?: Maybe; + initialOpenInBrowserEnabled?: Maybe; + ip?: Maybe; + jwtAudience?: Maybe; + jwtRefreshExpiry?: Maybe; + jwtTokenExpiry?: Maybe; + koreaderSyncChecksumMethod?: Maybe; + /** @deprecated Moved to preference store. Is supposed to be random and gets auto generated, replace with MOVE TO PREFERENCES */ + koreaderSyncDeviceId?: Maybe; + koreaderSyncPercentageTolerance?: Maybe; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncServerUrl?: Maybe; + /** @deprecated Replaced with koreaderSyncStrategyForward and koreaderSyncStrategyBackward, replace with koreaderSyncStrategyForward, koreaderSyncStrategyBackward */ + koreaderSyncStrategy?: Maybe; + koreaderSyncStrategyBackward?: Maybe; + koreaderSyncStrategyForward?: Maybe; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncUserkey?: Maybe; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncUsername?: Maybe; + localSourcePath?: Maybe; + maxLogFileSize?: Maybe; + maxLogFiles?: Maybe; + maxLogFolderSize?: Maybe; + maxSourcesInParallel?: Maybe; + opdsCbzMimetype?: Maybe; + opdsChapterSortOrder?: Maybe; + opdsEnablePageReadProgress?: Maybe; + opdsItemsPerPage?: Maybe; + opdsMarkAsReadOnDownload?: Maybe; + opdsShowOnlyDownloadedChapters?: Maybe; + opdsShowOnlyUnreadChapters?: Maybe; + opdsUseBinaryFileSizes?: Maybe; + port?: Maybe; + serveConversions?: Maybe>; + socksProxyEnabled?: Maybe; + socksProxyHost?: Maybe; + socksProxyPassword?: Maybe; + socksProxyPort?: Maybe; + socksProxyUsername?: Maybe; + socksProxyVersion?: Maybe; + systemTrayEnabled?: Maybe; + updateMangas?: Maybe; + useHikariConnectionPool?: Maybe; + webUIChannel?: Maybe; + webUIFlavor?: Maybe; + webUIInterface?: Maybe; + webUIUpdateCheckInterval?: Maybe; +}; + +export type SettingsDownloadConversion = { + callTimeout?: Maybe; + compressionLevel?: Maybe; + connectTimeout?: Maybe; + headers?: Maybe>; + mimeType: Scalars['String']['output']; + target: Scalars['String']['output']; +}; + +export type SettingsDownloadConversionHeader = { + name: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type SettingsDownloadConversionHeaderType = SettingsDownloadConversionHeader & { + __typename?: 'SettingsDownloadConversionHeaderType'; + name: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type SettingsDownloadConversionHeaderTypeInput = { + name: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type SettingsDownloadConversionType = SettingsDownloadConversion & { + __typename?: 'SettingsDownloadConversionType'; + callTimeout?: Maybe; + compressionLevel?: Maybe; + connectTimeout?: Maybe; + headers?: Maybe>; + mimeType: Scalars['String']['output']; + target: Scalars['String']['output']; +}; + +export type SettingsDownloadConversionTypeInput = { + callTimeout?: InputMaybe; + compressionLevel?: InputMaybe; + connectTimeout?: InputMaybe; + headers?: InputMaybe>; + mimeType: Scalars['String']['input']; + target: Scalars['String']['input']; +}; + +export type SettingsType = Settings & { + __typename?: 'SettingsType'; + authMode: AuthMode; + authPassword: Scalars['String']['output']; + authUsername: Scalars['String']['output']; + autoBackupIncludeCategories: Scalars['Boolean']['output']; + autoBackupIncludeChapters: Scalars['Boolean']['output']; + autoBackupIncludeClientData: Scalars['Boolean']['output']; + autoBackupIncludeHistory: Scalars['Boolean']['output']; + autoBackupIncludeManga: Scalars['Boolean']['output']; + autoBackupIncludeServerSettings: Scalars['Boolean']['output']; + autoBackupIncludeTracking: Scalars['Boolean']['output']; + /** @deprecated Replaced with autoDownloadNewChaptersLimit, replace with autoDownloadNewChaptersLimit */ + autoDownloadAheadLimit: Scalars['Int']['output']; + autoDownloadIgnoreReUploads: Scalars['Boolean']['output']; + autoDownloadNewChapters: Scalars['Boolean']['output']; + autoDownloadNewChaptersLimit: Scalars['Int']['output']; + backupInterval: Scalars['Int']['output']; + backupPath: Scalars['String']['output']; + backupTTL: Scalars['Int']['output']; + backupTime: Scalars['String']['output']; + /** @deprecated Removed - prefer authMode, replace with authMode */ + basicAuthEnabled: Scalars['Boolean']['output']; + /** @deprecated Removed - prefer authPassword, replace with authPassword */ + basicAuthPassword: Scalars['String']['output']; + /** @deprecated Removed - prefer authUsername, replace with authUsername */ + basicAuthUsername: Scalars['String']['output']; + databasePassword: Scalars['String']['output']; + databaseType: DatabaseType; + databaseUrl: Scalars['String']['output']; + databaseUsername: Scalars['String']['output']; + debugLogsEnabled: Scalars['Boolean']['output']; + downloadAsCbz: Scalars['Boolean']['output']; + downloadConversions: Array; + downloadsPath: Scalars['String']['output']; + electronPath: Scalars['String']['output']; + excludeCompleted: Scalars['Boolean']['output']; + excludeEntryWithUnreadChapters: Scalars['Boolean']['output']; + excludeNotStarted: Scalars['Boolean']['output']; + excludeUnreadChapters: Scalars['Boolean']['output']; + extensionRepos: Array; + flareSolverrAsResponseFallback: Scalars['Boolean']['output']; + flareSolverrEnabled: Scalars['Boolean']['output']; + flareSolverrSessionName: Scalars['String']['output']; + flareSolverrSessionTtl: Scalars['Int']['output']; + flareSolverrTimeout: Scalars['Int']['output']; + flareSolverrUrl: Scalars['String']['output']; + globalUpdateInterval: Scalars['Float']['output']; + /** @deprecated Removed - does not do anything */ + gqlDebugLogsEnabled: Scalars['Boolean']['output']; + initialOpenInBrowserEnabled: Scalars['Boolean']['output']; + ip: Scalars['String']['output']; + jwtAudience: Scalars['String']['output']; + jwtRefreshExpiry: Scalars['Duration']['output']; + jwtTokenExpiry: Scalars['Duration']['output']; + koreaderSyncChecksumMethod: KoreaderSyncChecksumMethod; + /** @deprecated Moved to preference store. Is supposed to be random and gets auto generated, replace with MOVE TO PREFERENCES */ + koreaderSyncDeviceId: Scalars['String']['output']; + koreaderSyncPercentageTolerance: Scalars['Float']['output']; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncServerUrl: Scalars['String']['output']; + /** @deprecated Replaced with koreaderSyncStrategyForward and koreaderSyncStrategyBackward, replace with koreaderSyncStrategyForward, koreaderSyncStrategyBackward */ + koreaderSyncStrategy: KoreaderSyncLegacyStrategy; + koreaderSyncStrategyBackward: KoreaderSyncConflictStrategy; + koreaderSyncStrategyForward: KoreaderSyncConflictStrategy; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncUserkey: Scalars['String']['output']; + /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ + koreaderSyncUsername: Scalars['String']['output']; + localSourcePath: Scalars['String']['output']; + maxLogFileSize: Scalars['String']['output']; + maxLogFiles: Scalars['Int']['output']; + maxLogFolderSize: Scalars['String']['output']; + maxSourcesInParallel: Scalars['Int']['output']; + opdsCbzMimetype: CbzMediaType; + opdsChapterSortOrder: SortOrder; + opdsEnablePageReadProgress: Scalars['Boolean']['output']; + opdsItemsPerPage: Scalars['Int']['output']; + opdsMarkAsReadOnDownload: Scalars['Boolean']['output']; + opdsShowOnlyDownloadedChapters: Scalars['Boolean']['output']; + opdsShowOnlyUnreadChapters: Scalars['Boolean']['output']; + opdsUseBinaryFileSizes: Scalars['Boolean']['output']; + port: Scalars['Int']['output']; + serveConversions: Array; + socksProxyEnabled: Scalars['Boolean']['output']; + socksProxyHost: Scalars['String']['output']; + socksProxyPassword: Scalars['String']['output']; + socksProxyPort: Scalars['String']['output']; + socksProxyUsername: Scalars['String']['output']; + socksProxyVersion: Scalars['Int']['output']; + systemTrayEnabled: Scalars['Boolean']['output']; + updateMangas: Scalars['Boolean']['output']; + useHikariConnectionPool: Scalars['Boolean']['output']; + webUIChannel: WebUiChannel; + webUIFlavor: WebUiFlavor; + webUIInterface: WebUiInterface; + webUIUpdateCheckInterval: Scalars['Float']['output']; +}; + +export type SortFilter = { + __typename?: 'SortFilter'; + default?: Maybe; + name: Scalars['String']['output']; + values: Array; +}; + +export enum SortOrder { + Asc = 'ASC', + AscNullsFirst = 'ASC_NULLS_FIRST', + AscNullsLast = 'ASC_NULLS_LAST', + Desc = 'DESC', + DescNullsFirst = 'DESC_NULLS_FIRST', + DescNullsLast = 'DESC_NULLS_LAST' +} + +export type SortSelection = { + __typename?: 'SortSelection'; + ascending: Scalars['Boolean']['output']; + index: Scalars['Int']['output']; +}; + +export type SortSelectionInput = { + ascending: Scalars['Boolean']['input']; + index: Scalars['Int']['input']; +}; + +export type SourceConditionInput = { + id?: InputMaybe; + isNsfw?: InputMaybe; + lang?: InputMaybe; + name?: InputMaybe; +}; + +export type SourceEdge = Edge & { + __typename?: 'SourceEdge'; + cursor: Scalars['Cursor']['output']; + node: SourceType; +}; + +export type SourceFilterInput = { + and?: InputMaybe>; + id?: InputMaybe; + isNsfw?: InputMaybe; + lang?: InputMaybe; + name?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>; +}; + +export type SourceMetaType = MetaType & { + __typename?: 'SourceMetaType'; + key: Scalars['String']['output']; + source: SourceType; + sourceId: Scalars['LongString']['output']; + value: Scalars['String']['output']; +}; + +export type SourceMetaTypeInput = { + key: Scalars['String']['input']; + sourceId: Scalars['LongString']['input']; + value: Scalars['String']['input']; +}; + +export type SourceNodeList = NodeList & { + __typename?: 'SourceNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum SourceOrderBy { + Id = 'ID', + Lang = 'LANG', + Name = 'NAME' +} + +export type SourceOrderInput = { + by: SourceOrderBy; + byType?: InputMaybe; +}; + +export type SourcePreferenceChangeInput = { + checkBoxState?: InputMaybe; + editTextState?: InputMaybe; + listState?: InputMaybe; + multiSelectState?: InputMaybe>; + position: Scalars['Int']['input']; + switchState?: InputMaybe; +}; + +export type SourceType = { + __typename?: 'SourceType'; + baseUrl?: Maybe; + displayName: Scalars['String']['output']; + extension: ExtensionType; + filters: Array; + iconUrl: Scalars['String']['output']; + id: Scalars['LongString']['output']; + isConfigurable: Scalars['Boolean']['output']; + isNsfw: Scalars['Boolean']['output']; + lang: Scalars['String']['output']; + manga: MangaNodeList; + meta: Array; + name: Scalars['String']['output']; + preferences: Array; + supportsLatest: Scalars['Boolean']['output']; +}; + +export type StartDownloaderInput = { + clientMutationId?: InputMaybe; +}; + +export type StartDownloaderPayload = { + __typename?: 'StartDownloaderPayload'; + clientMutationId?: Maybe; + downloadStatus: DownloadStatus; +}; + +export type StopDownloaderInput = { + clientMutationId?: InputMaybe; +}; + +export type StopDownloaderPayload = { + __typename?: 'StopDownloaderPayload'; + clientMutationId?: Maybe; + downloadStatus: DownloadStatus; +}; + +export type StringFilterInput = { + distinctFrom?: InputMaybe; + distinctFromAll?: InputMaybe>; + distinctFromAny?: InputMaybe>; + distinctFromInsensitive?: InputMaybe; + distinctFromInsensitiveAll?: InputMaybe>; + distinctFromInsensitiveAny?: InputMaybe>; + endsWith?: InputMaybe; + endsWithAll?: InputMaybe>; + endsWithAny?: InputMaybe>; + endsWithInsensitive?: InputMaybe; + endsWithInsensitiveAll?: InputMaybe>; + endsWithInsensitiveAny?: InputMaybe>; + equalTo?: InputMaybe; + greaterThan?: InputMaybe; + greaterThanInsensitive?: InputMaybe; + greaterThanOrEqualTo?: InputMaybe; + greaterThanOrEqualToInsensitive?: InputMaybe; + in?: InputMaybe>; + inInsensitive?: InputMaybe>; + includes?: InputMaybe; + includesAll?: InputMaybe>; + includesAny?: InputMaybe>; + includesInsensitive?: InputMaybe; + includesInsensitiveAll?: InputMaybe>; + includesInsensitiveAny?: InputMaybe>; + isNull?: InputMaybe; + lessThan?: InputMaybe; + lessThanInsensitive?: InputMaybe; + lessThanOrEqualTo?: InputMaybe; + lessThanOrEqualToInsensitive?: InputMaybe; + like?: InputMaybe; + likeAll?: InputMaybe>; + likeAny?: InputMaybe>; + likeInsensitive?: InputMaybe; + likeInsensitiveAll?: InputMaybe>; + likeInsensitiveAny?: InputMaybe>; + notDistinctFrom?: InputMaybe; + notDistinctFromInsensitive?: InputMaybe; + notEndsWith?: InputMaybe; + notEndsWithAll?: InputMaybe>; + notEndsWithAny?: InputMaybe>; + notEndsWithInsensitive?: InputMaybe; + notEndsWithInsensitiveAll?: InputMaybe>; + notEndsWithInsensitiveAny?: InputMaybe>; + notEqualTo?: InputMaybe; + notEqualToAll?: InputMaybe>; + notEqualToAny?: InputMaybe>; + notIn?: InputMaybe>; + notInInsensitive?: InputMaybe>; + notIncludes?: InputMaybe; + notIncludesAll?: InputMaybe>; + notIncludesAny?: InputMaybe>; + notIncludesInsensitive?: InputMaybe; + notIncludesInsensitiveAll?: InputMaybe>; + notIncludesInsensitiveAny?: InputMaybe>; + notLike?: InputMaybe; + notLikeAll?: InputMaybe>; + notLikeAny?: InputMaybe>; + notLikeInsensitive?: InputMaybe; + notLikeInsensitiveAll?: InputMaybe>; + notLikeInsensitiveAny?: InputMaybe>; + notStartsWith?: InputMaybe; + notStartsWithAll?: InputMaybe>; + notStartsWithAny?: InputMaybe>; + notStartsWithInsensitive?: InputMaybe; + notStartsWithInsensitiveAll?: InputMaybe>; + notStartsWithInsensitiveAny?: InputMaybe>; + startsWith?: InputMaybe; + startsWithAll?: InputMaybe>; + startsWithAny?: InputMaybe>; + startsWithInsensitive?: InputMaybe; + startsWithInsensitiveAll?: InputMaybe>; + startsWithInsensitiveAny?: InputMaybe>; +}; + +export type Subscription = { + __typename?: 'Subscription'; + /** @deprecated Replaced with downloadStatusChanged, replace with downloadStatusChanged(input) */ + downloadChanged: DownloadStatus; + downloadStatusChanged: DownloadUpdates; + libraryUpdateStatusChanged: UpdaterUpdates; + /** @deprecated Replaced with updates, replace with updates(input) */ + updateStatusChanged: UpdateStatus; + webUIUpdateStatusChange: WebUiUpdateStatus; +}; + + +export type SubscriptionDownloadStatusChangedArgs = { + input: DownloadChangedInput; +}; + + +export type SubscriptionLibraryUpdateStatusChangedArgs = { + input: LibraryUpdateStatusChangedInput; +}; + +export type SwitchPreference = { + __typename?: 'SwitchPreference'; + currentValue?: Maybe; + default: Scalars['Boolean']['output']; + enabled: Scalars['Boolean']['output']; + key?: Maybe; + summary?: Maybe; + title?: Maybe; + visible: Scalars['Boolean']['output']; +}; + +export type SyncConflictInfoType = { + __typename?: 'SyncConflictInfoType'; + deviceName: Scalars['String']['output']; + remotePage: Scalars['Int']['output']; +}; + +export type TextFilter = { + __typename?: 'TextFilter'; + default: Scalars['String']['output']; + name: Scalars['String']['output']; +}; + +export type TrackProgressInput = { + clientMutationId?: InputMaybe; + mangaId: Scalars['Int']['input']; +}; + +export type TrackProgressPayload = { + __typename?: 'TrackProgressPayload'; + clientMutationId?: Maybe; + trackRecords: Array; +}; + +export type TrackRecordConditionInput = { + finishDate?: InputMaybe; + id?: InputMaybe; + lastChapterRead?: InputMaybe; + libraryId?: InputMaybe; + mangaId?: InputMaybe; + private?: InputMaybe; + remoteId?: InputMaybe; + remoteUrl?: InputMaybe; + score?: InputMaybe; + startDate?: InputMaybe; + status?: InputMaybe; + title?: InputMaybe; + totalChapters?: InputMaybe; + trackerId?: InputMaybe; +}; + +export type TrackRecordEdge = Edge & { + __typename?: 'TrackRecordEdge'; + cursor: Scalars['Cursor']['output']; + node: TrackRecordType; +}; + +export type TrackRecordFilterInput = { + and?: InputMaybe>; + finishDate?: InputMaybe; + id?: InputMaybe; + lastChapterRead?: InputMaybe; + libraryId?: InputMaybe; + mangaId?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>; + private?: InputMaybe; + remoteId?: InputMaybe; + remoteUrl?: InputMaybe; + score?: InputMaybe; + startDate?: InputMaybe; + status?: InputMaybe; + title?: InputMaybe; + totalChapters?: InputMaybe; + trackerId?: InputMaybe; +}; + +export type TrackRecordNodeList = NodeList & { + __typename?: 'TrackRecordNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum TrackRecordOrderBy { + FinishDate = 'FINISH_DATE', + Id = 'ID', + LastChapterRead = 'LAST_CHAPTER_READ', + MangaId = 'MANGA_ID', + Private = 'PRIVATE', + RemoteId = 'REMOTE_ID', + Score = 'SCORE', + StartDate = 'START_DATE', + Title = 'TITLE', + TotalChapters = 'TOTAL_CHAPTERS', + TrackerId = 'TRACKER_ID' +} + +export type TrackRecordOrderInput = { + by: TrackRecordOrderBy; + byType?: InputMaybe; +}; + +export type TrackRecordType = { + __typename?: 'TrackRecordType'; + displayScore: Scalars['String']['output']; + finishDate: Scalars['LongString']['output']; + id: Scalars['Int']['output']; + lastChapterRead: Scalars['Float']['output']; + libraryId?: Maybe; + manga: MangaType; + mangaId: Scalars['Int']['output']; + private: Scalars['Boolean']['output']; + remoteId: Scalars['LongString']['output']; + remoteUrl: Scalars['String']['output']; + score: Scalars['Float']['output']; + startDate: Scalars['LongString']['output']; + status: Scalars['Int']['output']; + title: Scalars['String']['output']; + totalChapters: Scalars['Int']['output']; + tracker: TrackerType; + trackerId: Scalars['Int']['output']; +}; + +export type TrackSearchType = { + __typename?: 'TrackSearchType'; + coverUrl: Scalars['String']['output']; + displayScore: Scalars['String']['output']; + finishedReadingDate: Scalars['LongString']['output']; + id: Scalars['Int']['output']; + lastChapterRead: Scalars['Float']['output']; + libraryId?: Maybe; + private: Scalars['Boolean']['output']; + publishingStatus: Scalars['String']['output']; + publishingType: Scalars['String']['output']; + remoteId: Scalars['LongString']['output']; + score: Scalars['Float']['output']; + startDate: Scalars['String']['output']; + startedReadingDate: Scalars['LongString']['output']; + status: Scalars['Int']['output']; + summary: Scalars['String']['output']; + title: Scalars['String']['output']; + totalChapters: Scalars['Int']['output']; + tracker: TrackerType; + trackerId: Scalars['Int']['output']; + trackingUrl: Scalars['String']['output']; +}; + +export type TrackStatusType = { + __typename?: 'TrackStatusType'; + name: Scalars['String']['output']; + value: Scalars['Int']['output']; +}; + +export type TrackerConditionInput = { + icon?: InputMaybe; + id?: InputMaybe; + isLoggedIn?: InputMaybe; + name?: InputMaybe; +}; + +export type TrackerEdge = Edge & { + __typename?: 'TrackerEdge'; + cursor: Scalars['Cursor']['output']; + node: TrackerType; +}; + +export type TrackerNodeList = NodeList & { + __typename?: 'TrackerNodeList'; + edges: Array; + nodes: Array; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum TrackerOrderBy { + Id = 'ID', + IsLoggedIn = 'IS_LOGGED_IN', + Name = 'NAME' +} + +export type TrackerOrderInput = { + by: TrackerOrderBy; + byType?: InputMaybe; +}; + +export type TrackerType = { + __typename?: 'TrackerType'; + authUrl?: Maybe; + icon: Scalars['String']['output']; + id: Scalars['Int']['output']; + isLoggedIn: Scalars['Boolean']['output']; + isTokenExpired: Scalars['Boolean']['output']; + name: Scalars['String']['output']; + scores: Array; + statuses: Array; + supportsPrivateTracking: Scalars['Boolean']['output']; + supportsReadingDates: Scalars['Boolean']['output']; + supportsTrackDeletion: Scalars['Boolean']['output']; + trackRecords: TrackRecordNodeList; +}; + +export enum TriState { + Exclude = 'EXCLUDE', + Ignore = 'IGNORE', + Include = 'INCLUDE' +} + +export type TriStateFilter = { + __typename?: 'TriStateFilter'; + default: TriState; + name: Scalars['String']['output']; +}; + +export type UnbindTrackInput = { + clientMutationId?: InputMaybe; + /** This will only work if the tracker of the track record supports deleting tracks */ + deleteRemoteTrack?: InputMaybe; + recordId: Scalars['Int']['input']; +}; + +export type UnbindTrackPayload = { + __typename?: 'UnbindTrackPayload'; + clientMutationId?: Maybe; + trackRecord?: Maybe; +}; + +export type UpdateCategoriesInput = { + clientMutationId?: InputMaybe; + ids: Array; + patch: UpdateCategoryPatchInput; +}; + +export type UpdateCategoriesPayload = { + __typename?: 'UpdateCategoriesPayload'; + categories: Array; + clientMutationId?: Maybe; +}; + +export type UpdateCategoryInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; + patch: UpdateCategoryPatchInput; +}; + +export type UpdateCategoryMangaInput = { + categories: Array; + clientMutationId?: InputMaybe; +}; + +export type UpdateCategoryMangaPayload = { + __typename?: 'UpdateCategoryMangaPayload'; + clientMutationId?: Maybe; + updateStatus: UpdateStatus; +}; + +export type UpdateCategoryOrderInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; + position: Scalars['Int']['input']; +}; + +export type UpdateCategoryOrderPayload = { + __typename?: 'UpdateCategoryOrderPayload'; + categories: Array; + clientMutationId?: Maybe; +}; + +export type UpdateCategoryPatchInput = { + default?: InputMaybe; + includeInDownload?: InputMaybe; + includeInUpdate?: InputMaybe; + name?: InputMaybe; +}; + +export type UpdateCategoryPayload = { + __typename?: 'UpdateCategoryPayload'; + category: CategoryType; + clientMutationId?: Maybe; +}; + +export type UpdateChapterInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; + patch: UpdateChapterPatchInput; +}; + +export type UpdateChapterPatchInput = { + isBookmarked?: InputMaybe; + isRead?: InputMaybe; + lastPageRead?: InputMaybe; +}; + +export type UpdateChapterPayload = { + __typename?: 'UpdateChapterPayload'; + chapter: ChapterType; + clientMutationId?: Maybe; +}; + +export type UpdateChaptersInput = { + clientMutationId?: InputMaybe; + ids: Array; + patch: UpdateChapterPatchInput; +}; + +export type UpdateChaptersPayload = { + __typename?: 'UpdateChaptersPayload'; + chapters: Array; + clientMutationId?: Maybe; +}; + +export type UpdateExtensionInput = { + clientMutationId?: InputMaybe; + id: Scalars['String']['input']; + patch: UpdateExtensionPatchInput; +}; + +export type UpdateExtensionPatchInput = { + install?: InputMaybe; + uninstall?: InputMaybe; + update?: InputMaybe; +}; + +export type UpdateExtensionPayload = { + __typename?: 'UpdateExtensionPayload'; + clientMutationId?: Maybe; + extension?: Maybe; +}; + +export type UpdateExtensionsInput = { + clientMutationId?: InputMaybe; + ids: Array; + patch: UpdateExtensionPatchInput; +}; + +export type UpdateExtensionsPayload = { + __typename?: 'UpdateExtensionsPayload'; + clientMutationId?: Maybe; + extensions: Array; +}; + +export type UpdateLibraryInput = { + categories?: InputMaybe>; + clientMutationId?: InputMaybe; +}; + +export type UpdateLibraryMangaInput = { + clientMutationId?: InputMaybe; +}; + +export type UpdateLibraryMangaPayload = { + __typename?: 'UpdateLibraryMangaPayload'; + clientMutationId?: Maybe; + updateStatus: UpdateStatus; +}; + +export type UpdateLibraryPayload = { + __typename?: 'UpdateLibraryPayload'; + clientMutationId?: Maybe; + updateStatus: LibraryUpdateStatus; +}; + +export type UpdateMangaCategoriesInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; + patch: UpdateMangaCategoriesPatchInput; +}; + +export type UpdateMangaCategoriesPatchInput = { + addToCategories?: InputMaybe>; + clearCategories?: InputMaybe; + removeFromCategories?: InputMaybe>; +}; + +export type UpdateMangaCategoriesPayload = { + __typename?: 'UpdateMangaCategoriesPayload'; + clientMutationId?: Maybe; + manga: MangaType; +}; + +export type UpdateMangaInput = { + clientMutationId?: InputMaybe; + id: Scalars['Int']['input']; + patch: UpdateMangaPatchInput; +}; + +export type UpdateMangaPatchInput = { + inLibrary?: InputMaybe; +}; + +export type UpdateMangaPayload = { + __typename?: 'UpdateMangaPayload'; + clientMutationId?: Maybe; + manga: MangaType; +}; + +export type UpdateMangasCategoriesInput = { + clientMutationId?: InputMaybe; + ids: Array; + patch: UpdateMangaCategoriesPatchInput; +}; + +export type UpdateMangasCategoriesPayload = { + __typename?: 'UpdateMangasCategoriesPayload'; + clientMutationId?: Maybe; + mangas: Array; +}; + +export type UpdateMangasInput = { + clientMutationId?: InputMaybe; + ids: Array; + patch: UpdateMangaPatchInput; +}; + +export type UpdateMangasPayload = { + __typename?: 'UpdateMangasPayload'; + clientMutationId?: Maybe; + mangas: Array; +}; + +export type UpdateSourcePreferenceInput = { + change: SourcePreferenceChangeInput; + clientMutationId?: InputMaybe; + source: Scalars['LongString']['input']; +}; + +export type UpdateSourcePreferencePayload = { + __typename?: 'UpdateSourcePreferencePayload'; + clientMutationId?: Maybe; + preferences: Array; + source: SourceType; +}; + +export enum UpdateState { + Downloading = 'DOWNLOADING', + Error = 'ERROR', + Finished = 'FINISHED', + Idle = 'IDLE' +} + +export type UpdateStatus = { + __typename?: 'UpdateStatus'; + completeJobs: UpdateStatusType; + failedJobs: UpdateStatusType; + isRunning: Scalars['Boolean']['output']; + pendingJobs: UpdateStatusType; + runningJobs: UpdateStatusType; + skippedCategories: UpdateStatusCategoryType; + skippedJobs: UpdateStatusType; + updatingCategories: UpdateStatusCategoryType; +}; + +export type UpdateStatusCategoryType = { + __typename?: 'UpdateStatusCategoryType'; + categories: CategoryNodeList; +}; + +export type UpdateStatusType = { + __typename?: 'UpdateStatusType'; + mangas: MangaNodeList; +}; + +export type UpdateStopInput = { + clientMutationId?: InputMaybe; +}; + +export type UpdateStopPayload = { + __typename?: 'UpdateStopPayload'; + clientMutationId?: Maybe; +}; + +export enum UpdateStrategy { + AlwaysUpdate = 'ALWAYS_UPDATE', + OnlyFetchOnce = 'ONLY_FETCH_ONCE' +} + +export type UpdateTrackInput = { + clientMutationId?: InputMaybe; + /** This will only work if the tracker of the track record supports reading dates */ + finishDate?: InputMaybe; + lastChapterRead?: InputMaybe; + /** This will only work if the tracker of the track record supports private tracking */ + private?: InputMaybe; + recordId: Scalars['Int']['input']; + scoreString?: InputMaybe; + /** This will only work if the tracker of the track record supports reading dates */ + startDate?: InputMaybe; + status?: InputMaybe; +}; + +export type UpdateTrackPayload = { + __typename?: 'UpdateTrackPayload'; + clientMutationId?: Maybe; + trackRecord?: Maybe; +}; + +export type UpdaterJobsInfoType = { + __typename?: 'UpdaterJobsInfoType'; + finishedJobs: Scalars['Int']['output']; + isRunning: Scalars['Boolean']['output']; + skippedCategoriesCount: Scalars['Int']['output']; + skippedMangasCount: Scalars['Int']['output']; + totalJobs: Scalars['Int']['output']; +}; + +export type UpdaterUpdates = { + __typename?: 'UpdaterUpdates'; + categoryUpdates: Array; + /** The current update status at the time of sending the initial message. Is null for all following messages */ + initial?: Maybe; + jobsInfo: UpdaterJobsInfoType; + mangaUpdates: Array; + /** Indicates whether updates have been omitted based on the "maxUpdates" subscription variable. In case updates have been omitted, the "updateStatus" query should be re-fetched. */ + omittedUpdates: Scalars['Boolean']['output']; +}; + +export type ValidateBackupInput = { + backup: Scalars['Upload']['input']; +}; + +export type ValidateBackupResult = { + __typename?: 'ValidateBackupResult'; + missingSources: Array; + missingTrackers: Array; +}; + +export type ValidateBackupSource = { + __typename?: 'ValidateBackupSource'; + id: Scalars['LongString']['output']; + name: Scalars['String']['output']; +}; + +export type ValidateBackupTracker = { + __typename?: 'ValidateBackupTracker'; + name: Scalars['String']['output']; +}; + +export enum WebUiChannel { + Bundled = 'BUNDLED', + Preview = 'PREVIEW', + Stable = 'STABLE' +} + +export enum WebUiFlavor { + Custom = 'CUSTOM', + Vui = 'VUI', + Webui = 'WEBUI' +} + +export enum WebUiInterface { + Browser = 'BROWSER', + Electron = 'ELECTRON' +} + +export type WebUiUpdateCheck = { + __typename?: 'WebUIUpdateCheck'; + channel: WebUiChannel; + tag: Scalars['String']['output']; + updateAvailable: Scalars['Boolean']['output']; +}; + +export type WebUiUpdateInfo = { + __typename?: 'WebUIUpdateInfo'; + channel: WebUiChannel; + tag: Scalars['String']['output']; +}; + +export type WebUiUpdateInput = { + clientMutationId?: InputMaybe; +}; + +export type WebUiUpdatePayload = { + __typename?: 'WebUIUpdatePayload'; + clientMutationId?: Maybe; + updateStatus: WebUiUpdateStatus; +}; + +export type WebUiUpdateStatus = { + __typename?: 'WebUIUpdateStatus'; + info: WebUiUpdateInfo; + progress: Scalars['Int']['output']; + state: UpdateState; +}; diff --git a/src/lib/graphql/generated/graphql.ts b/src/lib/graphql/generated/graphql.ts index a1033399..b79f21e0 100644 --- a/src/lib/graphql/generated/graphql.ts +++ b/src/lib/graphql/generated/graphql.ts @@ -1,4456 +1,1002 @@ -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 }; +/** Internal type. DO NOT USE DIRECTLY. */ +type Exact = { [K in keyof T]: T[K] }; +/** Internal type. DO NOT USE DIRECTLY. */ 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; } - Cursor: { input: string; output: string; } - Duration: { input: string; output: string; } - LongString: { input: string; output: string; } - Upload: { input: any; output: any; } -}; - -export type AboutServerPayload = { - __typename?: 'AboutServerPayload'; - buildTime: Scalars['LongString']['output']; - buildType: Scalars['String']['output']; - discord: Scalars['String']['output']; - github: Scalars['String']['output']; - name: Scalars['String']['output']; - /** @deprecated The version includes the revision as the patch number */ - revision: Scalars['String']['output']; - version: Scalars['String']['output']; -}; - -export type AboutWebUi = { - __typename?: 'AboutWebUI'; - channel: WebUiChannel; - tag: Scalars['String']['output']; - updateTimestamp: Scalars['LongString']['output']; -}; - -export enum AuthMode { - BasicAuth = 'BASIC_AUTH', - None = 'NONE', - SimpleLogin = 'SIMPLE_LOGIN', - UiLogin = 'UI_LOGIN' -} - -export enum BackupRestoreState { - Failure = 'FAILURE', - Idle = 'IDLE', - RestoringCategories = 'RESTORING_CATEGORIES', - RestoringManga = 'RESTORING_MANGA', - RestoringMeta = 'RESTORING_META', - RestoringSettings = 'RESTORING_SETTINGS', - Success = 'SUCCESS' -} - -export type BackupRestoreStatus = { - __typename?: 'BackupRestoreStatus'; - mangaProgress: Scalars['Int']['output']; - state: BackupRestoreState; - totalManga: Scalars['Int']['output']; -}; - -export type BindTrackInput = { - clientMutationId?: InputMaybe; - mangaId: Scalars['Int']['input']; - /** This will only work if the tracker of the track record supports private tracking */ - private?: InputMaybe; - remoteId: Scalars['LongString']['input']; - trackerId: Scalars['Int']['input']; -}; - -export type BindTrackPayload = { - __typename?: 'BindTrackPayload'; - clientMutationId?: Maybe; - trackRecord: TrackRecordType; -}; - -export type BooleanFilterInput = { - distinctFrom?: InputMaybe; - distinctFromAll?: InputMaybe>; - distinctFromAny?: InputMaybe>; - equalTo?: InputMaybe; - greaterThan?: InputMaybe; - greaterThanOrEqualTo?: InputMaybe; - in?: InputMaybe>; - isNull?: InputMaybe; - lessThan?: InputMaybe; - lessThanOrEqualTo?: InputMaybe; - notDistinctFrom?: InputMaybe; - notEqualTo?: InputMaybe; - notEqualToAll?: InputMaybe>; - notEqualToAny?: InputMaybe>; - notIn?: InputMaybe>; -}; - -export type CategoryConditionInput = { - default?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - order?: InputMaybe; -}; - -export type CategoryEdge = Edge & { - __typename?: 'CategoryEdge'; - cursor: Scalars['Cursor']['output']; - node: CategoryType; -}; - -export type CategoryFilterInput = { - and?: InputMaybe>; - default?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>; - order?: InputMaybe; -}; - -export enum CategoryJobStatus { - Skipped = 'SKIPPED', - Updating = 'UPDATING' -} - -export type CategoryMetaType = MetaType & { - __typename?: 'CategoryMetaType'; - category: CategoryType; - categoryId: Scalars['Int']['output']; - key: Scalars['String']['output']; - value: Scalars['String']['output']; -}; - -export type CategoryMetaTypeInput = { - categoryId: Scalars['Int']['input']; - key: Scalars['String']['input']; - value: Scalars['String']['input']; -}; - -export type CategoryNodeList = NodeList & { - __typename?: 'CategoryNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export enum CategoryOrderBy { - Id = 'ID', - Name = 'NAME', - Order = 'ORDER' -} - -export type CategoryOrderInput = { - by: CategoryOrderBy; - byType?: InputMaybe; -}; - -export type CategoryType = { - __typename?: 'CategoryType'; - default: Scalars['Boolean']['output']; - id: Scalars['Int']['output']; - includeInDownload: IncludeOrExclude; - includeInUpdate: IncludeOrExclude; - mangas: MangaNodeList; - meta: Array; - name: Scalars['String']['output']; - order: Scalars['Int']['output']; -}; - -export type CategoryUpdateType = { - __typename?: 'CategoryUpdateType'; - category: CategoryType; - status: CategoryJobStatus; -}; - -export enum CbzMediaType { - Compatible = 'COMPATIBLE', - Legacy = 'LEGACY', - Modern = 'MODERN' -} - -export type ChapterConditionInput = { - chapterNumber?: InputMaybe; - fetchedAt?: InputMaybe; - id?: InputMaybe; - isBookmarked?: InputMaybe; - isDownloaded?: InputMaybe; - isRead?: InputMaybe; - lastPageRead?: InputMaybe; - lastReadAt?: InputMaybe; - mangaId?: InputMaybe; - name?: InputMaybe; - pageCount?: InputMaybe; - realUrl?: InputMaybe; - scanlator?: InputMaybe; - sourceOrder?: InputMaybe; - uploadDate?: InputMaybe; - url?: InputMaybe; -}; - -export type ChapterEdge = Edge & { - __typename?: 'ChapterEdge'; - cursor: Scalars['Cursor']['output']; - node: ChapterType; -}; - -export type ChapterFilterInput = { - and?: InputMaybe>; - chapterNumber?: InputMaybe; - fetchedAt?: InputMaybe; - id?: InputMaybe; - inLibrary?: InputMaybe; - isBookmarked?: InputMaybe; - isDownloaded?: InputMaybe; - isRead?: InputMaybe; - lastPageRead?: InputMaybe; - lastReadAt?: InputMaybe; - mangaId?: InputMaybe; - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>; - pageCount?: InputMaybe; - realUrl?: InputMaybe; - scanlator?: InputMaybe; - sourceOrder?: InputMaybe; - uploadDate?: InputMaybe; - url?: InputMaybe; -}; - -export type ChapterMetaType = MetaType & { - __typename?: 'ChapterMetaType'; - chapter: ChapterType; - chapterId: Scalars['Int']['output']; - key: Scalars['String']['output']; - value: Scalars['String']['output']; -}; - -export type ChapterMetaTypeInput = { - chapterId: Scalars['Int']['input']; - key: Scalars['String']['input']; - value: Scalars['String']['input']; -}; - -export type ChapterNodeList = NodeList & { - __typename?: 'ChapterNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export enum ChapterOrderBy { - ChapterNumber = 'CHAPTER_NUMBER', - FetchedAt = 'FETCHED_AT', - Id = 'ID', - LastReadAt = 'LAST_READ_AT', - Name = 'NAME', - SourceOrder = 'SOURCE_ORDER', - UploadDate = 'UPLOAD_DATE' -} - -export type ChapterOrderInput = { - by: ChapterOrderBy; - byType?: InputMaybe; -}; - -export type ChapterType = { - __typename?: 'ChapterType'; - chapterNumber: Scalars['Float']['output']; - fetchedAt: Scalars['LongString']['output']; - id: Scalars['Int']['output']; - isBookmarked: Scalars['Boolean']['output']; - isDownloaded: Scalars['Boolean']['output']; - isRead: Scalars['Boolean']['output']; - lastPageRead: Scalars['Int']['output']; - lastReadAt: Scalars['LongString']['output']; - manga: MangaType; - mangaId: Scalars['Int']['output']; - meta: Array; - name: Scalars['String']['output']; - pageCount: Scalars['Int']['output']; - realUrl?: Maybe; - scanlator?: Maybe; - sourceOrder: Scalars['Int']['output']; - uploadDate: Scalars['LongString']['output']; - url: Scalars['String']['output']; -}; - -export type CheckBoxFilter = { - __typename?: 'CheckBoxFilter'; - default: Scalars['Boolean']['output']; - name: Scalars['String']['output']; -}; - -export type CheckBoxPreference = { - __typename?: 'CheckBoxPreference'; - currentValue?: Maybe; - default: Scalars['Boolean']['output']; - enabled: Scalars['Boolean']['output']; - key?: Maybe; - summary?: Maybe; - title?: Maybe; - visible: Scalars['Boolean']['output']; -}; - -export type CheckForServerUpdatesPayload = { - __typename?: 'CheckForServerUpdatesPayload'; - channel: Scalars['String']['output']; - tag: Scalars['String']['output']; - url: Scalars['String']['output']; -}; - -export type ClearCachedImagesInput = { - cachedPages?: InputMaybe; - cachedThumbnails?: InputMaybe; - clientMutationId?: InputMaybe; - downloadedThumbnails?: InputMaybe; -}; - -export type ClearCachedImagesPayload = { - __typename?: 'ClearCachedImagesPayload'; - cachedPages?: Maybe; - cachedThumbnails?: Maybe; - clientMutationId?: Maybe; - downloadedThumbnails?: Maybe; -}; - -export type ClearDownloaderInput = { - clientMutationId?: InputMaybe; -}; - -export type ClearDownloaderPayload = { - __typename?: 'ClearDownloaderPayload'; - clientMutationId?: Maybe; - downloadStatus: DownloadStatus; -}; - -export type ConnectKoSyncAccountInput = { - clientMutationId?: InputMaybe; - password: Scalars['String']['input']; - serverAddress: Scalars['String']['input']; - username: Scalars['String']['input']; -}; - -export type CreateBackupInput = { - clientMutationId?: InputMaybe; - flags?: InputMaybe; -}; - -export type CreateBackupPayload = { - __typename?: 'CreateBackupPayload'; - clientMutationId?: Maybe; - url: Scalars['String']['output']; -}; - -export type CreateCategoryInput = { - clientMutationId?: InputMaybe; - default?: InputMaybe; - includeInDownload?: InputMaybe; - includeInUpdate?: InputMaybe; - name: Scalars['String']['input']; - order?: InputMaybe; -}; - -export type CreateCategoryPayload = { - __typename?: 'CreateCategoryPayload'; - category: CategoryType; - clientMutationId?: Maybe; -}; - -export enum DatabaseType { - H2 = 'H2', - Postgresql = 'POSTGRESQL' -} - -export type DeleteCategoryInput = { - categoryId: Scalars['Int']['input']; - clientMutationId?: InputMaybe; -}; - -export type DeleteCategoryMetaInput = { - categoryId: Scalars['Int']['input']; - clientMutationId?: InputMaybe; - key: Scalars['String']['input']; -}; - -export type DeleteCategoryMetaPayload = { - __typename?: 'DeleteCategoryMetaPayload'; - category: CategoryType; - clientMutationId?: Maybe; - meta?: Maybe; -}; - -export type DeleteCategoryMetasInput = { - clientMutationId?: InputMaybe; - items: Array; -}; - -export type DeleteCategoryMetasItemInput = { - categoryIds: Array; - keys?: InputMaybe>; - prefixes?: InputMaybe>; -}; - -export type DeleteCategoryMetasPayload = { - __typename?: 'DeleteCategoryMetasPayload'; - categories: Array; - clientMutationId?: Maybe; - metas: Array; -}; - -export type DeleteCategoryPayload = { - __typename?: 'DeleteCategoryPayload'; - category?: Maybe; - clientMutationId?: Maybe; - mangas: Array; -}; - -export type DeleteChapterMetaInput = { - chapterId: Scalars['Int']['input']; - clientMutationId?: InputMaybe; - key: Scalars['String']['input']; -}; - -export type DeleteChapterMetaPayload = { - __typename?: 'DeleteChapterMetaPayload'; - chapter: ChapterType; - clientMutationId?: Maybe; - meta?: Maybe; -}; - -export type DeleteChapterMetasInput = { - clientMutationId?: InputMaybe; - items: Array; -}; - -export type DeleteChapterMetasItemInput = { - chapterIds: Array; - keys?: InputMaybe>; - prefixes?: InputMaybe>; -}; - -export type DeleteChapterMetasPayload = { - __typename?: 'DeleteChapterMetasPayload'; - chapters: Array; - clientMutationId?: Maybe; - metas: Array; -}; - -export type DeleteDownloadedChapterInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; -}; - -export type DeleteDownloadedChapterPayload = { - __typename?: 'DeleteDownloadedChapterPayload'; - chapters: ChapterType; - clientMutationId?: Maybe; -}; - -export type DeleteDownloadedChaptersInput = { - clientMutationId?: InputMaybe; - ids: Array; -}; - -export type DeleteDownloadedChaptersPayload = { - __typename?: 'DeleteDownloadedChaptersPayload'; - chapters: Array; - clientMutationId?: Maybe; -}; - -export type DeleteGlobalMetaInput = { - clientMutationId?: InputMaybe; - key: Scalars['String']['input']; -}; - -export type DeleteGlobalMetaPayload = { - __typename?: 'DeleteGlobalMetaPayload'; - clientMutationId?: Maybe; - meta?: Maybe; -}; - -export type DeleteGlobalMetasInput = { - clientMutationId?: InputMaybe; - keys?: InputMaybe>; - prefixes?: InputMaybe>; -}; - -export type DeleteGlobalMetasPayload = { - __typename?: 'DeleteGlobalMetasPayload'; - clientMutationId?: Maybe; - metas: Array; -}; - -export type DeleteMangaMetaInput = { - clientMutationId?: InputMaybe; - key: Scalars['String']['input']; - mangaId: Scalars['Int']['input']; -}; - -export type DeleteMangaMetaPayload = { - __typename?: 'DeleteMangaMetaPayload'; - clientMutationId?: Maybe; - manga: MangaType; - meta?: Maybe; -}; - -export type DeleteMangaMetasInput = { - clientMutationId?: InputMaybe; - items: Array; -}; - -export type DeleteMangaMetasItemInput = { - keys?: InputMaybe>; - mangaIds: Array; - prefixes?: InputMaybe>; -}; - -export type DeleteMangaMetasPayload = { - __typename?: 'DeleteMangaMetasPayload'; - clientMutationId?: Maybe; - mangas: Array; - metas: Array; -}; - -export type DeleteSourceMetaInput = { - clientMutationId?: InputMaybe; - key: Scalars['String']['input']; - sourceId: Scalars['LongString']['input']; -}; - -export type DeleteSourceMetaPayload = { - __typename?: 'DeleteSourceMetaPayload'; - clientMutationId?: Maybe; - meta?: Maybe; - source?: Maybe; -}; - -export type DeleteSourceMetasInput = { - clientMutationId?: InputMaybe; - items: Array; -}; - -export type DeleteSourceMetasItemInput = { - keys?: InputMaybe>; - prefixes?: InputMaybe>; - sourceIds: Array; -}; - -export type DeleteSourceMetasPayload = { - __typename?: 'DeleteSourceMetasPayload'; - clientMutationId?: Maybe; - metas: Array; - sources: Array; -}; - -export type DequeueChapterDownloadInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; -}; - -export type DequeueChapterDownloadPayload = { - __typename?: 'DequeueChapterDownloadPayload'; - clientMutationId?: Maybe; - downloadStatus: DownloadStatus; -}; - -export type DequeueChapterDownloadsInput = { - clientMutationId?: InputMaybe; - ids: Array; -}; - -export type DequeueChapterDownloadsPayload = { - __typename?: 'DequeueChapterDownloadsPayload'; - clientMutationId?: Maybe; - downloadStatus: DownloadStatus; -}; - -export type DoubleFilterInput = { - distinctFrom?: InputMaybe; - distinctFromAll?: InputMaybe>; - distinctFromAny?: InputMaybe>; - equalTo?: InputMaybe; - greaterThan?: InputMaybe; - greaterThanOrEqualTo?: InputMaybe; - in?: InputMaybe>; - isNull?: InputMaybe; - lessThan?: InputMaybe; - lessThanOrEqualTo?: InputMaybe; - notDistinctFrom?: InputMaybe; - notEqualTo?: InputMaybe; - notEqualToAll?: InputMaybe>; - notEqualToAny?: InputMaybe>; - notIn?: InputMaybe>; -}; - -export type DownloadChangedInput = { - /** Sets a max number of updates that can be contained in a download update message.Everything above this limit will be omitted and the "downloadStatus" should be re-fetched via the corresponding query. Due to the graphql subscription execution strategy not supporting batching for data loaders, the data loaders run into the n+1 problem, which can cause the server to get unresponsive until the status update has been handled. This is an issue e.g. when mass en- or dequeuing downloads. */ - maxUpdates?: InputMaybe; -}; - -export type DownloadEdge = Edge & { - __typename?: 'DownloadEdge'; - cursor: Scalars['Cursor']['output']; - node: DownloadType; -}; - -export type DownloadNodeList = NodeList & { - __typename?: 'DownloadNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export enum DownloadState { - Downloading = 'DOWNLOADING', - Error = 'ERROR', - Finished = 'FINISHED', - Queued = 'QUEUED' -} - -export type DownloadStatus = { - __typename?: 'DownloadStatus'; - queue: Array; - state: DownloaderState; -}; - -export type DownloadType = { - __typename?: 'DownloadType'; - chapter: ChapterType; - manga: MangaType; - position: Scalars['Int']['output']; - progress: Scalars['Float']['output']; - state: DownloadState; - tries: Scalars['Int']['output']; -}; - -export type DownloadUpdate = { - __typename?: 'DownloadUpdate'; - download: DownloadType; - type: DownloadUpdateType; -}; - -export enum DownloadUpdateType { - Dequeued = 'DEQUEUED', - Error = 'ERROR', - Finished = 'FINISHED', - Paused = 'PAUSED', - Position = 'POSITION', - Progress = 'PROGRESS', - Queued = 'QUEUED', - Stopped = 'STOPPED' -} - -export type DownloadUpdates = { - __typename?: 'DownloadUpdates'; - /** The current download queue at the time of sending initial message. Is null for all following messages */ - initial?: Maybe>; - /** Indicates whether updates have been omitted based on the "maxUpdates" subscription variable. In case updates have been omitted, the "downloadStatus" query should be re-fetched. */ - omittedUpdates: Scalars['Boolean']['output']; - state: DownloaderState; - updates: Array; -}; - -export enum DownloaderState { - Started = 'STARTED', - Stopped = 'STOPPED' -} - -export type Edge = { - /** A cursor for use in pagination. */ - cursor: Scalars['Cursor']['output']; - /** The [T] at the end of the edge. */ - node: Node; -}; - -export type EditTextPreference = { - __typename?: 'EditTextPreference'; - currentValue?: Maybe; - default?: Maybe; - dialogMessage?: Maybe; - dialogTitle?: Maybe; - enabled: Scalars['Boolean']['output']; - key?: Maybe; - summary?: Maybe; - text?: Maybe; - title?: Maybe; - visible: Scalars['Boolean']['output']; -}; - -export type EnqueueChapterDownloadInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; -}; - -export type EnqueueChapterDownloadPayload = { - __typename?: 'EnqueueChapterDownloadPayload'; - clientMutationId?: Maybe; - downloadStatus: DownloadStatus; -}; - -export type EnqueueChapterDownloadsInput = { - clientMutationId?: InputMaybe; - ids: Array; -}; - -export type EnqueueChapterDownloadsPayload = { - __typename?: 'EnqueueChapterDownloadsPayload'; - clientMutationId?: Maybe; - downloadStatus: DownloadStatus; -}; - -export type ExtensionConditionInput = { - apkName?: InputMaybe; - hasUpdate?: InputMaybe; - iconUrl?: InputMaybe; - isInstalled?: InputMaybe; - isNsfw?: InputMaybe; - isObsolete?: InputMaybe; - lang?: InputMaybe; - name?: InputMaybe; - pkgName?: InputMaybe; - repo?: InputMaybe; - versionCode?: InputMaybe; - versionName?: InputMaybe; -}; - -export type ExtensionEdge = Edge & { - __typename?: 'ExtensionEdge'; - cursor: Scalars['Cursor']['output']; - node: ExtensionType; -}; - -export type ExtensionFilterInput = { - and?: InputMaybe>; - apkName?: InputMaybe; - hasUpdate?: InputMaybe; - iconUrl?: InputMaybe; - isInstalled?: InputMaybe; - isNsfw?: InputMaybe; - isObsolete?: InputMaybe; - lang?: InputMaybe; - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>; - pkgName?: InputMaybe; - repo?: InputMaybe; - versionCode?: InputMaybe; - versionName?: InputMaybe; -}; - -export type ExtensionNodeList = NodeList & { - __typename?: 'ExtensionNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export enum ExtensionOrderBy { - ApkName = 'APK_NAME', - Name = 'NAME', - PkgName = 'PKG_NAME' -} - -export type ExtensionOrderInput = { - by: ExtensionOrderBy; - byType?: InputMaybe; -}; - -export type ExtensionType = { - __typename?: 'ExtensionType'; - apkName: Scalars['String']['output']; - hasUpdate: Scalars['Boolean']['output']; - iconUrl: Scalars['String']['output']; - isInstalled: Scalars['Boolean']['output']; - isNsfw: Scalars['Boolean']['output']; - isObsolete: Scalars['Boolean']['output']; - lang: Scalars['String']['output']; - name: Scalars['String']['output']; - pkgName: Scalars['String']['output']; - repo?: Maybe; - source: SourceNodeList; - versionCode: Scalars['Int']['output']; - versionName: Scalars['String']['output']; -}; - -export type FetchChapterPagesInput = { - chapterId: Scalars['Int']['input']; - clientMutationId?: InputMaybe; - format?: InputMaybe; -}; - -export type FetchChapterPagesPayload = { - __typename?: 'FetchChapterPagesPayload'; - chapter: ChapterType; - clientMutationId?: Maybe; - pages: Array; - syncConflict?: Maybe; -}; - -export type FetchChaptersInput = { - clientMutationId?: InputMaybe; - mangaId: Scalars['Int']['input']; -}; - -export type FetchChaptersPayload = { - __typename?: 'FetchChaptersPayload'; - chapters: Array; - clientMutationId?: Maybe; -}; - -export type FetchExtensionsInput = { - clientMutationId?: InputMaybe; -}; - -export type FetchExtensionsPayload = { - __typename?: 'FetchExtensionsPayload'; - clientMutationId?: Maybe; - extensions: Array; -}; - -export type FetchMangaInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; -}; - -export type FetchMangaPayload = { - __typename?: 'FetchMangaPayload'; - clientMutationId?: Maybe; - manga: MangaType; -}; - -export type FetchSourceMangaInput = { - clientMutationId?: InputMaybe; - filters?: InputMaybe>; - page: Scalars['Int']['input']; - query?: InputMaybe; - source: Scalars['LongString']['input']; - type: FetchSourceMangaType; -}; - -export type FetchSourceMangaPayload = { - __typename?: 'FetchSourceMangaPayload'; - clientMutationId?: Maybe; - hasNextPage: Scalars['Boolean']['output']; - mangas: Array; -}; - -export enum FetchSourceMangaType { - Latest = 'LATEST', - Popular = 'POPULAR', - Search = 'SEARCH' -} - -export type FetchTrackInput = { - clientMutationId?: InputMaybe; - recordId: Scalars['Int']['input']; -}; - -export type FetchTrackPayload = { - __typename?: 'FetchTrackPayload'; - clientMutationId?: Maybe; - trackRecord: TrackRecordType; -}; - -export type Filter = CheckBoxFilter | GroupFilter | HeaderFilter | SelectFilter | SeparatorFilter | SortFilter | TextFilter | TriStateFilter; - -export type FilterChangeInput = { - checkBoxState?: InputMaybe; - groupChange?: InputMaybe; - position: Scalars['Int']['input']; - selectState?: InputMaybe; - sortState?: InputMaybe; - textState?: InputMaybe; - triState?: InputMaybe; -}; - -export type GlobalMetaNodeList = NodeList & { - __typename?: 'GlobalMetaNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export type GlobalMetaType = MetaType & { - __typename?: 'GlobalMetaType'; - key: Scalars['String']['output']; - value: Scalars['String']['output']; -}; - -export type GlobalMetaTypeInput = { - key: Scalars['String']['input']; - value: Scalars['String']['input']; -}; - -export type GroupFilter = { - __typename?: 'GroupFilter'; - filters: Array; - name: Scalars['String']['output']; -}; - -export type HeaderFilter = { - __typename?: 'HeaderFilter'; - name: Scalars['String']['output']; -}; - -export enum IncludeOrExclude { - Exclude = 'EXCLUDE', - Include = 'INCLUDE', - Unset = 'UNSET' -} - -export type InstallExternalExtensionInput = { - clientMutationId?: InputMaybe; - extensionFile: Scalars['Upload']['input']; -}; - -export type InstallExternalExtensionPayload = { - __typename?: 'InstallExternalExtensionPayload'; - clientMutationId?: Maybe; - extension: ExtensionType; -}; - -export type IntFilterInput = { - distinctFrom?: InputMaybe; - distinctFromAll?: InputMaybe>; - distinctFromAny?: InputMaybe>; - equalTo?: InputMaybe; - greaterThan?: InputMaybe; - greaterThanOrEqualTo?: InputMaybe; - in?: InputMaybe>; - isNull?: InputMaybe; - lessThan?: InputMaybe; - lessThanOrEqualTo?: InputMaybe; - notDistinctFrom?: InputMaybe; - notEqualTo?: InputMaybe; - notEqualToAll?: InputMaybe>; - notEqualToAny?: InputMaybe>; - notIn?: InputMaybe>; -}; - -export type KoSyncConnectPayload = { - __typename?: 'KoSyncConnectPayload'; - clientMutationId?: Maybe; - message?: Maybe; - status: KoSyncStatusPayload; -}; - -export type KoSyncStatusPayload = { - __typename?: 'KoSyncStatusPayload'; - isLoggedIn: Scalars['Boolean']['output']; - serverAddress?: Maybe; - username?: Maybe; -}; - -export enum KoreaderSyncChecksumMethod { - Binary = 'BINARY', - Filename = 'FILENAME' -} - -export enum KoreaderSyncConflictStrategy { - Disabled = 'DISABLED', - KeepLocal = 'KEEP_LOCAL', - KeepRemote = 'KEEP_REMOTE', - Prompt = 'PROMPT' -} - -export enum KoreaderSyncLegacyStrategy { - Disabled = 'DISABLED', - Prompt = 'PROMPT', - Receive = 'RECEIVE', - Send = 'SEND', - Silent = 'SILENT' -} - -export type LastUpdateTimestampPayload = { - __typename?: 'LastUpdateTimestampPayload'; - timestamp: Scalars['LongString']['output']; -}; - -export type LibraryUpdateStatus = { - __typename?: 'LibraryUpdateStatus'; - categoryUpdates: Array; - jobsInfo: UpdaterJobsInfoType; - mangaUpdates: Array; -}; - -export type LibraryUpdateStatusChangedInput = { - /** Sets a max number of updates that can be contained in a updater update message.Everything above this limit will be omitted and the "updateStatus" should be re-fetched via the corresponding query. Due to the graphql subscription execution strategy not supporting batching for data loaders, the data loaders run into the n+1 problem, which can cause the server to get unresponsive until the status update has been handled. This is an issue e.g. when starting an update. */ - maxUpdates?: InputMaybe; -}; - -export type ListPreference = { - __typename?: 'ListPreference'; - currentValue?: Maybe; - default?: Maybe; - enabled: Scalars['Boolean']['output']; - entries: Array; - entryValues: Array; - key?: Maybe; - summary?: Maybe; - title?: Maybe; - visible: Scalars['Boolean']['output']; -}; - -export type LoginInput = { - clientMutationId?: InputMaybe; - password: Scalars['String']['input']; - username: Scalars['String']['input']; -}; - -export type LoginPayload = { - __typename?: 'LoginPayload'; - accessToken: Scalars['String']['output']; - clientMutationId?: Maybe; - refreshToken: Scalars['String']['output']; -}; - -export type LoginTrackerCredentialsInput = { - clientMutationId?: InputMaybe; - password: Scalars['String']['input']; - trackerId: Scalars['Int']['input']; - username: Scalars['String']['input']; -}; - -export type LoginTrackerCredentialsPayload = { - __typename?: 'LoginTrackerCredentialsPayload'; - clientMutationId?: Maybe; - isLoggedIn: Scalars['Boolean']['output']; - tracker: TrackerType; -}; - -export type LoginTrackerOAuthInput = { - callbackUrl: Scalars['String']['input']; - clientMutationId?: InputMaybe; - trackerId: Scalars['Int']['input']; -}; - -export type LoginTrackerOAuthPayload = { - __typename?: 'LoginTrackerOAuthPayload'; - clientMutationId?: Maybe; - isLoggedIn: Scalars['Boolean']['output']; - tracker: TrackerType; -}; - -export type LogoutKoSyncAccountInput = { - clientMutationId?: InputMaybe; -}; - -export type LogoutKoSyncAccountPayload = { - __typename?: 'LogoutKoSyncAccountPayload'; - clientMutationId?: Maybe; - status: KoSyncStatusPayload; -}; - -export type LogoutTrackerInput = { - clientMutationId?: InputMaybe; - trackerId: Scalars['Int']['input']; -}; - -export type LogoutTrackerPayload = { - __typename?: 'LogoutTrackerPayload'; - clientMutationId?: Maybe; - isLoggedIn: Scalars['Boolean']['output']; - tracker: TrackerType; -}; - -export type LongFilterInput = { - distinctFrom?: InputMaybe; - distinctFromAll?: InputMaybe>; - distinctFromAny?: InputMaybe>; - equalTo?: InputMaybe; - greaterThan?: InputMaybe; - greaterThanOrEqualTo?: InputMaybe; - in?: InputMaybe>; - isNull?: InputMaybe; - lessThan?: InputMaybe; - lessThanOrEqualTo?: InputMaybe; - notDistinctFrom?: InputMaybe; - notEqualTo?: InputMaybe; - notEqualToAll?: InputMaybe>; - notEqualToAny?: InputMaybe>; - notIn?: InputMaybe>; -}; - -export type MangaConditionInput = { - artist?: InputMaybe; - author?: InputMaybe; - categoryIds?: InputMaybe>; - chaptersLastFetchedAt?: InputMaybe; - description?: InputMaybe; - genre?: InputMaybe>; - id?: InputMaybe; - inLibrary?: InputMaybe; - inLibraryAt?: InputMaybe; - initialized?: InputMaybe; - lastFetchedAt?: InputMaybe; - realUrl?: InputMaybe; - sourceId?: InputMaybe; - status?: InputMaybe; - thumbnailUrl?: InputMaybe; - title?: InputMaybe; - url?: InputMaybe; -}; - -export type MangaEdge = Edge & { - __typename?: 'MangaEdge'; - cursor: Scalars['Cursor']['output']; - node: MangaType; -}; - -export type MangaFilterInput = { - and?: InputMaybe>; - artist?: InputMaybe; - author?: InputMaybe; - categoryId?: InputMaybe; - chaptersLastFetchedAt?: InputMaybe; - description?: InputMaybe; - genre?: InputMaybe; - id?: InputMaybe; - inLibrary?: InputMaybe; - inLibraryAt?: InputMaybe; - initialized?: InputMaybe; - lastFetchedAt?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>; - realUrl?: InputMaybe; - sourceId?: InputMaybe; - status?: InputMaybe; - thumbnailUrl?: InputMaybe; - title?: InputMaybe; - url?: InputMaybe; -}; - -export enum MangaJobStatus { - Complete = 'COMPLETE', - Failed = 'FAILED', - Pending = 'PENDING', - Running = 'RUNNING', - Skipped = 'SKIPPED' -} - -export type MangaMetaType = MetaType & { - __typename?: 'MangaMetaType'; - key: Scalars['String']['output']; - manga: MangaType; - mangaId: Scalars['Int']['output']; - value: Scalars['String']['output']; -}; - -export type MangaMetaTypeInput = { - key: Scalars['String']['input']; - mangaId: Scalars['Int']['input']; - value: Scalars['String']['input']; -}; - -export type MangaNodeList = NodeList & { - __typename?: 'MangaNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export enum MangaOrderBy { - Id = 'ID', - InLibraryAt = 'IN_LIBRARY_AT', - LastFetchedAt = 'LAST_FETCHED_AT', - Title = 'TITLE' -} - -export type MangaOrderInput = { - by: MangaOrderBy; - byType?: InputMaybe; -}; - -export enum MangaStatus { - Cancelled = 'CANCELLED', - Completed = 'COMPLETED', - Licensed = 'LICENSED', - Ongoing = 'ONGOING', - OnHiatus = 'ON_HIATUS', - PublishingFinished = 'PUBLISHING_FINISHED', - Unknown = 'UNKNOWN' -} - -export type MangaStatusFilterInput = { - distinctFrom?: InputMaybe; - distinctFromAll?: InputMaybe>; - distinctFromAny?: InputMaybe>; - equalTo?: InputMaybe; - greaterThan?: InputMaybe; - greaterThanOrEqualTo?: InputMaybe; - in?: InputMaybe>; - isNull?: InputMaybe; - lessThan?: InputMaybe; - lessThanOrEqualTo?: InputMaybe; - notDistinctFrom?: InputMaybe; - notEqualTo?: InputMaybe; - notEqualToAll?: InputMaybe>; - notEqualToAny?: InputMaybe>; - notIn?: InputMaybe>; -}; - -export type MangaType = { - __typename?: 'MangaType'; - age?: Maybe; - artist?: Maybe; - author?: Maybe; - bookmarkCount: Scalars['Int']['output']; - categories: CategoryNodeList; - chapters: ChapterNodeList; - chaptersAge?: Maybe; - chaptersLastFetchedAt?: Maybe; - description?: Maybe; - downloadCount: Scalars['Int']['output']; - firstUnreadChapter?: Maybe; - genre: Array; - hasDuplicateChapters: Scalars['Boolean']['output']; - highestNumberedChapter?: Maybe; - id: Scalars['Int']['output']; - inLibrary: Scalars['Boolean']['output']; - inLibraryAt: Scalars['LongString']['output']; - initialized: Scalars['Boolean']['output']; - lastFetchedAt?: Maybe; - lastReadChapter?: Maybe; - latestFetchedChapter?: Maybe; - latestReadChapter?: Maybe; - latestUploadedChapter?: Maybe; - meta: Array; - realUrl?: Maybe; - source?: Maybe; - sourceId: Scalars['LongString']['output']; - status: MangaStatus; - thumbnailUrl?: Maybe; - thumbnailUrlLastFetched?: Maybe; - title: Scalars['String']['output']; - trackRecords: TrackRecordNodeList; - unreadCount: Scalars['Int']['output']; - updateStrategy: UpdateStrategy; - url: Scalars['String']['output']; -}; - -export type MangaUpdateType = { - __typename?: 'MangaUpdateType'; - manga: MangaType; - status: MangaJobStatus; -}; - -export type MetaConditionInput = { - key?: InputMaybe; - value?: InputMaybe; -}; - -export type MetaEdge = Edge & { - __typename?: 'MetaEdge'; - cursor: Scalars['Cursor']['output']; - node: GlobalMetaType; -}; - -export type MetaFilterInput = { - and?: InputMaybe>; - key?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>; - value?: InputMaybe; -}; - -export type MetaInput = { - key: Scalars['String']['input']; - value: Scalars['String']['input']; -}; - -export enum MetaOrderBy { - Key = 'KEY', - Value = 'VALUE' -} - -export type MetaOrderInput = { - by: MetaOrderBy; - byType?: InputMaybe; -}; - -export type MetaType = { - key: Scalars['String']['output']; - value: Scalars['String']['output']; -}; - -export type MultiSelectListPreference = { - __typename?: 'MultiSelectListPreference'; - currentValue?: Maybe>; - default?: Maybe>; - dialogMessage?: Maybe; - dialogTitle?: Maybe; - enabled: Scalars['Boolean']['output']; - entries: Array; - entryValues: Array; - key?: Maybe; - summary?: Maybe; - title?: Maybe; - visible: Scalars['Boolean']['output']; -}; - -export type Mutation = { - __typename?: 'Mutation'; - bindTrack: BindTrackPayload; - clearCachedImages: ClearCachedImagesPayload; - clearDownloader?: Maybe; - connectKoSyncAccount: KoSyncConnectPayload; - createBackup: CreateBackupPayload; - createCategory?: Maybe; - deleteCategory?: Maybe; - deleteCategoryMeta?: Maybe; - deleteCategoryMetas?: Maybe; - deleteChapterMeta?: Maybe; - deleteChapterMetas?: Maybe; - deleteDownloadedChapter?: Maybe; - deleteDownloadedChapters?: Maybe; - deleteGlobalMeta?: Maybe; - deleteGlobalMetas?: Maybe; - deleteMangaMeta?: Maybe; - deleteMangaMetas?: Maybe; - deleteSourceMeta?: Maybe; - deleteSourceMetas?: Maybe; - dequeueChapterDownload?: Maybe; - dequeueChapterDownloads?: Maybe; - enqueueChapterDownload?: Maybe; - enqueueChapterDownloads?: Maybe; - fetchChapterPages?: Maybe; - fetchChapters?: Maybe; - fetchExtensions?: Maybe; - fetchManga?: Maybe; - fetchSourceManga?: Maybe; - fetchTrack: FetchTrackPayload; - installExternalExtension?: Maybe; - login: LoginPayload; - loginTrackerCredentials: LoginTrackerCredentialsPayload; - loginTrackerOAuth: LoginTrackerOAuthPayload; - logoutKoSyncAccount: LogoutKoSyncAccountPayload; - logoutTracker: LogoutTrackerPayload; - pullKoSyncProgress?: Maybe; - pushKoSyncProgress?: Maybe; - refreshToken: RefreshTokenPayload; - reorderChapterDownload?: Maybe; - resetSettings: ResetSettingsPayload; - resetWebUIUpdateStatus?: Maybe; - restoreBackup: RestoreBackupPayload; - setCategoryMeta?: Maybe; - setCategoryMetas?: Maybe; - setChapterMeta?: Maybe; - setChapterMetas?: Maybe; - setGlobalMeta?: Maybe; - setGlobalMetas?: Maybe; - setMangaMeta?: Maybe; - setMangaMetas?: Maybe; - setSettings: SetSettingsPayload; - setSourceMeta?: Maybe; - setSourceMetas?: Maybe; - startDownloader?: Maybe; - stopDownloader?: Maybe; - trackProgress?: Maybe; - unbindTrack: UnbindTrackPayload; - updateCategories?: Maybe; - updateCategory?: Maybe; - updateCategoryManga?: Maybe; - updateCategoryOrder?: Maybe; - updateChapter?: Maybe; - updateChapters?: Maybe; - updateExtension?: Maybe; - updateExtensions?: Maybe; - updateLibrary?: Maybe; - updateLibraryManga?: Maybe; - updateManga?: Maybe; - updateMangaCategories?: Maybe; - updateMangas?: Maybe; - updateMangasCategories?: Maybe; - updateSourcePreference?: Maybe; - updateStop: UpdateStopPayload; - updateTrack: UpdateTrackPayload; - updateWebUI?: Maybe; -}; - - -export type MutationBindTrackArgs = { - input: BindTrackInput; -}; - - -export type MutationClearCachedImagesArgs = { - input: ClearCachedImagesInput; -}; - - -export type MutationClearDownloaderArgs = { - input: ClearDownloaderInput; -}; - - -export type MutationConnectKoSyncAccountArgs = { - input: ConnectKoSyncAccountInput; -}; - - -export type MutationCreateBackupArgs = { - input?: InputMaybe; -}; - - -export type MutationCreateCategoryArgs = { - input: CreateCategoryInput; -}; - - -export type MutationDeleteCategoryArgs = { - input: DeleteCategoryInput; -}; - - -export type MutationDeleteCategoryMetaArgs = { - input: DeleteCategoryMetaInput; -}; - - -export type MutationDeleteCategoryMetasArgs = { - input: DeleteCategoryMetasInput; -}; - - -export type MutationDeleteChapterMetaArgs = { - input: DeleteChapterMetaInput; -}; - - -export type MutationDeleteChapterMetasArgs = { - input: DeleteChapterMetasInput; -}; - - -export type MutationDeleteDownloadedChapterArgs = { - input: DeleteDownloadedChapterInput; -}; - - -export type MutationDeleteDownloadedChaptersArgs = { - input: DeleteDownloadedChaptersInput; -}; - - -export type MutationDeleteGlobalMetaArgs = { - input: DeleteGlobalMetaInput; -}; - - -export type MutationDeleteGlobalMetasArgs = { - input: DeleteGlobalMetasInput; -}; - - -export type MutationDeleteMangaMetaArgs = { - input: DeleteMangaMetaInput; -}; - - -export type MutationDeleteMangaMetasArgs = { - input: DeleteMangaMetasInput; -}; - - -export type MutationDeleteSourceMetaArgs = { - input: DeleteSourceMetaInput; -}; - - -export type MutationDeleteSourceMetasArgs = { - input: DeleteSourceMetasInput; -}; - - -export type MutationDequeueChapterDownloadArgs = { - input: DequeueChapterDownloadInput; -}; - - -export type MutationDequeueChapterDownloadsArgs = { - input: DequeueChapterDownloadsInput; -}; - - -export type MutationEnqueueChapterDownloadArgs = { - input: EnqueueChapterDownloadInput; -}; - - -export type MutationEnqueueChapterDownloadsArgs = { - input: EnqueueChapterDownloadsInput; -}; - - -export type MutationFetchChapterPagesArgs = { - input: FetchChapterPagesInput; -}; - - -export type MutationFetchChaptersArgs = { - input: FetchChaptersInput; -}; - - -export type MutationFetchExtensionsArgs = { - input: FetchExtensionsInput; -}; - - -export type MutationFetchMangaArgs = { - input: FetchMangaInput; -}; - - -export type MutationFetchSourceMangaArgs = { - input: FetchSourceMangaInput; -}; - - -export type MutationFetchTrackArgs = { - input: FetchTrackInput; -}; - - -export type MutationInstallExternalExtensionArgs = { - input: InstallExternalExtensionInput; -}; - - -export type MutationLoginArgs = { - input: LoginInput; -}; - - -export type MutationLoginTrackerCredentialsArgs = { - input: LoginTrackerCredentialsInput; -}; - - -export type MutationLoginTrackerOAuthArgs = { - input: LoginTrackerOAuthInput; -}; - - -export type MutationLogoutKoSyncAccountArgs = { - input: LogoutKoSyncAccountInput; -}; - - -export type MutationLogoutTrackerArgs = { - input: LogoutTrackerInput; -}; - - -export type MutationPullKoSyncProgressArgs = { - input: PullKoSyncProgressInput; -}; - - -export type MutationPushKoSyncProgressArgs = { - input: PushKoSyncProgressInput; -}; - - -export type MutationRefreshTokenArgs = { - input: RefreshTokenInput; -}; - - -export type MutationReorderChapterDownloadArgs = { - input: ReorderChapterDownloadInput; -}; - - -export type MutationResetSettingsArgs = { - input: ResetSettingsInput; -}; - - -export type MutationRestoreBackupArgs = { - input: RestoreBackupInput; -}; - - -export type MutationSetCategoryMetaArgs = { - input: SetCategoryMetaInput; -}; - - -export type MutationSetCategoryMetasArgs = { - input: SetCategoryMetasInput; -}; - - -export type MutationSetChapterMetaArgs = { - input: SetChapterMetaInput; -}; - - -export type MutationSetChapterMetasArgs = { - input: SetChapterMetasInput; -}; - - -export type MutationSetGlobalMetaArgs = { - input: SetGlobalMetaInput; -}; - - -export type MutationSetGlobalMetasArgs = { - input: SetGlobalMetasInput; -}; - - -export type MutationSetMangaMetaArgs = { - input: SetMangaMetaInput; -}; - - -export type MutationSetMangaMetasArgs = { - input: SetMangaMetasInput; -}; - - -export type MutationSetSettingsArgs = { - input: SetSettingsInput; -}; - - -export type MutationSetSourceMetaArgs = { - input: SetSourceMetaInput; -}; - - -export type MutationSetSourceMetasArgs = { - input: SetSourceMetasInput; -}; - - -export type MutationStartDownloaderArgs = { - input: StartDownloaderInput; -}; - - -export type MutationStopDownloaderArgs = { - input: StopDownloaderInput; -}; - - -export type MutationTrackProgressArgs = { - input: TrackProgressInput; -}; - - -export type MutationUnbindTrackArgs = { - input: UnbindTrackInput; -}; - - -export type MutationUpdateCategoriesArgs = { - input: UpdateCategoriesInput; -}; - - -export type MutationUpdateCategoryArgs = { - input: UpdateCategoryInput; -}; - - -export type MutationUpdateCategoryMangaArgs = { - input: UpdateCategoryMangaInput; -}; - - -export type MutationUpdateCategoryOrderArgs = { - input: UpdateCategoryOrderInput; -}; - - -export type MutationUpdateChapterArgs = { - input: UpdateChapterInput; -}; - - -export type MutationUpdateChaptersArgs = { - input: UpdateChaptersInput; -}; - - -export type MutationUpdateExtensionArgs = { - input: UpdateExtensionInput; -}; - - -export type MutationUpdateExtensionsArgs = { - input: UpdateExtensionsInput; -}; - - -export type MutationUpdateLibraryArgs = { - input: UpdateLibraryInput; -}; - - -export type MutationUpdateLibraryMangaArgs = { - input: UpdateLibraryMangaInput; -}; - - -export type MutationUpdateMangaArgs = { - input: UpdateMangaInput; -}; - - -export type MutationUpdateMangaCategoriesArgs = { - input: UpdateMangaCategoriesInput; -}; - - -export type MutationUpdateMangasArgs = { - input: UpdateMangasInput; -}; - - -export type MutationUpdateMangasCategoriesArgs = { - input: UpdateMangasCategoriesInput; -}; - - -export type MutationUpdateSourcePreferenceArgs = { - input: UpdateSourcePreferenceInput; -}; - - -export type MutationUpdateStopArgs = { - input: UpdateStopInput; -}; - - -export type MutationUpdateTrackArgs = { - input: UpdateTrackInput; -}; - - -export type MutationUpdateWebUiArgs = { - input: WebUiUpdateInput; -}; - -export type Node = CategoryMetaType | CategoryType | ChapterMetaType | ChapterType | DownloadType | DownloadUpdate | ExtensionType | GlobalMetaType | MangaMetaType | MangaType | PartialSettingsType | SettingsType | SourceMetaType | SourceType | TrackRecordType | TrackerType; - -export type NodeList = { - /** A list of edges which contains the [T] and cursor to aid in pagination. */ - edges: Array; - /** A list of [T] objects. */ - nodes: Array; - /** Information to aid in pagination. */ - pageInfo: PageInfo; - /** The count of all nodes you could get from the connection. */ - totalCount: Scalars['Int']['output']; -}; - -export type PageInfo = { - __typename?: 'PageInfo'; - /** When paginating forwards, the cursor to continue. */ - endCursor?: Maybe; - /** When paginating forwards, are there more items? */ - hasNextPage: Scalars['Boolean']['output']; - /** When paginating backwards, are there more items? */ - hasPreviousPage: Scalars['Boolean']['output']; - /** When paginating backwards, the cursor to continue. */ - startCursor?: Maybe; -}; - -export type PartialBackupFlagsInput = { - includeCategories?: InputMaybe; - includeChapters?: InputMaybe; - includeClientData?: InputMaybe; - includeHistory?: InputMaybe; - includeManga?: InputMaybe; - includeServerSettings?: InputMaybe; - includeTracking?: InputMaybe; -}; - -export type PartialSettingsType = Settings & { - __typename?: 'PartialSettingsType'; - authMode?: Maybe; - authPassword?: Maybe; - authUsername?: Maybe; - autoBackupIncludeCategories?: Maybe; - autoBackupIncludeChapters?: Maybe; - autoBackupIncludeClientData?: Maybe; - autoBackupIncludeHistory?: Maybe; - autoBackupIncludeManga?: Maybe; - autoBackupIncludeServerSettings?: Maybe; - autoBackupIncludeTracking?: Maybe; - /** @deprecated Replaced with autoDownloadNewChaptersLimit, replace with autoDownloadNewChaptersLimit */ - autoDownloadAheadLimit?: Maybe; - autoDownloadIgnoreReUploads?: Maybe; - autoDownloadNewChapters?: Maybe; - autoDownloadNewChaptersLimit?: Maybe; - backupInterval?: Maybe; - backupPath?: Maybe; - backupTTL?: Maybe; - backupTime?: Maybe; - /** @deprecated Removed - prefer authMode, replace with authMode */ - basicAuthEnabled?: Maybe; - /** @deprecated Removed - prefer authPassword, replace with authPassword */ - basicAuthPassword?: Maybe; - /** @deprecated Removed - prefer authUsername, replace with authUsername */ - basicAuthUsername?: Maybe; - databasePassword?: Maybe; - databaseType?: Maybe; - databaseUrl?: Maybe; - databaseUsername?: Maybe; - debugLogsEnabled?: Maybe; - downloadAsCbz?: Maybe; - downloadConversions?: Maybe>; - downloadsPath?: Maybe; - electronPath?: Maybe; - excludeCompleted?: Maybe; - excludeEntryWithUnreadChapters?: Maybe; - excludeNotStarted?: Maybe; - excludeUnreadChapters?: Maybe; - extensionRepos?: Maybe>; - flareSolverrAsResponseFallback?: Maybe; - flareSolverrEnabled?: Maybe; - flareSolverrSessionName?: Maybe; - flareSolverrSessionTtl?: Maybe; - flareSolverrTimeout?: Maybe; - flareSolverrUrl?: Maybe; - globalUpdateInterval?: Maybe; - /** @deprecated Removed - does not do anything */ - gqlDebugLogsEnabled?: Maybe; - initialOpenInBrowserEnabled?: Maybe; - ip?: Maybe; - jwtAudience?: Maybe; - jwtRefreshExpiry?: Maybe; - jwtTokenExpiry?: Maybe; - koreaderSyncChecksumMethod?: Maybe; - /** @deprecated Moved to preference store. Is supposed to be random and gets auto generated, replace with MOVE TO PREFERENCES */ - koreaderSyncDeviceId?: Maybe; - koreaderSyncPercentageTolerance?: Maybe; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncServerUrl?: Maybe; - /** @deprecated Replaced with koreaderSyncStrategyForward and koreaderSyncStrategyBackward, replace with koreaderSyncStrategyForward, koreaderSyncStrategyBackward */ - koreaderSyncStrategy?: Maybe; - koreaderSyncStrategyBackward?: Maybe; - koreaderSyncStrategyForward?: Maybe; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncUserkey?: Maybe; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncUsername?: Maybe; - localSourcePath?: Maybe; - maxLogFileSize?: Maybe; - maxLogFiles?: Maybe; - maxLogFolderSize?: Maybe; - maxSourcesInParallel?: Maybe; - opdsCbzMimetype?: Maybe; - opdsChapterSortOrder?: Maybe; - opdsEnablePageReadProgress?: Maybe; - opdsItemsPerPage?: Maybe; - opdsMarkAsReadOnDownload?: Maybe; - opdsShowOnlyDownloadedChapters?: Maybe; - opdsShowOnlyUnreadChapters?: Maybe; - opdsUseBinaryFileSizes?: Maybe; - port?: Maybe; - serveConversions?: Maybe>; - socksProxyEnabled?: Maybe; - socksProxyHost?: Maybe; - socksProxyPassword?: Maybe; - socksProxyPort?: Maybe; - socksProxyUsername?: Maybe; - socksProxyVersion?: Maybe; - systemTrayEnabled?: Maybe; - updateMangas?: Maybe; - useHikariConnectionPool?: Maybe; - webUIChannel?: Maybe; - webUIFlavor?: Maybe; - webUIInterface?: Maybe; - webUIUpdateCheckInterval?: Maybe; -}; - -export type PartialSettingsTypeInput = { - authMode?: InputMaybe; - authPassword?: InputMaybe; - authUsername?: InputMaybe; - autoBackupIncludeCategories?: InputMaybe; - autoBackupIncludeChapters?: InputMaybe; - autoBackupIncludeClientData?: InputMaybe; - autoBackupIncludeHistory?: InputMaybe; - autoBackupIncludeManga?: InputMaybe; - autoBackupIncludeServerSettings?: InputMaybe; - autoBackupIncludeTracking?: InputMaybe; - autoDownloadIgnoreReUploads?: InputMaybe; - autoDownloadNewChapters?: InputMaybe; - autoDownloadNewChaptersLimit?: InputMaybe; - backupInterval?: InputMaybe; - backupPath?: InputMaybe; - backupTTL?: InputMaybe; - backupTime?: InputMaybe; - databasePassword?: InputMaybe; - databaseType?: InputMaybe; - databaseUrl?: InputMaybe; - databaseUsername?: InputMaybe; - debugLogsEnabled?: InputMaybe; - downloadAsCbz?: InputMaybe; - downloadConversions?: InputMaybe>; - downloadsPath?: InputMaybe; - electronPath?: InputMaybe; - excludeCompleted?: InputMaybe; - excludeEntryWithUnreadChapters?: InputMaybe; - excludeNotStarted?: InputMaybe; - excludeUnreadChapters?: InputMaybe; - extensionRepos?: InputMaybe>; - flareSolverrAsResponseFallback?: InputMaybe; - flareSolverrEnabled?: InputMaybe; - flareSolverrSessionName?: InputMaybe; - flareSolverrSessionTtl?: InputMaybe; - flareSolverrTimeout?: InputMaybe; - flareSolverrUrl?: InputMaybe; - globalUpdateInterval?: InputMaybe; - initialOpenInBrowserEnabled?: InputMaybe; - ip?: InputMaybe; - jwtAudience?: InputMaybe; - jwtRefreshExpiry?: InputMaybe; - jwtTokenExpiry?: InputMaybe; - koreaderSyncChecksumMethod?: InputMaybe; - koreaderSyncPercentageTolerance?: InputMaybe; - koreaderSyncStrategyBackward?: InputMaybe; - koreaderSyncStrategyForward?: InputMaybe; - localSourcePath?: InputMaybe; - maxLogFileSize?: InputMaybe; - maxLogFiles?: InputMaybe; - maxLogFolderSize?: InputMaybe; - maxSourcesInParallel?: InputMaybe; - opdsCbzMimetype?: InputMaybe; - opdsChapterSortOrder?: InputMaybe; - opdsEnablePageReadProgress?: InputMaybe; - opdsItemsPerPage?: InputMaybe; - opdsMarkAsReadOnDownload?: InputMaybe; - opdsShowOnlyDownloadedChapters?: InputMaybe; - opdsShowOnlyUnreadChapters?: InputMaybe; - opdsUseBinaryFileSizes?: InputMaybe; - port?: InputMaybe; - serveConversions?: InputMaybe>; - socksProxyEnabled?: InputMaybe; - socksProxyHost?: InputMaybe; - socksProxyPassword?: InputMaybe; - socksProxyPort?: InputMaybe; - socksProxyUsername?: InputMaybe; - socksProxyVersion?: InputMaybe; - systemTrayEnabled?: InputMaybe; - updateMangas?: InputMaybe; - useHikariConnectionPool?: InputMaybe; - webUIChannel?: InputMaybe; - webUIFlavor?: InputMaybe; - webUIInterface?: InputMaybe; - webUIUpdateCheckInterval?: InputMaybe; -}; - -export type Preference = CheckBoxPreference | EditTextPreference | ListPreference | MultiSelectListPreference | SwitchPreference; - -export type PullKoSyncProgressInput = { - chapterId: Scalars['Int']['input']; - clientMutationId?: InputMaybe; -}; - -export type PullKoSyncProgressPayload = { - __typename?: 'PullKoSyncProgressPayload'; - chapter?: Maybe; - clientMutationId?: Maybe; - syncConflict?: Maybe; -}; - -export type PushKoSyncProgressInput = { - chapterId: Scalars['Int']['input']; - clientMutationId?: InputMaybe; -}; - -export type PushKoSyncProgressPayload = { - __typename?: 'PushKoSyncProgressPayload'; - chapter?: Maybe; - clientMutationId?: Maybe; - success: Scalars['Boolean']['output']; -}; - -export type Query = { - __typename?: 'Query'; - aboutServer: AboutServerPayload; - aboutWebUI: AboutWebUi; - categories: CategoryNodeList; - category: CategoryType; - chapter: ChapterType; - chapters: ChapterNodeList; - checkForServerUpdates: Array; - checkForWebUIUpdate: WebUiUpdateCheck; - downloadStatus: DownloadStatus; - extension: ExtensionType; - extensions: ExtensionNodeList; - getWebUIUpdateStatus: WebUiUpdateStatus; - koSyncStatus: KoSyncStatusPayload; - lastUpdateTimestamp: LastUpdateTimestampPayload; - libraryUpdateStatus: LibraryUpdateStatus; - manga: MangaType; - mangas: MangaNodeList; - meta: GlobalMetaType; - metas: GlobalMetaNodeList; - restoreStatus?: Maybe; - searchTracker: SearchTrackerPayload; - settings: SettingsType; - source: SourceType; - sources: SourceNodeList; - trackRecord: TrackRecordType; - trackRecords: TrackRecordNodeList; - tracker: TrackerType; - trackers: TrackerNodeList; - /** @deprecated Replaced with libraryUpdateStatus, replace with libraryUpdateStatus */ - updateStatus: UpdateStatus; - validateBackup: ValidateBackupResult; -}; - - -export type QueryCategoriesArgs = { - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe>; - orderBy?: InputMaybe; - orderByType?: InputMaybe; -}; - - -export type QueryCategoryArgs = { - id: Scalars['Int']['input']; -}; - - -export type QueryChapterArgs = { - id: Scalars['Int']['input']; -}; - - -export type QueryChaptersArgs = { - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe>; - orderBy?: InputMaybe; - orderByType?: InputMaybe; -}; - - -export type QueryExtensionArgs = { - pkgName: Scalars['String']['input']; -}; - - -export type QueryExtensionsArgs = { - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe>; - orderBy?: InputMaybe; - orderByType?: InputMaybe; -}; - - -export type QueryMangaArgs = { - id: Scalars['Int']['input']; -}; - - -export type QueryMangasArgs = { - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe>; - orderBy?: InputMaybe; - orderByType?: InputMaybe; -}; - - -export type QueryMetaArgs = { - key: Scalars['String']['input']; -}; - - -export type QueryMetasArgs = { - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe>; - orderBy?: InputMaybe; - orderByType?: InputMaybe; -}; - - -export type QueryRestoreStatusArgs = { - id: Scalars['String']['input']; -}; - - -export type QuerySearchTrackerArgs = { - input: SearchTrackerInput; -}; - - -export type QuerySourceArgs = { - id: Scalars['LongString']['input']; -}; - - -export type QuerySourcesArgs = { - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe>; - orderBy?: InputMaybe; - orderByType?: InputMaybe; -}; - - -export type QueryTrackRecordArgs = { - id: Scalars['Int']['input']; -}; - - -export type QueryTrackRecordsArgs = { - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe>; - orderBy?: InputMaybe; - orderByType?: InputMaybe; -}; - - -export type QueryTrackerArgs = { - id: Scalars['Int']['input']; -}; - - -export type QueryTrackersArgs = { - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe>; - orderBy?: InputMaybe; - orderByType?: InputMaybe; -}; - - -export type QueryValidateBackupArgs = { - input: ValidateBackupInput; -}; - -export type RefreshTokenInput = { - clientMutationId?: InputMaybe; - refreshToken: Scalars['String']['input']; -}; - -export type RefreshTokenPayload = { - __typename?: 'RefreshTokenPayload'; - accessToken: Scalars['String']['output']; - clientMutationId?: Maybe; -}; - -export type ReorderChapterDownloadInput = { - chapterId: Scalars['Int']['input']; - clientMutationId?: InputMaybe; - to: Scalars['Int']['input']; -}; - -export type ReorderChapterDownloadPayload = { - __typename?: 'ReorderChapterDownloadPayload'; - clientMutationId?: Maybe; - downloadStatus: DownloadStatus; -}; - -export type ResetSettingsInput = { - clientMutationId?: InputMaybe; -}; - -export type ResetSettingsPayload = { - __typename?: 'ResetSettingsPayload'; - clientMutationId?: Maybe; - settings: SettingsType; -}; - -export type RestoreBackupInput = { - backup: Scalars['Upload']['input']; - clientMutationId?: InputMaybe; - flags?: InputMaybe; -}; - -export type RestoreBackupPayload = { - __typename?: 'RestoreBackupPayload'; - clientMutationId?: Maybe; - id: Scalars['String']['output']; - status?: Maybe; -}; - -export type SearchTrackerInput = { - query: Scalars['String']['input']; - trackerId: Scalars['Int']['input']; -}; - -export type SearchTrackerPayload = { - __typename?: 'SearchTrackerPayload'; - trackSearches: Array; -}; - -export type SelectFilter = { - __typename?: 'SelectFilter'; - default: Scalars['Int']['output']; - name: Scalars['String']['output']; - values: Array; -}; - -export type SeparatorFilter = { - __typename?: 'SeparatorFilter'; - name: Scalars['String']['output']; -}; - -export type SetCategoryMetaInput = { - clientMutationId?: InputMaybe; - meta: CategoryMetaTypeInput; -}; - -export type SetCategoryMetaPayload = { - __typename?: 'SetCategoryMetaPayload'; - clientMutationId?: Maybe; - meta: CategoryMetaType; -}; - -export type SetCategoryMetasInput = { - clientMutationId?: InputMaybe; - items: Array; -}; - -export type SetCategoryMetasItemInput = { - categoryIds: Array; - metas: Array; -}; - -export type SetCategoryMetasPayload = { - __typename?: 'SetCategoryMetasPayload'; - categories: Array; - clientMutationId?: Maybe; - metas: Array; -}; - -export type SetChapterMetaInput = { - clientMutationId?: InputMaybe; - meta: ChapterMetaTypeInput; -}; - -export type SetChapterMetaPayload = { - __typename?: 'SetChapterMetaPayload'; - clientMutationId?: Maybe; - meta: ChapterMetaType; -}; - -export type SetChapterMetasInput = { - clientMutationId?: InputMaybe; - items: Array; -}; - -export type SetChapterMetasItemInput = { - chapterIds: Array; - metas: Array; -}; - -export type SetChapterMetasPayload = { - __typename?: 'SetChapterMetasPayload'; - chapters: Array; - clientMutationId?: Maybe; - metas: Array; -}; - -export type SetGlobalMetaInput = { - clientMutationId?: InputMaybe; - meta: GlobalMetaTypeInput; -}; - -export type SetGlobalMetaPayload = { - __typename?: 'SetGlobalMetaPayload'; - clientMutationId?: Maybe; - meta: GlobalMetaType; -}; - -export type SetGlobalMetasInput = { - clientMutationId?: InputMaybe; - metas: Array; -}; - -export type SetGlobalMetasPayload = { - __typename?: 'SetGlobalMetasPayload'; - clientMutationId?: Maybe; - metas: Array; -}; - -export type SetMangaMetaInput = { - clientMutationId?: InputMaybe; - meta: MangaMetaTypeInput; -}; - -export type SetMangaMetaPayload = { - __typename?: 'SetMangaMetaPayload'; - clientMutationId?: Maybe; - meta: MangaMetaType; -}; - -export type SetMangaMetasInput = { - clientMutationId?: InputMaybe; - items: Array; -}; - -export type SetMangaMetasItemInput = { - mangaIds: Array; - metas: Array; -}; - -export type SetMangaMetasPayload = { - __typename?: 'SetMangaMetasPayload'; - clientMutationId?: Maybe; - mangas: Array; - metas: Array; -}; - -export type SetSettingsInput = { - clientMutationId?: InputMaybe; - settings: PartialSettingsTypeInput; -}; - -export type SetSettingsPayload = { - __typename?: 'SetSettingsPayload'; - clientMutationId?: Maybe; - settings: SettingsType; -}; - -export type SetSourceMetaInput = { - clientMutationId?: InputMaybe; - meta: SourceMetaTypeInput; -}; - -export type SetSourceMetaPayload = { - __typename?: 'SetSourceMetaPayload'; - clientMutationId?: Maybe; - meta: SourceMetaType; -}; - -export type SetSourceMetasInput = { - clientMutationId?: InputMaybe; - items: Array; -}; - -export type SetSourceMetasItemInput = { - metas: Array; - sourceIds: Array; -}; - -export type SetSourceMetasPayload = { - __typename?: 'SetSourceMetasPayload'; - clientMutationId?: Maybe; - metas: Array; - sources: Array; -}; - -export type Settings = { - authMode?: Maybe; - authPassword?: Maybe; - authUsername?: Maybe; - autoBackupIncludeCategories?: Maybe; - autoBackupIncludeChapters?: Maybe; - autoBackupIncludeClientData?: Maybe; - autoBackupIncludeHistory?: Maybe; - autoBackupIncludeManga?: Maybe; - autoBackupIncludeServerSettings?: Maybe; - autoBackupIncludeTracking?: Maybe; - /** @deprecated Replaced with autoDownloadNewChaptersLimit, replace with autoDownloadNewChaptersLimit */ - autoDownloadAheadLimit?: Maybe; - autoDownloadIgnoreReUploads?: Maybe; - autoDownloadNewChapters?: Maybe; - autoDownloadNewChaptersLimit?: Maybe; - backupInterval?: Maybe; - backupPath?: Maybe; - backupTTL?: Maybe; - backupTime?: Maybe; - /** @deprecated Removed - prefer authMode, replace with authMode */ - basicAuthEnabled?: Maybe; - /** @deprecated Removed - prefer authPassword, replace with authPassword */ - basicAuthPassword?: Maybe; - /** @deprecated Removed - prefer authUsername, replace with authUsername */ - basicAuthUsername?: Maybe; - databasePassword?: Maybe; - databaseType?: Maybe; - databaseUrl?: Maybe; - databaseUsername?: Maybe; - debugLogsEnabled?: Maybe; - downloadAsCbz?: Maybe; - downloadConversions?: Maybe>; - downloadsPath?: Maybe; - electronPath?: Maybe; - excludeCompleted?: Maybe; - excludeEntryWithUnreadChapters?: Maybe; - excludeNotStarted?: Maybe; - excludeUnreadChapters?: Maybe; - extensionRepos?: Maybe>; - flareSolverrAsResponseFallback?: Maybe; - flareSolverrEnabled?: Maybe; - flareSolverrSessionName?: Maybe; - flareSolverrSessionTtl?: Maybe; - flareSolverrTimeout?: Maybe; - flareSolverrUrl?: Maybe; - globalUpdateInterval?: Maybe; - /** @deprecated Removed - does not do anything */ - gqlDebugLogsEnabled?: Maybe; - initialOpenInBrowserEnabled?: Maybe; - ip?: Maybe; - jwtAudience?: Maybe; - jwtRefreshExpiry?: Maybe; - jwtTokenExpiry?: Maybe; - koreaderSyncChecksumMethod?: Maybe; - /** @deprecated Moved to preference store. Is supposed to be random and gets auto generated, replace with MOVE TO PREFERENCES */ - koreaderSyncDeviceId?: Maybe; - koreaderSyncPercentageTolerance?: Maybe; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncServerUrl?: Maybe; - /** @deprecated Replaced with koreaderSyncStrategyForward and koreaderSyncStrategyBackward, replace with koreaderSyncStrategyForward, koreaderSyncStrategyBackward */ - koreaderSyncStrategy?: Maybe; - koreaderSyncStrategyBackward?: Maybe; - koreaderSyncStrategyForward?: Maybe; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncUserkey?: Maybe; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncUsername?: Maybe; - localSourcePath?: Maybe; - maxLogFileSize?: Maybe; - maxLogFiles?: Maybe; - maxLogFolderSize?: Maybe; - maxSourcesInParallel?: Maybe; - opdsCbzMimetype?: Maybe; - opdsChapterSortOrder?: Maybe; - opdsEnablePageReadProgress?: Maybe; - opdsItemsPerPage?: Maybe; - opdsMarkAsReadOnDownload?: Maybe; - opdsShowOnlyDownloadedChapters?: Maybe; - opdsShowOnlyUnreadChapters?: Maybe; - opdsUseBinaryFileSizes?: Maybe; - port?: Maybe; - serveConversions?: Maybe>; - socksProxyEnabled?: Maybe; - socksProxyHost?: Maybe; - socksProxyPassword?: Maybe; - socksProxyPort?: Maybe; - socksProxyUsername?: Maybe; - socksProxyVersion?: Maybe; - systemTrayEnabled?: Maybe; - updateMangas?: Maybe; - useHikariConnectionPool?: Maybe; - webUIChannel?: Maybe; - webUIFlavor?: Maybe; - webUIInterface?: Maybe; - webUIUpdateCheckInterval?: Maybe; -}; - -export type SettingsDownloadConversion = { - callTimeout?: Maybe; - compressionLevel?: Maybe; - connectTimeout?: Maybe; - headers?: Maybe>; - mimeType: Scalars['String']['output']; - target: Scalars['String']['output']; -}; - -export type SettingsDownloadConversionHeader = { - name: Scalars['String']['output']; - value: Scalars['String']['output']; -}; - -export type SettingsDownloadConversionHeaderType = SettingsDownloadConversionHeader & { - __typename?: 'SettingsDownloadConversionHeaderType'; - name: Scalars['String']['output']; - value: Scalars['String']['output']; -}; - -export type SettingsDownloadConversionHeaderTypeInput = { - name: Scalars['String']['input']; - value: Scalars['String']['input']; -}; - -export type SettingsDownloadConversionType = SettingsDownloadConversion & { - __typename?: 'SettingsDownloadConversionType'; - callTimeout?: Maybe; - compressionLevel?: Maybe; - connectTimeout?: Maybe; - headers?: Maybe>; - mimeType: Scalars['String']['output']; - target: Scalars['String']['output']; -}; - -export type SettingsDownloadConversionTypeInput = { - callTimeout?: InputMaybe; - compressionLevel?: InputMaybe; - connectTimeout?: InputMaybe; - headers?: InputMaybe>; - mimeType: Scalars['String']['input']; - target: Scalars['String']['input']; -}; - -export type SettingsType = Settings & { - __typename?: 'SettingsType'; - authMode: AuthMode; - authPassword: Scalars['String']['output']; - authUsername: Scalars['String']['output']; - autoBackupIncludeCategories: Scalars['Boolean']['output']; - autoBackupIncludeChapters: Scalars['Boolean']['output']; - autoBackupIncludeClientData: Scalars['Boolean']['output']; - autoBackupIncludeHistory: Scalars['Boolean']['output']; - autoBackupIncludeManga: Scalars['Boolean']['output']; - autoBackupIncludeServerSettings: Scalars['Boolean']['output']; - autoBackupIncludeTracking: Scalars['Boolean']['output']; - /** @deprecated Replaced with autoDownloadNewChaptersLimit, replace with autoDownloadNewChaptersLimit */ - autoDownloadAheadLimit: Scalars['Int']['output']; - autoDownloadIgnoreReUploads: Scalars['Boolean']['output']; - autoDownloadNewChapters: Scalars['Boolean']['output']; - autoDownloadNewChaptersLimit: Scalars['Int']['output']; - backupInterval: Scalars['Int']['output']; - backupPath: Scalars['String']['output']; - backupTTL: Scalars['Int']['output']; - backupTime: Scalars['String']['output']; - /** @deprecated Removed - prefer authMode, replace with authMode */ - basicAuthEnabled: Scalars['Boolean']['output']; - /** @deprecated Removed - prefer authPassword, replace with authPassword */ - basicAuthPassword: Scalars['String']['output']; - /** @deprecated Removed - prefer authUsername, replace with authUsername */ - basicAuthUsername: Scalars['String']['output']; - databasePassword: Scalars['String']['output']; - databaseType: DatabaseType; - databaseUrl: Scalars['String']['output']; - databaseUsername: Scalars['String']['output']; - debugLogsEnabled: Scalars['Boolean']['output']; - downloadAsCbz: Scalars['Boolean']['output']; - downloadConversions: Array; - downloadsPath: Scalars['String']['output']; - electronPath: Scalars['String']['output']; - excludeCompleted: Scalars['Boolean']['output']; - excludeEntryWithUnreadChapters: Scalars['Boolean']['output']; - excludeNotStarted: Scalars['Boolean']['output']; - excludeUnreadChapters: Scalars['Boolean']['output']; - extensionRepos: Array; - flareSolverrAsResponseFallback: Scalars['Boolean']['output']; - flareSolverrEnabled: Scalars['Boolean']['output']; - flareSolverrSessionName: Scalars['String']['output']; - flareSolverrSessionTtl: Scalars['Int']['output']; - flareSolverrTimeout: Scalars['Int']['output']; - flareSolverrUrl: Scalars['String']['output']; - globalUpdateInterval: Scalars['Float']['output']; - /** @deprecated Removed - does not do anything */ - gqlDebugLogsEnabled: Scalars['Boolean']['output']; - initialOpenInBrowserEnabled: Scalars['Boolean']['output']; - ip: Scalars['String']['output']; - jwtAudience: Scalars['String']['output']; - jwtRefreshExpiry: Scalars['Duration']['output']; - jwtTokenExpiry: Scalars['Duration']['output']; - koreaderSyncChecksumMethod: KoreaderSyncChecksumMethod; - /** @deprecated Moved to preference store. Is supposed to be random and gets auto generated, replace with MOVE TO PREFERENCES */ - koreaderSyncDeviceId: Scalars['String']['output']; - koreaderSyncPercentageTolerance: Scalars['Float']['output']; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncServerUrl: Scalars['String']['output']; - /** @deprecated Replaced with koreaderSyncStrategyForward and koreaderSyncStrategyBackward, replace with koreaderSyncStrategyForward, koreaderSyncStrategyBackward */ - koreaderSyncStrategy: KoreaderSyncLegacyStrategy; - koreaderSyncStrategyBackward: KoreaderSyncConflictStrategy; - koreaderSyncStrategyForward: KoreaderSyncConflictStrategy; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncUserkey: Scalars['String']['output']; - /** @deprecated Moved to preference store. User is supposed to use a login/logout mutation, replace with MOVE TO PREFERENCES */ - koreaderSyncUsername: Scalars['String']['output']; - localSourcePath: Scalars['String']['output']; - maxLogFileSize: Scalars['String']['output']; - maxLogFiles: Scalars['Int']['output']; - maxLogFolderSize: Scalars['String']['output']; - maxSourcesInParallel: Scalars['Int']['output']; - opdsCbzMimetype: CbzMediaType; - opdsChapterSortOrder: SortOrder; - opdsEnablePageReadProgress: Scalars['Boolean']['output']; - opdsItemsPerPage: Scalars['Int']['output']; - opdsMarkAsReadOnDownload: Scalars['Boolean']['output']; - opdsShowOnlyDownloadedChapters: Scalars['Boolean']['output']; - opdsShowOnlyUnreadChapters: Scalars['Boolean']['output']; - opdsUseBinaryFileSizes: Scalars['Boolean']['output']; - port: Scalars['Int']['output']; - serveConversions: Array; - socksProxyEnabled: Scalars['Boolean']['output']; - socksProxyHost: Scalars['String']['output']; - socksProxyPassword: Scalars['String']['output']; - socksProxyPort: Scalars['String']['output']; - socksProxyUsername: Scalars['String']['output']; - socksProxyVersion: Scalars['Int']['output']; - systemTrayEnabled: Scalars['Boolean']['output']; - updateMangas: Scalars['Boolean']['output']; - useHikariConnectionPool: Scalars['Boolean']['output']; - webUIChannel: WebUiChannel; - webUIFlavor: WebUiFlavor; - webUIInterface: WebUiInterface; - webUIUpdateCheckInterval: Scalars['Float']['output']; -}; - -export type SortFilter = { - __typename?: 'SortFilter'; - default?: Maybe; - name: Scalars['String']['output']; - values: Array; -}; - -export enum SortOrder { - Asc = 'ASC', - AscNullsFirst = 'ASC_NULLS_FIRST', - AscNullsLast = 'ASC_NULLS_LAST', - Desc = 'DESC', - DescNullsFirst = 'DESC_NULLS_FIRST', - DescNullsLast = 'DESC_NULLS_LAST' -} - -export type SortSelection = { - __typename?: 'SortSelection'; - ascending: Scalars['Boolean']['output']; - index: Scalars['Int']['output']; -}; - -export type SortSelectionInput = { - ascending: Scalars['Boolean']['input']; - index: Scalars['Int']['input']; -}; - -export type SourceConditionInput = { - id?: InputMaybe; - isNsfw?: InputMaybe; - lang?: InputMaybe; - name?: InputMaybe; -}; - -export type SourceEdge = Edge & { - __typename?: 'SourceEdge'; - cursor: Scalars['Cursor']['output']; - node: SourceType; -}; - -export type SourceFilterInput = { - and?: InputMaybe>; - id?: InputMaybe; - isNsfw?: InputMaybe; - lang?: InputMaybe; - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>; -}; - -export type SourceMetaType = MetaType & { - __typename?: 'SourceMetaType'; - key: Scalars['String']['output']; - source: SourceType; - sourceId: Scalars['LongString']['output']; - value: Scalars['String']['output']; -}; - -export type SourceMetaTypeInput = { - key: Scalars['String']['input']; - sourceId: Scalars['LongString']['input']; - value: Scalars['String']['input']; -}; - -export type SourceNodeList = NodeList & { - __typename?: 'SourceNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export enum SourceOrderBy { - Id = 'ID', - Lang = 'LANG', - Name = 'NAME' -} - -export type SourceOrderInput = { - by: SourceOrderBy; - byType?: InputMaybe; -}; - -export type SourcePreferenceChangeInput = { - checkBoxState?: InputMaybe; - editTextState?: InputMaybe; - listState?: InputMaybe; - multiSelectState?: InputMaybe>; - position: Scalars['Int']['input']; - switchState?: InputMaybe; -}; - -export type SourceType = { - __typename?: 'SourceType'; - baseUrl?: Maybe; - displayName: Scalars['String']['output']; - extension: ExtensionType; - filters: Array; - iconUrl: Scalars['String']['output']; - id: Scalars['LongString']['output']; - isConfigurable: Scalars['Boolean']['output']; - isNsfw: Scalars['Boolean']['output']; - lang: Scalars['String']['output']; - manga: MangaNodeList; - meta: Array; - name: Scalars['String']['output']; - preferences: Array; - supportsLatest: Scalars['Boolean']['output']; -}; - -export type StartDownloaderInput = { - clientMutationId?: InputMaybe; -}; - -export type StartDownloaderPayload = { - __typename?: 'StartDownloaderPayload'; - clientMutationId?: Maybe; - downloadStatus: DownloadStatus; -}; - -export type StopDownloaderInput = { - clientMutationId?: InputMaybe; -}; - -export type StopDownloaderPayload = { - __typename?: 'StopDownloaderPayload'; - clientMutationId?: Maybe; - downloadStatus: DownloadStatus; -}; - -export type StringFilterInput = { - distinctFrom?: InputMaybe; - distinctFromAll?: InputMaybe>; - distinctFromAny?: InputMaybe>; - distinctFromInsensitive?: InputMaybe; - distinctFromInsensitiveAll?: InputMaybe>; - distinctFromInsensitiveAny?: InputMaybe>; - endsWith?: InputMaybe; - endsWithAll?: InputMaybe>; - endsWithAny?: InputMaybe>; - endsWithInsensitive?: InputMaybe; - endsWithInsensitiveAll?: InputMaybe>; - endsWithInsensitiveAny?: InputMaybe>; - equalTo?: InputMaybe; - greaterThan?: InputMaybe; - greaterThanInsensitive?: InputMaybe; - greaterThanOrEqualTo?: InputMaybe; - greaterThanOrEqualToInsensitive?: InputMaybe; - in?: InputMaybe>; - inInsensitive?: InputMaybe>; - includes?: InputMaybe; - includesAll?: InputMaybe>; - includesAny?: InputMaybe>; - includesInsensitive?: InputMaybe; - includesInsensitiveAll?: InputMaybe>; - includesInsensitiveAny?: InputMaybe>; - isNull?: InputMaybe; - lessThan?: InputMaybe; - lessThanInsensitive?: InputMaybe; - lessThanOrEqualTo?: InputMaybe; - lessThanOrEqualToInsensitive?: InputMaybe; - like?: InputMaybe; - likeAll?: InputMaybe>; - likeAny?: InputMaybe>; - likeInsensitive?: InputMaybe; - likeInsensitiveAll?: InputMaybe>; - likeInsensitiveAny?: InputMaybe>; - notDistinctFrom?: InputMaybe; - notDistinctFromInsensitive?: InputMaybe; - notEndsWith?: InputMaybe; - notEndsWithAll?: InputMaybe>; - notEndsWithAny?: InputMaybe>; - notEndsWithInsensitive?: InputMaybe; - notEndsWithInsensitiveAll?: InputMaybe>; - notEndsWithInsensitiveAny?: InputMaybe>; - notEqualTo?: InputMaybe; - notEqualToAll?: InputMaybe>; - notEqualToAny?: InputMaybe>; - notIn?: InputMaybe>; - notInInsensitive?: InputMaybe>; - notIncludes?: InputMaybe; - notIncludesAll?: InputMaybe>; - notIncludesAny?: InputMaybe>; - notIncludesInsensitive?: InputMaybe; - notIncludesInsensitiveAll?: InputMaybe>; - notIncludesInsensitiveAny?: InputMaybe>; - notLike?: InputMaybe; - notLikeAll?: InputMaybe>; - notLikeAny?: InputMaybe>; - notLikeInsensitive?: InputMaybe; - notLikeInsensitiveAll?: InputMaybe>; - notLikeInsensitiveAny?: InputMaybe>; - notStartsWith?: InputMaybe; - notStartsWithAll?: InputMaybe>; - notStartsWithAny?: InputMaybe>; - notStartsWithInsensitive?: InputMaybe; - notStartsWithInsensitiveAll?: InputMaybe>; - notStartsWithInsensitiveAny?: InputMaybe>; - startsWith?: InputMaybe; - startsWithAll?: InputMaybe>; - startsWithAny?: InputMaybe>; - startsWithInsensitive?: InputMaybe; - startsWithInsensitiveAll?: InputMaybe>; - startsWithInsensitiveAny?: InputMaybe>; -}; - -export type Subscription = { - __typename?: 'Subscription'; - /** @deprecated Replaced with downloadStatusChanged, replace with downloadStatusChanged(input) */ - downloadChanged: DownloadStatus; - downloadStatusChanged: DownloadUpdates; - libraryUpdateStatusChanged: UpdaterUpdates; - /** @deprecated Replaced with updates, replace with updates(input) */ - updateStatusChanged: UpdateStatus; - webUIUpdateStatusChange: WebUiUpdateStatus; -}; - - -export type SubscriptionDownloadStatusChangedArgs = { - input: DownloadChangedInput; -}; - - -export type SubscriptionLibraryUpdateStatusChangedArgs = { - input: LibraryUpdateStatusChangedInput; -}; - -export type SwitchPreference = { - __typename?: 'SwitchPreference'; - currentValue?: Maybe; - default: Scalars['Boolean']['output']; - enabled: Scalars['Boolean']['output']; - key?: Maybe; - summary?: Maybe; - title?: Maybe; - visible: Scalars['Boolean']['output']; -}; - -export type SyncConflictInfoType = { - __typename?: 'SyncConflictInfoType'; - deviceName: Scalars['String']['output']; - remotePage: Scalars['Int']['output']; -}; - -export type TextFilter = { - __typename?: 'TextFilter'; - default: Scalars['String']['output']; - name: Scalars['String']['output']; -}; - -export type TrackProgressInput = { - clientMutationId?: InputMaybe; - mangaId: Scalars['Int']['input']; -}; - -export type TrackProgressPayload = { - __typename?: 'TrackProgressPayload'; - clientMutationId?: Maybe; - trackRecords: Array; -}; - -export type TrackRecordConditionInput = { - finishDate?: InputMaybe; - id?: InputMaybe; - lastChapterRead?: InputMaybe; - libraryId?: InputMaybe; - mangaId?: InputMaybe; - private?: InputMaybe; - remoteId?: InputMaybe; - remoteUrl?: InputMaybe; - score?: InputMaybe; - startDate?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; - totalChapters?: InputMaybe; - trackerId?: InputMaybe; -}; - -export type TrackRecordEdge = Edge & { - __typename?: 'TrackRecordEdge'; - cursor: Scalars['Cursor']['output']; - node: TrackRecordType; -}; - -export type TrackRecordFilterInput = { - and?: InputMaybe>; - finishDate?: InputMaybe; - id?: InputMaybe; - lastChapterRead?: InputMaybe; - libraryId?: InputMaybe; - mangaId?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>; - private?: InputMaybe; - remoteId?: InputMaybe; - remoteUrl?: InputMaybe; - score?: InputMaybe; - startDate?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; - totalChapters?: InputMaybe; - trackerId?: InputMaybe; -}; - -export type TrackRecordNodeList = NodeList & { - __typename?: 'TrackRecordNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export enum TrackRecordOrderBy { - FinishDate = 'FINISH_DATE', - Id = 'ID', - LastChapterRead = 'LAST_CHAPTER_READ', - MangaId = 'MANGA_ID', - Private = 'PRIVATE', - RemoteId = 'REMOTE_ID', - Score = 'SCORE', - StartDate = 'START_DATE', - Title = 'TITLE', - TotalChapters = 'TOTAL_CHAPTERS', - TrackerId = 'TRACKER_ID' -} - -export type TrackRecordOrderInput = { - by: TrackRecordOrderBy; - byType?: InputMaybe; -}; - -export type TrackRecordType = { - __typename?: 'TrackRecordType'; - displayScore: Scalars['String']['output']; - finishDate: Scalars['LongString']['output']; - id: Scalars['Int']['output']; - lastChapterRead: Scalars['Float']['output']; - libraryId?: Maybe; - manga: MangaType; - mangaId: Scalars['Int']['output']; - private: Scalars['Boolean']['output']; - remoteId: Scalars['LongString']['output']; - remoteUrl: Scalars['String']['output']; - score: Scalars['Float']['output']; - startDate: Scalars['LongString']['output']; - status: Scalars['Int']['output']; - title: Scalars['String']['output']; - totalChapters: Scalars['Int']['output']; - tracker: TrackerType; - trackerId: Scalars['Int']['output']; -}; - -export type TrackSearchType = { - __typename?: 'TrackSearchType'; - coverUrl: Scalars['String']['output']; - displayScore: Scalars['String']['output']; - finishedReadingDate: Scalars['LongString']['output']; - id: Scalars['Int']['output']; - lastChapterRead: Scalars['Float']['output']; - libraryId?: Maybe; - private: Scalars['Boolean']['output']; - publishingStatus: Scalars['String']['output']; - publishingType: Scalars['String']['output']; - remoteId: Scalars['LongString']['output']; - score: Scalars['Float']['output']; - startDate: Scalars['String']['output']; - startedReadingDate: Scalars['LongString']['output']; - status: Scalars['Int']['output']; - summary: Scalars['String']['output']; - title: Scalars['String']['output']; - totalChapters: Scalars['Int']['output']; - tracker: TrackerType; - trackerId: Scalars['Int']['output']; - trackingUrl: Scalars['String']['output']; -}; - -export type TrackStatusType = { - __typename?: 'TrackStatusType'; - name: Scalars['String']['output']; - value: Scalars['Int']['output']; -}; - -export type TrackerConditionInput = { - icon?: InputMaybe; - id?: InputMaybe; - isLoggedIn?: InputMaybe; - name?: InputMaybe; -}; - -export type TrackerEdge = Edge & { - __typename?: 'TrackerEdge'; - cursor: Scalars['Cursor']['output']; - node: TrackerType; -}; - -export type TrackerNodeList = NodeList & { - __typename?: 'TrackerNodeList'; - edges: Array; - nodes: Array; - pageInfo: PageInfo; - totalCount: Scalars['Int']['output']; -}; - -export enum TrackerOrderBy { - Id = 'ID', - IsLoggedIn = 'IS_LOGGED_IN', - Name = 'NAME' -} - -export type TrackerOrderInput = { - by: TrackerOrderBy; - byType?: InputMaybe; -}; - -export type TrackerType = { - __typename?: 'TrackerType'; - authUrl?: Maybe; - icon: Scalars['String']['output']; - id: Scalars['Int']['output']; - isLoggedIn: Scalars['Boolean']['output']; - isTokenExpired: Scalars['Boolean']['output']; - name: Scalars['String']['output']; - scores: Array; - statuses: Array; - supportsPrivateTracking: Scalars['Boolean']['output']; - supportsReadingDates: Scalars['Boolean']['output']; - supportsTrackDeletion: Scalars['Boolean']['output']; - trackRecords: TrackRecordNodeList; -}; - -export enum TriState { - Exclude = 'EXCLUDE', - Ignore = 'IGNORE', - Include = 'INCLUDE' -} - -export type TriStateFilter = { - __typename?: 'TriStateFilter'; - default: TriState; - name: Scalars['String']['output']; -}; - -export type UnbindTrackInput = { - clientMutationId?: InputMaybe; - /** This will only work if the tracker of the track record supports deleting tracks */ - deleteRemoteTrack?: InputMaybe; - recordId: Scalars['Int']['input']; -}; - -export type UnbindTrackPayload = { - __typename?: 'UnbindTrackPayload'; - clientMutationId?: Maybe; - trackRecord?: Maybe; -}; - -export type UpdateCategoriesInput = { - clientMutationId?: InputMaybe; - ids: Array; - patch: UpdateCategoryPatchInput; -}; - -export type UpdateCategoriesPayload = { - __typename?: 'UpdateCategoriesPayload'; - categories: Array; - clientMutationId?: Maybe; -}; - -export type UpdateCategoryInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; - patch: UpdateCategoryPatchInput; -}; - -export type UpdateCategoryMangaInput = { - categories: Array; - clientMutationId?: InputMaybe; -}; - -export type UpdateCategoryMangaPayload = { - __typename?: 'UpdateCategoryMangaPayload'; - clientMutationId?: Maybe; - updateStatus: UpdateStatus; -}; - -export type UpdateCategoryOrderInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; - position: Scalars['Int']['input']; -}; - -export type UpdateCategoryOrderPayload = { - __typename?: 'UpdateCategoryOrderPayload'; - categories: Array; - clientMutationId?: Maybe; -}; - -export type UpdateCategoryPatchInput = { - default?: InputMaybe; - includeInDownload?: InputMaybe; - includeInUpdate?: InputMaybe; - name?: InputMaybe; -}; - -export type UpdateCategoryPayload = { - __typename?: 'UpdateCategoryPayload'; - category: CategoryType; - clientMutationId?: Maybe; -}; - -export type UpdateChapterInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; - patch: UpdateChapterPatchInput; -}; - -export type UpdateChapterPatchInput = { - isBookmarked?: InputMaybe; - isRead?: InputMaybe; - lastPageRead?: InputMaybe; -}; - -export type UpdateChapterPayload = { - __typename?: 'UpdateChapterPayload'; - chapter: ChapterType; - clientMutationId?: Maybe; -}; - -export type UpdateChaptersInput = { - clientMutationId?: InputMaybe; - ids: Array; - patch: UpdateChapterPatchInput; -}; - -export type UpdateChaptersPayload = { - __typename?: 'UpdateChaptersPayload'; - chapters: Array; - clientMutationId?: Maybe; -}; - -export type UpdateExtensionInput = { - clientMutationId?: InputMaybe; - id: Scalars['String']['input']; - patch: UpdateExtensionPatchInput; -}; - -export type UpdateExtensionPatchInput = { - install?: InputMaybe; - uninstall?: InputMaybe; - update?: InputMaybe; -}; - -export type UpdateExtensionPayload = { - __typename?: 'UpdateExtensionPayload'; - clientMutationId?: Maybe; - extension?: Maybe; -}; - -export type UpdateExtensionsInput = { - clientMutationId?: InputMaybe; - ids: Array; - patch: UpdateExtensionPatchInput; -}; - -export type UpdateExtensionsPayload = { - __typename?: 'UpdateExtensionsPayload'; - clientMutationId?: Maybe; - extensions: Array; -}; - -export type UpdateLibraryInput = { - categories?: InputMaybe>; - clientMutationId?: InputMaybe; -}; - -export type UpdateLibraryMangaInput = { - clientMutationId?: InputMaybe; -}; - -export type UpdateLibraryMangaPayload = { - __typename?: 'UpdateLibraryMangaPayload'; - clientMutationId?: Maybe; - updateStatus: UpdateStatus; -}; - -export type UpdateLibraryPayload = { - __typename?: 'UpdateLibraryPayload'; - clientMutationId?: Maybe; - updateStatus: LibraryUpdateStatus; -}; - -export type UpdateMangaCategoriesInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; - patch: UpdateMangaCategoriesPatchInput; -}; - -export type UpdateMangaCategoriesPatchInput = { - addToCategories?: InputMaybe>; - clearCategories?: InputMaybe; - removeFromCategories?: InputMaybe>; -}; - -export type UpdateMangaCategoriesPayload = { - __typename?: 'UpdateMangaCategoriesPayload'; - clientMutationId?: Maybe; - manga: MangaType; -}; - -export type UpdateMangaInput = { - clientMutationId?: InputMaybe; - id: Scalars['Int']['input']; - patch: UpdateMangaPatchInput; -}; - -export type UpdateMangaPatchInput = { - inLibrary?: InputMaybe; -}; - -export type UpdateMangaPayload = { - __typename?: 'UpdateMangaPayload'; - clientMutationId?: Maybe; - manga: MangaType; -}; - -export type UpdateMangasCategoriesInput = { - clientMutationId?: InputMaybe; - ids: Array; - patch: UpdateMangaCategoriesPatchInput; -}; - -export type UpdateMangasCategoriesPayload = { - __typename?: 'UpdateMangasCategoriesPayload'; - clientMutationId?: Maybe; - mangas: Array; -}; - -export type UpdateMangasInput = { - clientMutationId?: InputMaybe; - ids: Array; - patch: UpdateMangaPatchInput; -}; - -export type UpdateMangasPayload = { - __typename?: 'UpdateMangasPayload'; - clientMutationId?: Maybe; - mangas: Array; -}; - -export type UpdateSourcePreferenceInput = { - change: SourcePreferenceChangeInput; - clientMutationId?: InputMaybe; - source: Scalars['LongString']['input']; -}; - -export type UpdateSourcePreferencePayload = { - __typename?: 'UpdateSourcePreferencePayload'; - clientMutationId?: Maybe; - preferences: Array; - source: SourceType; -}; - -export enum UpdateState { - Downloading = 'DOWNLOADING', - Error = 'ERROR', - Finished = 'FINISHED', - Idle = 'IDLE' -} - -export type UpdateStatus = { - __typename?: 'UpdateStatus'; - completeJobs: UpdateStatusType; - failedJobs: UpdateStatusType; - isRunning: Scalars['Boolean']['output']; - pendingJobs: UpdateStatusType; - runningJobs: UpdateStatusType; - skippedCategories: UpdateStatusCategoryType; - skippedJobs: UpdateStatusType; - updatingCategories: UpdateStatusCategoryType; -}; - -export type UpdateStatusCategoryType = { - __typename?: 'UpdateStatusCategoryType'; - categories: CategoryNodeList; -}; - -export type UpdateStatusType = { - __typename?: 'UpdateStatusType'; - mangas: MangaNodeList; -}; - -export type UpdateStopInput = { - clientMutationId?: InputMaybe; -}; - -export type UpdateStopPayload = { - __typename?: 'UpdateStopPayload'; - clientMutationId?: Maybe; -}; - -export enum UpdateStrategy { - AlwaysUpdate = 'ALWAYS_UPDATE', - OnlyFetchOnce = 'ONLY_FETCH_ONCE' -} - -export type UpdateTrackInput = { - clientMutationId?: InputMaybe; - /** This will only work if the tracker of the track record supports reading dates */ - finishDate?: InputMaybe; - lastChapterRead?: InputMaybe; - /** This will only work if the tracker of the track record supports private tracking */ - private?: InputMaybe; - recordId: Scalars['Int']['input']; - scoreString?: InputMaybe; - /** This will only work if the tracker of the track record supports reading dates */ - startDate?: InputMaybe; - status?: InputMaybe; -}; - -export type UpdateTrackPayload = { - __typename?: 'UpdateTrackPayload'; - clientMutationId?: Maybe; - trackRecord?: Maybe; -}; - -export type UpdaterJobsInfoType = { - __typename?: 'UpdaterJobsInfoType'; - finishedJobs: Scalars['Int']['output']; - isRunning: Scalars['Boolean']['output']; - skippedCategoriesCount: Scalars['Int']['output']; - skippedMangasCount: Scalars['Int']['output']; - totalJobs: Scalars['Int']['output']; -}; - -export type UpdaterUpdates = { - __typename?: 'UpdaterUpdates'; - categoryUpdates: Array; - /** The current update status at the time of sending the initial message. Is null for all following messages */ - initial?: Maybe; - jobsInfo: UpdaterJobsInfoType; - mangaUpdates: Array; - /** Indicates whether updates have been omitted based on the "maxUpdates" subscription variable. In case updates have been omitted, the "updateStatus" query should be re-fetched. */ - omittedUpdates: Scalars['Boolean']['output']; -}; - -export type ValidateBackupInput = { - backup: Scalars['Upload']['input']; -}; - -export type ValidateBackupResult = { - __typename?: 'ValidateBackupResult'; - missingSources: Array; - missingTrackers: Array; -}; - -export type ValidateBackupSource = { - __typename?: 'ValidateBackupSource'; - id: Scalars['LongString']['output']; - name: Scalars['String']['output']; -}; - -export type ValidateBackupTracker = { - __typename?: 'ValidateBackupTracker'; - name: Scalars['String']['output']; -}; - -export enum WebUiChannel { - Bundled = 'BUNDLED', - Preview = 'PREVIEW', - Stable = 'STABLE' -} - -export enum WebUiFlavor { - Custom = 'CUSTOM', - Vui = 'VUI', - Webui = 'WEBUI' -} - -export enum WebUiInterface { - Browser = 'BROWSER', - Electron = 'ELECTRON' -} - -export type WebUiUpdateCheck = { - __typename?: 'WebUIUpdateCheck'; - channel: WebUiChannel; - tag: Scalars['String']['output']; - updateAvailable: Scalars['Boolean']['output']; -}; - -export type WebUiUpdateInfo = { - __typename?: 'WebUIUpdateInfo'; - channel: WebUiChannel; - tag: Scalars['String']['output']; -}; - -export type WebUiUpdateInput = { - clientMutationId?: InputMaybe; -}; - -export type WebUiUpdatePayload = { - __typename?: 'WebUIUpdatePayload'; - clientMutationId?: Maybe; - updateStatus: WebUiUpdateStatus; -}; - -export type WebUiUpdateStatus = { - __typename?: 'WebUIUpdateStatus'; - info: WebUiUpdateInfo; - progress: Scalars['Int']['output']; - state: UpdateState; -}; +import type * as Types from './graphql-base.types'; export type CreateBackupMutationVariables = Exact<{ - input: CreateBackupInput; + input: Types.CreateBackupInput; }>; -export type CreateBackupMutation = { __typename?: 'Mutation', createBackup: { __typename?: 'CreateBackupPayload', url: string } }; +export type CreateBackupMutation = { __typename: 'Mutation', createBackup: { __typename: 'CreateBackupPayload', url: string } }; export type RestoreBackupMutationVariables = Exact<{ - backup: Scalars['Upload']['input']; - flags?: InputMaybe; + backup: unknown; + flags?: Types.PartialBackupFlagsInput | null | undefined; }>; -export type RestoreBackupMutation = { __typename?: 'Mutation', restoreBackup: { __typename?: 'RestoreBackupPayload', id: string, status?: { __typename?: 'BackupRestoreStatus', mangaProgress: number, state: BackupRestoreState, totalManga: number } | null } }; +export type RestoreBackupMutation = { __typename: 'Mutation', restoreBackup: { __typename: 'RestoreBackupPayload', id: string, status: { __typename: 'BackupRestoreStatus', mangaProgress: number, state: Types.BackupRestoreState, totalManga: number } | null } }; export type ValidateBackupQueryVariables = Exact<{ - backup: Scalars['Upload']['input']; + backup: unknown; }>; -export type ValidateBackupQuery = { __typename?: 'Query', validateBackup: { __typename?: 'ValidateBackupResult', missingSources: Array<{ __typename?: 'ValidateBackupSource', id: string, name: string }>, missingTrackers: Array<{ __typename?: 'ValidateBackupTracker', name: string }> } }; +export type ValidateBackupQuery = { __typename: 'Query', validateBackup: { __typename: 'ValidateBackupResult', missingSources: Array<{ __typename: 'ValidateBackupSource', id: string, name: string }>, missingTrackers: Array<{ __typename: 'ValidateBackupTracker', name: string }> } }; export type GetRestoreStatusQueryVariables = Exact<{ - id: Scalars['String']['input']; + id: string; }>; -export type GetRestoreStatusQuery = { __typename?: 'Query', restoreStatus?: { __typename?: 'BackupRestoreStatus', mangaProgress: number, state: BackupRestoreState, totalManga: number } | null }; +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 CategoryMetaFieldsFragment = { __typename: 'CategoryMetaType', categoryId: number, key: string, value: string }; -export type CategoryBaseFieldsFragment = { __typename?: 'CategoryType', id: number, name: string, default: boolean, order: number }; +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 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: IncludeOrExclude, includeInDownload: IncludeOrExclude, id: number, name: string, default: boolean, order: number }; +export type CategorySettingFieldsFragment = { __typename: 'CategoryType', includeInUpdate: Types.IncludeOrExclude, includeInDownload: Types.IncludeOrExclude, id: number, name: string, default: boolean, order: number }; export type CreateCategoryMutationVariables = Exact<{ - input: CreateCategoryInput; + input: Types.CreateCategoryInput; }>; -export type CreateCategoryMutation = { __typename?: 'Mutation', createCategory?: { __typename?: 'CreateCategoryPayload', category: { __typename?: 'CategoryType', includeInUpdate: IncludeOrExclude, includeInDownload: IncludeOrExclude, id: number, name: string, default: boolean, order: number } } | null }; +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<{ - input: DeleteCategoryInput; + input: Types.DeleteCategoryInput; }>; -export type DeleteCategoryMutation = { __typename?: 'Mutation', deleteCategory?: { __typename?: 'DeleteCategoryPayload', category?: { __typename?: 'CategoryType', id: number } | null } | null }; +export type DeleteCategoryMutation = { __typename: 'Mutation', deleteCategory: { __typename: 'DeleteCategoryPayload', category: { __typename: 'CategoryType', id: number } | null } | null }; export type UpdateCategoryMutationVariables = Exact<{ - input: UpdateCategoryInput; - getDefault: Scalars['Boolean']['input']; - getIncludeInUpdate: Scalars['Boolean']['input']; - getIncludeInDownload: Scalars['Boolean']['input']; - getName: Scalars['Boolean']['input']; + input: Types.UpdateCategoryInput; + getDefault: boolean; + getIncludeInUpdate: boolean; + getIncludeInDownload: boolean; + getName: boolean; }>; -export type UpdateCategoryMutation = { __typename?: 'Mutation', updateCategory?: { __typename?: 'UpdateCategoryPayload', category: { __typename?: 'CategoryType', id: number, default?: boolean, includeInUpdate?: IncludeOrExclude, includeInDownload?: IncludeOrExclude, name?: string } } | null }; +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<{ - input: UpdateCategoriesInput; - getDefault: Scalars['Boolean']['input']; - getIncludeInUpdate: Scalars['Boolean']['input']; - getIncludeInDownload: Scalars['Boolean']['input']; - getName: Scalars['Boolean']['input']; + input: Types.UpdateCategoriesInput; + getDefault: boolean; + getIncludeInUpdate: boolean; + getIncludeInDownload: boolean; + getName: boolean; }>; -export type UpdateCategoriesMutation = { __typename?: 'Mutation', updateCategories?: { __typename?: 'UpdateCategoriesPayload', categories: Array<{ __typename?: 'CategoryType', id: number, default?: boolean, includeInUpdate?: IncludeOrExclude, includeInDownload?: IncludeOrExclude, name?: string }> } | null }; +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<{ - input: UpdateCategoryOrderInput; + input: Types.UpdateCategoryOrderInput; }>; -export type UpdateCategoryOrderMutation = { __typename?: 'Mutation', updateCategoryOrder?: { __typename?: 'UpdateCategoryOrderPayload', categories: Array<{ __typename?: 'CategoryType', id: number, order: number }> } | null }; +export type UpdateCategoryOrderMutation = { __typename: 'Mutation', updateCategoryOrder: { __typename: 'UpdateCategoryOrderPayload', categories: Array<{ __typename: 'CategoryType', id: number, order: number }> } | null }; export type UpdateCategoryMetadataMutationVariables = Exact<{ - preUpdateDeleteInput: DeleteCategoryMetasInput; - hasPreUpdateDeletions: Scalars['Boolean']['input']; - updateInput: SetCategoryMetasInput; - hasUpdates: Scalars['Boolean']['input']; - postUpdateDeleteInput: DeleteCategoryMetasInput; - hasPostUpdateDeletions: Scalars['Boolean']['input']; - migrateInput: SetCategoryMetasInput; - isMigration: Scalars['Boolean']['input']; + preUpdateDeleteInput: Types.DeleteCategoryMetasInput; + hasPreUpdateDeletions: boolean; + updateInput: Types.SetCategoryMetasInput; + hasUpdates: boolean; + postUpdateDeleteInput: Types.DeleteCategoryMetasInput; + hasPostUpdateDeletions: boolean; + migrateInput: Types.SetCategoryMetasInput; + isMigration: boolean; }>; -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 }; +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 }; export type GetCategoriesBaseQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | CategoryOrderInput>; + 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 | null | undefined; }>; -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 } } }; +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 } } }; export type GetCategoriesLibraryQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | CategoryOrderInput>; + 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 | null | undefined; }>; -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 } } }; +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 } } }; export type GetCategoriesSettingsQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | CategoryOrderInput>; + 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 | null | undefined; }>; -export type GetCategoriesSettingsQuery = { __typename?: 'Query', categories: { __typename?: 'CategoryNodeList', totalCount: number, nodes: Array<{ __typename?: 'CategoryType', includeInUpdate: IncludeOrExclude, includeInDownload: IncludeOrExclude, id: number, name: string, default: boolean, order: number }>, pageInfo: { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean, hasPreviousPage: boolean, startCursor?: string | null } } }; +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 } } }; export type GetCategoryMangasQueryVariables = Exact<{ - id: Scalars['Int']['input']; + id: number; }>; -export type GetCategoryMangasQuery = { __typename?: 'Query', category: { __typename?: 'CategoryType', id: number, mangas: { __typename?: 'MangaNodeList', totalCount: number, nodes: Array<{ __typename?: 'MangaType', genre: Array, lastFetchedAt?: string | null, inLibraryAt: string, status: 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 GetCategoryMangasQuery = { __typename: 'Query', category: { __typename: 'CategoryType', id: number, mangas: { __typename: 'MangaNodeList', totalCount: number, nodes: Array<{ __typename: 'MangaType', genre: Array, 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 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 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 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 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 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 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 } }; +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 } }; export type GetChapterPagesFetchMutationVariables = Exact<{ - input: FetchChapterPagesInput; + input: Types.FetchChapterPagesInput; }>; -export type GetChapterPagesFetchMutation = { __typename?: 'Mutation', fetchChapterPages?: { __typename?: 'FetchChapterPagesPayload', pages: Array, chapter: { __typename?: 'ChapterType', id: number, pageCount: number } } | null }; +export type GetChapterPagesFetchMutation = { __typename: 'Mutation', fetchChapterPages: { __typename: 'FetchChapterPagesPayload', pages: Array, chapter: { __typename: 'ChapterType', id: number, pageCount: number } } | null }; export type GetMangaChaptersFetchMutationVariables = Exact<{ - input: FetchChaptersInput; + input: Types.FetchChaptersInput; }>; -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 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<{ - input: UpdateChapterInput; - getBookmarked: Scalars['Boolean']['input']; - getRead: Scalars['Boolean']['input']; - getLastPageRead: Scalars['Boolean']['input']; - chapterIdToDelete: Scalars['Int']['input']; - deleteChapter: Scalars['Boolean']['input']; - mangaId: Scalars['Int']['input']; - trackProgress: Scalars['Boolean']['input']; + input: Types.UpdateChapterInput; + getBookmarked: boolean; + getRead: boolean; + getLastPageRead: boolean; + chapterIdToDelete: number; + deleteChapter: boolean; + mangaId: number; + trackProgress: boolean; }>; -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 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<{ - input: UpdateChaptersInput; - getBookmarked: Scalars['Boolean']['input']; - getRead: Scalars['Boolean']['input']; - getLastPageRead: Scalars['Boolean']['input']; - chapterIdsToDelete: Array | Scalars['Int']['input']; - deleteChapters: Scalars['Boolean']['input']; - mangaId: Scalars['Int']['input']; - trackProgress: Scalars['Boolean']['input']; + input: Types.UpdateChaptersInput; + getBookmarked: boolean; + getRead: boolean; + getLastPageRead: boolean; + chapterIdsToDelete: Array | number; + deleteChapters: boolean; + mangaId: number; + trackProgress: boolean; }>; -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 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<{ - preUpdateDeleteInput: DeleteChapterMetasInput; - hasPreUpdateDeletions: Scalars['Boolean']['input']; - updateInput: SetChapterMetasInput; - hasUpdates: Scalars['Boolean']['input']; - postUpdateDeleteInput: DeleteChapterMetasInput; - hasPostUpdateDeletions: Scalars['Boolean']['input']; - migrateInput: SetChapterMetasInput; - isMigration: Scalars['Boolean']['input']; + preUpdateDeleteInput: Types.DeleteChapterMetasInput; + hasPreUpdateDeletions: boolean; + updateInput: Types.SetChapterMetasInput; + hasUpdates: boolean; + postUpdateDeleteInput: Types.DeleteChapterMetasInput; + hasPostUpdateDeletions: boolean; + migrateInput: Types.SetChapterMetasInput; + isMigration: boolean; }>; -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 }; +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 }; export type GetChaptersReaderQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | ChapterOrderInput>; + 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 | null | undefined; }>; -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 } } }; +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 } } }; export type GetChaptersMangaQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | ChapterOrderInput>; + 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 | null | undefined; }>; -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 } } }; +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 } } }; export type GetChaptersUpdatesQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | ChapterOrderInput>; + 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 | null | undefined; }>; -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 } } }; +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 } } }; export type GetChaptersHistoryQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | ChapterOrderInput>; + 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 | null | undefined; }>; -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 } } }; +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 } } }; export type GetMangasChapterIdsWithStateQueryVariables = Exact<{ - mangaIds: Array | Scalars['Int']['input']; - isDownloaded?: InputMaybe; - isRead?: InputMaybe; - isBookmarked?: InputMaybe; + mangaIds: Array | number; + isDownloaded?: boolean | null | undefined; + isRead?: boolean | null | undefined; + isBookmarked?: boolean | null | undefined; }>; -export type GetMangasChapterIdsWithStateQuery = { __typename?: 'Query', chapters: { __typename?: 'ChapterNodeList', nodes: Array<{ __typename?: 'ChapterType', mangaId: number, scanlator?: string | null, chapterNumber: number, id: number, isRead: boolean, isDownloaded: boolean, isBookmarked: boolean }> } }; +export type GetMangasChapterIdsWithStateQuery = { __typename: 'Query', chapters: { __typename: 'ChapterNodeList', nodes: Array<{ __typename: 'ChapterType', mangaId: number, scanlator: string | null, chapterNumber: number, id: number, isRead: boolean, isDownloaded: boolean, isBookmarked: boolean }> } }; -export type PageInfoFragment = { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean, hasPreviousPage: boolean, startCursor?: string | null }; +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 GlobalMetadataFragment = { __typename: 'GlobalMetaType', key: string, value: string }; -export type DownloadTypeFieldsFragment = { __typename?: 'DownloadType', progress: number, state: 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 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: DownloaderState, queue: Array<{ __typename?: 'DownloadType', progress: number, state: 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: DownloaderState, omittedUpdates: boolean, updates: Array<{ __typename?: 'DownloadUpdate', type: DownloadUpdateType, download: { __typename?: 'DownloadType', position: number, progress: number, state: 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 } } }> }; export type ClearDownloaderMutationVariables = Exact<{ - input?: InputMaybe; + input?: Types.ClearDownloaderInput | null | undefined; }>; -export type ClearDownloaderMutation = { __typename?: 'Mutation', clearDownloader?: { __typename?: 'ClearDownloaderPayload', downloadStatus: { __typename?: 'DownloadStatus', state: DownloaderState, queue: Array<{ __typename?: 'DownloadType', progress: number, state: 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 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<{ - input: DeleteDownloadedChapterInput; + input: Types.DeleteDownloadedChapterInput; }>; -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 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<{ - input: DeleteDownloadedChaptersInput; + input: Types.DeleteDownloadedChaptersInput; }>; -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 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<{ - input: DequeueChapterDownloadInput; + input: Types.DequeueChapterDownloadInput; }>; -export type DequeueChapterDownloadMutation = { __typename?: 'Mutation', dequeueChapterDownload?: { __typename?: 'DequeueChapterDownloadPayload', downloadStatus: { __typename?: 'DownloadStatus', state: DownloaderState, queue: Array<{ __typename?: 'DownloadType', progress: number, state: 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 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<{ - input: DequeueChapterDownloadsInput; + input: Types.DequeueChapterDownloadsInput; }>; -export type DequeueChapterDownloadsMutation = { __typename?: 'Mutation', dequeueChapterDownloads?: { __typename?: 'DequeueChapterDownloadsPayload', downloadStatus: { __typename?: 'DownloadStatus', state: DownloaderState, queue: Array<{ __typename?: 'DownloadType', progress: number, state: 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 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<{ - input: EnqueueChapterDownloadInput; + input: Types.EnqueueChapterDownloadInput; }>; -export type EnqueueChapterDownloadMutation = { __typename?: 'Mutation', enqueueChapterDownload?: { __typename?: 'EnqueueChapterDownloadPayload', downloadStatus: { __typename?: 'DownloadStatus', state: DownloaderState, queue: Array<{ __typename?: 'DownloadType', progress: number, state: 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 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<{ - input: EnqueueChapterDownloadsInput; + input: Types.EnqueueChapterDownloadsInput; }>; -export type EnqueueChapterDownloadsMutation = { __typename?: 'Mutation', enqueueChapterDownloads?: { __typename?: 'EnqueueChapterDownloadsPayload', downloadStatus: { __typename?: 'DownloadStatus', state: DownloaderState, queue: Array<{ __typename?: 'DownloadType', progress: number, state: 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 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<{ - input: ReorderChapterDownloadInput; + input: Types.ReorderChapterDownloadInput; }>; -export type ReorderChapterDownloadMutation = { __typename?: 'Mutation', reorderChapterDownload?: { __typename?: 'ReorderChapterDownloadPayload', downloadStatus: { __typename?: 'DownloadStatus', state: DownloaderState, queue: Array<{ __typename?: 'DownloadType', progress: number, state: 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 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<{ - input?: InputMaybe; + input?: Types.StartDownloaderInput | null | undefined; }>; -export type StartDownloaderMutation = { __typename?: 'Mutation', startDownloader?: { __typename?: 'StartDownloaderPayload', downloadStatus: { __typename?: 'DownloadStatus', state: DownloaderState } } | null }; +export type StartDownloaderMutation = { __typename: 'Mutation', startDownloader: { __typename: 'StartDownloaderPayload', downloadStatus: { __typename: 'DownloadStatus', state: Types.DownloaderState } } | null }; export type StopDownloaderMutationVariables = Exact<{ - input?: InputMaybe; + input?: Types.StopDownloaderInput | null | undefined; }>; -export type StopDownloaderMutation = { __typename?: 'Mutation', stopDownloader?: { __typename?: 'StopDownloaderPayload', downloadStatus: { __typename?: 'DownloadStatus', state: DownloaderState } } | null }; +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: DownloaderState, queue: Array<{ __typename?: 'DownloadType', progress: number, state: 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 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 } }> } }; export type DownloadStatusSubscriptionVariables = Exact<{ - input: DownloadChangedInput; + input: Types.DownloadChangedInput; }>; -export type DownloadStatusSubscription = { __typename?: 'Subscription', downloadStatusChanged: { __typename?: 'DownloadUpdates', state: DownloaderState, omittedUpdates: boolean, updates: Array<{ __typename?: 'DownloadUpdate', type: DownloadUpdateType, download: { __typename?: 'DownloadType', position: number, progress: number, state: 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 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 }; +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 }; export type GetExtensionsFetchMutationVariables = Exact<{ - input?: InputMaybe; + input?: Types.FetchExtensionsInput | null | undefined; }>; -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 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<{ - input: UpdateExtensionInput; + input: Types.UpdateExtensionInput; }>; -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 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<{ - input: UpdateExtensionsInput; + input: Types.UpdateExtensionsInput; }>; -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 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<{ - file: Scalars['Upload']['input']; + file: unknown; }>; -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 }; +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 }; export type GetExtensionQueryVariables = Exact<{ - pkgName: Scalars['String']['input']; + pkgName: string; }>; -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 } }; +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 } }; export type GetExtensionsQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | ExtensionOrderInput>; + 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 | null | undefined; }>; -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 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<{ - input: ClearCachedImagesInput; + input: Types.ClearCachedImagesInput; }>; -export type ClearServerCacheMutation = { __typename?: 'Mutation', clearCachedImages: { __typename?: 'ClearCachedImagesPayload', cachedPages?: boolean | null, cachedThumbnails?: boolean | null, downloadedThumbnails?: boolean | null } }; +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 }; +export type KoSyncStatusFragment = { __typename: 'KoSyncStatusPayload', isLoggedIn: boolean, serverAddress: string | null, username: string | null }; export type KoSyncLoginMutationVariables = Exact<{ - serverAddress: Scalars['String']['input']; - username: Scalars['String']['input']; - password: Scalars['String']['input']; + serverAddress: string; + username: string; + password: string; }>; -export type KoSyncLoginMutation = { __typename?: 'Mutation', connectKoSyncAccount: { __typename?: 'KoSyncConnectPayload', message?: string | null, status: { __typename?: 'KoSyncStatusPayload', isLoggedIn: boolean, serverAddress?: string | null, username?: string | null } } }; +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 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 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 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 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 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 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, 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 MangaReaderFieldsFragment = { __typename: 'MangaType', genre: Array, 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, lastFetchedAt?: string | null, inLibraryAt: string, status: 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 MangaLibraryFieldsFragment = { __typename: 'MangaType', genre: Array, 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 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: MangaStatus, realUrl?: string | null, sourceId: string, genre: Array, 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 MangaScreenFieldsFragment = { __typename: 'MangaType', artist: string | null, author: string | null, description: string | null, status: Types.MangaStatus, realUrl: string | null, sourceId: string, genre: Array, 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 } }; +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 } }; export type GetMangaFetchMutationVariables = Exact<{ - input: FetchMangaInput; + input: Types.FetchMangaInput; }>; -export type GetMangaFetchMutation = { __typename?: 'Mutation', fetchManga?: { __typename?: 'FetchMangaPayload', manga: { __typename?: 'MangaType', artist?: string | null, author?: string | null, description?: string | null, status: MangaStatus, realUrl?: string | null, sourceId: string, genre: Array, 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 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, 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<{ - id: Scalars['Int']['input']; + id: number; }>; -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: MangaStatus, realUrl?: string | null, sourceId: string, genre: Array, 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 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, 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<{ - id: Scalars['Int']['input']; - migrateChapters: Scalars['Boolean']['input']; - migrateCategories: Scalars['Boolean']['input']; - migrateTracking: Scalars['Boolean']['input']; + id: number; + migrateChapters: boolean; + migrateCategories: boolean; + migrateTracking: boolean; }>; -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 }; +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 }; export type UpdateMangaMutationVariables = Exact<{ - input: UpdateMangaInput; - updateCategoryInput: UpdateMangaCategoriesInput; - updateCategories: Scalars['Boolean']['input']; + input: Types.UpdateMangaInput; + updateCategoryInput: Types.UpdateMangaCategoriesInput; + updateCategories: boolean; }>; -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 }; +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 }; export type UpdateMangasMutationVariables = Exact<{ - input: UpdateMangasInput; - updateCategoryInput: UpdateMangasCategoriesInput; - updateCategories: Scalars['Boolean']['input']; + input: Types.UpdateMangasInput; + updateCategoryInput: Types.UpdateMangasCategoriesInput; + updateCategories: boolean; }>; -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 }; +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 }; export type UpdateMangaCategoriesMutationVariables = Exact<{ - input: UpdateMangaCategoriesInput; + input: Types.UpdateMangaCategoriesInput; }>; -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 }; +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 }; export type UpdateMangasCategoriesMutationVariables = Exact<{ - input: UpdateMangasCategoriesInput; + input: Types.UpdateMangasCategoriesInput; }>; -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 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<{ - preUpdateDeleteInput: DeleteMangaMetasInput; - hasPreUpdateDeletions: Scalars['Boolean']['input']; - updateInput: SetMangaMetasInput; - hasUpdates: Scalars['Boolean']['input']; - postUpdateDeleteInput: DeleteMangaMetasInput; - hasPostUpdateDeletions: Scalars['Boolean']['input']; - migrateInput: SetMangaMetasInput; - isMigration: Scalars['Boolean']['input']; + preUpdateDeleteInput: Types.DeleteMangaMetasInput; + hasPreUpdateDeletions: boolean; + updateInput: Types.SetMangaMetasInput; + hasUpdates: boolean; + postUpdateDeleteInput: Types.DeleteMangaMetasInput; + hasPostUpdateDeletions: boolean; + migrateInput: Types.SetMangaMetasInput; + isMigration: boolean; }>; -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 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 GetMangaScreenQueryVariables = Exact<{ - id: Scalars['Int']['input']; + id: number; }>; -export type GetMangaScreenQuery = { __typename?: 'Query', manga: { __typename?: 'MangaType', artist?: string | null, author?: string | null, description?: string | null, status: MangaStatus, realUrl?: string | null, sourceId: string, genre: Array, 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 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, 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 GetMangaReaderQueryVariables = Exact<{ - id: Scalars['Int']['input']; + id: number; }>; -export type GetMangaReaderQuery = { __typename?: 'Query', manga: { __typename?: 'MangaType', genre: Array, 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 GetMangaReaderQuery = { __typename: 'Query', manga: { __typename: 'MangaType', genre: Array, 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 GetMangaTrackRecordsQueryVariables = Exact<{ - id: Scalars['Int']['input']; + id: number; }>; -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 }> } } }; +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 }> } } }; export type GetMangaCategoriesQueryVariables = Exact<{ - id: Scalars['Int']['input']; + id: number; }>; -export type GetMangaCategoriesQuery = { __typename?: 'Query', manga: { __typename?: 'MangaType', id: number, categories: { __typename?: 'CategoryNodeList', totalCount: number, nodes: Array<{ __typename?: 'CategoryType', id: number }> } } }; +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<{ - id: Scalars['Int']['input']; - getChapterData: Scalars['Boolean']['input']; - migrateCategories: Scalars['Boolean']['input']; - migrateTracking: Scalars['Boolean']['input']; - migrateMetadata: Scalars['Boolean']['input']; + id: number; + getChapterData: boolean; + migrateCategories: boolean; + migrateTracking: boolean; + migrateMetadata: boolean; }>; -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 }> } }; +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 }> } }; export type GetMangasBaseQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | MangaOrderInput>; + 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 | null | undefined; }>; -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 } } }; +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 } } }; export type GetMangasLibraryQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | MangaOrderInput>; + 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 | null | undefined; }>; -export type GetMangasLibraryQuery = { __typename?: 'Query', mangas: { __typename?: 'MangaNodeList', totalCount: number, nodes: Array<{ __typename?: 'MangaType', genre: Array, lastFetchedAt?: string | null, inLibraryAt: string, status: 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 GetMangasLibraryQuery = { __typename: 'Query', mangas: { __typename: 'MangaNodeList', totalCount: number, nodes: Array<{ __typename: 'MangaType', genre: Array, 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 GetMangasDuplicatesQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | MangaOrderInput>; + 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 | null | undefined; }>; -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 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<{ - sourceId: Scalars['LongString']['input']; + sourceId: string; }>; -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 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 GetLibraryMangaCountQuery = { __typename: 'Query', mangas: { __typename: 'MangaNodeList', totalCount: number } }; export type UpdateGlobalMetadataMutationVariables = Exact<{ - preUpdateDeleteInput: DeleteGlobalMetasInput; - hasPreUpdateDeletions: Scalars['Boolean']['input']; - updateInput: SetGlobalMetasInput; - hasUpdates: Scalars['Boolean']['input']; - postUpdateDeleteInput: DeleteGlobalMetasInput; - hasPostUpdateDeletions: Scalars['Boolean']['input']; - migrateInput: SetGlobalMetasInput; - isMigration: Scalars['Boolean']['input']; + preUpdateDeleteInput: Types.DeleteGlobalMetasInput; + hasPreUpdateDeletions: boolean; + updateInput: Types.SetGlobalMetasInput; + hasUpdates: boolean; + postUpdateDeleteInput: Types.DeleteGlobalMetasInput; + hasPostUpdateDeletions: boolean; + migrateInput: Types.SetGlobalMetasInput; + isMigration: boolean; }>; -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 }; +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 }; export type GetGlobalMetadataQueryVariables = Exact<{ - key: Scalars['String']['input']; + key: string; }>; -export type GetGlobalMetadataQuery = { __typename?: 'Query', meta: { __typename?: 'GlobalMetaType', key: string, value: string } }; +export type GetGlobalMetadataQuery = { __typename: 'Query', meta: { __typename: 'GlobalMetaType', key: string, value: string } }; export type GetGlobalMetadatasQueryVariables = Exact<{ - after?: InputMaybe; - before?: InputMaybe; - condition?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - offset?: InputMaybe; - order?: InputMaybe | MetaOrderInput>; + 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 | null | undefined; }>; -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 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: WebUiChannel, tag: string, updateTimestamp: string }; +export type AboutWebuiFragment = { __typename: 'AboutWebUI', channel: Types.WebUiChannel, tag: string, updateTimestamp: string }; -export type WebuiUpdateCheckFragment = { __typename?: 'WebUIUpdateCheck', channel: WebUiChannel, tag: string, updateAvailable: boolean }; +export type WebuiUpdateCheckFragment = { __typename: 'WebUIUpdateCheck', channel: Types.WebUiChannel, tag: string, updateAvailable: boolean }; -export type WebuiUpdateInfoFragment = { __typename?: 'WebUIUpdateInfo', channel: WebUiChannel, tag: string }; +export type WebuiUpdateInfoFragment = { __typename: 'WebUIUpdateInfo', channel: Types.WebUiChannel, tag: string }; -export type WebuiUpdateStatusFragment = { __typename?: 'WebUIUpdateStatus', progress: number, state: UpdateState, info: { __typename?: 'WebUIUpdateInfo', channel: WebUiChannel, tag: string } }; +export type WebuiUpdateStatusFragment = { __typename: 'WebUIUpdateStatus', progress: number, state: Types.UpdateState, info: { __typename: 'WebUIUpdateInfo', channel: Types.WebUiChannel, tag: string } }; export type UpdateWebuiMutationVariables = Exact<{ - input?: InputMaybe; + input?: Types.WebUiUpdateInput | null | undefined; }>; -export type UpdateWebuiMutation = { __typename?: 'Mutation', updateWebUI?: { __typename?: 'WebUIUpdatePayload', updateStatus: { __typename?: 'WebUIUpdateStatus', progress: number, state: UpdateState, info: { __typename?: 'WebUIUpdateInfo', channel: WebUiChannel, tag: string } } } | null }; +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: UpdateState, info: { __typename?: 'WebUIUpdateInfo', channel: WebUiChannel, tag: string } } | null }; +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: WebUiChannel, tag: string, updateTimestamp: string } }; +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 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: WebUiChannel, tag: string, updateAvailable: boolean } }; +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: UpdateState, info: { __typename?: 'WebUIUpdateInfo', channel: WebUiChannel, tag: string } } }; +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: UpdateState, info: { __typename?: 'WebUIUpdateInfo', channel: WebUiChannel, tag: string } } }; +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: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, autoDownloadIgnoreReUploads: boolean, extensionRepos: Array, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, authMode: 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: SortOrder, opdsCbzMimetype: CbzMediaType, koreaderSyncChecksumMethod: KoreaderSyncChecksumMethod, koreaderSyncStrategyBackward: KoreaderSyncConflictStrategy, koreaderSyncStrategyForward: KoreaderSyncConflictStrategy, koreaderSyncPercentageTolerance: number, databaseType: DatabaseType, databaseUrl: string, databaseUsername: string, databasePassword: string, useHikariConnectionPool: boolean, 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 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, 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, 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 ResetServerSettingsMutationVariables = Exact<{ - input: ResetSettingsInput; + input: Types.ResetSettingsInput; }>; -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: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, autoDownloadIgnoreReUploads: boolean, extensionRepos: Array, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, authMode: 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: SortOrder, opdsCbzMimetype: CbzMediaType, koreaderSyncChecksumMethod: KoreaderSyncChecksumMethod, koreaderSyncStrategyBackward: KoreaderSyncConflictStrategy, koreaderSyncStrategyForward: KoreaderSyncConflictStrategy, koreaderSyncPercentageTolerance: number, databaseType: DatabaseType, databaseUrl: string, databaseUsername: string, databasePassword: string, useHikariConnectionPool: boolean, 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 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, 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, 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 UpdateServerSettingsMutationVariables = Exact<{ - input: SetSettingsInput; + input: Types.SetSettingsInput; }>; -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: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, autoDownloadIgnoreReUploads: boolean, extensionRepos: Array, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, authMode: 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: SortOrder, opdsCbzMimetype: CbzMediaType, koreaderSyncChecksumMethod: KoreaderSyncChecksumMethod, koreaderSyncStrategyBackward: KoreaderSyncConflictStrategy, koreaderSyncStrategyForward: KoreaderSyncConflictStrategy, koreaderSyncPercentageTolerance: number, databaseType: DatabaseType, databaseUrl: string, databaseUsername: string, databasePassword: string, useHikariConnectionPool: boolean, 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 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, 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, 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: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, autoDownloadIgnoreReUploads: boolean, extensionRepos: Array, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, authMode: 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: SortOrder, opdsCbzMimetype: CbzMediaType, koreaderSyncChecksumMethod: KoreaderSyncChecksumMethod, koreaderSyncStrategyBackward: KoreaderSyncConflictStrategy, koreaderSyncStrategyForward: KoreaderSyncConflictStrategy, koreaderSyncPercentageTolerance: number, databaseType: DatabaseType, databaseUrl: string, databaseUsername: string, databasePassword: string, useHikariConnectionPool: boolean, 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 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, 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, 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 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 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 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, type: 'SelectFilter', SelectFilterDefault: number } - | { __typename?: 'SeparatorFilter', name: string, type: 'SeparatorFilter' } - | { __typename?: 'SortFilter', name: string, values: Array, 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: TriState } +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, type: 'SelectFilter', SelectFilterDefault: number } + | { __typename: 'SeparatorFilter', name: string, type: 'SeparatorFilter' } + | { __typename: 'SortFilter', name: string, values: Array, 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, type: 'SelectFilter', SelectFilterDefault: number } - | { __typename?: 'SeparatorFilter', name: string, type: 'SeparatorFilter' } - | { __typename?: 'SortFilter', name: string, values: Array, 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: TriState } + | { __typename: 'HeaderFilter', name: string, type: 'HeaderFilter' } + | { __typename: 'SelectFilter', name: string, values: Array, type: 'SelectFilter', SelectFilterDefault: number } + | { __typename: 'SeparatorFilter', name: string, type: 'SeparatorFilter' } + | { __typename: 'SortFilter', name: string, values: Array, 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, entries: Array, 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, entries: Array, type: 'MultiSelectListPreference', MultiSelectListPreferenceTitle?: string | null, MultiSelectListPreferenceDefault?: Array | null, MultiSelectListPreferenceCurrentValue?: Array | null } - | { __typename?: 'SwitchPreference', summary?: string | null, key?: string | null, type: 'SwitchPreference', SwitchPreferenceCurrentValue?: boolean | null, SwitchPreferenceDefault: boolean, SwitchPreferenceTitle?: string | null } +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, entries: Array, 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, entries: Array, type: 'MultiSelectListPreference', MultiSelectListPreferenceTitle: string | null, MultiSelectListPreferenceDefault: Array | null, MultiSelectListPreferenceCurrentValue: Array | null } + | { __typename: 'SwitchPreference', summary: string | null, key: string | null, type: 'SwitchPreference', SwitchPreferenceCurrentValue: boolean | null, SwitchPreferenceDefault: boolean, SwitchPreferenceTitle: string | null } > }; export type GetSourceMangasFetchMutationVariables = Exact<{ - input: FetchSourceMangaInput; + input: Types.FetchSourceMangaInput; }>; -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 }; +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 }; export type GetMigrationSourceMangasFetchMutationVariables = Exact<{ - input: FetchSourceMangaInput; + input: Types.FetchSourceMangaInput; }>; -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 }; +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 }; export type UpdateSourcePreferencesMutationVariables = Exact<{ - input: UpdateSourcePreferenceInput; + input: Types.UpdateSourcePreferenceInput; }>; -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, entries: Array, 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, entries: Array, type: 'MultiSelectListPreference', MultiSelectListPreferenceTitle?: string | null, MultiSelectListPreferenceDefault?: Array | null, MultiSelectListPreferenceCurrentValue?: Array | null } - | { __typename?: 'SwitchPreference', summary?: string | null, key?: string | null, type: 'SwitchPreference', SwitchPreferenceCurrentValue?: boolean | null, SwitchPreferenceDefault: boolean, SwitchPreferenceTitle?: string | null } +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, entries: Array, 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, entries: Array, type: 'MultiSelectListPreference', MultiSelectListPreferenceTitle: string | null, MultiSelectListPreferenceDefault: Array | null, MultiSelectListPreferenceCurrentValue: Array | null } + | { __typename: 'SwitchPreference', summary: string | null, key: string | null, type: 'SwitchPreference', SwitchPreferenceCurrentValue: boolean | null, SwitchPreferenceDefault: boolean, SwitchPreferenceTitle: string | null } > } } | null }; export type UpdateSourceMetadataMutationVariables = Exact<{ - preUpdateDeleteInput: DeleteSourceMetasInput; - hasPreUpdateDeletions: Scalars['Boolean']['input']; - updateInput: SetSourceMetasInput; - hasUpdates: Scalars['Boolean']['input']; - postUpdateDeleteInput: DeleteSourceMetasInput; - hasPostUpdateDeletions: Scalars['Boolean']['input']; - migrateInput: SetSourceMetasInput; - isMigration: Scalars['Boolean']['input']; + preUpdateDeleteInput: Types.DeleteSourceMetasInput; + hasPreUpdateDeletions: boolean; + updateInput: Types.SetSourceMetasInput; + hasUpdates: boolean; + postUpdateDeleteInput: Types.DeleteSourceMetasInput; + hasPostUpdateDeletions: boolean; + migrateInput: Types.SetSourceMetasInput; + isMigration: boolean; }>; -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 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<{ - id: Scalars['LongString']['input']; + 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, type: 'SelectFilter', SelectFilterDefault: number } - | { __typename?: 'SeparatorFilter', name: string, type: 'SeparatorFilter' } - | { __typename?: 'SortFilter', name: string, values: Array, 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: TriState } +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, type: 'SelectFilter', SelectFilterDefault: number } + | { __typename: 'SeparatorFilter', name: string, type: 'SeparatorFilter' } + | { __typename: 'SortFilter', name: string, values: Array, 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, type: 'SelectFilter', SelectFilterDefault: number } - | { __typename?: 'SeparatorFilter', name: string, type: 'SeparatorFilter' } - | { __typename?: 'SortFilter', name: string, values: Array, 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: TriState } + | { __typename: 'HeaderFilter', name: string, type: 'HeaderFilter' } + | { __typename: 'SelectFilter', name: string, values: Array, type: 'SelectFilter', SelectFilterDefault: number } + | { __typename: 'SeparatorFilter', name: string, type: 'SeparatorFilter' } + | { __typename: 'SortFilter', name: string, values: Array, 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<{ - id: Scalars['LongString']['input']; + id: string; }>; -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, entries: Array, 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, entries: Array, type: 'MultiSelectListPreference', MultiSelectListPreferenceTitle?: string | null, MultiSelectListPreferenceDefault?: Array | null, MultiSelectListPreferenceCurrentValue?: Array | null } - | { __typename?: 'SwitchPreference', summary?: string | null, key?: string | null, type: 'SwitchPreference', SwitchPreferenceCurrentValue?: boolean | null, SwitchPreferenceDefault: boolean, SwitchPreferenceTitle?: string | null } +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, entries: Array, 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, entries: Array, type: 'MultiSelectListPreference', MultiSelectListPreferenceTitle: string | null, MultiSelectListPreferenceDefault: Array | null, MultiSelectListPreferenceCurrentValue: Array | null } + | { __typename: 'SwitchPreference', summary: string | null, key: string | null, type: 'SwitchPreference', SwitchPreferenceCurrentValue: boolean | null, SwitchPreferenceDefault: boolean, SwitchPreferenceTitle: string | null } > } }; export type GetSourceMigratableQueryVariables = Exact<{ - id: Scalars['LongString']['input']; + id: string; }>; -export type GetSourceMigratableQuery = { __typename?: 'Query', source: { __typename?: 'SourceType', id: string, name: string, displayName: string, lang: string, iconUrl: string } }; +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 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 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 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 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, 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 TrackerBindFieldsFragment = { __typename: 'TrackerType', icon: string, supportsPrivateTracking: boolean, supportsTrackDeletion: boolean, scores: Array, 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 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 }; +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 }; export type TrackerLoginOauthMutationVariables = Exact<{ - input: LoginTrackerOAuthInput; + input: Types.LoginTrackerOAuthInput; }>; -export type TrackerLoginOauthMutation = { __typename?: 'Mutation', loginTrackerOAuth: { __typename?: 'LoginTrackerOAuthPayload', tracker: { __typename?: 'TrackerType', authUrl?: string | null, id: number, name: string, icon: string, isLoggedIn: boolean, isTokenExpired: boolean } } }; +export type TrackerLoginOauthMutation = { __typename: 'Mutation', loginTrackerOAuth: { __typename: 'LoginTrackerOAuthPayload', tracker: { __typename: 'TrackerType', authUrl: string | null, id: number, name: string, icon: string, isLoggedIn: boolean, isTokenExpired: boolean } } }; export type TrackerLoginCredentialsMutationVariables = Exact<{ - input: LoginTrackerCredentialsInput; + input: Types.LoginTrackerCredentialsInput; }>; -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 } } }; +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 } } }; export type TrackerLogoutMutationVariables = Exact<{ - trackerId: Scalars['Int']['input']; + trackerId: number; }>; -export type TrackerLogoutMutation = { __typename?: 'Mutation', logoutTracker: { __typename?: 'LogoutTrackerPayload', tracker: { __typename?: 'TrackerType', authUrl?: string | null, id: number, name: string, icon: string, isLoggedIn: boolean, isTokenExpired: boolean } } }; +export type TrackerLogoutMutation = { __typename: 'Mutation', logoutTracker: { __typename: 'LogoutTrackerPayload', tracker: { __typename: 'TrackerType', authUrl: string | null, id: number, name: string, icon: string, isLoggedIn: boolean, isTokenExpired: boolean } } }; export type TrackerBindMutationVariables = Exact<{ - input: BindTrackInput; + input: Types.BindTrackInput; }>; -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 }> } } } } }; +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 }> } } } } }; export type TrackerUnbindMutationVariables = Exact<{ - input: UnbindTrackInput; + input: Types.UnbindTrackInput; }>; -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 } }; +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 } }; export type TrackerUpdateBindMutationVariables = Exact<{ - input: UpdateTrackInput; + input: Types.UpdateTrackInput; }>; -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 } }; +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 } }; export type TrackerFetchBindMutationVariables = Exact<{ - recordId: Scalars['Int']['input']; + recordId: number; }>; -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 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 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, 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 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, 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 TrackerSearchQueryVariables = Exact<{ - query: Scalars['String']['input']; - trackerId: Scalars['Int']['input']; + query: string; + trackerId: number; }>; -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 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: 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 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: CategoryJobStatus, category: { __typename?: 'CategoryType', id: number, name: string } }; +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 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: CategoryJobStatus, category: { __typename?: 'CategoryType', id: number, name: string } }>, mangaUpdates: Array<{ __typename?: 'MangaUpdateType', status: 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 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: CategoryJobStatus, category: { __typename?: 'CategoryType', id: number, name: string } }>, mangaUpdates: Array<{ __typename?: 'MangaUpdateType', status: 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 }; +export type UpdaterStartStopFieldsFragment = { __typename: 'UpdateStatus', isRunning: boolean }; export type UpdateLibraryMutationVariables = Exact<{ - input?: InputMaybe; + input?: Types.UpdateLibraryInput | null | undefined; }>; -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: CategoryJobStatus, category: { __typename?: 'CategoryType', id: number, name: string } }>, mangaUpdates: Array<{ __typename?: 'MangaUpdateType', status: 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 }; +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 }; export type StopUpdaterMutationVariables = Exact<{ - input?: InputMaybe; + input?: Types.UpdateStopInput | null | undefined; }>; -export type StopUpdaterMutation = { __typename?: 'Mutation', updateStop: { __typename?: 'UpdateStopPayload', clientMutationId?: string | null } }; +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: CategoryJobStatus, category: { __typename?: 'CategoryType', id: number, name: string } }>, mangaUpdates: Array<{ __typename?: 'MangaUpdateType', status: 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 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 } }; +export type GetLastUpdateTimestampQuery = { __typename: 'Query', lastUpdateTimestamp: { __typename: 'LastUpdateTimestampPayload', timestamp: string } }; export type UpdaterSubscriptionVariables = Exact<{ - input: LibraryUpdateStatusChangedInput; + input: Types.LibraryUpdateStatusChangedInput; }>; -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: CategoryJobStatus, category: { __typename?: 'CategoryType', id: number, name: string } }>, mangaUpdates: Array<{ __typename?: 'MangaUpdateType', status: 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 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 } }> } }; export type UserLoginMutationVariables = Exact<{ - password: Scalars['String']['input']; - username: Scalars['String']['input']; + password: string; + username: string; }>; -export type UserLoginMutation = { __typename?: 'Mutation', login: { __typename?: 'LoginPayload', accessToken: string, refreshToken: string } }; +export type UserLoginMutation = { __typename: 'Mutation', login: { __typename: 'LoginPayload', accessToken: string, refreshToken: string } }; export type UserRefreshMutationVariables = Exact<{ - refreshToken: Scalars['String']['input']; + refreshToken: string; }>; -export type UserRefreshMutation = { __typename?: 'Mutation', refreshToken: { __typename?: 'RefreshTokenPayload', accessToken: string } }; +export type UserRefreshMutation = { __typename: 'Mutation', refreshToken: { __typename: 'RefreshTokenPayload', accessToken: string } }; diff --git a/src/lib/requests/RequestManager.ts b/src/lib/requests/RequestManager.ts index 9a8f74a1..6f2507c6 100644 --- a/src/lib/requests/RequestManager.ts +++ b/src/lib/requests/RequestManager.ts @@ -23,7 +23,6 @@ import { RestClient } from '@/lib/requests/client/RestClient.ts'; import { GraphQLClient } from '@/lib/requests/client/GraphQLClient.ts'; import { BaseClient } from '@/lib/requests/client/BaseClient.ts'; import type { - ChapterConditionInput, CheckForServerUpdatesQuery, CheckForServerUpdatesQueryVariables, CheckForWebuiUpdateQuery, @@ -32,7 +31,6 @@ import type { ClearDownloaderMutationVariables, ClearServerCacheMutation, ClearServerCacheMutationVariables, - CreateCategoryInput, CreateCategoryMutation, CreateCategoryMutationVariables, DeleteCategoryMutation, @@ -51,8 +49,6 @@ import type { EnqueueChapterDownloadMutationVariables, EnqueueChapterDownloadsMutation, EnqueueChapterDownloadsMutationVariables, - FetchSourceMangaInput, - FilterChangeInput, GetAboutQuery, GetAboutQueryVariables, GetCategoriesSettingsQuery, @@ -113,10 +109,6 @@ import type { ResetWebuiUpdateStatusMutationVariables, RestoreBackupMutation, RestoreBackupMutationVariables, - SetGlobalMetasInput, - DeleteGlobalMetasInput, - SettingsType, - SourcePreferenceChangeInput, StartDownloaderMutation, StartDownloaderMutationVariables, StopDownloaderMutation, @@ -143,23 +135,18 @@ import type { UpdateCategoryMutationVariables, UpdateCategoryOrderMutation, UpdateCategoryOrderMutationVariables, - UpdateCategoryPatchInput, UpdateChapterMutation, UpdateChapterMutationVariables, - UpdateChapterPatchInput, UpdateChaptersMutation, UpdateChaptersMutationVariables, UpdateExtensionMutation, UpdateExtensionMutationVariables, - UpdateExtensionPatchInput, UpdateExtensionsMutation, UpdateExtensionsMutationVariables, UpdateMangaCategoriesMutation, UpdateMangaCategoriesMutationVariables, - UpdateMangaCategoriesPatchInput, UpdateMangaMutation, UpdateMangaMutationVariables, - UpdateMangaPatchInput, UpdateMangasCategoriesMutation, UpdateMangasCategoriesMutationVariables, UpdateMangasMutation, @@ -170,7 +157,6 @@ import type { UpdateServerSettingsMutationVariables, UpdateSourcePreferencesMutation, UpdateSourcePreferencesMutationVariables, - UpdateTrackInput, UpdateWebuiMutation, UpdateWebuiMutationVariables, ValidateBackupQuery, @@ -184,10 +170,8 @@ import type { UserLoginMutationVariables, UserRefreshMutation, UserRefreshMutationVariables, - CreateBackupInput, CreateBackupMutation, CreateBackupMutationVariables, - RestoreBackupInput, KoSyncLoginMutation, KoSyncLoginMutationVariables, KoSyncLogoutMutation, @@ -204,17 +188,34 @@ import type { UpdateCategoryMetadataMutationVariables, UpdateSourceMetadataMutation, UpdateSourceMetadataMutationVariables, - SetSourceMetasInput, - DeleteSourceMetasInput, - SetMangaMetasInput, - DeleteMangaMetasInput, - SetChapterMetasInput, - DeleteChapterMetasInput, - SetCategoryMetasInput, - DeleteCategoryMetasInput, RefreshMangaMutation, RefreshMangaMutationVariables, } from '@/lib/graphql/generated/graphql.ts'; +import type { + DeleteGlobalMetasInput, + SetGlobalMetasInput, + UpdateExtensionPatchInput, + DeleteSourceMetasInput, + SetSourceMetasInput, + FetchSourceMangaInput, + SourcePreferenceChangeInput, + FilterChangeInput, + UpdateMangaCategoriesPatchInput, + UpdateMangaPatchInput, + DeleteMangaMetasInput, + SetMangaMetasInput, + ChapterConditionInput, + UpdateChapterPatchInput, + DeleteChapterMetasInput, + SetChapterMetasInput, + CreateCategoryInput, + UpdateCategoryPatchInput, + DeleteCategoryMetasInput, + SetCategoryMetasInput, + CreateBackupInput, + RestoreBackupInput, + UpdateTrackInput, +} from '@/lib/graphql/generated/graphql-base.types.ts'; import { CategoryOrderBy, ChapterOrderBy, @@ -222,7 +223,7 @@ import { FetchSourceMangaType, SortOrder, DownloaderState, -} from '@/lib/graphql/generated/graphql.ts'; +} from '@/lib/graphql/generated/graphql-base.types.ts'; import { GET_GLOBAL_METADATAS } from '@/lib/graphql/metadata/GlobalMetadataQuery.ts'; import { UPDATE_GLOBAL_METADATA } from '@/lib/graphql/metadata/GlobalMetadataMutation.ts'; import { @@ -1583,6 +1584,7 @@ export class RequestManager { data: { ...cachedExtensions.data, fetchExtensions: { + __typename: 'FetchExtensionsPayload', ...cachedExtensions.data.fetchExtensions, extensions: isExtensionCached ? cachedExtensions.data.fetchExtensions!.extensions.map((extension) => { @@ -1645,6 +1647,7 @@ export class RequestManager { data: { ...cachedExtensions.data, fetchExtensions: { + __typename: 'FetchExtensionsPayload', ...cachedExtensions.data.fetchExtensions, extensions: cachedExtensions.data.fetchExtensions?.extensions @@ -1709,6 +1712,7 @@ export class RequestManager { data: { ...cachedExtensions.data, fetchExtensions: { + __typename: 'FetchExtensionsPayload', ...cachedExtensions.data.fetchExtensions, extensions: cachedExtensions.data.fetchExtensions?.extensions @@ -3495,6 +3499,7 @@ export class RequestManager { cache.writeQuery({ query: GET_DOWNLOAD_STATUS, data: { + __typename: 'Query', ...downloadStatusQueryCache, downloadStatus: { __typename: 'DownloadStatus', @@ -3588,7 +3593,7 @@ export class RequestManager { settings: { __typename: 'SettingsType', ...(mutateOptions?.variables?.input.settings ?? {}), - } as SettingsType, + } as UpdateServerSettingsMutation['setSettings']['settings'], }, }, ...mutateOptions,