From 18dad7cb0bb65b465e09cc28816609c7dcb1a5d0 Mon Sep 17 00:00:00 2001 From: Chuck Dries Date: Mon, 10 Oct 2022 02:46:54 -0700 Subject: [PATCH] solve type errors --- .eslintrc.js | 3 +- package.json | 4 + .../{KeywordsPicker.js => KeywordsPicker.tsx} | 7 +- src/components/MasonryGallery.tsx | 26 +- src/components/{Nav.js => Nav.tsx} | 11 +- src/gatsby-types.d.ts | 4424 +++++++++++++++++ src/global.d.ts | 4 + .../{photogallery.js => photogallery.tsx} | 45 +- src/utils.ts | 36 +- yarn.lock | 15 +- 10 files changed, 4526 insertions(+), 49 deletions(-) rename src/components/{KeywordsPicker.js => KeywordsPicker.tsx} (81%) rename src/components/{Nav.js => Nav.tsx} (94%) create mode 100644 src/gatsby-types.d.ts create mode 100644 src/global.d.ts rename src/pages/{photogallery.js => photogallery.tsx} (84%) diff --git a/.eslintrc.js b/.eslintrc.js index cc65bd2..4d6d044 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -19,8 +19,9 @@ module.exports = { "plugin:react-hooks/recommended", ], rules: { + "no-undef": 0, "react/prop-types": 0, - "no-unused-vars": 1, + "no-unused-vars": 0, "react/jsx-sort-props": 1, }, }; diff --git a/package.json b/package.json index a8e26d1..0dfcced 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,9 @@ "deploy": "yarn build && yarn upload", "pretty": "prettier --write ." }, + "resolutions": { + "@types/react": "^17.0.38" + }, "dependencies": { "@adobe/react-spectrum": "^3.19.0", "@mdx-js/mdx": "^1.6.22", @@ -71,6 +74,7 @@ "@types/ramda": "^0.28.15", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", + "@types/react-helmet": "^6.1.5", "@typescript-eslint/eslint-plugin": "^5.39.0", "@typescript-eslint/parser": "^5.39.0", "cross-env": "^7.0.3", diff --git a/src/components/KeywordsPicker.js b/src/components/KeywordsPicker.tsx similarity index 81% rename from src/components/KeywordsPicker.js rename to src/components/KeywordsPicker.tsx index 2288e22..3d6ba86 100644 --- a/src/components/KeywordsPicker.js +++ b/src/components/KeywordsPicker.tsx @@ -1,7 +1,12 @@ import * as React from "react"; import classNames from "classnames"; -const KeywordsPicker = ({ keywords, value, onChange }) => { +interface KeywordsPickerProps { + keywords: string[]; + value: string | null; + onChange: (val: string | null) => void; +} +const KeywordsPicker = ({ keywords, value, onChange }: KeywordsPickerProps) => { return (
Collections diff --git a/src/components/MasonryGallery.tsx b/src/components/MasonryGallery.tsx index 3221d39..2ae73a8 100644 --- a/src/components/MasonryGallery.tsx +++ b/src/components/MasonryGallery.tsx @@ -1,6 +1,6 @@ import * as React from "react"; -import { Link, Node } from "gatsby"; -import { GatsbyImage, getImage, ImageDataLike } from "gatsby-plugin-image"; +import { Link } from "gatsby"; +import { GatsbyImage, getImage } from "gatsby-plugin-image"; import * as R from "ramda"; import { getAspectRatio, getName } from "../utils"; import useBreakpoint from "use-breakpoint"; @@ -8,6 +8,7 @@ import useBreakpoint from "use-breakpoint"; // @ts-ignore import themeBreakpoints from "../breakpoints"; import classNames from "classnames"; +import { GalleryImage } from "../pages/photogallery"; interface Row { aspect: number; @@ -16,7 +17,7 @@ interface Row { } interface MasonryGalleryProps { - images: (ImageDataLike & Node)[]; + images: (GalleryImage)[]; aspectsByBreakpoint: { [breakpoint: string]: number; } @@ -40,9 +41,9 @@ const MasonryGallery = ({ const { breakpoint } = useBreakpoint(breakpoints, "sm"); const aspectRatios = React.useMemo( - () => R.map(getAspectRatio, images), + () => R.map(getAspectRatio, images).filter(Boolean), [images] - ); + ) as number[]; const targetAspect = aspectTargetsByBreakpoint[breakpoint]; const rows = React.useMemo( @@ -115,6 +116,7 @@ const MasonryGallery = ({ const widthNumber = ((ar / rowAspectRatioSum) * 100).toFixed(7); width = `${widthNumber}%`; } + // @ts-ignore const img = getImage(image); return ( hsl( - {image.fields.imageMeta.dominantHue[0]},{" "} - {(image.fields.imageMeta.dominantHue[1] * 100).toFixed(2)}%,{" "} - {(image.fields.imageMeta.dominantHue[2] * 100).toFixed(2)}% ) + {image.fields?.imageMeta?.dominantHue?.[0]},{" "} + {(image.fields?.imageMeta?.dominantHue?.[1] ?? 0 * 100).toFixed(2)}%,{" "} + {(image.fields?.imageMeta?.dominantHue?.[2] ?? 0 * 100).toFixed(2)}% ) )} {debugRating && ( - rating: {image.fields.imageMeta.meta.Rating} + rating: {image.fields?.imageMeta?.meta?.Rating} )} {img && ( diff --git a/src/components/Nav.js b/src/components/Nav.tsx similarity index 94% rename from src/components/Nav.js rename to src/components/Nav.tsx index 5fe9277..959cc57 100644 --- a/src/components/Nav.js +++ b/src/components/Nav.tsx @@ -5,7 +5,16 @@ import useDimensions from "react-cool-dimensions"; import Menu from "@spectrum-icons/workflow/Menu"; -const Nav = ({ isClient, internalLinks, className }) => { +interface NavProps { + isClient?: boolean; + className?: string; + internalLinks: { + href: string; + label: string; + }[] +} + +const Nav = ({ isClient, internalLinks, className }: NavProps) => { const { observe, currentBreakpoint } = useDimensions({ breakpoints: { XS: 0, LG: 690 }, updateOnBreakpointChange: true, diff --git a/src/gatsby-types.d.ts b/src/gatsby-types.d.ts new file mode 100644 index 0000000..c58a9e1 --- /dev/null +++ b/src/gatsby-types.d.ts @@ -0,0 +1,4424 @@ +/* eslint-disable */ + +/* THIS FILE IS AUTOGENERATED. CHANGES WILL BE LOST ON SUBSEQUENT RUNS. */ + +declare namespace Queries { + +type Maybe = T | null; +type InputMaybe = T | null; +type Exact = { [K in keyof T]: T[K] }; +type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +/** All built-in and custom scalars, mapped to their actual values */ +type Scalars = { + /** The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. */ + ID: string; + /** The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. */ + String: string; + /** The `Boolean` scalar type represents `true` or `false`. */ + Boolean: boolean; + /** The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. */ + Int: number; + /** The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). */ + Float: number; + /** A date string, such as 2007-12-03, compliant with the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */ + Date: string; + GatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData; + /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */ + JSON: Record; +}; + +type AVIFOptions = { + readonly lossless: InputMaybe; + readonly quality: InputMaybe; + readonly speed: InputMaybe; +}; + +type BlurredOptions = { + /** Force the output format for the low-res preview. Default is to use the same format as the input. You should rarely need to change this */ + readonly toFormat: InputMaybe; + /** Width of the generated low-res preview. Default is 20px */ + readonly width: InputMaybe; +}; + +type BooleanQueryOperatorInput = { + readonly eq: InputMaybe; + readonly in: InputMaybe>>; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type DateQueryOperatorInput = { + readonly eq: InputMaybe; + readonly gt: InputMaybe; + readonly gte: InputMaybe; + readonly in: InputMaybe>>; + readonly lt: InputMaybe; + readonly lte: InputMaybe; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type Directory = Node & { + readonly absolutePath: Scalars['String']; + readonly accessTime: Scalars['Date']; + readonly atime: Scalars['Date']; + readonly atimeMs: Scalars['Float']; + readonly base: Scalars['String']; + readonly birthTime: Scalars['Date']; + /** @deprecated Use `birthTime` instead */ + readonly birthtime: Maybe; + /** @deprecated Use `birthTime` instead */ + readonly birthtimeMs: Maybe; + readonly changeTime: Scalars['Date']; + readonly children: ReadonlyArray; + readonly ctime: Scalars['Date']; + readonly ctimeMs: Scalars['Float']; + readonly dev: Scalars['Int']; + readonly dir: Scalars['String']; + readonly ext: Scalars['String']; + readonly extension: Scalars['String']; + readonly gid: Scalars['Int']; + readonly id: Scalars['ID']; + readonly ino: Scalars['Float']; + readonly internal: Internal; + readonly mode: Scalars['Int']; + readonly modifiedTime: Scalars['Date']; + readonly mtime: Scalars['Date']; + readonly mtimeMs: Scalars['Float']; + readonly name: Scalars['String']; + readonly nlink: Scalars['Int']; + readonly parent: Maybe; + readonly prettySize: Scalars['String']; + readonly rdev: Scalars['Int']; + readonly relativeDirectory: Scalars['String']; + readonly relativePath: Scalars['String']; + readonly root: Scalars['String']; + readonly size: Scalars['Int']; + readonly sourceInstanceName: Scalars['String']; + readonly uid: Scalars['Int']; +}; + + +type Directory_accessTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_atimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_birthTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_changeTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_ctimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_modifiedTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_mtimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type DirectoryConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type DirectoryConnection_distinctArgs = { + field: DirectoryFieldsEnum; +}; + + +type DirectoryConnection_groupArgs = { + field: DirectoryFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type DirectoryConnection_maxArgs = { + field: DirectoryFieldsEnum; +}; + + +type DirectoryConnection_minArgs = { + field: DirectoryFieldsEnum; +}; + + +type DirectoryConnection_sumArgs = { + field: DirectoryFieldsEnum; +}; + +type DirectoryEdge = { + readonly next: Maybe; + readonly node: Directory; + readonly previous: Maybe; +}; + +type DirectoryFieldsEnum = + | 'absolutePath' + | 'accessTime' + | 'atime' + | 'atimeMs' + | 'base' + | 'birthTime' + | 'birthtime' + | 'birthtimeMs' + | 'changeTime' + | 'children' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'ctime' + | 'ctimeMs' + | 'dev' + | 'dir' + | 'ext' + | 'extension' + | 'gid' + | 'id' + | 'ino' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'mode' + | 'modifiedTime' + | 'mtime' + | 'mtimeMs' + | 'name' + | 'nlink' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id' + | 'prettySize' + | 'rdev' + | 'relativeDirectory' + | 'relativePath' + | 'root' + | 'size' + | 'sourceInstanceName' + | 'uid'; + +type DirectoryFilterInput = { + readonly absolutePath: InputMaybe; + readonly accessTime: InputMaybe; + readonly atime: InputMaybe; + readonly atimeMs: InputMaybe; + readonly base: InputMaybe; + readonly birthTime: InputMaybe; + readonly birthtime: InputMaybe; + readonly birthtimeMs: InputMaybe; + readonly changeTime: InputMaybe; + readonly children: InputMaybe; + readonly ctime: InputMaybe; + readonly ctimeMs: InputMaybe; + readonly dev: InputMaybe; + readonly dir: InputMaybe; + readonly ext: InputMaybe; + readonly extension: InputMaybe; + readonly gid: InputMaybe; + readonly id: InputMaybe; + readonly ino: InputMaybe; + readonly internal: InputMaybe; + readonly mode: InputMaybe; + readonly modifiedTime: InputMaybe; + readonly mtime: InputMaybe; + readonly mtimeMs: InputMaybe; + readonly name: InputMaybe; + readonly nlink: InputMaybe; + readonly parent: InputMaybe; + readonly prettySize: InputMaybe; + readonly rdev: InputMaybe; + readonly relativeDirectory: InputMaybe; + readonly relativePath: InputMaybe; + readonly root: InputMaybe; + readonly size: InputMaybe; + readonly sourceInstanceName: InputMaybe; + readonly uid: InputMaybe; +}; + +type DirectoryGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type DirectoryGroupConnection_distinctArgs = { + field: DirectoryFieldsEnum; +}; + + +type DirectoryGroupConnection_groupArgs = { + field: DirectoryFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type DirectoryGroupConnection_maxArgs = { + field: DirectoryFieldsEnum; +}; + + +type DirectoryGroupConnection_minArgs = { + field: DirectoryFieldsEnum; +}; + + +type DirectoryGroupConnection_sumArgs = { + field: DirectoryFieldsEnum; +}; + +type DirectorySortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type DuotoneGradient = { + readonly highlight: Scalars['String']; + readonly opacity: InputMaybe; + readonly shadow: Scalars['String']; +}; + +type File = Node & { + readonly absolutePath: Scalars['String']; + readonly accessTime: Scalars['Date']; + readonly atime: Scalars['Date']; + readonly atimeMs: Scalars['Float']; + readonly base: Scalars['String']; + readonly birthTime: Scalars['Date']; + /** @deprecated Use `birthTime` instead */ + readonly birthtime: Maybe; + /** @deprecated Use `birthTime` instead */ + readonly birthtimeMs: Maybe; + readonly blksize: Maybe; + readonly blocks: Maybe; + readonly changeTime: Scalars['Date']; + /** Returns the first child node of type ImageSharp or null if there are no children of given type on this node */ + readonly childImageSharp: Maybe; + readonly children: ReadonlyArray; + /** Returns all children nodes filtered by type ImageSharp */ + readonly childrenImageSharp: Maybe>>; + readonly ctime: Scalars['Date']; + readonly ctimeMs: Scalars['Float']; + readonly dev: Scalars['Int']; + readonly dir: Scalars['String']; + readonly ext: Scalars['String']; + readonly extension: Scalars['String']; + readonly fields: Maybe; + readonly gid: Scalars['Int']; + readonly id: Scalars['ID']; + readonly ino: Scalars['Float']; + readonly internal: Internal; + readonly mode: Scalars['Int']; + readonly modifiedTime: Scalars['Date']; + readonly mtime: Scalars['Date']; + readonly mtimeMs: Scalars['Float']; + readonly name: Scalars['String']; + readonly nlink: Scalars['Int']; + readonly parent: Maybe; + readonly prettySize: Scalars['String']; + /** Copy file to static directory and return public url to it */ + readonly publicURL: Maybe; + readonly rdev: Scalars['Int']; + readonly relativeDirectory: Scalars['String']; + readonly relativePath: Scalars['String']; + readonly root: Scalars['String']; + readonly size: Scalars['Int']; + readonly sourceInstanceName: Scalars['String']; + readonly uid: Scalars['Int']; +}; + + +type File_accessTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_atimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_birthTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_changeTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_ctimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_modifiedTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_mtimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type FileConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type FileConnection_distinctArgs = { + field: FileFieldsEnum; +}; + + +type FileConnection_groupArgs = { + field: FileFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type FileConnection_maxArgs = { + field: FileFieldsEnum; +}; + + +type FileConnection_minArgs = { + field: FileFieldsEnum; +}; + + +type FileConnection_sumArgs = { + field: FileFieldsEnum; +}; + +type FileEdge = { + readonly next: Maybe; + readonly node: File; + readonly previous: Maybe; +}; + +type FileFields = { + readonly imageMeta: Maybe; +}; + +type FileFieldsEnum = + | 'absolutePath' + | 'accessTime' + | 'atime' + | 'atimeMs' + | 'base' + | 'birthTime' + | 'birthtime' + | 'birthtimeMs' + | 'blksize' + | 'blocks' + | 'changeTime' + | 'childImageSharp.children' + | 'childImageSharp.children.children' + | 'childImageSharp.children.children.children' + | 'childImageSharp.children.children.id' + | 'childImageSharp.children.id' + | 'childImageSharp.children.internal.content' + | 'childImageSharp.children.internal.contentDigest' + | 'childImageSharp.children.internal.description' + | 'childImageSharp.children.internal.fieldOwners' + | 'childImageSharp.children.internal.ignoreType' + | 'childImageSharp.children.internal.mediaType' + | 'childImageSharp.children.internal.owner' + | 'childImageSharp.children.internal.type' + | 'childImageSharp.children.parent.children' + | 'childImageSharp.children.parent.id' + | 'childImageSharp.fixed.aspectRatio' + | 'childImageSharp.fixed.base64' + | 'childImageSharp.fixed.height' + | 'childImageSharp.fixed.originalName' + | 'childImageSharp.fixed.src' + | 'childImageSharp.fixed.srcSet' + | 'childImageSharp.fixed.srcSetWebp' + | 'childImageSharp.fixed.srcWebp' + | 'childImageSharp.fixed.tracedSVG' + | 'childImageSharp.fixed.width' + | 'childImageSharp.fluid.aspectRatio' + | 'childImageSharp.fluid.base64' + | 'childImageSharp.fluid.originalImg' + | 'childImageSharp.fluid.originalName' + | 'childImageSharp.fluid.presentationHeight' + | 'childImageSharp.fluid.presentationWidth' + | 'childImageSharp.fluid.sizes' + | 'childImageSharp.fluid.src' + | 'childImageSharp.fluid.srcSet' + | 'childImageSharp.fluid.srcSetWebp' + | 'childImageSharp.fluid.srcWebp' + | 'childImageSharp.fluid.tracedSVG' + | 'childImageSharp.gatsbyImageData' + | 'childImageSharp.id' + | 'childImageSharp.internal.content' + | 'childImageSharp.internal.contentDigest' + | 'childImageSharp.internal.description' + | 'childImageSharp.internal.fieldOwners' + | 'childImageSharp.internal.ignoreType' + | 'childImageSharp.internal.mediaType' + | 'childImageSharp.internal.owner' + | 'childImageSharp.internal.type' + | 'childImageSharp.original.height' + | 'childImageSharp.original.src' + | 'childImageSharp.original.width' + | 'childImageSharp.parent.children' + | 'childImageSharp.parent.children.children' + | 'childImageSharp.parent.children.id' + | 'childImageSharp.parent.id' + | 'childImageSharp.parent.internal.content' + | 'childImageSharp.parent.internal.contentDigest' + | 'childImageSharp.parent.internal.description' + | 'childImageSharp.parent.internal.fieldOwners' + | 'childImageSharp.parent.internal.ignoreType' + | 'childImageSharp.parent.internal.mediaType' + | 'childImageSharp.parent.internal.owner' + | 'childImageSharp.parent.internal.type' + | 'childImageSharp.parent.parent.children' + | 'childImageSharp.parent.parent.id' + | 'childImageSharp.resize.aspectRatio' + | 'childImageSharp.resize.height' + | 'childImageSharp.resize.originalName' + | 'childImageSharp.resize.src' + | 'childImageSharp.resize.tracedSVG' + | 'childImageSharp.resize.width' + | 'children' + | 'childrenImageSharp' + | 'childrenImageSharp.children' + | 'childrenImageSharp.children.children' + | 'childrenImageSharp.children.children.children' + | 'childrenImageSharp.children.children.id' + | 'childrenImageSharp.children.id' + | 'childrenImageSharp.children.internal.content' + | 'childrenImageSharp.children.internal.contentDigest' + | 'childrenImageSharp.children.internal.description' + | 'childrenImageSharp.children.internal.fieldOwners' + | 'childrenImageSharp.children.internal.ignoreType' + | 'childrenImageSharp.children.internal.mediaType' + | 'childrenImageSharp.children.internal.owner' + | 'childrenImageSharp.children.internal.type' + | 'childrenImageSharp.children.parent.children' + | 'childrenImageSharp.children.parent.id' + | 'childrenImageSharp.fixed.aspectRatio' + | 'childrenImageSharp.fixed.base64' + | 'childrenImageSharp.fixed.height' + | 'childrenImageSharp.fixed.originalName' + | 'childrenImageSharp.fixed.src' + | 'childrenImageSharp.fixed.srcSet' + | 'childrenImageSharp.fixed.srcSetWebp' + | 'childrenImageSharp.fixed.srcWebp' + | 'childrenImageSharp.fixed.tracedSVG' + | 'childrenImageSharp.fixed.width' + | 'childrenImageSharp.fluid.aspectRatio' + | 'childrenImageSharp.fluid.base64' + | 'childrenImageSharp.fluid.originalImg' + | 'childrenImageSharp.fluid.originalName' + | 'childrenImageSharp.fluid.presentationHeight' + | 'childrenImageSharp.fluid.presentationWidth' + | 'childrenImageSharp.fluid.sizes' + | 'childrenImageSharp.fluid.src' + | 'childrenImageSharp.fluid.srcSet' + | 'childrenImageSharp.fluid.srcSetWebp' + | 'childrenImageSharp.fluid.srcWebp' + | 'childrenImageSharp.fluid.tracedSVG' + | 'childrenImageSharp.gatsbyImageData' + | 'childrenImageSharp.id' + | 'childrenImageSharp.internal.content' + | 'childrenImageSharp.internal.contentDigest' + | 'childrenImageSharp.internal.description' + | 'childrenImageSharp.internal.fieldOwners' + | 'childrenImageSharp.internal.ignoreType' + | 'childrenImageSharp.internal.mediaType' + | 'childrenImageSharp.internal.owner' + | 'childrenImageSharp.internal.type' + | 'childrenImageSharp.original.height' + | 'childrenImageSharp.original.src' + | 'childrenImageSharp.original.width' + | 'childrenImageSharp.parent.children' + | 'childrenImageSharp.parent.children.children' + | 'childrenImageSharp.parent.children.id' + | 'childrenImageSharp.parent.id' + | 'childrenImageSharp.parent.internal.content' + | 'childrenImageSharp.parent.internal.contentDigest' + | 'childrenImageSharp.parent.internal.description' + | 'childrenImageSharp.parent.internal.fieldOwners' + | 'childrenImageSharp.parent.internal.ignoreType' + | 'childrenImageSharp.parent.internal.mediaType' + | 'childrenImageSharp.parent.internal.owner' + | 'childrenImageSharp.parent.internal.type' + | 'childrenImageSharp.parent.parent.children' + | 'childrenImageSharp.parent.parent.id' + | 'childrenImageSharp.resize.aspectRatio' + | 'childrenImageSharp.resize.height' + | 'childrenImageSharp.resize.originalName' + | 'childrenImageSharp.resize.src' + | 'childrenImageSharp.resize.tracedSVG' + | 'childrenImageSharp.resize.width' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'ctime' + | 'ctimeMs' + | 'dev' + | 'dir' + | 'ext' + | 'extension' + | 'fields.imageMeta.dateTaken' + | 'fields.imageMeta.dominantHue' + | 'fields.imageMeta.meta.AlreadyApplied' + | 'fields.imageMeta.meta.ApertureValue' + | 'fields.imageMeta.meta.ApplicationRecordVersion' + | 'fields.imageMeta.meta.Artist' + | 'fields.imageMeta.meta.AutoLateralCA' + | 'fields.imageMeta.meta.AutoToneDigest' + | 'fields.imageMeta.meta.AutoToneDigestNoSat' + | 'fields.imageMeta.meta.AutoWhiteVersion' + | 'fields.imageMeta.meta.Blacks2012' + | 'fields.imageMeta.meta.BlueHue' + | 'fields.imageMeta.meta.BlueSaturation' + | 'fields.imageMeta.meta.BrightnessValue' + | 'fields.imageMeta.meta.Byline' + | 'fields.imageMeta.meta.CameraProfile' + | 'fields.imageMeta.meta.CameraProfileDigest' + | 'fields.imageMeta.meta.Caption' + | 'fields.imageMeta.meta.City' + | 'fields.imageMeta.meta.Clarity2012' + | 'fields.imageMeta.meta.ColorGradeBlending' + | 'fields.imageMeta.meta.ColorGradeGlobalHue' + | 'fields.imageMeta.meta.ColorGradeGlobalLum' + | 'fields.imageMeta.meta.ColorGradeGlobalSat' + | 'fields.imageMeta.meta.ColorGradeHighlightLum' + | 'fields.imageMeta.meta.ColorGradeMidtoneHue' + | 'fields.imageMeta.meta.ColorGradeMidtoneLum' + | 'fields.imageMeta.meta.ColorGradeMidtoneSat' + | 'fields.imageMeta.meta.ColorGradeShadowLum' + | 'fields.imageMeta.meta.ColorNoiseReduction' + | 'fields.imageMeta.meta.ColorNoiseReductionDetail' + | 'fields.imageMeta.meta.ColorNoiseReductionSmoothness' + | 'fields.imageMeta.meta.ColorSpace' + | 'fields.imageMeta.meta.Contrast' + | 'fields.imageMeta.meta.Contrast2012' + | 'fields.imageMeta.meta.ConvertToGrayscale' + | 'fields.imageMeta.meta.Country' + | 'fields.imageMeta.meta.CreateDate' + | 'fields.imageMeta.meta.CreatorTool' + | 'fields.imageMeta.meta.CropAngle' + | 'fields.imageMeta.meta.CropBottom' + | 'fields.imageMeta.meta.CropConstrainToWarp' + | 'fields.imageMeta.meta.CropLeft' + | 'fields.imageMeta.meta.CropRight' + | 'fields.imageMeta.meta.CropTop' + | 'fields.imageMeta.meta.CustomRendered' + | 'fields.imageMeta.meta.DateCreated' + | 'fields.imageMeta.meta.DateTimeOriginal' + | 'fields.imageMeta.meta.DefringeGreenAmount' + | 'fields.imageMeta.meta.DefringeGreenHueHi' + | 'fields.imageMeta.meta.DefringeGreenHueLo' + | 'fields.imageMeta.meta.DefringePurpleAmount' + | 'fields.imageMeta.meta.DefringePurpleHueHi' + | 'fields.imageMeta.meta.DefringePurpleHueLo' + | 'fields.imageMeta.meta.Dehaze' + | 'fields.imageMeta.meta.DigitalCreationDate' + | 'fields.imageMeta.meta.DigitalCreationTime' + | 'fields.imageMeta.meta.DigitalZoomRatio' + | 'fields.imageMeta.meta.DistortionCorrectionAlreadyApplied' + | 'fields.imageMeta.meta.DocumentID' + | 'fields.imageMeta.meta.EnhanceDetailsAlreadyApplied' + | 'fields.imageMeta.meta.EnhanceDetailsVersion' + | 'fields.imageMeta.meta.EnhanceSuperResolutionAlreadyApplied' + | 'fields.imageMeta.meta.EnhanceSuperResolutionScale' + | 'fields.imageMeta.meta.EnhanceSuperResolutionVersion' + | 'fields.imageMeta.meta.ExifVersion' + | 'fields.imageMeta.meta.Exposure2012' + | 'fields.imageMeta.meta.ExposureCompensation' + | 'fields.imageMeta.meta.ExposureMode' + | 'fields.imageMeta.meta.ExposureProgram' + | 'fields.imageMeta.meta.ExposureTime' + | 'fields.imageMeta.meta.FNumber' + | 'fields.imageMeta.meta.FileSource' + | 'fields.imageMeta.meta.Flash' + | 'fields.imageMeta.meta.FocalLength' + | 'fields.imageMeta.meta.FocalLengthIn35mmFormat' + | 'fields.imageMeta.meta.FocalPlaneResolutionUnit' + | 'fields.imageMeta.meta.FocalPlaneXResolution' + | 'fields.imageMeta.meta.FocalPlaneYResolution' + | 'fields.imageMeta.meta.GPSAltitude' + | 'fields.imageMeta.meta.GPSDOP' + | 'fields.imageMeta.meta.GPSDateStamp' + | 'fields.imageMeta.meta.GPSDifferential' + | 'fields.imageMeta.meta.GPSHPositioningError' + | 'fields.imageMeta.meta.GPSLatitude' + | 'fields.imageMeta.meta.GPSLatitudeRef' + | 'fields.imageMeta.meta.GPSLongitude' + | 'fields.imageMeta.meta.GPSLongitudeRef' + | 'fields.imageMeta.meta.GPSMapDatum' + | 'fields.imageMeta.meta.GPSMeasureMode' + | 'fields.imageMeta.meta.GPSSpeed' + | 'fields.imageMeta.meta.GPSSpeedRef' + | 'fields.imageMeta.meta.GPSStatus' + | 'fields.imageMeta.meta.GPSTimeStamp' + | 'fields.imageMeta.meta.GPSTrack' + | 'fields.imageMeta.meta.GPSTrackRef' + | 'fields.imageMeta.meta.GPSVersionID' + | 'fields.imageMeta.meta.GrainAmount' + | 'fields.imageMeta.meta.GrainFrequency' + | 'fields.imageMeta.meta.GrainSeed' + | 'fields.imageMeta.meta.GrainSize' + | 'fields.imageMeta.meta.GrayMixerAqua' + | 'fields.imageMeta.meta.GrayMixerBlue' + | 'fields.imageMeta.meta.GrayMixerGreen' + | 'fields.imageMeta.meta.GrayMixerMagenta' + | 'fields.imageMeta.meta.GrayMixerOrange' + | 'fields.imageMeta.meta.GrayMixerPurple' + | 'fields.imageMeta.meta.GrayMixerRed' + | 'fields.imageMeta.meta.GrayMixerYellow' + | 'fields.imageMeta.meta.GreenHue' + | 'fields.imageMeta.meta.GreenSaturation' + | 'fields.imageMeta.meta.HasCrop' + | 'fields.imageMeta.meta.HasSettings' + | 'fields.imageMeta.meta.Highlights2012' + | 'fields.imageMeta.meta.History' + | 'fields.imageMeta.meta.HueAdjustmentAqua' + | 'fields.imageMeta.meta.HueAdjustmentBlue' + | 'fields.imageMeta.meta.HueAdjustmentGreen' + | 'fields.imageMeta.meta.HueAdjustmentMagenta' + | 'fields.imageMeta.meta.HueAdjustmentOrange' + | 'fields.imageMeta.meta.HueAdjustmentPurple' + | 'fields.imageMeta.meta.HueAdjustmentRed' + | 'fields.imageMeta.meta.HueAdjustmentYellow' + | 'fields.imageMeta.meta.ISO' + | 'fields.imageMeta.meta.ImageDescription' + | 'fields.imageMeta.meta.IncrementalTemperature' + | 'fields.imageMeta.meta.IncrementalTint' + | 'fields.imageMeta.meta.InstanceID' + | 'fields.imageMeta.meta.Keywords' + | 'fields.imageMeta.meta.LateralChromaticAberrationCorrectionAlreadyApplied' + | 'fields.imageMeta.meta.Lens' + | 'fields.imageMeta.meta.LensDistortInfo' + | 'fields.imageMeta.meta.LensID' + | 'fields.imageMeta.meta.LensInfo' + | 'fields.imageMeta.meta.LensMake' + | 'fields.imageMeta.meta.LensManualDistortionAmount' + | 'fields.imageMeta.meta.LensModel' + | 'fields.imageMeta.meta.LensProfileDigest' + | 'fields.imageMeta.meta.LensProfileDistortionScale' + | 'fields.imageMeta.meta.LensProfileEnable' + | 'fields.imageMeta.meta.LensProfileFilename' + | 'fields.imageMeta.meta.LensProfileIsEmbedded' + | 'fields.imageMeta.meta.LensProfileName' + | 'fields.imageMeta.meta.LensProfileSetup' + | 'fields.imageMeta.meta.LensProfileVignettingScale' + | 'fields.imageMeta.meta.LightSource' + | 'fields.imageMeta.meta.Location' + | 'fields.imageMeta.meta.LuminanceAdjustmentAqua' + | 'fields.imageMeta.meta.LuminanceAdjustmentBlue' + | 'fields.imageMeta.meta.LuminanceAdjustmentGreen' + | 'fields.imageMeta.meta.LuminanceAdjustmentMagenta' + | 'fields.imageMeta.meta.LuminanceAdjustmentOrange' + | 'fields.imageMeta.meta.LuminanceAdjustmentPurple' + | 'fields.imageMeta.meta.LuminanceAdjustmentRed' + | 'fields.imageMeta.meta.LuminanceAdjustmentYellow' + | 'fields.imageMeta.meta.LuminanceNoiseReductionContrast' + | 'fields.imageMeta.meta.LuminanceNoiseReductionDetail' + | 'fields.imageMeta.meta.LuminanceSmoothing' + | 'fields.imageMeta.meta.Make' + | 'fields.imageMeta.meta.MaxApertureValue' + | 'fields.imageMeta.meta.MetadataDate' + | 'fields.imageMeta.meta.MeteringMode' + | 'fields.imageMeta.meta.Model' + | 'fields.imageMeta.meta.ModifyDate' + | 'fields.imageMeta.meta.ObjectName' + | 'fields.imageMeta.meta.OffsetTime' + | 'fields.imageMeta.meta.OffsetTimeDigitized' + | 'fields.imageMeta.meta.OffsetTimeOriginal' + | 'fields.imageMeta.meta.OriginalDocumentID' + | 'fields.imageMeta.meta.OverrideLookVignette' + | 'fields.imageMeta.meta.ParametricDarks' + | 'fields.imageMeta.meta.ParametricHighlightSplit' + | 'fields.imageMeta.meta.ParametricHighlights' + | 'fields.imageMeta.meta.ParametricLights' + | 'fields.imageMeta.meta.ParametricMidtoneSplit' + | 'fields.imageMeta.meta.ParametricShadowSplit' + | 'fields.imageMeta.meta.ParametricShadows' + | 'fields.imageMeta.meta.PerspectiveAspect' + | 'fields.imageMeta.meta.PerspectiveHorizontal' + | 'fields.imageMeta.meta.PerspectiveRotate' + | 'fields.imageMeta.meta.PerspectiveScale' + | 'fields.imageMeta.meta.PerspectiveUpright' + | 'fields.imageMeta.meta.PerspectiveVertical' + | 'fields.imageMeta.meta.PerspectiveX' + | 'fields.imageMeta.meta.PerspectiveY' + | 'fields.imageMeta.meta.PostCropVignetteAmount' + | 'fields.imageMeta.meta.PostCropVignetteFeather' + | 'fields.imageMeta.meta.PostCropVignetteHighlightContrast' + | 'fields.imageMeta.meta.PostCropVignetteMidpoint' + | 'fields.imageMeta.meta.PostCropVignetteRoundness' + | 'fields.imageMeta.meta.PostCropVignetteStyle' + | 'fields.imageMeta.meta.PreservedFileName' + | 'fields.imageMeta.meta.ProcessVersion' + | 'fields.imageMeta.meta.Rating' + | 'fields.imageMeta.meta.RawFileName' + | 'fields.imageMeta.meta.RecommendedExposureIndex' + | 'fields.imageMeta.meta.RedHue' + | 'fields.imageMeta.meta.RedSaturation' + | 'fields.imageMeta.meta.ResolutionUnit' + | 'fields.imageMeta.meta.SaturationAdjustmentAqua' + | 'fields.imageMeta.meta.SaturationAdjustmentBlue' + | 'fields.imageMeta.meta.SaturationAdjustmentGreen' + | 'fields.imageMeta.meta.SaturationAdjustmentMagenta' + | 'fields.imageMeta.meta.SaturationAdjustmentOrange' + | 'fields.imageMeta.meta.SaturationAdjustmentPurple' + | 'fields.imageMeta.meta.SaturationAdjustmentRed' + | 'fields.imageMeta.meta.SaturationAdjustmentYellow' + | 'fields.imageMeta.meta.SceneCaptureType' + | 'fields.imageMeta.meta.SceneType' + | 'fields.imageMeta.meta.SensingMethod' + | 'fields.imageMeta.meta.SensitivityType' + | 'fields.imageMeta.meta.ShadowTint' + | 'fields.imageMeta.meta.Shadows2012' + | 'fields.imageMeta.meta.SharpenDetail' + | 'fields.imageMeta.meta.SharpenEdgeMasking' + | 'fields.imageMeta.meta.SharpenRadius' + | 'fields.imageMeta.meta.ShutterSpeedValue' + | 'fields.imageMeta.meta.Software' + | 'fields.imageMeta.meta.SplitToningBalance' + | 'fields.imageMeta.meta.SplitToningHighlightHue' + | 'fields.imageMeta.meta.SplitToningHighlightSaturation' + | 'fields.imageMeta.meta.SplitToningShadowHue' + | 'fields.imageMeta.meta.SplitToningShadowSaturation' + | 'fields.imageMeta.meta.State' + | 'fields.imageMeta.meta.SubSecTimeDigitized' + | 'fields.imageMeta.meta.SubSecTimeOriginal' + | 'fields.imageMeta.meta.Sublocation' + | 'fields.imageMeta.meta.Temperature' + | 'fields.imageMeta.meta.Texture' + | 'fields.imageMeta.meta.TimeCreated' + | 'fields.imageMeta.meta.Tint' + | 'fields.imageMeta.meta.ToneCurveName2012' + | 'fields.imageMeta.meta.ToneCurvePV2012' + | 'fields.imageMeta.meta.ToneCurvePV2012Blue' + | 'fields.imageMeta.meta.ToneCurvePV2012Green' + | 'fields.imageMeta.meta.ToneCurvePV2012Red' + | 'fields.imageMeta.meta.UprightCenterMode' + | 'fields.imageMeta.meta.UprightCenterNormX' + | 'fields.imageMeta.meta.UprightCenterNormY' + | 'fields.imageMeta.meta.UprightDependentDigest' + | 'fields.imageMeta.meta.UprightFocalLength35mm' + | 'fields.imageMeta.meta.UprightFocalMode' + | 'fields.imageMeta.meta.UprightPreview' + | 'fields.imageMeta.meta.UprightTransformCount' + | 'fields.imageMeta.meta.UprightVersion' + | 'fields.imageMeta.meta.Version' + | 'fields.imageMeta.meta.Vibrance' + | 'fields.imageMeta.meta.VignetteAmount' + | 'fields.imageMeta.meta.VignetteCorrectionAlreadyApplied' + | 'fields.imageMeta.meta.WhiteBalance' + | 'fields.imageMeta.meta.Whites2012' + | 'fields.imageMeta.meta.XResolution' + | 'fields.imageMeta.meta.YResolution' + | 'fields.imageMeta.meta.creator' + | 'fields.imageMeta.meta.format' + | 'fields.imageMeta.meta.good' + | 'fields.imageMeta.meta.latitude' + | 'fields.imageMeta.meta.longitude' + | 'fields.imageMeta.vibrantHue' + | 'fields.imageMeta.vibrant.DarkMuted' + | 'fields.imageMeta.vibrant.DarkVibrant' + | 'fields.imageMeta.vibrant.LightMuted' + | 'fields.imageMeta.vibrant.LightVibrant' + | 'fields.imageMeta.vibrant.Muted' + | 'fields.imageMeta.vibrant.Vibrant' + | 'gid' + | 'id' + | 'ino' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'mode' + | 'modifiedTime' + | 'mtime' + | 'mtimeMs' + | 'name' + | 'nlink' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id' + | 'prettySize' + | 'publicURL' + | 'rdev' + | 'relativeDirectory' + | 'relativePath' + | 'root' + | 'size' + | 'sourceInstanceName' + | 'uid'; + +type FileFieldsFilterInput = { + readonly imageMeta: InputMaybe; +}; + +type FileFieldsImageMeta = { + readonly dateTaken: Maybe; + readonly dominantHue: Maybe>>; + readonly meta: Maybe; + readonly vibrant: Maybe; + readonly vibrantHue: Maybe; +}; + + +type FileFieldsImageMeta_dateTakenArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type FileFieldsImageMetaFilterInput = { + readonly dateTaken: InputMaybe; + readonly dominantHue: InputMaybe; + readonly meta: InputMaybe; + readonly vibrant: InputMaybe; + readonly vibrantHue: InputMaybe; +}; + +type FileFieldsImageMetaMeta = { + readonly AlreadyApplied: Maybe; + readonly ApertureValue: Maybe; + readonly ApplicationRecordVersion: Maybe; + readonly Artist: Maybe; + readonly AutoLateralCA: Maybe; + readonly AutoToneDigest: Maybe; + readonly AutoToneDigestNoSat: Maybe; + readonly AutoWhiteVersion: Maybe; + readonly Blacks2012: Maybe; + readonly BlueHue: Maybe; + readonly BlueSaturation: Maybe; + readonly BrightnessValue: Maybe; + readonly Byline: Maybe; + readonly CameraProfile: Maybe; + readonly CameraProfileDigest: Maybe; + readonly Caption: Maybe; + readonly City: Maybe; + readonly Clarity2012: Maybe; + readonly ColorGradeBlending: Maybe; + readonly ColorGradeGlobalHue: Maybe; + readonly ColorGradeGlobalLum: Maybe; + readonly ColorGradeGlobalSat: Maybe; + readonly ColorGradeHighlightLum: Maybe; + readonly ColorGradeMidtoneHue: Maybe; + readonly ColorGradeMidtoneLum: Maybe; + readonly ColorGradeMidtoneSat: Maybe; + readonly ColorGradeShadowLum: Maybe; + readonly ColorNoiseReduction: Maybe; + readonly ColorNoiseReductionDetail: Maybe; + readonly ColorNoiseReductionSmoothness: Maybe; + readonly ColorSpace: Maybe; + readonly Contrast: Maybe; + readonly Contrast2012: Maybe; + readonly ConvertToGrayscale: Maybe; + readonly Country: Maybe; + readonly CreateDate: Maybe; + readonly CreatorTool: Maybe; + readonly CropAngle: Maybe; + readonly CropBottom: Maybe; + readonly CropConstrainToWarp: Maybe; + readonly CropLeft: Maybe; + readonly CropRight: Maybe; + readonly CropTop: Maybe; + readonly CustomRendered: Maybe; + readonly DateCreated: Maybe; + readonly DateTimeOriginal: Maybe; + readonly DefringeGreenAmount: Maybe; + readonly DefringeGreenHueHi: Maybe; + readonly DefringeGreenHueLo: Maybe; + readonly DefringePurpleAmount: Maybe; + readonly DefringePurpleHueHi: Maybe; + readonly DefringePurpleHueLo: Maybe; + readonly Dehaze: Maybe; + readonly DerivedFrom: Maybe; + readonly DigitalCreationDate: Maybe; + readonly DigitalCreationTime: Maybe; + readonly DigitalZoomRatio: Maybe; + readonly DistortionCorrectionAlreadyApplied: Maybe; + readonly DocumentID: Maybe; + readonly EnhanceDetailsAlreadyApplied: Maybe; + readonly EnhanceDetailsVersion: Maybe; + readonly EnhanceSuperResolutionAlreadyApplied: Maybe; + readonly EnhanceSuperResolutionScale: Maybe; + readonly EnhanceSuperResolutionVersion: Maybe; + readonly ExifVersion: Maybe; + readonly Exposure2012: Maybe; + readonly ExposureCompensation: Maybe; + readonly ExposureMode: Maybe; + readonly ExposureProgram: Maybe; + readonly ExposureTime: Maybe; + readonly FNumber: Maybe; + readonly FileSource: Maybe; + readonly Flash: Maybe; + readonly FocalLength: Maybe; + readonly FocalLengthIn35mmFormat: Maybe; + readonly FocalPlaneResolutionUnit: Maybe; + readonly FocalPlaneXResolution: Maybe; + readonly FocalPlaneYResolution: Maybe; + readonly GPSAltitude: Maybe; + readonly GPSDOP: Maybe; + readonly GPSDateStamp: Maybe; + readonly GPSDifferential: Maybe; + readonly GPSHPositioningError: Maybe; + readonly GPSLatitude: Maybe>>; + readonly GPSLatitudeRef: Maybe; + readonly GPSLongitude: Maybe>>; + readonly GPSLongitudeRef: Maybe; + readonly GPSMapDatum: Maybe; + readonly GPSMeasureMode: Maybe; + readonly GPSSpeed: Maybe; + readonly GPSSpeedRef: Maybe; + readonly GPSStatus: Maybe; + readonly GPSTimeStamp: Maybe; + readonly GPSTrack: Maybe; + readonly GPSTrackRef: Maybe; + readonly GPSVersionID: Maybe; + readonly GrainAmount: Maybe; + readonly GrainFrequency: Maybe; + readonly GrainSeed: Maybe; + readonly GrainSize: Maybe; + readonly GrayMixerAqua: Maybe; + readonly GrayMixerBlue: Maybe; + readonly GrayMixerGreen: Maybe; + readonly GrayMixerMagenta: Maybe; + readonly GrayMixerOrange: Maybe; + readonly GrayMixerPurple: Maybe; + readonly GrayMixerRed: Maybe; + readonly GrayMixerYellow: Maybe; + readonly GreenHue: Maybe; + readonly GreenSaturation: Maybe; + readonly HasCrop: Maybe; + readonly HasSettings: Maybe; + readonly Highlights2012: Maybe; + readonly History: Maybe>>; + readonly HueAdjustmentAqua: Maybe; + readonly HueAdjustmentBlue: Maybe; + readonly HueAdjustmentGreen: Maybe; + readonly HueAdjustmentMagenta: Maybe; + readonly HueAdjustmentOrange: Maybe; + readonly HueAdjustmentPurple: Maybe; + readonly HueAdjustmentRed: Maybe; + readonly HueAdjustmentYellow: Maybe; + readonly ISO: Maybe; + readonly ImageDescription: Maybe; + readonly IncrementalTemperature: Maybe; + readonly IncrementalTint: Maybe; + readonly InstanceID: Maybe; + readonly Keywords: Maybe>>; + readonly LateralChromaticAberrationCorrectionAlreadyApplied: Maybe; + readonly Lens: Maybe; + readonly LensDistortInfo: Maybe; + readonly LensID: Maybe; + readonly LensInfo: Maybe>>; + readonly LensMake: Maybe; + readonly LensManualDistortionAmount: Maybe; + readonly LensModel: Maybe; + readonly LensProfileDigest: Maybe; + readonly LensProfileDistortionScale: Maybe; + readonly LensProfileEnable: Maybe; + readonly LensProfileFilename: Maybe; + readonly LensProfileIsEmbedded: Maybe; + readonly LensProfileName: Maybe; + readonly LensProfileSetup: Maybe; + readonly LensProfileVignettingScale: Maybe; + readonly LightSource: Maybe; + readonly Location: Maybe; + readonly Look: Maybe; + readonly LuminanceAdjustmentAqua: Maybe; + readonly LuminanceAdjustmentBlue: Maybe; + readonly LuminanceAdjustmentGreen: Maybe; + readonly LuminanceAdjustmentMagenta: Maybe; + readonly LuminanceAdjustmentOrange: Maybe; + readonly LuminanceAdjustmentPurple: Maybe; + readonly LuminanceAdjustmentRed: Maybe; + readonly LuminanceAdjustmentYellow: Maybe; + readonly LuminanceNoiseReductionContrast: Maybe; + readonly LuminanceNoiseReductionDetail: Maybe; + readonly LuminanceSmoothing: Maybe; + readonly Make: Maybe; + readonly MaxApertureValue: Maybe; + readonly MetadataDate: Maybe; + readonly MeteringMode: Maybe; + readonly Model: Maybe; + readonly ModifyDate: Maybe; + readonly ObjectName: Maybe; + readonly OffsetTime: Maybe; + readonly OffsetTimeDigitized: Maybe; + readonly OffsetTimeOriginal: Maybe; + readonly OriginalDocumentID: Maybe; + readonly OverrideLookVignette: Maybe; + readonly ParametricDarks: Maybe; + readonly ParametricHighlightSplit: Maybe; + readonly ParametricHighlights: Maybe; + readonly ParametricLights: Maybe; + readonly ParametricMidtoneSplit: Maybe; + readonly ParametricShadowSplit: Maybe; + readonly ParametricShadows: Maybe; + readonly PerspectiveAspect: Maybe; + readonly PerspectiveHorizontal: Maybe; + readonly PerspectiveRotate: Maybe; + readonly PerspectiveScale: Maybe; + readonly PerspectiveUpright: Maybe; + readonly PerspectiveVertical: Maybe; + readonly PerspectiveX: Maybe; + readonly PerspectiveY: Maybe; + readonly PostCropVignetteAmount: Maybe; + readonly PostCropVignetteFeather: Maybe; + readonly PostCropVignetteHighlightContrast: Maybe; + readonly PostCropVignetteMidpoint: Maybe; + readonly PostCropVignetteRoundness: Maybe; + readonly PostCropVignetteStyle: Maybe; + readonly PreservedFileName: Maybe; + readonly ProcessVersion: Maybe; + readonly Rating: Maybe; + readonly RawFileName: Maybe; + readonly RecommendedExposureIndex: Maybe; + readonly RedHue: Maybe; + readonly RedSaturation: Maybe; + readonly ResolutionUnit: Maybe; + readonly SaturationAdjustmentAqua: Maybe; + readonly SaturationAdjustmentBlue: Maybe; + readonly SaturationAdjustmentGreen: Maybe; + readonly SaturationAdjustmentMagenta: Maybe; + readonly SaturationAdjustmentOrange: Maybe; + readonly SaturationAdjustmentPurple: Maybe; + readonly SaturationAdjustmentRed: Maybe; + readonly SaturationAdjustmentYellow: Maybe; + readonly SceneCaptureType: Maybe; + readonly SceneType: Maybe; + readonly SensingMethod: Maybe; + readonly SensitivityType: Maybe; + readonly ShadowTint: Maybe; + readonly Shadows2012: Maybe; + readonly SharpenDetail: Maybe; + readonly SharpenEdgeMasking: Maybe; + readonly SharpenRadius: Maybe; + readonly ShutterSpeedValue: Maybe; + readonly Software: Maybe; + readonly SplitToningBalance: Maybe; + readonly SplitToningHighlightHue: Maybe; + readonly SplitToningHighlightSaturation: Maybe; + readonly SplitToningShadowHue: Maybe; + readonly SplitToningShadowSaturation: Maybe; + readonly State: Maybe; + readonly SubSecTimeDigitized: Maybe; + readonly SubSecTimeOriginal: Maybe; + readonly Sublocation: Maybe; + readonly Temperature: Maybe; + readonly Texture: Maybe; + readonly TimeCreated: Maybe; + readonly Tint: Maybe; + readonly ToneCurveName2012: Maybe; + readonly ToneCurvePV2012: Maybe>>; + readonly ToneCurvePV2012Blue: Maybe>>; + readonly ToneCurvePV2012Green: Maybe>>; + readonly ToneCurvePV2012Red: Maybe>>; + readonly UprightCenterMode: Maybe; + readonly UprightCenterNormX: Maybe; + readonly UprightCenterNormY: Maybe; + readonly UprightDependentDigest: Maybe; + readonly UprightFocalLength35mm: Maybe; + readonly UprightFocalMode: Maybe; + readonly UprightPreview: Maybe; + readonly UprightTransformCount: Maybe; + readonly UprightVersion: Maybe; + readonly Version: Maybe; + readonly Vibrance: Maybe; + readonly VignetteAmount: Maybe; + readonly VignetteCorrectionAlreadyApplied: Maybe; + readonly WhiteBalance: Maybe; + readonly Whites2012: Maybe; + readonly XResolution: Maybe; + readonly YResolution: Maybe; + readonly creator: Maybe; + readonly description: Maybe; + readonly format: Maybe; + readonly good: Maybe; + readonly latitude: Maybe; + readonly longitude: Maybe; + readonly title: Maybe; +}; + + +type FileFieldsImageMetaMeta_CreateDateArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type FileFieldsImageMetaMeta_DateCreatedArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type FileFieldsImageMetaMeta_DateTimeOriginalArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type FileFieldsImageMetaMeta_DigitalCreationDateArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type FileFieldsImageMetaMeta_MetadataDateArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type FileFieldsImageMetaMeta_ModifyDateArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type FileFieldsImageMetaMetaDerivedFrom = { + readonly documentID: Maybe; + readonly instanceID: Maybe; + readonly originalDocumentID: Maybe; +}; + +type FileFieldsImageMetaMetaDerivedFromFilterInput = { + readonly documentID: InputMaybe; + readonly instanceID: InputMaybe; + readonly originalDocumentID: InputMaybe; +}; + +type FileFieldsImageMetaMetaDescription = { + readonly lang: Maybe; + readonly value: Maybe; +}; + +type FileFieldsImageMetaMetaDescriptionFilterInput = { + readonly lang: InputMaybe; + readonly value: InputMaybe; +}; + +type FileFieldsImageMetaMetaFilterInput = { + readonly AlreadyApplied: InputMaybe; + readonly ApertureValue: InputMaybe; + readonly ApplicationRecordVersion: InputMaybe; + readonly Artist: InputMaybe; + readonly AutoLateralCA: InputMaybe; + readonly AutoToneDigest: InputMaybe; + readonly AutoToneDigestNoSat: InputMaybe; + readonly AutoWhiteVersion: InputMaybe; + readonly Blacks2012: InputMaybe; + readonly BlueHue: InputMaybe; + readonly BlueSaturation: InputMaybe; + readonly BrightnessValue: InputMaybe; + readonly Byline: InputMaybe; + readonly CameraProfile: InputMaybe; + readonly CameraProfileDigest: InputMaybe; + readonly Caption: InputMaybe; + readonly City: InputMaybe; + readonly Clarity2012: InputMaybe; + readonly ColorGradeBlending: InputMaybe; + readonly ColorGradeGlobalHue: InputMaybe; + readonly ColorGradeGlobalLum: InputMaybe; + readonly ColorGradeGlobalSat: InputMaybe; + readonly ColorGradeHighlightLum: InputMaybe; + readonly ColorGradeMidtoneHue: InputMaybe; + readonly ColorGradeMidtoneLum: InputMaybe; + readonly ColorGradeMidtoneSat: InputMaybe; + readonly ColorGradeShadowLum: InputMaybe; + readonly ColorNoiseReduction: InputMaybe; + readonly ColorNoiseReductionDetail: InputMaybe; + readonly ColorNoiseReductionSmoothness: InputMaybe; + readonly ColorSpace: InputMaybe; + readonly Contrast: InputMaybe; + readonly Contrast2012: InputMaybe; + readonly ConvertToGrayscale: InputMaybe; + readonly Country: InputMaybe; + readonly CreateDate: InputMaybe; + readonly CreatorTool: InputMaybe; + readonly CropAngle: InputMaybe; + readonly CropBottom: InputMaybe; + readonly CropConstrainToWarp: InputMaybe; + readonly CropLeft: InputMaybe; + readonly CropRight: InputMaybe; + readonly CropTop: InputMaybe; + readonly CustomRendered: InputMaybe; + readonly DateCreated: InputMaybe; + readonly DateTimeOriginal: InputMaybe; + readonly DefringeGreenAmount: InputMaybe; + readonly DefringeGreenHueHi: InputMaybe; + readonly DefringeGreenHueLo: InputMaybe; + readonly DefringePurpleAmount: InputMaybe; + readonly DefringePurpleHueHi: InputMaybe; + readonly DefringePurpleHueLo: InputMaybe; + readonly Dehaze: InputMaybe; + readonly DerivedFrom: InputMaybe; + readonly DigitalCreationDate: InputMaybe; + readonly DigitalCreationTime: InputMaybe; + readonly DigitalZoomRatio: InputMaybe; + readonly DistortionCorrectionAlreadyApplied: InputMaybe; + readonly DocumentID: InputMaybe; + readonly EnhanceDetailsAlreadyApplied: InputMaybe; + readonly EnhanceDetailsVersion: InputMaybe; + readonly EnhanceSuperResolutionAlreadyApplied: InputMaybe; + readonly EnhanceSuperResolutionScale: InputMaybe; + readonly EnhanceSuperResolutionVersion: InputMaybe; + readonly ExifVersion: InputMaybe; + readonly Exposure2012: InputMaybe; + readonly ExposureCompensation: InputMaybe; + readonly ExposureMode: InputMaybe; + readonly ExposureProgram: InputMaybe; + readonly ExposureTime: InputMaybe; + readonly FNumber: InputMaybe; + readonly FileSource: InputMaybe; + readonly Flash: InputMaybe; + readonly FocalLength: InputMaybe; + readonly FocalLengthIn35mmFormat: InputMaybe; + readonly FocalPlaneResolutionUnit: InputMaybe; + readonly FocalPlaneXResolution: InputMaybe; + readonly FocalPlaneYResolution: InputMaybe; + readonly GPSAltitude: InputMaybe; + readonly GPSDOP: InputMaybe; + readonly GPSDateStamp: InputMaybe; + readonly GPSDifferential: InputMaybe; + readonly GPSHPositioningError: InputMaybe; + readonly GPSLatitude: InputMaybe; + readonly GPSLatitudeRef: InputMaybe; + readonly GPSLongitude: InputMaybe; + readonly GPSLongitudeRef: InputMaybe; + readonly GPSMapDatum: InputMaybe; + readonly GPSMeasureMode: InputMaybe; + readonly GPSSpeed: InputMaybe; + readonly GPSSpeedRef: InputMaybe; + readonly GPSStatus: InputMaybe; + readonly GPSTimeStamp: InputMaybe; + readonly GPSTrack: InputMaybe; + readonly GPSTrackRef: InputMaybe; + readonly GPSVersionID: InputMaybe; + readonly GrainAmount: InputMaybe; + readonly GrainFrequency: InputMaybe; + readonly GrainSeed: InputMaybe; + readonly GrainSize: InputMaybe; + readonly GrayMixerAqua: InputMaybe; + readonly GrayMixerBlue: InputMaybe; + readonly GrayMixerGreen: InputMaybe; + readonly GrayMixerMagenta: InputMaybe; + readonly GrayMixerOrange: InputMaybe; + readonly GrayMixerPurple: InputMaybe; + readonly GrayMixerRed: InputMaybe; + readonly GrayMixerYellow: InputMaybe; + readonly GreenHue: InputMaybe; + readonly GreenSaturation: InputMaybe; + readonly HasCrop: InputMaybe; + readonly HasSettings: InputMaybe; + readonly Highlights2012: InputMaybe; + readonly History: InputMaybe; + readonly HueAdjustmentAqua: InputMaybe; + readonly HueAdjustmentBlue: InputMaybe; + readonly HueAdjustmentGreen: InputMaybe; + readonly HueAdjustmentMagenta: InputMaybe; + readonly HueAdjustmentOrange: InputMaybe; + readonly HueAdjustmentPurple: InputMaybe; + readonly HueAdjustmentRed: InputMaybe; + readonly HueAdjustmentYellow: InputMaybe; + readonly ISO: InputMaybe; + readonly ImageDescription: InputMaybe; + readonly IncrementalTemperature: InputMaybe; + readonly IncrementalTint: InputMaybe; + readonly InstanceID: InputMaybe; + readonly Keywords: InputMaybe; + readonly LateralChromaticAberrationCorrectionAlreadyApplied: InputMaybe; + readonly Lens: InputMaybe; + readonly LensDistortInfo: InputMaybe; + readonly LensID: InputMaybe; + readonly LensInfo: InputMaybe; + readonly LensMake: InputMaybe; + readonly LensManualDistortionAmount: InputMaybe; + readonly LensModel: InputMaybe; + readonly LensProfileDigest: InputMaybe; + readonly LensProfileDistortionScale: InputMaybe; + readonly LensProfileEnable: InputMaybe; + readonly LensProfileFilename: InputMaybe; + readonly LensProfileIsEmbedded: InputMaybe; + readonly LensProfileName: InputMaybe; + readonly LensProfileSetup: InputMaybe; + readonly LensProfileVignettingScale: InputMaybe; + readonly LightSource: InputMaybe; + readonly Location: InputMaybe; + readonly Look: InputMaybe; + readonly LuminanceAdjustmentAqua: InputMaybe; + readonly LuminanceAdjustmentBlue: InputMaybe; + readonly LuminanceAdjustmentGreen: InputMaybe; + readonly LuminanceAdjustmentMagenta: InputMaybe; + readonly LuminanceAdjustmentOrange: InputMaybe; + readonly LuminanceAdjustmentPurple: InputMaybe; + readonly LuminanceAdjustmentRed: InputMaybe; + readonly LuminanceAdjustmentYellow: InputMaybe; + readonly LuminanceNoiseReductionContrast: InputMaybe; + readonly LuminanceNoiseReductionDetail: InputMaybe; + readonly LuminanceSmoothing: InputMaybe; + readonly Make: InputMaybe; + readonly MaxApertureValue: InputMaybe; + readonly MetadataDate: InputMaybe; + readonly MeteringMode: InputMaybe; + readonly Model: InputMaybe; + readonly ModifyDate: InputMaybe; + readonly ObjectName: InputMaybe; + readonly OffsetTime: InputMaybe; + readonly OffsetTimeDigitized: InputMaybe; + readonly OffsetTimeOriginal: InputMaybe; + readonly OriginalDocumentID: InputMaybe; + readonly OverrideLookVignette: InputMaybe; + readonly ParametricDarks: InputMaybe; + readonly ParametricHighlightSplit: InputMaybe; + readonly ParametricHighlights: InputMaybe; + readonly ParametricLights: InputMaybe; + readonly ParametricMidtoneSplit: InputMaybe; + readonly ParametricShadowSplit: InputMaybe; + readonly ParametricShadows: InputMaybe; + readonly PerspectiveAspect: InputMaybe; + readonly PerspectiveHorizontal: InputMaybe; + readonly PerspectiveRotate: InputMaybe; + readonly PerspectiveScale: InputMaybe; + readonly PerspectiveUpright: InputMaybe; + readonly PerspectiveVertical: InputMaybe; + readonly PerspectiveX: InputMaybe; + readonly PerspectiveY: InputMaybe; + readonly PostCropVignetteAmount: InputMaybe; + readonly PostCropVignetteFeather: InputMaybe; + readonly PostCropVignetteHighlightContrast: InputMaybe; + readonly PostCropVignetteMidpoint: InputMaybe; + readonly PostCropVignetteRoundness: InputMaybe; + readonly PostCropVignetteStyle: InputMaybe; + readonly PreservedFileName: InputMaybe; + readonly ProcessVersion: InputMaybe; + readonly Rating: InputMaybe; + readonly RawFileName: InputMaybe; + readonly RecommendedExposureIndex: InputMaybe; + readonly RedHue: InputMaybe; + readonly RedSaturation: InputMaybe; + readonly ResolutionUnit: InputMaybe; + readonly SaturationAdjustmentAqua: InputMaybe; + readonly SaturationAdjustmentBlue: InputMaybe; + readonly SaturationAdjustmentGreen: InputMaybe; + readonly SaturationAdjustmentMagenta: InputMaybe; + readonly SaturationAdjustmentOrange: InputMaybe; + readonly SaturationAdjustmentPurple: InputMaybe; + readonly SaturationAdjustmentRed: InputMaybe; + readonly SaturationAdjustmentYellow: InputMaybe; + readonly SceneCaptureType: InputMaybe; + readonly SceneType: InputMaybe; + readonly SensingMethod: InputMaybe; + readonly SensitivityType: InputMaybe; + readonly ShadowTint: InputMaybe; + readonly Shadows2012: InputMaybe; + readonly SharpenDetail: InputMaybe; + readonly SharpenEdgeMasking: InputMaybe; + readonly SharpenRadius: InputMaybe; + readonly ShutterSpeedValue: InputMaybe; + readonly Software: InputMaybe; + readonly SplitToningBalance: InputMaybe; + readonly SplitToningHighlightHue: InputMaybe; + readonly SplitToningHighlightSaturation: InputMaybe; + readonly SplitToningShadowHue: InputMaybe; + readonly SplitToningShadowSaturation: InputMaybe; + readonly State: InputMaybe; + readonly SubSecTimeDigitized: InputMaybe; + readonly SubSecTimeOriginal: InputMaybe; + readonly Sublocation: InputMaybe; + readonly Temperature: InputMaybe; + readonly Texture: InputMaybe; + readonly TimeCreated: InputMaybe; + readonly Tint: InputMaybe; + readonly ToneCurveName2012: InputMaybe; + readonly ToneCurvePV2012: InputMaybe; + readonly ToneCurvePV2012Blue: InputMaybe; + readonly ToneCurvePV2012Green: InputMaybe; + readonly ToneCurvePV2012Red: InputMaybe; + readonly UprightCenterMode: InputMaybe; + readonly UprightCenterNormX: InputMaybe; + readonly UprightCenterNormY: InputMaybe; + readonly UprightDependentDigest: InputMaybe; + readonly UprightFocalLength35mm: InputMaybe; + readonly UprightFocalMode: InputMaybe; + readonly UprightPreview: InputMaybe; + readonly UprightTransformCount: InputMaybe; + readonly UprightVersion: InputMaybe; + readonly Version: InputMaybe; + readonly Vibrance: InputMaybe; + readonly VignetteAmount: InputMaybe; + readonly VignetteCorrectionAlreadyApplied: InputMaybe; + readonly WhiteBalance: InputMaybe; + readonly Whites2012: InputMaybe; + readonly XResolution: InputMaybe; + readonly YResolution: InputMaybe; + readonly creator: InputMaybe; + readonly description: InputMaybe; + readonly format: InputMaybe; + readonly good: InputMaybe; + readonly latitude: InputMaybe; + readonly longitude: InputMaybe; + readonly title: InputMaybe; +}; + +type FileFieldsImageMetaMetaHistory = { + readonly action: Maybe; + readonly changed: Maybe; + readonly instanceID: Maybe; + readonly parameters: Maybe; + readonly softwareAgent: Maybe; + readonly when: Maybe; +}; + + +type FileFieldsImageMetaMetaHistory_whenArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type FileFieldsImageMetaMetaHistoryFilterInput = { + readonly action: InputMaybe; + readonly changed: InputMaybe; + readonly instanceID: InputMaybe; + readonly parameters: InputMaybe; + readonly softwareAgent: InputMaybe; + readonly when: InputMaybe; +}; + +type FileFieldsImageMetaMetaHistoryFilterListInput = { + readonly elemMatch: InputMaybe; +}; + +type FileFieldsImageMetaMetaLook = { + readonly Description: Maybe; +}; + +type FileFieldsImageMetaMetaLookDescription = { + readonly Amount: Maybe; + readonly Cluster: Maybe; + readonly Copyright: Maybe; + readonly Group: Maybe; + readonly Name: Maybe; + readonly Parameters: Maybe; + readonly SupportsAmount: Maybe; + readonly SupportsMonochrome: Maybe; + readonly SupportsOutputReferred: Maybe; + readonly UUID: Maybe; +}; + +type FileFieldsImageMetaMetaLookDescriptionFilterInput = { + readonly Amount: InputMaybe; + readonly Cluster: InputMaybe; + readonly Copyright: InputMaybe; + readonly Group: InputMaybe; + readonly Name: InputMaybe; + readonly Parameters: InputMaybe; + readonly SupportsAmount: InputMaybe; + readonly SupportsMonochrome: InputMaybe; + readonly SupportsOutputReferred: InputMaybe; + readonly UUID: InputMaybe; +}; + +type FileFieldsImageMetaMetaLookDescriptionGroup = { + readonly lang: Maybe; + readonly value: Maybe; +}; + +type FileFieldsImageMetaMetaLookDescriptionGroupFilterInput = { + readonly lang: InputMaybe; + readonly value: InputMaybe; +}; + +type FileFieldsImageMetaMetaLookDescriptionParameters = { + readonly ConvertToGrayscale: Maybe; + readonly Description: Maybe; + readonly LookTable: Maybe; + readonly ProcessVersion: Maybe; + readonly RGBTable: Maybe; + readonly RGBTableAmount: Maybe; + readonly Version: Maybe; +}; + +type FileFieldsImageMetaMetaLookDescriptionParametersDescription = { + readonly Blacks2012: Maybe; + readonly CameraProfile: Maybe; + readonly Clarity2012: Maybe; + readonly ColorGradeBlending: Maybe; + readonly ColorGradeGlobalHue: Maybe; + readonly ColorGradeGlobalLum: Maybe; + readonly ColorGradeGlobalSat: Maybe; + readonly ColorGradeHighlightLum: Maybe; + readonly ColorGradeMidtoneHue: Maybe; + readonly ColorGradeMidtoneLum: Maybe; + readonly ColorGradeMidtoneSat: Maybe; + readonly ColorGradeShadowLum: Maybe; + readonly Contrast2012: Maybe; + readonly ConvertToGrayscale: Maybe; + readonly Exposure2012: Maybe; + readonly Highlights2012: Maybe; + readonly HueAdjustmentBlue: Maybe; + readonly HueAdjustmentGreen: Maybe; + readonly HueAdjustmentOrange: Maybe; + readonly HueAdjustmentRed: Maybe; + readonly HueAdjustmentYellow: Maybe; + readonly LookTable: Maybe; + readonly LuminanceAdjustmentBlue: Maybe; + readonly LuminanceAdjustmentGreen: Maybe; + readonly LuminanceAdjustmentOrange: Maybe; + readonly LuminanceAdjustmentRed: Maybe; + readonly LuminanceAdjustmentYellow: Maybe; + readonly ParametricDarks: Maybe; + readonly ParametricHighlightSplit: Maybe; + readonly ParametricHighlights: Maybe; + readonly ParametricLights: Maybe; + readonly ParametricMidtoneSplit: Maybe; + readonly ParametricShadowSplit: Maybe; + readonly ParametricShadows: Maybe; + readonly ProcessVersion: Maybe; + readonly RGBTable: Maybe; + readonly RGBTableAmount: Maybe; + readonly SaturationAdjustmentBlue: Maybe; + readonly SaturationAdjustmentGreen: Maybe; + readonly SaturationAdjustmentOrange: Maybe; + readonly SaturationAdjustmentPurple: Maybe; + readonly SaturationAdjustmentRed: Maybe; + readonly SaturationAdjustmentYellow: Maybe; + readonly Shadows2012: Maybe; + readonly SplitToningBalance: Maybe; + readonly SplitToningHighlightHue: Maybe; + readonly SplitToningHighlightSaturation: Maybe; + readonly SplitToningShadowHue: Maybe; + readonly SplitToningShadowSaturation: Maybe; + readonly Texture: Maybe; + readonly ToneCurvePV2012: Maybe>>; + readonly ToneCurvePV2012Blue: Maybe>>; + readonly ToneCurvePV2012Green: Maybe>>; + readonly ToneCurvePV2012Red: Maybe>>; + readonly Version: Maybe; + readonly Whites2012: Maybe; +}; + +type FileFieldsImageMetaMetaLookDescriptionParametersDescriptionFilterInput = { + readonly Blacks2012: InputMaybe; + readonly CameraProfile: InputMaybe; + readonly Clarity2012: InputMaybe; + readonly ColorGradeBlending: InputMaybe; + readonly ColorGradeGlobalHue: InputMaybe; + readonly ColorGradeGlobalLum: InputMaybe; + readonly ColorGradeGlobalSat: InputMaybe; + readonly ColorGradeHighlightLum: InputMaybe; + readonly ColorGradeMidtoneHue: InputMaybe; + readonly ColorGradeMidtoneLum: InputMaybe; + readonly ColorGradeMidtoneSat: InputMaybe; + readonly ColorGradeShadowLum: InputMaybe; + readonly Contrast2012: InputMaybe; + readonly ConvertToGrayscale: InputMaybe; + readonly Exposure2012: InputMaybe; + readonly Highlights2012: InputMaybe; + readonly HueAdjustmentBlue: InputMaybe; + readonly HueAdjustmentGreen: InputMaybe; + readonly HueAdjustmentOrange: InputMaybe; + readonly HueAdjustmentRed: InputMaybe; + readonly HueAdjustmentYellow: InputMaybe; + readonly LookTable: InputMaybe; + readonly LuminanceAdjustmentBlue: InputMaybe; + readonly LuminanceAdjustmentGreen: InputMaybe; + readonly LuminanceAdjustmentOrange: InputMaybe; + readonly LuminanceAdjustmentRed: InputMaybe; + readonly LuminanceAdjustmentYellow: InputMaybe; + readonly ParametricDarks: InputMaybe; + readonly ParametricHighlightSplit: InputMaybe; + readonly ParametricHighlights: InputMaybe; + readonly ParametricLights: InputMaybe; + readonly ParametricMidtoneSplit: InputMaybe; + readonly ParametricShadowSplit: InputMaybe; + readonly ParametricShadows: InputMaybe; + readonly ProcessVersion: InputMaybe; + readonly RGBTable: InputMaybe; + readonly RGBTableAmount: InputMaybe; + readonly SaturationAdjustmentBlue: InputMaybe; + readonly SaturationAdjustmentGreen: InputMaybe; + readonly SaturationAdjustmentOrange: InputMaybe; + readonly SaturationAdjustmentPurple: InputMaybe; + readonly SaturationAdjustmentRed: InputMaybe; + readonly SaturationAdjustmentYellow: InputMaybe; + readonly Shadows2012: InputMaybe; + readonly SplitToningBalance: InputMaybe; + readonly SplitToningHighlightHue: InputMaybe; + readonly SplitToningHighlightSaturation: InputMaybe; + readonly SplitToningShadowHue: InputMaybe; + readonly SplitToningShadowSaturation: InputMaybe; + readonly Texture: InputMaybe; + readonly ToneCurvePV2012: InputMaybe; + readonly ToneCurvePV2012Blue: InputMaybe; + readonly ToneCurvePV2012Green: InputMaybe; + readonly ToneCurvePV2012Red: InputMaybe; + readonly Version: InputMaybe; + readonly Whites2012: InputMaybe; +}; + +type FileFieldsImageMetaMetaLookDescriptionParametersFilterInput = { + readonly ConvertToGrayscale: InputMaybe; + readonly Description: InputMaybe; + readonly LookTable: InputMaybe; + readonly ProcessVersion: InputMaybe; + readonly RGBTable: InputMaybe; + readonly RGBTableAmount: InputMaybe; + readonly Version: InputMaybe; +}; + +type FileFieldsImageMetaMetaLookFilterInput = { + readonly Description: InputMaybe; +}; + +type FileFieldsImageMetaMetaTitle = { + readonly lang: Maybe; + readonly value: Maybe; +}; + +type FileFieldsImageMetaMetaTitleFilterInput = { + readonly lang: InputMaybe; + readonly value: InputMaybe; +}; + +type FileFieldsImageMetaVibrant = { + readonly DarkMuted: Maybe>>; + readonly DarkVibrant: Maybe>>; + readonly LightMuted: Maybe>>; + readonly LightVibrant: Maybe>>; + readonly Muted: Maybe>>; + readonly Vibrant: Maybe>>; +}; + +type FileFieldsImageMetaVibrantFilterInput = { + readonly DarkMuted: InputMaybe; + readonly DarkVibrant: InputMaybe; + readonly LightMuted: InputMaybe; + readonly LightVibrant: InputMaybe; + readonly Muted: InputMaybe; + readonly Vibrant: InputMaybe; +}; + +type FileFilterInput = { + readonly absolutePath: InputMaybe; + readonly accessTime: InputMaybe; + readonly atime: InputMaybe; + readonly atimeMs: InputMaybe; + readonly base: InputMaybe; + readonly birthTime: InputMaybe; + readonly birthtime: InputMaybe; + readonly birthtimeMs: InputMaybe; + readonly blksize: InputMaybe; + readonly blocks: InputMaybe; + readonly changeTime: InputMaybe; + readonly childImageSharp: InputMaybe; + readonly children: InputMaybe; + readonly childrenImageSharp: InputMaybe; + readonly ctime: InputMaybe; + readonly ctimeMs: InputMaybe; + readonly dev: InputMaybe; + readonly dir: InputMaybe; + readonly ext: InputMaybe; + readonly extension: InputMaybe; + readonly fields: InputMaybe; + readonly gid: InputMaybe; + readonly id: InputMaybe; + readonly ino: InputMaybe; + readonly internal: InputMaybe; + readonly mode: InputMaybe; + readonly modifiedTime: InputMaybe; + readonly mtime: InputMaybe; + readonly mtimeMs: InputMaybe; + readonly name: InputMaybe; + readonly nlink: InputMaybe; + readonly parent: InputMaybe; + readonly prettySize: InputMaybe; + readonly publicURL: InputMaybe; + readonly rdev: InputMaybe; + readonly relativeDirectory: InputMaybe; + readonly relativePath: InputMaybe; + readonly root: InputMaybe; + readonly size: InputMaybe; + readonly sourceInstanceName: InputMaybe; + readonly uid: InputMaybe; +}; + +type FileGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type FileGroupConnection_distinctArgs = { + field: FileFieldsEnum; +}; + + +type FileGroupConnection_groupArgs = { + field: FileFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type FileGroupConnection_maxArgs = { + field: FileFieldsEnum; +}; + + +type FileGroupConnection_minArgs = { + field: FileFieldsEnum; +}; + + +type FileGroupConnection_sumArgs = { + field: FileFieldsEnum; +}; + +type FileSortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type FloatQueryOperatorInput = { + readonly eq: InputMaybe; + readonly gt: InputMaybe; + readonly gte: InputMaybe; + readonly in: InputMaybe>>; + readonly lt: InputMaybe; + readonly lte: InputMaybe; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type GatsbyImageDataQueryOperatorInput = { + readonly eq: InputMaybe; + readonly in: InputMaybe>>; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type GatsbyImageFormat = + | 'auto' + | 'avif' + | 'jpg' + | 'NO_CHANGE' + | 'png' + | 'webp'; + +type GatsbyImageLayout = + | 'constrained' + | 'fixed' + | 'fullWidth'; + +type GatsbyImagePlaceholder = + | 'blurred' + | 'dominantColor' + | 'none' + | 'tracedSVG'; + +type HeadingsMdx = + | 'h1' + | 'h2' + | 'h3' + | 'h4' + | 'h5' + | 'h6'; + +type ImageCropFocus = + | 17 + | 'CENTER' + | 2 + | 16 + | 1 + | 5 + | 8 + | 3 + | 6 + | 7 + | 4; + +type ImageFit = + | 'contain' + | 'cover' + | 'fill' + | 'inside' + | 'outside'; + +type ImageFormat = + | 'AUTO' + | 'avif' + | 'jpg' + | 'NO_CHANGE' + | 'png' + | 'webp'; + +type ImageLayout = + | 'constrained' + | 'fixed' + | 'fullWidth'; + +type ImagePlaceholder = + | 'blurred' + | 'dominantColor' + | 'none' + | 'tracedSVG'; + +type ImageSharp = Node & { + readonly children: ReadonlyArray; + readonly fixed: Maybe; + readonly fluid: Maybe; + readonly gatsbyImageData: Scalars['GatsbyImageData']; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly original: Maybe; + readonly parent: Maybe; + readonly resize: Maybe; +}; + + +type ImageSharp_fixedArgs = { + background?: InputMaybe; + base64Width: InputMaybe; + cropFocus?: InputMaybe; + duotone: InputMaybe; + fit?: InputMaybe; + grayscale?: InputMaybe; + height: InputMaybe; + jpegProgressive?: InputMaybe; + jpegQuality: InputMaybe; + pngCompressionSpeed?: InputMaybe; + pngQuality: InputMaybe; + quality: InputMaybe; + rotate?: InputMaybe; + toFormat?: InputMaybe; + toFormatBase64?: InputMaybe; + traceSVG: InputMaybe; + trim?: InputMaybe; + webpQuality: InputMaybe; + width: InputMaybe; +}; + + +type ImageSharp_fluidArgs = { + background?: InputMaybe; + base64Width: InputMaybe; + cropFocus?: InputMaybe; + duotone: InputMaybe; + fit?: InputMaybe; + grayscale?: InputMaybe; + jpegProgressive?: InputMaybe; + jpegQuality: InputMaybe; + maxHeight: InputMaybe; + maxWidth: InputMaybe; + pngCompressionSpeed?: InputMaybe; + pngQuality: InputMaybe; + quality: InputMaybe; + rotate?: InputMaybe; + sizes?: InputMaybe; + srcSetBreakpoints?: InputMaybe>>; + toFormat?: InputMaybe; + toFormatBase64?: InputMaybe; + traceSVG: InputMaybe; + trim?: InputMaybe; + webpQuality: InputMaybe; +}; + + +type ImageSharp_gatsbyImageDataArgs = { + aspectRatio: InputMaybe; + avifOptions: InputMaybe; + backgroundColor: InputMaybe; + blurredOptions: InputMaybe; + breakpoints: InputMaybe>>; + formats: InputMaybe>>; + height: InputMaybe; + jpgOptions: InputMaybe; + layout?: InputMaybe; + outputPixelDensities: InputMaybe>>; + placeholder: InputMaybe; + pngOptions: InputMaybe; + quality: InputMaybe; + sizes: InputMaybe; + tracedSVGOptions: InputMaybe; + transformOptions: InputMaybe; + webpOptions: InputMaybe; + width: InputMaybe; +}; + + +type ImageSharp_resizeArgs = { + background?: InputMaybe; + base64?: InputMaybe; + cropFocus?: InputMaybe; + duotone: InputMaybe; + fit?: InputMaybe; + grayscale?: InputMaybe; + height: InputMaybe; + jpegProgressive?: InputMaybe; + jpegQuality: InputMaybe; + pngCompressionLevel?: InputMaybe; + pngCompressionSpeed?: InputMaybe; + pngQuality: InputMaybe; + quality: InputMaybe; + rotate?: InputMaybe; + toFormat?: InputMaybe; + traceSVG: InputMaybe; + trim?: InputMaybe; + webpQuality: InputMaybe; + width: InputMaybe; +}; + +type ImageSharpConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type ImageSharpConnection_distinctArgs = { + field: ImageSharpFieldsEnum; +}; + + +type ImageSharpConnection_groupArgs = { + field: ImageSharpFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type ImageSharpConnection_maxArgs = { + field: ImageSharpFieldsEnum; +}; + + +type ImageSharpConnection_minArgs = { + field: ImageSharpFieldsEnum; +}; + + +type ImageSharpConnection_sumArgs = { + field: ImageSharpFieldsEnum; +}; + +type ImageSharpEdge = { + readonly next: Maybe; + readonly node: ImageSharp; + readonly previous: Maybe; +}; + +type ImageSharpFieldsEnum = + | 'children' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'fixed.aspectRatio' + | 'fixed.base64' + | 'fixed.height' + | 'fixed.originalName' + | 'fixed.src' + | 'fixed.srcSet' + | 'fixed.srcSetWebp' + | 'fixed.srcWebp' + | 'fixed.tracedSVG' + | 'fixed.width' + | 'fluid.aspectRatio' + | 'fluid.base64' + | 'fluid.originalImg' + | 'fluid.originalName' + | 'fluid.presentationHeight' + | 'fluid.presentationWidth' + | 'fluid.sizes' + | 'fluid.src' + | 'fluid.srcSet' + | 'fluid.srcSetWebp' + | 'fluid.srcWebp' + | 'fluid.tracedSVG' + | 'gatsbyImageData' + | 'id' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'original.height' + | 'original.src' + | 'original.width' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id' + | 'resize.aspectRatio' + | 'resize.height' + | 'resize.originalName' + | 'resize.src' + | 'resize.tracedSVG' + | 'resize.width'; + +type ImageSharpFilterInput = { + readonly children: InputMaybe; + readonly fixed: InputMaybe; + readonly fluid: InputMaybe; + readonly gatsbyImageData: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly original: InputMaybe; + readonly parent: InputMaybe; + readonly resize: InputMaybe; +}; + +type ImageSharpFilterListInput = { + readonly elemMatch: InputMaybe; +}; + +type ImageSharpFixed = { + readonly aspectRatio: Maybe; + readonly base64: Maybe; + readonly height: Scalars['Float']; + readonly originalName: Maybe; + readonly src: Scalars['String']; + readonly srcSet: Scalars['String']; + readonly srcSetWebp: Maybe; + readonly srcWebp: Maybe; + readonly tracedSVG: Maybe; + readonly width: Scalars['Float']; +}; + +type ImageSharpFixedFilterInput = { + readonly aspectRatio: InputMaybe; + readonly base64: InputMaybe; + readonly height: InputMaybe; + readonly originalName: InputMaybe; + readonly src: InputMaybe; + readonly srcSet: InputMaybe; + readonly srcSetWebp: InputMaybe; + readonly srcWebp: InputMaybe; + readonly tracedSVG: InputMaybe; + readonly width: InputMaybe; +}; + +type ImageSharpFluid = { + readonly aspectRatio: Scalars['Float']; + readonly base64: Maybe; + readonly originalImg: Maybe; + readonly originalName: Maybe; + readonly presentationHeight: Scalars['Int']; + readonly presentationWidth: Scalars['Int']; + readonly sizes: Scalars['String']; + readonly src: Scalars['String']; + readonly srcSet: Scalars['String']; + readonly srcSetWebp: Maybe; + readonly srcWebp: Maybe; + readonly tracedSVG: Maybe; +}; + +type ImageSharpFluidFilterInput = { + readonly aspectRatio: InputMaybe; + readonly base64: InputMaybe; + readonly originalImg: InputMaybe; + readonly originalName: InputMaybe; + readonly presentationHeight: InputMaybe; + readonly presentationWidth: InputMaybe; + readonly sizes: InputMaybe; + readonly src: InputMaybe; + readonly srcSet: InputMaybe; + readonly srcSetWebp: InputMaybe; + readonly srcWebp: InputMaybe; + readonly tracedSVG: InputMaybe; +}; + +type ImageSharpGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type ImageSharpGroupConnection_distinctArgs = { + field: ImageSharpFieldsEnum; +}; + + +type ImageSharpGroupConnection_groupArgs = { + field: ImageSharpFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type ImageSharpGroupConnection_maxArgs = { + field: ImageSharpFieldsEnum; +}; + + +type ImageSharpGroupConnection_minArgs = { + field: ImageSharpFieldsEnum; +}; + + +type ImageSharpGroupConnection_sumArgs = { + field: ImageSharpFieldsEnum; +}; + +type ImageSharpOriginal = { + readonly height: Maybe; + readonly src: Maybe; + readonly width: Maybe; +}; + +type ImageSharpOriginalFilterInput = { + readonly height: InputMaybe; + readonly src: InputMaybe; + readonly width: InputMaybe; +}; + +type ImageSharpResize = { + readonly aspectRatio: Maybe; + readonly height: Maybe; + readonly originalName: Maybe; + readonly src: Maybe; + readonly tracedSVG: Maybe; + readonly width: Maybe; +}; + +type ImageSharpResizeFilterInput = { + readonly aspectRatio: InputMaybe; + readonly height: InputMaybe; + readonly originalName: InputMaybe; + readonly src: InputMaybe; + readonly tracedSVG: InputMaybe; + readonly width: InputMaybe; +}; + +type ImageSharpSortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type IntQueryOperatorInput = { + readonly eq: InputMaybe; + readonly gt: InputMaybe; + readonly gte: InputMaybe; + readonly in: InputMaybe>>; + readonly lt: InputMaybe; + readonly lte: InputMaybe; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type Internal = { + readonly content: Maybe; + readonly contentDigest: Scalars['String']; + readonly description: Maybe; + readonly fieldOwners: Maybe>>; + readonly ignoreType: Maybe; + readonly mediaType: Maybe; + readonly owner: Scalars['String']; + readonly type: Scalars['String']; +}; + +type InternalFilterInput = { + readonly content: InputMaybe; + readonly contentDigest: InputMaybe; + readonly description: InputMaybe; + readonly fieldOwners: InputMaybe; + readonly ignoreType: InputMaybe; + readonly mediaType: InputMaybe; + readonly owner: InputMaybe; + readonly type: InputMaybe; +}; + +type JPGOptions = { + readonly progressive: InputMaybe; + readonly quality: InputMaybe; +}; + +type JSONQueryOperatorInput = { + readonly eq: InputMaybe; + readonly glob: InputMaybe; + readonly in: InputMaybe>>; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; + readonly regex: InputMaybe; +}; + +type Mdx = Node & { + readonly body: Scalars['String']; + readonly children: ReadonlyArray; + readonly excerpt: Scalars['String']; + readonly fileAbsolutePath: Scalars['String']; + readonly frontmatter: Maybe; + readonly headings: Maybe>>; + readonly html: Maybe; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly mdxAST: Maybe; + readonly parent: Maybe; + readonly rawBody: Scalars['String']; + readonly slug: Maybe; + readonly tableOfContents: Maybe; + readonly timeToRead: Maybe; + readonly wordCount: Maybe; +}; + + +type Mdx_excerptArgs = { + pruneLength?: InputMaybe; + truncate?: InputMaybe; +}; + + +type Mdx_headingsArgs = { + depth: InputMaybe; +}; + + +type Mdx_tableOfContentsArgs = { + maxDepth: InputMaybe; +}; + +type MdxConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type MdxConnection_distinctArgs = { + field: MdxFieldsEnum; +}; + + +type MdxConnection_groupArgs = { + field: MdxFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type MdxConnection_maxArgs = { + field: MdxFieldsEnum; +}; + + +type MdxConnection_minArgs = { + field: MdxFieldsEnum; +}; + + +type MdxConnection_sumArgs = { + field: MdxFieldsEnum; +}; + +type MdxEdge = { + readonly next: Maybe; + readonly node: Mdx; + readonly previous: Maybe; +}; + +type MdxFieldsEnum = + | 'body' + | 'children' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'excerpt' + | 'fileAbsolutePath' + | 'frontmatter.title' + | 'headings' + | 'headings.depth' + | 'headings.value' + | 'html' + | 'id' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'mdxAST' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id' + | 'rawBody' + | 'slug' + | 'tableOfContents' + | 'timeToRead' + | 'wordCount.paragraphs' + | 'wordCount.sentences' + | 'wordCount.words'; + +type MdxFilterInput = { + readonly body: InputMaybe; + readonly children: InputMaybe; + readonly excerpt: InputMaybe; + readonly fileAbsolutePath: InputMaybe; + readonly frontmatter: InputMaybe; + readonly headings: InputMaybe; + readonly html: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly mdxAST: InputMaybe; + readonly parent: InputMaybe; + readonly rawBody: InputMaybe; + readonly slug: InputMaybe; + readonly tableOfContents: InputMaybe; + readonly timeToRead: InputMaybe; + readonly wordCount: InputMaybe; +}; + +type MdxFrontmatter = { + readonly title: Scalars['String']; +}; + +type MdxFrontmatterFilterInput = { + readonly title: InputMaybe; +}; + +type MdxGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type MdxGroupConnection_distinctArgs = { + field: MdxFieldsEnum; +}; + + +type MdxGroupConnection_groupArgs = { + field: MdxFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type MdxGroupConnection_maxArgs = { + field: MdxFieldsEnum; +}; + + +type MdxGroupConnection_minArgs = { + field: MdxFieldsEnum; +}; + + +type MdxGroupConnection_sumArgs = { + field: MdxFieldsEnum; +}; + +type MdxHeadingMdx = { + readonly depth: Maybe; + readonly value: Maybe; +}; + +type MdxHeadingMdxFilterInput = { + readonly depth: InputMaybe; + readonly value: InputMaybe; +}; + +type MdxHeadingMdxFilterListInput = { + readonly elemMatch: InputMaybe; +}; + +type MdxSortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type MdxWordCount = { + readonly paragraphs: Maybe; + readonly sentences: Maybe; + readonly words: Maybe; +}; + +type MdxWordCountFilterInput = { + readonly paragraphs: InputMaybe; + readonly sentences: InputMaybe; + readonly words: InputMaybe; +}; + +/** Node Interface */ +type Node = { + readonly children: ReadonlyArray; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly parent: Maybe; +}; + +type NodeFilterInput = { + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; +}; + +type NodeFilterListInput = { + readonly elemMatch: InputMaybe; +}; + +type PNGOptions = { + readonly compressionSpeed: InputMaybe; + readonly quality: InputMaybe; +}; + +type PageInfo = { + readonly currentPage: Scalars['Int']; + readonly hasNextPage: Scalars['Boolean']; + readonly hasPreviousPage: Scalars['Boolean']; + readonly itemCount: Scalars['Int']; + readonly pageCount: Scalars['Int']; + readonly perPage: Maybe; + readonly totalCount: Scalars['Int']; +}; + +type Potrace = { + readonly alphaMax: InputMaybe; + readonly background: InputMaybe; + readonly blackOnWhite: InputMaybe; + readonly color: InputMaybe; + readonly optCurve: InputMaybe; + readonly optTolerance: InputMaybe; + readonly threshold: InputMaybe; + readonly turdSize: InputMaybe; + readonly turnPolicy: InputMaybe; +}; + +type PotraceTurnPolicy = + | 'black' + | 'left' + | 'majority' + | 'minority' + | 'right' + | 'white'; + +type Query = { + readonly allDirectory: DirectoryConnection; + readonly allFile: FileConnection; + readonly allImageSharp: ImageSharpConnection; + readonly allMdx: MdxConnection; + readonly allSite: SiteConnection; + readonly allSiteBuildMetadata: SiteBuildMetadataConnection; + readonly allSiteFunction: SiteFunctionConnection; + readonly allSitePage: SitePageConnection; + readonly allSitePlugin: SitePluginConnection; + readonly directory: Maybe; + readonly file: Maybe; + readonly imageSharp: Maybe; + readonly mdx: Maybe; + readonly site: Maybe; + readonly siteBuildMetadata: Maybe; + readonly siteFunction: Maybe; + readonly sitePage: Maybe; + readonly sitePlugin: Maybe; +}; + + +type Query_allDirectoryArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_allFileArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_allImageSharpArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_allMdxArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_allSiteArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_allSiteBuildMetadataArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_allSiteFunctionArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_allSitePageArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_allSitePluginArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe; +}; + + +type Query_directoryArgs = { + absolutePath: InputMaybe; + accessTime: InputMaybe; + atime: InputMaybe; + atimeMs: InputMaybe; + base: InputMaybe; + birthTime: InputMaybe; + birthtime: InputMaybe; + birthtimeMs: InputMaybe; + changeTime: InputMaybe; + children: InputMaybe; + ctime: InputMaybe; + ctimeMs: InputMaybe; + dev: InputMaybe; + dir: InputMaybe; + ext: InputMaybe; + extension: InputMaybe; + gid: InputMaybe; + id: InputMaybe; + ino: InputMaybe; + internal: InputMaybe; + mode: InputMaybe; + modifiedTime: InputMaybe; + mtime: InputMaybe; + mtimeMs: InputMaybe; + name: InputMaybe; + nlink: InputMaybe; + parent: InputMaybe; + prettySize: InputMaybe; + rdev: InputMaybe; + relativeDirectory: InputMaybe; + relativePath: InputMaybe; + root: InputMaybe; + size: InputMaybe; + sourceInstanceName: InputMaybe; + uid: InputMaybe; +}; + + +type Query_fileArgs = { + absolutePath: InputMaybe; + accessTime: InputMaybe; + atime: InputMaybe; + atimeMs: InputMaybe; + base: InputMaybe; + birthTime: InputMaybe; + birthtime: InputMaybe; + birthtimeMs: InputMaybe; + blksize: InputMaybe; + blocks: InputMaybe; + changeTime: InputMaybe; + childImageSharp: InputMaybe; + children: InputMaybe; + childrenImageSharp: InputMaybe; + ctime: InputMaybe; + ctimeMs: InputMaybe; + dev: InputMaybe; + dir: InputMaybe; + ext: InputMaybe; + extension: InputMaybe; + fields: InputMaybe; + gid: InputMaybe; + id: InputMaybe; + ino: InputMaybe; + internal: InputMaybe; + mode: InputMaybe; + modifiedTime: InputMaybe; + mtime: InputMaybe; + mtimeMs: InputMaybe; + name: InputMaybe; + nlink: InputMaybe; + parent: InputMaybe; + prettySize: InputMaybe; + publicURL: InputMaybe; + rdev: InputMaybe; + relativeDirectory: InputMaybe; + relativePath: InputMaybe; + root: InputMaybe; + size: InputMaybe; + sourceInstanceName: InputMaybe; + uid: InputMaybe; +}; + + +type Query_imageSharpArgs = { + children: InputMaybe; + fixed: InputMaybe; + fluid: InputMaybe; + gatsbyImageData: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + original: InputMaybe; + parent: InputMaybe; + resize: InputMaybe; +}; + + +type Query_mdxArgs = { + body: InputMaybe; + children: InputMaybe; + excerpt: InputMaybe; + fileAbsolutePath: InputMaybe; + frontmatter: InputMaybe; + headings: InputMaybe; + html: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + mdxAST: InputMaybe; + parent: InputMaybe; + rawBody: InputMaybe; + slug: InputMaybe; + tableOfContents: InputMaybe; + timeToRead: InputMaybe; + wordCount: InputMaybe; +}; + + +type Query_siteArgs = { + buildTime: InputMaybe; + children: InputMaybe; + graphqlTypegen: InputMaybe; + host: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + jsxRuntime: InputMaybe; + parent: InputMaybe; + pathPrefix: InputMaybe; + polyfill: InputMaybe; + port: InputMaybe; + siteMetadata: InputMaybe; + trailingSlash: InputMaybe; +}; + + +type Query_siteBuildMetadataArgs = { + buildTime: InputMaybe; + children: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + parent: InputMaybe; +}; + + +type Query_siteFunctionArgs = { + absoluteCompiledFilePath: InputMaybe; + children: InputMaybe; + functionRoute: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + matchPath: InputMaybe; + originalAbsoluteFilePath: InputMaybe; + originalRelativeFilePath: InputMaybe; + parent: InputMaybe; + pluginName: InputMaybe; + relativeCompiledFilePath: InputMaybe; +}; + + +type Query_sitePageArgs = { + children: InputMaybe; + component: InputMaybe; + componentChunkName: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + internalComponentName: InputMaybe; + matchPath: InputMaybe; + pageContext: InputMaybe; + parent: InputMaybe; + path: InputMaybe; + pluginCreator: InputMaybe; +}; + + +type Query_sitePluginArgs = { + browserAPIs: InputMaybe; + children: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + name: InputMaybe; + nodeAPIs: InputMaybe; + packageJson: InputMaybe; + parent: InputMaybe; + pluginFilepath: InputMaybe; + pluginOptions: InputMaybe; + resolve: InputMaybe; + ssrAPIs: InputMaybe; + version: InputMaybe; +}; + +type Site = Node & { + readonly buildTime: Maybe; + readonly children: ReadonlyArray; + readonly graphqlTypegen: Maybe; + readonly host: Maybe; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly jsxRuntime: Maybe; + readonly parent: Maybe; + readonly pathPrefix: Maybe; + readonly polyfill: Maybe; + readonly port: Maybe; + readonly siteMetadata: Maybe; + readonly trailingSlash: Maybe; +}; + + +type Site_buildTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type SiteBuildMetadata = Node & { + readonly buildTime: Maybe; + readonly children: ReadonlyArray; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly parent: Maybe; +}; + + +type SiteBuildMetadata_buildTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type SiteBuildMetadataConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteBuildMetadataConnection_distinctArgs = { + field: SiteBuildMetadataFieldsEnum; +}; + + +type SiteBuildMetadataConnection_groupArgs = { + field: SiteBuildMetadataFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteBuildMetadataConnection_maxArgs = { + field: SiteBuildMetadataFieldsEnum; +}; + + +type SiteBuildMetadataConnection_minArgs = { + field: SiteBuildMetadataFieldsEnum; +}; + + +type SiteBuildMetadataConnection_sumArgs = { + field: SiteBuildMetadataFieldsEnum; +}; + +type SiteBuildMetadataEdge = { + readonly next: Maybe; + readonly node: SiteBuildMetadata; + readonly previous: Maybe; +}; + +type SiteBuildMetadataFieldsEnum = + | 'buildTime' + | 'children' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'id' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id'; + +type SiteBuildMetadataFilterInput = { + readonly buildTime: InputMaybe; + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; +}; + +type SiteBuildMetadataGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteBuildMetadataGroupConnection_distinctArgs = { + field: SiteBuildMetadataFieldsEnum; +}; + + +type SiteBuildMetadataGroupConnection_groupArgs = { + field: SiteBuildMetadataFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteBuildMetadataGroupConnection_maxArgs = { + field: SiteBuildMetadataFieldsEnum; +}; + + +type SiteBuildMetadataGroupConnection_minArgs = { + field: SiteBuildMetadataFieldsEnum; +}; + + +type SiteBuildMetadataGroupConnection_sumArgs = { + field: SiteBuildMetadataFieldsEnum; +}; + +type SiteBuildMetadataSortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type SiteConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteConnection_distinctArgs = { + field: SiteFieldsEnum; +}; + + +type SiteConnection_groupArgs = { + field: SiteFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteConnection_maxArgs = { + field: SiteFieldsEnum; +}; + + +type SiteConnection_minArgs = { + field: SiteFieldsEnum; +}; + + +type SiteConnection_sumArgs = { + field: SiteFieldsEnum; +}; + +type SiteEdge = { + readonly next: Maybe; + readonly node: Site; + readonly previous: Maybe; +}; + +type SiteFieldsEnum = + | 'buildTime' + | 'children' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'graphqlTypegen' + | 'host' + | 'id' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'jsxRuntime' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id' + | 'pathPrefix' + | 'polyfill' + | 'port' + | 'siteMetadata.description' + | 'siteMetadata.siteUrl' + | 'siteMetadata.title' + | 'trailingSlash'; + +type SiteFilterInput = { + readonly buildTime: InputMaybe; + readonly children: InputMaybe; + readonly graphqlTypegen: InputMaybe; + readonly host: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly jsxRuntime: InputMaybe; + readonly parent: InputMaybe; + readonly pathPrefix: InputMaybe; + readonly polyfill: InputMaybe; + readonly port: InputMaybe; + readonly siteMetadata: InputMaybe; + readonly trailingSlash: InputMaybe; +}; + +type SiteFunction = Node & { + readonly absoluteCompiledFilePath: Scalars['String']; + readonly children: ReadonlyArray; + readonly functionRoute: Scalars['String']; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly matchPath: Maybe; + readonly originalAbsoluteFilePath: Scalars['String']; + readonly originalRelativeFilePath: Scalars['String']; + readonly parent: Maybe; + readonly pluginName: Scalars['String']; + readonly relativeCompiledFilePath: Scalars['String']; +}; + +type SiteFunctionConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteFunctionConnection_distinctArgs = { + field: SiteFunctionFieldsEnum; +}; + + +type SiteFunctionConnection_groupArgs = { + field: SiteFunctionFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteFunctionConnection_maxArgs = { + field: SiteFunctionFieldsEnum; +}; + + +type SiteFunctionConnection_minArgs = { + field: SiteFunctionFieldsEnum; +}; + + +type SiteFunctionConnection_sumArgs = { + field: SiteFunctionFieldsEnum; +}; + +type SiteFunctionEdge = { + readonly next: Maybe; + readonly node: SiteFunction; + readonly previous: Maybe; +}; + +type SiteFunctionFieldsEnum = + | 'absoluteCompiledFilePath' + | 'children' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'functionRoute' + | 'id' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'matchPath' + | 'originalAbsoluteFilePath' + | 'originalRelativeFilePath' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id' + | 'pluginName' + | 'relativeCompiledFilePath'; + +type SiteFunctionFilterInput = { + readonly absoluteCompiledFilePath: InputMaybe; + readonly children: InputMaybe; + readonly functionRoute: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly matchPath: InputMaybe; + readonly originalAbsoluteFilePath: InputMaybe; + readonly originalRelativeFilePath: InputMaybe; + readonly parent: InputMaybe; + readonly pluginName: InputMaybe; + readonly relativeCompiledFilePath: InputMaybe; +}; + +type SiteFunctionGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteFunctionGroupConnection_distinctArgs = { + field: SiteFunctionFieldsEnum; +}; + + +type SiteFunctionGroupConnection_groupArgs = { + field: SiteFunctionFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteFunctionGroupConnection_maxArgs = { + field: SiteFunctionFieldsEnum; +}; + + +type SiteFunctionGroupConnection_minArgs = { + field: SiteFunctionFieldsEnum; +}; + + +type SiteFunctionGroupConnection_sumArgs = { + field: SiteFunctionFieldsEnum; +}; + +type SiteFunctionSortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type SiteGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteGroupConnection_distinctArgs = { + field: SiteFieldsEnum; +}; + + +type SiteGroupConnection_groupArgs = { + field: SiteFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteGroupConnection_maxArgs = { + field: SiteFieldsEnum; +}; + + +type SiteGroupConnection_minArgs = { + field: SiteFieldsEnum; +}; + + +type SiteGroupConnection_sumArgs = { + field: SiteFieldsEnum; +}; + +type SitePage = Node & { + readonly children: ReadonlyArray; + readonly component: Scalars['String']; + readonly componentChunkName: Scalars['String']; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly internalComponentName: Scalars['String']; + readonly matchPath: Maybe; + readonly pageContext: Maybe; + readonly parent: Maybe; + readonly path: Scalars['String']; + readonly pluginCreator: Maybe; +}; + +type SitePageConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SitePageConnection_distinctArgs = { + field: SitePageFieldsEnum; +}; + + +type SitePageConnection_groupArgs = { + field: SitePageFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SitePageConnection_maxArgs = { + field: SitePageFieldsEnum; +}; + + +type SitePageConnection_minArgs = { + field: SitePageFieldsEnum; +}; + + +type SitePageConnection_sumArgs = { + field: SitePageFieldsEnum; +}; + +type SitePageEdge = { + readonly next: Maybe; + readonly node: SitePage; + readonly previous: Maybe; +}; + +type SitePageFieldsEnum = + | 'children' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'component' + | 'componentChunkName' + | 'id' + | 'internalComponentName' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'matchPath' + | 'pageContext' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id' + | 'path' + | 'pluginCreator.browserAPIs' + | 'pluginCreator.children' + | 'pluginCreator.children.children' + | 'pluginCreator.children.children.children' + | 'pluginCreator.children.children.id' + | 'pluginCreator.children.id' + | 'pluginCreator.children.internal.content' + | 'pluginCreator.children.internal.contentDigest' + | 'pluginCreator.children.internal.description' + | 'pluginCreator.children.internal.fieldOwners' + | 'pluginCreator.children.internal.ignoreType' + | 'pluginCreator.children.internal.mediaType' + | 'pluginCreator.children.internal.owner' + | 'pluginCreator.children.internal.type' + | 'pluginCreator.children.parent.children' + | 'pluginCreator.children.parent.id' + | 'pluginCreator.id' + | 'pluginCreator.internal.content' + | 'pluginCreator.internal.contentDigest' + | 'pluginCreator.internal.description' + | 'pluginCreator.internal.fieldOwners' + | 'pluginCreator.internal.ignoreType' + | 'pluginCreator.internal.mediaType' + | 'pluginCreator.internal.owner' + | 'pluginCreator.internal.type' + | 'pluginCreator.name' + | 'pluginCreator.nodeAPIs' + | 'pluginCreator.packageJson' + | 'pluginCreator.parent.children' + | 'pluginCreator.parent.children.children' + | 'pluginCreator.parent.children.id' + | 'pluginCreator.parent.id' + | 'pluginCreator.parent.internal.content' + | 'pluginCreator.parent.internal.contentDigest' + | 'pluginCreator.parent.internal.description' + | 'pluginCreator.parent.internal.fieldOwners' + | 'pluginCreator.parent.internal.ignoreType' + | 'pluginCreator.parent.internal.mediaType' + | 'pluginCreator.parent.internal.owner' + | 'pluginCreator.parent.internal.type' + | 'pluginCreator.parent.parent.children' + | 'pluginCreator.parent.parent.id' + | 'pluginCreator.pluginFilepath' + | 'pluginCreator.pluginOptions' + | 'pluginCreator.resolve' + | 'pluginCreator.ssrAPIs' + | 'pluginCreator.version'; + +type SitePageFilterInput = { + readonly children: InputMaybe; + readonly component: InputMaybe; + readonly componentChunkName: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly internalComponentName: InputMaybe; + readonly matchPath: InputMaybe; + readonly pageContext: InputMaybe; + readonly parent: InputMaybe; + readonly path: InputMaybe; + readonly pluginCreator: InputMaybe; +}; + +type SitePageGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SitePageGroupConnection_distinctArgs = { + field: SitePageFieldsEnum; +}; + + +type SitePageGroupConnection_groupArgs = { + field: SitePageFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SitePageGroupConnection_maxArgs = { + field: SitePageFieldsEnum; +}; + + +type SitePageGroupConnection_minArgs = { + field: SitePageFieldsEnum; +}; + + +type SitePageGroupConnection_sumArgs = { + field: SitePageFieldsEnum; +}; + +type SitePageSortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type SitePlugin = Node & { + readonly browserAPIs: Maybe>>; + readonly children: ReadonlyArray; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly name: Maybe; + readonly nodeAPIs: Maybe>>; + readonly packageJson: Maybe; + readonly parent: Maybe; + readonly pluginFilepath: Maybe; + readonly pluginOptions: Maybe; + readonly resolve: Maybe; + readonly ssrAPIs: Maybe>>; + readonly version: Maybe; +}; + +type SitePluginConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SitePluginConnection_distinctArgs = { + field: SitePluginFieldsEnum; +}; + + +type SitePluginConnection_groupArgs = { + field: SitePluginFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SitePluginConnection_maxArgs = { + field: SitePluginFieldsEnum; +}; + + +type SitePluginConnection_minArgs = { + field: SitePluginFieldsEnum; +}; + + +type SitePluginConnection_sumArgs = { + field: SitePluginFieldsEnum; +}; + +type SitePluginEdge = { + readonly next: Maybe; + readonly node: SitePlugin; + readonly previous: Maybe; +}; + +type SitePluginFieldsEnum = + | 'browserAPIs' + | 'children' + | 'children.children' + | 'children.children.children' + | 'children.children.children.children' + | 'children.children.children.id' + | 'children.children.id' + | 'children.children.internal.content' + | 'children.children.internal.contentDigest' + | 'children.children.internal.description' + | 'children.children.internal.fieldOwners' + | 'children.children.internal.ignoreType' + | 'children.children.internal.mediaType' + | 'children.children.internal.owner' + | 'children.children.internal.type' + | 'children.children.parent.children' + | 'children.children.parent.id' + | 'children.id' + | 'children.internal.content' + | 'children.internal.contentDigest' + | 'children.internal.description' + | 'children.internal.fieldOwners' + | 'children.internal.ignoreType' + | 'children.internal.mediaType' + | 'children.internal.owner' + | 'children.internal.type' + | 'children.parent.children' + | 'children.parent.children.children' + | 'children.parent.children.id' + | 'children.parent.id' + | 'children.parent.internal.content' + | 'children.parent.internal.contentDigest' + | 'children.parent.internal.description' + | 'children.parent.internal.fieldOwners' + | 'children.parent.internal.ignoreType' + | 'children.parent.internal.mediaType' + | 'children.parent.internal.owner' + | 'children.parent.internal.type' + | 'children.parent.parent.children' + | 'children.parent.parent.id' + | 'id' + | 'internal.content' + | 'internal.contentDigest' + | 'internal.description' + | 'internal.fieldOwners' + | 'internal.ignoreType' + | 'internal.mediaType' + | 'internal.owner' + | 'internal.type' + | 'name' + | 'nodeAPIs' + | 'packageJson' + | 'parent.children' + | 'parent.children.children' + | 'parent.children.children.children' + | 'parent.children.children.id' + | 'parent.children.id' + | 'parent.children.internal.content' + | 'parent.children.internal.contentDigest' + | 'parent.children.internal.description' + | 'parent.children.internal.fieldOwners' + | 'parent.children.internal.ignoreType' + | 'parent.children.internal.mediaType' + | 'parent.children.internal.owner' + | 'parent.children.internal.type' + | 'parent.children.parent.children' + | 'parent.children.parent.id' + | 'parent.id' + | 'parent.internal.content' + | 'parent.internal.contentDigest' + | 'parent.internal.description' + | 'parent.internal.fieldOwners' + | 'parent.internal.ignoreType' + | 'parent.internal.mediaType' + | 'parent.internal.owner' + | 'parent.internal.type' + | 'parent.parent.children' + | 'parent.parent.children.children' + | 'parent.parent.children.id' + | 'parent.parent.id' + | 'parent.parent.internal.content' + | 'parent.parent.internal.contentDigest' + | 'parent.parent.internal.description' + | 'parent.parent.internal.fieldOwners' + | 'parent.parent.internal.ignoreType' + | 'parent.parent.internal.mediaType' + | 'parent.parent.internal.owner' + | 'parent.parent.internal.type' + | 'parent.parent.parent.children' + | 'parent.parent.parent.id' + | 'pluginFilepath' + | 'pluginOptions' + | 'resolve' + | 'ssrAPIs' + | 'version'; + +type SitePluginFilterInput = { + readonly browserAPIs: InputMaybe; + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly name: InputMaybe; + readonly nodeAPIs: InputMaybe; + readonly packageJson: InputMaybe; + readonly parent: InputMaybe; + readonly pluginFilepath: InputMaybe; + readonly pluginOptions: InputMaybe; + readonly resolve: InputMaybe; + readonly ssrAPIs: InputMaybe; + readonly version: InputMaybe; +}; + +type SitePluginGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SitePluginGroupConnection_distinctArgs = { + field: SitePluginFieldsEnum; +}; + + +type SitePluginGroupConnection_groupArgs = { + field: SitePluginFieldsEnum; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SitePluginGroupConnection_maxArgs = { + field: SitePluginFieldsEnum; +}; + + +type SitePluginGroupConnection_minArgs = { + field: SitePluginFieldsEnum; +}; + + +type SitePluginGroupConnection_sumArgs = { + field: SitePluginFieldsEnum; +}; + +type SitePluginSortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type SiteSiteMetadata = { + readonly description: Maybe; + readonly siteUrl: Maybe; + readonly title: Maybe; +}; + +type SiteSiteMetadataFilterInput = { + readonly description: InputMaybe; + readonly siteUrl: InputMaybe; + readonly title: InputMaybe; +}; + +type SiteSortInput = { + readonly fields: InputMaybe>>; + readonly order: InputMaybe>>; +}; + +type SortOrderEnum = + | 'ASC' + | 'DESC'; + +type StringQueryOperatorInput = { + readonly eq: InputMaybe; + readonly glob: InputMaybe; + readonly in: InputMaybe>>; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; + readonly regex: InputMaybe; +}; + +type TransformOptions = { + readonly cropFocus: InputMaybe; + readonly duotone: InputMaybe; + readonly fit: InputMaybe; + readonly grayscale: InputMaybe; + readonly rotate: InputMaybe; + readonly trim: InputMaybe; +}; + +type WebPOptions = { + readonly quality: InputMaybe; +}; + +type GalleryImageQueryVariables = Exact<{ + imageFilename: InputMaybe; +}>; + + +type GalleryImageQuery = { readonly file: { readonly base: string, readonly publicURL: string | null, readonly childImageSharp: { readonly gatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData, readonly fluid: { readonly aspectRatio: number } | null } | null, readonly fields: { readonly imageMeta: { readonly dateTaken: string | null, readonly meta: { readonly Make: string | null, readonly Model: string | null, readonly ExposureTime: number | null, readonly FNumber: number | null, readonly ISO: number | null, readonly DateTimeOriginal: string | null, readonly CreateDate: string | null, readonly ShutterSpeedValue: number | null, readonly ApertureValue: number | null, readonly FocalLength: number | null, readonly LensModel: string | null, readonly ObjectName: string | null, readonly Caption: string | null, readonly Location: string | null, readonly City: string | null, readonly State: string | null } | null, readonly vibrant: { readonly DarkMuted: ReadonlyArray | null, readonly DarkVibrant: ReadonlyArray | null, readonly LightMuted: ReadonlyArray | null, readonly LightVibrant: ReadonlyArray | null, readonly Vibrant: ReadonlyArray | null, readonly Muted: ReadonlyArray | null } | null } | null } | null } | null }; + +type GalleryPageQueryQueryVariables = Exact<{ [key: string]: never; }>; + + +type GalleryPageQueryQuery = { readonly allFile: { readonly nodes: ReadonlyArray<{ readonly relativePath: string, readonly base: string, readonly childImageSharp: { readonly gatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData, readonly fluid: { readonly aspectRatio: number } | null } | null, readonly fields: { readonly imageMeta: { readonly vibrantHue: number | null, readonly dominantHue: ReadonlyArray | null, readonly dateTaken: string | null, readonly meta: { readonly Keywords: ReadonlyArray | null, readonly Rating: number | null, readonly ObjectName: string | null } | null, readonly vibrant: { readonly Vibrant: ReadonlyArray | null } | null } | null } | null }> } }; + +type GatsbyImageSharpFixedFragment = { readonly base64: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string }; + +type GatsbyImageSharpFixed_noBase64Fragment = { readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string }; + +type GatsbyImageSharpFixed_tracedSVGFragment = { readonly tracedSVG: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string }; + +type GatsbyImageSharpFixed_withWebpFragment = { readonly base64: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null }; + +type GatsbyImageSharpFixed_withWebp_noBase64Fragment = { readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null }; + +type GatsbyImageSharpFixed_withWebp_tracedSVGFragment = { readonly tracedSVG: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null }; + +type GatsbyImageSharpFluidFragment = { readonly base64: string | null, readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly sizes: string }; + +type GatsbyImageSharpFluid_noBase64Fragment = { readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly sizes: string }; + +type GatsbyImageSharpFluid_tracedSVGFragment = { readonly tracedSVG: string | null, readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly sizes: string }; + +type GatsbyImageSharpFluid_withWebpFragment = { readonly base64: string | null, readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null, readonly sizes: string }; + +type GatsbyImageSharpFluid_withWebp_noBase64Fragment = { readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null, readonly sizes: string }; + +type GatsbyImageSharpFluid_withWebp_tracedSVGFragment = { readonly tracedSVG: string | null, readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null, readonly sizes: string }; + +type GatsbyImageSharpFluidLimitPresentationSizeFragment = { readonly maxHeight: number, readonly maxWidth: number }; + +type VibrantColorsFragment = { readonly DarkMuted: ReadonlyArray | null, readonly DarkVibrant: ReadonlyArray | null, readonly LightMuted: ReadonlyArray | null, readonly LightVibrant: ReadonlyArray | null, readonly Vibrant: ReadonlyArray | null, readonly Muted: ReadonlyArray | null }; + + +} diff --git a/src/global.d.ts b/src/global.d.ts new file mode 100644 index 0000000..ff6518a --- /dev/null +++ b/src/global.d.ts @@ -0,0 +1,4 @@ +/* eslint-disable */ +declare interface Window { + plausible: any; +} \ No newline at end of file diff --git a/src/pages/photogallery.js b/src/pages/photogallery.tsx similarity index 84% rename from src/pages/photogallery.js rename to src/pages/photogallery.tsx index 32b415e..298c9b0 100644 --- a/src/pages/photogallery.js +++ b/src/pages/photogallery.tsx @@ -1,6 +1,6 @@ import * as React from "react"; import * as R from "ramda"; -import { graphql } from "gatsby"; +import { graphql, PageProps } from "gatsby"; import { Helmet } from "react-helmet"; import { Picker, Item } from "@adobe/react-spectrum"; @@ -14,22 +14,25 @@ const SORT_KEYS = { rating: ["fields", "imageMeta", "meta", "Rating"], hue_debug: ["fields", "imageMeta", "dominantHue", 0], date: [], -}; +} as const; -const GalleryPage = ({ data }) => { +export type GalleryImage = + Queries.GalleryPageQueryQuery["allFile"]["nodes"][number]; + +const GalleryPage = ({ data }: PageProps) => { const hash = typeof window !== "undefined" ? window.location.hash.replace("#", "") : ""; const [hashCleared, setHashCleared] = React.useState(false); // eslint-disable-line no-unused-vars // ^ used just to force a re-render with the cleared hash value (I know, it's a smell for sure) - const [filterKeyword, _setKeyword] = React.useState(null); - const [sortKey, _setSortKey] = React.useState("rating"); + const [filterKeyword, _setKeyword] = React.useState(null as string | null); + const [sortKey, _setSortKey] = React.useState("rating" as string); const showDebug = typeof window !== "undefined" && window.location.search.includes("debug=true"); const setKeyword = React.useCallback( - (newKeyword) => { + (newKeyword: string | null) => { if (newKeyword) { try { window.plausible("Filter Keyword", { @@ -50,7 +53,7 @@ const GalleryPage = ({ data }) => { ); const setSortKey = React.useCallback( - (newSortKey) => { + (newSortKey: string) => { try { window.plausible("Sort Gallery", { props: { key: newSortKey }, @@ -102,12 +105,12 @@ const GalleryPage = ({ data }) => { const sortKeyFromUrl = url.searchParams.get("sort"); if (sortKeyFromUrl) { - _setSortKey(sortKeyFromUrl, false); + _setSortKey(sortKeyFromUrl); } const filterKeyFromUrl = url.searchParams.get("filter"); if (filterKeyFromUrl) { - _setKeyword(filterKeyFromUrl, false); + _setKeyword(filterKeyFromUrl); } // hacky but it works for now @@ -117,34 +120,41 @@ const GalleryPage = ({ data }) => { }, 100); }, [setSortKey, setKeyword, scrollIntoView]); - const images = React.useMemo( + const images: GalleryImage[] = React.useMemo( () => R.pipe( + // @ts-ignore sortKey === "date" - ? R.sort((node1, node2) => { + ? R.sort((node1: typeof data["allFile"]["nodes"][number], node2) => { const date1 = new Date( + // @ts-ignore R.path(["fields", "imageMeta", "dateTaken"], node1) ); const date2 = new Date( + // @ts-ignore R.path(["fields", "imageMeta", "dateTaken"], node2) ); return -1 * (date1.getTime() - date2.getTime()); }) - : R.sort(R.descend(R.path(SORT_KEYS[sortKey]))), + : // @ts-ignore + R.sort(R.descend(R.path(SORT_KEYS[sortKey]))), filterKeyword ? R.filter((image) => + // @ts-ignore R.includes( filterKeyword, + // @ts-ignore R.path(["fields", "imageMeta", "meta", "Keywords"], image) ) ) : R.identity - )(data.allFile.nodes), + )(data.allFile.nodes) as any, [data, sortKey, filterKeyword] ); return ( <> + {/* @ts-ignore */} Photo Gallery | Chuck Dries @@ -156,8 +166,7 @@ const GalleryPage = ({ data }) => { { href: "/", label: "Home" }, { href: "/photogallery/", label: "Gallery" }, ]} - > - + >

Photo Gallery @@ -182,13 +191,17 @@ const GalleryPage = ({ data }) => {
Default Date Hue - {showDebug && Dominant hue[debug]} + <>{/* @ts-ignore */} + {showDebug ? ( + Dominant hue[debug] + ) : undefined}

diff --git a/src/utils.ts b/src/utils.ts index 2543f4c..f1c81bc 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,28 +1,30 @@ // import kebabCase from 'lodash/kebabCase'; -export const getMeta = (image) => image.fields.imageMeta; +import { GalleryImage } from "./pages/photogallery"; -export const getName = (image) => +export const getMeta = (image: GalleryImage) => image.fields?.imageMeta; + +export const getName = (image: GalleryImage) => getMeta(image)?.meta?.ObjectName || image.base; // some pleasing default colors for SSR and initial hydration -export const getVibrant = (image) => getMeta(image)?.vibrant; +export const getVibrant = (image: GalleryImage) => getMeta(image)?.vibrant; -export const hasName = (image) => Boolean(getMeta(image)?.meta?.ObjectName); +export const hasName = (image: GalleryImage) => Boolean(getMeta(image)?.meta?.ObjectName); -export const getAspectRatio = (image) => - image.childImageSharp.fluid.aspectRatio; +export const getAspectRatio = (image: GalleryImage): number => + image.childImageSharp?.fluid?.aspectRatio ?? 1; -export const getCanonicalSize = (image) => ({ - height: image.childImageSharp.gatsbyImageData.height, - width: image.childImageSharp.gatsbyImageData.width, +export const getCanonicalSize = (image: GalleryImage) => ({ + height: image.childImageSharp?.gatsbyImageData.height, + width: image.childImageSharp?.gatsbyImageData.width, }); -export const getRgba = (palette, alpha) => +export const getRgba = (palette: string[], alpha: number) => `rgba(${palette[0]}, ${palette[1]}, ${palette[2]}, ${alpha || 1})`; // work around SSR bug in react-helmet -export const getHelmetSafeBodyStyle = (vibrant, screenHeight?: number) => { +export const getHelmetSafeBodyStyle = (vibrant: Queries.FileFieldsImageMetaVibrant, screenHeight?: number) => { const style = { "--muted": vibrant.Muted, "--dark-muted": vibrant.DarkMuted, @@ -36,11 +38,12 @@ export const getHelmetSafeBodyStyle = (vibrant, screenHeight?: number) => { return style; } return Object.keys(style) + // @ts-ignore .map((key) => `${key}: ${style[key]};`) .join(""); }; -const gcd = (a, b) => { +const gcd = (a: number, b: number): number => { if (b < 0.0000001) { return a; // Since there is a limited precision we need to limit the value. } @@ -48,7 +51,7 @@ const gcd = (a, b) => { return gcd(b, Math.floor(a % b)); // Discard any fractions due to limitations in precision. }; -export const getShutterFractionFromExposureTime = (exposureTime) => { +export const getShutterFractionFromExposureTime = (exposureTime: number) => { if (exposureTime === 0.03333333333333333) { return "1/30"; } @@ -80,7 +83,12 @@ export const getShutterFractionFromExposureTime = (exposureTime) => { return `${numerator}/${denominator}`; }; -export const getGalleryPageUrl = ({ keyword, sortKey }, hash) => { +interface galleryPageUrlProps { + keyword: string | null; + sortKey: string; +} + +export const getGalleryPageUrl = ({ keyword, sortKey }: galleryPageUrlProps, hash: string) => { const url = new URL( `${ typeof window !== "undefined" diff --git a/yarn.lock b/yarn.lock index ea41aac..b51c790 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4903,10 +4903,17 @@ dependencies: "@types/react" "*" -"@types/react@*": - version "17.0.43" - resolved "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz" - integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A== +"@types/react-helmet@^6.1.5": + version "6.1.5" + resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.5.tgz#35f89a6b1646ee2bc342a33a9a6c8777933f9083" + integrity sha512-/ICuy7OHZxR0YCAZLNg9r7I9aijWUWvxaPR6uTuyxe8tAj5RL4Sw1+R6NhXUtOsarkGYPmaHdBDvuXh2DIN/uA== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^17.0.38": + version "17.0.50" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.50.tgz#39abb4f7098f546cfcd6b51207c90c4295ee81fc" + integrity sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*"