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