From 0e423c12ed5e67624600f3672c930696db2f4419 Mon Sep 17 00:00:00 2001 From: Chuck Dries Date: Mon, 10 Oct 2022 04:34:15 -0700 Subject: [PATCH] add types to gatsby-node --- gatsby-node.js => gatsby-node.ts | 83 +++-- package.json | 1 + src/components/GalleryImage/GalleryImage.js | 2 +- src/gatsby-types.d.ts | 332 ++------------------ tsconfig.json | 2 +- yarn.lock | 5 + 6 files changed, 92 insertions(+), 333 deletions(-) rename gatsby-node.js => gatsby-node.ts (73%) diff --git a/gatsby-node.js b/gatsby-node.ts similarity index 73% rename from gatsby-node.js rename to gatsby-node.ts index 9755f2b..000d5b5 100644 --- a/gatsby-node.js +++ b/gatsby-node.ts @@ -1,15 +1,27 @@ -const path = require("path"); -const Vibrant = require("node-vibrant"); -const chroma = require("chroma-js"); -const chalk = require("chalk"); -const R = require("ramda"); -const exifr = require("exifr"); -const sharp = require("sharp"); +import type { GatsbyNode } from "gatsby"; + +import path from "path"; +import Vibrant from "node-vibrant"; +import chroma, { Color } from "chroma-js"; +import chalk from "chalk"; +import * as R from "ramda"; +import exifr from "exifr"; +import sharp from "sharp"; +import { Palette } from "node-vibrant/lib/color"; + +// const path = require("path"); +// const Vibrant = require("node-vibrant"); +// const chroma = require("chroma-js"); +// const chalk = require("chalk"); +// const R = require("ramda"); +// const exifr = require("exifr"); +// const sharp = require("sharp"); // const { graphql } = require("gatsby"); -const badContrast = (color1, color2) => chroma.contrast(color1, color2) < 4.5; +const badContrast = (color1: Color, color2: Color) => + chroma.contrast(color1, color2) < 4.5; -const logColorsWithContrast = (color1, color2, text) => { +const logColorsWithContrast = (color1: Color, color2: Color, text: string) => { const c1hex = color1.hex(); const c2hex = color2.hex(); console.log( @@ -19,13 +31,13 @@ const logColorsWithContrast = (color1, color2, text) => { ); }; -function processColors(vibrantData, imagePath) { - let Vibrant = chroma(vibrantData.Vibrant.getRgb()); - let DarkVibrant = chroma(vibrantData.DarkVibrant.getRgb()); - let LightVibrant = chroma(vibrantData.LightVibrant.getRgb()); - let Muted = chroma(vibrantData.Muted.getRgb()); - let DarkMuted = chroma(vibrantData.DarkMuted.getRgb()); - let LightMuted = chroma(vibrantData.LightMuted.getRgb()); +function processColors(vibrantData: Palette, imagePath: string) { + let Vibrant = chroma(vibrantData.Vibrant!.getRgb()); + let DarkVibrant = chroma(vibrantData.DarkVibrant!.getRgb()); + let LightVibrant = chroma(vibrantData.LightVibrant!.getRgb()); + let Muted = chroma(vibrantData.Muted!.getRgb()); + let DarkMuted = chroma(vibrantData.DarkMuted!.getRgb()); + let LightMuted = chroma(vibrantData.LightMuted!.getRgb()); // first pass - darken bg and lighten relevant fg colors if ( @@ -102,23 +114,23 @@ function processColors(vibrantData, imagePath) { // } function transformMetaToNodeData( - metaData, - vibrantData, - imagePath, - { r, g, b } + metaData: Record, + vibrantData: Palette, + imagePath: string, + { r, g, b }: { r: number; b: number; g: number } ) { const vibrant = vibrantData ? processColors(vibrantData, imagePath) : null; - const vibrantHue = vibrantData.Vibrant.getHsl()[0] * 360; + const vibrantHue = vibrantData.Vibrant!.getHsl()[0] * 360; let dominantHue = chroma(r, g, b).hsl(); if (isNaN(dominantHue[0])) { dominantHue[0] = 0; } let Keywords = metaData.Keywords; if (!Keywords) { - Keywords = [] + Keywords = []; } if (!Array.isArray(Keywords)) { - Keywords = [Keywords] + Keywords = [Keywords]; } return { dateTaken: metaData.DateTimeOriginal, @@ -141,17 +153,20 @@ function transformMetaToNodeData( // createTypes(typedefs); // }; -exports.onCreateNode = async function ({ node, actions }) { +export const onCreateNode: GatsbyNode["onCreateNode"] = async function ({ + node, + actions, +}) { const { createNodeField } = actions; if (node.internal.type === "File" && node.sourceInstanceName === "gallery") { - const metaData = await exifr.parse(node.absolutePath, { + const metaData = await exifr.parse(node.absolutePath as string, { iptc: true, xmp: true, // icc: true }); - const sharpImage = sharp(node.absolutePath); + const sharpImage = sharp(node.absolutePath as string); const { dominant } = await sharpImage.stats(); const resizedImage = await sharpImage .resize({ @@ -171,7 +186,7 @@ exports.onCreateNode = async function ({ node, actions }) { value: transformMetaToNodeData( metaData, vibrantData, - node.absolutePath, + node.absolutePath as string, dominant ), }); @@ -180,10 +195,14 @@ exports.onCreateNode = async function ({ node, actions }) { // Implement the Gatsby API “createPages”. This is called once the // data layer is bootstrapped to let plugins create pages from data. -exports.createPages = async ({ graphql, actions, reporter }) => { +export const createPages: GatsbyNode["createPages"] = async ({ + graphql, + actions, + reporter, +}) => { const { createPage } = actions; - const galleryImages = await graphql(` - { + const galleryImages = await graphql(` + query GalleryImagesNode { allFile(filter: { sourceInstanceName: { eq: "gallery" } }) { edges { node { @@ -214,9 +233,9 @@ exports.createPages = async ({ graphql, actions, reporter }) => { const edges = R.sort( R.descend( (edge) => - new Date(R.path(["node", "fields", "imageMeta", "dateTaken"], edge)) + new Date(R.path(["node", "fields", "imageMeta", "dateTaken"], edge)!) ), - galleryImages.data.allFile.edges + galleryImages.data?.allFile.edges! ); edges.forEach(({ node }, index) => { diff --git a/package.json b/package.json index 0dfcced..1f36d20 100644 --- a/package.json +++ b/package.json @@ -70,6 +70,7 @@ "use-breakpoint": "^2.0.1" }, "devDependencies": { + "@types/chroma-js": "^2.1.4", "@types/node": "^18.8.3", "@types/ramda": "^0.28.15", "@types/react": "^18.0.21", diff --git a/src/components/GalleryImage/GalleryImage.js b/src/components/GalleryImage/GalleryImage.js index 02898bb..7f072f6 100644 --- a/src/components/GalleryImage/GalleryImage.js +++ b/src/components/GalleryImage/GalleryImage.js @@ -365,7 +365,7 @@ export const query = graphql` LensModel ObjectName Caption - Location + # Location City State } diff --git a/src/gatsby-types.d.ts b/src/gatsby-types.d.ts index 5ec2244..f8301ee 100644 --- a/src/gatsby-types.d.ts +++ b/src/gatsby-types.d.ts @@ -770,7 +770,6 @@ type FileFieldsEnum = | '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' @@ -796,8 +795,6 @@ type FileFieldsEnum = | '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' @@ -821,11 +818,6 @@ type FileFieldsEnum = | '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' @@ -840,36 +832,10 @@ type FileFieldsEnum = | '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' @@ -886,16 +852,12 @@ type FileFieldsEnum = | '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' @@ -907,7 +869,6 @@ type FileFieldsEnum = | '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' @@ -947,12 +908,6 @@ type FileFieldsEnum = | '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' @@ -960,6 +915,7 @@ type FileFieldsEnum = | 'fields.imageMeta.meta.RedHue' | 'fields.imageMeta.meta.RedSaturation' | 'fields.imageMeta.meta.ResolutionUnit' + | 'fields.imageMeta.meta.Saturation' | 'fields.imageMeta.meta.SaturationAdjustmentAqua' | 'fields.imageMeta.meta.SaturationAdjustmentBlue' | 'fields.imageMeta.meta.SaturationAdjustmentGreen' @@ -970,13 +926,13 @@ type FileFieldsEnum = | '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.Sharpness' | 'fields.imageMeta.meta.ShutterSpeedValue' | 'fields.imageMeta.meta.Software' | 'fields.imageMeta.meta.SplitToningBalance' @@ -987,7 +943,6 @@ type FileFieldsEnum = | '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' @@ -997,15 +952,6 @@ type FileFieldsEnum = | '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' @@ -1017,8 +963,7 @@ type FileFieldsEnum = | 'fields.imageMeta.meta.creator' | 'fields.imageMeta.meta.format' | 'fields.imageMeta.meta.good' - | 'fields.imageMeta.meta.latitude' - | 'fields.imageMeta.meta.longitude' + | 'fields.imageMeta.meta.subject' | 'fields.imageMeta.vibrantHue' | 'fields.imageMeta.vibrant.DarkMuted' | 'fields.imageMeta.vibrant.DarkVibrant' @@ -1127,7 +1072,6 @@ type FileFieldsImageMetaMeta = { readonly AutoLateralCA: Maybe; readonly AutoToneDigest: Maybe; readonly AutoToneDigestNoSat: Maybe; - readonly AutoWhiteVersion: Maybe; readonly Blacks2012: Maybe; readonly BlueHue: Maybe; readonly BlueSaturation: Maybe; @@ -1153,16 +1097,14 @@ type FileFieldsImageMetaMeta = { 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 CropAngle: Maybe; + readonly CropBottom: Maybe; readonly CropConstrainToWarp: Maybe; - readonly CropLeft: Maybe; - readonly CropRight: Maybe; - readonly CropTop: Maybe; + readonly CropLeft: Maybe; + readonly CropRight: Maybe; + readonly CropTop: Maybe; readonly CustomRendered: Maybe; readonly DateCreated: Maybe; readonly DateTimeOriginal: Maybe; @@ -1179,55 +1121,24 @@ type FileFieldsImageMetaMeta = { 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 ExposureCompensation: Maybe; readonly ExposureMode: Maybe; readonly ExposureProgram: Maybe; readonly ExposureTime: Maybe; readonly FNumber: Maybe; readonly FileSource: Maybe; readonly Flash: Maybe; - readonly FocalLength: 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; @@ -1244,16 +1155,12 @@ type FileFieldsImageMetaMeta = { 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; @@ -1265,7 +1172,6 @@ type FileFieldsImageMetaMeta = { readonly LensProfileSetup: Maybe; readonly LensProfileVignettingScale: Maybe; readonly LightSource: Maybe; - readonly Location: Maybe; readonly Look: Maybe; readonly LuminanceAdjustmentAqua: Maybe; readonly LuminanceAdjustmentBlue: Maybe; @@ -1306,19 +1212,14 @@ type FileFieldsImageMetaMeta = { 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 ProcessVersion: Maybe; readonly Rating: Maybe; readonly RawFileName: Maybe; readonly RecommendedExposureIndex: Maybe; readonly RedHue: Maybe; readonly RedSaturation: Maybe; readonly ResolutionUnit: Maybe; + readonly Saturation: Maybe; readonly SaturationAdjustmentAqua: Maybe; readonly SaturationAdjustmentBlue: Maybe; readonly SaturationAdjustmentGreen: Maybe; @@ -1329,13 +1230,13 @@ type FileFieldsImageMetaMeta = { 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 SharpenRadius: Maybe; + readonly Sharpness: Maybe; readonly ShutterSpeedValue: Maybe; readonly Software: Maybe; readonly SplitToningBalance: Maybe; @@ -1346,7 +1247,6 @@ type FileFieldsImageMetaMeta = { readonly State: Maybe; readonly SubSecTimeDigitized: Maybe; readonly SubSecTimeOriginal: Maybe; - readonly Sublocation: Maybe; readonly Temperature: Maybe; readonly Texture: Maybe; readonly TimeCreated: Maybe; @@ -1356,15 +1256,6 @@ type FileFieldsImageMetaMeta = { 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; @@ -1377,8 +1268,7 @@ type FileFieldsImageMetaMeta = { readonly description: Maybe; readonly format: Maybe; readonly good: Maybe; - readonly latitude: Maybe; - readonly longitude: Maybe; + readonly subject: Maybe>>; readonly title: Maybe; }; @@ -1432,13 +1322,11 @@ type FileFieldsImageMetaMeta_ModifyDateArgs = { type FileFieldsImageMetaMetaDerivedFrom = { readonly documentID: Maybe; - readonly instanceID: Maybe; readonly originalDocumentID: Maybe; }; type FileFieldsImageMetaMetaDerivedFromFilterInput = { readonly documentID: InputMaybe; - readonly instanceID: InputMaybe; readonly originalDocumentID: InputMaybe; }; @@ -1460,7 +1348,6 @@ type FileFieldsImageMetaMetaFilterInput = { readonly AutoLateralCA: InputMaybe; readonly AutoToneDigest: InputMaybe; readonly AutoToneDigestNoSat: InputMaybe; - readonly AutoWhiteVersion: InputMaybe; readonly Blacks2012: InputMaybe; readonly BlueHue: InputMaybe; readonly BlueSaturation: InputMaybe; @@ -1486,16 +1373,14 @@ type FileFieldsImageMetaMetaFilterInput = { 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 CropAngle: InputMaybe; + readonly CropBottom: InputMaybe; readonly CropConstrainToWarp: InputMaybe; - readonly CropLeft: InputMaybe; - readonly CropRight: InputMaybe; - readonly CropTop: InputMaybe; + readonly CropLeft: InputMaybe; + readonly CropRight: InputMaybe; + readonly CropTop: InputMaybe; readonly CustomRendered: InputMaybe; readonly DateCreated: InputMaybe; readonly DateTimeOriginal: InputMaybe; @@ -1512,55 +1397,24 @@ type FileFieldsImageMetaMetaFilterInput = { 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 ExposureCompensation: InputMaybe; readonly ExposureMode: InputMaybe; readonly ExposureProgram: InputMaybe; readonly ExposureTime: InputMaybe; readonly FNumber: InputMaybe; readonly FileSource: InputMaybe; readonly Flash: InputMaybe; - readonly FocalLength: 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; @@ -1577,16 +1431,12 @@ type FileFieldsImageMetaMetaFilterInput = { 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; @@ -1598,7 +1448,6 @@ type FileFieldsImageMetaMetaFilterInput = { readonly LensProfileSetup: InputMaybe; readonly LensProfileVignettingScale: InputMaybe; readonly LightSource: InputMaybe; - readonly Location: InputMaybe; readonly Look: InputMaybe; readonly LuminanceAdjustmentAqua: InputMaybe; readonly LuminanceAdjustmentBlue: InputMaybe; @@ -1639,19 +1488,14 @@ type FileFieldsImageMetaMetaFilterInput = { 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 ProcessVersion: InputMaybe; readonly Rating: InputMaybe; readonly RawFileName: InputMaybe; readonly RecommendedExposureIndex: InputMaybe; readonly RedHue: InputMaybe; readonly RedSaturation: InputMaybe; readonly ResolutionUnit: InputMaybe; + readonly Saturation: InputMaybe; readonly SaturationAdjustmentAqua: InputMaybe; readonly SaturationAdjustmentBlue: InputMaybe; readonly SaturationAdjustmentGreen: InputMaybe; @@ -1662,13 +1506,13 @@ type FileFieldsImageMetaMetaFilterInput = { 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 SharpenRadius: InputMaybe; + readonly Sharpness: InputMaybe; readonly ShutterSpeedValue: InputMaybe; readonly Software: InputMaybe; readonly SplitToningBalance: InputMaybe; @@ -1679,7 +1523,6 @@ type FileFieldsImageMetaMetaFilterInput = { readonly State: InputMaybe; readonly SubSecTimeDigitized: InputMaybe; readonly SubSecTimeOriginal: InputMaybe; - readonly Sublocation: InputMaybe; readonly Temperature: InputMaybe; readonly Texture: InputMaybe; readonly TimeCreated: InputMaybe; @@ -1689,15 +1532,6 @@ type FileFieldsImageMetaMetaFilterInput = { 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; @@ -1710,8 +1544,7 @@ type FileFieldsImageMetaMetaFilterInput = { readonly description: InputMaybe; readonly format: InputMaybe; readonly good: InputMaybe; - readonly latitude: InputMaybe; - readonly longitude: InputMaybe; + readonly subject: InputMaybe; readonly title: InputMaybe; }; @@ -1752,7 +1585,6 @@ type FileFieldsImageMetaMetaLook = { type FileFieldsImageMetaMetaLookDescription = { readonly Amount: Maybe; readonly Cluster: Maybe; - readonly Copyright: Maybe; readonly Group: Maybe; readonly Name: Maybe; readonly Parameters: Maybe; @@ -1765,7 +1597,6 @@ type FileFieldsImageMetaMetaLookDescription = { type FileFieldsImageMetaMetaLookDescriptionFilterInput = { readonly Amount: InputMaybe; readonly Cluster: InputMaybe; - readonly Copyright: InputMaybe; readonly Group: InputMaybe; readonly Name: InputMaybe; readonly Parameters: InputMaybe; @@ -1786,141 +1617,39 @@ type FileFieldsImageMetaMetaLookDescriptionGroupFilterInput = { }; 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 = { @@ -4385,7 +4114,7 @@ type GalleryImageQueryVariables = Exact<{ }>; -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 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 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; }>; @@ -4425,5 +4154,10 @@ type IndexPageQuery = { readonly allFile: { readonly nodes: ReadonlyArray<{ read 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 }; +type GalleryImagesNodeQueryVariables = Exact<{ [key: string]: never; }>; + + +type GalleryImagesNodeQuery = { readonly allFile: { readonly edges: ReadonlyArray<{ readonly node: { readonly relativePath: string, readonly base: string, readonly fields: { readonly imageMeta: { readonly dateTaken: string | null } | null } | null } }> } }; + } diff --git a/tsconfig.json b/tsconfig.json index 642c940..bfb1a85 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -100,5 +100,5 @@ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "include": ["./src/**/*"] + "include": ["./src/**/*", "./gatsby-node.ts"] } diff --git a/yarn.lock b/yarn.lock index b51c790..c34147b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4664,6 +4664,11 @@ "@types/node" "*" "@types/responselike" "*" +"@types/chroma-js@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-2.1.4.tgz#52e3a8453000cdb9ad76357c2c47dbed702d136f" + integrity sha512-l9hWzP7cp7yleJUI7P2acmpllTJNYf5uU6wh50JzSIZt3fFHe+w2FM6w9oZGBTYzjjm2qHdnQvI+fF/JF/E5jQ== + "@types/common-tags@^1.8.1": version "1.8.1" resolved "https://registry.yarnpkg.com/@types/common-tags/-/common-tags-1.8.1.tgz#a5a49ca5ebbb58e0f8947f3ec98950c8970a68a9"